ANTLRWorks 1.4.3 не отображает некоторые символы, такие как вертикальная черта и открытая скобка - PullRequest
3 голосов
/ 16 января 2012

Простите, если этот вопрос был задан и адресован в другом месте на этом сайте. Когда я набираю пример грамматики в ANTLRWorks 1.4.3, редактор не отображает некоторые символы, такие как вертикальная черта ('|') или открытая скобка '('. Я заметил, что где-то на этом сайте Майя Пощ задала вопрос на расширенные символы 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

Код выглядит беспорядочным, поскольку вертикальная черта и символы открытых скобок не видны на панели редактора. Но когда я копирую текст из редактора в сегмент кода в этой публикации, эти пропущенные символы отображаются так, как я писал выше. Однако буквально открытая скобка ('(') остается видимой. Может ли это быть проблемой конфигурации для редактора?

Когда я генерирую код, все работает просто отлично. Кроме того, синтаксическая диаграмма правильно отображает правило. Это просто отсутствующие / невидимые символы в правиле грамматики, которые вызывают беспокойство. Я использую ANTLRWorks на MacBook Pro.

Редактировать: По предложению Барта, я попробовал другой шрифт, и эти невидимые символы отображаются на панели редактора. Я перешел на страницу настроек и изменил шрифт на другой, отличный от стандартного Courier New. Мой компьютер - MacBook Pro, так что это может относиться к среде Mac. Надеюсь, что это помогает другим, испытывающим ту же проблему. Спасибо, Барт!

1 Ответ

2 голосов
/ 10 декабря 2012

У меня тоже пострадала эта проблема и после изменения ANTLR-works шрифт в меню конфигурации теперь все символы отображаются корректно. Я изменил шрифт на моноширинный 14 пунктов.

...