From cf4f53332e9d99a3a9eccfe69e70f98769862c3a Mon Sep 17 00:00:00 2001 From: Ryo Nihei Date: Wed, 22 Sep 2021 23:36:19 +0900 Subject: Keep the order of AST nodes constant --- compiler/compiler.go | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) (limited to 'compiler/compiler.go') 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 } -- cgit v1.2.3