public void TestToString() { var configurator = new ParserConfigurator<string>(); var nt = configurator.CreateNonTerminal(); nt.DebugName = "NT"; Assert.IsNotNull(nt.ToString()); }
public void TestToString() { var configurator = new ParserConfigurator <string>(); var nt = configurator.CreateNonTerminal(); nt.DebugName = "NT"; Assert.IsNotNull(nt.ToString()); }
public FluentParserConfigurator(ParserConfigurator <object> configurator) { this.configurator = configurator; rules = new List <FluentRule>(); listRules = new Dictionary <Tuple <IRule, string>, NonTerminal <object> >(); optionalRules = new Dictionary <NonTerminal <object>, NonTerminal <object> >(); ignored = new List <string>(); }
public void TestBadProduction() { try { var configurator = new ParserConfigurator<string>(); var nt = configurator.CreateNonTerminal(); nt.AddProduction("abc", 123, 2.0, false); Assert.Fail("No exception for bad type in production rule list"); } catch (ArgumentException) { } }
public void TestBadProduction() { try { var configurator = new ParserConfigurator <string>(); var nt = configurator.CreateNonTerminal(); nt.AddProduction("abc", 123, 2.0, false); Assert.Fail("No exception for bad type in production rule list"); } catch (ArgumentException) { } }
public void TestMultipleDefinedTerminalWithDifferentRegEx() { try { var configurator = new ParserConfigurator <string>(); configurator.CreateTerminal("abc", f => "abc"); configurator.CreateTerminal("abc", f => "ABC"); Assert.Fail("No exception for multiple definition of terminal with different regex"); } catch (ParserConfigurationException) { } }
public void TestMultipleDefinedTerminalWithDifferentRegEx() { try { var configurator = new ParserConfigurator<string>(); configurator.CreateTerminal("abc", f => "abc"); configurator.CreateTerminal("abc", f => "ABC"); Assert.Fail("No exception for multiple definition of terminal with different regex"); } catch (ParserConfigurationException) { } }
/// <summary> /// Creates a <see cref="ParserContainer"/> instance configured using the provided configuration method. /// </summary> /// <param name="configurator">A method that sets configuration options for a new <see cref="ParserContainer"/> instance.</param> /// <returns>A new <see cref="ParserContainer"/> instance.</returns> public static ParserContainer Create(ParserConfigurator configurator) { if (configurator is null) { throw new ArgumentNullException(nameof(configurator)); } ParserContainer container = new ParserContainer(); ParserConfiguration configuration = new Configuration(container); configurator(configuration); configuration.Lock(); return(container); }
public FluentExpression(ParserConfigurator <object> configurator) { this.configurator = configurator; }
/// <summary> /// Create a code based configurator /// </summary> /// <typeparam name="T">Semantic value type of tokens</typeparam> /// <returns>A configurator, ready for use</returns> public static IParserConfigurator <T> Configure <T>() { var parserConfigurator = new ParserConfigurator <T>(); return(parserConfigurator); }