读取消息时用空格替换\ n

时间:2015-10-01 13:00:12

标签: compiler-construction grammar lexer javacc

我需要阅读一条写在多行上的消息,现在我正在跳过换行符\n,但我需要在阅读时用空格替换\n消息(在编译之前)

例如:

message: " I'm going
to parse
this
message"

如果我跳过\n要解析的邮件将是I'm goingto parsethismessage 但我需要它I'm going to parse this message

有没有办法在javacc中通过语法时用空格替换\n

2 个答案:

答案 0 :(得分:0)

我假设您的令牌管理器规则看起来像这样

SKIP: { < "\n" > }
TOKEN: { < SPACE: " " > }
...

替换它们
TOKEN: { < SPACE: " " | "\n" > }
...

答案 1 :(得分:0)

我想我通过将其添加为特殊标记来解决它

SPECIAL_TOKEN:
{
    < SPACE : ((" ")+ ) | < new_line > | < new_line> (" ")+ >
|  <# new_line : "\n" >
}