Files
tp2-vsl-pds/README.md
Vu Tuan Minh 88c5047e5f tableau
2025-04-30 13:44:12 +02:00

98 lines
2.4 KiB
Markdown

# TP2 PDS - VSL+
Réalisé par Thibaut ROCHAS et Tuan Minh VU
#### Program
```
Program ::= Program(Function+)
```
#### Function
```
Function ::= Function(Type, String, Var*, Instruction)
| Prototype(Type, String, Var*)
```
#### Var
```
Var ::= Var(String)
```
#### Declaration
```
Declaration ::= Declaration(Type, String+)
```
#### Instruction
```
Instruction ::= Assign(String, Expression)
| Return(Expression)
| Bloc(Instruction+)
| BlocWithDecl(Declaration+, Instruction+)
| VoidFunctionCall(String, Expression*)
| IfThen(Expression, Instruction)
| IfThenElse(Expression, Instruction, Instruction)
| While(Expression, Instruction)
| Read(Var+)
| Print(ExpressionOuText+)
```
#### Expression
```
ExpressionOuText ::= Expression
| Text(String)
Expression ::= Binop(Op, Expression, Expression)
| Const(Int)
| Var(String)
| Call(String, Expression*)
| Paren(Expression)
```
#### Autres
```
Op ::= PLUS | MINUS | TIMES | DIV | MOD
Type ::= INT | VOID
```
## Etat
## Compatibilité
Pour construire le compilateur :
- Java JDK 21
- ANTLR3 3.5.2
- Gradle 8.5
Back-end LLVM, et scripts de tests :
- clang 17 ou +
- Python3, avec bibliothèque colorama
## Construction, exécution
Pour construire le projet, depuis la racine du projet :
```bash
./gradlew build
```
Pour exécuter le programme Java TP2.Main, depuis la racine du projet :
```bash
java -jar build/libs/TP2.jar [args]
```
## Structure du projet
Fichiers de code source et de tests
- `src/main/java/` : fichiers sources Java à compléter
- `src/main/antlr/` : fichier sources ANTLR à compléter
- `tests/` : fichiers textes à utiliser pour les tests
- `compile` : script de compilation VSL+ vers binaire
- `runAllTests.py` : script python pour exécuter tous les tests
Moteur de production Gradle
- `settings.gradle`, `build.gradle` : configuration Gradle
- `gradle/wrapper` : exécutable de Wrapper Gradle
- `gradlew`, `gradlew.bat` : scripts (unix/windows) à exécuter depuis le terminal pour lancer le moteur de production
Environnement VSCode
- `.vscode` : configuration de VSCode
- `eclipse-formatter.xml` : formatage de code source Java, optionnel
Git
- `.gitignore` : configuration pour ignorer certains fichiers et répertoires