Tiny python 添加跳过空行规则,Antlr4
Tiny python add skip blank line rule, Antlr4
语法,我想添加一个规则来跳过空行(第 6 行)
a = 0
b = 2
sum = 0
if b > a:
i = b
sum += i
print(sum)
我已经测试了这段代码,但对我不起作用
WS:[ \t\r\n]+ -> skip;
line 8:4 : missing NEWLINE at 'sum'
编辑:
ss = 4
if 3>1:
ss = 3
#dddd
ss = 4
当我添加上面的代码时,它会报另一个错误
line 4:9 : extraneous input '\n ' expecting {'break', 'continue', 'if', 'while', 'for', 'print', 'def', 'return', NAME, '(', DEDENT}
通过执行 WS:[ \t\r\n]+ '\n'-> skip;
,您实际上是在删除(跳过)i = b
之后的新行及其之后的空行:
i = b
sum += i
结果:
i = b sum += i
这不好:你需要在 i = b
之后换行。
您可以尝试让空行成为 NEWLINE
标记的一部分,而不是跳过空行。所以不要这样做:
NEWLINE
: ( '\r'? '\n' | '\r' | '\f' ) SPACES?
;
你会这样做:
NEWLINE
: ( '\r'? '\n' | '\r' | '\f' ) (SPACES? ( '\r'? '\n' | '\r' | '\f' ))* SPACES?
;
这将确保 i = b
之后的新行不会被删除。
语法,我想添加一个规则来跳过空行(第 6 行)
a = 0
b = 2
sum = 0
if b > a:
i = b
sum += i
print(sum)
我已经测试了这段代码,但对我不起作用
WS:[ \t\r\n]+ -> skip;
line 8:4 : missing NEWLINE at 'sum'
编辑:
ss = 4
if 3>1:
ss = 3
#dddd
ss = 4
当我添加上面的代码时,它会报另一个错误
line 4:9 : extraneous input '\n ' expecting {'break', 'continue', 'if', 'while', 'for', 'print', 'def', 'return', NAME, '(', DEDENT}
通过执行 WS:[ \t\r\n]+ '\n'-> skip;
,您实际上是在删除(跳过)i = b
之后的新行及其之后的空行:
i = b
sum += i
结果:
i = b sum += i
这不好:你需要在 i = b
之后换行。
您可以尝试让空行成为 NEWLINE
标记的一部分,而不是跳过空行。所以不要这样做:
NEWLINE
: ( '\r'? '\n' | '\r' | '\f' ) SPACES?
;
你会这样做:
NEWLINE
: ( '\r'? '\n' | '\r' | '\f' ) (SPACES? ( '\r'? '\n' | '\r' | '\f' ))* SPACES?
;
这将确保 i = b
之后的新行不会被删除。