如果在本网站的其他地方已经提出并解决了这个问题,请原谅我。当我在ANTLRWorks 1.4.3中输入样本语法时,编辑器不会显示一些字符,例如竖线('|')或左括号'('。我注意到这个网站的某个地方Maya Posch问了一个问题在扩展的ASCII字符没有正确处理但我似乎有不同的情况。当我从教程中键入一个示例语法时,我无法在编辑器屏幕中看到这些字符。但是,编辑器窗格下面的语法图表似乎识别那些“缺失”字符的存在。以下是语法(奇怪的是,当我复制并粘贴到这里时,它们会显示如下!):
grammar Expr;
// START:stat
prog: stat+ ;
stat: expr NEWLINE
| ID '=' expr NEWLINE
| NEWLINE
;
// END:stat
// START:expr
expr: multExpr (('+'|'-') multExpr)*
;
multExpr
: atom ('*' atom)*
;
atom: INT
| ID
| '(' expr ')'
;
// END:expr
// START:tokens
ID : ('a'..'z'|'A'..'Z')+ ;
INT : '0'..'9'+ ;
NEWLINE:'\r'? '\n' ;
WS : (' '|'\t')+ {skip();} ;
// END:tokens
以下是我在编辑器中看到的内容:
grammar Expr;
// START:stat
prog: stat+ ;
stat: expr NEWLINE
ID '=' expr NEWLINE
NEWLINE
;
// END:stat
// START:expr
expr: multExpr '+' '-') multExpr)*
;
multExpr
: atom '*' atom)*
;
atom: INT
ID
'(' expr ')'
;
// END:expr
// START:tokens
ID : 'a'..'z' 'A'..'Z')+ ;
INT : '0'..'9'+ ;
NEWLINE:'\r'? '\n' ;
WS : ' ' '\t')+ {skip);} ;
// END:tokens
代码看起来很混乱,因为在编辑器窗格中看不到垂直条和左括号字符。但是当我将文本从编辑器复制到此帖子的代码段时,这些丢失的字符确实显示在我最初发布的上面。但是,文字左括号('(')仍然可见。这可能是编辑器的配置问题吗?
当我生成代码时,一切正常。此外,语法图正确显示规则。它只是语法规则中缺失/不可见的字符令人不安。我在MacBook Pro上运行ANTLRWorks。
编辑:正如Bart所建议的,我尝试了不同的字体,这些不可见的字符确实显示在编辑器窗格中。我进入了首选项页面,并将字体更改为默认Courier New以外的其他内容。我的电脑是MacBook Pro,所以这可能是Mac环境特有的。希望这可以帮助其他人遇到同样的问题。谢谢,巴特!
答案 0 :(得分:2)
我也遇到了这个问题,在配置菜单中更改ANTLR工作字体后,现在所有字符都显示正确。我已将字体更改为等宽14分。