java - JavaCC recognise token within token -
i'm having problem javacc project. i'm trying recognise variable declaration has possible "variable" prefix, kind , name of variable (id). parser recognise first word kind , not go on rest of line.
it says:
exception in thread "main" parseexception: encountered " <kind> "char "" @ line 2, column 9. expecting 1 of: <variable> ...
here's how tokens declared
token : { <start: "start"> {debugstream.println("start");} | <end: "end"> {debugstream.println("end");} | <variable: ("variable" <kind> <id>) | (<kind> <id>)> {debugstream.println("variable decl");} | <kind: "integer"|"real"|"logic"|"char"|"text"> {debugstream.println("kind");} | <id: (["a"-"z","_"])+> {debugstream.println("id");} }
i've tried set kind , id special_tokens, parser goes without errors, don't recognise variable declaration too.
edit:
here's input string
start char sex integer num end
if want "char sex" tokenize 1 token of kind variable
need allow spaces in variable
s. e.g.
<variable: ("variable" (" ")+ <kind> (" ")+ <id>) | (<kind> (" ")+ <id>)>
however, i'd suggest consider doing following: alter variable
rule to
<variable: "variable">
write new nonterminal
void variable() : {} { <variable> <kind> <id> | <kind> <id> }
java token javacc
No comments:
Post a Comment