Base Node for Expression
Наследование: ScriptAst
Пример #1
0
 public ScriptForEachStatement(AstNodeArgs args)
     : base(args)
 {
     name = (Token)ChildNodes[1];
       expr = (ScriptExpr)ChildNodes[3];
       statement = (ScriptStatement)ChildNodes[4];
 }
        public ScriptTypeConvertExpr(AstNodeArgs args)
            : base(args)
        {
            if (ChildNodes.Count == 2)
              {
            if (args.ChildNodes[0] is ScriptExpr &&
            !(args.ChildNodes[1] is ScriptExpr))
            {
              // ( Expr )
              expr = args.ChildNodes[0] as ScriptExpr;
            }
            else
            {
              //(Type) Expr
              typeExpr = args.ChildNodes[0] as ScriptExpr;
              expr = args.ChildNodes[1] as ScriptExpr;
            }
              }
              else
              {
            throw new ScriptException("Grammar error!");
              }

              @operator = RuntimeHost.GetBinaryOperator("+");
              if (@operator == null)
            throw new ScriptException("RuntimeHost did not initialize property. Can't find binary operators.");
        }
 public ScriptForEachStatement(AstNodeArgs args)
     : base(args)
 {
     name      = (Token)ChildNodes[1];
     expr      = (ScriptExpr)ChildNodes[3];
     statement = (ScriptStatement)ChildNodes[4];
 }
Пример #4
0
        public ScriptTypeConvertExpr(AstNodeArgs args)
            : base(args)
        {
            if (ChildNodes.Count == 2)
            {
                if (args.ChildNodes[0] is ScriptExpr &&
                    !(args.ChildNodes[1] is ScriptExpr))
                {
                    // ( Expr )
                    expr = args.ChildNodes[0] as ScriptExpr;
                }
                else
                {
                    //(Type) Expr
                    typeExpr = args.ChildNodes[0] as ScriptExpr;
                    expr     = args.ChildNodes[1] as ScriptExpr;
                }
            }
            else
            {
                throw new ScriptException("Grammar error!");
            }

            @operator = RuntimeHost.GetBinaryOperator("+");
            if (@operator == null)
            {
                throw new ScriptException("RuntimeHost did not initialize property. Can't find binary operators.");
            }
        }
Пример #5
0
        public ScriptBinExpr(AstNodeArgs args)
            : base(args)
        {
            left = (ScriptExpr)ChildNodes[0];
              oper = ((Token)ChildNodes[1]).Text;
              right = (ScriptExpr)ChildNodes[2];

              operatorFunction = RuntimeHost.GetBinaryOperator(oper);
              if (operatorFunction == null)
            throw new ScriptException("RuntimeHost did not initialize property. Can't find binary operators.");
        }
Пример #6
0
        public ScriptBinExpr(AstNodeArgs args)
            : base(args)
        {
            left  = (ScriptExpr)ChildNodes[0];
            oper  = ((Token)ChildNodes[1]).Text;
            right = (ScriptExpr)ChildNodes[2];

            operatorFunction = RuntimeHost.GetBinaryOperator(oper);
            if (operatorFunction == null)
            {
                throw new ScriptException("RuntimeHost did not initialize property. Can't find binary operators.");
            }
        }
Пример #7
0
 public ScriptUnaryExpr(AstNodeArgs args)
     : base(args)
 {
   if (ChildNodes[0] is ScriptExpr)
   { 
     expr = (ScriptExpr)ChildNodes[0];
     oper = ((Token)ChildNodes[1]).Text;
   }
   else
   {
     expr = (ScriptExpr)ChildNodes[1];
     oper = ((Token)ChildNodes[0]).Text;
   }
 }
Пример #8
0
 public ScriptUnaryExpr(AstNodeArgs args)
     : base(args)
 {
     if (ChildNodes[0] is ScriptExpr)
     {
         expr = (ScriptExpr)ChildNodes[0];
         oper = ((Token)ChildNodes[1]).Text;
     }
     else
     {
         expr = (ScriptExpr)ChildNodes[1];
         oper = ((Token)ChildNodes[0]).Text;
     }
 }
