Ejemplo n.º 1
0
        public override bool TryReadExpression(CodeReader reader, CodeSection code, out IExpression e)
        {
            Match m = Assignment.reader.Match(code.ToString());

            e = null;
            if (m.Success)
            {
                Group g = m.Groups[target];
                if (!reader.TryReadExpression(code.CreateSubsection(g.Index, g.Length), out IExpression target_expression))
                {
                    return(false);
                }

                g = m.Groups[value];
                if (!reader.TryReadExpression(code.CreateSubsection(g.Index, g.Length), out IExpression value_expression))
                {
                    return(false);
                }

                if (target_expression is IExpression <Variable> var_expression)
                {
                    e = new AssignmentExpression(var_expression, value_expression);
                    return(true);
                }
            }
            return(false);
        }