Code/Resource
Windows Develop
Linux-Unix program
Internet-Socket-Network
Web Server
Browser Client
Ftp Server
Ftp Client
Browser Plugins
Proxy Server
Email Server
Email Client
WEB Mail
Firewall-Security
Telnet Server
Telnet Client
ICQ-IM-Chat
Search Engine
Sniffer Package capture
Remote Control
xml-soap-webservice
P2P
WEB(ASP,PHP,...)
TCP/IP Stack
SNMP
Grid Computing
SilverLight
DNS
Cluster Service
Network Security
Communication-Mobile
Game Program
Editor
Multimedia program
Graph program
Compiler program
Compress-Decompress algrithms
Crypt_Decrypt algrithms
Mathimatics-Numerical algorithms
MultiLanguage
Disk/Storage
Java Develop
assembly language
Applications
Other systems
Database system
Embeded-SCM Develop
FlashMX/Flex
source in ebook
Delphi VCL
OS Develop
MiddleWare
MPI
MacOS develop
LabView
ELanguage
Software/Tools
E-Books
Artical/Document
calc.g
Package: antlr-2_7_0.zip [view]
Upload User: afrynkmhm
Upload Date: 2007-01-06
Package Size: 1262k
Code Size: 1k
Category:
Compiler program
Development Platform:
Others
- options {
- language=Cpp;
- }
- class CalcParser extends Parser;
- options {
- buildAST = true; // uses CommonAST by default
- // ASTLabelType = "antlr.CommonAST";
- }
- expr
- : mexpr (PLUS^ mexpr)* SEMI!
- ;
- mexpr
- : atom (STAR^ atom)*
- ;
- atom: INT
- ;
- class CalcLexer extends Lexer;
- WS_ : (' '
- | 't'
- | 'n'
- | 'r')
- { _ttype = ANTLR_USE_NAMESPACE(antlr)Token::SKIP; }
- ;
- LPAREN: '('
- ;
- RPAREN: ')'
- ;
- STAR: '*'
- ;
- PLUS: '+'
- ;
- SEMI: ';'
- ;
- protected
- DIGIT
- : '0'..'9'
- ;
- INT : (DIGIT)+
- ;
- class CalcTreeWalker extends TreeParser;
- options {
- buildAST = true;
- // ASTLabelType = "antlr.CommonAST";
- }
- expr:! #(PLUS left:expr right:expr)
- {
- if ( #right->getType()==INT &&
- atoi(#right->getText().c_str())==0 ) // x+0
- {
- #expr = #left;
- }
- else if ( #left->getType()==INT &&
- atoi(#left->getText().c_str())==0 ) // 0+x
- {
- #expr = #right;
- }
- else { // x+y
- #expr = #(PLUS, left, right);
- }
- }
- | #(STAR expr expr)
- | i:INT
- ;