Пример #9
0
        public ScriptAssignExpr(AstNodeArgs args)
            : base(args)
        {
            nameExpr = (ScriptQualifiedName)args.ChildNodes[0];
            oper     = ((Token)args.ChildNodes[1]).Text;
            if (args.ChildNodes.Count == 3)
            {
                rightExpr = (ScriptExpr)args.ChildNodes[2];
            }

            Debug.Assert(oper == "=" || oper == ":=" || oper == "+=" || oper == "-=" || oper == "++" || oper == "--" || oper == ":=");

            switch (oper)
            {
            case "=":
                assignOperation = Assign;
                break;

            case ":=":
                assignOperation = AssignEx;
                break;

            case "++":
                assignOperation = PlusPlus;
                break;

            case "--":
                assignOperation = MinusMinus;
                break;

            case "+=":
                assignOperation = PlusEqual;
                break;

            case "-=":
                assignOperation = MinusEqual;
                break;

            default:
                throw new ScriptException("Assignment operator:" + oper + " is not supported");
            }

            minus = RuntimeHost.GetBinaryOperator("-");
            plus  = RuntimeHost.GetBinaryOperator("+");

            if (plus == null || minus == null)
            {
                throw new ScriptException("RuntimeHost did not initialize property. Can't find binary operators.");
            }
        }
Пример #10
0
        public ScriptAssignExpr(AstNodeArgs args)
            : base(args)
        {
            nameExpr = (ScriptQualifiedName)args.ChildNodes[0];
              oper = ((Token)args.ChildNodes[1]).Text;
              if (args.ChildNodes.Count == 3)
            rightExpr = (ScriptExpr)args.ChildNodes[2];

              Debug.Assert(oper == "=" || oper == ":=" || oper == "+=" || oper == "-=" || oper == "++" || oper == "--" || oper == ":=");

              switch (oper)
              {
            case "=":
              assignOperation = Assign;
              break;
            case ":=":
              assignOperation = AssignEx;
              break;
            case "++":
              assignOperation = PlusPlus;
              break;
            case "--":
              assignOperation = MinusMinus;
              break;
            case "+=":
              assignOperation = PlusEqual;
              break;
            case "-=":
              assignOperation = MinusEqual;
              break;
            default:
              throw new ScriptException("Assignment operator:" + oper + " is not supported");
              }

              minus = RuntimeHost.GetBinaryOperator("-");
              plus = RuntimeHost.GetBinaryOperator("+");

              if (plus == null || minus == null)
            throw new ScriptException("RuntimeHost did not initialize property. Can't find binary operators.");
        }
Пример #11
0
 public ScriptMObjectPart(AstNodeArgs args)
     : base(args)
 {
   name = (ChildNodes[0] as Token).Text;
   expr = ChildNodes[2] as ScriptExpr;
 }
 public ScriptSwitchCaseStatement(AstNodeArgs args)
     : base(args)
 {
     cond      = ChildNodes[1] as ScriptExpr;
     statement = ChildNodes[3] as ScriptStatement;
 }
 public ScriptMObjectPart(AstNodeArgs args)
     : base(args)
 {
     name = (ChildNodes[0] as Token).Text;
     expr = ChildNodes[2] as ScriptExpr;
 }
Пример #14
0
 public ScriptCondition(AstNodeArgs args)
     : base(args)
 {
     conditionExpression = (ScriptExpr)ChildNodes[0];
 }
 public ScriptSwitchCaseStatement(AstNodeArgs args)
     : base(args)
 {
   cond = ChildNodes[1] as ScriptExpr;
   statement = ChildNodes[3] as ScriptStatement;
 }
Пример #16
0
 public ScriptCondition(AstNodeArgs args)
     : base(args)
 {
   conditionExpression = (ScriptExpr)ChildNodes[0];
 }