public void TokenizerLowercasesAndCamelCasesInput(string text, TokenAttributes[] expected) { // arrange, act var actual = new IdentifierAnalyzer().Tokenize(text); // assert Assert.Equal(expected, actual); }
internal IdentifierAnalyzer ParseIdentifiers(string expression) { ExpressionParser parser = this.IdentifierParser; StringReader sr = new StringReader(expression); parser.Reset(sr); parser.Tokenizer.Reset(sr); IdentifierAnalyzer analyzer = (IdentifierAnalyzer)parser.Analyzer; analyzer.Reset(); parser.Parse(); return((IdentifierAnalyzer)parser.Analyzer); }
private ExpressionContext ParseAndLink(string expressionName, string expression) { IdentifierAnalyzer analyzer = Context.ParseIdentifiers(expression); ExpressionContext context2 = _myContext.CloneInternal(true); this.LinkExpression(expressionName, context2, analyzer); // Tell the expression not to clone the context since it's already been cloned context2.NoClone = true; // Clear our context's variables _myContext.Variables.Clear(); return(context2); }
internal IdentifierAnalyzer ParseIdentifiers(string expression) { ExpressionParser parser = this.IdentifierParser; StringReader sr = new StringReader(expression); parser.Reset(sr); parser.Tokenizer.Reset(sr); IdentifierAnalyzer analyzer = (IdentifierAnalyzer)parser.Analyzer; analyzer.Reset(); try { parser.Parse(); } catch (ParserLogException ex) { // Syntax error; wrap it in our exception and rethrow throw new ExpressionCompileException(ex); } return((IdentifierAnalyzer)parser.Analyzer); }
private ICollection <string> GetReferences(string expression, ExpressionContext context) { IdentifierAnalyzer analyzer = context.ParseIdentifiers(expression); return(analyzer.GetIdentifiers(context)); }
private void LinkExpression(string expressionName, ExpressionContext context, IdentifierAnalyzer analyzer) { foreach (string identifier in analyzer.GetIdentifiers(context)) { this.LinkIdentifier(identifier, expressionName, context); } }
private void LinkExpression(string expressionName, ExpressionContext context, IdentifierAnalyzer analyzer) { analyzer.GetIdentifiers(context).Each(i => this.LinkIdentifier(i, expressionName, context)); }