From a96580b2fd5123acd79a279a0d051965021d6538 Mon Sep 17 00:00:00 2001 From: Arpad Ryszka Date: Sat, 2 Feb 2019 21:27:01 +0100 Subject: [PATCH] fix: all keywords need to be generated --- self/self.go | 1 + syntax.go | 25 ++++++++++++++++--------- 2 files changed, 17 insertions(+), 9 deletions(-) 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