Должны ли «Начать» и «Конец» на этом произвольном языке быть токеном относительно CFG? - PullRequest
1 голос
/ 03 апреля 2020

Итак, я пишу тело CFG для генерации компилятора через Sable CC, и в приведенных примерах есть " 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'

Хотя я не уверен, и то, как я должен писать постановки, все еще меня озадачивает, я хочу получить помощь.

...