From 8993406a8ebe8c0a01d5081dc4afcf819e3160d4 Mon Sep 17 00:00:00 2001 From: Ryo Nihei Date: Sun, 20 Jun 2021 18:39:38 +0900 Subject: Add syntax of modifiers and actions Currently, a mode modifier and push/pop actions are available. The modifier and the actions make sense in only lexical specifications. --- spec/lexer.go | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'spec/lexer.go') diff --git a/spec/lexer.go b/spec/lexer.go index 19efd80..18aae51 100644 --- a/spec/lexer.go +++ b/spec/lexer.go @@ -21,6 +21,8 @@ const ( tokenKindColon = tokenKind(":") tokenKindOr = tokenKind("|") tokenKindSemicolon = tokenKind(";") + tokenKindModifierMarker = tokenKind("@") + tokenKindActionLeader = tokenKind("#") tokenKindEOF = tokenKind("eof") tokenKindInvalid = tokenKind("invalid") ) @@ -135,6 +137,10 @@ func (l *lexer) next() (*token, error) { return newSymbolToken(tokenKindOr), nil case "semicolon": return newSymbolToken(tokenKindSemicolon), nil + case "modifier_marker": + return newSymbolToken(tokenKindModifierMarker), nil + case "action_leader": + return newSymbolToken(tokenKindActionLeader), nil default: return newInvalidToken(tok.Text()), nil } -- cgit v1.2.3