diff options
Diffstat (limited to 'src/main/java/pl/edu/mimuw/cloudatlas/interpreter/query')
65 files changed, 4322 insertions, 0 deletions
diff --git a/src/main/java/pl/edu/mimuw/cloudatlas/interpreter/query/Absyn/AliasedSelItemC.java b/src/main/java/pl/edu/mimuw/cloudatlas/interpreter/query/Absyn/AliasedSelItemC.java new file mode 100644 index 0000000..f1f1b5a --- /dev/null +++ b/src/main/java/pl/edu/mimuw/cloudatlas/interpreter/query/Absyn/AliasedSelItemC.java @@ -0,0 +1,25 @@ +package pl.edu.mimuw.cloudatlas.interpreter.query.Absyn; // Java Package generated by the BNF Converter. + +public class AliasedSelItemC extends SelItem { + public final CondExpr condexpr_; + public final String qident_; + + public AliasedSelItemC(CondExpr p1, String p2) { condexpr_ = p1; qident_ = p2; } + + public <R,A> R accept(pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.SelItem.Visitor<R,A> v, A arg) { return v.visit(this, arg); } + + public boolean equals(Object o) { + if (this == o) return true; + if (o instanceof pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.AliasedSelItemC) { + pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.AliasedSelItemC x = (pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.AliasedSelItemC)o; + return this.condexpr_.equals(x.condexpr_) && this.qident_.equals(x.qident_); + } + return false; + } + + public int hashCode() { + return 37*(this.condexpr_.hashCode())+this.qident_.hashCode(); + } + + +} diff --git a/src/main/java/pl/edu/mimuw/cloudatlas/interpreter/query/Absyn/AscOrderC.java b/src/main/java/pl/edu/mimuw/cloudatlas/interpreter/query/Absyn/AscOrderC.java new file mode 100644 index 0000000..80163bb --- /dev/null +++ b/src/main/java/pl/edu/mimuw/cloudatlas/interpreter/query/Absyn/AscOrderC.java @@ -0,0 +1,22 @@ +package pl.edu.mimuw.cloudatlas.interpreter.query.Absyn; // Java Package generated by the BNF Converter. + +public class AscOrderC extends Order { + + public AscOrderC() { } + + public <R,A> R accept(pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.Order.Visitor<R,A> v, A arg) { return v.visit(this, arg); } + + public boolean equals(Object o) { + if (this == o) return true; + if (o instanceof pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.AscOrderC) { + return true; + } + return false; + } + + public int hashCode() { + return 37; + } + + +} diff --git a/src/main/java/pl/edu/mimuw/cloudatlas/interpreter/query/Absyn/BasicExpr.java b/src/main/java/pl/edu/mimuw/cloudatlas/interpreter/query/Absyn/BasicExpr.java new file mode 100644 index 0000000..c098b14 --- /dev/null +++ b/src/main/java/pl/edu/mimuw/cloudatlas/interpreter/query/Absyn/BasicExpr.java @@ -0,0 +1,23 @@ +package pl.edu.mimuw.cloudatlas.interpreter.query.Absyn; // Java Package generated by the BNF Converter. + +public abstract class BasicExpr implements java.io.Serializable { + public abstract <R,A> R accept(BasicExpr.Visitor<R,A> v, A arg); + public interface Visitor <R,A> { + public R visit(pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.BasicExprAddC p, A arg); + public R visit(pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.BasicExprSubC p, A arg); + public R visit(pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.BasicExprMulC p, A arg); + public R visit(pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.BasicExprDivC p, A arg); + public R visit(pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.BasicExprModC p, A arg); + public R visit(pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.BasicExprNegC p, A arg); + public R visit(pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.EBoolC p, A arg); + public R visit(pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.EIdentC p, A arg); + public R visit(pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.EFunC p, A arg); + public R visit(pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.EStrC p, A arg); + public R visit(pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.EIntC p, A arg); + public R visit(pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.EDblC p, A arg); + public R visit(pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.ECondExprC p, A arg); + public R visit(pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.EStmtC p, A arg); + + } + +} diff --git a/src/main/java/pl/edu/mimuw/cloudatlas/interpreter/query/Absyn/BasicExprAddC.java b/src/main/java/pl/edu/mimuw/cloudatlas/interpreter/query/Absyn/BasicExprAddC.java new file mode 100644 index 0000000..754839a --- /dev/null +++ b/src/main/java/pl/edu/mimuw/cloudatlas/interpreter/query/Absyn/BasicExprAddC.java @@ -0,0 +1,24 @@ +package pl.edu.mimuw.cloudatlas.interpreter.query.Absyn; // Java Package generated by the BNF Converter. + +public class BasicExprAddC extends BasicExpr { + public final BasicExpr basicexpr_1, basicexpr_2; + + public BasicExprAddC(BasicExpr p1, BasicExpr p2) { basicexpr_1 = p1; basicexpr_2 = p2; } + + public <R,A> R accept(pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.BasicExpr.Visitor<R,A> v, A arg) { return v.visit(this, arg); } + + public boolean equals(Object o) { + if (this == o) return true; + if (o instanceof pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.BasicExprAddC) { + pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.BasicExprAddC x = (pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.BasicExprAddC)o; + return this.basicexpr_1.equals(x.basicexpr_1) && this.basicexpr_2.equals(x.basicexpr_2); + } + return false; + } + + public int hashCode() { + return 37*(this.basicexpr_1.hashCode())+this.basicexpr_2.hashCode(); + } + + +} diff --git a/src/main/java/pl/edu/mimuw/cloudatlas/interpreter/query/Absyn/BasicExprDivC.java b/src/main/java/pl/edu/mimuw/cloudatlas/interpreter/query/Absyn/BasicExprDivC.java new file mode 100644 index 0000000..8abd22a --- /dev/null +++ b/src/main/java/pl/edu/mimuw/cloudatlas/interpreter/query/Absyn/BasicExprDivC.java @@ -0,0 +1,24 @@ +package pl.edu.mimuw.cloudatlas.interpreter.query.Absyn; // Java Package generated by the BNF Converter. + +public class BasicExprDivC extends BasicExpr { + public final BasicExpr basicexpr_1, basicexpr_2; + + public BasicExprDivC(BasicExpr p1, BasicExpr p2) { basicexpr_1 = p1; basicexpr_2 = p2; } + + public <R,A> R accept(pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.BasicExpr.Visitor<R,A> v, A arg) { return v.visit(this, arg); } + + public boolean equals(Object o) { + if (this == o) return true; + if (o instanceof pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.BasicExprDivC) { + pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.BasicExprDivC x = (pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.BasicExprDivC)o; + return this.basicexpr_1.equals(x.basicexpr_1) && this.basicexpr_2.equals(x.basicexpr_2); + } + return false; + } + + public int hashCode() { + return 37*(this.basicexpr_1.hashCode())+this.basicexpr_2.hashCode(); + } + + +} diff --git a/src/main/java/pl/edu/mimuw/cloudatlas/interpreter/query/Absyn/BasicExprModC.java b/src/main/java/pl/edu/mimuw/cloudatlas/interpreter/query/Absyn/BasicExprModC.java new file mode 100644 index 0000000..db90b89 --- /dev/null +++ b/src/main/java/pl/edu/mimuw/cloudatlas/interpreter/query/Absyn/BasicExprModC.java @@ -0,0 +1,24 @@ +package pl.edu.mimuw.cloudatlas.interpreter.query.Absyn; // Java Package generated by the BNF Converter. + +public class BasicExprModC extends BasicExpr { + public final BasicExpr basicexpr_1, basicexpr_2; + + public BasicExprModC(BasicExpr p1, BasicExpr p2) { basicexpr_1 = p1; basicexpr_2 = p2; } + + public <R,A> R accept(pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.BasicExpr.Visitor<R,A> v, A arg) { return v.visit(this, arg); } + + public boolean equals(Object o) { + if (this == o) return true; + if (o instanceof pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.BasicExprModC) { + pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.BasicExprModC x = (pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.BasicExprModC)o; + return this.basicexpr_1.equals(x.basicexpr_1) && this.basicexpr_2.equals(x.basicexpr_2); + } + return false; + } + + public int hashCode() { + return 37*(this.basicexpr_1.hashCode())+this.basicexpr_2.hashCode(); + } + + +} diff --git a/src/main/java/pl/edu/mimuw/cloudatlas/interpreter/query/Absyn/BasicExprMulC.java b/src/main/java/pl/edu/mimuw/cloudatlas/interpreter/query/Absyn/BasicExprMulC.java new file mode 100644 index 0000000..369c545 --- /dev/null +++ b/src/main/java/pl/edu/mimuw/cloudatlas/interpreter/query/Absyn/BasicExprMulC.java @@ -0,0 +1,24 @@ +package pl.edu.mimuw.cloudatlas.interpreter.query.Absyn; // Java Package generated by the BNF Converter. + +public class BasicExprMulC extends BasicExpr { + public final BasicExpr basicexpr_1, basicexpr_2; + + public BasicExprMulC(BasicExpr p1, BasicExpr p2) { basicexpr_1 = p1; basicexpr_2 = p2; } + + public <R,A> R accept(pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.BasicExpr.Visitor<R,A> v, A arg) { return v.visit(this, arg); } + + public boolean equals(Object o) { + if (this == o) return true; + if (o instanceof pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.BasicExprMulC) { + pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.BasicExprMulC x = (pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.BasicExprMulC)o; + return this.basicexpr_1.equals(x.basicexpr_1) && this.basicexpr_2.equals(x.basicexpr_2); + } + return false; + } + + public int hashCode() { + return 37*(this.basicexpr_1.hashCode())+this.basicexpr_2.hashCode(); + } + + +} diff --git a/src/main/java/pl/edu/mimuw/cloudatlas/interpreter/query/Absyn/BasicExprNegC.java b/src/main/java/pl/edu/mimuw/cloudatlas/interpreter/query/Absyn/BasicExprNegC.java new file mode 100644 index 0000000..6abb7c4 --- /dev/null +++ b/src/main/java/pl/edu/mimuw/cloudatlas/interpreter/query/Absyn/BasicExprNegC.java @@ -0,0 +1,24 @@ +package pl.edu.mimuw.cloudatlas.interpreter.query.Absyn; // Java Package generated by the BNF Converter. + +public class BasicExprNegC extends BasicExpr { + public final BasicExpr basicexpr_; + + public BasicExprNegC(BasicExpr p1) { basicexpr_ = p1; } + + public <R,A> R accept(pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.BasicExpr.Visitor<R,A> v, A arg) { return v.visit(this, arg); } + + public boolean equals(Object o) { + if (this == o) return true; + if (o instanceof pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.BasicExprNegC) { + pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.BasicExprNegC x = (pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.BasicExprNegC)o; + return this.basicexpr_.equals(x.basicexpr_); + } + return false; + } + + public int hashCode() { + return this.basicexpr_.hashCode(); + } + + +} diff --git a/src/main/java/pl/edu/mimuw/cloudatlas/interpreter/query/Absyn/BasicExprSubC.java b/src/main/java/pl/edu/mimuw/cloudatlas/interpreter/query/Absyn/BasicExprSubC.java new file mode 100644 index 0000000..7f3bc58 --- /dev/null +++ b/src/main/java/pl/edu/mimuw/cloudatlas/interpreter/query/Absyn/BasicExprSubC.java @@ -0,0 +1,24 @@ +package pl.edu.mimuw.cloudatlas.interpreter.query.Absyn; // Java Package generated by the BNF Converter. + +public class BasicExprSubC extends BasicExpr { + public final BasicExpr basicexpr_1, basicexpr_2; + + public BasicExprSubC(BasicExpr p1, BasicExpr p2) { basicexpr_1 = p1; basicexpr_2 = p2; } + + public <R,A> R accept(pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.BasicExpr.Visitor<R,A> v, A arg) { return v.visit(this, arg); } + + public boolean equals(Object o) { + if (this == o) return true; + if (o instanceof pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.BasicExprSubC) { + pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.BasicExprSubC x = (pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.BasicExprSubC)o; + return this.basicexpr_1.equals(x.basicexpr_1) && this.basicexpr_2.equals(x.basicexpr_2); + } + return false; + } + + public int hashCode() { + return 37*(this.basicexpr_1.hashCode())+this.basicexpr_2.hashCode(); + } + + +} diff --git a/src/main/java/pl/edu/mimuw/cloudatlas/interpreter/query/Absyn/BoolExpr.java b/src/main/java/pl/edu/mimuw/cloudatlas/interpreter/query/Absyn/BoolExpr.java new file mode 100644 index 0000000..b470b34 --- /dev/null +++ b/src/main/java/pl/edu/mimuw/cloudatlas/interpreter/query/Absyn/BoolExpr.java @@ -0,0 +1,12 @@ +package pl.edu.mimuw.cloudatlas.interpreter.query.Absyn; // Java Package generated by the BNF Converter. + +public abstract class BoolExpr implements java.io.Serializable { + public abstract <R,A> R accept(BoolExpr.Visitor<R,A> v, A arg); + public interface Visitor <R,A> { + public R visit(pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.BoolExprCmpC p, A arg); + public R visit(pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.BoolExprRegExpC p, A arg); + public R visit(pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.BoolExprBasicExprC p, A arg); + + } + +} diff --git a/src/main/java/pl/edu/mimuw/cloudatlas/interpreter/query/Absyn/BoolExprBasicExprC.java b/src/main/java/pl/edu/mimuw/cloudatlas/interpreter/query/Absyn/BoolExprBasicExprC.java new file mode 100644 index 0000000..eb08bcf --- /dev/null +++ b/src/main/java/pl/edu/mimuw/cloudatlas/interpreter/query/Absyn/BoolExprBasicExprC.java @@ -0,0 +1,24 @@ +package pl.edu.mimuw.cloudatlas.interpreter.query.Absyn; // Java Package generated by the BNF Converter. + +public class BoolExprBasicExprC extends BoolExpr { + public final BasicExpr basicexpr_; + + public BoolExprBasicExprC(BasicExpr p1) { basicexpr_ = p1; } + + public <R,A> R accept(pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.BoolExpr.Visitor<R,A> v, A arg) { return v.visit(this, arg); } + + public boolean equals(Object o) { + if (this == o) return true; + if (o instanceof pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.BoolExprBasicExprC) { + pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.BoolExprBasicExprC x = (pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.BoolExprBasicExprC)o; + return this.basicexpr_.equals(x.basicexpr_); + } + return false; + } + + public int hashCode() { + return this.basicexpr_.hashCode(); + } + + +} diff --git a/src/main/java/pl/edu/mimuw/cloudatlas/interpreter/query/Absyn/BoolExprCmpC.java b/src/main/java/pl/edu/mimuw/cloudatlas/interpreter/query/Absyn/BoolExprCmpC.java new file mode 100644 index 0000000..f8a2f21 --- /dev/null +++ b/src/main/java/pl/edu/mimuw/cloudatlas/interpreter/query/Absyn/BoolExprCmpC.java @@ -0,0 +1,25 @@ +package pl.edu.mimuw.cloudatlas.interpreter.query.Absyn; // Java Package generated by the BNF Converter. + +public class BoolExprCmpC extends BoolExpr { + public final BasicExpr basicexpr_1, basicexpr_2; + public final RelOp relop_; + + public BoolExprCmpC(BasicExpr p1, RelOp p2, BasicExpr p3) { basicexpr_1 = p1; relop_ = p2; basicexpr_2 = p3; } + + public <R,A> R accept(pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.BoolExpr.Visitor<R,A> v, A arg) { return v.visit(this, arg); } + + public boolean equals(Object o) { + if (this == o) return true; + if (o instanceof pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.BoolExprCmpC) { + pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.BoolExprCmpC x = (pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.BoolExprCmpC)o; + return this.basicexpr_1.equals(x.basicexpr_1) && this.relop_.equals(x.relop_) && this.basicexpr_2.equals(x.basicexpr_2); + } + return false; + } + + public int hashCode() { + return 37*(37*(this.basicexpr_1.hashCode())+this.relop_.hashCode())+this.basicexpr_2.hashCode(); + } + + +} diff --git a/src/main/java/pl/edu/mimuw/cloudatlas/interpreter/query/Absyn/BoolExprRegExpC.java b/src/main/java/pl/edu/mimuw/cloudatlas/interpreter/query/Absyn/BoolExprRegExpC.java new file mode 100644 index 0000000..31af2d2 --- /dev/null +++ b/src/main/java/pl/edu/mimuw/cloudatlas/interpreter/query/Absyn/BoolExprRegExpC.java @@ -0,0 +1,25 @@ +package pl.edu.mimuw.cloudatlas.interpreter.query.Absyn; // Java Package generated by the BNF Converter. + +public class BoolExprRegExpC extends BoolExpr { + public final BasicExpr basicexpr_; + public final String string_; + + public BoolExprRegExpC(BasicExpr p1, String p2) { basicexpr_ = p1; string_ = p2; } + + public <R,A> R accept(pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.BoolExpr.Visitor<R,A> v, A arg) { return v.visit(this, arg); } + + public boolean equals(Object o) { + if (this == o) return true; + if (o instanceof pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.BoolExprRegExpC) { + pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.BoolExprRegExpC x = (pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.BoolExprRegExpC)o; + return this.basicexpr_.equals(x.basicexpr_) && this.string_.equals(x.string_); + } + return false; + } + + public int hashCode() { + return 37*(this.basicexpr_.hashCode())+this.string_.hashCode(); + } + + +} diff --git a/src/main/java/pl/edu/mimuw/cloudatlas/interpreter/query/Absyn/CondExpr.java b/src/main/java/pl/edu/mimuw/cloudatlas/interpreter/query/Absyn/CondExpr.java new file mode 100644 index 0000000..73136e7 --- /dev/null +++ b/src/main/java/pl/edu/mimuw/cloudatlas/interpreter/query/Absyn/CondExpr.java @@ -0,0 +1,13 @@ +package pl.edu.mimuw.cloudatlas.interpreter.query.Absyn; // Java Package generated by the BNF Converter. + +public abstract class CondExpr implements java.io.Serializable { + public abstract <R,A> R accept(CondExpr.Visitor<R,A> v, A arg); + public interface Visitor <R,A> { + public R visit(pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.CondExprOrC p, A arg); + public R visit(pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.CondExprAndC p, A arg); + public R visit(pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.CondExprNotC p, A arg); + public R visit(pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.CondExprBoolExprC p, A arg); + + } + +} diff --git a/src/main/java/pl/edu/mimuw/cloudatlas/interpreter/query/Absyn/CondExprAndC.java b/src/main/java/pl/edu/mimuw/cloudatlas/interpreter/query/Absyn/CondExprAndC.java new file mode 100644 index 0000000..094affb --- /dev/null +++ b/src/main/java/pl/edu/mimuw/cloudatlas/interpreter/query/Absyn/CondExprAndC.java @@ -0,0 +1,24 @@ +package pl.edu.mimuw.cloudatlas.interpreter.query.Absyn; // Java Package generated by the BNF Converter. + +public class CondExprAndC extends CondExpr { + public final CondExpr condexpr_1, condexpr_2; + + public CondExprAndC(CondExpr p1, CondExpr p2) { condexpr_1 = p1; condexpr_2 = p2; } + + public <R,A> R accept(pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.CondExpr.Visitor<R,A> v, A arg) { return v.visit(this, arg); } + + public boolean equals(Object o) { + if (this == o) return true; + if (o instanceof pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.CondExprAndC) { + pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.CondExprAndC x = (pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.CondExprAndC)o; + return this.condexpr_1.equals(x.condexpr_1) && this.condexpr_2.equals(x.condexpr_2); + } + return false; + } + + public int hashCode() { + return 37*(this.condexpr_1.hashCode())+this.condexpr_2.hashCode(); + } + + +} diff --git a/src/main/java/pl/edu/mimuw/cloudatlas/interpreter/query/Absyn/CondExprBoolExprC.java b/src/main/java/pl/edu/mimuw/cloudatlas/interpreter/query/Absyn/CondExprBoolExprC.java new file mode 100644 index 0000000..d102a29 --- /dev/null +++ b/src/main/java/pl/edu/mimuw/cloudatlas/interpreter/query/Absyn/CondExprBoolExprC.java @@ -0,0 +1,24 @@ +package pl.edu.mimuw.cloudatlas.interpreter.query.Absyn; // Java Package generated by the BNF Converter. + +public class CondExprBoolExprC extends CondExpr { + public final BoolExpr boolexpr_; + + public CondExprBoolExprC(BoolExpr p1) { boolexpr_ = p1; } + + public <R,A> R accept(pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.CondExpr.Visitor<R,A> v, A arg) { return v.visit(this, arg); } + + public boolean equals(Object o) { + if (this == o) return true; + if (o instanceof pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.CondExprBoolExprC) { + pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.CondExprBoolExprC x = (pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.CondExprBoolExprC)o; + return this.boolexpr_.equals(x.boolexpr_); + } + return false; + } + + public int hashCode() { + return this.boolexpr_.hashCode(); + } + + +} diff --git a/src/main/java/pl/edu/mimuw/cloudatlas/interpreter/query/Absyn/CondExprNotC.java b/src/main/java/pl/edu/mimuw/cloudatlas/interpreter/query/Absyn/CondExprNotC.java new file mode 100644 index 0000000..1e84219 --- /dev/null +++ b/src/main/java/pl/edu/mimuw/cloudatlas/interpreter/query/Absyn/CondExprNotC.java @@ -0,0 +1,24 @@ +package pl.edu.mimuw.cloudatlas.interpreter.query.Absyn; // Java Package generated by the BNF Converter. + +public class CondExprNotC extends CondExpr { + public final CondExpr condexpr_; + + public CondExprNotC(CondExpr p1) { condexpr_ = p1; } + + public <R,A> R accept(pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.CondExpr.Visitor<R,A> v, A arg) { return v.visit(this, arg); } + + public boolean equals(Object o) { + if (this == o) return true; + if (o instanceof pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.CondExprNotC) { + pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.CondExprNotC x = (pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.CondExprNotC)o; + return this.condexpr_.equals(x.condexpr_); + } + return false; + } + + public int hashCode() { + return this.condexpr_.hashCode(); + } + + +} diff --git a/src/main/java/pl/edu/mimuw/cloudatlas/interpreter/query/Absyn/CondExprOrC.java b/src/main/java/pl/edu/mimuw/cloudatlas/interpreter/query/Absyn/CondExprOrC.java new file mode 100644 index 0000000..08e7484 --- /dev/null +++ b/src/main/java/pl/edu/mimuw/cloudatlas/interpreter/query/Absyn/CondExprOrC.java @@ -0,0 +1,24 @@ +package pl.edu.mimuw.cloudatlas.interpreter.query.Absyn; // Java Package generated by the BNF Converter. + +public class CondExprOrC extends CondExpr { + public final CondExpr condexpr_1, condexpr_2; + + public CondExprOrC(CondExpr p1, CondExpr p2) { condexpr_1 = p1; condexpr_2 = p2; } + + public <R,A> R accept(pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.CondExpr.Visitor<R,A> v, A arg) { return v.visit(this, arg); } + + public boolean equals(Object o) { + if (this == o) return true; + if (o instanceof pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.CondExprOrC) { + pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.CondExprOrC x = (pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.CondExprOrC)o; + return this.condexpr_1.equals(x.condexpr_1) && this.condexpr_2.equals(x.condexpr_2); + } + return false; + } + + public int hashCode() { + return 37*(this.condexpr_1.hashCode())+this.condexpr_2.hashCode(); + } + + +} diff --git a/src/main/java/pl/edu/mimuw/cloudatlas/interpreter/query/Absyn/DescOrderC.java b/src/main/java/pl/edu/mimuw/cloudatlas/interpreter/query/Absyn/DescOrderC.java new file mode 100644 index 0000000..a08cc61 --- /dev/null +++ b/src/main/java/pl/edu/mimuw/cloudatlas/interpreter/query/Absyn/DescOrderC.java @@ -0,0 +1,22 @@ +package pl.edu.mimuw.cloudatlas.interpreter.query.Absyn; // Java Package generated by the BNF Converter. + +public class DescOrderC extends Order { + + public DescOrderC() { } + + public <R,A> R accept(pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.Order.Visitor<R,A> v, A arg) { return v.visit(this, arg); } + + public boolean equals(Object o) { + if (this == o) return true; + if (o instanceof pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.DescOrderC) { + return true; + } + return false; + } + + public int hashCode() { + return 37; + } + + +} diff --git a/src/main/java/pl/edu/mimuw/cloudatlas/interpreter/query/Absyn/EBoolC.java b/src/main/java/pl/edu/mimuw/cloudatlas/interpreter/query/Absyn/EBoolC.java new file mode 100644 index 0000000..da55dd5 --- /dev/null +++ b/src/main/java/pl/edu/mimuw/cloudatlas/interpreter/query/Absyn/EBoolC.java @@ -0,0 +1,24 @@ +package pl.edu.mimuw.cloudatlas.interpreter.query.Absyn; // Java Package generated by the BNF Converter. + +public class EBoolC extends BasicExpr { + public final String qbool_; + + public EBoolC(String p1) { qbool_ = p1; } + + public <R,A> R accept(pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.BasicExpr.Visitor<R,A> v, A arg) { return v.visit(this, arg); } + + public boolean equals(Object o) { + if (this == o) return true; + if (o instanceof pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.EBoolC) { + pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.EBoolC x = (pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.EBoolC)o; + return this.qbool_.equals(x.qbool_); + } + return false; + } + + public int hashCode() { + return this.qbool_.hashCode(); + } + + +} diff --git a/src/main/java/pl/edu/mimuw/cloudatlas/interpreter/query/Absyn/ECondExprC.java b/src/main/java/pl/edu/mimuw/cloudatlas/interpreter/query/Absyn/ECondExprC.java new file mode 100644 index 0000000..db4e9f1 --- /dev/null +++ b/src/main/java/pl/edu/mimuw/cloudatlas/interpreter/query/Absyn/ECondExprC.java @@ -0,0 +1,24 @@ +package pl.edu.mimuw.cloudatlas.interpreter.query.Absyn; // Java Package generated by the BNF Converter. + +public class ECondExprC extends BasicExpr { + public final CondExpr condexpr_; + + public ECondExprC(CondExpr p1) { condexpr_ = p1; } + + public <R,A> R accept(pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.BasicExpr.Visitor<R,A> v, A arg) { return v.visit(this, arg); } + + public boolean equals(Object o) { + if (this == o) return true; + if (o instanceof pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.ECondExprC) { + pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.ECondExprC x = (pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.ECondExprC)o; + return this.condexpr_.equals(x.condexpr_); + } + return false; + } + + public int hashCode() { + return this.condexpr_.hashCode(); + } + + +} diff --git a/src/main/java/pl/edu/mimuw/cloudatlas/interpreter/query/Absyn/EDblC.java b/src/main/java/pl/edu/mimuw/cloudatlas/interpreter/query/Absyn/EDblC.java new file mode 100644 index 0000000..f07e616 --- /dev/null +++ b/src/main/java/pl/edu/mimuw/cloudatlas/interpreter/query/Absyn/EDblC.java @@ -0,0 +1,24 @@ +package pl.edu.mimuw.cloudatlas.interpreter.query.Absyn; // Java Package generated by the BNF Converter. + +public class EDblC extends BasicExpr { + public final String qdouble_; + + public EDblC(String p1) { qdouble_ = p1; } + + public <R,A> R accept(pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.BasicExpr.Visitor<R,A> v, A arg) { return v.visit(this, arg); } + + public boolean equals(Object o) { + if (this == o) return true; + if (o instanceof pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.EDblC) { + pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.EDblC x = (pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.EDblC)o; + return this.qdouble_.equals(x.qdouble_); + } + return false; + } + + public int hashCode() { + return this.qdouble_.hashCode(); + } + + +} diff --git a/src/main/java/pl/edu/mimuw/cloudatlas/interpreter/query/Absyn/EFunC.java b/src/main/java/pl/edu/mimuw/cloudatlas/interpreter/query/Absyn/EFunC.java new file mode 100644 index 0000000..93af7e9 --- /dev/null +++ b/src/main/java/pl/edu/mimuw/cloudatlas/interpreter/query/Absyn/EFunC.java @@ -0,0 +1,25 @@ +package pl.edu.mimuw.cloudatlas.interpreter.query.Absyn; // Java Package generated by the BNF Converter. + +public class EFunC extends BasicExpr { + public final String qident_; + public final ListCondExpr listcondexpr_; + + public EFunC(String p1, ListCondExpr p2) { qident_ = p1; listcondexpr_ = p2; } + + public <R,A> R accept(pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.BasicExpr.Visitor<R,A> v, A arg) { return v.visit(this, arg); } + + public boolean equals(Object o) { + if (this == o) return true; + if (o instanceof pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.EFunC) { + pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.EFunC x = (pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.EFunC)o; + return this.qident_.equals(x.qident_) && this.listcondexpr_.equals(x.listcondexpr_); + } + return false; + } + + public int hashCode() { + return 37*(this.qident_.hashCode())+this.listcondexpr_.hashCode(); + } + + +} diff --git a/src/main/java/pl/edu/mimuw/cloudatlas/interpreter/query/Absyn/EIdentC.java b/src/main/java/pl/edu/mimuw/cloudatlas/interpreter/query/Absyn/EIdentC.java new file mode 100644 index 0000000..7c4119d --- /dev/null +++ b/src/main/java/pl/edu/mimuw/cloudatlas/interpreter/query/Absyn/EIdentC.java @@ -0,0 +1,24 @@ +package pl.edu.mimuw.cloudatlas.interpreter.query.Absyn; // Java Package generated by the BNF Converter. + +public class EIdentC extends BasicExpr { + public final String qident_; + + public EIdentC(String p1) { qident_ = p1; } + + public <R,A> R accept(pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.BasicExpr.Visitor<R,A> v, A arg) { return v.visit(this, arg); } + + public boolean equals(Object o) { + if (this == o) return true; + if (o instanceof pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.EIdentC) { + pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.EIdentC x = (pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.EIdentC)o; + return this.qident_.equals(x.qident_); + } + return false; + } + + public int hashCode() { + return this.qident_.hashCode(); + } + + +} diff --git a/src/main/java/pl/edu/mimuw/cloudatlas/interpreter/query/Absyn/EIntC.java b/src/main/java/pl/edu/mimuw/cloudatlas/interpreter/query/Absyn/EIntC.java new file mode 100644 index 0000000..069ecdb --- /dev/null +++ b/src/main/java/pl/edu/mimuw/cloudatlas/interpreter/query/Absyn/EIntC.java @@ -0,0 +1,24 @@ +package pl.edu.mimuw.cloudatlas.interpreter.query.Absyn; // Java Package generated by the BNF Converter. + +public class EIntC extends BasicExpr { + public final String qinteger_; + + public EIntC(String p1) { qinteger_ = p1; } + + public <R,A> R accept(pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.BasicExpr.Visitor<R,A> v, A arg) { return v.visit(this, arg); } + + public boolean equals(Object o) { + if (this == o) return true; + if (o instanceof pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.EIntC) { + pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.EIntC x = (pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.EIntC)o; + return this.qinteger_.equals(x.qinteger_); + } + return false; + } + + public int hashCode() { + return this.qinteger_.hashCode(); + } + + +} diff --git a/src/main/java/pl/edu/mimuw/cloudatlas/interpreter/query/Absyn/EStmtC.java b/src/main/java/pl/edu/mimuw/cloudatlas/interpreter/query/Absyn/EStmtC.java new file mode 100644 index 0000000..4157f1e --- /dev/null +++ b/src/main/java/pl/edu/mimuw/cloudatlas/interpreter/query/Absyn/EStmtC.java @@ -0,0 +1,24 @@ +package pl.edu.mimuw.cloudatlas.interpreter.query.Absyn; // Java Package generated by the BNF Converter. + +public class EStmtC extends BasicExpr { + public final Statement statement_; + + public EStmtC(Statement p1) { statement_ = p1; } + + public <R,A> R accept(pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.BasicExpr.Visitor<R,A> v, A arg) { return v.visit(this, arg); } + + public boolean equals(Object o) { + if (this == o) return true; + if (o instanceof pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.EStmtC) { + pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.EStmtC x = (pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.EStmtC)o; + return this.statement_.equals(x.statement_); + } + return false; + } + + public int hashCode() { + return this.statement_.hashCode(); + } + + +} diff --git a/src/main/java/pl/edu/mimuw/cloudatlas/interpreter/query/Absyn/EStrC.java b/src/main/java/pl/edu/mimuw/cloudatlas/interpreter/query/Absyn/EStrC.java new file mode 100644 index 0000000..3bf4a75 --- /dev/null +++ b/src/main/java/pl/edu/mimuw/cloudatlas/interpreter/query/Absyn/EStrC.java @@ -0,0 +1,24 @@ +package pl.edu.mimuw.cloudatlas.interpreter.query.Absyn; // Java Package generated by the BNF Converter. + +public class EStrC extends BasicExpr { + public final String string_; + + public EStrC(String p1) { string_ = p1; } + + public <R,A> R accept(pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.BasicExpr.Visitor<R,A> v, A arg) { return v.visit(this, arg); } + + public boolean equals(Object o) { + if (this == o) return true; + if (o instanceof pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.EStrC) { + pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.EStrC x = (pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.EStrC)o; + return this.string_.equals(x.string_); + } + return false; + } + + public int hashCode() { + return this.string_.hashCode(); + } + + +} diff --git a/src/main/java/pl/edu/mimuw/cloudatlas/interpreter/query/Absyn/ListCondExpr.java b/src/main/java/pl/edu/mimuw/cloudatlas/interpreter/query/Absyn/ListCondExpr.java new file mode 100644 index 0000000..929ff07 --- /dev/null +++ b/src/main/java/pl/edu/mimuw/cloudatlas/interpreter/query/Absyn/ListCondExpr.java @@ -0,0 +1,4 @@ +package pl.edu.mimuw.cloudatlas.interpreter.query.Absyn; // Java Package generated by the BNF Converter. + +public class ListCondExpr extends java.util.LinkedList<CondExpr> { +} diff --git a/src/main/java/pl/edu/mimuw/cloudatlas/interpreter/query/Absyn/ListOrderItem.java b/src/main/java/pl/edu/mimuw/cloudatlas/interpreter/query/Absyn/ListOrderItem.java new file mode 100644 index 0000000..47ba4a8 --- /dev/null +++ b/src/main/java/pl/edu/mimuw/cloudatlas/interpreter/query/Absyn/ListOrderItem.java @@ -0,0 +1,4 @@ +package pl.edu.mimuw.cloudatlas.interpreter.query.Absyn; // Java Package generated by the BNF Converter. + +public class ListOrderItem extends java.util.LinkedList<OrderItem> { +} diff --git a/src/main/java/pl/edu/mimuw/cloudatlas/interpreter/query/Absyn/ListSelItem.java b/src/main/java/pl/edu/mimuw/cloudatlas/interpreter/query/Absyn/ListSelItem.java new file mode 100644 index 0000000..5392851 --- /dev/null +++ b/src/main/java/pl/edu/mimuw/cloudatlas/interpreter/query/Absyn/ListSelItem.java @@ -0,0 +1,4 @@ +package pl.edu.mimuw.cloudatlas.interpreter.query.Absyn; // Java Package generated by the BNF Converter. + +public class ListSelItem extends java.util.LinkedList<SelItem> { +} diff --git a/src/main/java/pl/edu/mimuw/cloudatlas/interpreter/query/Absyn/ListStatement.java b/src/main/java/pl/edu/mimuw/cloudatlas/interpreter/query/Absyn/ListStatement.java new file mode 100644 index 0000000..fa5070a --- /dev/null +++ b/src/main/java/pl/edu/mimuw/cloudatlas/interpreter/query/Absyn/ListStatement.java @@ -0,0 +1,4 @@ +package pl.edu.mimuw.cloudatlas.interpreter.query.Absyn; // Java Package generated by the BNF Converter. + +public class ListStatement extends java.util.LinkedList<Statement> { +} diff --git a/src/main/java/pl/edu/mimuw/cloudatlas/interpreter/query/Absyn/NoNullsC.java b/src/main/java/pl/edu/mimuw/cloudatlas/interpreter/query/Absyn/NoNullsC.java new file mode 100644 index 0000000..c7f54c9 --- /dev/null +++ b/src/main/java/pl/edu/mimuw/cloudatlas/interpreter/query/Absyn/NoNullsC.java @@ -0,0 +1,22 @@ +package pl.edu.mimuw.cloudatlas.interpreter.query.Absyn; // Java Package generated by the BNF Converter. + +public class NoNullsC extends Nulls { + + public NoNullsC() { } + + public <R,A> R accept(pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.Nulls.Visitor<R,A> v, A arg) { return v.visit(this, arg); } + + public boolean equals(Object o) { + if (this == o) return true; + if (o instanceof pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.NoNullsC) { + return true; + } + return false; + } + + public int hashCode() { + return 37; + } + + +} diff --git a/src/main/java/pl/edu/mimuw/cloudatlas/interpreter/query/Absyn/NoOrderByC.java b/src/main/java/pl/edu/mimuw/cloudatlas/interpreter/query/Absyn/NoOrderByC.java new file mode 100644 index 0000000..d357bcd --- /dev/null +++ b/src/main/java/pl/edu/mimuw/cloudatlas/interpreter/query/Absyn/NoOrderByC.java @@ -0,0 +1,22 @@ +package pl.edu.mimuw.cloudatlas.interpreter.query.Absyn; // Java Package generated by the BNF Converter. + +public class NoOrderByC extends OrderBy { + + public NoOrderByC() { } + + public <R,A> R accept(pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.OrderBy.Visitor<R,A> v, A arg) { return v.visit(this, arg); } + + public boolean equals(Object o) { + if (this == o) return true; + if (o instanceof pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.NoOrderByC) { + return true; + } + return false; + } + + public int hashCode() { + return 37; + } + + +} diff --git a/src/main/java/pl/edu/mimuw/cloudatlas/interpreter/query/Absyn/NoOrderC.java b/src/main/java/pl/edu/mimuw/cloudatlas/interpreter/query/Absyn/NoOrderC.java new file mode 100644 index 0000000..0888840 --- /dev/null +++ b/src/main/java/pl/edu/mimuw/cloudatlas/interpreter/query/Absyn/NoOrderC.java @@ -0,0 +1,22 @@ +package pl.edu.mimuw.cloudatlas.interpreter.query.Absyn; // Java Package generated by the BNF Converter. + +public class NoOrderC extends Order { + + public NoOrderC() { } + + public <R,A> R accept(pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.Order.Visitor<R,A> v, A arg) { return v.visit(this, arg); } + + public boolean equals(Object o) { + if (this == o) return true; + if (o instanceof pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.NoOrderC) { + return true; + } + return false; + } + + public int hashCode() { + return 37; + } + + +} diff --git a/src/main/java/pl/edu/mimuw/cloudatlas/interpreter/query/Absyn/NoWhereC.java b/src/main/java/pl/edu/mimuw/cloudatlas/interpreter/query/Absyn/NoWhereC.java new file mode 100644 index 0000000..725fe03 --- /dev/null +++ b/src/main/java/pl/edu/mimuw/cloudatlas/interpreter/query/Absyn/NoWhereC.java @@ -0,0 +1,22 @@ +package pl.edu.mimuw.cloudatlas.interpreter.query.Absyn; // Java Package generated by the BNF Converter. + +public class NoWhereC extends Where { + + public NoWhereC() { } + + public <R,A> R accept(pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.Where.Visitor<R,A> v, A arg) { return v.visit(this, arg); } + + public boolean equals(Object o) { + if (this == o) return true; + if (o instanceof pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.NoWhereC) { + return true; + } + return false; + } + + public int hashCode() { + return 37; + } + + +} diff --git a/src/main/java/pl/edu/mimuw/cloudatlas/interpreter/query/Absyn/NullFirstsC.java b/src/main/java/pl/edu/mimuw/cloudatlas/interpreter/query/Absyn/NullFirstsC.java new file mode 100644 index 0000000..fa837b1 --- /dev/null +++ b/src/main/java/pl/edu/mimuw/cloudatlas/interpreter/query/Absyn/NullFirstsC.java @@ -0,0 +1,22 @@ +package pl.edu.mimuw.cloudatlas.interpreter.query.Absyn; // Java Package generated by the BNF Converter. + +public class NullFirstsC extends Nulls { + + public NullFirstsC() { } + + public <R,A> R accept(pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.Nulls.Visitor<R,A> v, A arg) { return v.visit(this, arg); } + + public boolean equals(Object o) { + if (this == o) return true; + if (o instanceof pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.NullFirstsC) { + return true; + } + return false; + } + + public int hashCode() { + return 37; + } + + +} diff --git a/src/main/java/pl/edu/mimuw/cloudatlas/interpreter/query/Absyn/Nulls.java b/src/main/java/pl/edu/mimuw/cloudatlas/interpreter/query/Absyn/Nulls.java new file mode 100644 index 0000000..fbd153b --- /dev/null +++ b/src/main/java/pl/edu/mimuw/cloudatlas/interpreter/query/Absyn/Nulls.java @@ -0,0 +1,12 @@ +package pl.edu.mimuw.cloudatlas.interpreter.query.Absyn; // Java Package generated by the BNF Converter. + +public abstract class Nulls implements java.io.Serializable { + public abstract <R,A> R accept(Nulls.Visitor<R,A> v, A arg); + public interface Visitor <R,A> { + public R visit(pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.NoNullsC p, A arg); + public R visit(pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.NullFirstsC p, A arg); + public R visit(pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.NullsLastC p, A arg); + + } + +} diff --git a/src/main/java/pl/edu/mimuw/cloudatlas/interpreter/query/Absyn/NullsLastC.java b/src/main/java/pl/edu/mimuw/cloudatlas/interpreter/query/Absyn/NullsLastC.java new file mode 100644 index 0000000..fcf0e74 --- /dev/null +++ b/src/main/java/pl/edu/mimuw/cloudatlas/interpreter/query/Absyn/NullsLastC.java @@ -0,0 +1,22 @@ +package pl.edu.mimuw.cloudatlas.interpreter.query.Absyn; // Java Package generated by the BNF Converter. + +public class NullsLastC extends Nulls { + + public NullsLastC() { } + + public <R,A> R accept(pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.Nulls.Visitor<R,A> v, A arg) { return v.visit(this, arg); } + + public boolean equals(Object o) { + if (this == o) return true; + if (o instanceof pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.NullsLastC) { + return true; + } + return false; + } + + public int hashCode() { + return 37; + } + + +} diff --git a/src/main/java/pl/edu/mimuw/cloudatlas/interpreter/query/Absyn/Order.java b/src/main/java/pl/edu/mimuw/cloudatlas/interpreter/query/Absyn/Order.java new file mode 100644 index 0000000..bd7094c --- /dev/null +++ b/src/main/java/pl/edu/mimuw/cloudatlas/interpreter/query/Absyn/Order.java @@ -0,0 +1,12 @@ +package pl.edu.mimuw.cloudatlas.interpreter.query.Absyn; // Java Package generated by the BNF Converter. + +public abstract class Order implements java.io.Serializable { + public abstract <R,A> R accept(Order.Visitor<R,A> v, A arg); + public interface Visitor <R,A> { + public R visit(pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.AscOrderC p, A arg); + public R visit(pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.DescOrderC p, A arg); + public R visit(pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.NoOrderC p, A arg); + + } + +} diff --git a/src/main/java/pl/edu/mimuw/cloudatlas/interpreter/query/Absyn/OrderBy.java b/src/main/java/pl/edu/mimuw/cloudatlas/interpreter/query/Absyn/OrderBy.java new file mode 100644 index 0000000..c136dc4 --- /dev/null +++ b/src/main/java/pl/edu/mimuw/cloudatlas/interpreter/query/Absyn/OrderBy.java @@ -0,0 +1,11 @@ +package pl.edu.mimuw.cloudatlas.interpreter.query.Absyn; // Java Package generated by the BNF Converter. + +public abstract class OrderBy implements java.io.Serializable { + public abstract <R,A> R accept(OrderBy.Visitor<R,A> v, A arg); + public interface Visitor <R,A> { + public R visit(pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.NoOrderByC p, A arg); + public R visit(pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.OrderByC p, A arg); + + } + +} diff --git a/src/main/java/pl/edu/mimuw/cloudatlas/interpreter/query/Absyn/OrderByC.java b/src/main/java/pl/edu/mimuw/cloudatlas/interpreter/query/Absyn/OrderByC.java new file mode 100644 index 0000000..e599401 --- /dev/null +++ b/src/main/java/pl/edu/mimuw/cloudatlas/interpreter/query/Absyn/OrderByC.java @@ -0,0 +1,24 @@ +package pl.edu.mimuw.cloudatlas.interpreter.query.Absyn; // Java Package generated by the BNF Converter. + +public class OrderByC extends OrderBy { + public final ListOrderItem listorderitem_; + + public OrderByC(ListOrderItem p1) { listorderitem_ = p1; } + + public <R,A> R accept(pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.OrderBy.Visitor<R,A> v, A arg) { return v.visit(this, arg); } + + public boolean equals(Object o) { + if (this == o) return true; + if (o instanceof pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.OrderByC) { + pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.OrderByC x = (pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.OrderByC)o; + return this.listorderitem_.equals(x.listorderitem_); + } + return false; + } + + public int hashCode() { + return this.listorderitem_.hashCode(); + } + + +} diff --git a/src/main/java/pl/edu/mimuw/cloudatlas/interpreter/query/Absyn/OrderItem.java b/src/main/java/pl/edu/mimuw/cloudatlas/interpreter/query/Absyn/OrderItem.java new file mode 100644 index 0000000..3ea76ff --- /dev/null +++ b/src/main/java/pl/edu/mimuw/cloudatlas/interpreter/query/Absyn/OrderItem.java @@ -0,0 +1,10 @@ +package pl.edu.mimuw.cloudatlas.interpreter.query.Absyn; // Java Package generated by the BNF Converter. + +public abstract class OrderItem implements java.io.Serializable { + public abstract <R,A> R accept(OrderItem.Visitor<R,A> v, A arg); + public interface Visitor <R,A> { + public R visit(pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.OrderItemC p, A arg); + + } + +} diff --git a/src/main/java/pl/edu/mimuw/cloudatlas/interpreter/query/Absyn/OrderItemC.java b/src/main/java/pl/edu/mimuw/cloudatlas/interpreter/query/Absyn/OrderItemC.java new file mode 100644 index 0000000..2d6228b --- /dev/null +++ b/src/main/java/pl/edu/mimuw/cloudatlas/interpreter/query/Absyn/OrderItemC.java @@ -0,0 +1,26 @@ +package pl.edu.mimuw.cloudatlas.interpreter.query.Absyn; // Java Package generated by the BNF Converter. + +public class OrderItemC extends OrderItem { + public final CondExpr condexpr_; + public final Order order_; + public final Nulls nulls_; + + public OrderItemC(CondExpr p1, Order p2, Nulls p3) { condexpr_ = p1; order_ = p2; nulls_ = p3; } + + public <R,A> R accept(pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.OrderItem.Visitor<R,A> v, A arg) { return v.visit(this, arg); } + + public boolean equals(Object o) { + if (this == o) return true; + if (o instanceof pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.OrderItemC) { + pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.OrderItemC x = (pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.OrderItemC)o; + return this.condexpr_.equals(x.condexpr_) && this.order_.equals(x.order_) && this.nulls_.equals(x.nulls_); + } + return false; + } + + public int hashCode() { + return 37*(37*(this.condexpr_.hashCode())+this.order_.hashCode())+this.nulls_.hashCode(); + } + + +} diff --git a/src/main/java/pl/edu/mimuw/cloudatlas/interpreter/query/Absyn/Program.java b/src/main/java/pl/edu/mimuw/cloudatlas/interpreter/query/Absyn/Program.java new file mode 100644 index 0000000..4332025 --- /dev/null +++ b/src/main/java/pl/edu/mimuw/cloudatlas/interpreter/query/Absyn/Program.java @@ -0,0 +1,10 @@ +package pl.edu.mimuw.cloudatlas.interpreter.query.Absyn; // Java Package generated by the BNF Converter. + +public abstract class Program implements java.io.Serializable { + public abstract <R,A> R accept(Program.Visitor<R,A> v, A arg); + public interface Visitor <R,A> { + public R visit(pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.ProgramC p, A arg); + + } + +} diff --git a/src/main/java/pl/edu/mimuw/cloudatlas/interpreter/query/Absyn/ProgramC.java b/src/main/java/pl/edu/mimuw/cloudatlas/interpreter/query/Absyn/ProgramC.java new file mode 100644 index 0000000..6b7e999 --- /dev/null +++ b/src/main/java/pl/edu/mimuw/cloudatlas/interpreter/query/Absyn/ProgramC.java @@ -0,0 +1,24 @@ +package pl.edu.mimuw.cloudatlas.interpreter.query.Absyn; // Java Package generated by the BNF Converter. + +public class ProgramC extends Program { + public final ListStatement liststatement_; + + public ProgramC(ListStatement p1) { liststatement_ = p1; } + + public <R,A> R accept(pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.Program.Visitor<R,A> v, A arg) { return v.visit(this, arg); } + + public boolean equals(Object o) { + if (this == o) return true; + if (o instanceof pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.ProgramC) { + pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.ProgramC x = (pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.ProgramC)o; + return this.liststatement_.equals(x.liststatement_); + } + return false; + } + + public int hashCode() { + return this.liststatement_.hashCode(); + } + + +} diff --git a/src/main/java/pl/edu/mimuw/cloudatlas/interpreter/query/Absyn/RelOp.java b/src/main/java/pl/edu/mimuw/cloudatlas/interpreter/query/Absyn/RelOp.java new file mode 100644 index 0000000..f35b2dd --- /dev/null +++ b/src/main/java/pl/edu/mimuw/cloudatlas/interpreter/query/Absyn/RelOp.java @@ -0,0 +1,15 @@ +package pl.edu.mimuw.cloudatlas.interpreter.query.Absyn; // Java Package generated by the BNF Converter. + +public abstract class RelOp implements java.io.Serializable { + public abstract <R,A> R accept(RelOp.Visitor<R,A> v, A arg); + public interface Visitor <R,A> { + public R visit(pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.RelOpGtC p, A arg); + public R visit(pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.RelOpEqC p, A arg); + public R visit(pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.RelOpNeC p, A arg); + public R visit(pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.RelOpLtC p, A arg); + public R visit(pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.RelOpLeC p, A arg); + public R visit(pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.RelOpGeC p, A arg); + + } + +} diff --git a/src/main/java/pl/edu/mimuw/cloudatlas/interpreter/query/Absyn/RelOpEqC.java b/src/main/java/pl/edu/mimuw/cloudatlas/interpreter/query/Absyn/RelOpEqC.java new file mode 100644 index 0000000..f0fe3a2 --- /dev/null +++ b/src/main/java/pl/edu/mimuw/cloudatlas/interpreter/query/Absyn/RelOpEqC.java @@ -0,0 +1,22 @@ +package pl.edu.mimuw.cloudatlas.interpreter.query.Absyn; // Java Package generated by the BNF Converter. + +public class RelOpEqC extends RelOp { + + public RelOpEqC() { } + + public <R,A> R accept(pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.RelOp.Visitor<R,A> v, A arg) { return v.visit(this, arg); } + + public boolean equals(Object o) { + if (this == o) return true; + if (o instanceof pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.RelOpEqC) { + return true; + } + return false; + } + + public int hashCode() { + return 37; + } + + +} diff --git a/src/main/java/pl/edu/mimuw/cloudatlas/interpreter/query/Absyn/RelOpGeC.java b/src/main/java/pl/edu/mimuw/cloudatlas/interpreter/query/Absyn/RelOpGeC.java new file mode 100644 index 0000000..e0498bc --- /dev/null +++ b/src/main/java/pl/edu/mimuw/cloudatlas/interpreter/query/Absyn/RelOpGeC.java @@ -0,0 +1,22 @@ +package pl.edu.mimuw.cloudatlas.interpreter.query.Absyn; // Java Package generated by the BNF Converter. + +public class RelOpGeC extends RelOp { + + public RelOpGeC() { } + + public <R,A> R accept(pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.RelOp.Visitor<R,A> v, A arg) { return v.visit(this, arg); } + + public boolean equals(Object o) { + if (this == o) return true; + if (o instanceof pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.RelOpGeC) { + return true; + } + return false; + } + + public int hashCode() { + return 37; + } + + +} diff --git a/src/main/java/pl/edu/mimuw/cloudatlas/interpreter/query/Absyn/RelOpGtC.java b/src/main/java/pl/edu/mimuw/cloudatlas/interpreter/query/Absyn/RelOpGtC.java new file mode 100644 index 0000000..45c10b6 --- /dev/null +++ b/src/main/java/pl/edu/mimuw/cloudatlas/interpreter/query/Absyn/RelOpGtC.java @@ -0,0 +1,22 @@ +package pl.edu.mimuw.cloudatlas.interpreter.query.Absyn; // Java Package generated by the BNF Converter. + +public class RelOpGtC extends RelOp { + + public RelOpGtC() { } + + public <R,A> R accept(pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.RelOp.Visitor<R,A> v, A arg) { return v.visit(this, arg); } + + public boolean equals(Object o) { + if (this == o) return true; + if (o instanceof pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.RelOpGtC) { + return true; + } + return false; + } + + public int hashCode() { + return 37; + } + + +} diff --git a/src/main/java/pl/edu/mimuw/cloudatlas/interpreter/query/Absyn/RelOpLeC.java b/src/main/java/pl/edu/mimuw/cloudatlas/interpreter/query/Absyn/RelOpLeC.java new file mode 100644 index 0000000..a0de97a --- /dev/null +++ b/src/main/java/pl/edu/mimuw/cloudatlas/interpreter/query/Absyn/RelOpLeC.java @@ -0,0 +1,22 @@ +package pl.edu.mimuw.cloudatlas.interpreter.query.Absyn; // Java Package generated by the BNF Converter. + +public class RelOpLeC extends RelOp { + + public RelOpLeC() { } + + public <R,A> R accept(pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.RelOp.Visitor<R,A> v, A arg) { return v.visit(this, arg); } + + public boolean equals(Object o) { + if (this == o) return true; + if (o instanceof pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.RelOpLeC) { + return true; + } + return false; + } + + public int hashCode() { + return 37; + } + + +} diff --git a/src/main/java/pl/edu/mimuw/cloudatlas/interpreter/query/Absyn/RelOpLtC.java b/src/main/java/pl/edu/mimuw/cloudatlas/interpreter/query/Absyn/RelOpLtC.java new file mode 100644 index 0000000..0407ab6 --- /dev/null +++ b/src/main/java/pl/edu/mimuw/cloudatlas/interpreter/query/Absyn/RelOpLtC.java @@ -0,0 +1,22 @@ +package pl.edu.mimuw.cloudatlas.interpreter.query.Absyn; // Java Package generated by the BNF Converter. + +public class RelOpLtC extends RelOp { + + public RelOpLtC() { } + + public <R,A> R accept(pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.RelOp.Visitor<R,A> v, A arg) { return v.visit(this, arg); } + + public boolean equals(Object o) { + if (this == o) return true; + if (o instanceof pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.RelOpLtC) { + return true; + } + return false; + } + + public int hashCode() { + return 37; + } + + +} diff --git a/src/main/java/pl/edu/mimuw/cloudatlas/interpreter/query/Absyn/RelOpNeC.java b/src/main/java/pl/edu/mimuw/cloudatlas/interpreter/query/Absyn/RelOpNeC.java new file mode 100644 index 0000000..fc19670 --- /dev/null +++ b/src/main/java/pl/edu/mimuw/cloudatlas/interpreter/query/Absyn/RelOpNeC.java @@ -0,0 +1,22 @@ +package pl.edu.mimuw.cloudatlas.interpreter.query.Absyn; // Java Package generated by the BNF Converter. + +public class RelOpNeC extends RelOp { + + public RelOpNeC() { } + + public <R,A> R accept(pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.RelOp.Visitor<R,A> v, A arg) { return v.visit(this, arg); } + + public boolean equals(Object o) { + if (this == o) return true; + if (o instanceof pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.RelOpNeC) { + return true; + } + return false; + } + + public int hashCode() { + return 37; + } + + +} diff --git a/src/main/java/pl/edu/mimuw/cloudatlas/interpreter/query/Absyn/SelItem.java b/src/main/java/pl/edu/mimuw/cloudatlas/interpreter/query/Absyn/SelItem.java new file mode 100644 index 0000000..d1c5552 --- /dev/null +++ b/src/main/java/pl/edu/mimuw/cloudatlas/interpreter/query/Absyn/SelItem.java @@ -0,0 +1,11 @@ +package pl.edu.mimuw.cloudatlas.interpreter.query.Absyn; // Java Package generated by the BNF Converter. + +public abstract class SelItem implements java.io.Serializable { + public abstract <R,A> R accept(SelItem.Visitor<R,A> v, A arg); + public interface Visitor <R,A> { + public R visit(pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.SelItemC p, A arg); + public R visit(pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.AliasedSelItemC p, A arg); + + } + +} diff --git a/src/main/java/pl/edu/mimuw/cloudatlas/interpreter/query/Absyn/SelItemC.java b/src/main/java/pl/edu/mimuw/cloudatlas/interpreter/query/Absyn/SelItemC.java new file mode 100644 index 0000000..f8fc8a4 --- /dev/null +++ b/src/main/java/pl/edu/mimuw/cloudatlas/interpreter/query/Absyn/SelItemC.java @@ -0,0 +1,24 @@ +package pl.edu.mimuw.cloudatlas.interpreter.query.Absyn; // Java Package generated by the BNF Converter. + +public class SelItemC extends SelItem { + public final CondExpr condexpr_; + + public SelItemC(CondExpr p1) { condexpr_ = p1; } + + public <R,A> R accept(pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.SelItem.Visitor<R,A> v, A arg) { return v.visit(this, arg); } + + public boolean equals(Object o) { + if (this == o) return true; + if (o instanceof pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.SelItemC) { + pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.SelItemC x = (pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.SelItemC)o; + return this.condexpr_.equals(x.condexpr_); + } + return false; + } + + public int hashCode() { + return this.condexpr_.hashCode(); + } + + +} diff --git a/src/main/java/pl/edu/mimuw/cloudatlas/interpreter/query/Absyn/Statement.java b/src/main/java/pl/edu/mimuw/cloudatlas/interpreter/query/Absyn/Statement.java new file mode 100644 index 0000000..8f6e252 --- /dev/null +++ b/src/main/java/pl/edu/mimuw/cloudatlas/interpreter/query/Absyn/Statement.java @@ -0,0 +1,10 @@ +package pl.edu.mimuw.cloudatlas.interpreter.query.Absyn; // Java Package generated by the BNF Converter. + +public abstract class Statement implements java.io.Serializable { + public abstract <R,A> R accept(Statement.Visitor<R,A> v, A arg); + public interface Visitor <R,A> { + public R visit(pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.StatementC p, A arg); + + } + +} diff --git a/src/main/java/pl/edu/mimuw/cloudatlas/interpreter/query/Absyn/StatementC.java b/src/main/java/pl/edu/mimuw/cloudatlas/interpreter/query/Absyn/StatementC.java new file mode 100644 index 0000000..fd097fd --- /dev/null +++ b/src/main/java/pl/edu/mimuw/cloudatlas/interpreter/query/Absyn/StatementC.java @@ -0,0 +1,26 @@ +package pl.edu.mimuw.cloudatlas.interpreter.query.Absyn; // Java Package generated by the BNF Converter. + +public class StatementC extends Statement { + public final ListSelItem listselitem_; + public final Where where_; + public final OrderBy orderby_; + + public StatementC(ListSelItem p1, Where p2, OrderBy p3) { listselitem_ = p1; where_ = p2; orderby_ = p3; } + + public <R,A> R accept(pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.Statement.Visitor<R,A> v, A arg) { return v.visit(this, arg); } + + public boolean equals(Object o) { + if (this == o) return true; + if (o instanceof pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.StatementC) { + pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.StatementC x = (pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.StatementC)o; + return this.listselitem_.equals(x.listselitem_) && this.where_.equals(x.where_) && this.orderby_.equals(x.orderby_); + } + return false; + } + + public int hashCode() { + return 37*(37*(this.listselitem_.hashCode())+this.where_.hashCode())+this.orderby_.hashCode(); + } + + +} diff --git a/src/main/java/pl/edu/mimuw/cloudatlas/interpreter/query/Absyn/Where.java b/src/main/java/pl/edu/mimuw/cloudatlas/interpreter/query/Absyn/Where.java new file mode 100644 index 0000000..0c21d98 --- /dev/null +++ b/src/main/java/pl/edu/mimuw/cloudatlas/interpreter/query/Absyn/Where.java @@ -0,0 +1,11 @@ +package pl.edu.mimuw.cloudatlas.interpreter.query.Absyn; // Java Package generated by the BNF Converter. + +public abstract class Where implements java.io.Serializable { + public abstract <R,A> R accept(Where.Visitor<R,A> v, A arg); + public interface Visitor <R,A> { + public R visit(pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.NoWhereC p, A arg); + public R visit(pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.WhereC p, A arg); + + } + +} diff --git a/src/main/java/pl/edu/mimuw/cloudatlas/interpreter/query/Absyn/WhereC.java b/src/main/java/pl/edu/mimuw/cloudatlas/interpreter/query/Absyn/WhereC.java new file mode 100644 index 0000000..c068881 --- /dev/null +++ b/src/main/java/pl/edu/mimuw/cloudatlas/interpreter/query/Absyn/WhereC.java @@ -0,0 +1,24 @@ +package pl.edu.mimuw.cloudatlas.interpreter.query.Absyn; // Java Package generated by the BNF Converter. + +public class WhereC extends Where { + public final CondExpr condexpr_; + + public WhereC(CondExpr p1) { condexpr_ = p1; } + + public <R,A> R accept(pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.Where.Visitor<R,A> v, A arg) { return v.visit(this, arg); } + + public boolean equals(Object o) { + if (this == o) return true; + if (o instanceof pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.WhereC) { + pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.WhereC x = (pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.WhereC)o; + return this.condexpr_.equals(x.condexpr_); + } + return false; + } + + public int hashCode() { + return this.condexpr_.hashCode(); + } + + +} diff --git a/src/main/java/pl/edu/mimuw/cloudatlas/interpreter/query/PrettyPrinter.java b/src/main/java/pl/edu/mimuw/cloudatlas/interpreter/query/PrettyPrinter.java new file mode 100644 index 0000000..ed1276d --- /dev/null +++ b/src/main/java/pl/edu/mimuw/cloudatlas/interpreter/query/PrettyPrinter.java @@ -0,0 +1,1142 @@ +package pl.edu.mimuw.cloudatlas.interpreter.query; +import pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.*; + +public class PrettyPrinter +{ + //For certain applications increasing the initial size of the buffer may improve performance. + private static final int INITIAL_BUFFER_SIZE = 128; + //You may wish to change the parentheses used in precedence. + private static final String _L_PAREN = new String("("); + private static final String _R_PAREN = new String(")"); + //You may wish to change render + private static void render(String s) + { + if (s.equals("{")) + { + buf_.append("\n"); + indent(); + buf_.append(s); + _n_ = _n_ + 2; + buf_.append("\n"); + indent(); + } + else if (s.equals("(") || s.equals("[")) + buf_.append(s); + else if (s.equals(")") || s.equals("]")) + { + backup(); + buf_.append(s); + buf_.append(" "); + } + else if (s.equals("}")) + { + _n_ = _n_ - 2; + backup(); + backup(); + buf_.append(s); + buf_.append("\n"); + indent(); + } + else if (s.equals(",")) + { + backup(); + buf_.append(s); + buf_.append(" "); + } + else if (s.equals(";")) + { + backup(); + buf_.append(s); + buf_.append("\n"); + indent(); + } + else if (s.equals("")) return; + else + { + buf_.append(s); + buf_.append(" "); + } + } + + + // print and show methods are defined for each category. + public static String print(pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.ListStatement foo) + { + pp(foo, 0); + trim(); + String temp = buf_.toString(); + buf_.delete(0,buf_.length()); + return temp; + } + public static String show(pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.ListStatement foo) + { + sh(foo); + String temp = buf_.toString(); + buf_.delete(0,buf_.length()); + return temp; + } + public static String print(pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.ListOrderItem foo) + { + pp(foo, 0); + trim(); + String temp = buf_.toString(); + buf_.delete(0,buf_.length()); + return temp; + } + public static String show(pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.ListOrderItem foo) + { + sh(foo); + String temp = buf_.toString(); + buf_.delete(0,buf_.length()); + return temp; + } + public static String print(pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.ListSelItem foo) + { + pp(foo, 0); + trim(); + String temp = buf_.toString(); + buf_.delete(0,buf_.length()); + return temp; + } + public static String show(pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.ListSelItem foo) + { + sh(foo); + String temp = buf_.toString(); + buf_.delete(0,buf_.length()); + return temp; + } + public static String print(pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.ListCondExpr foo) + { + pp(foo, 0); + trim(); + String temp = buf_.toString(); + buf_.delete(0,buf_.length()); + return temp; + } + public static String show(pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.ListCondExpr foo) + { + sh(foo); + String temp = buf_.toString(); + buf_.delete(0,buf_.length()); + return temp; + } + public static String print(pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.Program foo) + { + pp(foo, 0); + trim(); + String temp = buf_.toString(); + buf_.delete(0,buf_.length()); + return temp; + } + public static String show(pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.Program foo) + { + sh(foo); + String temp = buf_.toString(); + buf_.delete(0,buf_.length()); + return temp; + } + public static String print(pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.Statement foo) + { + pp(foo, 0); + trim(); + String temp = buf_.toString(); + buf_.delete(0,buf_.length()); + return temp; + } + public static String show(pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.Statement foo) + { + sh(foo); + String temp = buf_.toString(); + buf_.delete(0,buf_.length()); + return temp; + } + public static String print(pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.Where foo) + { + pp(foo, 0); + trim(); + String temp = buf_.toString(); + buf_.delete(0,buf_.length()); + return temp; + } + public static String show(pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.Where foo) + { + sh(foo); + String temp = buf_.toString(); + buf_.delete(0,buf_.length()); + return temp; + } + public static String print(pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.OrderBy foo) + { + pp(foo, 0); + trim(); + String temp = buf_.toString(); + buf_.delete(0,buf_.length()); + return temp; + } + public static String show(pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.OrderBy foo) + { + sh(foo); + String temp = buf_.toString(); + buf_.delete(0,buf_.length()); + return temp; + } + public static String print(pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.OrderItem foo) + { + pp(foo, 0); + trim(); + String temp = buf_.toString(); + buf_.delete(0,buf_.length()); + return temp; + } + public static String show(pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.OrderItem foo) + { + sh(foo); + String temp = buf_.toString(); + buf_.delete(0,buf_.length()); + return temp; + } + public static String print(pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.Order foo) + { + pp(foo, 0); + trim(); + String temp = buf_.toString(); + buf_.delete(0,buf_.length()); + return temp; + } + public static String show(pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.Order foo) + { + sh(foo); + String temp = buf_.toString(); + buf_.delete(0,buf_.length()); + return temp; + } + public static String print(pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.Nulls foo) + { + pp(foo, 0); + trim(); + String temp = buf_.toString(); + buf_.delete(0,buf_.length()); + return temp; + } + public static String show(pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.Nulls foo) + { + sh(foo); + String temp = buf_.toString(); + buf_.delete(0,buf_.length()); + return temp; + } + public static String print(pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.SelItem foo) + { + pp(foo, 0); + trim(); + String temp = buf_.toString(); + buf_.delete(0,buf_.length()); + return temp; + } + public static String show(pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.SelItem foo) + { + sh(foo); + String temp = buf_.toString(); + buf_.delete(0,buf_.length()); + return temp; + } + public static String print(pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.BoolExpr foo) + { + pp(foo, 0); + trim(); + String temp = buf_.toString(); + buf_.delete(0,buf_.length()); + return temp; + } + public static String show(pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.BoolExpr foo) + { + sh(foo); + String temp = buf_.toString(); + buf_.delete(0,buf_.length()); + return temp; + } + public static String print(pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.CondExpr foo) + { + pp(foo, 0); + trim(); + String temp = buf_.toString(); + buf_.delete(0,buf_.length()); + return temp; + } + public static String show(pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.CondExpr foo) + { + sh(foo); + String temp = buf_.toString(); + buf_.delete(0,buf_.length()); + return temp; + } + public static String print(pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.BasicExpr foo) + { + pp(foo, 0); + trim(); + String temp = buf_.toString(); + buf_.delete(0,buf_.length()); + return temp; + } + public static String show(pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.BasicExpr foo) + { + sh(foo); + String temp = buf_.toString(); + buf_.delete(0,buf_.length()); + return temp; + } + public static String print(pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.RelOp foo) + { + pp(foo, 0); + trim(); + String temp = buf_.toString(); + buf_.delete(0,buf_.length()); + return temp; + } + public static String show(pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.RelOp foo) + { + sh(foo); + String temp = buf_.toString(); + buf_.delete(0,buf_.length()); + return temp; + } + /*** You shouldn't need to change anything beyond this point. ***/ + + private static void pp(pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.ListStatement foo, int _i_) + { + for (java.util.Iterator<Statement> it = foo.iterator(); it.hasNext();) + { + pp(it.next(), 0); + if (it.hasNext()) { + render(";"); + } else { + render(""); + } + } + } + + private static void pp(pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.ListOrderItem foo, int _i_) + { + for (java.util.Iterator<OrderItem> it = foo.iterator(); it.hasNext();) + { + pp(it.next(), 0); + if (it.hasNext()) { + render(","); + } else { + render(""); + } + } + } + + private static void pp(pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.ListSelItem foo, int _i_) + { + for (java.util.Iterator<SelItem> it = foo.iterator(); it.hasNext();) + { + pp(it.next(), 0); + if (it.hasNext()) { + render(","); + } else { + render(""); + } + } + } + + private static void pp(pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.ListCondExpr foo, int _i_) + { + for (java.util.Iterator<CondExpr> it = foo.iterator(); it.hasNext();) + { + pp(it.next(), 0); + if (it.hasNext()) { + render(","); + } else { + render(""); + } + } + } + + private static void pp(pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.Program foo, int _i_) + { + if (foo instanceof pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.ProgramC) + { + pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.ProgramC _programc = (pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.ProgramC) foo; + if (_i_ > 0) render(_L_PAREN); + pp(_programc.liststatement_, 0); + if (_i_ > 0) render(_R_PAREN); + } + } + + private static void pp(pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.Statement foo, int _i_) + { + if (foo instanceof pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.StatementC) + { + pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.StatementC _statementc = (pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.StatementC) foo; + if (_i_ > 0) render(_L_PAREN); + render("SELECT"); + pp(_statementc.listselitem_, 0); + pp(_statementc.where_, 0); + pp(_statementc.orderby_, 0); + if (_i_ > 0) render(_R_PAREN); + } + } + + private static void pp(pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.Where foo, int _i_) + { + if (foo instanceof pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.NoWhereC) + { + if (_i_ > 0) render(_L_PAREN); + if (_i_ > 0) render(_R_PAREN); + } + else if (foo instanceof pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.WhereC) + { + pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.WhereC _wherec = (pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.WhereC) foo; + if (_i_ > 0) render(_L_PAREN); + render("WHERE"); + pp(_wherec.condexpr_, 0); + if (_i_ > 0) render(_R_PAREN); + } + } + + private static void pp(pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.OrderBy foo, int _i_) + { + if (foo instanceof pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.NoOrderByC) + { + if (_i_ > 0) render(_L_PAREN); + if (_i_ > 0) render(_R_PAREN); + } + else if (foo instanceof pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.OrderByC) + { + pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.OrderByC _orderbyc = (pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.OrderByC) foo; + if (_i_ > 0) render(_L_PAREN); + render("ORDER"); + render("BY"); + pp(_orderbyc.listorderitem_, 0); + if (_i_ > 0) render(_R_PAREN); + } + } + + private static void pp(pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.OrderItem foo, int _i_) + { + if (foo instanceof pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.OrderItemC) + { + pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.OrderItemC _orderitemc = (pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.OrderItemC) foo; + if (_i_ > 0) render(_L_PAREN); + pp(_orderitemc.condexpr_, 0); + pp(_orderitemc.order_, 0); + pp(_orderitemc.nulls_, 0); + if (_i_ > 0) render(_R_PAREN); + } + } + + private static void pp(pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.Order foo, int _i_) + { + if (foo instanceof pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.AscOrderC) + { + if (_i_ > 0) render(_L_PAREN); + render("ASC"); + if (_i_ > 0) render(_R_PAREN); + } + else if (foo instanceof pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.DescOrderC) + { + if (_i_ > 0) render(_L_PAREN); + render("DESC"); + if (_i_ > 0) render(_R_PAREN); + } + else if (foo instanceof pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.NoOrderC) + { + if (_i_ > 0) render(_L_PAREN); + if (_i_ > 0) render(_R_PAREN); + } + } + + private static void pp(pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.Nulls foo, int _i_) + { + if (foo instanceof pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.NoNullsC) + { + if (_i_ > 0) render(_L_PAREN); + if (_i_ > 0) render(_R_PAREN); + } + else if (foo instanceof pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.NullFirstsC) + { + if (_i_ > 0) render(_L_PAREN); + render("NULLS"); + render("FIRST"); + if (_i_ > 0) render(_R_PAREN); + } + else if (foo instanceof pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.NullsLastC) + { + if (_i_ > 0) render(_L_PAREN); + render("NULLS"); + render("LAST"); + if (_i_ > 0) render(_R_PAREN); + } + } + + private static void pp(pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.SelItem foo, int _i_) + { + if (foo instanceof pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.SelItemC) + { + pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.SelItemC _selitemc = (pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.SelItemC) foo; + if (_i_ > 0) render(_L_PAREN); + pp(_selitemc.condexpr_, 0); + if (_i_ > 0) render(_R_PAREN); + } + else if (foo instanceof pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.AliasedSelItemC) + { + pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.AliasedSelItemC _aliasedselitemc = (pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.AliasedSelItemC) foo; + if (_i_ > 0) render(_L_PAREN); + pp(_aliasedselitemc.condexpr_, 0); + render("AS"); + pp(_aliasedselitemc.qident_, 0); + if (_i_ > 0) render(_R_PAREN); + } + } + + private static void pp(pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.BoolExpr foo, int _i_) + { + if (foo instanceof pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.BoolExprCmpC) + { + pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.BoolExprCmpC _boolexprcmpc = (pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.BoolExprCmpC) foo; + if (_i_ > 0) render(_L_PAREN); + pp(_boolexprcmpc.basicexpr_1, 0); + pp(_boolexprcmpc.relop_, 0); + pp(_boolexprcmpc.basicexpr_2, 0); + if (_i_ > 0) render(_R_PAREN); + } + else if (foo instanceof pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.BoolExprRegExpC) + { + pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.BoolExprRegExpC _boolexprregexpc = (pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.BoolExprRegExpC) foo; + if (_i_ > 0) render(_L_PAREN); + pp(_boolexprregexpc.basicexpr_, 0); + render("REGEXP"); + printQuoted(_boolexprregexpc.string_); + if (_i_ > 0) render(_R_PAREN); + } + else if (foo instanceof pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.BoolExprBasicExprC) + { + pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.BoolExprBasicExprC _boolexprbasicexprc = (pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.BoolExprBasicExprC) foo; + if (_i_ > 0) render(_L_PAREN); + pp(_boolexprbasicexprc.basicexpr_, 0); + if (_i_ > 0) render(_R_PAREN); + } + } + + private static void pp(pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.CondExpr foo, int _i_) + { + if (foo instanceof pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.CondExprOrC) + { + pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.CondExprOrC _condexprorc = (pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.CondExprOrC) foo; + if (_i_ > 0) render(_L_PAREN); + pp(_condexprorc.condexpr_1, 0); + render("OR"); + pp(_condexprorc.condexpr_2, 1); + if (_i_ > 0) render(_R_PAREN); + } + else if (foo instanceof pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.CondExprAndC) + { + pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.CondExprAndC _condexprandc = (pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.CondExprAndC) foo; + if (_i_ > 1) render(_L_PAREN); + pp(_condexprandc.condexpr_1, 1); + render("AND"); + pp(_condexprandc.condexpr_2, 2); + if (_i_ > 1) render(_R_PAREN); + } + else if (foo instanceof pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.CondExprNotC) + { + pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.CondExprNotC _condexprnotc = (pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.CondExprNotC) foo; + if (_i_ > 2) render(_L_PAREN); + render("NOT"); + pp(_condexprnotc.condexpr_, 2); + if (_i_ > 2) render(_R_PAREN); + } + else if (foo instanceof pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.CondExprBoolExprC) + { + pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.CondExprBoolExprC _condexprboolexprc = (pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.CondExprBoolExprC) foo; + if (_i_ > 2) render(_L_PAREN); + pp(_condexprboolexprc.boolexpr_, 0); + if (_i_ > 2) render(_R_PAREN); + } + } + + private static void pp(pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.BasicExpr foo, int _i_) + { + if (foo instanceof pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.BasicExprAddC) + { + pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.BasicExprAddC _basicexpraddc = (pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.BasicExprAddC) foo; + if (_i_ > 0) render(_L_PAREN); + pp(_basicexpraddc.basicexpr_1, 0); + render("+"); + pp(_basicexpraddc.basicexpr_2, 1); + if (_i_ > 0) render(_R_PAREN); + } + else if (foo instanceof pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.BasicExprSubC) + { + pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.BasicExprSubC _basicexprsubc = (pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.BasicExprSubC) foo; + if (_i_ > 0) render(_L_PAREN); + pp(_basicexprsubc.basicexpr_1, 0); + render("-"); + pp(_basicexprsubc.basicexpr_2, 1); + if (_i_ > 0) render(_R_PAREN); + } + else if (foo instanceof pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.BasicExprMulC) + { + pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.BasicExprMulC _basicexprmulc = (pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.BasicExprMulC) foo; + if (_i_ > 1) render(_L_PAREN); + pp(_basicexprmulc.basicexpr_1, 1); + render("*"); + pp(_basicexprmulc.basicexpr_2, 2); + if (_i_ > 1) render(_R_PAREN); + } + else if (foo instanceof pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.BasicExprDivC) + { + pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.BasicExprDivC _basicexprdivc = (pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.BasicExprDivC) foo; + if (_i_ > 1) render(_L_PAREN); + pp(_basicexprdivc.basicexpr_1, 1); + render("/"); + pp(_basicexprdivc.basicexpr_2, 2); + if (_i_ > 1) render(_R_PAREN); + } + else if (foo instanceof pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.BasicExprModC) + { + pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.BasicExprModC _basicexprmodc = (pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.BasicExprModC) foo; + if (_i_ > 1) render(_L_PAREN); + pp(_basicexprmodc.basicexpr_1, 1); + render("%"); + pp(_basicexprmodc.basicexpr_2, 2); + if (_i_ > 1) render(_R_PAREN); + } + else if (foo instanceof pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.BasicExprNegC) + { + pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.BasicExprNegC _basicexprnegc = (pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.BasicExprNegC) foo; + if (_i_ > 2) render(_L_PAREN); + render("-"); + pp(_basicexprnegc.basicexpr_, 2); + if (_i_ > 2) render(_R_PAREN); + } + else if (foo instanceof pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.EBoolC) + { + pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.EBoolC _eboolc = (pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.EBoolC) foo; + if (_i_ > 3) render(_L_PAREN); + pp(_eboolc.qbool_, 0); + if (_i_ > 3) render(_R_PAREN); + } + else if (foo instanceof pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.EIdentC) + { + pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.EIdentC _eidentc = (pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.EIdentC) foo; + if (_i_ > 3) render(_L_PAREN); + pp(_eidentc.qident_, 0); + if (_i_ > 3) render(_R_PAREN); + } + else if (foo instanceof pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.EFunC) + { + pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.EFunC _efunc = (pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.EFunC) foo; + if (_i_ > 3) render(_L_PAREN); + pp(_efunc.qident_, 0); + render("("); + pp(_efunc.listcondexpr_, 0); + render(")"); + if (_i_ > 3) render(_R_PAREN); + } + else if (foo instanceof pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.EStrC) + { + pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.EStrC _estrc = (pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.EStrC) foo; + if (_i_ > 3) render(_L_PAREN); + printQuoted(_estrc.string_); + if (_i_ > 3) render(_R_PAREN); + } + else if (foo instanceof pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.EIntC) + { + pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.EIntC _eintc = (pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.EIntC) foo; + if (_i_ > 3) render(_L_PAREN); + pp(_eintc.qinteger_, 0); + if (_i_ > 3) render(_R_PAREN); + } + else if (foo instanceof pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.EDblC) + { + pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.EDblC _edblc = (pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.EDblC) foo; + if (_i_ > 3) render(_L_PAREN); + pp(_edblc.qdouble_, 0); + if (_i_ > 3) render(_R_PAREN); + } + else if (foo instanceof pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.ECondExprC) + { + pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.ECondExprC _econdexprc = (pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.ECondExprC) foo; + if (_i_ > 3) render(_L_PAREN); + render("("); + pp(_econdexprc.condexpr_, 0); + render(")"); + if (_i_ > 3) render(_R_PAREN); + } + else if (foo instanceof pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.EStmtC) + { + pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.EStmtC _estmtc = (pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.EStmtC) foo; + if (_i_ > 3) render(_L_PAREN); + render("("); + pp(_estmtc.statement_, 0); + render(")"); + if (_i_ > 3) render(_R_PAREN); + } + } + + private static void pp(pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.RelOp foo, int _i_) + { + if (foo instanceof pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.RelOpGtC) + { + if (_i_ > 0) render(_L_PAREN); + render(">"); + if (_i_ > 0) render(_R_PAREN); + } + else if (foo instanceof pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.RelOpEqC) + { + if (_i_ > 0) render(_L_PAREN); + render("="); + if (_i_ > 0) render(_R_PAREN); + } + else if (foo instanceof pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.RelOpNeC) + { + if (_i_ > 0) render(_L_PAREN); + render("<>"); + if (_i_ > 0) render(_R_PAREN); + } + else if (foo instanceof pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.RelOpLtC) + { + if (_i_ > 0) render(_L_PAREN); + render("<"); + if (_i_ > 0) render(_R_PAREN); + } + else if (foo instanceof pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.RelOpLeC) + { + if (_i_ > 0) render(_L_PAREN); + render("<="); + if (_i_ > 0) render(_R_PAREN); + } + else if (foo instanceof pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.RelOpGeC) + { + if (_i_ > 0) render(_L_PAREN); + render(">="); + if (_i_ > 0) render(_R_PAREN); + } + } + + + private static void sh(pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.ListStatement foo) + { + for (java.util.Iterator<Statement> it = foo.iterator(); it.hasNext();) + { + sh(it.next()); + if (it.hasNext()) + render(","); + } + } + + private static void sh(pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.ListOrderItem foo) + { + for (java.util.Iterator<OrderItem> it = foo.iterator(); it.hasNext();) + { + sh(it.next()); + if (it.hasNext()) + render(","); + } + } + + private static void sh(pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.ListSelItem foo) + { + for (java.util.Iterator<SelItem> it = foo.iterator(); it.hasNext();) + { + sh(it.next()); + if (it.hasNext()) + render(","); + } + } + + private static void sh(pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.ListCondExpr foo) + { + for (java.util.Iterator<CondExpr> it = foo.iterator(); it.hasNext();) + { + sh(it.next()); + if (it.hasNext()) + render(","); + } + } + + private static void sh(pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.Program foo) + { + if (foo instanceof pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.ProgramC) + { + pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.ProgramC _programc = (pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.ProgramC) foo; + render("("); + render("ProgramC"); + render("["); + sh(_programc.liststatement_); + render("]"); + render(")"); + } + } + + private static void sh(pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.Statement foo) + { + if (foo instanceof pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.StatementC) + { + pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.StatementC _statementc = (pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.StatementC) foo; + render("("); + render("StatementC"); + render("["); + sh(_statementc.listselitem_); + render("]"); + sh(_statementc.where_); + sh(_statementc.orderby_); + render(")"); + } + } + + private static void sh(pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.Where foo) + { + if (foo instanceof pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.NoWhereC) + { + render("NoWhereC"); + } + if (foo instanceof pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.WhereC) + { + pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.WhereC _wherec = (pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.WhereC) foo; + render("("); + render("WhereC"); + sh(_wherec.condexpr_); + render(")"); + } + } + + private static void sh(pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.OrderBy foo) + { + if (foo instanceof pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.NoOrderByC) + { + render("NoOrderByC"); + } + if (foo instanceof pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.OrderByC) + { + pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.OrderByC _orderbyc = (pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.OrderByC) foo; + render("("); + render("OrderByC"); + render("["); + sh(_orderbyc.listorderitem_); + render("]"); + render(")"); + } + } + + private static void sh(pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.OrderItem foo) + { + if (foo instanceof pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.OrderItemC) + { + pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.OrderItemC _orderitemc = (pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.OrderItemC) foo; + render("("); + render("OrderItemC"); + sh(_orderitemc.condexpr_); + sh(_orderitemc.order_); + sh(_orderitemc.nulls_); + render(")"); + } + } + + private static void sh(pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.Order foo) + { + if (foo instanceof pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.AscOrderC) + { + render("AscOrderC"); + } + if (foo instanceof pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.DescOrderC) + { + render("DescOrderC"); + } + if (foo instanceof pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.NoOrderC) + { + render("NoOrderC"); + } + } + + private static void sh(pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.Nulls foo) + { + if (foo instanceof pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.NoNullsC) + { + render("NoNullsC"); + } + if (foo instanceof pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.NullFirstsC) + { + render("NullFirstsC"); + } + if (foo instanceof pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.NullsLastC) + { + render("NullsLastC"); + } + } + + private static void sh(pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.SelItem foo) + { + if (foo instanceof pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.SelItemC) + { + pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.SelItemC _selitemc = (pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.SelItemC) foo; + render("("); + render("SelItemC"); + sh(_selitemc.condexpr_); + render(")"); + } + if (foo instanceof pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.AliasedSelItemC) + { + pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.AliasedSelItemC _aliasedselitemc = (pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.AliasedSelItemC) foo; + render("("); + render("AliasedSelItemC"); + sh(_aliasedselitemc.condexpr_); + sh(_aliasedselitemc.qident_); + render(")"); + } + } + + private static void sh(pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.BoolExpr foo) + { + if (foo instanceof pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.BoolExprCmpC) + { + pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.BoolExprCmpC _boolexprcmpc = (pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.BoolExprCmpC) foo; + render("("); + render("BoolExprCmpC"); + sh(_boolexprcmpc.basicexpr_1); + sh(_boolexprcmpc.relop_); + sh(_boolexprcmpc.basicexpr_2); + render(")"); + } + if (foo instanceof pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.BoolExprRegExpC) + { + pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.BoolExprRegExpC _boolexprregexpc = (pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.BoolExprRegExpC) foo; + render("("); + render("BoolExprRegExpC"); + sh(_boolexprregexpc.basicexpr_); + sh(_boolexprregexpc.string_); + render(")"); + } + if (foo instanceof pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.BoolExprBasicExprC) + { + pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.BoolExprBasicExprC _boolexprbasicexprc = (pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.BoolExprBasicExprC) foo; + render("("); + render("BoolExprBasicExprC"); + sh(_boolexprbasicexprc.basicexpr_); + render(")"); + } + } + + private static void sh(pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.CondExpr foo) + { + if (foo instanceof pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.CondExprOrC) + { + pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.CondExprOrC _condexprorc = (pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.CondExprOrC) foo; + render("("); + render("CondExprOrC"); + sh(_condexprorc.condexpr_1); + sh(_condexprorc.condexpr_2); + render(")"); + } + if (foo instanceof pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.CondExprAndC) + { + pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.CondExprAndC _condexprandc = (pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.CondExprAndC) foo; + render("("); + render("CondExprAndC"); + sh(_condexprandc.condexpr_1); + sh(_condexprandc.condexpr_2); + render(")"); + } + if (foo instanceof pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.CondExprNotC) + { + pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.CondExprNotC _condexprnotc = (pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.CondExprNotC) foo; + render("("); + render("CondExprNotC"); + sh(_condexprnotc.condexpr_); + render(")"); + } + if (foo instanceof pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.CondExprBoolExprC) + { + pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.CondExprBoolExprC _condexprboolexprc = (pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.CondExprBoolExprC) foo; + render("("); + render("CondExprBoolExprC"); + sh(_condexprboolexprc.boolexpr_); + render(")"); + } + } + + private static void sh(pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.BasicExpr foo) + { + if (foo instanceof pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.BasicExprAddC) + { + pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.BasicExprAddC _basicexpraddc = (pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.BasicExprAddC) foo; + render("("); + render("BasicExprAddC"); + sh(_basicexpraddc.basicexpr_1); + sh(_basicexpraddc.basicexpr_2); + render(")"); + } + if (foo instanceof pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.BasicExprSubC) + { + pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.BasicExprSubC _basicexprsubc = (pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.BasicExprSubC) foo; + render("("); + render("BasicExprSubC"); + sh(_basicexprsubc.basicexpr_1); + sh(_basicexprsubc.basicexpr_2); + render(")"); + } + if (foo instanceof pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.BasicExprMulC) + { + pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.BasicExprMulC _basicexprmulc = (pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.BasicExprMulC) foo; + render("("); + render("BasicExprMulC"); + sh(_basicexprmulc.basicexpr_1); + sh(_basicexprmulc.basicexpr_2); + render(")"); + } + if (foo instanceof pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.BasicExprDivC) + { + pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.BasicExprDivC _basicexprdivc = (pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.BasicExprDivC) foo; + render("("); + render("BasicExprDivC"); + sh(_basicexprdivc.basicexpr_1); + sh(_basicexprdivc.basicexpr_2); + render(")"); + } + if (foo instanceof pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.BasicExprModC) + { + pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.BasicExprModC _basicexprmodc = (pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.BasicExprModC) foo; + render("("); + render("BasicExprModC"); + sh(_basicexprmodc.basicexpr_1); + sh(_basicexprmodc.basicexpr_2); + render(")"); + } + if (foo instanceof pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.BasicExprNegC) + { + pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.BasicExprNegC _basicexprnegc = (pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.BasicExprNegC) foo; + render("("); + render("BasicExprNegC"); + sh(_basicexprnegc.basicexpr_); + render(")"); + } + if (foo instanceof pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.EBoolC) + { + pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.EBoolC _eboolc = (pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.EBoolC) foo; + render("("); + render("EBoolC"); + sh(_eboolc.qbool_); + render(")"); + } + if (foo instanceof pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.EIdentC) + { + pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.EIdentC _eidentc = (pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.EIdentC) foo; + render("("); + render("EIdentC"); + sh(_eidentc.qident_); + render(")"); + } + if (foo instanceof pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.EFunC) + { + pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.EFunC _efunc = (pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.EFunC) foo; + render("("); + render("EFunC"); + sh(_efunc.qident_); + render("["); + sh(_efunc.listcondexpr_); + render("]"); + render(")"); + } + if (foo instanceof pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.EStrC) + { + pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.EStrC _estrc = (pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.EStrC) foo; + render("("); + render("EStrC"); + sh(_estrc.string_); + render(")"); + } + if (foo instanceof pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.EIntC) + { + pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.EIntC _eintc = (pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.EIntC) foo; + render("("); + render("EIntC"); + sh(_eintc.qinteger_); + render(")"); + } + if (foo instanceof pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.EDblC) + { + pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.EDblC _edblc = (pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.EDblC) foo; + render("("); + render("EDblC"); + sh(_edblc.qdouble_); + render(")"); + } + if (foo instanceof pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.ECondExprC) + { + pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.ECondExprC _econdexprc = (pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.ECondExprC) foo; + render("("); + render("ECondExprC"); + sh(_econdexprc.condexpr_); + render(")"); + } + if (foo instanceof pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.EStmtC) + { + pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.EStmtC _estmtc = (pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.EStmtC) foo; + render("("); + render("EStmtC"); + sh(_estmtc.statement_); + render(")"); + } + } + + private static void sh(pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.RelOp foo) + { + if (foo instanceof pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.RelOpGtC) + { + render("RelOpGtC"); + } + if (foo instanceof pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.RelOpEqC) + { + render("RelOpEqC"); + } + if (foo instanceof pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.RelOpNeC) + { + render("RelOpNeC"); + } + if (foo instanceof pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.RelOpLtC) + { + render("RelOpLtC"); + } + if (foo instanceof pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.RelOpLeC) + { + render("RelOpLeC"); + } + if (foo instanceof pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.RelOpGeC) + { + render("RelOpGeC"); + } + } + + + private static void pp(String s, int _i_) { buf_.append(s); buf_.append(" "); } + private static void sh(String s) { printQuoted(s); } + private static void printQuoted(String s) { render("\"" + s + "\""); } + private static void indent() + { + int n = _n_; + while (n > 0) + { + buf_.append(" "); + n--; + } + } + private static void backup() + { + if (buf_.charAt(buf_.length() - 1) == ' ') { + buf_.setLength(buf_.length() - 1); + } + } + private static void trim() + { + while (buf_.length() > 0 && buf_.charAt(0) == ' ') + buf_.deleteCharAt(0); + while (buf_.length() > 0 && buf_.charAt(buf_.length()-1) == ' ') + buf_.deleteCharAt(buf_.length()-1); + } + private static int _n_ = 0; + private static StringBuilder buf_ = new StringBuilder(INITIAL_BUFFER_SIZE); +} + diff --git a/src/main/java/pl/edu/mimuw/cloudatlas/interpreter/query/Test.java b/src/main/java/pl/edu/mimuw/cloudatlas/interpreter/query/Test.java new file mode 100644 index 0000000..57ac1f8 --- /dev/null +++ b/src/main/java/pl/edu/mimuw/cloudatlas/interpreter/query/Test.java @@ -0,0 +1,46 @@ +package pl.edu.mimuw.cloudatlas.interpreter.query; +import java.io.FileNotFoundException; +import java.io.FileReader; + +public class Test +{ + public static void main(String args[]) throws Exception + { + Yylex l = null; + parser p; + try + { + if (args.length == 0) l = new Yylex(System.in); + else l = new Yylex(new FileReader(args[0])); + } + catch(FileNotFoundException e) + { + System.err.println("Error: File not found: " + args[0]); + System.exit(1); + } + p = new parser(l); + /* The default parser is the first-defined entry point. */ + /* You may want to change this. Other options are: */ + /* */ + try + { + pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.Program parse_tree = p.pProgram(); + System.out.println(); + System.out.println("Parse Succesful!"); + System.out.println(); + System.out.println("[Abstract Syntax]"); + System.out.println(); + System.out.println(PrettyPrinter.show(parse_tree)); + System.out.println(); + System.out.println("[Linearized Tree]"); + System.out.println(); + System.out.println(PrettyPrinter.print(parse_tree)); + } + catch(Throwable e) + { + System.err.println("At line " + String.valueOf(l.line_num()) + ", near \"" + l.buff() + "\" :"); + System.err.println(" " + e.getMessage()); + System.exit(1); + } + } +} diff --git a/src/main/java/pl/edu/mimuw/cloudatlas/interpreter/query/Yylex b/src/main/java/pl/edu/mimuw/cloudatlas/interpreter/query/Yylex new file mode 100644 index 0000000..4dd8029 --- /dev/null +++ b/src/main/java/pl/edu/mimuw/cloudatlas/interpreter/query/Yylex @@ -0,0 +1,76 @@ +// This JLex file was machine-generated by the BNF converter +package pl.edu.mimuw.mmws.cloudatlas.query; + +import java_cup.runtime.*; +%% +%cup +%unicode +%line +%public +%{ + String pstring = new String(); + public int line_num() { return (yyline+1); } + public String buff() { return new String(yy_buffer,yy_buffer_index,10).trim(); } +%} +LETTER = ({CAPITAL}|{SMALL}) +CAPITAL = [A-Z\xC0-\xD6\xD8-\xDE] +SMALL = [a-z\xDF-\xF6\xF8-\xFF] +DIGIT = [0-9] +IDENT = ({LETTER}|{DIGIT}|['_]) +%state COMMENT +%state CHAR +%state CHARESC +%state CHAREND +%state STRING +%state ESCAPED +%% +<YYINITIAL>; { return new Symbol(sym._SYMB_0); } +<YYINITIAL>, { return new Symbol(sym._SYMB_1); } +<YYINITIAL>\+ { return new Symbol(sym._SYMB_2); } +<YYINITIAL>- { return new Symbol(sym._SYMB_3); } +<YYINITIAL>\* { return new Symbol(sym._SYMB_4); } +<YYINITIAL>/ { return new Symbol(sym._SYMB_5); } +<YYINITIAL>% { return new Symbol(sym._SYMB_6); } +<YYINITIAL>\( { return new Symbol(sym._SYMB_7); } +<YYINITIAL>\) { return new Symbol(sym._SYMB_8); } +<YYINITIAL>> { return new Symbol(sym._SYMB_9); } +<YYINITIAL>= { return new Symbol(sym._SYMB_10); } +<YYINITIAL><> { return new Symbol(sym._SYMB_11); } +<YYINITIAL>< { return new Symbol(sym._SYMB_12); } +<YYINITIAL><= { return new Symbol(sym._SYMB_13); } +<YYINITIAL>>= { return new Symbol(sym._SYMB_14); } +<YYINITIAL>AND { return new Symbol(sym._SYMB_15); } +<YYINITIAL>AS { return new Symbol(sym._SYMB_16); } +<YYINITIAL>ASC { return new Symbol(sym._SYMB_17); } +<YYINITIAL>BY { return new Symbol(sym._SYMB_18); } +<YYINITIAL>DESC { return new Symbol(sym._SYMB_19); } +<YYINITIAL>FIRST { return new Symbol(sym._SYMB_20); } +<YYINITIAL>LAST { return new Symbol(sym._SYMB_21); } +<YYINITIAL>NOT { return new Symbol(sym._SYMB_22); } +<YYINITIAL>NULLS { return new Symbol(sym._SYMB_23); } +<YYINITIAL>OR { return new Symbol(sym._SYMB_24); } +<YYINITIAL>ORDER { return new Symbol(sym._SYMB_25); } +<YYINITIAL>REGEXP { return new Symbol(sym._SYMB_26); } +<YYINITIAL>SELECT { return new Symbol(sym._SYMB_27); } +<YYINITIAL>WHERE { return new Symbol(sym._SYMB_28); } + +<YYINITIAL>true|false { return new Symbol(sym.QBool, yytext().intern()); } +<YYINITIAL>({LETTER}|&)({LETTER}|{DIGIT}|_)* { return new Symbol(sym.QIdent, yytext().intern()); } +<YYINITIAL>{DIGIT}*\.{DIGIT}+([eE]-?{DIGIT}+)?|{DIGIT}+([eE]-?{DIGIT}+) { return new Symbol(sym.QDouble, yytext().intern()); } +<YYINITIAL>0|[123456789]{DIGIT}* { return new Symbol(sym.QInteger, yytext().intern()); } + +<YYINITIAL>"\"" { yybegin(STRING); } +<STRING>\\ { yybegin(ESCAPED); } +<STRING>\" { String foo = pstring; pstring = new String(); yybegin(YYINITIAL); return new Symbol(sym._STRING_, foo.intern()); } +<STRING>. { pstring += yytext(); } +<ESCAPED>n { pstring += "\n"; yybegin(STRING); } +<ESCAPED>\" { pstring += "\""; yybegin(STRING); } +<ESCAPED>\\ { pstring += "\\"; yybegin(STRING); } +<ESCAPED>t { pstring += "\t"; yybegin(STRING); } +<ESCAPED>. { pstring += yytext(); yybegin(STRING); } + + + + + +<YYINITIAL>[ \t\r\n\f] { /* ignore white space. */ } diff --git a/src/main/java/pl/edu/mimuw/cloudatlas/interpreter/query/Yylex.java b/src/main/java/pl/edu/mimuw/cloudatlas/interpreter/query/Yylex.java new file mode 100644 index 0000000..2fb69d7 --- /dev/null +++ b/src/main/java/pl/edu/mimuw/cloudatlas/interpreter/query/Yylex.java @@ -0,0 +1,763 @@ +// This JLex file was machine-generated by the BNF converter +package pl.edu.mimuw.cloudatlas.interpreter.query; +import java_cup.runtime.*; + + +public class Yylex implements java_cup.runtime.Scanner { + private final int YY_BUFFER_SIZE = 512; + private final int YY_F = -1; + private final int YY_NO_STATE = -1; + private final int YY_NOT_ACCEPT = 0; + private final int YY_END = 2; + private final int YY_NO_ANCHOR = 4; + private final int YY_BOL = 65536; + private final int YY_EOF = 65537; + + String pstring = new String(); + public int line_num() { return (yyline+1); } + public String buff() { return new String(yy_buffer,yy_buffer_index,10).trim(); } + private java.io.BufferedReader yy_reader; + private int yy_buffer_index; + private int yy_buffer_read; + private int yy_buffer_start; + private int yy_buffer_end; + private char yy_buffer[]; + private int yyline; + private boolean yy_at_bol; + private int yy_lexical_state; + + public Yylex (java.io.Reader reader) { + this (); + if (null == reader) { + throw (new Error("Error: Bad input stream initializer.")); + } + yy_reader = new java.io.BufferedReader(reader); + } + + public Yylex (java.io.InputStream instream) { + this (); + if (null == instream) { + throw (new Error("Error: Bad input stream initializer.")); + } + yy_reader = new java.io.BufferedReader(new java.io.InputStreamReader(instream)); + } + + private Yylex () { + yy_buffer = new char[YY_BUFFER_SIZE]; + yy_buffer_read = 0; + yy_buffer_index = 0; + yy_buffer_start = 0; + yy_buffer_end = 0; + yyline = 0; + yy_at_bol = true; + yy_lexical_state = YYINITIAL; + } + + private final int STRING = 5; + private final int ESCAPED = 6; + private final int YYINITIAL = 0; + private final int yy_state_dtrans[] = { + 0, + 57, + 57, + 57, + 57, + 59, + 61 + }; + private void yybegin (int state) { + yy_lexical_state = state; + } + private int yy_advance () + throws java.io.IOException { + int next_read; + int i; + int j; + + if (yy_buffer_index < yy_buffer_read) { + return yy_buffer[yy_buffer_index++]; + } + + if (0 != yy_buffer_start) { + i = yy_buffer_start; + j = 0; + while (i < yy_buffer_read) { + yy_buffer[j] = yy_buffer[i]; + ++i; + ++j; + } + yy_buffer_end = yy_buffer_end - yy_buffer_start; + yy_buffer_start = 0; + yy_buffer_read = j; + yy_buffer_index = j; + next_read = yy_reader.read(yy_buffer, + yy_buffer_read, + yy_buffer.length - yy_buffer_read); + if (-1 == next_read) { + return YY_EOF; + } + yy_buffer_read = yy_buffer_read + next_read; + } + + while (yy_buffer_index >= yy_buffer_read) { + if (yy_buffer_index >= yy_buffer.length) { + yy_buffer = yy_double(yy_buffer); + } + next_read = yy_reader.read(yy_buffer, + yy_buffer_read, + yy_buffer.length - yy_buffer_read); + if (-1 == next_read) { + return YY_EOF; + } + yy_buffer_read = yy_buffer_read + next_read; + } + return yy_buffer[yy_buffer_index++]; + } + private void yy_move_end () { + if (yy_buffer_end > yy_buffer_start && + '\n' == yy_buffer[yy_buffer_end-1]) + yy_buffer_end--; + if (yy_buffer_end > yy_buffer_start && + '\r' == yy_buffer[yy_buffer_end-1]) + yy_buffer_end--; + } + private boolean yy_last_was_cr=false; + private void yy_mark_start () { + int i; + for (i = yy_buffer_start; i < yy_buffer_index; ++i) { + if ('\n' == yy_buffer[i] && !yy_last_was_cr) { + ++yyline; + } + if ('\r' == yy_buffer[i]) { + ++yyline; + yy_last_was_cr=true; + } else yy_last_was_cr=false; + } + yy_buffer_start = yy_buffer_index; + } + private void yy_mark_end () { + yy_buffer_end = yy_buffer_index; + } + private void yy_to_mark () { + yy_buffer_index = yy_buffer_end; + yy_at_bol = (yy_buffer_end > yy_buffer_start) && + ('\r' == yy_buffer[yy_buffer_end-1] || + '\n' == yy_buffer[yy_buffer_end-1] || + 2028/*LS*/ == yy_buffer[yy_buffer_end-1] || + 2029/*PS*/ == yy_buffer[yy_buffer_end-1]); + } + private java.lang.String yytext () { + return (new java.lang.String(yy_buffer, + yy_buffer_start, + yy_buffer_end - yy_buffer_start)); + } + private char[] yy_double (char buf[]) { + int i; + char newbuf[]; + newbuf = new char[2*buf.length]; + for (i = 0; i < buf.length; ++i) { + newbuf[i] = buf[i]; + } + return newbuf; + } + private final int YY_E_INTERNAL = 0; + private java.lang.String yy_error_string[] = { + "Error: Internal error.\n", + "Error: Unmatched input.\n" + }; + private void yy_error (int code,boolean fatal) { + java.lang.System.out.print(yy_error_string[code]); + java.lang.System.out.flush(); + if (fatal) { + throw new Error("Fatal Error.\n"); + } + } + private int[][] unpackFromString(int size1, int size2, String st) { + int colonIndex = -1; + String lengthString; + int sequenceLength = 0; + int sequenceInteger = 0; + + int commaIndex; + String workString; + + int res[][] = new int[size1][size2]; + for (int i= 0; i < size1; i++) { + for (int j= 0; j < size2; j++) { + if (sequenceLength != 0) { + res[i][j] = sequenceInteger; + sequenceLength--; + continue; + } + commaIndex = st.indexOf(','); + workString = (commaIndex==-1) ? st : + st.substring(0, commaIndex); + st = st.substring(commaIndex+1); + colonIndex = workString.indexOf(':'); + if (colonIndex == -1) { + res[i][j]=Integer.parseInt(workString); + continue; + } + lengthString = + workString.substring(colonIndex+1); + sequenceLength=Integer.parseInt(lengthString); + workString=workString.substring(0,colonIndex); + sequenceInteger=Integer.parseInt(workString); + res[i][j] = sequenceInteger; + sequenceLength--; + } + } + return res; + } + private int yy_acpt[] = { + /* 0 */ YY_NOT_ACCEPT, + /* 1 */ YY_NO_ANCHOR, + /* 2 */ YY_NO_ANCHOR, + /* 3 */ YY_NO_ANCHOR, + /* 4 */ YY_NO_ANCHOR, + /* 5 */ YY_NO_ANCHOR, + /* 6 */ YY_NO_ANCHOR, + /* 7 */ YY_NO_ANCHOR, + /* 8 */ YY_NO_ANCHOR, + /* 9 */ YY_NO_ANCHOR, + /* 10 */ YY_NO_ANCHOR, + /* 11 */ YY_NO_ANCHOR, + /* 12 */ YY_NO_ANCHOR, + /* 13 */ YY_NO_ANCHOR, + /* 14 */ YY_NO_ANCHOR, + /* 15 */ YY_NO_ANCHOR, + /* 16 */ YY_NO_ANCHOR, + /* 17 */ YY_NO_ANCHOR, + /* 18 */ YY_NO_ANCHOR, + /* 19 */ YY_NO_ANCHOR, + /* 20 */ YY_NO_ANCHOR, + /* 21 */ YY_NO_ANCHOR, + /* 22 */ YY_NO_ANCHOR, + /* 23 */ YY_NO_ANCHOR, + /* 24 */ YY_NO_ANCHOR, + /* 25 */ YY_NO_ANCHOR, + /* 26 */ YY_NO_ANCHOR, + /* 27 */ YY_NO_ANCHOR, + /* 28 */ YY_NO_ANCHOR, + /* 29 */ YY_NO_ANCHOR, + /* 30 */ YY_NO_ANCHOR, + /* 31 */ YY_NO_ANCHOR, + /* 32 */ YY_NO_ANCHOR, + /* 33 */ YY_NO_ANCHOR, + /* 34 */ YY_NO_ANCHOR, + /* 35 */ YY_NO_ANCHOR, + /* 36 */ YY_NO_ANCHOR, + /* 37 */ YY_NO_ANCHOR, + /* 38 */ YY_NO_ANCHOR, + /* 39 */ YY_NO_ANCHOR, + /* 40 */ YY_NO_ANCHOR, + /* 41 */ YY_NO_ANCHOR, + /* 42 */ YY_NO_ANCHOR, + /* 43 */ YY_NO_ANCHOR, + /* 44 */ YY_NO_ANCHOR, + /* 45 */ YY_NOT_ACCEPT, + /* 46 */ YY_NO_ANCHOR, + /* 47 */ YY_NO_ANCHOR, + /* 48 */ YY_NO_ANCHOR, + /* 49 */ YY_NOT_ACCEPT, + /* 50 */ YY_NO_ANCHOR, + /* 51 */ YY_NOT_ACCEPT, + /* 52 */ YY_NO_ANCHOR, + /* 53 */ YY_NOT_ACCEPT, + /* 54 */ YY_NO_ANCHOR, + /* 55 */ YY_NOT_ACCEPT, + /* 56 */ YY_NO_ANCHOR, + /* 57 */ YY_NOT_ACCEPT, + /* 58 */ YY_NO_ANCHOR, + /* 59 */ YY_NOT_ACCEPT, + /* 60 */ YY_NO_ANCHOR, + /* 61 */ YY_NOT_ACCEPT, + /* 62 */ YY_NO_ANCHOR, + /* 63 */ YY_NO_ANCHOR, + /* 64 */ YY_NO_ANCHOR, + /* 65 */ YY_NO_ANCHOR, + /* 66 */ YY_NO_ANCHOR, + /* 67 */ YY_NO_ANCHOR, + /* 68 */ YY_NO_ANCHOR, + /* 69 */ YY_NO_ANCHOR, + /* 70 */ YY_NO_ANCHOR, + /* 71 */ YY_NO_ANCHOR, + /* 72 */ YY_NO_ANCHOR, + /* 73 */ YY_NO_ANCHOR, + /* 74 */ YY_NO_ANCHOR, + /* 75 */ YY_NO_ANCHOR, + /* 76 */ YY_NO_ANCHOR, + /* 77 */ YY_NO_ANCHOR, + /* 78 */ YY_NO_ANCHOR, + /* 79 */ YY_NO_ANCHOR, + /* 80 */ YY_NO_ANCHOR, + /* 81 */ YY_NO_ANCHOR, + /* 82 */ YY_NO_ANCHOR, + /* 83 */ YY_NO_ANCHOR, + /* 84 */ YY_NO_ANCHOR, + /* 85 */ YY_NO_ANCHOR, + /* 86 */ YY_NO_ANCHOR, + /* 87 */ YY_NO_ANCHOR, + /* 88 */ YY_NO_ANCHOR, + /* 89 */ YY_NO_ANCHOR, + /* 90 */ YY_NO_ANCHOR, + /* 91 */ YY_NO_ANCHOR, + /* 92 */ YY_NO_ANCHOR, + /* 93 */ YY_NO_ANCHOR, + /* 94 */ YY_NO_ANCHOR, + /* 95 */ YY_NO_ANCHOR + }; + private int yy_cmap[] = unpackFromString(1,65538, +"49:9,51,52,49,51,52,49:18,51,49,47,49:2,7,42,49,8,9,5,3,2,4,45,6,46,43:9,49" + +",1,12,11,10,49:2,13,18,17,15,20,21,28,32,22,41:2,25,41,14,26,30,41,23,16,24" + +",27,41,31,29,19,41,49,48,49:2,44,49,38,41:3,36,37,41:5,39,41,50,41:3,34,40," + +"33,35,41:5,49:69,41:23,49,41:31,49,41:8,49:65280,0:2")[0]; + + private int yy_rmap[] = unpackFromString(1,96, +"0,1:10,2,1,3,4,5,1:5,6,7,8,9,7:12,1:8,10,11,12,13,14,15,12,16,13,17,14,18,1" + +"9,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,4" + +"4,45,46,47,48,49,7,50,51,52,53,54,55,56")[0]; + + private int yy_nxt[][] = unpackFromString(57,53, +"1,2,3,4,5,6,7,8,9,10,11,12,13,14,46,81,85,88,50,88:2,90,88,91,88,92,52,88:4" + +",93,88,94,88:3,95,88:5,15,-1,45,47,16,-1:2,88,17:2,-1:64,18,-1:51,19,20,-1:" + +"54,88,54,88,21,88:25,-1,88:2,-1,88,-1:3,88,-1:22,49,-1:15,49,-1:6,15,-1,45," + +"15,-1:19,88:4,26,88:24,-1,88:2,-1,88,-1:3,88,-1:15,88:29,-1,88:2,-1,88,-1:3" + +",88,-1:15,88:2,89,88:26,-1,88:2,-1,88,-1:3,88,-1:22,55,-1:15,55,-1:6,24,-1:" + +"2,24,-1:49,24,-1:2,24,-1:19,88:13,56,58,88:14,-1,88:2,-1,88,-1:3,88,-1:22,4" + +"9,-1:15,49,-1:6,51,-1,45,51,-1:49,48,-1:2,48,-1:10,53,-1:38,48,-1:2,48,-1:1" + +"9,88:6,22,88:22,-1,88:2,-1,88,-1:3,88,-1:15,88:10,23,88:18,-1,88:2,-1,88,-1" + +":3,88,-1:15,88:2,25,88:26,-1,88:2,-1,88,-1:3,88,-1:15,88:11,27,88:17,-1,88:" + +"2,-1,88,-1:3,88,-1:2,1,-1:65,88:12,86,88:16,-1,88:2,-1,88,-1:3,88,-1:2,1,37" + +":46,38,39,37:3,-1:14,88:3,67,88:25,-1,88:2,-1,88,-1:3,88,-1:2,1,40:32,41,40" + +":13,42,43,40,44,40,-1:14,88:10,68,88:18,-1,88:2,-1,88,-1:3,88,-1:15,88:15,8" + +"7,88:13,-1,88:2,-1,88,-1:3,88,-1:15,88:7,70,88:21,-1,88:2,-1,88,-1:3,88,-1:" + +"15,88:22,71,88:6,-1,88:2,-1,88,-1:3,88,-1:15,88:26,72,88:2,-1,88:2,-1,88,-1" + +":3,88,-1:15,88:4,28,88:24,-1,88:2,-1,88,-1:3,88,-1:15,88:3,75,88:25,-1,88:2" + +",-1,88,-1:3,88,-1:15,88:11,29,88:17,-1,88:2,-1,88,-1:3,88,-1:15,88:10,78,88" + +":18,-1,88:2,-1,88,-1:3,88,-1:15,88:23,30,88:5,-1,88:2,-1,88,-1:3,88,-1:15,8" + +"8:27,71,88,-1,88:2,-1,88,-1:3,88,-1:15,88:3,31,88:25,-1,88:2,-1,88,-1:3,88," + +"-1:15,88:4,79,88:24,-1,88:2,-1,88,-1:3,88,-1:15,88:11,32,88:17,-1,88:2,-1,8" + +"8,-1:3,88,-1:15,88:16,80,88:12,-1,88:2,-1,88,-1:3,88,-1:15,88:10,33,88:18,-" + +"1,88:2,-1,88,-1:3,88,-1:15,88:7,34,88:21,-1,88:2,-1,88,-1:3,88,-1:15,88:11," + +"35,88:17,-1,88:2,-1,88,-1:3,88,-1:15,88:17,36,88:11,-1,88:2,-1,88,-1:3,88,-" + +"1:15,88:7,60,88:21,-1,88:2,-1,88,-1:3,88,-1:15,88:12,84,88:16,-1,88:2,-1,88" + +",-1:3,88,-1:15,88:3,69,88:25,-1,88:2,-1,88,-1:3,88,-1:15,88:7,74,88:21,-1,8" + +"8:2,-1,88,-1:3,88,-1:15,88:7,82,88:21,-1,88:2,-1,88,-1:3,88,-1:15,88:12,73," + +"88:16,-1,88:2,-1,88,-1:3,88,-1:15,88:7,76,88:21,-1,88:2,-1,88,-1:3,88,-1:15" + +",88:7,77,88:21,-1,88:2,-1,88,-1:3,88,-1:15,88:9,62,88:19,-1,88:2,-1,88,-1:3" + +",88,-1:15,88:7,63,88:21,-1,88:2,-1,88,-1:3,88,-1:15,83,88:28,-1,88:2,-1,88," + +"-1:3,88,-1:15,88:19,64,88:9,-1,88:2,-1,88,-1:3,88,-1:15,88:21,65,88:7,-1,88" + +":2,-1,88,-1:3,88,-1:15,88:25,66,88:3,-1,88:2,-1,88,-1:3,88,-1:2"); + + public java_cup.runtime.Symbol next_token () + throws java.io.IOException { + int yy_lookahead; + int yy_anchor = YY_NO_ANCHOR; + int yy_state = yy_state_dtrans[yy_lexical_state]; + int yy_next_state = YY_NO_STATE; + int yy_last_accept_state = YY_NO_STATE; + boolean yy_initial = true; + int yy_this_accept; + + yy_mark_start(); + yy_this_accept = yy_acpt[yy_state]; + if (YY_NOT_ACCEPT != yy_this_accept) { + yy_last_accept_state = yy_state; + yy_mark_end(); + } + while (true) { + if (yy_initial && yy_at_bol) yy_lookahead = YY_BOL; + else yy_lookahead = yy_advance(); + yy_next_state = YY_F; + yy_next_state = yy_nxt[yy_rmap[yy_state]][yy_cmap[yy_lookahead]]; + if (YY_EOF == yy_lookahead && true == yy_initial) { + return null; + } + if (YY_F != yy_next_state) { + yy_state = yy_next_state; + yy_initial = false; + yy_this_accept = yy_acpt[yy_state]; + if (YY_NOT_ACCEPT != yy_this_accept) { + yy_last_accept_state = yy_state; + yy_mark_end(); + } + } + else { + if (YY_NO_STATE == yy_last_accept_state) { + throw (new Error("Lexical Error: Unmatched Input.")); + } + else { + yy_anchor = yy_acpt[yy_last_accept_state]; + if (0 != (YY_END & yy_anchor)) { + yy_move_end(); + } + yy_to_mark(); + switch (yy_last_accept_state) { + case 1: + + case -2: + break; + case 2: + { return new Symbol(sym._SYMB_0); } + case -3: + break; + case 3: + { return new Symbol(sym._SYMB_1); } + case -4: + break; + case 4: + { return new Symbol(sym._SYMB_2); } + case -5: + break; + case 5: + { return new Symbol(sym._SYMB_3); } + case -6: + break; + case 6: + { return new Symbol(sym._SYMB_4); } + case -7: + break; + case 7: + { return new Symbol(sym._SYMB_5); } + case -8: + break; + case 8: + { return new Symbol(sym._SYMB_6); } + case -9: + break; + case 9: + { return new Symbol(sym._SYMB_7); } + case -10: + break; + case 10: + { return new Symbol(sym._SYMB_8); } + case -11: + break; + case 11: + { return new Symbol(sym._SYMB_9); } + case -12: + break; + case 12: + { return new Symbol(sym._SYMB_10); } + case -13: + break; + case 13: + { return new Symbol(sym._SYMB_12); } + case -14: + break; + case 14: + { return new Symbol(sym.QIdent, yytext().intern()); } + case -15: + break; + case 15: + { return new Symbol(sym.QInteger, yytext().intern()); } + case -16: + break; + case 16: + { yybegin(STRING); } + case -17: + break; + case 17: + { /* ignore white space. */ } + case -18: + break; + case 18: + { return new Symbol(sym._SYMB_14); } + case -19: + break; + case 19: + { return new Symbol(sym._SYMB_11); } + case -20: + break; + case 20: + { return new Symbol(sym._SYMB_13); } + case -21: + break; + case 21: + { return new Symbol(sym._SYMB_16); } + case -22: + break; + case 22: + { return new Symbol(sym._SYMB_18); } + case -23: + break; + case 23: + { return new Symbol(sym._SYMB_24); } + case -24: + break; + case 24: + { return new Symbol(sym.QDouble, yytext().intern()); } + case -25: + break; + case 25: + { return new Symbol(sym._SYMB_15); } + case -26: + break; + case 26: + { return new Symbol(sym._SYMB_17); } + case -27: + break; + case 27: + { return new Symbol(sym._SYMB_22); } + case -28: + break; + case 28: + { return new Symbol(sym._SYMB_19); } + case -29: + break; + case 29: + { return new Symbol(sym._SYMB_21); } + case -30: + break; + case 30: + { return new Symbol(sym.QBool, yytext().intern()); } + case -31: + break; + case 31: + { return new Symbol(sym._SYMB_23); } + case -32: + break; + case 32: + { return new Symbol(sym._SYMB_20); } + case -33: + break; + case 33: + { return new Symbol(sym._SYMB_25); } + case -34: + break; + case 34: + { return new Symbol(sym._SYMB_28); } + case -35: + break; + case 35: + { return new Symbol(sym._SYMB_27); } + case -36: + break; + case 36: + { return new Symbol(sym._SYMB_26); } + case -37: + break; + case 37: + { pstring += yytext(); } + case -38: + break; + case 38: + { String foo = pstring; pstring = new String(); yybegin(YYINITIAL); return new Symbol(sym._STRING_, foo.intern()); } + case -39: + break; + case 39: + { yybegin(ESCAPED); } + case -40: + break; + case 40: + { pstring += yytext(); yybegin(STRING); } + case -41: + break; + case 41: + { pstring += "\t"; yybegin(STRING); } + case -42: + break; + case 42: + { pstring += "\""; yybegin(STRING); } + case -43: + break; + case 43: + { pstring += "\\"; yybegin(STRING); } + case -44: + break; + case 44: + { pstring += "\n"; yybegin(STRING); } + case -45: + break; + case 46: + { return new Symbol(sym.QIdent, yytext().intern()); } + case -46: + break; + case 47: + { return new Symbol(sym.QInteger, yytext().intern()); } + case -47: + break; + case 48: + { return new Symbol(sym.QDouble, yytext().intern()); } + case -48: + break; + case 50: + { return new Symbol(sym.QIdent, yytext().intern()); } + case -49: + break; + case 52: + { return new Symbol(sym.QIdent, yytext().intern()); } + case -50: + break; + case 54: + { return new Symbol(sym.QIdent, yytext().intern()); } + case -51: + break; + case 56: + { return new Symbol(sym.QIdent, yytext().intern()); } + case -52: + break; + case 58: + { return new Symbol(sym.QIdent, yytext().intern()); } + case -53: + break; + case 60: + { return new Symbol(sym.QIdent, yytext().intern()); } + case -54: + break; + case 62: + { return new Symbol(sym.QIdent, yytext().intern()); } + case -55: + break; + case 63: + { return new Symbol(sym.QIdent, yytext().intern()); } + case -56: + break; + case 64: + { return new Symbol(sym.QIdent, yytext().intern()); } + case -57: + break; + case 65: + { return new Symbol(sym.QIdent, yytext().intern()); } + case -58: + break; + case 66: + { return new Symbol(sym.QIdent, yytext().intern()); } + case -59: + break; + case 67: + { return new Symbol(sym.QIdent, yytext().intern()); } + case -60: + break; + case 68: + { return new Symbol(sym.QIdent, yytext().intern()); } + case -61: + break; + case 69: + { return new Symbol(sym.QIdent, yytext().intern()); } + case -62: + break; + case 70: + { return new Symbol(sym.QIdent, yytext().intern()); } + case -63: + break; + case 71: + { return new Symbol(sym.QIdent, yytext().intern()); } + case -64: + break; + case 72: + { return new Symbol(sym.QIdent, yytext().intern()); } + case -65: + break; + case 73: + { return new Symbol(sym.QIdent, yytext().intern()); } + case -66: + break; + case 74: + { return new Symbol(sym.QIdent, yytext().intern()); } + case -67: + break; + case 75: + { return new Symbol(sym.QIdent, yytext().intern()); } + case -68: + break; + case 76: + { return new Symbol(sym.QIdent, yytext().intern()); } + case -69: + break; + case 77: + { return new Symbol(sym.QIdent, yytext().intern()); } + case -70: + break; + case 78: + { return new Symbol(sym.QIdent, yytext().intern()); } + case -71: + break; + case 79: + { return new Symbol(sym.QIdent, yytext().intern()); } + case -72: + break; + case 80: + { return new Symbol(sym.QIdent, yytext().intern()); } + case -73: + break; + case 81: + { return new Symbol(sym.QIdent, yytext().intern()); } + case -74: + break; + case 82: + { return new Symbol(sym.QIdent, yytext().intern()); } + case -75: + break; + case 83: + { return new Symbol(sym.QIdent, yytext().intern()); } + case -76: + break; + case 84: + { return new Symbol(sym.QIdent, yytext().intern()); } + case -77: + break; + case 85: + { return new Symbol(sym.QIdent, yytext().intern()); } + case -78: + break; + case 86: + { return new Symbol(sym.QIdent, yytext().intern()); } + case -79: + break; + case 87: + { return new Symbol(sym.QIdent, yytext().intern()); } + case -80: + break; + case 88: + { return new Symbol(sym.QIdent, yytext().intern()); } + case -81: + break; + case 89: + { return new Symbol(sym.QIdent, yytext().intern()); } + case -82: + break; + case 90: + { return new Symbol(sym.QIdent, yytext().intern()); } + case -83: + break; + case 91: + { return new Symbol(sym.QIdent, yytext().intern()); } + case -84: + break; + case 92: + { return new Symbol(sym.QIdent, yytext().intern()); } + case -85: + break; + case 93: + { return new Symbol(sym.QIdent, yytext().intern()); } + case -86: + break; + case 94: + { return new Symbol(sym.QIdent, yytext().intern()); } + case -87: + break; + case 95: + { return new Symbol(sym.QIdent, yytext().intern()); } + case -88: + break; + default: + yy_error(YY_E_INTERNAL,false); + case -1: + } + yy_initial = true; + yy_state = yy_state_dtrans[yy_lexical_state]; + yy_next_state = YY_NO_STATE; + yy_last_accept_state = YY_NO_STATE; + yy_mark_start(); + yy_this_accept = yy_acpt[yy_state]; + if (YY_NOT_ACCEPT != yy_this_accept) { + yy_last_accept_state = yy_state; + yy_mark_end(); + } + } + } + } + } +} diff --git a/src/main/java/pl/edu/mimuw/cloudatlas/interpreter/query/parser.java b/src/main/java/pl/edu/mimuw/cloudatlas/interpreter/query/parser.java new file mode 100644 index 0000000..85a196b --- /dev/null +++ b/src/main/java/pl/edu/mimuw/cloudatlas/interpreter/query/parser.java @@ -0,0 +1,923 @@ + +//---------------------------------------------------- +// The following code was generated by CUP v0.11a beta 20060608 +// Sat Nov 16 17:39:43 CET 2013 +//---------------------------------------------------- + +package pl.edu.mimuw.cloudatlas.interpreter.query; + + +/** CUP v0.11a beta 20060608 generated parser. + * @version Sat Nov 16 17:39:43 CET 2013 + */ +public class parser extends java_cup.runtime.lr_parser { + + /** Default constructor. */ + public parser() {super();} + + /** Constructor which sets the default scanner. */ + public parser(java_cup.runtime.Scanner s) {super(s);} + + /** Constructor which sets the default scanner. */ + public parser(java_cup.runtime.Scanner s, java_cup.runtime.SymbolFactory sf) {super(s,sf);} + + /** Production table. */ + protected static final short _production_table[][] = + unpackFromStrings(new String[] { + "\000\071\000\002\002\004\000\002\002\003\000\002\002" + + "\005\000\002\003\003\000\002\003\005\000\002\004\003" + + "\000\002\004\005\000\002\005\002\000\002\005\003\000" + + "\002\005\005\000\002\006\003\000\002\007\006\000\002" + + "\010\002\000\002\010\004\000\002\011\002\000\002\011" + + "\005\000\002\012\005\000\002\013\003\000\002\013\003" + + "\000\002\013\002\000\002\014\002\000\002\014\004\000" + + "\002\014\004\000\002\015\003\000\002\015\005\000\002" + + "\016\005\000\002\016\005\000\002\016\003\000\002\017" + + "\005\000\002\017\003\000\002\020\005\000\002\020\003" + + "\000\002\021\004\000\002\021\003\000\002\022\005\000" + + "\002\022\005\000\002\022\003\000\002\023\005\000\002" + + "\023\005\000\002\023\005\000\002\023\003\000\002\024" + + "\004\000\002\024\003\000\002\025\003\000\002\025\003" + + "\000\002\025\006\000\002\025\003\000\002\025\003\000" + + "\002\025\003\000\002\025\005\000\002\025\005\000\002" + + "\026\003\000\002\026\003\000\002\026\003\000\002\026" + + "\003\000\002\026\003\000\002\026\003" }); + + /** Access to production table. */ + public short[][] production_table() {return _production_table;} + + /** Parse-action table. */ + protected static final short[][] _action_table = + unpackFromStrings(new String[] { + "\000\124\000\004\037\006\001\002\000\004\002\126\001" + + "\002\000\006\002\000\004\124\001\002\000\022\007\024" + + "\013\023\032\030\041\012\042\026\043\025\044\015\045" + + "\016\001\002\000\004\002\ufff7\001\002\000\062\002\uffd7" + + "\004\uffd7\005\uffd7\006\uffd7\007\uffd7\010\uffd7\011\uffd7\012" + + "\uffd7\014\uffd7\015\uffd7\016\uffd7\017\uffd7\020\uffd7\021\uffd7" + + "\022\uffd7\023\uffd7\024\uffd7\025\uffd7\027\uffd7\033\uffd7\034" + + "\uffd7\035\uffd7\036\uffd7\040\uffd7\001\002\000\062\002\uffd9" + + "\004\uffd9\005\uffd9\006\uffd9\007\uffd9\010\uffd9\011\uffd9\012" + + "\uffd9\014\uffd9\015\uffd9\016\uffd9\017\uffd9\020\uffd9\021\uffd9" + + "\022\uffd9\023\uffd9\024\uffd9\025\uffd9\027\uffd9\033\uffd9\034" + + "\uffd9\035\uffd9\036\uffd9\040\uffd9\001\002\000\062\002\uffd3" + + "\004\uffd3\005\uffd3\006\uffd3\007\uffd3\010\uffd3\011\uffd3\012" + + "\uffd3\014\uffd3\015\uffd3\016\uffd3\017\uffd3\020\uffd3\021\uffd3" + + "\022\uffd3\023\uffd3\024\uffd3\025\uffd3\027\uffd3\033\uffd3\034" + + "\uffd3\035\uffd3\036\uffd3\040\uffd3\001\002\000\054\002\uffe6" + + "\004\uffe6\005\uffe6\006\110\007\107\014\uffe6\015\117\016" + + "\116\017\115\020\114\021\113\022\111\023\uffe6\024\uffe6" + + "\025\uffe6\027\uffe6\033\uffe6\034\uffe6\035\uffe6\036\106\040" + + "\uffe6\001\002\000\062\002\uffdd\004\uffdd\005\uffdd\006\uffdd" + + "\007\uffdd\010\100\011\102\012\101\014\uffdd\015\uffdd\016" + + "\uffdd\017\uffdd\020\uffdd\021\uffdd\022\uffdd\023\uffdd\024\uffdd" + + "\025\uffdd\027\uffdd\033\uffdd\034\uffdd\035\uffdd\036\uffdd\040" + + "\uffdd\001\002\000\062\002\uffd1\004\uffd1\005\uffd1\006\uffd1" + + "\007\uffd1\010\uffd1\011\uffd1\012\uffd1\014\uffd1\015\uffd1\016" + + "\uffd1\017\uffd1\020\uffd1\021\uffd1\022\uffd1\023\uffd1\024\uffd1" + + "\025\uffd1\027\uffd1\033\uffd1\034\uffd1\035\uffd1\036\uffd1\040" + + "\uffd1\001\002\000\062\002\uffd2\004\uffd2\005\uffd2\006\uffd2" + + "\007\uffd2\010\uffd2\011\uffd2\012\uffd2\014\uffd2\015\uffd2\016" + + "\uffd2\017\uffd2\020\uffd2\021\uffd2\022\uffd2\023\uffd2\024\uffd2" + + "\025\uffd2\027\uffd2\033\uffd2\034\uffd2\035\uffd2\036\uffd2\040" + + "\uffd2\001\002\000\014\002\ufff5\004\ufff5\014\ufff5\035\ufff5" + + "\040\056\001\002\000\022\002\uffea\004\uffea\005\uffea\014" + + "\uffea\024\054\034\042\035\uffea\040\uffea\001\002\000\032" + + "\002\uffe2\004\uffe2\005\uffe2\014\uffe2\023\uffe2\024\uffe2\025" + + "\uffe2\027\uffe2\033\uffe2\034\uffe2\035\uffe2\040\uffe2\001\002" + + "\000\032\002\uffe4\004\uffe4\005\uffe4\014\uffe4\023\044\024" + + "\uffe4\025\uffe4\027\uffe4\033\uffe4\034\uffe4\035\uffe4\040\uffe4" + + "\001\002\000\024\007\024\013\023\032\030\037\006\041" + + "\012\042\026\043\025\044\015\045\016\001\002\000\020" + + "\007\024\013\023\041\012\042\026\043\025\044\015\045" + + "\016\001\002\000\064\002\uffd5\004\uffd5\005\uffd5\006\uffd5" + + "\007\uffd5\010\uffd5\011\uffd5\012\uffd5\013\035\014\uffd5\015" + + "\uffd5\016\uffd5\017\uffd5\020\uffd5\021\uffd5\022\uffd5\023\uffd5" + + "\024\uffd5\025\uffd5\027\uffd5\033\uffd5\034\uffd5\035\uffd5\036" + + "\uffd5\040\uffd5\001\002\000\062\002\uffd6\004\uffd6\005\uffd6" + + "\006\uffd6\007\uffd6\010\uffd6\011\uffd6\012\uffd6\014\uffd6\015" + + "\uffd6\016\uffd6\017\uffd6\020\uffd6\021\uffd6\022\uffd6\023\uffd6" + + "\024\uffd6\025\uffd6\027\uffd6\033\uffd6\034\uffd6\035\uffd6\036" + + "\uffd6\040\uffd6\001\002\000\016\002\ufffc\004\ufffc\005\033" + + "\014\ufffc\035\ufffc\040\ufffc\001\002\000\022\007\024\013" + + "\023\032\030\041\012\042\026\043\025\044\015\045\016" + + "\001\002\000\032\002\uffe0\004\uffe0\005\uffe0\014\uffe0\023" + + "\uffe0\024\uffe0\025\uffe0\027\uffe0\033\uffe0\034\uffe0\035\uffe0" + + "\040\uffe0\001\002\000\032\002\uffe1\004\uffe1\005\uffe1\014" + + "\uffe1\023\uffe1\024\uffe1\025\uffe1\027\uffe1\033\uffe1\034\uffe1" + + "\035\uffe1\040\uffe1\001\002\000\022\007\024\013\023\032" + + "\030\041\012\042\026\043\025\044\015\045\016\001\002" + + "\000\014\002\ufffb\004\ufffb\014\ufffb\035\ufffb\040\ufffb\001" + + "\002\000\024\007\024\013\023\014\ufffa\032\030\041\012" + + "\042\026\043\025\044\015\045\016\001\002\000\010\005" + + "\041\014\ufff9\034\042\001\002\000\004\014\040\001\002" + + "\000\062\002\uffd4\004\uffd4\005\uffd4\006\uffd4\007\uffd4\010" + + "\uffd4\011\uffd4\012\uffd4\014\uffd4\015\uffd4\016\uffd4\017\uffd4" + + "\020\uffd4\021\uffd4\022\uffd4\023\uffd4\024\uffd4\025\uffd4\027" + + "\uffd4\033\uffd4\034\uffd4\035\uffd4\036\uffd4\040\uffd4\001\002" + + "\000\024\007\024\013\023\014\ufffa\032\030\041\012\042" + + "\026\043\025\044\015\045\016\001\002\000\022\007\024" + + "\013\023\032\030\041\012\042\026\043\025\044\015\045" + + "\016\001\002\000\032\002\uffe5\004\uffe5\005\uffe5\014\uffe5" + + "\023\044\024\uffe5\025\uffe5\027\uffe5\033\uffe5\034\uffe5\035" + + "\uffe5\040\uffe5\001\002\000\022\007\024\013\023\032\030" + + "\041\012\042\026\043\025\044\015\045\016\001\002\000" + + "\032\002\uffe3\004\uffe3\005\uffe3\014\uffe3\023\uffe3\024\uffe3" + + "\025\uffe3\027\uffe3\033\uffe3\034\uffe3\035\uffe3\040\uffe3\001" + + "\002\000\004\014\ufff8\001\002\000\062\002\uffd8\004\uffd8" + + "\005\uffd8\006\uffd8\007\uffd8\010\uffd8\011\uffd8\012\uffd8\014" + + "\uffd8\015\uffd8\016\uffd8\017\uffd8\020\uffd8\021\uffd8\022\uffd8" + + "\023\uffd8\024\uffd8\025\uffd8\027\uffd8\033\uffd8\034\uffd8\035" + + "\uffd8\036\uffd8\040\uffd8\001\002\000\006\014\053\034\042" + + "\001\002\000\004\014\052\001\002\000\062\002\uffcf\004" + + "\uffcf\005\uffcf\006\uffcf\007\uffcf\010\uffcf\011\uffcf\012\uffcf" + + "\014\uffcf\015\uffcf\016\uffcf\017\uffcf\020\uffcf\021\uffcf\022" + + "\uffcf\023\uffcf\024\uffcf\025\uffcf\027\uffcf\033\uffcf\034\uffcf" + + "\035\uffcf\036\uffcf\040\uffcf\001\002\000\062\002\uffd0\004" + + "\uffd0\005\uffd0\006\uffd0\007\uffd0\010\uffd0\011\uffd0\012\uffd0" + + "\014\uffd0\015\uffd0\016\uffd0\017\uffd0\020\uffd0\021\uffd0\022" + + "\uffd0\023\uffd0\024\uffd0\025\uffd0\027\uffd0\033\uffd0\034\uffd0" + + "\035\uffd0\036\uffd0\040\uffd0\001\002\000\004\043\055\001" + + "\002\000\016\002\uffe9\004\uffe9\005\uffe9\014\uffe9\035\uffe9" + + "\040\uffe9\001\002\000\022\007\024\013\023\032\030\041" + + "\012\042\026\043\025\044\015\045\016\001\002\000\012" + + "\002\ufff3\004\ufff3\014\ufff3\035\061\001\002\000\010\002" + + "\ufff6\004\ufff6\014\ufff6\001\002\000\004\026\062\001\002" + + "\000\022\007\024\013\023\032\030\041\012\042\026\043" + + "\025\044\015\045\016\001\002\000\012\002\ufffe\004\ufffe" + + "\005\075\014\ufffe\001\002\000\022\002\uffee\004\uffee\005" + + "\uffee\014\uffee\025\067\027\066\033\uffee\034\042\001\002" + + "\000\010\002\ufff2\004\ufff2\014\ufff2\001\002\000\014\002" + + "\uffef\004\uffef\005\uffef\014\uffef\033\uffef\001\002\000\014" + + "\002\ufff0\004\ufff0\005\ufff0\014\ufff0\033\ufff0\001\002\000" + + "\014\002\uffed\004\uffed\005\uffed\014\uffed\033\072\001\002" + + "\000\012\002\ufff1\004\ufff1\005\ufff1\014\ufff1\001\002\000" + + "\006\030\074\031\073\001\002\000\012\002\uffeb\004\uffeb" + + "\005\uffeb\014\uffeb\001\002\000\012\002\uffec\004\uffec\005" + + "\uffec\014\uffec\001\002\000\022\007\024\013\023\032\030" + + "\041\012\042\026\043\025\044\015\045\016\001\002\000" + + "\010\002\ufffd\004\ufffd\014\ufffd\001\002\000\014\002\ufff4" + + "\004\ufff4\014\ufff4\034\042\035\ufff4\001\002\000\020\007" + + "\024\013\023\041\012\042\026\043\025\044\015\045\016" + + "\001\002\000\020\007\024\013\023\041\012\042\026\043" + + "\025\044\015\045\016\001\002\000\020\007\024\013\023" + + "\041\012\042\026\043\025\044\015\045\016\001\002\000" + + "\062\002\uffdb\004\uffdb\005\uffdb\006\uffdb\007\uffdb\010\uffdb" + + "\011\uffdb\012\uffdb\014\uffdb\015\uffdb\016\uffdb\017\uffdb\020" + + "\uffdb\021\uffdb\022\uffdb\023\uffdb\024\uffdb\025\uffdb\027\uffdb" + + "\033\uffdb\034\uffdb\035\uffdb\036\uffdb\040\uffdb\001\002\000" + + "\062\002\uffda\004\uffda\005\uffda\006\uffda\007\uffda\010\uffda" + + "\011\uffda\012\uffda\014\uffda\015\uffda\016\uffda\017\uffda\020" + + "\uffda\021\uffda\022\uffda\023\uffda\024\uffda\025\uffda\027\uffda" + + "\033\uffda\034\uffda\035\uffda\036\uffda\040\uffda\001\002\000" + + "\062\002\uffdc\004\uffdc\005\uffdc\006\uffdc\007\uffdc\010\uffdc" + + "\011\uffdc\012\uffdc\014\uffdc\015\uffdc\016\uffdc\017\uffdc\020" + + "\uffdc\021\uffdc\022\uffdc\023\uffdc\024\uffdc\025\uffdc\027\uffdc" + + "\033\uffdc\034\uffdc\035\uffdc\036\uffdc\040\uffdc\001\002\000" + + "\004\041\123\001\002\000\020\007\024\013\023\041\012" + + "\042\026\043\025\044\015\045\016\001\002\000\020\007" + + "\024\013\023\041\012\042\026\043\025\044\015\045\016" + + "\001\002\000\020\007\uffc9\013\uffc9\041\uffc9\042\uffc9\043" + + "\uffc9\044\uffc9\045\uffc9\001\002\000\020\007\024\013\023" + + "\041\012\042\026\043\025\044\015\045\016\001\002\000" + + "\020\007\uffca\013\uffca\041\uffca\042\uffca\043\uffca\044\uffca" + + "\045\uffca\001\002\000\020\007\uffcb\013\uffcb\041\uffcb\042" + + "\uffcb\043\uffcb\044\uffcb\045\uffcb\001\002\000\020\007\uffcc" + + "\013\uffcc\041\uffcc\042\uffcc\043\uffcc\044\uffcc\045\uffcc\001" + + "\002\000\020\007\uffcd\013\uffcd\041\uffcd\042\uffcd\043\uffcd" + + "\044\uffcd\045\uffcd\001\002\000\020\007\uffce\013\uffce\041" + + "\uffce\042\uffce\043\uffce\044\uffce\045\uffce\001\002\000\036" + + "\002\uffe8\004\uffe8\005\uffe8\006\110\007\107\014\uffe8\023" + + "\uffe8\024\uffe8\025\uffe8\027\uffe8\033\uffe8\034\uffe8\035\uffe8" + + "\040\uffe8\001\002\000\062\002\uffdf\004\uffdf\005\uffdf\006" + + "\uffdf\007\uffdf\010\100\011\102\012\101\014\uffdf\015\uffdf" + + "\016\uffdf\017\uffdf\020\uffdf\021\uffdf\022\uffdf\023\uffdf\024" + + "\uffdf\025\uffdf\027\uffdf\033\uffdf\034\uffdf\035\uffdf\036\uffdf" + + "\040\uffdf\001\002\000\062\002\uffde\004\uffde\005\uffde\006" + + "\uffde\007\uffde\010\100\011\102\012\101\014\uffde\015\uffde" + + "\016\uffde\017\uffde\020\uffde\021\uffde\022\uffde\023\uffde\024" + + "\uffde\025\uffde\027\uffde\033\uffde\034\uffde\035\uffde\036\uffde" + + "\040\uffde\001\002\000\032\002\uffe7\004\uffe7\005\uffe7\014" + + "\uffe7\023\uffe7\024\uffe7\025\uffe7\027\uffe7\033\uffe7\034\uffe7" + + "\035\uffe7\040\uffe7\001\002\000\004\037\006\001\002\000" + + "\004\002\uffff\001\002\000\004\002\001\001\002" }); + + /** Access to parse-action table. */ + public short[][] action_table() {return _action_table;} + + /** <code>reduce_goto</code> table. */ + protected static final short[][] _reduce_table = + unpackFromStrings(new String[] { + "\000\124\000\010\002\006\006\003\007\004\001\001\000" + + "\002\001\001\000\002\001\001\000\026\004\016\015\026" + + "\016\030\017\017\020\021\021\020\022\012\023\013\024" + + "\010\025\007\001\001\000\002\001\001\000\002\001\001" + + "\000\002\001\001\000\002\001\001\000\004\026\111\001" + + "\001\000\002\001\001\000\002\001\001\000\002\001\001" + + "\000\004\010\056\001\001\000\002\001\001\000\002\001" + + "\001\000\002\001\001\000\024\007\050\016\030\017\047" + + "\020\021\021\020\022\012\023\013\024\010\025\007\001" + + "\001\000\006\024\046\025\007\001\001\000\002\001\001" + + "\000\002\001\001\000\002\001\001\000\016\016\030\021" + + "\031\022\012\023\013\024\010\025\007\001\001\000\002" + + "\001\001\000\002\001\001\000\026\004\033\015\026\016" + + "\030\017\017\020\021\021\020\022\012\023\013\024\010" + + "\025\007\001\001\000\002\001\001\000\024\005\036\016" + + "\030\017\035\020\021\021\020\022\012\023\013\024\010" + + "\025\007\001\001\000\002\001\001\000\002\001\001\000" + + "\002\001\001\000\024\005\045\016\030\017\035\020\021" + + "\021\020\022\012\023\013\024\010\025\007\001\001\000" + + "\020\016\030\020\042\021\020\022\012\023\013\024\010" + + "\025\007\001\001\000\002\001\001\000\016\016\030\021" + + "\044\022\012\023\013\024\010\025\007\001\001\000\002" + + "\001\001\000\002\001\001\000\002\001\001\000\002\001" + + "\001\000\002\001\001\000\002\001\001\000\002\001\001" + + "\000\002\001\001\000\002\001\001\000\022\016\030\017" + + "\076\020\021\021\020\022\012\023\013\024\010\025\007" + + "\001\001\000\004\011\057\001\001\000\002\001\001\000" + + "\002\001\001\000\026\003\064\012\062\016\030\017\063" + + "\020\021\021\020\022\012\023\013\024\010\025\007\001" + + "\001\000\002\001\001\000\004\013\067\001\001\000\002" + + "\001\001\000\002\001\001\000\002\001\001\000\004\014" + + "\070\001\001\000\002\001\001\000\002\001\001\000\002" + + "\001\001\000\002\001\001\000\026\003\075\012\062\016" + + "\030\017\063\020\021\021\020\022\012\023\013\024\010" + + "\025\007\001\001\000\002\001\001\000\002\001\001\000" + + "\006\024\104\025\007\001\001\000\006\024\103\025\007" + + "\001\001\000\006\024\102\025\007\001\001\000\002\001" + + "\001\000\002\001\001\000\002\001\001\000\002\001\001" + + "\000\010\023\121\024\010\025\007\001\001\000\010\023" + + "\120\024\010\025\007\001\001\000\002\001\001\000\012" + + "\022\117\023\013\024\010\025\007\001\001\000\002\001" + + "\001\000\002\001\001\000\002\001\001\000\002\001\001" + + "\000\002\001\001\000\002\001\001\000\002\001\001\000" + + "\002\001\001\000\002\001\001\000\006\002\124\007\004" + + "\001\001\000\002\001\001\000\002\001\001" }); + + /** Access to <code>reduce_goto</code> table. */ + public short[][] reduce_table() {return _reduce_table;} + + /** Instance of action encapsulation class. */ + protected CUP$parser$actions action_obj; + + /** Action encapsulation object initializer. */ + protected void init_actions() + { + action_obj = new CUP$parser$actions(this); + } + + /** Invoke a user supplied parse action. */ + public java_cup.runtime.Symbol do_action( + int act_num, + java_cup.runtime.lr_parser parser, + @SuppressWarnings("rawtypes") java.util.Stack stack, + int top) + throws java.lang.Exception + { + /* call code in generated class */ + return action_obj.CUP$parser$do_action(act_num, parser, stack, top); + } + + /** Indicates start state. */ + public int start_state() {return 0;} + /** Indicates start production. */ + public int start_production() {return 0;} + + /** <code>EOF</code> Symbol index. */ + public int EOF_sym() {return 0;} + + /** <code>error</code> Symbol index. */ + public int error_sym() {return 1;} + + + + public pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.Program pProgram() throws Exception + { + java_cup.runtime.Symbol res = parse(); + return (pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.Program) res.value; + } + +public <B,A extends java.util.LinkedList<? super B>> A cons_(B x, A xs) { xs.addFirst(x); return xs; } + +public void syntax_error(java_cup.runtime.Symbol cur_token) +{ + report_error("Syntax Error, trying to recover and continue parse...", cur_token); +} + +public void unrecovered_syntax_error(java_cup.runtime.Symbol cur_token) throws java.lang.Exception +{ + throw new Exception("Unrecoverable Syntax Error"); +} + + +} + +/** Cup generated class to encapsulate user supplied action code.*/ +class CUP$parser$actions { + private final parser parser; + + /** Constructor */ + CUP$parser$actions(parser parser) { + this.parser = parser; + } + + /** Method with the actual generated action code. */ + public final java_cup.runtime.Symbol CUP$parser$do_action( + int CUP$parser$act_num, + java_cup.runtime.lr_parser CUP$parser$parser, + @SuppressWarnings("rawtypes") java.util.Stack CUP$parser$stack, + int CUP$parser$top) + throws java.lang.Exception + { + /* Symbol object for return from actions */ + java_cup.runtime.Symbol CUP$parser$result; + + /* select the action based on the action number */ + switch (CUP$parser$act_num) + { + /*. . . . . . . . . . . . . . . . . . . .*/ + case 56: // RelOp ::= _SYMB_14 + { + pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.RelOp RESULT =null; + RESULT = new pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.RelOpGeC(); + CUP$parser$result = parser.getSymbolFactory().newSymbol("RelOp",20, RESULT); + } + return CUP$parser$result; + + /*. . . . . . . . . . . . . . . . . . . .*/ + case 55: // RelOp ::= _SYMB_13 + { + pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.RelOp RESULT =null; + RESULT = new pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.RelOpLeC(); + CUP$parser$result = parser.getSymbolFactory().newSymbol("RelOp",20, RESULT); + } + return CUP$parser$result; + + /*. . . . . . . . . . . . . . . . . . . .*/ + case 54: // RelOp ::= _SYMB_12 + { + pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.RelOp RESULT =null; + RESULT = new pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.RelOpLtC(); + CUP$parser$result = parser.getSymbolFactory().newSymbol("RelOp",20, RESULT); + } + return CUP$parser$result; + + /*. . . . . . . . . . . . . . . . . . . .*/ + case 53: // RelOp ::= _SYMB_11 + { + pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.RelOp RESULT =null; + RESULT = new pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.RelOpNeC(); + CUP$parser$result = parser.getSymbolFactory().newSymbol("RelOp",20, RESULT); + } + return CUP$parser$result; + + /*. . . . . . . . . . . . . . . . . . . .*/ + case 52: // RelOp ::= _SYMB_10 + { + pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.RelOp RESULT =null; + RESULT = new pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.RelOpEqC(); + CUP$parser$result = parser.getSymbolFactory().newSymbol("RelOp",20, RESULT); + } + return CUP$parser$result; + + /*. . . . . . . . . . . . . . . . . . . .*/ + case 51: // RelOp ::= _SYMB_9 + { + pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.RelOp RESULT =null; + RESULT = new pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.RelOpGtC(); + CUP$parser$result = parser.getSymbolFactory().newSymbol("RelOp",20, RESULT); + } + return CUP$parser$result; + + /*. . . . . . . . . . . . . . . . . . . .*/ + case 50: // BasicExpr3 ::= _SYMB_7 Statement _SYMB_8 + { + pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.BasicExpr RESULT =null; + pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.Statement p_2 = (pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.Statement)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-1)).value; + RESULT = new pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.EStmtC(p_2); + CUP$parser$result = parser.getSymbolFactory().newSymbol("BasicExpr3",19, RESULT); + } + return CUP$parser$result; + + /*. . . . . . . . . . . . . . . . . . . .*/ + case 49: // BasicExpr3 ::= _SYMB_7 CondExpr _SYMB_8 + { + pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.BasicExpr RESULT =null; + pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.CondExpr p_2 = (pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.CondExpr)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-1)).value; + RESULT = new pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.ECondExprC(p_2); + CUP$parser$result = parser.getSymbolFactory().newSymbol("BasicExpr3",19, RESULT); + } + return CUP$parser$result; + + /*. . . . . . . . . . . . . . . . . . . .*/ + case 48: // BasicExpr3 ::= QDouble + { + pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.BasicExpr RESULT =null; + String p_1 = (String)((java_cup.runtime.Symbol) CUP$parser$stack.peek()).value; + RESULT = new pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.EDblC(p_1); + CUP$parser$result = parser.getSymbolFactory().newSymbol("BasicExpr3",19, RESULT); + } + return CUP$parser$result; + + /*. . . . . . . . . . . . . . . . . . . .*/ + case 47: // BasicExpr3 ::= QInteger + { + pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.BasicExpr RESULT =null; + String p_1 = (String)((java_cup.runtime.Symbol) CUP$parser$stack.peek()).value; + RESULT = new pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.EIntC(p_1); + CUP$parser$result = parser.getSymbolFactory().newSymbol("BasicExpr3",19, RESULT); + } + return CUP$parser$result; + + /*. . . . . . . . . . . . . . . . . . . .*/ + case 46: // BasicExpr3 ::= _STRING_ + { + pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.BasicExpr RESULT =null; + String p_1 = (String)((java_cup.runtime.Symbol) CUP$parser$stack.peek()).value; + RESULT = new pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.EStrC(p_1); + CUP$parser$result = parser.getSymbolFactory().newSymbol("BasicExpr3",19, RESULT); + } + return CUP$parser$result; + + /*. . . . . . . . . . . . . . . . . . . .*/ + case 45: // BasicExpr3 ::= QIdent _SYMB_7 ListCondExpr _SYMB_8 + { + pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.BasicExpr RESULT =null; + String p_1 = (String)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-3)).value; + pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.ListCondExpr p_3 = (pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.ListCondExpr)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-1)).value; + RESULT = new pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.EFunC(p_1,p_3); + CUP$parser$result = parser.getSymbolFactory().newSymbol("BasicExpr3",19, RESULT); + } + return CUP$parser$result; + + /*. . . . . . . . . . . . . . . . . . . .*/ + case 44: // BasicExpr3 ::= QIdent + { + pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.BasicExpr RESULT =null; + String p_1 = (String)((java_cup.runtime.Symbol) CUP$parser$stack.peek()).value; + RESULT = new pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.EIdentC(p_1); + CUP$parser$result = parser.getSymbolFactory().newSymbol("BasicExpr3",19, RESULT); + } + return CUP$parser$result; + + /*. . . . . . . . . . . . . . . . . . . .*/ + case 43: // BasicExpr3 ::= QBool + { + pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.BasicExpr RESULT =null; + String p_1 = (String)((java_cup.runtime.Symbol) CUP$parser$stack.peek()).value; + RESULT = new pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.EBoolC(p_1); + CUP$parser$result = parser.getSymbolFactory().newSymbol("BasicExpr3",19, RESULT); + } + return CUP$parser$result; + + /*. . . . . . . . . . . . . . . . . . . .*/ + case 42: // BasicExpr2 ::= BasicExpr3 + { + pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.BasicExpr RESULT =null; + pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.BasicExpr p_1 = (pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.BasicExpr)((java_cup.runtime.Symbol) CUP$parser$stack.peek()).value; + RESULT = p_1; + CUP$parser$result = parser.getSymbolFactory().newSymbol("BasicExpr2",18, RESULT); + } + return CUP$parser$result; + + /*. . . . . . . . . . . . . . . . . . . .*/ + case 41: // BasicExpr2 ::= _SYMB_3 BasicExpr2 + { + pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.BasicExpr RESULT =null; + pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.BasicExpr p_2 = (pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.BasicExpr)((java_cup.runtime.Symbol) CUP$parser$stack.peek()).value; + RESULT = new pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.BasicExprNegC(p_2); + CUP$parser$result = parser.getSymbolFactory().newSymbol("BasicExpr2",18, RESULT); + } + return CUP$parser$result; + + /*. . . . . . . . . . . . . . . . . . . .*/ + case 40: // BasicExpr1 ::= BasicExpr2 + { + pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.BasicExpr RESULT =null; + pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.BasicExpr p_1 = (pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.BasicExpr)((java_cup.runtime.Symbol) CUP$parser$stack.peek()).value; + RESULT = p_1; + CUP$parser$result = parser.getSymbolFactory().newSymbol("BasicExpr1",17, RESULT); + } + return CUP$parser$result; + + /*. . . . . . . . . . . . . . . . . . . .*/ + case 39: // BasicExpr1 ::= BasicExpr1 _SYMB_6 BasicExpr2 + { + pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.BasicExpr RESULT =null; + pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.BasicExpr p_1 = (pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.BasicExpr)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-2)).value; + pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.BasicExpr p_3 = (pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.BasicExpr)((java_cup.runtime.Symbol) CUP$parser$stack.peek()).value; + RESULT = new pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.BasicExprModC(p_1,p_3); + CUP$parser$result = parser.getSymbolFactory().newSymbol("BasicExpr1",17, RESULT); + } + return CUP$parser$result; + + /*. . . . . . . . . . . . . . . . . . . .*/ + case 38: // BasicExpr1 ::= BasicExpr1 _SYMB_5 BasicExpr2 + { + pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.BasicExpr RESULT =null; + pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.BasicExpr p_1 = (pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.BasicExpr)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-2)).value; + pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.BasicExpr p_3 = (pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.BasicExpr)((java_cup.runtime.Symbol) CUP$parser$stack.peek()).value; + RESULT = new pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.BasicExprDivC(p_1,p_3); + CUP$parser$result = parser.getSymbolFactory().newSymbol("BasicExpr1",17, RESULT); + } + return CUP$parser$result; + + /*. . . . . . . . . . . . . . . . . . . .*/ + case 37: // BasicExpr1 ::= BasicExpr1 _SYMB_4 BasicExpr2 + { + pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.BasicExpr RESULT =null; + pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.BasicExpr p_1 = (pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.BasicExpr)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-2)).value; + pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.BasicExpr p_3 = (pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.BasicExpr)((java_cup.runtime.Symbol) CUP$parser$stack.peek()).value; + RESULT = new pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.BasicExprMulC(p_1,p_3); + CUP$parser$result = parser.getSymbolFactory().newSymbol("BasicExpr1",17, RESULT); + } + return CUP$parser$result; + + /*. . . . . . . . . . . . . . . . . . . .*/ + case 36: // BasicExpr ::= BasicExpr1 + { + pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.BasicExpr RESULT =null; + pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.BasicExpr p_1 = (pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.BasicExpr)((java_cup.runtime.Symbol) CUP$parser$stack.peek()).value; + RESULT = p_1; + CUP$parser$result = parser.getSymbolFactory().newSymbol("BasicExpr",16, RESULT); + } + return CUP$parser$result; + + /*. . . . . . . . . . . . . . . . . . . .*/ + case 35: // BasicExpr ::= BasicExpr _SYMB_3 BasicExpr1 + { + pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.BasicExpr RESULT =null; + pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.BasicExpr p_1 = (pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.BasicExpr)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-2)).value; + pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.BasicExpr p_3 = (pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.BasicExpr)((java_cup.runtime.Symbol) CUP$parser$stack.peek()).value; + RESULT = new pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.BasicExprSubC(p_1,p_3); + CUP$parser$result = parser.getSymbolFactory().newSymbol("BasicExpr",16, RESULT); + } + return CUP$parser$result; + + /*. . . . . . . . . . . . . . . . . . . .*/ + case 34: // BasicExpr ::= BasicExpr _SYMB_2 BasicExpr1 + { + pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.BasicExpr RESULT =null; + pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.BasicExpr p_1 = (pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.BasicExpr)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-2)).value; + pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.BasicExpr p_3 = (pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.BasicExpr)((java_cup.runtime.Symbol) CUP$parser$stack.peek()).value; + RESULT = new pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.BasicExprAddC(p_1,p_3); + CUP$parser$result = parser.getSymbolFactory().newSymbol("BasicExpr",16, RESULT); + } + return CUP$parser$result; + + /*. . . . . . . . . . . . . . . . . . . .*/ + case 33: // CondExpr2 ::= BoolExpr + { + pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.CondExpr RESULT =null; + pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.BoolExpr p_1 = (pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.BoolExpr)((java_cup.runtime.Symbol) CUP$parser$stack.peek()).value; + RESULT = new pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.CondExprBoolExprC(p_1); + CUP$parser$result = parser.getSymbolFactory().newSymbol("CondExpr2",15, RESULT); + } + return CUP$parser$result; + + /*. . . . . . . . . . . . . . . . . . . .*/ + case 32: // CondExpr2 ::= _SYMB_22 CondExpr2 + { + pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.CondExpr RESULT =null; + pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.CondExpr p_2 = (pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.CondExpr)((java_cup.runtime.Symbol) CUP$parser$stack.peek()).value; + RESULT = new pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.CondExprNotC(p_2); + CUP$parser$result = parser.getSymbolFactory().newSymbol("CondExpr2",15, RESULT); + } + return CUP$parser$result; + + /*. . . . . . . . . . . . . . . . . . . .*/ + case 31: // CondExpr1 ::= CondExpr2 + { + pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.CondExpr RESULT =null; + pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.CondExpr p_1 = (pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.CondExpr)((java_cup.runtime.Symbol) CUP$parser$stack.peek()).value; + RESULT = p_1; + CUP$parser$result = parser.getSymbolFactory().newSymbol("CondExpr1",14, RESULT); + } + return CUP$parser$result; + + /*. . . . . . . . . . . . . . . . . . . .*/ + case 30: // CondExpr1 ::= CondExpr1 _SYMB_15 CondExpr2 + { + pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.CondExpr RESULT =null; + pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.CondExpr p_1 = (pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.CondExpr)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-2)).value; + pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.CondExpr p_3 = (pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.CondExpr)((java_cup.runtime.Symbol) CUP$parser$stack.peek()).value; + RESULT = new pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.CondExprAndC(p_1,p_3); + CUP$parser$result = parser.getSymbolFactory().newSymbol("CondExpr1",14, RESULT); + } + return CUP$parser$result; + + /*. . . . . . . . . . . . . . . . . . . .*/ + case 29: // CondExpr ::= CondExpr1 + { + pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.CondExpr RESULT =null; + pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.CondExpr p_1 = (pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.CondExpr)((java_cup.runtime.Symbol) CUP$parser$stack.peek()).value; + RESULT = p_1; + CUP$parser$result = parser.getSymbolFactory().newSymbol("CondExpr",13, RESULT); + } + return CUP$parser$result; + + /*. . . . . . . . . . . . . . . . . . . .*/ + case 28: // CondExpr ::= CondExpr _SYMB_24 CondExpr1 + { + pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.CondExpr RESULT =null; + pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.CondExpr p_1 = (pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.CondExpr)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-2)).value; + pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.CondExpr p_3 = (pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.CondExpr)((java_cup.runtime.Symbol) CUP$parser$stack.peek()).value; + RESULT = new pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.CondExprOrC(p_1,p_3); + CUP$parser$result = parser.getSymbolFactory().newSymbol("CondExpr",13, RESULT); + } + return CUP$parser$result; + + /*. . . . . . . . . . . . . . . . . . . .*/ + case 27: // BoolExpr ::= BasicExpr + { + pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.BoolExpr RESULT =null; + pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.BasicExpr p_1 = (pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.BasicExpr)((java_cup.runtime.Symbol) CUP$parser$stack.peek()).value; + RESULT = new pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.BoolExprBasicExprC(p_1); + CUP$parser$result = parser.getSymbolFactory().newSymbol("BoolExpr",12, RESULT); + } + return CUP$parser$result; + + /*. . . . . . . . . . . . . . . . . . . .*/ + case 26: // BoolExpr ::= BasicExpr _SYMB_26 _STRING_ + { + pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.BoolExpr RESULT =null; + pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.BasicExpr p_1 = (pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.BasicExpr)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-2)).value; + String p_3 = (String)((java_cup.runtime.Symbol) CUP$parser$stack.peek()).value; + RESULT = new pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.BoolExprRegExpC(p_1,p_3); + CUP$parser$result = parser.getSymbolFactory().newSymbol("BoolExpr",12, RESULT); + } + return CUP$parser$result; + + /*. . . . . . . . . . . . . . . . . . . .*/ + case 25: // BoolExpr ::= BasicExpr RelOp BasicExpr + { + pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.BoolExpr RESULT =null; + pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.BasicExpr p_1 = (pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.BasicExpr)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-2)).value; + pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.RelOp p_2 = (pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.RelOp)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-1)).value; + pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.BasicExpr p_3 = (pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.BasicExpr)((java_cup.runtime.Symbol) CUP$parser$stack.peek()).value; + RESULT = new pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.BoolExprCmpC(p_1,p_2,p_3); + CUP$parser$result = parser.getSymbolFactory().newSymbol("BoolExpr",12, RESULT); + } + return CUP$parser$result; + + /*. . . . . . . . . . . . . . . . . . . .*/ + case 24: // SelItem ::= CondExpr _SYMB_16 QIdent + { + pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.SelItem RESULT =null; + pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.CondExpr p_1 = (pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.CondExpr)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-2)).value; + String p_3 = (String)((java_cup.runtime.Symbol) CUP$parser$stack.peek()).value; + RESULT = new pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.AliasedSelItemC(p_1,p_3); + CUP$parser$result = parser.getSymbolFactory().newSymbol("SelItem",11, RESULT); + } + return CUP$parser$result; + + /*. . . . . . . . . . . . . . . . . . . .*/ + case 23: // SelItem ::= CondExpr + { + pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.SelItem RESULT =null; + pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.CondExpr p_1 = (pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.CondExpr)((java_cup.runtime.Symbol) CUP$parser$stack.peek()).value; + RESULT = new pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.SelItemC(p_1); + CUP$parser$result = parser.getSymbolFactory().newSymbol("SelItem",11, RESULT); + } + return CUP$parser$result; + + /*. . . . . . . . . . . . . . . . . . . .*/ + case 22: // Nulls ::= _SYMB_23 _SYMB_21 + { + pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.Nulls RESULT =null; + RESULT = new pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.NullsLastC(); + CUP$parser$result = parser.getSymbolFactory().newSymbol("Nulls",10, RESULT); + } + return CUP$parser$result; + + /*. . . . . . . . . . . . . . . . . . . .*/ + case 21: // Nulls ::= _SYMB_23 _SYMB_20 + { + pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.Nulls RESULT =null; + RESULT = new pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.NullFirstsC(); + CUP$parser$result = parser.getSymbolFactory().newSymbol("Nulls",10, RESULT); + } + return CUP$parser$result; + + /*. . . . . . . . . . . . . . . . . . . .*/ + case 20: // Nulls ::= + { + pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.Nulls RESULT =null; + RESULT = new pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.NoNullsC(); + CUP$parser$result = parser.getSymbolFactory().newSymbol("Nulls",10, RESULT); + } + return CUP$parser$result; + + /*. . . . . . . . . . . . . . . . . . . .*/ + case 19: // Order ::= + { + pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.Order RESULT =null; + RESULT = new pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.NoOrderC(); + CUP$parser$result = parser.getSymbolFactory().newSymbol("Order",9, RESULT); + } + return CUP$parser$result; + + /*. . . . . . . . . . . . . . . . . . . .*/ + case 18: // Order ::= _SYMB_19 + { + pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.Order RESULT =null; + RESULT = new pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.DescOrderC(); + CUP$parser$result = parser.getSymbolFactory().newSymbol("Order",9, RESULT); + } + return CUP$parser$result; + + /*. . . . . . . . . . . . . . . . . . . .*/ + case 17: // Order ::= _SYMB_17 + { + pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.Order RESULT =null; + RESULT = new pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.AscOrderC(); + CUP$parser$result = parser.getSymbolFactory().newSymbol("Order",9, RESULT); + } + return CUP$parser$result; + + /*. . . . . . . . . . . . . . . . . . . .*/ + case 16: // OrderItem ::= CondExpr Order Nulls + { + pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.OrderItem RESULT =null; + pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.CondExpr p_1 = (pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.CondExpr)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-2)).value; + pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.Order p_2 = (pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.Order)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-1)).value; + pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.Nulls p_3 = (pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.Nulls)((java_cup.runtime.Symbol) CUP$parser$stack.peek()).value; + RESULT = new pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.OrderItemC(p_1,p_2,p_3); + CUP$parser$result = parser.getSymbolFactory().newSymbol("OrderItem",8, RESULT); + } + return CUP$parser$result; + + /*. . . . . . . . . . . . . . . . . . . .*/ + case 15: // OrderBy ::= _SYMB_25 _SYMB_18 ListOrderItem + { + pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.OrderBy RESULT =null; + pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.ListOrderItem p_3 = (pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.ListOrderItem)((java_cup.runtime.Symbol) CUP$parser$stack.peek()).value; + RESULT = new pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.OrderByC(p_3); + CUP$parser$result = parser.getSymbolFactory().newSymbol("OrderBy",7, RESULT); + } + return CUP$parser$result; + + /*. . . . . . . . . . . . . . . . . . . .*/ + case 14: // OrderBy ::= + { + pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.OrderBy RESULT =null; + RESULT = new pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.NoOrderByC(); + CUP$parser$result = parser.getSymbolFactory().newSymbol("OrderBy",7, RESULT); + } + return CUP$parser$result; + + /*. . . . . . . . . . . . . . . . . . . .*/ + case 13: // Where ::= _SYMB_28 CondExpr + { + pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.Where RESULT =null; + pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.CondExpr p_2 = (pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.CondExpr)((java_cup.runtime.Symbol) CUP$parser$stack.peek()).value; + RESULT = new pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.WhereC(p_2); + CUP$parser$result = parser.getSymbolFactory().newSymbol("Where",6, RESULT); + } + return CUP$parser$result; + + /*. . . . . . . . . . . . . . . . . . . .*/ + case 12: // Where ::= + { + pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.Where RESULT =null; + RESULT = new pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.NoWhereC(); + CUP$parser$result = parser.getSymbolFactory().newSymbol("Where",6, RESULT); + } + return CUP$parser$result; + + /*. . . . . . . . . . . . . . . . . . . .*/ + case 11: // Statement ::= _SYMB_27 ListSelItem Where OrderBy + { + pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.Statement RESULT =null; + pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.ListSelItem p_2 = (pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.ListSelItem)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-2)).value; + pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.Where p_3 = (pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.Where)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-1)).value; + pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.OrderBy p_4 = (pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.OrderBy)((java_cup.runtime.Symbol) CUP$parser$stack.peek()).value; + RESULT = new pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.StatementC(p_2,p_3,p_4); + CUP$parser$result = parser.getSymbolFactory().newSymbol("Statement",5, RESULT); + } + return CUP$parser$result; + + /*. . . . . . . . . . . . . . . . . . . .*/ + case 10: // Program ::= ListStatement + { + pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.Program RESULT =null; + pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.ListStatement p_1 = (pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.ListStatement)((java_cup.runtime.Symbol) CUP$parser$stack.peek()).value; + RESULT = new pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.ProgramC(p_1); + CUP$parser$result = parser.getSymbolFactory().newSymbol("Program",4, RESULT); + } + return CUP$parser$result; + + /*. . . . . . . . . . . . . . . . . . . .*/ + case 9: // ListCondExpr ::= CondExpr _SYMB_1 ListCondExpr + { + pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.ListCondExpr RESULT =null; + pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.CondExpr p_1 = (pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.CondExpr)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-2)).value; + pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.ListCondExpr p_3 = (pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.ListCondExpr)((java_cup.runtime.Symbol) CUP$parser$stack.peek()).value; + RESULT = p_3; p_3.addFirst(p_1); + CUP$parser$result = parser.getSymbolFactory().newSymbol("ListCondExpr",3, RESULT); + } + return CUP$parser$result; + + /*. . . . . . . . . . . . . . . . . . . .*/ + case 8: // ListCondExpr ::= CondExpr + { + pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.ListCondExpr RESULT =null; + pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.CondExpr p_1 = (pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.CondExpr)((java_cup.runtime.Symbol) CUP$parser$stack.peek()).value; + RESULT = new pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.ListCondExpr(); RESULT.addLast(p_1); + CUP$parser$result = parser.getSymbolFactory().newSymbol("ListCondExpr",3, RESULT); + } + return CUP$parser$result; + + /*. . . . . . . . . . . . . . . . . . . .*/ + case 7: // ListCondExpr ::= + { + pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.ListCondExpr RESULT =null; + RESULT = new pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.ListCondExpr(); + CUP$parser$result = parser.getSymbolFactory().newSymbol("ListCondExpr",3, RESULT); + } + return CUP$parser$result; + + /*. . . . . . . . . . . . . . . . . . . .*/ + case 6: // ListSelItem ::= SelItem _SYMB_1 ListSelItem + { + pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.ListSelItem RESULT =null; + pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.SelItem p_1 = (pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.SelItem)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-2)).value; + pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.ListSelItem p_3 = (pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.ListSelItem)((java_cup.runtime.Symbol) CUP$parser$stack.peek()).value; + RESULT = p_3; p_3.addFirst(p_1); + CUP$parser$result = parser.getSymbolFactory().newSymbol("ListSelItem",2, RESULT); + } + return CUP$parser$result; + + /*. . . . . . . . . . . . . . . . . . . .*/ + case 5: // ListSelItem ::= SelItem + { + pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.ListSelItem RESULT =null; + pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.SelItem p_1 = (pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.SelItem)((java_cup.runtime.Symbol) CUP$parser$stack.peek()).value; + RESULT = new pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.ListSelItem(); RESULT.addLast(p_1); + CUP$parser$result = parser.getSymbolFactory().newSymbol("ListSelItem",2, RESULT); + } + return CUP$parser$result; + + /*. . . . . . . . . . . . . . . . . . . .*/ + case 4: // ListOrderItem ::= OrderItem _SYMB_1 ListOrderItem + { + pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.ListOrderItem RESULT =null; + pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.OrderItem p_1 = (pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.OrderItem)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-2)).value; + pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.ListOrderItem p_3 = (pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.ListOrderItem)((java_cup.runtime.Symbol) CUP$parser$stack.peek()).value; + RESULT = p_3; p_3.addFirst(p_1); + CUP$parser$result = parser.getSymbolFactory().newSymbol("ListOrderItem",1, RESULT); + } + return CUP$parser$result; + + /*. . . . . . . . . . . . . . . . . . . .*/ + case 3: // ListOrderItem ::= OrderItem + { + pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.ListOrderItem RESULT =null; + pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.OrderItem p_1 = (pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.OrderItem)((java_cup.runtime.Symbol) CUP$parser$stack.peek()).value; + RESULT = new pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.ListOrderItem(); RESULT.addLast(p_1); + CUP$parser$result = parser.getSymbolFactory().newSymbol("ListOrderItem",1, RESULT); + } + return CUP$parser$result; + + /*. . . . . . . . . . . . . . . . . . . .*/ + case 2: // ListStatement ::= Statement _SYMB_0 ListStatement + { + pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.ListStatement RESULT =null; + pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.Statement p_1 = (pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.Statement)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-2)).value; + pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.ListStatement p_3 = (pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.ListStatement)((java_cup.runtime.Symbol) CUP$parser$stack.peek()).value; + RESULT = p_3; p_3.addFirst(p_1); + CUP$parser$result = parser.getSymbolFactory().newSymbol("ListStatement",0, RESULT); + } + return CUP$parser$result; + + /*. . . . . . . . . . . . . . . . . . . .*/ + case 1: // ListStatement ::= Statement + { + pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.ListStatement RESULT =null; + pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.Statement p_1 = (pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.Statement)((java_cup.runtime.Symbol) CUP$parser$stack.peek()).value; + RESULT = new pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.ListStatement(); RESULT.addLast(p_1); + CUP$parser$result = parser.getSymbolFactory().newSymbol("ListStatement",0, RESULT); + } + return CUP$parser$result; + + /*. . . . . . . . . . . . . . . . . . . .*/ + case 0: // $START ::= Program EOF + { + Object RESULT =null; + pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.Program start_val = (pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.Program)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-1)).value; + RESULT = start_val; + CUP$parser$result = parser.getSymbolFactory().newSymbol("$START",0, RESULT); + } + /* ACCEPT */ + CUP$parser$parser.done_parsing(); + return CUP$parser$result; + + /* . . . . . .*/ + default: + throw new Exception( + "Invalid action number found in internal parse table"); + + } + } +} + diff --git a/src/main/java/pl/edu/mimuw/cloudatlas/interpreter/query/query.cup b/src/main/java/pl/edu/mimuw/cloudatlas/interpreter/query/query.cup new file mode 100644 index 0000000..6460d78 --- /dev/null +++ b/src/main/java/pl/edu/mimuw/cloudatlas/interpreter/query/query.cup @@ -0,0 +1,169 @@ +// -*- Java -*- This Cup file was machine-generated by BNFC +package pl.edu.mimuw.mmws.cloudatlas.query; + +parser code {: + public pl.edu.mimuw.mmws.cloudatlas.query.Absyn.Program pProgram() throws Exception + { + java_cup.runtime.Symbol res = parse(); + return (pl.edu.mimuw.mmws.cloudatlas.query.Absyn.Program) res.value; + } + +public <B,A extends java.util.LinkedList<? super B>> A cons_(B x, A xs) { xs.addFirst(x); return xs; } + +public void syntax_error(java_cup.runtime.Symbol cur_token) +{ + report_error("Syntax Error, trying to recover and continue parse...", cur_token); +} + +public void unrecovered_syntax_error(java_cup.runtime.Symbol cur_token) throws java.lang.Exception +{ + throw new Exception("Unrecoverable Syntax Error"); +} + +:} + +nonterminal pl.edu.mimuw.mmws.cloudatlas.query.Absyn.ListStatement ListStatement; +nonterminal pl.edu.mimuw.mmws.cloudatlas.query.Absyn.ListOrderItem ListOrderItem; +nonterminal pl.edu.mimuw.mmws.cloudatlas.query.Absyn.ListSelItem ListSelItem; +nonterminal pl.edu.mimuw.mmws.cloudatlas.query.Absyn.ListCondExpr ListCondExpr; +nonterminal pl.edu.mimuw.mmws.cloudatlas.query.Absyn.Program Program; +nonterminal pl.edu.mimuw.mmws.cloudatlas.query.Absyn.Statement Statement; +nonterminal pl.edu.mimuw.mmws.cloudatlas.query.Absyn.Where Where; +nonterminal pl.edu.mimuw.mmws.cloudatlas.query.Absyn.OrderBy OrderBy; +nonterminal pl.edu.mimuw.mmws.cloudatlas.query.Absyn.OrderItem OrderItem; +nonterminal pl.edu.mimuw.mmws.cloudatlas.query.Absyn.Order Order; +nonterminal pl.edu.mimuw.mmws.cloudatlas.query.Absyn.Nulls Nulls; +nonterminal pl.edu.mimuw.mmws.cloudatlas.query.Absyn.SelItem SelItem; +nonterminal pl.edu.mimuw.mmws.cloudatlas.query.Absyn.BoolExpr BoolExpr; +nonterminal pl.edu.mimuw.mmws.cloudatlas.query.Absyn.CondExpr CondExpr; +nonterminal pl.edu.mimuw.mmws.cloudatlas.query.Absyn.CondExpr CondExpr1; +nonterminal pl.edu.mimuw.mmws.cloudatlas.query.Absyn.CondExpr CondExpr2; +nonterminal pl.edu.mimuw.mmws.cloudatlas.query.Absyn.BasicExpr BasicExpr; +nonterminal pl.edu.mimuw.mmws.cloudatlas.query.Absyn.BasicExpr BasicExpr1; +nonterminal pl.edu.mimuw.mmws.cloudatlas.query.Absyn.BasicExpr BasicExpr2; +nonterminal pl.edu.mimuw.mmws.cloudatlas.query.Absyn.BasicExpr BasicExpr3; +nonterminal pl.edu.mimuw.mmws.cloudatlas.query.Absyn.RelOp RelOp; + +terminal _SYMB_0; // ; +terminal _SYMB_1; // , +terminal _SYMB_2; // + +terminal _SYMB_3; // - +terminal _SYMB_4; // * +terminal _SYMB_5; // / +terminal _SYMB_6; // % +terminal _SYMB_7; // ( +terminal _SYMB_8; // ) +terminal _SYMB_9; // > +terminal _SYMB_10; // = +terminal _SYMB_11; // <> +terminal _SYMB_12; // < +terminal _SYMB_13; // <= +terminal _SYMB_14; // >= +terminal _SYMB_15; // AND +terminal _SYMB_16; // AS +terminal _SYMB_17; // ASC +terminal _SYMB_18; // BY +terminal _SYMB_19; // DESC +terminal _SYMB_20; // FIRST +terminal _SYMB_21; // LAST +terminal _SYMB_22; // NOT +terminal _SYMB_23; // NULLS +terminal _SYMB_24; // OR +terminal _SYMB_25; // ORDER +terminal _SYMB_26; // REGEXP +terminal _SYMB_27; // SELECT +terminal _SYMB_28; // WHERE + +terminal String _STRING_; + + + + + +terminal String QBool; +terminal String QIdent; +terminal String QDouble; +terminal String QInteger; + + +start with Program; + + +ListStatement ::= Statement:p_1 {: RESULT = new pl.edu.mimuw.mmws.cloudatlas.query.Absyn.ListStatement(); RESULT.addLast(p_1); :} + | Statement:p_1 _SYMB_0 ListStatement:p_3 {: RESULT = p_3; p_3.addFirst(p_1); :} +; +ListOrderItem ::= OrderItem:p_1 {: RESULT = new pl.edu.mimuw.mmws.cloudatlas.query.Absyn.ListOrderItem(); RESULT.addLast(p_1); :} + | OrderItem:p_1 _SYMB_1 ListOrderItem:p_3 {: RESULT = p_3; p_3.addFirst(p_1); :} +; +ListSelItem ::= SelItem:p_1 {: RESULT = new pl.edu.mimuw.mmws.cloudatlas.query.Absyn.ListSelItem(); RESULT.addLast(p_1); :} + | SelItem:p_1 _SYMB_1 ListSelItem:p_3 {: RESULT = p_3; p_3.addFirst(p_1); :} +; +ListCondExpr ::= /* empty */ {: RESULT = new pl.edu.mimuw.mmws.cloudatlas.query.Absyn.ListCondExpr(); :} + | CondExpr:p_1 {: RESULT = new pl.edu.mimuw.mmws.cloudatlas.query.Absyn.ListCondExpr(); RESULT.addLast(p_1); :} + | CondExpr:p_1 _SYMB_1 ListCondExpr:p_3 {: RESULT = p_3; p_3.addFirst(p_1); :} +; +Program ::= ListStatement:p_1 {: RESULT = new pl.edu.mimuw.mmws.cloudatlas.query.Absyn.ProgramC(p_1); :} +; +Statement ::= _SYMB_27 ListSelItem:p_2 Where:p_3 OrderBy:p_4 {: RESULT = new pl.edu.mimuw.mmws.cloudatlas.query.Absyn.StatementC(p_2,p_3,p_4); :} +; +Where ::= /* empty */ {: RESULT = new pl.edu.mimuw.mmws.cloudatlas.query.Absyn.NoWhereC(); :} + | _SYMB_28 CondExpr:p_2 {: RESULT = new pl.edu.mimuw.mmws.cloudatlas.query.Absyn.WhereC(p_2); :} +; +OrderBy ::= /* empty */ {: RESULT = new pl.edu.mimuw.mmws.cloudatlas.query.Absyn.NoOrderByC(); :} + | _SYMB_25 _SYMB_18 ListOrderItem:p_3 {: RESULT = new pl.edu.mimuw.mmws.cloudatlas.query.Absyn.OrderByC(p_3); :} +; +OrderItem ::= CondExpr:p_1 Order:p_2 Nulls:p_3 {: RESULT = new pl.edu.mimuw.mmws.cloudatlas.query.Absyn.OrderItemC(p_1,p_2,p_3); :} +; +Order ::= _SYMB_17 {: RESULT = new pl.edu.mimuw.mmws.cloudatlas.query.Absyn.AscOrderC(); :} + | _SYMB_19 {: RESULT = new pl.edu.mimuw.mmws.cloudatlas.query.Absyn.DescOrderC(); :} + | /* empty */ {: RESULT = new pl.edu.mimuw.mmws.cloudatlas.query.Absyn.NoOrderC(); :} +; +Nulls ::= /* empty */ {: RESULT = new pl.edu.mimuw.mmws.cloudatlas.query.Absyn.NoNullsC(); :} + | _SYMB_23 _SYMB_20 {: RESULT = new pl.edu.mimuw.mmws.cloudatlas.query.Absyn.NullFirstsC(); :} + | _SYMB_23 _SYMB_21 {: RESULT = new pl.edu.mimuw.mmws.cloudatlas.query.Absyn.NullsLastC(); :} +; +SelItem ::= CondExpr:p_1 {: RESULT = new pl.edu.mimuw.mmws.cloudatlas.query.Absyn.SelItemC(p_1); :} + | CondExpr:p_1 _SYMB_16 QIdent:p_3 {: RESULT = new pl.edu.mimuw.mmws.cloudatlas.query.Absyn.AliasedSelItemC(p_1,p_3); :} +; +BoolExpr ::= BasicExpr:p_1 RelOp:p_2 BasicExpr:p_3 {: RESULT = new pl.edu.mimuw.mmws.cloudatlas.query.Absyn.BoolExprCmpC(p_1,p_2,p_3); :} + | BasicExpr:p_1 _SYMB_26 _STRING_:p_3 {: RESULT = new pl.edu.mimuw.mmws.cloudatlas.query.Absyn.BoolExprRegExpC(p_1,p_3); :} + | BasicExpr:p_1 {: RESULT = new pl.edu.mimuw.mmws.cloudatlas.query.Absyn.BoolExprBasicExprC(p_1); :} +; +CondExpr ::= CondExpr:p_1 _SYMB_24 CondExpr1:p_3 {: RESULT = new pl.edu.mimuw.mmws.cloudatlas.query.Absyn.CondExprOrC(p_1,p_3); :} + | CondExpr1:p_1 {: RESULT = p_1; :} +; +CondExpr1 ::= CondExpr1:p_1 _SYMB_15 CondExpr2:p_3 {: RESULT = new pl.edu.mimuw.mmws.cloudatlas.query.Absyn.CondExprAndC(p_1,p_3); :} + | CondExpr2:p_1 {: RESULT = p_1; :} +; +CondExpr2 ::= _SYMB_22 CondExpr2:p_2 {: RESULT = new pl.edu.mimuw.mmws.cloudatlas.query.Absyn.CondExprNotC(p_2); :} + | BoolExpr:p_1 {: RESULT = new pl.edu.mimuw.mmws.cloudatlas.query.Absyn.CondExprBoolExprC(p_1); :} +; +BasicExpr ::= BasicExpr:p_1 _SYMB_2 BasicExpr1:p_3 {: RESULT = new pl.edu.mimuw.mmws.cloudatlas.query.Absyn.BasicExprAddC(p_1,p_3); :} + | BasicExpr:p_1 _SYMB_3 BasicExpr1:p_3 {: RESULT = new pl.edu.mimuw.mmws.cloudatlas.query.Absyn.BasicExprSubC(p_1,p_3); :} + | BasicExpr1:p_1 {: RESULT = p_1; :} +; +BasicExpr1 ::= BasicExpr1:p_1 _SYMB_4 BasicExpr2:p_3 {: RESULT = new pl.edu.mimuw.mmws.cloudatlas.query.Absyn.BasicExprMulC(p_1,p_3); :} + | BasicExpr1:p_1 _SYMB_5 BasicExpr2:p_3 {: RESULT = new pl.edu.mimuw.mmws.cloudatlas.query.Absyn.BasicExprDivC(p_1,p_3); :} + | BasicExpr1:p_1 _SYMB_6 BasicExpr2:p_3 {: RESULT = new pl.edu.mimuw.mmws.cloudatlas.query.Absyn.BasicExprModC(p_1,p_3); :} + | BasicExpr2:p_1 {: RESULT = p_1; :} +; +BasicExpr2 ::= _SYMB_3 BasicExpr2:p_2 {: RESULT = new pl.edu.mimuw.mmws.cloudatlas.query.Absyn.BasicExprNegC(p_2); :} + | BasicExpr3:p_1 {: RESULT = p_1; :} +; +BasicExpr3 ::= QBool:p_1 {: RESULT = new pl.edu.mimuw.mmws.cloudatlas.query.Absyn.EBoolC(p_1); :} + | QIdent:p_1 {: RESULT = new pl.edu.mimuw.mmws.cloudatlas.query.Absyn.EIdentC(p_1); :} + | QIdent:p_1 _SYMB_7 ListCondExpr:p_3 _SYMB_8 {: RESULT = new pl.edu.mimuw.mmws.cloudatlas.query.Absyn.EFunC(p_1,p_3); :} + | _STRING_:p_1 {: RESULT = new pl.edu.mimuw.mmws.cloudatlas.query.Absyn.EStrC(p_1); :} + | QInteger:p_1 {: RESULT = new pl.edu.mimuw.mmws.cloudatlas.query.Absyn.EIntC(p_1); :} + | QDouble:p_1 {: RESULT = new pl.edu.mimuw.mmws.cloudatlas.query.Absyn.EDblC(p_1); :} + | _SYMB_7 CondExpr:p_2 _SYMB_8 {: RESULT = new pl.edu.mimuw.mmws.cloudatlas.query.Absyn.ECondExprC(p_2); :} + | _SYMB_7 Statement:p_2 _SYMB_8 {: RESULT = new pl.edu.mimuw.mmws.cloudatlas.query.Absyn.EStmtC(p_2); :} +; +RelOp ::= _SYMB_9 {: RESULT = new pl.edu.mimuw.mmws.cloudatlas.query.Absyn.RelOpGtC(); :} + | _SYMB_10 {: RESULT = new pl.edu.mimuw.mmws.cloudatlas.query.Absyn.RelOpEqC(); :} + | _SYMB_11 {: RESULT = new pl.edu.mimuw.mmws.cloudatlas.query.Absyn.RelOpNeC(); :} + | _SYMB_12 {: RESULT = new pl.edu.mimuw.mmws.cloudatlas.query.Absyn.RelOpLtC(); :} + | _SYMB_13 {: RESULT = new pl.edu.mimuw.mmws.cloudatlas.query.Absyn.RelOpLeC(); :} + | _SYMB_14 {: RESULT = new pl.edu.mimuw.mmws.cloudatlas.query.Absyn.RelOpGeC(); :} +; + diff --git a/src/main/java/pl/edu/mimuw/cloudatlas/interpreter/query/sym.java b/src/main/java/pl/edu/mimuw/cloudatlas/interpreter/query/sym.java new file mode 100644 index 0000000..34b6cc7 --- /dev/null +++ b/src/main/java/pl/edu/mimuw/cloudatlas/interpreter/query/sym.java @@ -0,0 +1,49 @@ + +//---------------------------------------------------- +// The following code was generated by CUP v0.11a beta 20060608 +// Sat Nov 16 17:39:43 CET 2013 +//---------------------------------------------------- + +package pl.edu.mimuw.cloudatlas.interpreter.query; + +/** CUP generated class containing symbol constants. */ +public class sym { + /* terminals */ + public static final int _SYMB_18 = 20; + public static final int _SYMB_17 = 19; + public static final int _SYMB_16 = 18; + public static final int _SYMB_15 = 17; + public static final int _SYMB_14 = 16; + public static final int _SYMB_13 = 15; + public static final int QIdent = 33; + public static final int _SYMB_12 = 14; + public static final int _SYMB_11 = 13; + public static final int _SYMB_9 = 11; + public static final int _SYMB_8 = 10; + public static final int _SYMB_10 = 12; + public static final int _SYMB_7 = 9; + public static final int _SYMB_6 = 8; + public static final int _SYMB_5 = 7; + public static final int _SYMB_4 = 6; + public static final int _SYMB_3 = 5; + public static final int _SYMB_2 = 4; + public static final int _SYMB_1 = 3; + public static final int _SYMB_0 = 2; + public static final int QDouble = 34; + public static final int _STRING_ = 31; + public static final int EOF = 0; + public static final int error = 1; + public static final int _SYMB_28 = 30; + public static final int _SYMB_27 = 29; + public static final int _SYMB_26 = 28; + public static final int _SYMB_25 = 27; + public static final int QBool = 32; + public static final int _SYMB_24 = 26; + public static final int _SYMB_23 = 25; + public static final int _SYMB_22 = 24; + public static final int _SYMB_21 = 23; + public static final int _SYMB_20 = 22; + public static final int QInteger = 35; + public static final int _SYMB_19 = 21; +} + |