Ejemplo n.º 1
0
 public override object VisitVarset(DeltinScriptParser.VarsetContext context)
 {
     if (context.statement_operation() != null &&
         (context.expr().Length == 0 ||
          context.children.IndexOf(context.expr().Last()) <
          context.children.IndexOf(context.statement_operation())
         ))
     {
         _diagnostics.Error("Expected expression.", new Location(_file, Range.GetRange(context)));
     }
     return(base.VisitVarset(context));
 }
Ejemplo n.º 2
0
        public override Node VisitVarset(DeltinScriptParser.VarsetContext context)
        {
            IExpressionNode target   = context.expr().Length == 2 ? (IExpressionNode)Visit(context.expr()[0]) : null;
            string          variable = context.PART().GetText();

            IExpressionNode index = null;

            if (context.array() != null)
            {
                index = (IExpressionNode)Visit(context.array().expr());
            }

            string          operation = context.statement_operation().GetText();
            IExpressionNode value     = (IExpressionNode)Visit(context.expr().Last());

            Node node = new VarSetNode(target, variable, index, operation, value, Range.GetRange(context));

            CheckRange(node);
            return(node);
        }