Implementation ANTLR
This commit is contained in:
@@ -21,31 +21,50 @@ options {
|
|||||||
@members {
|
@members {
|
||||||
|
|
||||||
}
|
}
|
||||||
prog : bloc EOF
|
prog returns[TurtleAST t]:
|
||||||
{$t = new TurtleAST()}
|
{$t = new TurtleAST();}
|
||||||
|
bloc[t] EOF
|
||||||
;
|
;
|
||||||
bloc : sujet listvc P // <entity> list.
|
bloc [TurtleAST parent]:
|
||||||
|
s=sujet listvc[parent] P moreBloc[parent] // <entity> list.
|
||||||
|
{$parent.addSujet($s.val);}
|
||||||
;
|
;
|
||||||
sujet : LC entity RC //<entity>
|
moreBloc [TurtleAST parent] : bloc[parent]
|
||||||
;
|
|
||||||
listvc : vc more //<verbe> (;<verbe>)*
|
|
||||||
;
|
|
||||||
more : SEMI listvc // ; <verbe>*
|
|
||||||
|
|
|
|
||||||
;
|
;
|
||||||
vc : LC verbe RC listc //REvoir avec un arbre car in géné avec listvc < <verbe> com >
|
sujet returns[String val]:
|
||||||
|
LC en=entity RC //<entity>
|
||||||
|
{$val = $en.val;}
|
||||||
;
|
;
|
||||||
listc : comp morec //on ne peut pas mettre le <> ici car on peut assi mettre des ""
|
listvc [TurtleAST parent] :
|
||||||
|
vc[parent] more[parent] //<verbe> (;<verbe>)*
|
||||||
;
|
;
|
||||||
morec : V listc //correction : listc au lieux de comp
|
more[TurtleAST parent] :SEMI listvc[parent] // ; <verbe>*
|
||||||
|
|
|
|
||||||
;
|
;
|
||||||
verbe : ID
|
vc [TurtleAST parent] :
|
||||||
|
LC v=verbe RC listc[parent]
|
||||||
|
{$parent.addVerbe($v.val);}
|
||||||
;
|
;
|
||||||
comp : LC ID RC //<ID>
|
listc [TurtleAST parent] :
|
||||||
| G ID G //"ID"
|
comp[parent] morec[parent] //on ne peut pas mettre le <> ici car on peut assi mettre des ""
|
||||||
;
|
;
|
||||||
entity : ID
|
morec [TurtleAST parent] : V listc[parent] //correction : listc au lieux de comp
|
||||||
|
|
|
||||||
|
;
|
||||||
|
verbe returns[String val] :
|
||||||
|
i=ID
|
||||||
|
{$val = $i.text;}
|
||||||
|
;
|
||||||
|
comp[TurtleAST parent] :
|
||||||
|
LC i=ID RC //<ID>
|
||||||
|
{parent.addComplement($i.text,false);}
|
||||||
|
| G i=ID G //"ID"
|
||||||
|
{parent.addComplement($i.text,true);}
|
||||||
|
;
|
||||||
|
entity returns[String val] :
|
||||||
|
i=ID
|
||||||
|
{$val = $i.text;}
|
||||||
;
|
;
|
||||||
|
|
||||||
turtle returns[TurtleAST t]:
|
turtle returns[TurtleAST t]:
|
||||||
|
|||||||
@@ -41,6 +41,15 @@ public class TurtleAST {
|
|||||||
this.listPhrases = new ArrayList<>();
|
this.listPhrases = new ArrayList<>();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public TurtleAST(String sujet, String verbe, String complement, Boolean isText){
|
||||||
|
this.listPhrases = new ArrayList<>();
|
||||||
|
EntityImp s = new EntityImp(sujet, false);
|
||||||
|
EntityImp v = new EntityImp(verbe, false);
|
||||||
|
EntityImp c = new EntityImp(complement, isText);
|
||||||
|
PhraseImp phrase = new PhraseImp(s,v,c);
|
||||||
|
this.listPhrases.add(phrase);
|
||||||
|
}
|
||||||
|
|
||||||
public void addSujet(String sujet){
|
public void addSujet(String sujet){
|
||||||
this.currentSujet=sujet;
|
this.currentSujet=sujet;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user