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
rewrite.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";
- }
- {
- #include <iostream>
- }
- class Rewrite extends Lexer;
- //protected
- START
- options {
- ignore=WS_;
- }
- : id:ID ":="! '('! expr:EXPR ')'!
- {
- // can access text matched for any rule
- std::cout << "found " << id->getText() << "," << expr->getText() << std::endl;
- // text will be ID+EXPR minus whitespace
- }
- ;
- protected
- ID : ( let:LETTER {std::cout << "letter " << let->getText() << std::endl;} )+
- ;
- protected
- LETTER
- : 'a'..'z'
- {
- std::string s = $getText; // get access text of this rule
- // $setText(s.toUpperCase()); // can reset it too
- $setText(s); // can reset it too
- }
- ;
- protected
- EXPR: i:INT! // don't include, but i->getText() has access
- {$setText(i->getText());} // effect is if no "!" and no "i:"
- | ID
- ;
- protected
- INT : ('0'..'9')+
- ;
- // what if ! on rule itself and invoker had !...should
- // rule return anything in the token to the invoker? NO!
- // make sure 'if' is in the right spot
- // What about no ! on caller but ! on called rule?
- protected
- WS_! : ( ' ' // whitespace not saved
- | 't'
- | 'n' {newline();}
- )+
- {$setType(ANTLR_USE_NAMESPACE(antlr)Token::SKIP);} // way to set token type
- ;