首页 > 解决方案 > 这种任意语言中的“开始”和“结束”是否应该与 CFG 有关?

问题描述

因此,我正在编写一个 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'

虽然我没有信心,如何写作品仍然让我感到困惑,但我想得到帮助。

标签: context-free-grammarsablecc

解决方案


推荐阅读