diff options
| author | Martin <marcin.j.chrzanowski@gmail.com> | 2019-11-23 16:18:49 +0100 | 
|---|---|---|
| committer | GitHub <noreply@github.com> | 2019-11-23 16:18:49 +0100 | 
| commit | 22f6a3082d5e9698e3be4208ca68cd6724239fd0 (patch) | |
| tree | 6dd78ad1333c18f3b1578b2958d9c7ef687a25c1 /src/main/java/pl/edu/mimuw/cloudatlas/interpreter | |
| parent | d683a761b2710a252b0bfb1b3f0879a60247bb50 (diff) | |
Interpreter conversions (#26)
Diffstat (limited to 'src/main/java/pl/edu/mimuw/cloudatlas/interpreter')
| -rw-r--r-- | src/main/java/pl/edu/mimuw/cloudatlas/interpreter/Interpreter.java | 9 | ||||
| -rw-r--r-- | src/main/java/pl/edu/mimuw/cloudatlas/interpreter/ResultColumn.java | 16 | 
2 files changed, 18 insertions, 7 deletions
| diff --git a/src/main/java/pl/edu/mimuw/cloudatlas/interpreter/Interpreter.java b/src/main/java/pl/edu/mimuw/cloudatlas/interpreter/Interpreter.java index 289f99d..6129f48 100644 --- a/src/main/java/pl/edu/mimuw/cloudatlas/interpreter/Interpreter.java +++ b/src/main/java/pl/edu/mimuw/cloudatlas/interpreter/Interpreter.java @@ -329,8 +329,13 @@ public class Interpreter {          }          public Result visit(CondExprAndC expr, Environment env) { -            // TODO -            throw new UnsupportedOperationException("CondExprAndC Not yet implemented"); +            try { +                Result left = expr.condexpr_1.accept(new CondExprInterpreter(), env); +                Result right = expr.condexpr_2.accept(new CondExprInterpreter(), env); +                return left.and(right); +            } catch(Exception exception) { +                throw new InsideQueryException(PrettyPrinter.print(expr), exception); +            }          }          public Result visit(CondExprNotC expr, Environment env) { diff --git a/src/main/java/pl/edu/mimuw/cloudatlas/interpreter/ResultColumn.java b/src/main/java/pl/edu/mimuw/cloudatlas/interpreter/ResultColumn.java index b551955..1c0db30 100644 --- a/src/main/java/pl/edu/mimuw/cloudatlas/interpreter/ResultColumn.java +++ b/src/main/java/pl/edu/mimuw/cloudatlas/interpreter/ResultColumn.java @@ -4,6 +4,7 @@ import java.util.ArrayList;  import java.util.List;  import pl.edu.mimuw.cloudatlas.model.Type; +import pl.edu.mimuw.cloudatlas.model.TypePrimitive;  import pl.edu.mimuw.cloudatlas.model.TypeCollection;  import pl.edu.mimuw.cloudatlas.model.Value;  import pl.edu.mimuw.cloudatlas.model.ValueBoolean; @@ -100,7 +101,7 @@ class ResultColumn extends Result {      @Override      public Result random(int size) { -        return new ResultColumn( +        return new ResultSingle(              randomList(                  new ValueList(                      column, @@ -124,13 +125,18 @@ class ResultColumn extends Result {      @Override      public ResultSingle isNull() { -        throw new UnsupportedOperationException("Operation isNull not supported yet."); -        // return new ResultSingle(new ValueBoolean(value.isNull())); +        return new ResultSingle(new ValueBoolean(true));      }      @Override      public Type getType() { -        throw new UnsupportedOperationException("Operation getType not supported yet."); -        // return value.getType(); +        Type type = TypePrimitive.NULL; +        for (Value value : column) { +            if (value.getType() != TypePrimitive.NULL) { +                type = value.getType(); +            } +        } + +        return type;      }  } |