1234567891011121314151617181920212223242526272829303132333435363738394041 |
- package flexer
- /* Parser for the flexer lexer generator. */
- type GeneratorRule struct {
- Name string
- Regexp string
- Keywords []string
- Action string
- }
- type GeneratorParser struct {
- Tokens []Token
- Index int
- Rules []GeneratorRule
- }
- func (g GeneratorParser) Token() Token {
- return g.Tokens[g.Index]
- }
- func (g GeneratorParser) Accept() (Token, err) {
- }
- func (g *GeneratorParser) ParseRule() error {
- tok := g.Token()
- if tok.Kind() != FlexerKind Terminal
- for g.Index < len(g.Tokens) {
- g.ParseRule()
- }
- return nil
- }
- func (g *GeneratorParser) Parse() error {
- for g.Index < len(g.Tokens) {
- g.ParseRule()
- }
- return nil
- }
|