[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Questions
Hello,
Question 1
********
I will have to produce an extension of a DepthFirstAdapter generated by
SableCC itself.
For instance for the rule:
suite02_bmr70 = thdr one_entity suite02_bmr70
| {empty}
;
I have to produce the java code
public void caseASuite01Bmr70(ASuite01Bmr70 node)
{ System.out.println("caseASuite01Bmr70") ;
bmrcou = new BMR70K() ;
// Get one_entity
(node.getOneEntity()).apply(this) ;
// Add vector
bmrcou.AddToVector_liste_entity(symcou) ;
// Next Apply
(node.getSuite02Bmr70()).apply(this) ;
}
So do you know a SableCC method: Convert
Convert(suite02_bmr70) gives Suite01Bmr70
Convert(one_entity) gives OneEntity.
Question 2
********
Normally, I use the Lexer and the Parser (generated by SableCC) I have a
finished input : a File.
In my case, my input is a TCP/IP Stream, where a End of Stream says
"This is the end, or this is an error".
The parser is able to say : " I have read a full coherent sequence,
therefore I want to stop and do the AST walk to produce actions. Then I
want to continu reading from the TCP/IP Stream."
My question is : How can I say to the parser, stop when you have see a
coherent block (I can write in the grammar, that I have a coherent
block).
Thanks.