|
| |
"JavaCC: The Evolution of New Wave Parser Generation Technology"
Vol. 7, Issue 3, p. 64
Listing 1
// 1. Class specification
PARSER_BEGIN(Simple)
public class Simple {
public static void main(String args[]) throws ParseException {
Simple parser = new Simple(System.in);
parser.Input();
}
}
PARSER_END(Simple)
// 2. Lexical specification
SKIP :
{
" "
| "\t"
| "\n"
| "\r"
}
TOKEN :
{
<LBRACE: "{">
| <RBRACE: "}">
}
// 3. Grammar specification
void Input() :
{}
{
MatchedBraces() <EOF>
}
void MatchedBraces() :
{}
{
<LBRACE> [ MatchedBraces() ] <RBRACE>
}
Listing 2
// 1. Class specification
PARSER_BEGIN(Simple)
public class Simple {
public static void main(String args[]) throws ParseException {
Simple parser = new Simple(System.in);
parser.Input();
}
}
PARSER_END(Simple)
// 2. Lexical specification
SKIP :
{
" "
| "\t"
| "\n"
| "\r"
}
TOKEN :
{
<LBRACE: "{"> { System.out.println("Lexical action: Encountered LBRACE"); }
| <RBRACE: "}"> { System.out.println("Lexical action: Encountered RBRACE"); }
}
// 3. Grammar specification
void Input() :
{}
{
MatchedBraces() <EOF>
}
void MatchedBraces() :
{}
{
<LBRACE>
{ System.out.println("Parser action: Successfully parsed LBRACE"); }
[ MatchedBraces() ]
<RBRACE>
{ System.out.println("Parser action: Successfully parsed RBRACE"); }
}
|
|
All Rights Reserved
Copyright © 2004 SYS-CON Media, Inc.
E-mail: info@sys-con.com
Java and Java-based marks are trademarks or registered trademarks of Sun Microsystems, Inc. in the United States and other countries. SYS-CON Publications, Inc. is independent of Sun Microsystems, Inc.
|