fix: all keywords need to be generated
This commit is contained in:
parent
7b2eaa5c7a
commit
a96580b2fd
@ -809,6 +809,7 @@ func parseInput(r io.Reader, p parser, b builder, kw []parser) (*Node, error) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func Parse(r io.Reader) (*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 p196 = sequenceParser{id: 196, commit: 128, ranges: [][]int{{0, -1}, {1, 1}, {0, -1}}}
|
||||||
var p194 = choiceParser{id: 194, commit: 2}
|
var p194 = choiceParser{id: 194, commit: 2}
|
||||||
var p193 = choiceParser{id: 193, commit: 262, name: "wsc", generalizations: []int{194}}
|
var p193 = choiceParser{id: 193, commit: 262, name: "wsc", generalizations: []int{194}}
|
||||||
|
25
syntax.go
25
syntax.go
@ -344,6 +344,15 @@ func (s *Syntax) Init() error {
|
|||||||
return nil
|
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 {
|
func (s *Syntax) Generate(o GeneratorOptions, w io.Writer) error {
|
||||||
if err := s.Init(); err != nil {
|
if err := s.Init(); err != nil {
|
||||||
return err
|
return err
|
||||||
@ -396,6 +405,13 @@ func (s *Syntax) Generate(o GeneratorOptions, w io.Writer) error {
|
|||||||
fprintln()
|
fprintln()
|
||||||
|
|
||||||
done := make(map[string]bool)
|
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 {
|
if err := s.root.parser().(generator).generate(w, done); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
@ -423,15 +439,6 @@ func (s *Syntax) Generate(o GeneratorOptions, w io.Writer) error {
|
|||||||
return nil
|
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) {
|
func (s *Syntax) Parse(r io.Reader) (*Node, error) {
|
||||||
if err := s.Init(); err != nil {
|
if err := s.Init(); err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
|
Loading…
Reference in New Issue
Block a user