Я разбираю javascript ES6, однако не могу заставить его работать без точек с запятой.Я использовал грамматику Тина из ES5 в качестве основы (https://github.com/usethesource/rascal/blob/master/src/org/rascalmpl/library/lang/javascript/saner/Syntax.rsc) и уже получил большинство новых функций от ES6, но я до сих пор не могу устранить необходимость в точках с запятой
Взять, например:
lexical Whitespace
= [\t-\n\r\ ];
lexical LAYOUT
= Whitespace
| Comment
;
layout LAYOUTLIST
= LAYOUT*
!>> [\t\ \n]
!>> "/*"
!>> "//" ;
syntax Variable
= VariableIdentifier {VariableDeclaration ","}+ declarations ";"
syntax Statement
= varDecl: Variable varDecl;
Я получаю ошибку синтаксического анализа, заменив ";"в "\ n" в синтаксической переменной или даже в создании нового правила для конца оператора:
syntax EOS
= ";" | "\n";
Ошибка синтаксического анализа переходит на следующую строку после новой строки.
Удаление из пробеловили из раскладки выдает ошибку синтаксического анализа комментариев в начале файла.
А удаление из списка макетов дает мне двусмысленность.