コード例 #1
0
        public InterpreterResult Interpret(Page page, string script)
        {
            var scriptLines = script.Split(new string[] { Environment.NewLine }, StringSplitOptions.None).ToList();

            for (int i = scriptLines.Count - 1; i >= 0; i--)
            {
                if (scriptLines[i] == string.Empty)
                {
                    scriptLines.RemoveAt(i);
                }
                else
                {
                    break;
                }
            }

            script = string.Join(Environment.NewLine, scriptLines);

            var patternInterpreterLexer  = new PageInterpreterLexer(new AntlrInputStream(script));
            var patternInterpreterParser = new PageInterpreterParser(new CommonTokenStream(patternInterpreterLexer));

            patternInterpreterParser.AddErrorListener(new ErrorListener());

            var visitor = new PageInterpreter(page);

            visitor.Visit(patternInterpreterParser.compileUnit());
            return(visitor.Result);
        }
コード例 #2
0
        public Dictionary <string, AnalyzedQuery> Visit(string script)
        {
            var patternInterpreterLexer  = new PageInterpreterLexer(new AntlrInputStream(script));
            var patternInterpreterParser = new PageInterpreterParser(new CommonTokenStream(patternInterpreterLexer));

            patternInterpreterParser.AddErrorListener(new ErrorListener());

            var visitor = new ScriptAnalyzer();

            visitor.Visit(patternInterpreterParser.compileUnit());
            return(visitor.ResultCountByQuery);
        }
コード例 #3
0
ファイル: Interpreter.cs プロジェクト: einer20/DocumentLab
        public InterpreterResult Interpret(Page page, string script)
        {
            var patternInterpreterLexer  = new PageInterpreterLexer(new AntlrInputStream(script));
            var patternInterpreterParser = new PageInterpreterParser(new CommonTokenStream(patternInterpreterLexer));

            patternInterpreterParser.AddErrorListener(new ErrorListener());

            var visitor = new PageInterpreter(page);

            visitor.Visit(patternInterpreterParser.compileUnit());
            return(visitor.Result);
        }