aboutsummaryrefslogtreecommitdiff
path: root/grammar/grammar.go
diff options
context:
space:
mode:
authorRyo Nihei <nihei.dev@gmail.com>2021-06-20 23:47:29 +0900
committerRyo Nihei <nihei.dev@gmail.com>2021-06-20 23:47:29 +0900
commit8ab850528e1c05f36668f36db6af4cdcb647180e (patch)
treecf1e373ebd76c6ad78d65c79351b2198c7e42b2a /grammar/grammar.go
parentAdd skip action (diff)
downloadcotia-8ab850528e1c05f36668f36db6af4cdcb647180e.tar.gz
cotia-8ab850528e1c05f36668f36db6af4cdcb647180e.tar.xz
Add syntax of fragment
Diffstat (limited to 'grammar/grammar.go')
-rw-r--r--grammar/grammar.go9
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,
}