public static IStatementSyntax Create(ISyntaxNode parent, JurParser.StatementContext context)
        {
            if (context is JurParser.BlockStatementContext blockContext)
            {
                return(new BlockStatement(parent, blockContext));
            }
            if (context is JurParser.IfStatementContext ifContext)
            {
                return(new IfStatementSyntax(parent, ifContext));
            }
            if (context is JurParser.ForStatementContext forContext)
            {
                return(new ForStatementSyntax(parent, forContext));
            }
            if (context is JurParser.ReturnStatementContext returnContext)
            {
                return(new ReturnStatementSyntax(parent, returnContext));
            }
            if (context is JurParser.InferedVariableDeclarationStatementContext inferredContext)
            {
                return(new InferredVariableDeclarationSyntax(parent, inferredContext.inferedVariableDeclaration()));
            }
            if (context is JurParser.InitializedVariableDeclarationStatementContext initializedContext)
            {
                return(new InitializedVariableDeclarationSyntax(parent, initializedContext.initializedVariableDeclaration()));
            }
            if (context is JurParser.UninitializedVarDeclarationStatementContext uninitializedContext)
            {
                return(new UninitializedVariableDeclarationSyntax(parent, uninitializedContext.uninitializedVarDeclaration(), UninitializedVariableType.Local));
            }
            if (context is JurParser.AssignmentStatementContext assignmentContext)
            {
                return(new AssignmentStatementSyntax(parent, assignmentContext));
            }
            if (context is JurParser.ExpressionStatementContext expressionContext)
            {
                return(new ExpressionStatementSyntax(parent, expressionContext));
            }

            throw new Exception("WTF");
        }
Example #2
0
 public GeneratedScopeSyntax(ISyntaxNode parent, JurParser.StatementContext body) : base(parent, body, parent.Line)
 {
     Body = ToStatement(body);
     ImmediateChildren = ImmutableArray.Create <ITreeNode>().AddIfNotNull(Body);
 }
Example #3
0
 protected IStatementSyntax ToStatement(JurParser.StatementContext context)
 {
     return(StatementSyntaxFactory.Create(this, context));
 }