亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Tiny python 添加跳過空行規則,Antlr4

Tiny python 添加跳過空行規則,Antlr4

蝴蝶刀刀 2022-12-06 15:38:51
我正在使用https://github.com/antlr/grammars-v4/blob/master/python/tiny-python/tiny-grammar-without-actions/Python3.g4語法,我想添加一個規則來跳過空行(第 6 行)a = 0b = 2sum = 0if b > a:    i = b    sum += iprint(sum)我已經測試了這段代碼,但對我不起作用WS:[ \t\r\n]+ -> skip;line 8:4     : missing NEWLINE at 'sum'編輯:ss = 4if 3>1:    ss = 3    #dddd    ss = 4當我添加上面的代碼時,它會報告另一個錯誤line 4:9 : extraneous input '\n ' expecting {'break', 'continue', 'if', 'while', 'for', 'print', 'def', 'return', NAME, '(', DEDENT}
查看完整描述

1 回答

?
森欄

TA貢獻1810條經驗 獲得超5個贊

通過這樣做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不會被刪除。


查看完整回答
反對 回復 2022-12-06
  • 1 回答
  • 0 關注
  • 163 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號