import org.simantics.scl.compiler.internal.parsing.types.TForAllAst;
import org.simantics.scl.compiler.internal.parsing.types.TFunctionAst;
import org.simantics.scl.compiler.internal.parsing.types.TListAst;
+import org.simantics.scl.compiler.internal.parsing.types.TPlainEffectAst;
import org.simantics.scl.compiler.internal.parsing.types.TPredAst;
import org.simantics.scl.compiler.internal.parsing.types.TTupleAst;
import org.simantics.scl.compiler.internal.parsing.types.TVarAst;
protected Object reduceGreater() {
return new EVar(((Token)get(0)).text);
}
+
+ @Override
+ protected Object reduceDoubleLess() {
+ return new EVar(((Token)get(0)).text);
+ }
+
+ @Override
+ protected Object reduceDoubleGreater() {
+ return new EVar(((Token)get(0)).text);
+ }
@Override
protected Object reduceDot() {
return new FieldAssignment(FieldAssignment.WILDCARD, null);
}
+ @Override
+ protected Object reducePlainEffect() {
+ ArrayList<TypeAst> effects = new ArrayList<TypeAst>(length()/2);
+ for(int i=1;i<length();i+=2) {
+ Token token = (Token)get(i);
+ TVarAst ast = new TVarAst(token.text);
+ ast.location = token.location;
+ effects.add(ast);
+ }
+ return new TPlainEffectAst(effects);
+ }
+
}