lin*_*bin 1 compiler-construction syntax grammar scala
我正在学习Scala 语法规范。
被if-else语法弄糊涂了:
Expr1 ::= ‘if’ ‘(’ Expr ‘)’ {nl} Expr [[semi] ‘else’ Expr]
| ...
Run Code Online (Sandbox Code Playgroud)
它如何在 if-else 下方匹配以分号结尾的一行表达式?
if (true) // \n
println(1); //\n
else //\n
println(2); //\n
Run Code Online (Sandbox Code Playgroud)
请注意,有 4 行,每行后跟一个'\n'. 我有这些问题:
;afterprintln(1)匹配semibefore else( [[semi] ‘else’ Expr]) 时,如何匹配'\n'after ;after的第二个println(1)?'\n'之后怎么匹配else?;和4号'\n'之后如何匹配println(2)?由于if-else不匹配任何;或'\n'尾部。