Ejemplo n.º 1
0
 public void Register(IGrammarBuilder <INode> grammar)
 {
     grammar.Choice("atom",
                    grammar.Ref("ruleRef"),
                    grammar.Ref("terminal"),
                    grammar.Sequence(null, grammar.TerminalValue("("), grammar.Ref("choice").Lift(), grammar.TerminalValue(")"))
                    );
 }
Ejemplo n.º 2
0
 public void Register(IGrammarBuilder <INode> grammar)
 {
     grammar.Choice("terminal",
                    grammar.Ref("terminalType"),
                    grammar.Ref("terminalLiteral"),
                    grammar.Ref("terminalAny")
                    );
 }
Ejemplo n.º 3
0
 public void Register(IGrammarBuilder <INode> grammar)
 {
     grammar.Choice("range",
                    grammar.TerminalValue("*"),
                    grammar.TerminalValue("+"),
                    grammar.TerminalValue("?"),
                    grammar.Ref("minmax")
                    ).ReduceWith(Reduce);
 }
Ejemplo n.º 4
0
 public void Register(IGrammarBuilder <INode> grammar)
 {
     grammar.Choice("terminalLiteral",
                    grammar.Terminal(TokenType.Literal),
                    grammar.Sequence(null,
                                     grammar.TerminalValue("T"),
                                     grammar.TerminalValue("<"),
                                     grammar.Terminal(TokenType.Literal).Lift(),
                                     grammar.TerminalValue(">")
                                     )
                    ).ReduceWith(Reduce);
 }
Ejemplo n.º 5
0
 public void Register(IGrammarBuilder <INode> grammar)
 {
     grammar.Sequence("atomExpression",
                      grammar.Optional(null,
                                       grammar.Choice(null,
                                                      grammar.TerminalValue("&"),
                                                      grammar.TerminalValue("!")
                                                      )
                                       ).As("prefix"),
                      grammar.Ref("atom"),
                      grammar.Optional(null, grammar.Ref("range")).As("suffix")
                      ).ReduceWith(Reduce);
 }
Ejemplo n.º 6
0
 public void Register(IGrammarBuilder <INode> grammar)
 {
     grammar.Sequence("namedAtom",
                      grammar.Ref("atomExpression").As("atom"),
                      grammar.Optional(null,
                                       grammar.Choice(null,
                                                      grammar.TerminalValue("#!"),
                                                      grammar.Sequence(null,
                                                                       grammar.TerminalValue("#"),
                                                                       grammar.Terminal(TokenType.Identifier)
                                                                       ))
                                       ).As("name")
                      ).ReduceWith(Reduce);
 }