From 4a01a66dba3b38b7f92a97eeb629180a39abd272 Mon Sep 17 00:00:00 2001 From: trochas Date: Fri, 14 Feb 2025 13:16:56 +0100 Subject: [PATCH] renommage de bloc en phrase dans le Parser + ReadMe --- README.md | 23 +++++++++-------------- src/main/antlr/TurtleParser.g | 8 ++++---- 2 files changed, 13 insertions(+), 18 deletions(-) diff --git a/README.md b/README.md index d48179a..8f86ade 100644 --- a/README.md +++ b/README.md @@ -36,11 +36,12 @@ text ::= Text(entity) entity ::= Entity(String) entity.val=String.self + ``` |TAD |Nom d'attribut |Type | Polarité |----------------|-----------------|---------------------|---------| |phrase | |String |H -|aff | |String |H +|aff |s |String |H |complement |s |String |H |complement |v |String |H |complement |c |String |H/S @@ -48,21 +49,15 @@ entity ::= Entity(String) -|TAD |Nom d'attribut |Type | Polarité -|----------------|-----------------|---------------------|---------| -|turtle |val |list(Phrase) |S -|phrase |sujet_p |String |H -|phrase |affs |list(Aff) |S -|aff |sujet_a |String |H -|aff |vebre_a |String |H -|aff |comps |list(comp) |S -|complement |sujet_c |String |H -|complement |verbe_c |String |H -|complement |comp_c |String |H/S -|Entity |val |String |S - ##Analyse lexicale et syntaxique +#Lexer + +#Parser +Au début on créer un objet TutrleAST, il génère la structure Ntriple. On transmet le TurtleAST aux "phrase" enfants + +#Difficulté : +Nous avons ID qui est un String avec composé de lettres (non accentuées) et de chiffres, commençant obligatoirement par une lettre, et STRING qui peut être n'importe quelle chaîne de caractères (hors "). La grammaire était ambiguë, ce qui provoquait une erreur de compilation de Java diff --git a/src/main/antlr/TurtleParser.g b/src/main/antlr/TurtleParser.g index 79f1bdb..c538b40 100644 --- a/src/main/antlr/TurtleParser.g +++ b/src/main/antlr/TurtleParser.g @@ -23,15 +23,15 @@ options { } turtle returns[TurtleAST t]: {$t = new TurtleAST();} - bloc[t] EOF + phrase[t] EOF {$t.finishNtriple();} ; -bloc [TurtleAST parent]: +phrase [TurtleAST parent]: s=sujet {$parent.addSujet($s.val);} - listvc[parent] P moreBloc[parent] // list. + listvc[parent] P morePhrase[parent] // list. ; -moreBloc [TurtleAST parent] : bloc[parent] +morePhrase [TurtleAST parent] : phrase[parent] | ; sujet returns[String val]: