そこで、SableCC 経由でコンパイラを生成する CFG 本体を作成しています。指定されたサンプルには、プログラムの先頭と末尾にそれぞれ「 Start」と「End 」があります。
サンプルコード
Start
Print 10;
int a,b;
End
プロダクションには表示されないので、トークンでもあると思います。だから私は文法でそれらを次のように書きました:
Tokens
number = ['0'...'9']+;
identifier = letter(letter|number)*;
opaddsub = '+' | '-';
opmuldiv = '*' | '/';
opsemicolon = ';';
opequal = '=';
parleft = '(';
parright = ')';
comma = ',';
blank = (' ' | 13 | 10 | 9 )+;
start = 'Start'
end = 'End'
自信がなく、どのように作品を書かなければならないのか、いまだに戸惑っていますが、助けてもらいたいです。