コード例 #1
0
ファイル: LoopStatement.cs プロジェクト: reshadi2/mcjs
    protected LoopStatement(ToBoolean condition, Statement body)
    {
      Body = body;
      Condition = condition;
      SourceOffset = body.SourceOffset;

      Use(Condition);
      Use(Body);
    }
コード例 #2
0
ファイル: LoopStatement.cs プロジェクト: vrajeshbhavsar/mcjs
        protected LoopStatement(ToBoolean condition, Statement body)
        {
            Body         = body;
            Condition    = condition;
            SourceOffset = body.SourceOffset;

            Use(Condition);
            Use(Body);
        }
コード例 #3
0
ファイル: NodeFactory.cs プロジェクト: vrajeshbhavsar/mcjs
        public ToBoolean MakeToBoolean(Expression expression)
        {
            var n = expression as ToBoolean;

            if (n == null)
            {
                n = new ToBoolean(MakeGuardedCast(expression));
            }
            return(n);
        }
コード例 #4
0
ファイル: NodeFactory.cs プロジェクト: vrajeshbhavsar/mcjs
        public ForStatement MakeForStatement(Scope scope, IStatement initialization, IExpression condition, IExpression increment, IStatement body)
        {
            scope.HasLoop = true;
            ToBoolean booleanCondition = null;

            if (condition != null)
            {
                booleanCondition = MakeToBoolean((Expression)condition);
            }
            var n = new ForStatement((Statement)initialization, booleanCondition, (Expression)increment, (Statement)body);

            return(n);
        }
コード例 #5
0
ファイル: ForEachInStatement.cs プロジェクト: reshadi2/mcjs
    public ForEachInStatement(
      Statement initialization, 
      ToObject expression, 
      Statement body, 
      Statement iteratorInitialization,
      ToBoolean iteratorCondition,
      BlockStatement extendedBody
    )
      : base(iteratorCondition, extendedBody)
    {
      Initialization = initialization;
      Expression = expression;
      OriginalBody = body;

      IteratorInitialization = iteratorInitialization;
      ExtendedBody = extendedBody;

      //Use(Expression); //We don't need this since IteratorInitialization must be already using it!
      Debug.Assert(Expression.HasUser, "{0} must already have a user", Expression);
    }
コード例 #6
0
        public ForEachInStatement(
            Statement initialization,
            ToObject expression,
            Statement body,
            Statement iteratorInitialization,
            ToBoolean iteratorCondition,
            BlockStatement extendedBody
            )
            : base(iteratorCondition, extendedBody)
        {
            Initialization = initialization;
            Expression     = expression;
            OriginalBody   = body;

            IteratorInitialization = iteratorInitialization;
            ExtendedBody           = extendedBody;

            //Use(Expression); //We don't need this since IteratorInitialization must be already using it!
            Debug.Assert(Expression.HasUser, "{0} must already have a user", Expression);
        }
コード例 #7
0
ファイル: CodeGenerator.cs プロジェクト: reshadi2/mcjs
 public override void Visit(ToBoolean node) { Visit(node, Types.Operations.Convert.ToBoolean); }
コード例 #8
0
ファイル: DepthFirstVisitor.cs プロジェクト: reshadi2/mcjs
 public override void Visit(ToBoolean node) { Visit((ConversionExpression)node); }
コード例 #9
0
ファイル: TypeCalculator.cs プロジェクト: reshadi2/mcjs
 public override void Visit(ToBoolean node) { base.Visit(node); node.ValueType = GetType(node); }
コード例 #10
0
ファイル: TypeCalculator.cs プロジェクト: reshadi2/mcjs
 internal static mdr.ValueTypes GetType(ToBoolean expression) { return Types.Operations.Convert.ToBoolean.ReturnType(expression.ValueType); }
コード例 #11
0
 public override void Visit(ToBoolean node)
 {
     Visit((ConversionExpression)node);
 }
コード例 #12
0
ファイル: NodeFactory.cs プロジェクト: reshadi2/mcjs
 public ToBoolean MakeToBoolean(Expression expression)
 {
   var n = expression as ToBoolean;
   if (n == null)
   {
     n = new ToBoolean(MakeGuardedCast(expression));
   }
   return n;
 }
コード例 #13
0
ファイル: INodeVisitor.cs プロジェクト: vrajeshbhavsar/mcjs
 public abstract void Visit(ToBoolean node);
コード例 #14
0
ファイル: CodeGeneratorLight.cs プロジェクト: reshadi2/mcjs
 public override void Visit(ToBoolean node)
 {
   PushLocation(node);
   VisitNode(node.Expression);
   Call(Types.Operations.Stack.ToBoolean, 1, 1);
   PopLocation();
 }
コード例 #15
0
 public override void Visit(ToBoolean node) { AssignToImplicitReturn(node); }