因此,我正在编写一个 CFG 主体以通过 SableCC 生成编译器,并且给定的示例在程序的开头和结尾分别有这些“ Start ”和“ End ”。
示例代码
Start
Print 10;
int a,b;
End
我想它们也是代币,因为不会出现在 Productions 上。所以我用语法写了它们,比如:
Tokens
number = ['0'...'9']+;
identifier = letter(letter|number)*;
opaddsub = '+' | '-';
opmuldiv = '*' | '/';
opsemicolon = ';';
opequal = '=';
parleft = '(';
parright = ')';
comma = ',';
blank = (' ' | 13 | 10 | 9 )+;
start = 'Start'
end = 'End'
虽然我没有信心,如何写作品仍然让我感到困惑,但我想得到帮助。