Exemplo n.º 1
0
        protected override void compile(Context ctx, bool mustReturn)
        {
            var name = LocalName ?? ctx.CurrentScope.FindName(Name);
            if (name.IsConstant && name.IsImmutable && ctx.Options.UnrollConstants)
                return;

            if (Value == null)
                Value = Expr.Default(Type);

            var assignNode = new SetIdentifierNode
            {
                Identifier = Name,
                LocalName = LocalName,
                Value = Value,
                IsInitialization = true,
            };

            assignNode.Compile(ctx, mustReturn);
        }
Exemplo n.º 2
0
        /// <summary>
        /// set_id_stmt                                 = identifier "=" expr
        /// </summary>
        private SetIdentifierNode parseSetIdStmt()
        {
            if (!peek(LexemType.Identifier, LexemType.Assign))
                return null;

            var node = new SetIdentifierNode();
            node.Identifier = getValue();
            skip();
            node.Value = ensure(parseExpr, ParserMessages.ExpressionExpected);

            return node;
        }
Exemplo n.º 3
0
 protected bool Equals(SetIdentifierNode other)
 {
     return base.Equals(other) && Equals(Value, other.Value);
 }