Beispiel #1
0
            /// <summary>
            /// initializes this expression holder
            /// </summary>
            /// <param name="expression">the expression that is being parsed</param>
            /// <param name="mode">the parsing mode of the expression</param>
            public ExpressionCompiler(string expression, ExpressionMode mode)
            {
                var lex = new ITVScriptingLexer(new AntlrInputStream(expression));

                parser = new ITVScriptingParser(new CommonTokenStream(lex));
                parser.RemoveErrorListeners();
                parser.AddErrorListener(listener);
                //parser.ErrorHandler = new BailErrorStrategy();
                object obj;

                if (mode == ExpressionMode.Expression)
                {
                    obj = SingleExpression;
                }
                else
                {
                    obj = Program;
                }

                Successful  = parser.NumberOfSyntaxErrors == 0;
                SuspectLine = listener.SuspectLine;
                Errors      = listener.GetAllErrors();
            }