From a9c49676a950f831014139eae225f1e23cc3a0a8 Mon Sep 17 00:00:00 2001 From: FelixKrespach Date: Thu, 17 Aug 2017 15:30:57 +0200 Subject: [PATCH] do statement implemented --- .../SyntaxTreeGenerator/StatementGenerator.java | 5 +++-- .../syntaxtree/statement/DoStmt.java | 16 ++++++++++++++++ test/parser/WhileTest.jav | 7 ++++++- 3 files changed, 25 insertions(+), 3 deletions(-) create mode 100644 src/de/dhbwstuttgart/syntaxtree/statement/DoStmt.java diff --git a/src/de/dhbwstuttgart/parser/SyntaxTreeGenerator/StatementGenerator.java b/src/de/dhbwstuttgart/parser/SyntaxTreeGenerator/StatementGenerator.java index 8dcdde6e..d2fa81ff 100644 --- a/src/de/dhbwstuttgart/parser/SyntaxTreeGenerator/StatementGenerator.java +++ b/src/de/dhbwstuttgart/parser/SyntaxTreeGenerator/StatementGenerator.java @@ -344,8 +344,9 @@ public class StatementGenerator { } private Statement convert(Java8Parser.DoStatementContext stmt){ - //TODO - throw new NotImplementedException(); + Statement block = convert(stmt.statement()); + Expression expr = convert(stmt.expression()); + return new DoStmt(expr,block,stmt.getStart()); } private Statement convert(Java8Parser.ForStatementContext stmt){ diff --git a/src/de/dhbwstuttgart/syntaxtree/statement/DoStmt.java b/src/de/dhbwstuttgart/syntaxtree/statement/DoStmt.java new file mode 100644 index 00000000..caab0b58 --- /dev/null +++ b/src/de/dhbwstuttgart/syntaxtree/statement/DoStmt.java @@ -0,0 +1,16 @@ +package de.dhbwstuttgart.syntaxtree.statement; + +import de.dhbwstuttgart.syntaxtree.type.TypePlaceholder; +import org.antlr.v4.runtime.Token; + +/** + * Created by Felix_K on 17.08.2017. + */ +public class DoStmt extends WhileStmt +{ + + public DoStmt(Expression expr, Statement loopBlock, Token offset) + { + super(expr, loopBlock, offset); + } +} diff --git a/test/parser/WhileTest.jav b/test/parser/WhileTest.jav index 54e354ea..2ce192bd 100644 --- a/test/parser/WhileTest.jav +++ b/test/parser/WhileTest.jav @@ -1,7 +1,12 @@ class WhileTest{ void methode(){ Boolean test; - while(test){ + do{ + test=test; + }while(test); + + + while(test){ test = test; } return;