我有一组关键字(如IF,FOR等),所有这些关键字均使用常规编程语言。每个语句以“;”结尾。 我面临的问题是我无法为打印语句编写语法。 每个打印语句以“:”开头。我已经跳过了所有行尾字符和空格。 如果我有连续的打印语句,我将面临挑战。
例如:
:$name This is first line
:This is second line
我的语法:
stmt : printStmt+
printStmt: ':' printlite;
printlite : (anychar|('$' identifier))+;
anychar: ~(allKeywords) ;
AST包含 AST output
我尝试在任何char,printlite,printstmt的末尾添加EOL,但似乎没有任何效果。预期的输出是2个printStmt节点。我跳过了所有的'\ r \ n'。
为了更好地理解,这是我要解析的部分:
FUNCTION xyz(STRING searchStr)
{
:Error while reading a file $name
abc();
}
我的语法中所有空白和行尾字符都被跳过。 请提出建议。