我需要使用 Gocc 构建一个词法分析器,但是文档中没有提到忽略大小写的选项,而且我找不到任何相关内容。任何人都知道如何做到这一点,或者我应该使用其他工具吗?
/* Lexical part */
_digit : '0'-'9' ;
int64 : '1'-'9' {_digit} ;
switch: 's''w''i''t''c''h';
while: 'w''h''i''l''e';
!whitespace : ' ' | '\t' | '\n' | '\r' ;
/* Syntax part */
<<
import(
"github.com/goccmack/gocc/example/calc/token"
"github.com/goccmack/gocc/example/calc/util"
)
>>
Calc : Expr;
Expr :
Expr "+" Term << $0.(int64) + $2.(int64), nil >>
| Term
;
Term :
Term "*" Factor << $0.(int64) * $2.(int64), nil >>
| Factor
;
Factor :
"(" Expr ")" << $1, nil >>
| int64 << util.IntValue($0.(*token.Token).Lit) >>
;
例如,对于“switch”,我想识别它是大写还是小写,但不必键入所有组合。在 Bison 中有选项 % option caseless,在 Gocc 中有一个吗?
SMILET
相关分类