Compiler construction 读取邮件时用空格替换\n

Compiler construction 读取邮件时用空格替换\n,compiler-construction,grammar,lexer,javacc,Compiler Construction,Grammar,Lexer,Javacc,我需要阅读写在许多行上的邮件,因为现在我跳过了新行字符\n,但我需要在阅读邮件时用空格替换\n(编译之前) 示例: message: " I'm going to parse this message" 如果我跳过\n要解析的消息将是,我将解析此消息 但是我需要它是我要解析这个消息 在查看javacc中的语法时,有没有办法用空格替换\n 我假设您的令牌管理器规则是这样的 SKIP: { < "\n" > } TOKEN: { < SPACE: " " > } ...

我需要阅读写在许多行上的邮件,因为现在我跳过了新行字符
\n
,但我需要在阅读邮件时用空格替换
\n
(编译之前)

示例:

message: " I'm going
to parse
this
message"
如果我跳过
\n
要解析的消息将是
,我将解析此消息
但是我需要它是
我要解析这个消息


在查看javacc中的语法时,有没有办法用空格替换
\n

我假设您的令牌管理器规则是这样的

SKIP: { < "\n" > }
TOKEN: { < SPACE: " " > }
...
跳过:{<“\n”>}
令牌:{}
...
替换为

TOKEN: { < SPACE: " " | "\n" > }
...
标记:{}
...

我假设您的令牌管理器规则如下所示

SKIP: { < "\n" > }
TOKEN: { < SPACE: " " > }
...
跳过:{<“\n”>}
令牌:{}
...
替换为

TOKEN: { < SPACE: " " | "\n" > }
...
标记:{}
...

我想我解决了这个问题,添加了这个作为特殊标记

SPECIAL_TOKEN:
{
    < SPACE : ((" ")+ ) | < new_line > | < new_line> (" ")+ >
|  <# new_line : "\n" >
}
特殊\u令牌:
{
|(“”)+>
|  
}

我想我解决了这个问题,添加了这个作为特殊标记

SPECIAL_TOKEN:
{
    < SPACE : ((" ")+ ) | < new_line > | < new_line> (" ")+ >
|  <# new_line : "\n" >
}
特殊\u令牌:
{
|(“”)+>
|  
}