diff --git a/README.md b/README.md index a9a5f75..b531700 100644 --- a/README.md +++ b/README.md @@ -9,7 +9,9 @@ turtle ::= Turtle(phrase*) phrase ::= Phrase(entity, aff*) aff ::= Aff(ntity, complement*) complement ::= Complement(entity) - | Complement_Text(String) + | Complement_Text(text) +text ::= Text(entity) + |TextSTR(String) entity ::= Entity(String) ``` @@ -25,8 +27,12 @@ aff ::= Aff(entity, complement*) complement*.v = entity.val complement ::= Complement(entity) complement.c = entity.val - | Complement_Text(String) - complement.c = String.self + | Complement_Text(text) + complement.c = text.val +text ::= Text(entity) + text.val = entity.val + |TextSTR(String) + text.val = String.self entity ::= Entity(String) entity.val=String.self diff --git a/src/main/antlr/TurtleParser.g b/src/main/antlr/TurtleParser.g index 321ebf1..79f1bdb 100644 --- a/src/main/antlr/TurtleParser.g +++ b/src/main/antlr/TurtleParser.g @@ -62,9 +62,15 @@ verbe returns[String val] : comp[TurtleAST parent] : LC enC=entity RC // {parent.addComplement($enC.val,false);} - | G sC=STRING G //"STRING" + | G text[parent] G //"STRING" ou "ID" + ; +text[TurtleAST parent] : + sC=STRING {parent.addComplement($sC.text,true);} - ; + |enC2=entity + {parent.addComplement($enC2.val,true);} + ; + entity returns[String val] : i=ID {$val = $i.text;} diff --git a/tests/test2.ttl b/tests/test2.ttl index c03c586..3c4ab6c 100755 --- a/tests/test2.ttl +++ b/tests/test2.ttl @@ -1,6 +1,6 @@ ; "Master 1 en informatique" ; - "M1A"; + "M1"; ; , , . ;