From efae49ba9ce890a335d7df16db892ef5912d80ed Mon Sep 17 00:00:00 2001 From: Vu Tuan Minh Date: Mon, 31 Mar 2025 00:30:39 +0200 Subject: [PATCH] test fragment --- README.md | 7 +++++ src/main/antlr/VSLLexer.g | 42 +++++++++++++++++++++++++++--- src/main/antlr/VSLParser.g | 14 +++++++++- src/main/java/TP2/asd/Program.java | 1 - 4 files changed, 59 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index 62b49c4..377cfc6 100644 --- a/README.md +++ b/README.md @@ -6,6 +6,13 @@ Vous pouvez forker ce dépôt, mais devez impérativement garder votre dépôt p Ce fichier `README.md` doit être complété au fur et à mesure de votre avancement. + +func::=Func(String,) + + + + + ## Compatibilité Pour construire le compilateur : diff --git a/src/main/antlr/VSLLexer.g b/src/main/antlr/VSLLexer.g index 5eb1b72..a80ca2f 100644 --- a/src/main/antlr/VSLLexer.g +++ b/src/main/antlr/VSLLexer.g @@ -8,6 +8,45 @@ options { package TP2; } +FUNCTION: 'FUNC' + ; +PROTOTYPE: 'PROTO' + ; +TYPE_INT: 'INT' + ; +TYPE_VOID: 'VOID' + ; +LE : '<=' + ; +LT : '<' + ; +GE : '>=' + ; +GT : '>' + ; +IF : 'IF' + ; +THEN : 'THEN' + ; +ELSE : 'ELSE' + ; +FIN : 'FI' + ; +WHILE : 'WHILE' + ; +DO : 'DO' + ; +DONE : 'DONE' + ; +READ : 'READ' + ; +PRINT : 'PRINT' + ; +TEXT : '"' (ASCII)+ '"' {getText().substring(1,getText().length()-1)} + ; +NUMBER : (DIGIT)+ + ; + WS : (' '|'\n'|'\t') { skip(); } ; @@ -17,6 +56,3 @@ COMMENT : '//' (~'\n')* { skip(); } fragment LETTER : 'a'..'z' ; fragment DIGIT : '0'..'9' ; fragment ASCII : ~('\n'|'"'); - - - diff --git a/src/main/antlr/VSLParser.g b/src/main/antlr/VSLParser.g index e3fd426..7234e46 100644 --- a/src/main/antlr/VSLParser.g +++ b/src/main/antlr/VSLParser.g @@ -21,4 +21,16 @@ options { } -program returns [Program p] : /* TODO */; +program returns [Program p] : + func=function + EOF + {$p = new Program($func.p);} +; + + +function returns [List out]: + {$out = new ArrayList();} +; + +prototype returns [Program p]: + ; diff --git a/src/main/java/TP2/asd/Program.java b/src/main/java/TP2/asd/Program.java index 7d4a814..4582f6f 100644 --- a/src/main/java/TP2/asd/Program.java +++ b/src/main/java/TP2/asd/Program.java @@ -1,5 +1,4 @@ package TP2.asd; public record Program() { - }