diff options
Diffstat (limited to 'compiler/compiler.go')
-rw-r--r-- | compiler/compiler.go | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/compiler/compiler.go b/compiler/compiler.go index 0c89737..3469044 100644 --- a/compiler/compiler.go +++ b/compiler/compiler.go @@ -201,8 +201,19 @@ func compile(entries []*spec.LexEntry, modeName2ID map[spec.LexModeName]spec.Lex var root astNode var symTab *symbolTable { + pats := make([]*patternEntry, len(patterns)+1) + pats[spec.LexModeKindIDNil] = &patternEntry{ + id: spec.LexModeKindIDNil, + } + for id, pattern := range patterns { + pats[id] = &patternEntry{ + id: id, + pattern: pattern, + } + } + var err error - root, symTab, err = parse(patterns, fragmentPatterns) + root, symTab, err = parse(pats, fragmentPatterns) if err != nil { return nil, err } |