6.3 字面字符

最后更新于:2022-04-01 01:10:22

如果愿意,可以在语法规则里面使用单个的字面字符,例如: ~~~ def p_binary_operators(p): '''expression : expression '+' term | expression '-' term term : term '*' factor | term '/' factor''' if p[2] == '+': p[0] = p[1] + p[3] elif p[2] == '-': p[0] = p[1] - p[3] elif p[2] == '*': p[0] = p[1] * p[3] elif p[2] == '/': p[0] = p[1] / p[3] ~~~ 字符必须像’+’那样使用单引号。除此之外,需要将用到的字符定义单独定义在lex文件的`literals`列表里: ~~~ # Literals. Should be placed in module given to lex() literals = ['+','-','*','/' ] ~~~ 字面的字符只能是单个字符。因此,像’<=’或者’==’都是不合法的,只能使用一般的词法规则(例如t_EQ = r’==’)。
';