Простите меня, если этот вопрос был задан и рассмотрен в другом месте на этом сайте. Когда я набираю образец грамматики в 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. Надеюсь, это поможет другим, столкнувшимся с той же проблемой. Спасибо, Барт!