Пример #1
0
 public JintForInForOfStatement(ForOfStatement statement) : base(statement)
 {
     _leftNode        = statement.Left;
     _rightExpression = statement.Right;
     _forBody         = statement.Body;
     _iterationKind   = IterationKind.Iterate;
 }
 public CSharpSyntaxNode Convert(ForOfStatement node)
 {
     return(SyntaxFactory.ForEachStatement(
                SyntaxFactory.IdentifierName("var"),
                node.Identifier.Text,
                node.Expression.ToCsNode <ExpressionSyntax>(),
                node.Statement.ToCsNode <StatementSyntax>()));
 }
Пример #3
0
 protected override void VisitForOfStatement(ForOfStatement forOfStatement)
 {
     using (StartNodeObject(forOfStatement))
     {
         Member("left", forOfStatement.Left);
         Member("right", forOfStatement.Right);
         Member("body", forOfStatement.Body);
     }
 }
Пример #4
0
 public JintForInForOfStatement(
     Engine engine,
     ForOfStatement statement) : base(engine, statement)
 {
     _initialized     = false;
     _leftNode        = statement.Left;
     _rightExpression = statement.Right;
     _forBody         = statement.Body;
     _iterationKind   = IterationKind.Iterate;
 }
        // TODO: maybe introduce the new ForOfStatement node
        private UstStmts.ForeachStatement VisitForOfStatement(ForOfStatement forOfStatement)
        {
            UstTokens.IdToken name = null;
            var left = Visit(forOfStatement.Left);

            if (left is UstTokens.IdToken token)
            {
                name = token;
            }
            else if (left is UstStmts.ExpressionStatement exprStmt &&
                     exprStmt.Expression is UstExprs.VariableDeclarationExpression varDecl &&
                     varDecl.Variables.Count > 0 &&
                     varDecl.Variables[0].Left is UstTokens.IdToken idToken)
            {
                name = idToken;
            }
            var inExpression = VisitExpression(forOfStatement.Right);
            var body         = VisitStatement(forOfStatement.Body);

            return(new UstStmts.ForeachStatement(null, name, inExpression, body, GetTextSpan(forOfStatement)));
        }
Пример #6
0
        // 5.7
        int IStatementVisitor <int> .VisitForOf(ForOfStatement statement)
        {
            _Writer.Write("for (");
            WriteForInitializer(statement.Variable);
            _Writer.Write(" of ");
            statement.Value.Accept(this);
            _Writer.WriteLine(") {");

            if (statement.HasStatement)
            {
                _Writer.Indent++;
                foreach (var s in statement.Statements)
                {
                    s.Accept(this);
                }
                _Writer.Indent--;
            }

            _Writer.WriteLine('}');

            return(0);
        }
Пример #7
0
 public virtual void VisitForOfStatement(ForOfStatement forOfStatement)
 {
     VisitExpression(forOfStatement.Right);
     Visit(forOfStatement.Left);
     VisitStatement(forOfStatement.Body);
 }
Пример #8
0
 internal ForOfStatementAdapter(ForOfStatement forOfStatement)
 {
     m_forOfStatement = forOfStatement;
     m_firstTime      = true;
 }
        public void TestForOfStatement()
        {
            ForOfStatement node = new ForOfStatement(new VarStatement(GetSymbolAtom(), 1, PrimitiveType.NumberType, null, DefaultLineInfo), GetExpression1(), GetStatement1(), DefaultLineInfo);

            CheckSerializationRoundTrip(node);
        }
Пример #10
0
 protected internal override void VisitForOfStatement(ForOfStatement forOfStatement)
 {
     VisitingForOfStatement?.Invoke(this, forOfStatement);
     base.VisitForOfStatement(forOfStatement);
     VisitedForOfStatement?.Invoke(this, forOfStatement);
 }
Пример #11
0
 /// <nodoc />
 public virtual void Visit(ForOfStatement forOfStatement)
 {
 }
 protected override void VisitForOfStatement(ForOfStatement forOfStatement)
 {
     // left side skipped (imports are read-only)
     Visit(forOfStatement.Right);
     Visit(forOfStatement.Body);
 }
Пример #13
0
 public virtual void  Visit(ForOfStatement statement, TContext context)
 {
     throw new NotImplementedException();
 }