📄 test.g
字号:
/* Ariel Tamches (tamches@cs.wisc.edu):
* This tests linking in a simple non-DLG scanner
*/
/* We assume that #tokdefs is not employed for this example; i.e.,
* ANTLR assigns token numbers.
*
* ANTLR option -gx must be used to turn off generation of DLG crud (when you
* want to define your own token stream).
*/
/* user must define ANTLRToken outside of #header */
<<
typedef ANTLRCommonToken ANTLRToken; /* use a predefined Token class */
>>
/* At this point, ANTLRToken and ANTLRTokenStream are defined, user must now
* derive a class from ANTLRTokenStream (which embodies the user's scanner)
*/
<<#include "MyLexer.h">>
<<
int main()
{
/* create one of my scanners */
MyLexer scan;
ANTLRTokenBuffer pipe(&scan);
/* create a parser of type Expr hooked to my scanner */
Expr parser(&pipe);
parser.init();
parser.setEofToken(Eof);
parser.e(); /* start parsing at rule 'e' of that parser */
return 0;
}
>>
class Expr { /* Define a grammar class */
e : IDENTIFIER NUMBER
<<fprintf(stderr, "text is %s,%s\n", $1->getText(), $2->getText());>>
Eof
;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -