【问题标题】:ANTLRWorks 1.4.3 not displaying some characters such as vertical bar and open parenthesisANTLRWorks 1.4.3 不显示竖线和开括号等字符
【发布时间】:2012-01-16 19:58:48
【问题描述】:

如果此问题已在本网站的其他地方提出并解决,请原谅我。当我在 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 环境。希望这可以帮助其他遇到同样问题的人。谢谢,巴特!

【问题讨论】:

  • 我认为该语法(或其中的字符)没有任何奇怪之处。 “不显示某些字符”到底是什么意思:整个字符在编辑器区域中不可见,还是在语法图选项卡中不可见?截图会有所帮助。如果从语法生成词法分析器和解析器会发生什么?
  • 编辑原始帖子是正确的做法。谢谢。但是,我认为我对您的帮助不大:我从未听说过您提到的问题。我能想到的就是你尝试不同版本的 ANTLRWorks 或更改 ANTLRWorks 中的字体和/或字体大小,看看是否有帮助......祝你好运!
  • 约翰,您可以在原始帖子中添加新信息,并且您刚刚发布的此类小更新最好作为评论添加(如此)。请注意,如果您找到了解决方案,则可以回答您自己的问题。祝你好运!
  • 约翰,很高兴听到你解决了这个问题!您能否将您的解决方案转变为真正的答案?如果人们现在扫描您的问题(没有读到最后)并向下滚动到答案部分,他们可能会认为问题尚未解决。谢谢。
  • 您可以通过发表自己的评论来回复cmets,每个帖子下方都有“添加评论”链接..

标签: antlrworks


【解决方案1】:

我也遇到过这个问题,在配置菜单中更改 ANTLR-works 字体后,现在所有字符都正确显示。我已将字体更改为等宽 14 磅。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-10-21
    • 1970-01-01
    • 2018-09-23
    • 2013-06-22
    • 2020-05-05
    • 2016-01-27
    相关资源
    最近更新 更多