diff options
author | Ryo Nihei <nihei.dev@gmail.com> | 2021-06-20 23:47:29 +0900 |
---|---|---|
committer | Ryo Nihei <nihei.dev@gmail.com> | 2021-06-20 23:47:29 +0900 |
commit | 8ab850528e1c05f36668f36db6af4cdcb647180e (patch) | |
tree | cf1e373ebd76c6ad78d65c79351b2198c7e42b2a /grammar/grammar.go | |
parent | Add skip action (diff) | |
download | urubu-8ab850528e1c05f36668f36db6af4cdcb647180e.tar.gz urubu-8ab850528e1c05f36668f36db6af4cdcb647180e.tar.xz |
Add syntax of fragment
Diffstat (limited to 'grammar/grammar.go')
-rw-r--r-- | grammar/grammar.go | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/grammar/grammar.go b/grammar/grammar.go index e7271c0..7479683 100644 --- a/grammar/grammar.go +++ b/grammar/grammar.go @@ -103,6 +103,7 @@ func NewGrammar(root *spec.RootNode) (*Grammar, error) { } } } + for i, p := range anonPats { kind := fmt.Sprintf("__%v__", i+1) @@ -118,6 +119,14 @@ func NewGrammar(root *spec.RootNode) (*Grammar, error) { }) } + for _, fragment := range root.Fragments { + entries = append(entries, &mlspec.LexEntry{ + Fragment: true, + Kind: mlspec.LexKind(fragment.LHS), + Pattern: mlspec.LexPattern(fragment.RHS), + }) + } + lexSpec = &mlspec.LexSpec{ Entries: entries, } |