예제 #1
0
        public override GrammarParseResult VisitStatements(StatementsContext context)
        {
            if (context == null)
            {
                return(GrammarParseResult.Unsuccessful(context.GetText()));
            }

            Debug.WriteLine($"VisitStatements \"{context.GetText()}\"");

            StatementContext[] statements = context.statement();

            if (statements.Length == 1)
            {
                return(VisitStatement(statements[0]));
            }

            GrammarParseResult result = new GrammarParseResult(context.GetText());

            foreach (StatementContext ctx in statements)
            {
                result.Children.Add(VisitStatement(ctx));
            }

            return(result);
        }
예제 #2
0
        public MathFuncNode VisitStatements(StatementsContext context)
        {
            MathFuncNode result = null;

            foreach (StatementContext statement in context.statement())
            {
                result = Visit(statement);
            }
            return(result);
        }
        public List <ClassDescriptor> VisitStatements(StatementsContext context)
        {
            List <ClassDescriptor> tables = new List <ClassDescriptor>();

            foreach (var statement in context.statement())
            {
                tables.Add(VisitStmt(statement));
            }

            return(tables);
        }
예제 #4
0
        public List <MathFunc> Convert(string input)
        {
            _parameters = new Dictionary <string, ConstNode>();
            _matchFuncs = new List <MathFunc>();

            var inputStream = new AntlrInputStream(input);
            var lexer       = new MathExprLexer(inputStream);
            var tokenStream = new CommonTokenStream(lexer);
            var parser      = new MathExprParser(tokenStream);

            StatementsContext statements = parser.statements();

            Visit(statements);

            return(MatchFuncs);
        }
예제 #5
0
        public StatementsContext statements()
        {
            StatementsContext _localctx = new StatementsContext(Context, State);

            EnterRule(_localctx, 0, RULE_statements);
            int _la;

            try {
                EnterOuterAlt(_localctx, 1);
                {
                    State = 12; statement();
                    State = 17;
                    ErrorHandler.Sync(this);
                    _la = TokenStream.LA(1);
                    while (_la == AND)
                    {
                        {
                            {
                                State = 13; Match(AND);
                                State = 14; statement();
                            }
                        }
                        State = 19;
                        ErrorHandler.Sync(this);
                        _la = TokenStream.LA(1);
                    }
                    State = 20; Match(Eof);
                }
            }
            catch (RecognitionException re) {
                _localctx.exception = re;
                ErrorHandler.ReportError(this, re);
                ErrorHandler.Recover(this, re);
            }
            finally {
                ExitRule();
            }
            return(_localctx);
        }
예제 #6
0
 public new IList <StatementNode> VisitStatements([NotNull] StatementsContext context)
 {
     return(context.statement().Select(VisitStatement).ToList());
 }
예제 #7
0
 public ValuesController(StatementsContext context)
 {
     _context = context;
 }