diff --git a/self/self.go b/self/self.go index a1732b7..668fb7b 100644 --- a/self/self.go +++ b/self/self.go @@ -809,6 +809,7 @@ func parseInput(r io.Reader, p parser, b builder, kw []parser) (*Node, error) { } func Parse(r io.Reader) (*Node, error) { + var p196 = sequenceParser{id: 196, commit: 128, ranges: [][]int{{0, -1}, {1, 1}, {0, -1}}} var p194 = choiceParser{id: 194, commit: 2} var p193 = choiceParser{id: 193, commit: 262, name: "wsc", generalizations: []int{194}} diff --git a/syntax.go b/syntax.go index 229b8a7..91c6905 100644 --- a/syntax.go +++ b/syntax.go @@ -344,6 +344,15 @@ func (s *Syntax) Init() error { return nil } +func (s *Syntax) keywordParsers() []parser { + var p []parser + for _, kw := range s.keywords { + p = append(p, kw.parser()) + } + + return p +} + func (s *Syntax) Generate(o GeneratorOptions, w io.Writer) error { if err := s.Init(); err != nil { return err @@ -396,6 +405,13 @@ func (s *Syntax) Generate(o GeneratorOptions, w io.Writer) error { fprintln() done := make(map[string]bool) + for _, p := range s.keywordParsers() { + if err := p.(generator).generate(w, done); err != nil { + return err + } + } + fprintln() + if err := s.root.parser().(generator).generate(w, done); err != nil { return err } @@ -423,15 +439,6 @@ func (s *Syntax) Generate(o GeneratorOptions, w io.Writer) error { return nil } -func (s *Syntax) keywordParsers() []parser { - var p []parser - for _, kw := range s.keywords { - p = append(p, kw.parser()) - } - - return p -} - func (s *Syntax) Parse(r io.Reader) (*Node, error) { if err := s.Init(); err != nil { return nil, err