Пример #1
0
 internal void RecreateParser()
 {
     lock (_mySyncRoot) {
         FleeExpressionAnalyzer analyzer = new FleeExpressionAnalyzer();
         ExpressionParser       parser   = new ExpressionParser(TextReader.Null, analyzer, this);
         _myProperties.SetValue("ExpressionParser", parser);
     }
 }
Пример #2
0
        internal ExpressionElement Parse(string expression, IServiceProvider services)
        {
            lock (_mySyncRoot) {
                System.IO.StringReader sr     = new System.IO.StringReader(expression);
                ExpressionParser       parser = this.Parser;
                parser.Reset(sr);
                parser.Tokenizer.Reset(sr);
                FleeExpressionAnalyzer analyzer = (FleeExpressionAnalyzer)parser.Analyzer;

                analyzer.SetServices(services);

                Node rootNode = DoParse();
                analyzer.Reset();
                ExpressionElement topElement = (ExpressionElement)rootNode.Values[0];
                return(topElement);
            }
        }