diff --git a/.settings/org.eclipse.core.resources.prefs b/.settings/org.eclipse.core.resources.prefs index c4fecf63d6a..73e25eee964 100644 --- a/.settings/org.eclipse.core.resources.prefs +++ b/.settings/org.eclipse.core.resources.prefs @@ -4,7 +4,7 @@ encoding//src/org/rascalmpl/library/experiments/vis2/lib/MarkdownConverter.js=UT encoding//src/org/rascalmpl/library/experiments/vis2/lib/nv.d3.css=UTF-8 encoding//src/org/rascalmpl/library/experiments/vis2/lib/nv.d3.js=UTF-8 encoding//src/org/rascalmpl/library/experiments/vis2/lib/reset.css=UTF-8 -encoding//src/org/rascalmpl/library/lang/rascal/tests/functionality/DataType.rsc=UTF-8 +encoding//src/rascal=UTF-8 encoding//test/org/rascalmpl/test/data=UTF-8 encoding/=UTF-8 encoding/src=UTF-8 diff --git a/pom.xml b/pom.xml index 5a8e507963c..024d55f9c22 100644 --- a/pom.xml +++ b/pom.xml @@ -66,7 +66,7 @@ - ${project.build.directory}/generated-resources + ${project.build.directory}/src/rascal test @@ -178,7 +178,7 @@ ${project.basedir}/FUNDING ${project.basedir}/CITATION.md ${project.basedir}/LICENSE - ${project.basedir}/AUTHORS.md + |http://github.com/usethesource/rascal/blob/main| |http://github.com/usethesource/rascal/issues| ${project.version} diff --git a/src/org/rascalmpl/interpreter/Evaluator.java b/src/org/rascalmpl/interpreter/Evaluator.java index 05abbb2daec..a6ff77294cf 100755 --- a/src/org/rascalmpl/interpreter/Evaluator.java +++ b/src/org/rascalmpl/interpreter/Evaluator.java @@ -658,17 +658,6 @@ public IConstructor getGrammar(Environment env) { return getParserGenerator().getGrammarFromModules(monitor, root.getName(), root.getSyntaxDefinition()); } - public IValue diagnoseAmbiguity(IRascalMonitor monitor, IConstructor parseTree) { - IRascalMonitor old = setMonitor(monitor); - try { - ParserGenerator pgen = getParserGenerator(); - return pgen.diagnoseAmbiguity(parseTree); - } - finally { - setMonitor(old); - } - } - public IConstructor getExpandedGrammar(IRascalMonitor monitor, ISourceLocation uri) { IRascalMonitor old = setMonitor(monitor); try { diff --git a/src/org/rascalmpl/parser/ParserGenerator.java b/src/org/rascalmpl/parser/ParserGenerator.java index a34b2bb05aa..95a0c4bc82a 100644 --- a/src/org/rascalmpl/parser/ParserGenerator.java +++ b/src/org/rascalmpl/parser/ParserGenerator.java @@ -18,7 +18,6 @@ import java.io.IOException; import java.io.OutputStream; import java.io.PrintWriter; -import java.io.Reader; import java.util.Collections; import org.rascalmpl.debug.IRascalMonitor; @@ -27,13 +26,21 @@ import org.rascalmpl.interpreter.Configuration; import org.rascalmpl.interpreter.Evaluator; import org.rascalmpl.interpreter.utils.JavaBridge; -import org.rascalmpl.interpreter.utils.Profiler; import org.rascalmpl.parser.gtd.IGTD; -import org.rascalmpl.shell.ShellEvaluatorFactory; +import org.rascalmpl.runtime.ModuleStore; +import org.rascalmpl.runtime.RascalExecutionContext; import org.rascalmpl.uri.URIResolverRegistry; import org.rascalmpl.values.IRascalValueFactory; import org.rascalmpl.values.parsetrees.ITree; -import org.rascalmpl.values.parsetrees.SymbolAdapter; +import rascal.lang.rascal.grammar.$ParserGenerator; +import rascal.lang.rascal.grammar.$ConcreteSyntax; +import rascal.lang.rascal.grammar.definition.$Modules; +import rascal.lang.rascal.grammar.definition.$Priorities; +import rascal.lang.rascal.grammar.definition.$Regular; +import rascal.lang.rascal.grammar.definition.$Keywords; +import rascal.lang.rascal.grammar.definition.$Literals; +import rascal.lang.rascal.grammar.definition.$Symbols; +import rascal.lang.rascal.grammar.definition.$Parameters; import io.usethesource.vallang.IConstructor; import io.usethesource.vallang.IInteger; @@ -41,45 +48,38 @@ import io.usethesource.vallang.ISet; import io.usethesource.vallang.ISourceLocation; import io.usethesource.vallang.IString; -import io.usethesource.vallang.IValue; import io.usethesource.vallang.IValueFactory; public class ParserGenerator { - private final Evaluator evaluator; + private final $ParserGenerator pgen; + private final $ConcreteSyntax concreteSyntax; + private final $Modules modules; + private final $Priorities priorities; + private final $Regular regular; + private final $Keywords keywords; + private final $Literals literals; + private final $Parameters parameters; + private final $Symbols symbols; + private final JavaBridge bridge; private final IValueFactory vf; private static final String packageName = "org.rascalmpl.java.parser.object"; private static final boolean debug = false; public ParserGenerator(IRascalMonitor monitor, PrintWriter out, IValueFactory factory, Configuration config) { - this.evaluator = ShellEvaluatorFactory.getBasicEvaluator(Reader.nullReader(), out, out, monitor, "$parsergenerator$"); - this.evaluator.getConfiguration().setGeneratorProfiling(config.getGeneratorProfilingProperty()); - this.evaluator.setBootstrapperProperty(true); + var rex = new RascalExecutionContext(null, out, out, null, null, $ParserGenerator.class); + ModuleStore ms = rex.getModuleStore(); + pgen = new $ParserGenerator(rex); + concreteSyntax = ms.getModule($ConcreteSyntax.class); + modules = ms.getModule($Modules.class); + priorities = ms.getModule($Priorities.class); + symbols = ms.getModule($Symbols.class); + regular = ms.getModule($Regular.class); + literals = ms.getModule($Literals.class); + parameters = ms.getModule($Parameters.class); + keywords = ms.getModule($Keywords.class); this.bridge = new JavaBridge(Collections.singletonList(Evaluator.class.getClassLoader()), factory, config); this.vf = factory; - - evaluator.doImport(monitor, - "lang::rascal::grammar::ParserGenerator", - "lang::rascal::grammar::ConcreteSyntax", - "lang::rascal::grammar::definition::Modules", - "lang::rascal::grammar::definition::Priorities", - "lang::rascal::grammar::definition::Regular", - "lang::rascal::grammar::definition::Keywords", - "lang::rascal::grammar::definition::Literals", - "lang::rascal::grammar::definition::Parameters", - "lang::rascal::grammar::definition::Symbols", - "analysis::grammars::Ambiguity" - ); - } - - public void setGeneratorProfiling(boolean f) { - evaluator.getConfiguration().setGeneratorProfiling(f); - } - - public IValue diagnoseAmbiguity(IConstructor parseForest) { - synchronized(evaluator) { - return evaluator.call("diagnose", parseForest); - } } private void debugOutput(Object thing, String file) { @@ -107,63 +107,37 @@ private void debugOutput(Object thing, String file) { } } - public IConstructor getGrammarFromModules(IRascalMonitor monitor, String main, IMap modules) { - synchronized(evaluator) { - return (IConstructor) evaluator.call(monitor, "modules2grammar", vf.string(main), modules); - } + public IConstructor getGrammarFromModules(IRascalMonitor monitor, String main, IMap mods) { + return modules.modules2grammar(vf.string(main), mods); } public IConstructor getExpandedGrammar(IRascalMonitor monitor, String main, IMap definition) { - synchronized(evaluator) { - IConstructor g = getGrammarFromModules(monitor, main, definition); - g = (IConstructor) evaluator.call(monitor, "expandKeywords", g); - g = (IConstructor) evaluator.call(monitor, "makeRegularStubs", g); - g = (IConstructor) evaluator.call(monitor, "expandRegularSymbols", g); - g = (IConstructor) evaluator.call(monitor, "expandParameterizedSymbols", g); - g = (IConstructor) evaluator.call(monitor, "literals", g); - return g; - } + IConstructor g = getGrammarFromModules(monitor, main, definition); + g = keywords.expandKeywords(g); + g = (IConstructor) regular.makeRegularStubs(g); // why is the return type IValue here? + g = regular.expandRegularSymbols(g); + g = parameters.expandParameterizedSymbols(g); + g = literals.literals(g); + + return g; } - public ISet getNestingRestrictions(IRascalMonitor monitor, - IConstructor g) { - synchronized (evaluator) { - return (ISet) evaluator.call(monitor, "doNotNest", g); - } + public ISet getNestingRestrictions(IRascalMonitor monitor, IConstructor g) { + return priorities.doNotNest(g); } /** * Produces the name generated by the parser generator for a parse method for the given symbol */ public String getParserMethodName(IConstructor symbol) { - // we use a fast non-synchronized path for simple cases; - // this is to prevent locking the evaluator in IDE contexts - // where many calls into the evaluator/parser are fired in rapid - // succession. - - switch (symbol.getName()) { - case "start": - return "start__" + getParserMethodName(SymbolAdapter.getStart(symbol)); - case "layouts": - return "layouts_" + SymbolAdapter.getName(symbol); - case "sort": - case "lex": - case "keywords": - return SymbolAdapter.getName(symbol); - } - - synchronized (evaluator) { - return ((IString) evaluator.call((IRascalMonitor) null, "getParserMethodName", symbol)).getValue(); - } + return pgen.getParserMethodName(symbol).getValue(); } /** * Converts the parse tree of a symbol to a UPTR symbol */ public IConstructor symbolTreeToSymbol(IConstructor symbol) { - synchronized (evaluator) { - return (IConstructor) evaluator.call((IRascalMonitor) null,"sym2symbol", symbol); - } + return symbols.sym2symbol(symbol); } /** @@ -176,12 +150,7 @@ public IConstructor symbolTreeToSymbol(IConstructor symbol) { * @return A parser class, ready for instantiation */ public Class> getNewParser(IRascalMonitor monitor, ISourceLocation loc, String name, IMap definition) { - Profiler profiler = evaluator.getConfiguration().getGeneratorProfilingProperty() ? new Profiler(evaluator) : null; - try { - if (profiler != null) { - profiler.start(); - } IConstructor grammar = IRascalValueFactory.getInstance().grammar(definition); debugOutput(grammar, System.getProperty("java.io.tmpdir") + "/grammar.trm"); return getNewParser(monitor, loc, name, grammar); @@ -192,14 +161,6 @@ public Class> getNewParser(IRascalMon catch (Throw e) { throw new ImplementationError("parser generator: " + e.getMessage() + e.getTrace()); } - finally { - if (profiler != null) { - profiler.pleaseStop(); - evaluator.getOutPrinter().println("PROFILE:"); - profiler.report(); - profiler = null; - } - } } /** @@ -215,10 +176,7 @@ public Class> getNewParser(IRascalMon try { String normName = name.replaceAll("::", "_").replaceAll("\\\\", "_"); - IString classString; - synchronized (evaluator) { - classString = (IString) evaluator.call(monitor, "newGenerate", vf.string(packageName), vf.string(normName), grammar); - } + IString classString = pgen.newGenerate(vf.string(packageName), vf.string(normName), grammar); debugOutput(classString, System.getProperty("java.io.tmpdir") + "/parser.java"); return bridge.compileJava(loc, packageName + "." + normName, classString.getValue()); @@ -242,12 +200,10 @@ public Class> getNewParser(IRascalMon public void writeNewParser(IRascalMonitor monitor, ISourceLocation loc, String name, IMap definition, ISourceLocation target) throws IOException { try (OutputStream out = URIResolverRegistry.getInstance().getOutputStream(target, false)) { String normName = name.replaceAll("::", "_").replaceAll("\\\\", "_"); - IString classString; IConstructor grammar = IRascalValueFactory.getInstance().grammar(definition); - synchronized (evaluator) { - classString = (IString) evaluator.call(monitor, "newGenerate", vf.string(packageName), vf.string(normName), grammar); - } + IString classString = pgen.newGenerate(vf.string(packageName), vf.string(normName), grammar); + debugOutput(classString, System.getProperty("java.io.tmpdir") + "/parser.java"); bridge.compileJava(loc, packageName + "." + normName, classString.getValue(), out); @@ -259,8 +215,6 @@ public void writeNewParser(IRascalMonitor monitor, ISourceLocation loc, String n } public IString createHole(IConstructor part, IInteger size) { - synchronized (evaluator) { - return (IString) evaluator.call("createHole", part, size); - } + return concreteSyntax.createHole(part, size); } } diff --git a/src/org/rascalmpl/runtime/$RascalModule.java b/src/org/rascalmpl/runtime/$RascalModule.java index cf8bb3c0316..b5deaf16a7c 100644 --- a/src/org/rascalmpl/runtime/$RascalModule.java +++ b/src/org/rascalmpl/runtime/$RascalModule.java @@ -37,6 +37,8 @@ import java.net.URISyntaxException; import java.net.URL; import java.nio.channels.FileChannel; +import java.nio.file.Path; +import java.nio.file.Paths; import java.util.Collections; import java.util.HashMap; import java.util.HashSet; @@ -358,6 +360,10 @@ public Set findResources(String fileName) { //$TS.declareAbstractDataType(adtType); return adtType; } + + public io.usethesource.vallang.type.Type $parameterizedAdt(String adtName, Type[] params){ + return $TF.abstractDataType($TS, adtName, params); + } public io.usethesource.vallang.type.Type $sort(String adtName){ Type adtType = $TF.abstractDataType($TS, adtName); @@ -365,6 +371,15 @@ public Set findResources(String fileName) { //return adtType; return new NonTerminalType($RVF.constructor(RascalValueFactory.Symbol_Sort, $VF.string(adtName))); } + + public io.usethesource.vallang.type.Type $parameterizedSort(String adtName, Type[] parameters, IList bindings) { + return $RTF.nonTerminalType($RVF.constructor(RascalValueFactory.Symbol_ParameterizedSort, $VF.string(adtName), bindings)); + } + + public io.usethesource.vallang.type.Type $parameterizedLex(String adtName, Type[] parameters, IList bindings) { + return $RTF.nonTerminalType($RVF.constructor(RascalValueFactory.Symbol_ParameterizedLex, $VF.string(adtName), bindings)); + } + public io.usethesource.vallang.type.Type $lex(String adtName){ Type adtType = $TF.abstractDataType($TS, adtName); @@ -412,49 +427,36 @@ public IList readBinaryConstantsFile(Class c, String path, int expected_lengt if(url == null) { throw RuntimeExceptionFactory.io($VF.string("Cannot find resource " + path)); } - loc = $VF.sourceLocation(url.toURI()); - } catch (URISyntaxException e) { - System.err.println("readBinaryConstantsFile: " + path + " throws " + e.getMessage()); - } - - try (IValueInputStream in = constructValueReader(loc)) { - IValue constantsFile = in.read();; - if(constantsFile.getType().isSubtypeOf(constantsFileType)){ - ITuple tup = (ITuple)constantsFile; - int found_length = ((IInteger)tup.get(0)).intValue(); - if(found_length != expected_length) { - throw RuntimeExceptionFactory.io($VF.string("Expected " + expected_length + " constants, but only " + found_length + " found in " + path)); - } - String found_hash = ((IString)tup.get(1)).getValue(); - if(!found_hash.equals(expected_md5Hash)) { - throw RuntimeExceptionFactory.io($VF.string("Expected md5Hash " + expected_md5Hash + ", but got " + found_hash + " for " + path)); - } - - return (IList) tup.get(2); - } else { - throw RuntimeExceptionFactory.io($VF.string("Requested type " + constantsFileType + ", but found " + constantsFile.getType())); - } - } - catch (IOException e) { - System.err.println("readBinaryConstantsFile: " + loc + " throws " + e.getMessage()); - throw RuntimeExceptionFactory.io($VF.string(e.getMessage())); - } - catch (Exception e) { - System.err.println("readBinaryConstantsFile: " + loc + " throws " + e.getMessage()); - throw RuntimeExceptionFactory.io($VF.string(e.getMessage())); - } - } - - private IValueInputStream constructValueReader(ISourceLocation loc) throws IOException { - URIResolverRegistry registry = URIResolverRegistry.getInstance(); - if (registry.supportsReadableFileChannel(loc)) { - FileChannel channel = registry.getReadableFileChannel(loc); - if (channel != null) { - return new IValueInputStream(channel, $VF, TYPE_STORE_SUPPLIER); - } - } - return new IValueInputStream(registry.getInputStream(loc), $VF, TYPE_STORE_SUPPLIER); - } + + try (IValueInputStream in = new IValueInputStream(url.openStream(), $VF, TYPE_STORE_SUPPLIER)) { + IValue constantsFile = in.read(); + if(constantsFile.getType().isSubtypeOf(constantsFileType)){ + ITuple tup = (ITuple)constantsFile; + int found_length = ((IInteger)tup.get(0)).intValue(); + if(found_length != expected_length) { + throw RuntimeExceptionFactory.io($VF.string("Expected " + expected_length + " constants, but only " + found_length + " found in " + path)); + } + String found_hash = ((IString)tup.get(1)).getValue(); + if(!found_hash.equals(expected_md5Hash)) { + throw RuntimeExceptionFactory.io($VF.string("Expected md5Hash " + expected_md5Hash + ", but got " + found_hash + " for " + path)); + } + + return (IList) tup.get(2); + } else { + throw RuntimeExceptionFactory.io($VF.string("Requested type " + constantsFileType + ", but found " + constantsFile.getType())); + } + } + catch (IOException e) { + System.err.println("readBinaryConstantsFile: " + loc + " throws " + e.getMessage()); + throw RuntimeExceptionFactory.io($VF.string(e.getMessage())); + } + catch (Exception e) { + System.err.println("readBinaryConstantsFile: " + loc + " throws " + e.getMessage()); + throw RuntimeExceptionFactory.io($VF.string(e.getMessage())); + } + } + finally {} + } /*************************************************************************/ /* Rascal primitives called by generated code */ diff --git a/src/org/rascalmpl/runtime/RascalExecutionContext.java b/src/org/rascalmpl/runtime/RascalExecutionContext.java index 4f6032df3a4..5757f5efdf9 100644 --- a/src/org/rascalmpl/runtime/RascalExecutionContext.java +++ b/src/org/rascalmpl/runtime/RascalExecutionContext.java @@ -94,41 +94,17 @@ public RascalExecutionContext( $TRAVERSE = new Traverse($RVF); mstore = new ModuleStore(); $TS = new TypeStore(); - rascalSearchPath = new RascalSearchPath(); + rascalSearchPath = null ; // JV: unused new RascalSearchPath(); + // TODO: this code is for the test environment (which should offer `project://thisProject`) ISourceLocation projectRoot = inferProjectRoot(clazz); URIResolverRegistry reg = URIResolverRegistry.getInstance(); - String projectName = new RascalManifest().getProjectName(projectRoot); - if(!projectName.isEmpty()) { - reg.registerLogical(new ProjectURIResolver(projectRoot, projectName)); - reg.registerLogical(new TargetURIResolver(projectRoot, projectName)); - } - - String projectPath = projectRoot.getPath(); - String projectsDirPath = projectPath.substring(0, projectPath.length() - projectName.length()-1); - - try { - ISourceLocation projectsDir = $RVF.sourceLocation(projectRoot.getScheme(), projectRoot.getAuthority(),projectsDirPath); - String[]entries = URIResolverRegistry.getInstance().listEntries(projectsDir); - if (entries != null) { - //System.err.print("INFO adding projects: "); - for(String entryName : entries) { - if(entryName.charAt(0) != '.' && !(entryName.equals("pom-parent") || entryName.equals("bin") || entryName.equals("src") || entryName.equals("META-INF"))) { - ISourceLocation entryRoot = $RVF.sourceLocation(projectsDir.getScheme(), projectsDir.getAuthority(), projectsDir.getPath() + "/" + entryName); - if(URIResolverRegistry.getInstance().isDirectory(entryRoot)) { - reg.registerLogical(new ProjectURIResolver(entryRoot, entryName)); - reg.registerLogical(new TargetURIResolver(entryRoot, entryName)); - rascalSearchPath.addPathContributor(new SourceLocationListContributor(entryName, $VF.list(entryRoot))); - //System.err.print(entryName + " "); - } - } - } - //System.err.println(""); + if (projectRoot != null) { + String projectName = new RascalManifest().getProjectName(projectRoot); + if(!projectName.isEmpty()) { + reg.registerLogical(new ProjectURIResolver(projectRoot, projectName)); + reg.registerLogical(new TargetURIResolver(projectRoot, projectName)); } - } catch (IOException e) { - return; - } catch (URISyntaxException e) { - return; } } @@ -211,9 +187,11 @@ public void warning(String message, ISourceLocation src) { public static ISourceLocation inferProjectRoot(Class clazz) { try { String file = clazz.getProtectionDomain().getCodeSource().getLocation().getPath(); - if (file.endsWith(".jar")) { - throw new IllegalArgumentException("can not run Rascal JUnit tests from within a jar file"); - } + + // This has to run from a jar file too! + // if (file.endsWith(".jar")) { + // throw new IllegalArgumentException("can not run Rascal JUnit tests from within a jar file"); + // } File current = new File(file); diff --git a/src/org/rascalmpl/semantics/dynamic/ShellCommand.java b/src/org/rascalmpl/semantics/dynamic/ShellCommand.java index b7c52840a94..ad2f984403e 100644 --- a/src/org/rascalmpl/semantics/dynamic/ShellCommand.java +++ b/src/org/rascalmpl/semantics/dynamic/ShellCommand.java @@ -156,7 +156,6 @@ public Result interpret(IEvaluator> __eval) { switch (name) { case Configuration.GENERATOR_PROFILING_PROPERTY: __eval.getConfiguration().setGeneratorProfiling(Boolean.parseBoolean(value)); - __eval.getParserGenerator().setGeneratorProfiling(Boolean.parseBoolean(value)); break; case Configuration.PROFILING_PROPERTY: __eval.getConfiguration().setProfiling(Boolean.parseBoolean(value)); diff --git a/src/rascal/$Exception.constants b/src/rascal/$Exception.constants new file mode 100644 index 00000000000..8b4bc9a8c17 Binary files /dev/null and b/src/rascal/$Exception.constants differ diff --git a/src/rascal/$Exception.java b/src/rascal/$Exception.java new file mode 100644 index 00000000000..523a5332a9a --- /dev/null +++ b/src/rascal/$Exception.java @@ -0,0 +1,209 @@ +package rascal; +import java.io.PrintWriter; +import java.io.StringWriter; +import java.io.InputStreamReader; +import java.io.PrintWriter; +import java.util.*; +import java.util.regex.Matcher; +import io.usethesource.vallang.*; +import io.usethesource.vallang.type.*; +import org.rascalmpl.runtime.*; +import org.rascalmpl.runtime.RascalExecutionContext; +import org.rascalmpl.runtime.function.*; +import org.rascalmpl.runtime.traverse.*; +import org.rascalmpl.runtime.utils.*; +import org.rascalmpl.exceptions.RuntimeExceptionFactory; +import org.rascalmpl.exceptions.Throw; +import org.rascalmpl.runtime.RascalExecutionContext; +import org.rascalmpl.interpreter.control_exceptions.Filtered; +import org.rascalmpl.types.NonTerminalType; +import org.rascalmpl.types.RascalTypeFactory; +import org.rascalmpl.util.ExpiringFunctionResultCache; +import org.rascalmpl.values.RascalValueFactory; +import org.rascalmpl.values.ValueFactoryFactory; +import org.rascalmpl.values.parsetrees.ITree; +import org.rascalmpl.values.parsetrees.TreeAdapter; + + + +@SuppressWarnings({"unused","unchecked","deprecation"}) +public class $Exception + extends + org.rascalmpl.runtime.$RascalModule + implements + rascal.$Exception_$I { + + private final $Exception_$I $me; + private final IList $constants; + + + + + + public final io.usethesource.vallang.type.Type $T6; /*avalue(alabel="second")*/ + public final io.usethesource.vallang.type.Type $T1; /*astr(alabel="message")*/ + public final io.usethesource.vallang.type.Type $T12; /*astr(alabel="label")*/ + public final io.usethesource.vallang.type.Type $T8; /*astr(alabel="class")*/ + public final io.usethesource.vallang.type.Type $T15; /*astr(alabel="nonterminal")*/ + public final io.usethesource.vallang.type.Type $T18; /*aint(alabel="column")*/ + public final io.usethesource.vallang.type.Type $T9; /*aint(alabel="index")*/ + public final io.usethesource.vallang.type.Type $T13; /*aloc()*/ + public final io.usethesource.vallang.type.Type $T5; /*avalue(alabel="first")*/ + public final io.usethesource.vallang.type.Type $T16; /*astr(alabel="sentence")*/ + public final io.usethesource.vallang.type.Type $T19; /*astr(alabel="source")*/ + public final io.usethesource.vallang.type.Type $T0; /*aloc(alabel="location")*/ + public final io.usethesource.vallang.type.Type $T10; /*avalue()*/ + public final io.usethesource.vallang.type.Type $T3; /*astr(alabel="uri")*/ + public final io.usethesource.vallang.type.Type $T21; /*astr(alabel="cls")*/ + public final io.usethesource.vallang.type.Type $T17; /*aint(alabel="line")*/ + public final io.usethesource.vallang.type.Type $T2; /*avalue(alabel="v")*/ + public final io.usethesource.vallang.type.Type $T4; /*avalue(alabel="key")*/ + public final io.usethesource.vallang.type.Type $T7; /*astr(alabel="name")*/ + public final io.usethesource.vallang.type.Type ADT_RuntimeException; /*aadt("RuntimeException",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type $T11; /*alist(avalue(),alabel="arguments")*/ + public final io.usethesource.vallang.type.Type RuntimeException_IllegalTypeArgument_str_str; /*acons(aadt("RuntimeException",[],dataSyntax()),[astr(alabel="cls"),astr(alabel="message")],[],alabel="IllegalTypeArgument")*/ + public final io.usethesource.vallang.type.Type RuntimeException_Timeout_; /*acons(aadt("RuntimeException",[],dataSyntax()),[],[],alabel="Timeout")*/ + public final io.usethesource.vallang.type.Type RuntimeException_NoSuchAnnotation_str; /*acons(aadt("RuntimeException",[],dataSyntax()),[astr(alabel="label")],[],alabel="NoSuchAnnotation")*/ + public final io.usethesource.vallang.type.Type RuntimeException_EmptyList_; /*acons(aadt("RuntimeException",[],dataSyntax()),[],[],alabel="EmptyList")*/ + public final io.usethesource.vallang.type.Type RuntimeException_NoParent_loc; /*acons(aadt("RuntimeException",[],dataSyntax()),[aloc(alabel="location")],[],alabel="NoParent")*/ + public final io.usethesource.vallang.type.Type RuntimeException_Java_str_str; /*acons(aadt("RuntimeException",[],dataSyntax()),[astr(alabel="class"),astr(alabel="message")],[],alabel="Java")*/ + public final io.usethesource.vallang.type.Type RuntimeException_MultipleKey_value_value_value; /*acons(aadt("RuntimeException",[],dataSyntax()),[avalue(alabel="key"),avalue(alabel="first"),avalue(alabel="second")],[],alabel="MultipleKey")*/ + public final io.usethesource.vallang.type.Type RuntimeException_InvalidURI_str; /*acons(aadt("RuntimeException",[],dataSyntax()),[astr(alabel="uri")],[],alabel="InvalidURI")*/ + public final io.usethesource.vallang.type.Type RuntimeException_NoMainFunction_; /*acons(aadt("RuntimeException",[],dataSyntax()),[],[],alabel="NoMainFunction")*/ + public final io.usethesource.vallang.type.Type RuntimeException_StackOverflow_; /*acons(aadt("RuntimeException",[],dataSyntax()),[],[],alabel="StackOverflow")*/ + public final io.usethesource.vallang.type.Type RuntimeException_MalFormedURI_str; /*acons(aadt("RuntimeException",[],dataSyntax()),[astr(alabel="uri")],[],alabel="MalFormedURI")*/ + public final io.usethesource.vallang.type.Type RuntimeException_NotImplemented_str; /*acons(aadt("RuntimeException",[],dataSyntax()),[astr(alabel="message")],[],alabel="NotImplemented")*/ + public final io.usethesource.vallang.type.Type RuntimeException_EmptySet_; /*acons(aadt("RuntimeException",[],dataSyntax()),[],[],alabel="EmptySet")*/ + public final io.usethesource.vallang.type.Type RuntimeException_IllegalArgument_; /*acons(aadt("RuntimeException",[],dataSyntax()),[],[],alabel="IllegalArgument")*/ + public final io.usethesource.vallang.type.Type RuntimeException_RegExpSyntaxError_str; /*acons(aadt("RuntimeException",[],dataSyntax()),[astr(alabel="message")],[],alabel="RegExpSyntaxError")*/ + public final io.usethesource.vallang.type.Type RuntimeException_IO_str; /*acons(aadt("RuntimeException",[],dataSyntax()),[astr(alabel="message")],[],alabel="IO")*/ + public final io.usethesource.vallang.type.Type RuntimeException_InvalidUseOfLocation_str; /*acons(aadt("RuntimeException",[],dataSyntax()),[astr(alabel="message")],[],alabel="InvalidUseOfLocation")*/ + public final io.usethesource.vallang.type.Type RuntimeException_PermissionDenied_; /*acons(aadt("RuntimeException",[],dataSyntax()),[],[],alabel="PermissionDenied")*/ + public final io.usethesource.vallang.type.Type $T20; /*alist(aloc(),alabel="classpath")*/ + public final io.usethesource.vallang.type.Type RuntimeException_JavaCompilation_str_int_int_str_list_loc; /*acons(aadt("RuntimeException",[],dataSyntax()),[astr(alabel="message"),aint(alabel="line"),aint(alabel="column"),astr(alabel="source"),alist(aloc(),alabel="classpath")],[],alabel="JavaCompilation")*/ + public final io.usethesource.vallang.type.Type RuntimeException_ArithmeticException_str; /*acons(aadt("RuntimeException",[],dataSyntax()),[astr(alabel="message")],[],alabel="ArithmeticException")*/ + public final io.usethesource.vallang.type.Type RuntimeException_NoSuchElement_value; /*acons(aadt("RuntimeException",[],dataSyntax()),[avalue(alabel="v")],[],alabel="NoSuchElement")*/ + public final io.usethesource.vallang.type.Type RuntimeException_IndexOutOfBounds_int; /*acons(aadt("RuntimeException",[],dataSyntax()),[aint(alabel="index")],[],alabel="IndexOutOfBounds")*/ + public final io.usethesource.vallang.type.Type RuntimeException_CallFailed_list_value; /*acons(aadt("RuntimeException",[],dataSyntax()),[alist(avalue(),alabel="arguments")],[],alabel="CallFailed")*/ + public final io.usethesource.vallang.type.Type RuntimeException_ParseError_loc; /*acons(aadt("RuntimeException",[],dataSyntax()),[aloc(alabel="location")],[],alabel="ParseError")*/ + public final io.usethesource.vallang.type.Type RuntimeException_ImplodeError_str; /*acons(aadt("RuntimeException",[],dataSyntax()),[astr(alabel="message")],[],alabel="ImplodeError")*/ + public final io.usethesource.vallang.type.Type RuntimeException_NoSuchKey_value; /*acons(aadt("RuntimeException",[],dataSyntax()),[avalue(alabel="key")],[],alabel="NoSuchKey")*/ + public final io.usethesource.vallang.type.Type RuntimeException_JavaException_str_str; /*acons(aadt("RuntimeException",[],dataSyntax()),[astr(alabel="class"),astr(alabel="message")],[],alabel="JavaException")*/ + public final io.usethesource.vallang.type.Type RuntimeException_DateTimePrintingError_str; /*acons(aadt("RuntimeException",[],dataSyntax()),[astr(alabel="message")],[],alabel="DateTimePrintingError")*/ + public final io.usethesource.vallang.type.Type RuntimeException_AssertionFailed_; /*acons(aadt("RuntimeException",[],dataSyntax()),[],[],alabel="AssertionFailed")*/ + public final io.usethesource.vallang.type.Type RuntimeException_SchemeNotSupported_loc; /*acons(aadt("RuntimeException",[],dataSyntax()),[aloc(alabel="location")],[],alabel="SchemeNotSupported")*/ + public final io.usethesource.vallang.type.Type RuntimeException_NoSuchField_str; /*acons(aadt("RuntimeException",[],dataSyntax()),[astr(alabel="name")],[],alabel="NoSuchField")*/ + public final io.usethesource.vallang.type.Type RuntimeException_InvalidUseOfDateTime_str; /*acons(aadt("RuntimeException",[],dataSyntax()),[astr(alabel="message")],[],alabel="InvalidUseOfDateTime")*/ + public final io.usethesource.vallang.type.Type RuntimeException_UnavailableInformation_; /*acons(aadt("RuntimeException",[],dataSyntax()),[],[],alabel="UnavailableInformation")*/ + public final io.usethesource.vallang.type.Type $T14; /*aset(aloc(),alabel="locs")*/ + public final io.usethesource.vallang.type.Type RuntimeException_Ambiguity_loc_str_str; /*acons(aadt("RuntimeException",[],dataSyntax()),[aloc(alabel="location"),astr(alabel="nonterminal"),astr(alabel="sentence")],[],alabel="Ambiguity")*/ + public final io.usethesource.vallang.type.Type RuntimeException_DateTimeParsingError_str; /*acons(aadt("RuntimeException",[],dataSyntax()),[astr(alabel="message")],[],alabel="DateTimeParsingError")*/ + public final io.usethesource.vallang.type.Type RuntimeException_PermissionDenied_str; /*acons(aadt("RuntimeException",[],dataSyntax()),[astr(alabel="message")],[],alabel="PermissionDenied")*/ + public final io.usethesource.vallang.type.Type RuntimeException_InvalidUseOfTime_str; /*acons(aadt("RuntimeException",[],dataSyntax()),[astr(alabel="message")],[],alabel="InvalidUseOfTime")*/ + public final io.usethesource.vallang.type.Type RuntimeException_IllegalArgument_value_str; /*acons(aadt("RuntimeException",[],dataSyntax()),[avalue(alabel="v"),astr(alabel="message")],[],alabel="IllegalArgument")*/ + public final io.usethesource.vallang.type.Type RuntimeException_InvalidUseOfDate_str; /*acons(aadt("RuntimeException",[],dataSyntax()),[astr(alabel="message")],[],alabel="InvalidUseOfDate")*/ + public final io.usethesource.vallang.type.Type RuntimeException_IllegalArgument_value; /*acons(aadt("RuntimeException",[],dataSyntax()),[avalue(alabel="v")],[],alabel="IllegalArgument")*/ + public final io.usethesource.vallang.type.Type RuntimeException_PathNotFound_loc; /*acons(aadt("RuntimeException",[],dataSyntax()),[aloc(alabel="location")],[],alabel="PathNotFound")*/ + public final io.usethesource.vallang.type.Type RuntimeException_AssertionFailed_str; /*acons(aadt("RuntimeException",[],dataSyntax()),[astr(alabel="label")],[],alabel="AssertionFailed")*/ + public final io.usethesource.vallang.type.Type RuntimeException_ModuleNotFound_str; /*acons(aadt("RuntimeException",[],dataSyntax()),[astr(alabel="name")],[],alabel="ModuleNotFound")*/ + public final io.usethesource.vallang.type.Type RuntimeException_PathNotFound_set_loc; /*acons(aadt("RuntimeException",[],dataSyntax()),[aset(aloc(),alabel="locs")],[],alabel="PathNotFound")*/ + public final io.usethesource.vallang.type.Type RuntimeException_JavaException_str_str_RuntimeException; /*acons(aadt("RuntimeException",[],dataSyntax()),[astr(alabel="class"),astr(alabel="message"),aadt("RuntimeException",[],dataSyntax(),alabel="cause")],[],alabel="JavaException")*/ + public final io.usethesource.vallang.type.Type RuntimeException_EmptyMap_; /*acons(aadt("RuntimeException",[],dataSyntax()),[],[],alabel="EmptyMap")*/ + public final io.usethesource.vallang.type.Type RuntimeException_Java_str_str_RuntimeException; /*acons(aadt("RuntimeException",[],dataSyntax()),[astr(alabel="class"),astr(alabel="message"),aadt("RuntimeException",[],dataSyntax(),alabel="cause")],[],alabel="Java")*/ + + public $Exception(RascalExecutionContext rex){ + this(rex, null); + } + + public $Exception(RascalExecutionContext rex, Object extended){ + super(rex); + this.$me = extended == null ? this : ($Exception_$I)extended; + ModuleStore mstore = rex.getModuleStore(); + mstore.put(rascal.$Exception.class, this); + + + + + + + $constants = readBinaryConstantsFile(this.getClass(), "rascal/$Exception.constants", 0, "d751713988987e9331980363e24189ce"); + ADT_RuntimeException = $adt("RuntimeException"); + $T6 = $TF.valueType(); + $T1 = $TF.stringType(); + $T12 = $TF.stringType(); + $T8 = $TF.stringType(); + $T15 = $TF.stringType(); + $T18 = $TF.integerType(); + $T9 = $TF.integerType(); + $T13 = $TF.sourceLocationType(); + $T5 = $TF.valueType(); + $T16 = $TF.stringType(); + $T19 = $TF.stringType(); + $T0 = $TF.sourceLocationType(); + $T10 = $TF.valueType(); + $T3 = $TF.stringType(); + $T21 = $TF.stringType(); + $T17 = $TF.integerType(); + $T2 = $TF.valueType(); + $T4 = $TF.valueType(); + $T7 = $TF.stringType(); + $T11 = $TF.listType($T10); + $T20 = $TF.listType($T13); + $T14 = $TF.setType($T13); + RuntimeException_IllegalTypeArgument_str_str = $TF.constructor($TS, ADT_RuntimeException, "IllegalTypeArgument", $TF.stringType(), "cls", $TF.stringType(), "message"); + RuntimeException_Timeout_ = $TF.constructor($TS, ADT_RuntimeException, "Timeout"); + RuntimeException_NoSuchAnnotation_str = $TF.constructor($TS, ADT_RuntimeException, "NoSuchAnnotation", $TF.stringType(), "label"); + RuntimeException_EmptyList_ = $TF.constructor($TS, ADT_RuntimeException, "EmptyList"); + RuntimeException_NoParent_loc = $TF.constructor($TS, ADT_RuntimeException, "NoParent", $TF.sourceLocationType(), "location"); + RuntimeException_Java_str_str = $TF.constructor($TS, ADT_RuntimeException, "Java", $TF.stringType(), "class", $TF.stringType(), "message"); + RuntimeException_MultipleKey_value_value_value = $TF.constructor($TS, ADT_RuntimeException, "MultipleKey", $TF.valueType(), "key", $TF.valueType(), "first", $TF.valueType(), "second"); + RuntimeException_InvalidURI_str = $TF.constructor($TS, ADT_RuntimeException, "InvalidURI", $TF.stringType(), "uri"); + RuntimeException_NoMainFunction_ = $TF.constructor($TS, ADT_RuntimeException, "NoMainFunction"); + RuntimeException_StackOverflow_ = $TF.constructor($TS, ADT_RuntimeException, "StackOverflow"); + RuntimeException_MalFormedURI_str = $TF.constructor($TS, ADT_RuntimeException, "MalFormedURI", $TF.stringType(), "uri"); + RuntimeException_NotImplemented_str = $TF.constructor($TS, ADT_RuntimeException, "NotImplemented", $TF.stringType(), "message"); + RuntimeException_EmptySet_ = $TF.constructor($TS, ADT_RuntimeException, "EmptySet"); + RuntimeException_IllegalArgument_ = $TF.constructor($TS, ADT_RuntimeException, "IllegalArgument"); + RuntimeException_RegExpSyntaxError_str = $TF.constructor($TS, ADT_RuntimeException, "RegExpSyntaxError", $TF.stringType(), "message"); + RuntimeException_IO_str = $TF.constructor($TS, ADT_RuntimeException, "IO", $TF.stringType(), "message"); + RuntimeException_InvalidUseOfLocation_str = $TF.constructor($TS, ADT_RuntimeException, "InvalidUseOfLocation", $TF.stringType(), "message"); + RuntimeException_PermissionDenied_ = $TF.constructor($TS, ADT_RuntimeException, "PermissionDenied"); + RuntimeException_JavaCompilation_str_int_int_str_list_loc = $TF.constructor($TS, ADT_RuntimeException, "JavaCompilation", $TF.stringType(), "message", $TF.integerType(), "line", $TF.integerType(), "column", $TF.stringType(), "source", $TF.listType($T13), "classpath"); + RuntimeException_ArithmeticException_str = $TF.constructor($TS, ADT_RuntimeException, "ArithmeticException", $TF.stringType(), "message"); + RuntimeException_NoSuchElement_value = $TF.constructor($TS, ADT_RuntimeException, "NoSuchElement", $TF.valueType(), "v"); + RuntimeException_IndexOutOfBounds_int = $TF.constructor($TS, ADT_RuntimeException, "IndexOutOfBounds", $TF.integerType(), "index"); + RuntimeException_CallFailed_list_value = $TF.constructor($TS, ADT_RuntimeException, "CallFailed", $TF.listType($T10), "arguments"); + RuntimeException_ParseError_loc = $TF.constructor($TS, ADT_RuntimeException, "ParseError", $TF.sourceLocationType(), "location"); + RuntimeException_ImplodeError_str = $TF.constructor($TS, ADT_RuntimeException, "ImplodeError", $TF.stringType(), "message"); + RuntimeException_NoSuchKey_value = $TF.constructor($TS, ADT_RuntimeException, "NoSuchKey", $TF.valueType(), "key"); + RuntimeException_JavaException_str_str = $TF.constructor($TS, ADT_RuntimeException, "JavaException", $TF.stringType(), "class", $TF.stringType(), "message"); + RuntimeException_DateTimePrintingError_str = $TF.constructor($TS, ADT_RuntimeException, "DateTimePrintingError", $TF.stringType(), "message"); + RuntimeException_AssertionFailed_ = $TF.constructor($TS, ADT_RuntimeException, "AssertionFailed"); + RuntimeException_SchemeNotSupported_loc = $TF.constructor($TS, ADT_RuntimeException, "SchemeNotSupported", $TF.sourceLocationType(), "location"); + RuntimeException_NoSuchField_str = $TF.constructor($TS, ADT_RuntimeException, "NoSuchField", $TF.stringType(), "name"); + RuntimeException_InvalidUseOfDateTime_str = $TF.constructor($TS, ADT_RuntimeException, "InvalidUseOfDateTime", $TF.stringType(), "message"); + RuntimeException_UnavailableInformation_ = $TF.constructor($TS, ADT_RuntimeException, "UnavailableInformation"); + RuntimeException_Ambiguity_loc_str_str = $TF.constructor($TS, ADT_RuntimeException, "Ambiguity", $TF.sourceLocationType(), "location", $TF.stringType(), "nonterminal", $TF.stringType(), "sentence"); + RuntimeException_DateTimeParsingError_str = $TF.constructor($TS, ADT_RuntimeException, "DateTimeParsingError", $TF.stringType(), "message"); + RuntimeException_PermissionDenied_str = $TF.constructor($TS, ADT_RuntimeException, "PermissionDenied", $TF.stringType(), "message"); + RuntimeException_InvalidUseOfTime_str = $TF.constructor($TS, ADT_RuntimeException, "InvalidUseOfTime", $TF.stringType(), "message"); + RuntimeException_IllegalArgument_value_str = $TF.constructor($TS, ADT_RuntimeException, "IllegalArgument", $TF.valueType(), "v", $TF.stringType(), "message"); + RuntimeException_InvalidUseOfDate_str = $TF.constructor($TS, ADT_RuntimeException, "InvalidUseOfDate", $TF.stringType(), "message"); + RuntimeException_IllegalArgument_value = $TF.constructor($TS, ADT_RuntimeException, "IllegalArgument", $TF.valueType(), "v"); + RuntimeException_PathNotFound_loc = $TF.constructor($TS, ADT_RuntimeException, "PathNotFound", $TF.sourceLocationType(), "location"); + RuntimeException_AssertionFailed_str = $TF.constructor($TS, ADT_RuntimeException, "AssertionFailed", $TF.stringType(), "label"); + RuntimeException_ModuleNotFound_str = $TF.constructor($TS, ADT_RuntimeException, "ModuleNotFound", $TF.stringType(), "name"); + RuntimeException_PathNotFound_set_loc = $TF.constructor($TS, ADT_RuntimeException, "PathNotFound", $TF.setType($T13), "locs"); + RuntimeException_JavaException_str_str_RuntimeException = $TF.constructor($TS, ADT_RuntimeException, "JavaException", $TF.stringType(), "class", $TF.stringType(), "message", ADT_RuntimeException, "cause"); + RuntimeException_EmptyMap_ = $TF.constructor($TS, ADT_RuntimeException, "EmptyMap"); + RuntimeException_Java_str_str_RuntimeException = $TF.constructor($TS, ADT_RuntimeException, "Java", $TF.stringType(), "class", $TF.stringType(), "message", ADT_RuntimeException, "cause"); + + + + } + + + public static void main(String[] args) { + throw new RuntimeException("No function `main` found in Rascal module `Exception`"); + } +} \ No newline at end of file diff --git a/src/rascal/$Exception.tpl b/src/rascal/$Exception.tpl new file mode 100644 index 00000000000..2be802e2ad5 Binary files /dev/null and b/src/rascal/$Exception.tpl differ diff --git a/src/rascal/$Exception_$I.java b/src/rascal/$Exception_$I.java new file mode 100644 index 00000000000..147600106ad --- /dev/null +++ b/src/rascal/$Exception_$I.java @@ -0,0 +1,8 @@ +package rascal; +import io.usethesource.vallang.*; +import org.rascalmpl.runtime.function.*; + +@SuppressWarnings("unused") +public interface $Exception_$I { + +} \ No newline at end of file diff --git a/src/rascal/$Grammar.constants b/src/rascal/$Grammar.constants new file mode 100644 index 00000000000..de32b5392d7 Binary files /dev/null and b/src/rascal/$Grammar.constants differ diff --git a/src/rascal/$Grammar.java b/src/rascal/$Grammar.java new file mode 100644 index 00000000000..5da616efcf4 --- /dev/null +++ b/src/rascal/$Grammar.java @@ -0,0 +1,1063 @@ +package rascal; +import java.io.PrintWriter; +import java.io.StringWriter; +import java.io.InputStreamReader; +import java.io.PrintWriter; +import java.util.*; +import java.util.regex.Matcher; +import io.usethesource.vallang.*; +import io.usethesource.vallang.type.*; +import org.rascalmpl.runtime.*; +import org.rascalmpl.runtime.RascalExecutionContext; +import org.rascalmpl.runtime.function.*; +import org.rascalmpl.runtime.traverse.*; +import org.rascalmpl.runtime.utils.*; +import org.rascalmpl.exceptions.RuntimeExceptionFactory; +import org.rascalmpl.exceptions.Throw; +import org.rascalmpl.runtime.RascalExecutionContext; +import org.rascalmpl.interpreter.control_exceptions.Filtered; +import org.rascalmpl.types.NonTerminalType; +import org.rascalmpl.types.RascalTypeFactory; +import org.rascalmpl.util.ExpiringFunctionResultCache; +import org.rascalmpl.values.RascalValueFactory; +import org.rascalmpl.values.ValueFactoryFactory; +import org.rascalmpl.values.parsetrees.ITree; +import org.rascalmpl.values.parsetrees.TreeAdapter; + + + +@SuppressWarnings({"unused","unchecked","deprecation"}) +public class $Grammar + extends + org.rascalmpl.runtime.$RascalModule + implements + rascal.$ParseTree_$I, + rascal.$Type_$I, + rascal.$List_$I, + rascal.$Grammar_$I, + rascal.$Message_$I { + + private final $Grammar_$I $me; + private final IList $constants; + + + public final rascal.$Message M_Message; + public final rascal.$ParseTree M_ParseTree; + public final rascal.$Type M_Type; + public final rascal.$List M_List; + + + + public final io.usethesource.vallang.type.Type $T7; /*avalue()*/ + public final io.usethesource.vallang.type.Type $T14; /*aint(alabel="index")*/ + public final io.usethesource.vallang.type.Type $T10; /*aparameter("U",avalue(),closed=false)*/ + public final io.usethesource.vallang.type.Type $T12; /*astr()*/ + public final io.usethesource.vallang.type.Type $T15; /*astr(alabel="main")*/ + public final io.usethesource.vallang.type.Type $T8; /*aparameter("T",avalue(),closed=false)*/ + public final io.usethesource.vallang.type.Type $T16; /*astr(alabel="name")*/ + public final io.usethesource.vallang.type.Type $T18; /*aset(astr(),alabel="imports")*/ + public final io.usethesource.vallang.type.Type ADT_Item; /*aadt("Item",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_GrammarModule; /*aadt("GrammarModule",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type $T19; /*aset(astr(),alabel="extends")*/ + public final io.usethesource.vallang.type.Type GrammarModule_module_str_set_str_set_str_Grammar; /*acons(aadt("GrammarModule",[],dataSyntax()),[astr(alabel="name"),aset(astr(),alabel="imports"),aset(astr(),alabel="extends"),aadt("Grammar",[],dataSyntax(),alabel="grammar")],[],alabel="module")*/ + public final io.usethesource.vallang.type.Type ADT_LocationType; /*aadt("LocationType",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type $T9; /*areified(aparameter("U",avalue(),closed=false))*/ + public final io.usethesource.vallang.type.Type ADT_Tree; /*aadt("Tree",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type $T13; /*aparameter("T",aadt("Tree",[],dataSyntax()),closed=true)*/ + public final io.usethesource.vallang.type.Type ADT_Exception; /*aadt("Exception",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type $T4; /*amap(aadt("Symbol",[],dataSyntax(),alabel="sort"),aadt("Production",[],dataSyntax(),alabel="def"))*/ + public final io.usethesource.vallang.type.Type ADT_Grammar; /*aadt("Grammar",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Symbol; /*aadt("Symbol",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type $T20; /*aset(aadt("Symbol",[],dataSyntax()),alabel="starts")*/ + public final io.usethesource.vallang.type.Type $T21; /*amap(aadt("Symbol",[],dataSyntax(),alabel="sort"),aadt("Production",[],dataSyntax(),alabel="def"),alabel="rules")*/ + public final io.usethesource.vallang.type.Type Grammar_grammar_set_Symbol_map_Symbol_Production; /*acons(aadt("Grammar",[],dataSyntax()),[aset(aadt("Symbol",[],dataSyntax()),alabel="starts"),amap(aadt("Symbol",[],dataSyntax(),alabel="sort"),aadt("Production",[],dataSyntax(),alabel="def"),alabel="rules")],[],alabel="grammar")*/ + public final io.usethesource.vallang.type.Type ADT_Associativity; /*aadt("Associativity",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type $T11; /*alist(aparameter("T",avalue(),closed=false))*/ + public final io.usethesource.vallang.type.Type ADT_GrammarDefinition; /*aadt("GrammarDefinition",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Attr; /*aadt("Attr",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Production; /*aadt("Production",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type $T23; /*aset(astr())*/ + public final io.usethesource.vallang.type.Type ADT_LocationChangeType; /*aadt("LocationChangeType",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type $T1; /*aparameter("T",aadt("Tree",[],dataSyntax()),closed=false)*/ + public final io.usethesource.vallang.type.Type $T0; /*areified(aparameter("T",aadt("Tree",[],dataSyntax()),closed=false))*/ + public final io.usethesource.vallang.type.Type $T17; /*amap(astr(alabel="name"),aadt("GrammarModule",[],dataSyntax(),alabel="mod"),alabel="modules")*/ + public final io.usethesource.vallang.type.Type GrammarDefinition_definition_str_map_str_GrammarModule; /*acons(aadt("GrammarDefinition",[],dataSyntax()),[astr(alabel="main"),amap(astr(alabel="name"),aadt("GrammarModule",[],dataSyntax(),alabel="mod"),alabel="modules")],[],alabel="definition")*/ + public final io.usethesource.vallang.type.Type ADT_RuntimeException; /*aadt("RuntimeException",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_LocationChangeEvent; /*aadt("LocationChangeEvent",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type $T2; /*aset(aadt("Symbol",[],dataSyntax()))*/ + public final io.usethesource.vallang.type.Type $T5; /*alist(aadt("Symbol",[],dataSyntax()))*/ + public final io.usethesource.vallang.type.Type Item_item_Production_int; /*acons(aadt("Item",[],dataSyntax()),[aadt("Production",[],dataSyntax(),alabel="production"),aint(alabel="index")],[],alabel="item")*/ + public final io.usethesource.vallang.type.Type $T6; /*areified(aparameter("T",avalue(),closed=false))*/ + public final io.usethesource.vallang.type.Type $T22; /*alist(aadt("Production",[],dataSyntax()))*/ + public final io.usethesource.vallang.type.Type ADT_CharRange; /*aadt("CharRange",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type $T3; /*aset(aadt("Production",[],dataSyntax()))*/ + public final io.usethesource.vallang.type.Type ADT_Condition; /*aadt("Condition",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_TreeSearchResult_1; /*aadt("TreeSearchResult",[aparameter("T",aadt("Tree",[],dataSyntax()),closed=true)],dataSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Message; /*aadt("Message",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_IOCapability; /*aadt("IOCapability",[],dataSyntax())*/ + + public $Grammar(RascalExecutionContext rex){ + this(rex, null); + } + + public $Grammar(RascalExecutionContext rex, Object extended){ + super(rex); + this.$me = extended == null ? this : ($Grammar_$I)extended; + ModuleStore mstore = rex.getModuleStore(); + mstore.put(rascal.$Grammar.class, this); + + + + M_Message = mstore.extendModule(rascal.$Message.class, rex, rascal.$Message::new, $me); + M_ParseTree = mstore.extendModule(rascal.$ParseTree.class, rex, rascal.$ParseTree::new, $me); + M_Type = mstore.extendModule(rascal.$Type.class, rex, rascal.$Type::new, $me); + M_List = mstore.extendModule(rascal.$List.class, rex, rascal.$List::new, $me); + + + $TS.importStore(M_Message.$TS); + $TS.importStore(M_ParseTree.$TS); + $TS.importStore(M_Type.$TS); + $TS.importStore(M_List.$TS); + + $constants = readBinaryConstantsFile(this.getClass(), "rascal/$Grammar.constants", 3, "b8f08e6a04df5bb64c3002b55ef54ea0"); + ADT_Item = $adt("Item"); + ADT_GrammarModule = $adt("GrammarModule"); + ADT_LocationType = $adt("LocationType"); + ADT_Tree = $adt("Tree"); + ADT_Exception = $adt("Exception"); + ADT_Grammar = $adt("Grammar"); + ADT_Symbol = $adt("Symbol"); + ADT_Associativity = $adt("Associativity"); + ADT_GrammarDefinition = $adt("GrammarDefinition"); + ADT_Attr = $adt("Attr"); + ADT_Production = $adt("Production"); + ADT_LocationChangeType = $adt("LocationChangeType"); + ADT_RuntimeException = $adt("RuntimeException"); + ADT_LocationChangeEvent = $adt("LocationChangeEvent"); + ADT_CharRange = $adt("CharRange"); + ADT_Condition = $adt("Condition"); + ADT_Message = $adt("Message"); + ADT_IOCapability = $adt("IOCapability"); + $T7 = $TF.valueType(); + $T14 = $TF.integerType(); + $T10 = $TF.parameterType("U", $T7); + $T12 = $TF.stringType(); + $T15 = $TF.stringType(); + $T8 = $TF.parameterType("T", $T7); + $T16 = $TF.stringType(); + $T18 = $TF.setType($T12); + $T19 = $TF.setType($T12); + $T9 = $RTF.reifiedType($T10); + $T13 = $TF.parameterType("T", ADT_Tree); + $T4 = $TF.mapType(ADT_Symbol, "sort", ADT_Production, "def"); + $T20 = $TF.setType(ADT_Symbol); + $T21 = $TF.mapType(ADT_Symbol, "sort", ADT_Production, "def"); + $T11 = $TF.listType($T8); + $T23 = $TF.setType($T12); + $T1 = $TF.parameterType("T", ADT_Tree); + $T0 = $RTF.reifiedType($T1); + $T17 = $TF.mapType($T16, "name", ADT_GrammarModule, "mod"); + $T2 = $TF.setType(ADT_Symbol); + $T5 = $TF.listType(ADT_Symbol); + $T6 = $RTF.reifiedType($T8); + $T22 = $TF.listType(ADT_Production); + $T3 = $TF.setType(ADT_Production); + ADT_TreeSearchResult_1 = $parameterizedAdt("TreeSearchResult", new Type[] { $T13 }); + GrammarModule_module_str_set_str_set_str_Grammar = $TF.constructor($TS, ADT_GrammarModule, "module", $TF.stringType(), "name", $TF.setType($T12), "imports", $TF.setType($T12), "extends", ADT_Grammar, "grammar"); + Grammar_grammar_set_Symbol_map_Symbol_Production = $TF.constructor($TS, ADT_Grammar, "grammar", $TF.setType(ADT_Symbol), "starts", $TF.mapType(ADT_Symbol, "sort", ADT_Production, "def"), "rules"); + GrammarDefinition_definition_str_map_str_GrammarModule = $TF.constructor($TS, ADT_GrammarDefinition, "definition", $TF.stringType(), "main", $TF.mapType($T16, "name", ADT_GrammarModule, "mod"), "modules"); + Item_item_Production_int = $TF.constructor($TS, ADT_Item, "item", M_ParseTree.ADT_Production, "production", $TF.integerType(), "index"); + + + + } + public IList addLabels(IValue $P0, IValue $P1){ // Generated by Resolver + return (IList) M_Type.addLabels($P0, $P1); + } + public IBool sameType(IValue $P0, IValue $P1){ // Generated by Resolver + return (IBool) M_ParseTree.sameType($P0, $P1); + } + public IBool isAliasType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isAliasType($P0); + } + public IString intercalate(IValue $P0, IValue $P1){ // Generated by Resolver + return (IString) M_List.intercalate($P0, $P1); + } + public IValue head(IValue $P0){ // Generated by Resolver + return (IValue) M_List.head($P0); + } + public IList head(IValue $P0, IValue $P1){ // Generated by Resolver + return (IList) M_List.head($P0, $P1); + } + public IInteger size(IValue $P0){ // Generated by Resolver + return (IInteger) M_List.size($P0); + } + public IBool isStrType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isStrType($P0); + } + public IMap toMap(IValue $P0){ // Generated by Resolver + return (IMap) M_List.toMap($P0); + } + public IConstructor choice(IValue $P0, IValue $P1){ // Generated by Resolver + return (IConstructor) M_Type.choice($P0, $P1); + } + public IBool isADTType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isADTType($P0); + } + public IBool isValueType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isValueType($P0); + } + public IList mapper(IValue $P0, IValue $P1){ // Generated by Resolver + return (IList) M_List.mapper($P0, $P1); + } + public IBool isListType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isListType($P0); + } + public IBool isRealType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isRealType($P0); + } + public IList reverse(IValue $P0){ // Generated by Resolver + return (IList) M_List.reverse($P0); + } + public IBool isTypeVar(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isTypeVar($P0); + } + public TypedFunctionInstance2 firstAmbiguityFinder(IValue $P0, java.util.Map $kwpActuals){ // Generated by Resolver + return (TypedFunctionInstance2) M_ParseTree.firstAmbiguityFinder($P0, $kwpActuals); + } + public IBool isEmpty(IValue $P0){ // Generated by Resolver + return (IBool) M_List.isEmpty($P0); + } + public IList remove(IValue $P0, IValue $P1){ // Generated by Resolver + return (IList) M_List.remove($P0, $P1); + } + public IValue max(IValue $P0){ // Generated by Resolver + return (IValue) M_List.max($P0); + } + public IConstructor priority(IValue $P0, IValue $P1){ // Generated by Resolver + return (IConstructor) M_ParseTree.priority($P0, $P1); + } + public IValue getFirstFrom(IValue $P0){ // Generated by Resolver + return (IValue) M_List.getFirstFrom($P0); + } + public IMap distribution(IValue $P0){ // Generated by Resolver + return (IMap) M_List.distribution($P0); + } + public TypedFunctionInstance2 loadParser(IValue $P0, IValue $P1, java.util.Map $kwpActuals){ // Generated by Resolver + return (TypedFunctionInstance2) M_ParseTree.loadParser($P0, $P1, $kwpActuals); + } + public IString printSymbol(IValue $P0, IValue $P1){ // Generated by Resolver + return (IString) M_ParseTree.printSymbol($P0, $P1); + } + public IBool isNodeType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isNodeType($P0); + } + public IConstructor grammar(IValue $P0){ // Generated by Resolver + IConstructor $result = null; + Type $P0Type = $P0.getType(); + if($isSubtypeOf($P0Type,$T0)){ + $result = (IConstructor)Grammar_grammar$63f051bdb3ded668((IConstructor) $P0); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0)); + } + public IConstructor grammar(IValue $P0, IValue $P1){ // Generated by Resolver + IConstructor $result = null; + Type $P0Type = $P0.getType(); + Type $P1Type = $P1.getType(); + if($isSubtypeOf($P0Type,$T2) && $isSubtypeOf($P1Type,$T3)){ + $result = (IConstructor)Grammar_grammar$6b8efb64875ca243((ISet) $P0, (ISet) $P1); + if($result != null) return $result; + } + if($isSubtypeOf($P0Type,$T2) && $isSubtypeOf($P1Type,$T4)){ + return $RVF.constructor(Grammar_grammar_set_Symbol_map_Symbol_Production, new IValue[]{(ISet) $P0, (IMap) $P1}); + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0, $P1)); + } + public IBool isSorted(IValue $P0, java.util.Map $kwpActuals){ // Generated by Resolver + return (IBool) M_List.isSorted($P0, $kwpActuals); + } + public IList take(IValue $P0, IValue $P1){ // Generated by Resolver + return (IList) M_List.take($P0, $P1); + } + public ISet toSet(IValue $P0){ // Generated by Resolver + return (ISet) M_List.toSet($P0); + } + public IBool isReifiedType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isReifiedType($P0); + } + public ITuple takeOneFrom(IValue $P0){ // Generated by Resolver + return (ITuple) M_List.takeOneFrom($P0); + } + public ISet dependencies(IValue $P0){ // Generated by Resolver + ISet $result = null; + Type $P0Type = $P0.getType(); + if($isSubtypeOf($P0Type, ADT_GrammarDefinition)){ + $result = (ISet)Grammar_dependencies$37f6dca76704bff7((IConstructor) $P0); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0)); + } + public IInteger indexOf(IValue $P0, IValue $P1){ // Generated by Resolver + return (IInteger) M_List.indexOf($P0, $P1); + } + public IBool isRelType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isRelType($P0); + } + public ITuple unzip2(IValue $P0){ // Generated by Resolver + return (ITuple) M_List.unzip2($P0); + } + public IBool isConstructorType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isConstructorType($P0); + } + public IConstructor var_func(IValue $P0, IValue $P1, IValue $P2){ // Generated by Resolver + return (IConstructor) M_Type.var_func($P0, $P1, $P2); + } + public IBool equivalent(IValue $P0, IValue $P1){ // Generated by Resolver + return (IBool) M_Type.equivalent($P0, $P1); + } + public IList takeWhile(IValue $P0, IValue $P1){ // Generated by Resolver + return (IList) M_List.takeWhile($P0, $P1); + } + public INumber sum(IValue $P0){ // Generated by Resolver + return (INumber) M_List.sum($P0); + } + public IList addParamLabels(IValue $P0, IValue $P1){ // Generated by Resolver + return (IList) M_Type.addParamLabels($P0, $P1); + } + public IList delete(IValue $P0, IValue $P1){ // Generated by Resolver + return (IList) M_List.delete($P0, $P1); + } + public IBool keepParams(IValue $P0, IValue $P1){ // Generated by Resolver + return (IBool) M_Type.keepParams($P0, $P1); + } + public IBool isListRelType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isListRelType($P0); + } + public ITuple unzip3(IValue $P0){ // Generated by Resolver + return (ITuple) M_List.unzip3($P0); + } + public IBool eq(IValue $P0, IValue $P1){ // Generated by Resolver + return (IBool) M_Type.eq($P0, $P1); + } + public IList insertAt(IValue $P0, IValue $P1, IValue $P2){ // Generated by Resolver + return (IList) M_List.insertAt($P0, $P1, $P2); + } + public IBool isMapType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isMapType($P0); + } + public IValue reducer(IValue $P0, IValue $P1, IValue $P2){ // Generated by Resolver + return (IValue) M_List.reducer($P0, $P1, $P2); + } + public IString toString(IValue $P0){ // Generated by Resolver + return (IString) M_List.toString($P0); + } + public ISet permutations(IValue $P0){ // Generated by Resolver + return (ISet) M_List.permutations($P0); + } + public TypedFunctionInstance3 loadParsers(IValue $P0, java.util.Map $kwpActuals){ // Generated by Resolver + return (TypedFunctionInstance3) M_ParseTree.loadParsers($P0, $kwpActuals); + } + public IBool isBoolType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isBoolType($P0); + } + public ISet imports(IValue $P0){ // Generated by Resolver + ISet $result = null; + Type $P0Type = $P0.getType(); + if($isSubtypeOf($P0Type, ADT_GrammarDefinition)){ + $result = (ISet)Grammar_imports$8df7b944feeb651c((IConstructor) $P0); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0)); + } + public IValue make(IValue $P0, IValue $P1, IValue $P2){ // Generated by Resolver + return (IValue) M_Type.make($P0, $P1, $P2); + } + public IValue make(IValue $P0, IValue $P1, IValue $P2, IValue $P3){ // Generated by Resolver + return (IValue) M_Type.make($P0, $P1, $P2, $P3); + } + public IList drop(IValue $P0, IValue $P1){ // Generated by Resolver + return (IList) M_List.drop($P0, $P1); + } + public IValue elementAt(IValue $P0, IValue $P1){ // Generated by Resolver + return (IValue) M_List.elementAt($P0, $P1); + } + public IBool isLocType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isLocType($P0); + } + public IValue implode(IValue $P0, IValue $P1){ // Generated by Resolver + return (IValue) M_ParseTree.implode($P0, $P1); + } + public TypedFunctionInstance3 firstAmbiguityFinders(IValue $P0, java.util.Map $kwpActuals){ // Generated by Resolver + return (TypedFunctionInstance3) M_ParseTree.firstAmbiguityFinders($P0, $kwpActuals); + } + public IList upTill(IValue $P0){ // Generated by Resolver + return (IList) M_List.upTill($P0); + } + public IList tail(IValue $P0){ // Generated by Resolver + return (IList) M_List.tail($P0); + } + public IList tail(IValue $P0, IValue $P1){ // Generated by Resolver + return (IList) M_List.tail($P0, $P1); + } + public ITuple headTail(IValue $P0){ // Generated by Resolver + return (ITuple) M_List.headTail($P0); + } + public IList zip2(IValue $P0, IValue $P1){ // Generated by Resolver + return (IList) M_List.zip2($P0, $P1); + } + public ITuple pop(IValue $P0){ // Generated by Resolver + return (ITuple) M_List.pop($P0); + } + public IConstructor typeOf(IValue $P0){ // Generated by Resolver + return (IConstructor) M_Type.typeOf($P0); + } + public IConstructor treeAt(IValue $P0, IValue $P1, IValue $P2){ // Generated by Resolver + return (IConstructor) M_ParseTree.treeAt($P0, $P1, $P2); + } + public IMap toMapUnique(IValue $P0){ // Generated by Resolver + return (IMap) M_List.toMapUnique($P0); + } + public IList index(IValue $P0){ // Generated by Resolver + return (IList) M_List.index($P0); + } + public IBool allLabeled(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.allLabeled($P0); + } + public IValue min(IValue $P0){ // Generated by Resolver + return (IValue) M_List.min($P0); + } + public IList prefix(IValue $P0){ // Generated by Resolver + return (IList) M_List.prefix($P0); + } + public IList zip3(IValue $P0, IValue $P1, IValue $P2){ // Generated by Resolver + return (IList) M_List.zip3($P0, $P1, $P2); + } + public IList slice(IValue $P0, IValue $P1, IValue $P2){ // Generated by Resolver + return (IList) M_List.slice($P0, $P1, $P2); + } + public IConstructor compose(IValue $P0, IValue $P1){ // Generated by Resolver + IConstructor $result = null; + Type $P0Type = $P0.getType(); + Type $P1Type = $P1.getType(); + if($isSubtypeOf($P0Type, ADT_Grammar) && $isSubtypeOf($P1Type, ADT_Grammar)){ + $result = (IConstructor)Grammar_compose$e2ea649801d63847((IConstructor) $P0, (IConstructor) $P1); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0, $P1)); + } + public IBool isSetType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isSetType($P0); + } + public void storeParsers(IValue $P0, IValue $P1){ // Generated by Resolver + M_ParseTree.storeParsers($P0, $P1); + } + public IInteger lastIndexOf(IValue $P0, IValue $P1){ // Generated by Resolver + return (IInteger) M_List.lastIndexOf($P0, $P1); + } + public ITree parse(IValue $P0, IValue $P1, IValue $P2, java.util.Map $kwpActuals){ // Generated by Resolver + return (ITree) M_ParseTree.parse($P0, $P1, $P2, $kwpActuals); + } + public ITree parse(IValue $P0, IValue $P1, java.util.Map $kwpActuals){ // Generated by Resolver + return (ITree) M_ParseTree.parse($P0, $P1, $kwpActuals); + } + public TypedFunctionInstance3 parsers(IValue $P0, java.util.Map $kwpActuals){ // Generated by Resolver + return (TypedFunctionInstance3) M_ParseTree.parsers($P0, $kwpActuals); + } + public IList concat(IValue $P0){ // Generated by Resolver + return (IList) M_List.concat($P0); + } + public IBool isRatType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isRatType($P0); + } + public IValue top(IValue $P0){ // Generated by Resolver + return (IValue) M_List.top($P0); + } + public IString itoString(IValue $P0){ // Generated by Resolver + return (IString) M_List.itoString($P0); + } + public IList getLabels(IValue $P0){ // Generated by Resolver + return (IList) M_Type.getLabels($P0); + } + public IValue last(IValue $P0){ // Generated by Resolver + return (IValue) M_List.last($P0); + } + public IList getParamLabels(IValue $P0){ // Generated by Resolver + return (IList) M_Type.getParamLabels($P0); + } + public IBool isNumType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isNumType($P0); + } + public IList stripLabels(IValue $P0){ // Generated by Resolver + return (IList) M_Type.stripLabels($P0); + } + public IBool isTupleType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isTupleType($P0); + } + public IBool isBagType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isBagType($P0); + } + public IList intersperse(IValue $P0, IValue $P1){ // Generated by Resolver + return (IList) M_List.intersperse($P0, $P1); + } + public IList merge(IValue $P0, IValue $P1, IValue $P2){ // Generated by Resolver + return (IList) M_List.merge($P0, $P1, $P2); + } + public IList merge(IValue $P0, IValue $P1){ // Generated by Resolver + return (IList) M_List.merge($P0, $P1); + } + public IBool isVoidType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isVoidType($P0); + } + public IBool isNonTerminalType(IValue $P0){ // Generated by Resolver + return (IBool) M_ParseTree.isNonTerminalType($P0); + } + public IValue typeCast(IValue $P0, IValue $P1){ // Generated by Resolver + return (IValue) M_Type.typeCast($P0, $P1); + } + public IValue lub(IValue $P0, IValue $P1){ // Generated by Resolver + return (IValue) M_Type.lub($P0, $P1); + } + public IList shuffle(IValue $P0){ // Generated by Resolver + return (IList) M_List.shuffle($P0); + } + public IList shuffle(IValue $P0, IValue $P1){ // Generated by Resolver + return (IList) M_List.shuffle($P0, $P1); + } + public ISet $extends(IValue $P0){ // Generated by Resolver + ISet $result = null; + Type $P0Type = $P0.getType(); + if($isSubtypeOf($P0Type, ADT_GrammarDefinition)){ + $result = (ISet)Grammar_extends$53b862904270c644((IConstructor) $P0); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0)); + } + public IBool comparable(IValue $P0, IValue $P1){ // Generated by Resolver + return (IBool) M_Type.comparable($P0, $P1); + } + public IBool subtype(IValue $P0, IValue $P1){ // Generated by Resolver + IBool $result = null; + Type $P0Type = $P0.getType(); + Type $P1Type = $P1.getType(); + switch(Fingerprint.getFingerprint($P0)){ + + case 1643638592: + if($isSubtypeOf($P0Type, M_ParseTree.ADT_Symbol) && $isSubtypeOf($P1Type, M_ParseTree.ADT_Symbol)){ + $result = (IBool)M_Type.Type_subtype$162da85a0f5a9f0d((IConstructor) $P0, (IConstructor) $P1); + if($result != null) return $result; + } + break; + case 26576112: + if($isSubtypeOf($P0Type, M_ParseTree.ADT_Symbol) && $isSubtypeOf($P1Type, M_ParseTree.ADT_Symbol)){ + $result = (IBool)M_Type.Type_subtype$258479665eae36af((IConstructor) $P0, (IConstructor) $P1); + if($result != null) return $result; + $result = (IBool)M_Type.Type_subtype$0462d461bde80a82((IConstructor) $P0, (IConstructor) $P1); + if($result != null) return $result; + } + break; + case 1725888: + if($isSubtypeOf($P0Type, M_ParseTree.ADT_Symbol) && $isSubtypeOf($P1Type, M_ParseTree.ADT_Symbol)){ + $result = (IBool)M_Type.Type_subtype$f6957636a33615ae((IConstructor) $P0, (IConstructor) $P1); + if($result != null) return $result; + } + break; + case 1206598288: + if($isSubtypeOf($P0Type, M_ParseTree.ADT_Symbol) && $isSubtypeOf($P1Type, M_ParseTree.ADT_Symbol)){ + $result = (IBool)M_Type.Type_subtype$b674428cffef84bc((IConstructor) $P0, (IConstructor) $P1); + if($result != null) return $result; + } + break; + case 97904160: + if($isSubtypeOf($P0Type, M_ParseTree.ADT_Symbol) && $isSubtypeOf($P1Type, M_ParseTree.ADT_Symbol)){ + $result = (IBool)M_Type.Type_subtype$98167e340333c9a5((IConstructor) $P0, (IConstructor) $P1); + if($result != null) return $result; + $result = (IBool)M_Type.Type_subtype$4fe5b133e2ee1de9((IConstructor) $P0, (IConstructor) $P1); + if($result != null) return $result; + } + break; + case 28290288: + if($isSubtypeOf($P0Type, M_ParseTree.ADT_Symbol) && $isSubtypeOf($P1Type, M_ParseTree.ADT_Symbol)){ + $result = (IBool)M_ParseTree.ParseTree_subtype$384d8d76f0c7a053((IConstructor) $P0, (IConstructor) $P1); + if($result != null) return $result; + } + break; + case 910096: + if($isSubtypeOf($P0Type, M_ParseTree.ADT_Symbol) && $isSubtypeOf($P1Type, M_ParseTree.ADT_Symbol)){ + $result = (IBool)M_Type.Type_subtype$ca59d9bf5276e15d((IConstructor) $P0, (IConstructor) $P1); + if($result != null) return $result; + $result = (IBool)M_Type.Type_subtype$e77633ea9a4ac6a5((IConstructor) $P0, (IConstructor) $P1); + if($result != null) return $result; + } + break; + case 902344: + if($isSubtypeOf($P0Type, M_ParseTree.ADT_Symbol) && $isSubtypeOf($P1Type, M_ParseTree.ADT_Symbol)){ + $result = (IBool)M_Type.Type_subtype$21c6b8b775030d1d((IConstructor) $P0, (IConstructor) $P1); + if($result != null) return $result; + $result = (IBool)M_Type.Type_subtype$98e19b11a09faf67((IConstructor) $P0, (IConstructor) $P1); + if($result != null) return $result; + } + break; + case -1322071552: + if($isSubtypeOf($P0Type, M_ParseTree.ADT_Symbol) && $isSubtypeOf($P1Type, M_ParseTree.ADT_Symbol)){ + $result = (IBool)M_Type.Type_subtype$0862159b9fa78cf9((IConstructor) $P0, (IConstructor) $P1); + if($result != null) return $result; + } + break; + case 26641768: + if($isSubtypeOf($P0Type, M_ParseTree.ADT_Symbol) && $isSubtypeOf($P1Type, M_ParseTree.ADT_Symbol)){ + $result = (IBool)M_Type.Type_subtype$ab363c241c416a71((IConstructor) $P0, (IConstructor) $P1); + if($result != null) return $result; + $result = (IBool)M_Type.Type_subtype$4de9a977591be6e5((IConstructor) $P0, (IConstructor) $P1); + if($result != null) return $result; + } + break; + case 778304: + if($isSubtypeOf($P0Type, M_ParseTree.ADT_Symbol) && $isSubtypeOf($P1Type, M_ParseTree.ADT_Symbol)){ + $result = (IBool)M_Type.Type_subtype$23f59dc1171dc69d((IConstructor) $P0, (IConstructor) $P1); + if($result != null) return $result; + } + break; + case 100948096: + if($isSubtypeOf($P0Type, M_ParseTree.ADT_Symbol) && $isSubtypeOf($P1Type, M_ParseTree.ADT_Symbol)){ + $result = (IBool)M_Type.Type_subtype$ddf53e134f4d5416((IConstructor) $P0, (IConstructor) $P1); + if($result != null) return $result; + } + break; + case 112955840: + if($isSubtypeOf($P0Type, M_ParseTree.ADT_Symbol) && $isSubtypeOf($P1Type, M_ParseTree.ADT_Symbol)){ + $result = (IBool)M_Type.Type_subtype$bc5943e83a6df899((IConstructor) $P0, (IConstructor) $P1); + if($result != null) return $result; + $result = (IBool)M_Type.Type_subtype$282ad33dd55efdcc((IConstructor) $P0, (IConstructor) $P1); + if($result != null) return $result; + } + break; + case 1542928: + if($isSubtypeOf($P0Type, M_ParseTree.ADT_Symbol) && $isSubtypeOf($P1Type, M_ParseTree.ADT_Symbol)){ + $result = (IBool)M_Type.Type_subtype$5f5250bbf1aff423((IConstructor) $P0, (IConstructor) $P1); + if($result != null) return $result; + $result = (IBool)M_Type.Type_subtype$15cedff9916fdbee((IConstructor) $P0, (IConstructor) $P1); + if($result != null) return $result; + } + break; + case 885800512: + if($isSubtypeOf($P0Type, M_ParseTree.ADT_Symbol) && $isSubtypeOf($P1Type, M_ParseTree.ADT_Symbol)){ + $result = (IBool)M_Type.Type_subtype$44422dfea95218a8((IConstructor) $P0, (IConstructor) $P1); + if($result != null) return $result; + } + break; + } + if($isSubtypeOf($P0Type, M_ParseTree.ADT_Symbol) && $isSubtypeOf($P1Type, M_ParseTree.ADT_Symbol)){ + $result = (IBool)M_Type.Type_subtype$cfecefb3bc3fa773((IConstructor) $P0, (IConstructor) $P1); + if($result != null) return $result; + $result = (IBool)M_Type.Type_subtype$53c4de769757bddc((IConstructor) $P0, (IConstructor) $P1); + if($result != null) return $result; + $result = (IBool)M_Type.Type_subtype$2750c116f0b05084((IConstructor) $P0, (IConstructor) $P1); + if($result != null) return $result; + $result = (IBool)M_Type.Type_subtype$39fbab80e9db10e1((IConstructor) $P0, (IConstructor) $P1); + if($result != null) return $result; + $result = (IBool)M_Type.Type_subtype$3eada106dbc66d2d((IConstructor) $P0, (IConstructor) $P1); + if($result != null) return $result; + $result = (IBool)M_Type.Type_subtype$30215aaed6c33fd7((IConstructor) $P0, (IConstructor) $P1); + if($result != null) return $result; + $result = (IBool)M_Type.Type_subtype$1b2387a35f10c1e0((IConstructor) $P0, (IConstructor) $P1); + if($result != null) return $result; + $result = (IBool)M_Type.Type_subtype$80633493313ebd18((IConstructor) $P0, (IConstructor) $P1); + if($result != null) return $result; + $result = (IBool)M_Type.Type_subtype$3aa09e73e41fcf84((IConstructor) $P0, (IConstructor) $P1); + if($result != null) return $result; + } + if($isSubtypeOf($P0Type,$T5) && $isSubtypeOf($P1Type,$T5)){ + $result = (IBool)M_Type.Type_subtype$e6962df5576407da((IList) $P0, (IList) $P1); + if($result != null) return $result; + } + if($isSubtypeOf($P0Type,$T6) && $isSubtypeOf($P1Type,$T9)){ + $result = (IBool)M_Type.Type_subtype$7b9c005ac35dd586((IConstructor) $P0, (IConstructor) $P1); + if($result != null) return $result; + } + if($isSubtypeOf($P0Type, M_ParseTree.ADT_Symbol) && $isSubtypeOf($P1Type, M_ParseTree.ADT_Symbol)){ + $result = (IBool)M_Type.Type_subtype$06d2c71d010480ef((IConstructor) $P0, (IConstructor) $P1); + if($result != null) return $result; + } + if($isSubtypeOf($P0Type,$T5) && $isSubtypeOf($P1Type,$T5)){ + $result = (IBool)M_Type.Type_subtype$812a7f34ff841fdb((IList) $P0, (IList) $P1); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0, $P1)); + } + public IConstructor associativity(IValue $P0, IValue $P1, IValue $P2){ // Generated by Resolver + return (IConstructor) M_ParseTree.associativity($P0, $P1, $P2); + } + public IValue getOneFrom(IValue $P0){ // Generated by Resolver + return (IValue) M_List.getOneFrom($P0); + } + public IString unparse(IValue $P0){ // Generated by Resolver + return (IString) M_ParseTree.unparse($P0); + } + public IMap removeFromBag(IValue $P0, IValue $P1, IValue $P2){ // Generated by Resolver + return (IMap) M_List.removeFromBag($P0, $P1, $P2); + } + public IMap removeFromBag(IValue $P0, IValue $P1){ // Generated by Resolver + return (IMap) M_List.removeFromBag($P0, $P1); + } + public ITuple split(IValue $P0){ // Generated by Resolver + return (ITuple) M_List.split($P0); + } + public IList push(IValue $P0, IValue $P1){ // Generated by Resolver + return (IList) M_List.push($P0, $P1); + } + public IBool noneLabeled(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.noneLabeled($P0); + } + public ISet permutationsBag(IValue $P0){ // Generated by Resolver + return (ISet) M_List.permutationsBag($P0); + } + public IList mix(IValue $P0, IValue $P1){ // Generated by Resolver + return (IList) M_List.mix($P0, $P1); + } + public IInteger mainMessageHandler(IValue $P0, java.util.Map $kwpActuals){ // Generated by Resolver + return (IInteger) M_Message.mainMessageHandler($P0, $kwpActuals); + } + public IBool isFunctionType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isFunctionType($P0); + } + public IValue glb(IValue $P0, IValue $P1){ // Generated by Resolver + return (IValue) M_Type.glb($P0, $P1); + } + public ITree firstAmbiguity(IValue $P0, IValue $P1){ // Generated by Resolver + return (ITree) M_ParseTree.firstAmbiguity($P0, $P1); + } + public ISet toRel(IValue $P0){ // Generated by Resolver + return (ISet) M_List.toRel($P0); + } + public IValue sort(IValue $P0){ // Generated by Resolver + IValue $result = null; + Type $P0Type = $P0.getType(); + if($isSubtypeOf($P0Type,$T11)){ + $result = (IValue)M_List.List_sort$1fe4426c8c8039da((IList) $P0); + if($result != null) return $result; + } + if($isSubtypeOf($P0Type,$T12)){ + return $RVF.constructor(M_ParseTree.Symbol_sort_str, new IValue[]{(IString) $P0}); + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0)); + } + public IList sort(IValue $P0, IValue $P1){ // Generated by Resolver + return (IList) M_List.sort($P0, $P1); + } + public TypedFunctionInstance2 parser(IValue $P0, java.util.Map $kwpActuals){ // Generated by Resolver + return (TypedFunctionInstance2) M_ParseTree.parser($P0, $kwpActuals); + } + public IList dup(IValue $P0){ // Generated by Resolver + return (IList) M_List.dup($P0); + } + public IBool isIntType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isIntType($P0); + } + public IBool isDateTimeType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isDateTimeType($P0); + } + public IString write(IValue $P0, java.util.Map $kwpActuals){ // Generated by Resolver + return (IString) M_Message.write($P0, $kwpActuals); + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Grammar.rsc|(1136,476,<34,0>,<53,1>) + public IConstructor Grammar_grammar$6b8efb64875ca243(ISet starts_0, ISet prods_1){ + + + IMap rules_2 = ((IMap)$constants.get(0)/*()*/); + /*muExists*/FOR0: + do { + FOR0_GEN1250: + for(IValue $elem4_for : ((ISet)prods_1)){ + IConstructor $elem4 = (IConstructor) $elem4_for; + IConstructor p_3 = null; + IConstructor t_4 = null; + if($is(((IConstructor)(((IConstructor)($aadt_get_field(((IConstructor)($elem4)), "def"))))),((IString)$constants.get(1)/*"label"*/))){ + t_4 = ((IConstructor)(((IConstructor)($aadt_get_field(((IConstructor)(((IConstructor)($aadt_get_field(((IConstructor)($elem4)), "def"))))), "symbol"))))); + + } else { + t_4 = ((IConstructor)(((IConstructor)($aadt_get_field(((IConstructor)($elem4)), "def"))))); + + }if((((IBool)($RVF.bool(((IMap)rules_2).containsKey(((IConstructor)t_4)))))).getValue()){ + final IConstructor $subject_val1 = ((IConstructor)($amap_subscript(((IMap)rules_2),((IConstructor)t_4)))); + if($has_type_and_arity($subject_val1, M_Type.Production_choice_Symbol_set_Production, 2)){ + IValue $arg0_3 = (IValue)($aadt_subscript_int(((IConstructor)($subject_val1)),0)); + if($isComparable($arg0_3.getType(), $T7)){ + IValue $arg1_2 = (IValue)($aadt_subscript_int(((IConstructor)($subject_val1)),1)); + if($isComparable($arg1_2.getType(), $T3)){ + ISet existing_5 = null; + rules_2 = ((IMap)($amap_update(t_4,$me.choice(((IConstructor)t_4), ((ISet)($aset_add_elm(((ISet)($arg1_2)),((IConstructor)($elem4)))))), ((IMap)(((IMap)rules_2)))))); + + } else { + rules_2 = ((IMap)($amap_update(t_4,$me.choice(((IConstructor)t_4), ((ISet)($RVF.set(((IConstructor)($elem4)), $amap_subscript(((IMap)rules_2),((IConstructor)t_4)))))), ((IMap)(((IMap)rules_2)))))); + + } + } else { + rules_2 = ((IMap)($amap_update(t_4,$me.choice(((IConstructor)t_4), ((ISet)($RVF.set(((IConstructor)($elem4)), $amap_subscript(((IMap)rules_2),((IConstructor)t_4)))))), ((IMap)(((IMap)rules_2)))))); + + } + } else { + rules_2 = ((IMap)($amap_update(t_4,$me.choice(((IConstructor)t_4), ((ISet)($RVF.set(((IConstructor)($elem4)), $amap_subscript(((IMap)rules_2),((IConstructor)t_4)))))), ((IMap)(((IMap)rules_2)))))); + + } + } else { + rules_2 = ((IMap)($amap_update(t_4,$me.choice(((IConstructor)t_4), ((ISet)($RVF.set(((IConstructor)($elem4)))))), ((IMap)(((IMap)rules_2)))))); + + } + } + continue FOR0; + + } while(false); + /* void: muCon([]) */return ((IConstructor)($RVF.constructor(Grammar_grammar_set_Symbol_map_Symbol_Production, new IValue[]{((ISet)starts_0), ((IMap)rules_2)}))); + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Grammar.rsc|(1626,80,<55,0>,<56,42>) + public IConstructor Grammar_grammar$63f051bdb3ded668(IConstructor sym_0){ + + + HashMap $typeBindings = new HashMap<>(); + if($T0.match(sym_0.getType(), $typeBindings)){ + final IConstructor $result5 = ((IConstructor)($RVF.constructor(Grammar_grammar_set_Symbol_map_Symbol_Production, new IValue[]{((ISet)($RVF.set(((IConstructor)(((IConstructor)($areified_get_field(sym_0, "symbol")))))))), ((IMap)(((IMap)($areified_get_field(sym_0, "definitions")))))}))); + if(ADT_Grammar.instantiate($typeBindings) != $TF.voidType() && $isSubtypeOf($result5.getType(),ADT_Grammar)){ + return ((IConstructor)($result5)); + + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Grammar.rsc|(1842,765,<64,0>,<88,1>) + public IConstructor Grammar_compose$e2ea649801d63847(IConstructor g1_0, IConstructor g2_1){ + + + /*muExists*/FOR3: + do { + FOR3_GEN2090: + for(IValue $elem6_for : ((IMap)(((IMap)($aadt_get_field(((IConstructor)g2_1), "rules")))))){ + IConstructor $elem6 = (IConstructor) $elem6_for; + IConstructor s_2 = null; + if($is_defined_value($guarded_map_subscript(((IMap)(((IMap)($aadt_get_field(((IConstructor)g1_0), "rules"))))),((IConstructor)($elem6))))){ + g1_0 = ((IConstructor)(((IConstructor)($aadt_field_update("rules", $amap_update($elem6,$me.choice(((IConstructor)($elem6)), ((ISet)($RVF.set(((IConstructor)($amap_subscript(((IMap)(((IMap)($aadt_get_field(((IConstructor)g1_0), "rules"))))),((IConstructor)($elem6))))), $amap_subscript(((IMap)(((IMap)($aadt_get_field(((IConstructor)g2_1), "rules"))))),((IConstructor)($elem6))))))), ((IMap)(((IMap)($aadt_get_field(((IConstructor)g1_0), "rules")))))), ((IConstructor)g1_0)))))); + + } else { + g1_0 = ((IConstructor)(((IConstructor)($aadt_field_update("rules", $amap_update($elem6,$amap_subscript(((IMap)(((IMap)($aadt_get_field(((IConstructor)g2_1), "rules"))))),((IConstructor)($elem6))), ((IMap)(((IMap)($aadt_get_field(((IConstructor)g1_0), "rules")))))), ((IConstructor)g1_0)))))); + + } + } + continue FOR3; + + } while(false); + /* void: muCon([]) */g1_0 = ((IConstructor)(((IConstructor)($aadt_field_update("starts", $aset_add_aset(((ISet)(((ISet)($aadt_get_field(((IConstructor)g1_0), "starts"))))),((ISet)(((ISet)($aadt_get_field(((IConstructor)g2_1), "starts")))))), ((IConstructor)g1_0)))))); + IMap reduced_rules_3 = ((IMap)$constants.get(0)/*()*/); + /*muExists*/FOR5: + do { + FOR5_GEN2283: + for(IValue $elem18_for : ((IMap)(((IMap)($aadt_get_field(((IConstructor)g1_0), "rules")))))){ + IConstructor $elem18 = (IConstructor) $elem18_for; + IConstructor s_4 = null; + IConstructor c_5 = ((IConstructor)($amap_subscript(((IMap)(((IMap)($aadt_get_field(((IConstructor)g1_0), "rules"))))),((IConstructor)($elem18))))); + if($is(((IConstructor)c_5),((IString)$constants.get(2)/*"choice"*/))){ + final ISetWriter $setwriter7 = (ISetWriter)$RVF.setWriter(); + ; + /*muExists*/$SCOMP8_GEN2383_CONS_priority: + do { + $SCOMP8_GEN2383: + for(IValue $elem9_for : ((ISet)(((ISet)($aadt_get_field(((IConstructor)c_5), "alternatives")))))){ + IConstructor $elem9 = (IConstructor) $elem9_for; + if($has_type_and_arity($elem9, M_ParseTree.Production_priority_Symbol_list_Production, 2)){ + IValue $arg0_11 = (IValue)($aadt_subscript_int(((IConstructor)($elem9)),0)); + if($isComparable($arg0_11.getType(), $T7)){ + IValue $arg1_10 = (IValue)($aadt_subscript_int(((IConstructor)($elem9)),1)); + if($isComparable($arg1_10.getType(), $T22)){ + IList choices_6 = null; + $setwriter_splice($setwriter7,$arg1_10); + + } else { + continue $SCOMP8_GEN2383; + } + } else { + continue $SCOMP8_GEN2383; + } + } else { + continue $SCOMP8_GEN2383; + } + } + + + } while(false); + final ISetWriter $setwriter12 = (ISetWriter)$RVF.setWriter(); + ; + /*muExists*/$SCOMP13_GEN2458_CONS_associativity: + do { + $SCOMP13_GEN2458: + for(IValue $elem14_for : ((ISet)(((ISet)($aadt_get_field(((IConstructor)c_5), "alternatives")))))){ + IConstructor $elem14 = (IConstructor) $elem14_for; + if($has_type_and_arity($elem14, M_ParseTree.Production_associativity_Symbol_Associativity_set_Production, 3)){ + IValue $arg0_17 = (IValue)($aadt_subscript_int(((IConstructor)($elem14)),0)); + if($isComparable($arg0_17.getType(), $T7)){ + IValue $arg1_16 = (IValue)($aadt_subscript_int(((IConstructor)($elem14)),1)); + if($isComparable($arg1_16.getType(), $T7)){ + IValue $arg2_15 = (IValue)($aadt_subscript_int(((IConstructor)($elem14)),2)); + if($isComparable($arg2_15.getType(), $T3)){ + ISet alts_7 = null; + $setwriter_splice($setwriter12,$arg2_15); + + } else { + continue $SCOMP13_GEN2458; + } + } else { + continue $SCOMP13_GEN2458; + } + } else { + continue $SCOMP13_GEN2458; + } + } else { + continue $SCOMP13_GEN2458; + } + } + + + } while(false); + c_5 = ((IConstructor)(((IConstructor)($aadt_field_update("alternatives", ((ISet)(((ISet)($aadt_get_field(((IConstructor)c_5), "alternatives"))))).subtract(((ISet)($aset_add_aset(((ISet)($setwriter7.done())),((ISet)($setwriter12.done())))))), ((IConstructor)c_5)))))); + + } + reduced_rules_3 = ((IMap)($amap_update($elem18,c_5, ((IMap)(((IMap)reduced_rules_3)))))); + + } + continue FOR5; + + } while(false); + /* void: muCon([]) */return ((IConstructor)($RVF.constructor(Grammar_grammar_set_Symbol_map_Symbol_Production, new IValue[]{((ISet)(((ISet)($aadt_get_field(((IConstructor)g1_0), "starts"))))), ((IMap)reduced_rules_3)}))); + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Grammar.rsc|(3305,354,<110,0>,<116,1>) + public ISet Grammar_extends$53b862904270c644(IConstructor def_0){ + + + final ISetWriter $setwriter19 = (ISetWriter)$RVF.setWriter(); + ; + $SCOMP20_GEN3584: + for(IValue $elem27_for : ((IMap)(((IMap)($aadt_get_field(((IConstructor)def_0), "modules")))))){ + IString $elem27 = (IString) $elem27_for; + IString m_1 = null; + final IConstructor $subject_val22 = ((IConstructor)($amap_subscript(((IMap)(((IMap)($aadt_get_field(((IConstructor)def_0), "modules"))))),((IString)($elem27))))); + if($has_type_and_arity($subject_val22, GrammarModule_module_str_set_str_set_str_Grammar, 4)){ + IValue $arg0_26 = (IValue)($aadt_subscript_int(((IConstructor)($subject_val22)),0)); + if($isComparable($arg0_26.getType(), $T7)){ + IValue $arg1_25 = (IValue)($aadt_subscript_int(((IConstructor)($subject_val22)),1)); + if($isComparable($arg1_25.getType(), $T7)){ + IValue $arg2_24 = (IValue)($aadt_subscript_int(((IConstructor)($subject_val22)),2)); + if($isComparable($arg2_24.getType(), $T23)){ + ISet exts_2 = null; + IValue $arg3_23 = (IValue)($aadt_subscript_int(((IConstructor)($subject_val22)),3)); + if($isComparable($arg3_23.getType(), $T7)){ + $SCOMP20_GEN3584_GEN3645: + for(IValue $elem21_for : ((ISet)($arg2_24))){ + IString $elem21 = (IString) $elem21_for; + IString e_3 = null; + $setwriter19.insert($RVF.tuple(((IString)($elem27)), ((IString)($elem21)))); + + } + continue $SCOMP20_GEN3584; + + } else { + continue $SCOMP20_GEN3584; + } + } else { + continue $SCOMP20_GEN3584; + } + } else { + continue $SCOMP20_GEN3584; + } + } else { + continue $SCOMP20_GEN3584; + } + } else { + continue $SCOMP20_GEN3584; + } + } + + return ((ISet)(((ISet)($setwriter19.done())).asRelation().closure())); + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Grammar.rsc|(3661,242,<118,0>,<121,1>) + public ISet Grammar_imports$8df7b944feeb651c(IConstructor def_0){ + + + final ISetWriter $setwriter28 = (ISetWriter)$RVF.setWriter(); + ; + $SCOMP29_GEN3829: + for(IValue $elem36_for : ((IMap)(((IMap)($aadt_get_field(((IConstructor)def_0), "modules")))))){ + IString $elem36 = (IString) $elem36_for; + IString m_1 = null; + final IConstructor $subject_val31 = ((IConstructor)($amap_subscript(((IMap)(((IMap)($aadt_get_field(((IConstructor)def_0), "modules"))))),((IString)($elem36))))); + if($has_type_and_arity($subject_val31, GrammarModule_module_str_set_str_set_str_Grammar, 4)){ + IValue $arg0_35 = (IValue)($aadt_subscript_int(((IConstructor)($subject_val31)),0)); + if($isComparable($arg0_35.getType(), $T7)){ + IValue $arg1_34 = (IValue)($aadt_subscript_int(((IConstructor)($subject_val31)),1)); + if($isComparable($arg1_34.getType(), $T23)){ + ISet imps_2 = null; + IValue $arg2_33 = (IValue)($aadt_subscript_int(((IConstructor)($subject_val31)),2)); + if($isComparable($arg2_33.getType(), $T7)){ + IValue $arg3_32 = (IValue)($aadt_subscript_int(((IConstructor)($subject_val31)),3)); + if($isComparable($arg3_32.getType(), $T7)){ + $SCOMP29_GEN3829_GEN3890: + for(IValue $elem30_for : ((ISet)($arg1_34))){ + IString $elem30 = (IString) $elem30_for; + IString i_3 = null; + $setwriter28.insert($RVF.tuple(((IString)($elem36)), ((IString)($elem30)))); + + } + continue $SCOMP29_GEN3829; + + } else { + continue $SCOMP29_GEN3829; + } + } else { + continue $SCOMP29_GEN3829; + } + } else { + continue $SCOMP29_GEN3829; + } + } else { + continue $SCOMP29_GEN3829; + } + } else { + continue $SCOMP29_GEN3829; + } + } + + return ((ISet)($setwriter28.done())); + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Grammar.rsc|(3905,683,<123,0>,<137,1>) + public ISet Grammar_dependencies$37f6dca76704bff7(IConstructor def_0){ + + + ISet imps_1 = ((ISet)($me.imports(((IConstructor)def_0)))); + ISet exts_2 = ((ISet)($me.$extends(((IConstructor)def_0)))); + return ((ISet)($aset_add_aset(((ISet)($aset_add_aset(((ISet)imps_1),((ISet)exts_2)))),((ISet)(((ISet)imps_1).asRelation().compose(((ISet)exts_2).asRelation())))))); + + } + + + public static void main(String[] args) { + throw new RuntimeException("No function `main` found in Rascal module `Grammar`"); + } +} \ No newline at end of file diff --git a/src/rascal/$Grammar.tpl b/src/rascal/$Grammar.tpl new file mode 100644 index 00000000000..b12e034c123 Binary files /dev/null and b/src/rascal/$Grammar.tpl differ diff --git a/src/rascal/$Grammar_$I.java b/src/rascal/$Grammar_$I.java new file mode 100644 index 00000000000..a9922a9f7a0 --- /dev/null +++ b/src/rascal/$Grammar_$I.java @@ -0,0 +1,138 @@ +package rascal; +import io.usethesource.vallang.*; +import org.rascalmpl.runtime.function.*; + +@SuppressWarnings("unused") +public interface $Grammar_$I { + IValue addLabels(IValue $0, IValue $1); + IValue addParamLabels(IValue $0, IValue $1); + IValue allLabeled(IValue $0); + IValue associativity(IValue $0, IValue $1, IValue $2); + IValue choice(IValue $0, IValue $1); + IValue comparable(IValue $0, IValue $1); + IValue compose(IValue $0, IValue $1); + IValue concat(IValue $0); + IValue delete(IValue $0, IValue $1); + IValue dependencies(IValue $0); + IValue distribution(IValue $0); + IValue drop(IValue $0, IValue $1); + IValue dup(IValue $0); + IValue elementAt(IValue $0, IValue $1); + IValue eq(IValue $0, IValue $1); + IValue equivalent(IValue $0, IValue $1); + IValue $extends(IValue $0); + IValue firstAmbiguity(IValue $0, IValue $1); + IValue firstAmbiguityFinder(IValue $0, java.util.Map $kwpActuals); + IValue firstAmbiguityFinders(IValue $0, java.util.Map $kwpActuals); + IValue getFirstFrom(IValue $0); + IValue getLabels(IValue $0); + IValue getOneFrom(IValue $0); + IValue getParamLabels(IValue $0); + IValue glb(IValue $0, IValue $1); + IValue grammar(IValue $0); + IValue grammar(IValue $0, IValue $1); + IValue head(IValue $0, IValue $1); + IValue head(IValue $0); + IValue headTail(IValue $0); + IValue implode(IValue $0, IValue $1); + IValue imports(IValue $0); + IValue index(IValue $0); + IValue indexOf(IValue $0, IValue $1); + IValue insertAt(IValue $0, IValue $1, IValue $2); + IValue intercalate(IValue $0, IValue $1); + IValue intersperse(IValue $0, IValue $1); + IValue isADTType(IValue $0); + IValue isAliasType(IValue $0); + IValue isBagType(IValue $0); + IValue isBoolType(IValue $0); + IValue isConstructorType(IValue $0); + IValue isDateTimeType(IValue $0); + IValue isEmpty(IValue $0); + IValue isFunctionType(IValue $0); + IValue isIntType(IValue $0); + IValue isListRelType(IValue $0); + IValue isListType(IValue $0); + IValue isLocType(IValue $0); + IValue isMapType(IValue $0); + IValue isNodeType(IValue $0); + IValue isNonTerminalType(IValue $0); + IValue isNumType(IValue $0); + IValue isRatType(IValue $0); + IValue isRealType(IValue $0); + IValue isReifiedType(IValue $0); + IValue isRelType(IValue $0); + IValue isSetType(IValue $0); + IValue isSorted(IValue $0, java.util.Map $kwpActuals); + IValue isStrType(IValue $0); + IValue isTupleType(IValue $0); + IValue isTypeVar(IValue $0); + IValue isValueType(IValue $0); + IValue isVoidType(IValue $0); + IValue itoString(IValue $0); + IValue keepParams(IValue $0, IValue $1); + IValue last(IValue $0); + IValue lastIndexOf(IValue $0, IValue $1); + IValue loadParser(IValue $0, IValue $1, java.util.Map $kwpActuals); + IValue loadParsers(IValue $0, java.util.Map $kwpActuals); + IValue lub(IValue $0, IValue $1); + IValue mainMessageHandler(IValue $0, java.util.Map $kwpActuals); + IValue make(IValue $0, IValue $1, IValue $2); + IValue make(IValue $0, IValue $1, IValue $2, IValue $3); + IValue mapper(IValue $0, IValue $1); + IValue max(IValue $0); + IValue merge(IValue $0, IValue $1); + IValue merge(IValue $0, IValue $1, IValue $2); + IValue min(IValue $0); + IValue mix(IValue $0, IValue $1); + IValue noneLabeled(IValue $0); + IValue parse(IValue $0, IValue $1, java.util.Map $kwpActuals); + IValue parse(IValue $0, IValue $1, IValue $2, java.util.Map $kwpActuals); + IValue parser(IValue $0, java.util.Map $kwpActuals); + IValue parsers(IValue $0, java.util.Map $kwpActuals); + IValue permutations(IValue $0); + IValue permutationsBag(IValue $0); + IValue pop(IValue $0); + IValue prefix(IValue $0); + IValue printSymbol(IValue $0, IValue $1); + IValue priority(IValue $0, IValue $1); + IValue push(IValue $0, IValue $1); + IValue reducer(IValue $0, IValue $1, IValue $2); + IValue remove(IValue $0, IValue $1); + IValue removeFromBag(IValue $0, IValue $1); + IValue removeFromBag(IValue $0, IValue $1, IValue $2); + IValue reverse(IValue $0); + IValue sameType(IValue $0, IValue $1); + IValue shuffle(IValue $0); + IValue shuffle(IValue $0, IValue $1); + IValue size(IValue $0); + IValue slice(IValue $0, IValue $1, IValue $2); + IValue sort(IValue $0, IValue $1); + IValue sort(IValue $0); + IValue split(IValue $0); + void storeParsers(IValue $0, IValue $1); + IValue stripLabels(IValue $0); + IValue subtype(IValue $0, IValue $1); + IValue sum(IValue $0); + IValue tail(IValue $0); + IValue tail(IValue $0, IValue $1); + IValue take(IValue $0, IValue $1); + IValue takeOneFrom(IValue $0); + IValue takeWhile(IValue $0, IValue $1); + IValue toMap(IValue $0); + IValue toMapUnique(IValue $0); + IValue toRel(IValue $0); + IValue toSet(IValue $0); + IValue toString(IValue $0); + IValue top(IValue $0); + IValue treeAt(IValue $0, IValue $1, IValue $2); + IValue typeCast(IValue $0, IValue $1); + IValue typeOf(IValue $0); + IValue unparse(IValue $0); + IValue unzip2(IValue $0); + IValue unzip3(IValue $0); + IValue upTill(IValue $0); + IValue var_func(IValue $0, IValue $1, IValue $2); + IValue write(IValue $0, java.util.Map $kwpActuals); + IValue zip2(IValue $0, IValue $1); + IValue zip3(IValue $0, IValue $1, IValue $2); +} \ No newline at end of file diff --git a/src/rascal/$IO.constants b/src/rascal/$IO.constants new file mode 100644 index 00000000000..efe3e8cdf6b Binary files /dev/null and b/src/rascal/$IO.constants differ diff --git a/src/rascal/$IO.java b/src/rascal/$IO.java new file mode 100644 index 00000000000..db328279232 --- /dev/null +++ b/src/rascal/$IO.java @@ -0,0 +1,1569 @@ +package rascal; +import java.io.PrintWriter; +import java.io.StringWriter; +import java.io.InputStreamReader; +import java.io.PrintWriter; +import java.util.*; +import java.util.regex.Matcher; +import io.usethesource.vallang.*; +import io.usethesource.vallang.type.*; +import org.rascalmpl.runtime.*; +import org.rascalmpl.runtime.RascalExecutionContext; +import org.rascalmpl.runtime.function.*; +import org.rascalmpl.runtime.traverse.*; +import org.rascalmpl.runtime.utils.*; +import org.rascalmpl.exceptions.RuntimeExceptionFactory; +import org.rascalmpl.exceptions.Throw; +import org.rascalmpl.runtime.RascalExecutionContext; +import org.rascalmpl.interpreter.control_exceptions.Filtered; +import org.rascalmpl.types.NonTerminalType; +import org.rascalmpl.types.RascalTypeFactory; +import org.rascalmpl.util.ExpiringFunctionResultCache; +import org.rascalmpl.values.RascalValueFactory; +import org.rascalmpl.values.ValueFactoryFactory; +import org.rascalmpl.values.parsetrees.ITree; +import org.rascalmpl.values.parsetrees.TreeAdapter; + + + +@SuppressWarnings({"unused","unchecked","deprecation"}) +public class $IO + extends + org.rascalmpl.runtime.$RascalModule + implements + rascal.$IO_$I { + + private final $IO_$I $me; + private final IList $constants; + final java.util.Map $kwpDefaults_IO_iprint$8519f29f09d8b95d; + final java.util.Map $kwpDefaults_IO_iprintln$e630d4c5c6614fca; + final java.util.Map $kwpDefaults_IO_readBase64$e403bc4c7f63d90b; + final java.util.Map $kwpDefaults_IO_readBase32$c3263d5cb496b291; + final java.util.Map $kwpDefaults_IO_remove$7ee95f40dde4956c; + final java.util.Map $kwpDefaults_IO_toBase64$444f08dbde4c25dd; + final java.util.Map $kwpDefaults_IO_copy$2b7816b64efe7fa8; + final java.util.Map $kwpDefaults_IO_move$7b018fae0f5aced6; + + + public final rascal.$Exception M_Exception; + + + final org.rascalmpl.library.Prelude $Prelude; // TODO: asBaseClassName will generate name collisions if there are more of the same name in different packages + + + public IString DEFAULT_CHARSET; + public final io.usethesource.vallang.type.Type $T0; /*aloc()*/ + public final io.usethesource.vallang.type.Type $T3; /*astr()*/ + public final io.usethesource.vallang.type.Type $T15; /*aloc(alabel="physical")*/ + public final io.usethesource.vallang.type.Type $T19; /*aloc(alabel="singleton")*/ + public final io.usethesource.vallang.type.Type $T14; /*aloc(alabel="logical")*/ + public final io.usethesource.vallang.type.Type $T9; /*avoid()*/ + public final io.usethesource.vallang.type.Type $T1; /*avalue()*/ + public final io.usethesource.vallang.type.Type $T2; /*adatetime()*/ + public final io.usethesource.vallang.type.Type $T11; /*aint()*/ + public final io.usethesource.vallang.type.Type $T20; /*aparameter("T",avalue(),closed=true)*/ + public final io.usethesource.vallang.type.Type $T16; /*aloc(alabel="src")*/ + public final io.usethesource.vallang.type.Type $T6; /*aparameter("T",avalue(),closed=false)*/ + public final io.usethesource.vallang.type.Type ADT_LocationChangeType; /*aadt("LocationChangeType",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_IOCapability; /*aadt("IOCapability",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type IOCapability_watching_; /*acons(aadt("IOCapability",[],dataSyntax()),[],[],alabel="watching")*/ + public final io.usethesource.vallang.type.Type ADT_LocationChangeEvent; /*aadt("LocationChangeEvent",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type LocationChangeType_created_; /*acons(aadt("LocationChangeType",[],dataSyntax()),[],[],alabel="created")*/ + public final io.usethesource.vallang.type.Type LocationChangeType_deleted_; /*acons(aadt("LocationChangeType",[],dataSyntax()),[],[],alabel="deleted")*/ + public final io.usethesource.vallang.type.Type $T18; /*aset(aloc(alabel="singleton"))*/ + public final io.usethesource.vallang.type.Type $T10; /*alist(aint())*/ + public final io.usethesource.vallang.type.Type IOCapability_writing_; /*acons(aadt("IOCapability",[],dataSyntax()),[],[],alabel="writing")*/ + public final io.usethesource.vallang.type.Type $T5; /*alist(avalue())*/ + public final io.usethesource.vallang.type.Type $T13; /*amap(aloc(alabel="logical"),aloc(alabel="physical"))*/ + public final io.usethesource.vallang.type.Type $T4; /*alist(astr())*/ + public final io.usethesource.vallang.type.Type IOCapability_classloading_; /*acons(aadt("IOCapability",[],dataSyntax()),[],[],alabel="classloading")*/ + public final io.usethesource.vallang.type.Type ADT_RuntimeException; /*aadt("RuntimeException",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type IOCapability_resolving_; /*acons(aadt("IOCapability",[],dataSyntax()),[],[],alabel="resolving")*/ + public final io.usethesource.vallang.type.Type ADT_LocationType; /*aadt("LocationType",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type $T17; /*aset(avoid())*/ + public final io.usethesource.vallang.type.Type LocationChangeType_modified_; /*acons(aadt("LocationChangeType",[],dataSyntax()),[],[],alabel="modified")*/ + public final io.usethesource.vallang.type.Type IOCapability_reading_; /*acons(aadt("IOCapability",[],dataSyntax()),[],[],alabel="reading")*/ + public final io.usethesource.vallang.type.Type LocationType_file_; /*acons(aadt("LocationType",[],dataSyntax()),[],[],alabel="file")*/ + public final io.usethesource.vallang.type.Type $T12; /*alist(aloc())*/ + public final io.usethesource.vallang.type.Type LocationChangeEvent_changeEvent_loc_LocationChangeType_LocationType; /*acons(aadt("LocationChangeEvent",[],dataSyntax()),[aloc(alabel="src"),aadt("LocationChangeType",[],dataSyntax(),alabel="changeType"),aadt("LocationType",[],dataSyntax(),alabel="type")],[],alabel="changeEvent")*/ + public final io.usethesource.vallang.type.Type LocationType_directory_; /*acons(aadt("LocationType",[],dataSyntax()),[],[],alabel="directory")*/ + public final io.usethesource.vallang.type.Type $T8; /*afunc(avoid(),[aadt("LocationChangeEvent",[],dataSyntax(),alabel="event")],[])*/ + public final io.usethesource.vallang.type.Type $T7; /*abool()*/ + + public $IO(RascalExecutionContext rex){ + this(rex, null); + } + + public $IO(RascalExecutionContext rex, Object extended){ + super(rex); + this.$me = extended == null ? this : ($IO_$I)extended; + ModuleStore mstore = rex.getModuleStore(); + mstore.put(rascal.$IO.class, this); + + mstore.importModule(rascal.$Exception.class, rex, rascal.$Exception::new); + + M_Exception = mstore.getModule(rascal.$Exception.class); + + + + $TS.importStore(M_Exception.$TS); + + $Prelude = $initLibrary("org.rascalmpl.library.Prelude"); + + $constants = readBinaryConstantsFile(this.getClass(), "rascal/$IO.constants", 6, "f4ee18b8e7f7c5632a4110e0b791c5aa"); + ADT_LocationChangeType = $adt("LocationChangeType"); + ADT_IOCapability = $adt("IOCapability"); + ADT_LocationChangeEvent = $adt("LocationChangeEvent"); + ADT_RuntimeException = $adt("RuntimeException"); + ADT_LocationType = $adt("LocationType"); + $T0 = $TF.sourceLocationType(); + $T3 = $TF.stringType(); + $T15 = $TF.sourceLocationType(); + $T19 = $TF.sourceLocationType(); + $T14 = $TF.sourceLocationType(); + $T9 = $TF.voidType(); + $T1 = $TF.valueType(); + $T2 = $TF.dateTimeType(); + $T11 = $TF.integerType(); + $T20 = $TF.parameterType("T", $T1); + $T16 = $TF.sourceLocationType(); + $T6 = $TF.parameterType("T", $T1); + $T18 = $TF.setType($T19); + $T10 = $TF.listType($T11); + $T5 = $TF.listType($T1); + $T13 = $TF.mapType($T14, "logical", $T15, "physical"); + $T4 = $TF.listType($T3); + $T17 = $TF.setType($T9); + $T12 = $TF.listType($T0); + $T8 = $TF.functionType($T9, $TF.tupleType(ADT_LocationChangeEvent, "event"), $TF.tupleEmpty()); + $T7 = $TF.boolType(); + IOCapability_watching_ = $TF.constructor($TS, ADT_IOCapability, "watching"); + LocationChangeType_created_ = $TF.constructor($TS, ADT_LocationChangeType, "created"); + LocationChangeType_deleted_ = $TF.constructor($TS, ADT_LocationChangeType, "deleted"); + IOCapability_writing_ = $TF.constructor($TS, ADT_IOCapability, "writing"); + IOCapability_classloading_ = $TF.constructor($TS, ADT_IOCapability, "classloading"); + IOCapability_resolving_ = $TF.constructor($TS, ADT_IOCapability, "resolving"); + LocationChangeType_modified_ = $TF.constructor($TS, ADT_LocationChangeType, "modified"); + IOCapability_reading_ = $TF.constructor($TS, ADT_IOCapability, "reading"); + LocationType_file_ = $TF.constructor($TS, ADT_LocationType, "file"); + LocationChangeEvent_changeEvent_loc_LocationChangeType_LocationType = $TF.constructor($TS, ADT_LocationChangeEvent, "changeEvent", $TF.sourceLocationType(), "src", ADT_LocationChangeType, "changeType", ADT_LocationType, "type"); + LocationType_directory_ = $TF.constructor($TS, ADT_LocationType, "directory"); + + DEFAULT_CHARSET = ((IString)$constants.get(5)/*"UTF-8"*/); + + $kwpDefaults_IO_iprint$8519f29f09d8b95d = Util.kwpMap("lineLimit", ((IInteger)$constants.get(4)/*1000*/)); + $kwpDefaults_IO_iprintln$e630d4c5c6614fca = Util.kwpMap("lineLimit", ((IInteger)$constants.get(4)/*1000*/)); + $kwpDefaults_IO_readBase64$e403bc4c7f63d90b = Util.kwpMap("includePadding", ((IBool)$constants.get(3)/*true*/)); + $kwpDefaults_IO_readBase32$c3263d5cb496b291 = Util.kwpMap("includePadding", ((IBool)$constants.get(3)/*true*/)); + $kwpDefaults_IO_remove$7ee95f40dde4956c = Util.kwpMap("recursive", ((IBool)$constants.get(3)/*true*/)); + $kwpDefaults_IO_toBase64$444f08dbde4c25dd = Util.kwpMap("includePadding", ((IBool)$constants.get(3)/*true*/)); + $kwpDefaults_IO_copy$2b7816b64efe7fa8 = Util.kwpMap("recursive", ((IBool)$constants.get(2)/*false*/), "overwrite", ((IBool)$constants.get(3)/*true*/)); + $kwpDefaults_IO_move$7b018fae0f5aced6 = Util.kwpMap("overwrite", ((IBool)$constants.get(3)/*true*/)); + + } + public IBool isDirectory(IValue $P0){ // Generated by Resolver + IBool $result = null; + Type $P0Type = $P0.getType(); + if($isSubtypeOf($P0Type,$T0)){ + $result = (IBool)IO_isDirectory$f70ff48d80811e3c((ISourceLocation) $P0); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0)); + } + public ISet charsets(){ // Generated by Resolver + ISet $result = null; + $result = (ISet)IO_charsets$5741e8924db30a5d(); + if($result != null) return $result; + throw RuntimeExceptionFactory.callFailed($RVF.list()); + } + public void rprintln(IValue $P0){ // Generated by Resolver + Type $P0Type = $P0.getType(); + if($isSubtypeOf($P0Type,$T1)){ + try { IO_rprintln$8b703d3f54a01b68((IValue) $P0); return; } catch (FailReturnFromVoidException e){}; + + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0)); + } + public void setLastModified(IValue $P0, IValue $P1){ // Generated by Resolver + Type $P0Type = $P0.getType(); + Type $P1Type = $P1.getType(); + if($isSubtypeOf($P0Type,$T0) && $isSubtypeOf($P1Type,$T2)){ + try { IO_setLastModified$77ace42c2a009ccb((ISourceLocation) $P0, (IDateTime) $P1); return; } catch (FailReturnFromVoidException e){}; + + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0, $P1)); + } + public ISourceLocation resolveLocation(IValue $P0){ // Generated by Resolver + ISourceLocation $result = null; + Type $P0Type = $P0.getType(); + if($isSubtypeOf($P0Type,$T0)){ + $result = (ISourceLocation)IO_resolveLocation$ad3865e0ee0205af((ISourceLocation) $P0); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0)); + } + public void unregisterLocations(IValue $P0, IValue $P1){ // Generated by Resolver + Type $P0Type = $P0.getType(); + Type $P1Type = $P1.getType(); + if($isSubtypeOf($P0Type,$T3) && $isSubtypeOf($P1Type,$T3)){ + try { IO_unregisterLocations$8ea0884c966fa575((IString) $P0, (IString) $P1); return; } catch (FailReturnFromVoidException e){}; + + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0, $P1)); + } + public void remove(IValue $P0, java.util.Map $kwpActuals){ // Generated by Resolver + Type $P0Type = $P0.getType(); + if($isSubtypeOf($P0Type,$T0)){ + try { IO_remove$7ee95f40dde4956c((ISourceLocation) $P0, $kwpActuals); return; } catch (FailReturnFromVoidException e){}; + + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0)); + } + public ISourceLocation getResource(IValue $P0){ // Generated by Resolver + ISourceLocation $result = null; + Type $P0Type = $P0.getType(); + if($isSubtypeOf($P0Type,$T3)){ + $result = (ISourceLocation)IO_getResource$a62508a79e67475b((IString) $P0); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0)); + } + public void writeFileLines(IValue $P0, IValue $P1, java.util.Map $kwpActuals){ // Generated by Resolver + Type $P0Type = $P0.getType(); + Type $P1Type = $P1.getType(); + if($isSubtypeOf($P0Type,$T0) && $isSubtypeOf($P1Type,$T4)){ + try { IO_writeFileLines$c9280a460e0da623((ISourceLocation) $P0, (IList) $P1, $kwpActuals); return; } catch (FailReturnFromVoidException e){}; + + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0, $P1)); + } + public void iprint(IValue $P0, java.util.Map $kwpActuals){ // Generated by Resolver + Type $P0Type = $P0.getType(); + if($isSubtypeOf($P0Type,$T1)){ + try { IO_iprint$8519f29f09d8b95d((IValue) $P0, $kwpActuals); return; } catch (FailReturnFromVoidException e){}; + + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0)); + } + public IString readBase64(IValue $P0, java.util.Map $kwpActuals){ // Generated by Resolver + IString $result = null; + Type $P0Type = $P0.getType(); + if($isSubtypeOf($P0Type,$T0)){ + $result = (IString)IO_readBase64$e403bc4c7f63d90b((ISourceLocation) $P0, $kwpActuals); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0)); + } + public void iprintln(IValue $P0, java.util.Map $kwpActuals){ // Generated by Resolver + Type $P0Type = $P0.getType(); + if($isSubtypeOf($P0Type,$T1)){ + try { IO_iprintln$e630d4c5c6614fca((IValue) $P0, $kwpActuals); return; } catch (FailReturnFromVoidException e){}; + + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0)); + } + public IBool isFile(IValue $P0){ // Generated by Resolver + IBool $result = null; + Type $P0Type = $P0.getType(); + if($isSubtypeOf($P0Type,$T0)){ + $result = (IBool)IO_isFile$f74fdf3db6ed7ce0((ISourceLocation) $P0); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0)); + } + public ISet canEncode(IValue $P0){ // Generated by Resolver + ISet $result = null; + Type $P0Type = $P0.getType(); + if($isSubtypeOf($P0Type,$T3)){ + $result = (ISet)IO_canEncode$8f2f7cac6b8255e8((IString) $P0); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0)); + } + public IString readBase32(IValue $P0, java.util.Map $kwpActuals){ // Generated by Resolver + IString $result = null; + Type $P0Type = $P0.getType(); + if($isSubtypeOf($P0Type,$T0)){ + $result = (IString)IO_readBase32$c3263d5cb496b291((ISourceLocation) $P0, $kwpActuals); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0)); + } + public IDateTime created(IValue $P0){ // Generated by Resolver + IDateTime $result = null; + Type $P0Type = $P0.getType(); + if($isSubtypeOf($P0Type,$T0)){ + $result = (IDateTime)IO_created$b9550524d3128d61((ISourceLocation) $P0); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0)); + } + public IString md5HashFile(IValue $P0){ // Generated by Resolver + IString $result = null; + Type $P0Type = $P0.getType(); + if($isSubtypeOf($P0Type,$T0)){ + $result = (IString)IO_md5HashFile$4f8764080ca4ef11((ISourceLocation) $P0); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0)); + } + public IString readFileEnc(IValue $P0, IValue $P1){ // Generated by Resolver + IString $result = null; + Type $P0Type = $P0.getType(); + Type $P1Type = $P1.getType(); + if($isSubtypeOf($P0Type,$T0) && $isSubtypeOf($P1Type,$T3)){ + $result = (IString)IO_readFileEnc$28e8b07737a85a02((ISourceLocation) $P0, (IString) $P1); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0, $P1)); + } + public void appendToFileEnc(IValue $P0, IValue $P1, IValue $P2){ // Generated by Resolver + Type $P0Type = $P0.getType(); + Type $P1Type = $P1.getType(); + Type $P2Type = $P2.getType(); + if($isSubtypeOf($P0Type,$T0) && $isSubtypeOf($P1Type,$T3) && $isSubtypeOf($P2Type,$T5)){ + try { IO_appendToFileEnc$b0af0d043e746edc((ISourceLocation) $P0, (IString) $P1, (IList) $P2); return; } catch (FailReturnFromVoidException e){}; + + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0, $P1, $P2)); + } + public IString toBase64(IValue $P0, java.util.Map $kwpActuals){ // Generated by Resolver + IString $result = null; + Type $P0Type = $P0.getType(); + if($isSubtypeOf($P0Type,$T0)){ + $result = (IString)IO_toBase64$444f08dbde4c25dd((ISourceLocation) $P0, $kwpActuals); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0)); + } + public ISet findResources(IValue $P0){ // Generated by Resolver + ISet $result = null; + Type $P0Type = $P0.getType(); + if($isSubtypeOf($P0Type,$T0)){ + $result = (ISet)IO_findResources$dc47b57efa67f3b1((ISourceLocation) $P0); + if($result != null) return $result; + } + if($isSubtypeOf($P0Type,$T3)){ + $result = (ISet)IO_findResources$e54d9f39f2ac43e7((IString) $P0); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0)); + } + public IString md5Hash(IValue $P0){ // Generated by Resolver + IString $result = null; + Type $P0Type = $P0.getType(); + if($isSubtypeOf($P0Type,$T1)){ + $result = (IString)IO_md5Hash$8849b64c711c3dc4((IValue) $P0); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0)); + } + public IList readFileLines(IValue $P0, java.util.Map $kwpActuals){ // Generated by Resolver + IList $result = null; + Type $P0Type = $P0.getType(); + if($isSubtypeOf($P0Type,$T0)){ + $result = (IList)IO_readFileLines$4b1aaff71652c293((ISourceLocation) $P0, $kwpActuals); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0)); + } + public IBool bprintln(IValue $P0){ // Generated by Resolver + IBool $result = null; + Type $P0Type = $P0.getType(); + if($isSubtypeOf($P0Type,$T1)){ + $result = (IBool)IO_bprintln$3dd978ad22652384((IValue) $P0); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0)); + } + public void print(IValue $P0){ // Generated by Resolver + Type $P0Type = $P0.getType(); + if($isSubtypeOf($P0Type,$T1)){ + try { IO_print$92b0eb45ba8d0cab((IValue) $P0); return; } catch (FailReturnFromVoidException e){}; + + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0)); + } + public IList readFileLinesEnc(IValue $P0, IValue $P1){ // Generated by Resolver + IList $result = null; + Type $P0Type = $P0.getType(); + Type $P1Type = $P1.getType(); + if($isSubtypeOf($P0Type,$T0) && $isSubtypeOf($P1Type,$T3)){ + $result = (IList)IO_readFileLinesEnc$3684048af0816067((ISourceLocation) $P0, (IString) $P1); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0, $P1)); + } + public void uudecode(IValue $P0, IValue $P1){ // Generated by Resolver + Type $P0Type = $P0.getType(); + Type $P1Type = $P1.getType(); + if($isSubtypeOf($P0Type,$T0) && $isSubtypeOf($P1Type,$T3)){ + try { IO_uudecode$7c69e2e7099865ab((ISourceLocation) $P0, (IString) $P1); return; } catch (FailReturnFromVoidException e){}; + + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0, $P1)); + } + public void writeBase64(IValue $P0, IValue $P1){ // Generated by Resolver + Type $P0Type = $P0.getType(); + Type $P1Type = $P1.getType(); + if($isSubtypeOf($P0Type,$T0) && $isSubtypeOf($P1Type,$T3)){ + try { IO_writeBase64$9e98f0af060196b2((ISourceLocation) $P0, (IString) $P1); return; } catch (FailReturnFromVoidException e){}; + + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0, $P1)); + } + public IValue printlnExp(IValue $P0){ // Generated by Resolver + IValue $result = null; + Type $P0Type = $P0.getType(); + if($isSubtypeOf($P0Type,$T6)){ + $result = (IValue)IO_printlnExp$b49750d88cd18560((IValue) $P0); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0)); + } + public IValue printlnExp(IValue $P0, IValue $P1){ // Generated by Resolver + IValue $result = null; + Type $P0Type = $P0.getType(); + Type $P1Type = $P1.getType(); + if($isSubtypeOf($P0Type,$T3) && $isSubtypeOf($P1Type,$T6)){ + $result = (IValue)IO_printlnExp$a88ede004ad859eb((IString) $P0, (IValue) $P1); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0, $P1)); + } + public void watch(IValue $P0, IValue $P1, IValue $P2){ // Generated by Resolver + Type $P0Type = $P0.getType(); + Type $P1Type = $P1.getType(); + Type $P2Type = $P2.getType(); + if($isSubtypeOf($P0Type,$T0) && $isSubtypeOf($P1Type,$T7) && $isSubtypeOf($P2Type,$T8)){ + try { IO_watch$109532ab0f0f0dda((ISourceLocation) $P0, (IBool) $P1, (TypedFunctionInstance1) $P2); return; } catch (FailReturnFromVoidException e){}; + + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0, $P1, $P2)); + } + public void writeBase32(IValue $P0, IValue $P1){ // Generated by Resolver + Type $P0Type = $P0.getType(); + Type $P1Type = $P1.getType(); + if($isSubtypeOf($P0Type,$T0) && $isSubtypeOf($P1Type,$T3)){ + try { IO_writeBase32$e46c26e9b423a0ef((ISourceLocation) $P0, (IString) $P1); return; } catch (FailReturnFromVoidException e){}; + + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0, $P1)); + } + public void mkDirectory(IValue $P0){ // Generated by Resolver + Type $P0Type = $P0.getType(); + if($isSubtypeOf($P0Type,$T0)){ + try { IO_mkDirectory$a327c555c346e973((ISourceLocation) $P0); return; } catch (FailReturnFromVoidException e){}; + + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0)); + } + public ISourceLocation arbLoc(){ // Generated by Resolver + ISourceLocation $result = null; + $result = (ISourceLocation)IO_arbLoc$7d94a673b878c7c6(); + if($result != null) return $result; + throw RuntimeExceptionFactory.callFailed($RVF.list()); + } + public void println(IValue $P0){ // Generated by Resolver + Type $P0Type = $P0.getType(); + if($isSubtypeOf($P0Type,$T1)){ + try { IO_println$940af00050348a50((IValue) $P0); return; } catch (FailReturnFromVoidException e){}; + + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0)); + } + public void println(){ // Generated by Resolver + try { IO_println$65b99fec44a8d78d(); return; } catch (FailReturnFromVoidException e){}; + + throw RuntimeExceptionFactory.callFailed($RVF.list()); + } + public IString iprintToString(IValue $P0){ // Generated by Resolver + IString $result = null; + Type $P0Type = $P0.getType(); + if($isSubtypeOf($P0Type,$T1)){ + $result = (IString)IO_iprintToString$c747648c89d779e2((IValue) $P0); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0)); + } + public void writeFileBytes(IValue $P0, IValue $P1){ // Generated by Resolver + Type $P0Type = $P0.getType(); + Type $P1Type = $P1.getType(); + if($isSubtypeOf($P0Type,$T0) && $isSubtypeOf($P1Type,$T10)){ + try { IO_writeFileBytes$0c8db72a6ebf3e9d((ISourceLocation) $P0, (IList) $P1); return; } catch (FailReturnFromVoidException e){}; + + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0, $P1)); + } + public IValue printExp(IValue $P0){ // Generated by Resolver + IValue $result = null; + Type $P0Type = $P0.getType(); + if($isSubtypeOf($P0Type,$T6)){ + $result = (IValue)IO_printExp$aa807cbdeda63b88((IValue) $P0); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0)); + } + public IValue printExp(IValue $P0, IValue $P1){ // Generated by Resolver + IValue $result = null; + Type $P0Type = $P0.getType(); + Type $P1Type = $P1.getType(); + if($isSubtypeOf($P0Type,$T3) && $isSubtypeOf($P1Type,$T6)){ + $result = (IValue)IO_printExp$948ec89b717e30e4((IString) $P0, (IValue) $P1); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0, $P1)); + } + public void appendToFile(IValue $P0, IValue $P1, java.util.Map $kwpActuals){ // Generated by Resolver + Type $P0Type = $P0.getType(); + Type $P1Type = $P1.getType(); + if($isSubtypeOf($P0Type,$T0) && $isSubtypeOf($P1Type,$T5)){ + try { IO_appendToFile$b2c3019bb1d0700f((ISourceLocation) $P0, (IList) $P1, $kwpActuals); return; } catch (FailReturnFromVoidException e){}; + + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0, $P1)); + } + public void copyFile(IValue $P0, IValue $P1){ // Generated by Resolver + Type $P0Type = $P0.getType(); + Type $P1Type = $P1.getType(); + if($isSubtypeOf($P0Type,$T0) && $isSubtypeOf($P1Type,$T0)){ + try { IO_copyFile$bc8c4d06598998e1((ISourceLocation) $P0, (ISourceLocation) $P1); return; } catch (FailReturnFromVoidException e){}; + + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0, $P1)); + } + public void move(IValue $P0, IValue $P1, java.util.Map $kwpActuals){ // Generated by Resolver + Type $P0Type = $P0.getType(); + Type $P1Type = $P1.getType(); + if($isSubtypeOf($P0Type,$T0) && $isSubtypeOf($P1Type,$T0)){ + try { IO_move$7b018fae0f5aced6((ISourceLocation) $P0, (ISourceLocation) $P1, $kwpActuals); return; } catch (FailReturnFromVoidException e){}; + + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0, $P1)); + } + public IString readFile(IValue $P0, java.util.Map $kwpActuals){ // Generated by Resolver + IString $result = null; + Type $P0Type = $P0.getType(); + if($isSubtypeOf($P0Type,$T0)){ + $result = (IString)IO_readFile$b19e69121dd2f077((ISourceLocation) $P0, $kwpActuals); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0)); + } + public IList listEntries(IValue $P0){ // Generated by Resolver + IList $result = null; + Type $P0Type = $P0.getType(); + if($isSubtypeOf($P0Type,$T0)){ + $result = (IList)IO_listEntries$2acbb365e81a5100((ISourceLocation) $P0); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0)); + } + public void copy(IValue $P0, IValue $P1, java.util.Map $kwpActuals){ // Generated by Resolver + Type $P0Type = $P0.getType(); + Type $P1Type = $P1.getType(); + if($isSubtypeOf($P0Type,$T0) && $isSubtypeOf($P1Type,$T0)){ + try { IO_copy$2b7816b64efe7fa8((ISourceLocation) $P0, (ISourceLocation) $P1, $kwpActuals); return; } catch (FailReturnFromVoidException e){}; + + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0, $P1)); + } + public IString uuencode(IValue $P0){ // Generated by Resolver + IString $result = null; + Type $P0Type = $P0.getType(); + if($isSubtypeOf($P0Type,$T0)){ + $result = (IString)IO_uuencode$8a10b8c9efe38cc0((ISourceLocation) $P0); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0)); + } + public void unwatch(IValue $P0, IValue $P1, IValue $P2){ // Generated by Resolver + Type $P0Type = $P0.getType(); + Type $P1Type = $P1.getType(); + Type $P2Type = $P2.getType(); + if($isSubtypeOf($P0Type,$T0) && $isSubtypeOf($P1Type,$T7) && $isSubtypeOf($P2Type,$T8)){ + try { IO_unwatch$29fe25f5d595f14f((ISourceLocation) $P0, (IBool) $P1, (TypedFunctionInstance1) $P2); return; } catch (FailReturnFromVoidException e){}; + + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0, $P1, $P2)); + } + public IString createLink(IValue $P0, IValue $P1){ // Generated by Resolver + IString $result = null; + Type $P0Type = $P0.getType(); + Type $P1Type = $P1.getType(); + if($isSubtypeOf($P0Type,$T3) && $isSubtypeOf($P1Type,$T3)){ + $result = (IString)IO_createLink$77fce1eedcd41a29((IString) $P0, (IString) $P1); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0, $P1)); + } + public ISet capabilities(IValue $P0){ // Generated by Resolver + ISet $result = null; + Type $P0Type = $P0.getType(); + if($isSubtypeOf($P0Type,$T0)){ + $result = (ISet)IO_capabilities$690ea121bc6a3a4e((ISourceLocation) $P0); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0)); + } + public IValue iprintlnExp(IValue $P0){ // Generated by Resolver + IValue $result = null; + Type $P0Type = $P0.getType(); + if($isSubtypeOf($P0Type,$T6)){ + $result = (IValue)IO_iprintlnExp$39578a072d3af0a3((IValue) $P0); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0)); + } + public void copyDirectory(IValue $P0, IValue $P1){ // Generated by Resolver + Type $P0Type = $P0.getType(); + Type $P1Type = $P1.getType(); + if($isSubtypeOf($P0Type,$T0) && $isSubtypeOf($P1Type,$T0)){ + try { IO_copyDirectory$616cbca28ab11f77((ISourceLocation) $P0, (ISourceLocation) $P1); return; } catch (FailReturnFromVoidException e){}; + + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0, $P1)); + } + public ISourceLocation find(IValue $P0, IValue $P1){ // Generated by Resolver + ISourceLocation $result = null; + Type $P0Type = $P0.getType(); + Type $P1Type = $P1.getType(); + if($isSubtypeOf($P0Type,$T3) && $isSubtypeOf($P1Type,$T12)){ + $result = (ISourceLocation)IO_find$b7dd966cf6c0e7c2((IString) $P0, (IList) $P1); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0, $P1)); + } + public IList readFileBytes(IValue $P0){ // Generated by Resolver + IList $result = null; + Type $P0Type = $P0.getType(); + if($isSubtypeOf($P0Type,$T0)){ + $result = (IList)IO_readFileBytes$5083dcf66416aa92((ISourceLocation) $P0); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0)); + } + public IValue iprintExp(IValue $P0){ // Generated by Resolver + IValue $result = null; + Type $P0Type = $P0.getType(); + if($isSubtypeOf($P0Type,$T6)){ + $result = (IValue)IO_iprintExp$2ee37e5de7a1d10f((IValue) $P0); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0)); + } + public void rprint(IValue $P0){ // Generated by Resolver + Type $P0Type = $P0.getType(); + if($isSubtypeOf($P0Type,$T1)){ + try { IO_rprint$a233373bf203ad10((IValue) $P0); return; } catch (FailReturnFromVoidException e){}; + + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0)); + } + public void writeFile(IValue $P0, IValue $P1, java.util.Map $kwpActuals){ // Generated by Resolver + Type $P0Type = $P0.getType(); + Type $P1Type = $P1.getType(); + if($isSubtypeOf($P0Type,$T0) && $isSubtypeOf($P1Type,$T5)){ + try { IO_writeFile$e568a8263ade98e3((ISourceLocation) $P0, (IList) $P1, $kwpActuals); return; } catch (FailReturnFromVoidException e){}; + + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0, $P1)); + } + public void iprintToFile(IValue $P0, IValue $P1, java.util.Map $kwpActuals){ // Generated by Resolver + Type $P0Type = $P0.getType(); + Type $P1Type = $P1.getType(); + if($isSubtypeOf($P0Type,$T0) && $isSubtypeOf($P1Type,$T1)){ + try { IO_iprintToFile$2fcda4fb1d15a6b5((ISourceLocation) $P0, (IValue) $P1, $kwpActuals); return; } catch (FailReturnFromVoidException e){}; + + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0, $P1)); + } + public void registerLocations(IValue $P0, IValue $P1, IValue $P2){ // Generated by Resolver + Type $P0Type = $P0.getType(); + Type $P1Type = $P1.getType(); + Type $P2Type = $P2.getType(); + if($isSubtypeOf($P0Type,$T3) && $isSubtypeOf($P1Type,$T3) && $isSubtypeOf($P2Type,$T13)){ + try { IO_registerLocations$6708266b2894b2b9((IString) $P0, (IString) $P1, (IMap) $P2); return; } catch (FailReturnFromVoidException e){}; + + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0, $P1, $P2)); + } + public IBool exists(IValue $P0){ // Generated by Resolver + IBool $result = null; + Type $P0Type = $P0.getType(); + if($isSubtypeOf($P0Type,$T0)){ + $result = (IBool)IO_exists$1434fcb1b8dcf974((ISourceLocation) $P0); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0)); + } + public void writeFileEnc(IValue $P0, IValue $P1, IValue $P2){ // Generated by Resolver + Type $P0Type = $P0.getType(); + Type $P1Type = $P1.getType(); + Type $P2Type = $P2.getType(); + if($isSubtypeOf($P0Type,$T0) && $isSubtypeOf($P1Type,$T3) && $isSubtypeOf($P2Type,$T5)){ + try { IO_writeFileEnc$366c164ad64d9b51((ISourceLocation) $P0, (IString) $P1, (IList) $P2); return; } catch (FailReturnFromVoidException e){}; + + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0, $P1, $P2)); + } + public void touch(IValue $P0){ // Generated by Resolver + Type $P0Type = $P0.getType(); + if($isSubtypeOf($P0Type,$T0)){ + try { IO_touch$ffcc8dcde35abdbc((ISourceLocation) $P0); return; } catch (FailReturnFromVoidException e){}; + + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0)); + } + public IDateTime lastModified(IValue $P0){ // Generated by Resolver + IDateTime $result = null; + Type $P0Type = $P0.getType(); + if($isSubtypeOf($P0Type,$T0)){ + $result = (IDateTime)IO_lastModified$535dddb3603abc18((ISourceLocation) $P0); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0)); + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/IO.rsc|(832,1286,<25,0>,<46,89>) + public void IO_registerLocations$6708266b2894b2b9(IString scheme_0, IString authority_1, IMap m_2){ + + + $Prelude.registerLocations(scheme_0, authority_1, m_2); + return; + + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/IO.rsc|(2120,245,<48,0>,<53,57>) + public void IO_unregisterLocations$8ea0884c966fa575(IString scheme_0, IString authority_1){ + + + $Prelude.unregisterLocations(scheme_0, authority_1); + return; + + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/IO.rsc|(2367,74,<55,0>,<56,32>) + public ISourceLocation IO_resolveLocation$ad3865e0ee0205af(ISourceLocation l_0){ + + + return ((ISourceLocation)((ISourceLocation)$Prelude.resolveLocation(l_0))); + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/IO.rsc|(2443,3344,<58,0>,<100,42>) + public ISet IO_findResources$e54d9f39f2ac43e7(IString fileName_0){ + + + return ((ISet)((ISet)$Prelude.findResources(fileName_0))); + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/IO.rsc|(5788,91,<101,0>,<101,91>) + public ISet IO_findResources$dc47b57efa67f3b1(ISourceLocation path_0){ + + + if((((IBool)($equal(((IString)(((IString)($aloc_get_field(((ISourceLocation)path_0), "scheme"))))), ((IString)$constants.get(0)/*"relative"*/))))).getValue()){ + return ((ISet)($me.findResources(((IString)(((IString)($aloc_get_field(((ISourceLocation)path_0), "path")))))))); + + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/IO.rsc|(5881,1158,<103,0>,<131,1>) + public ISourceLocation IO_getResource$a62508a79e67475b(IString fileName_0){ + + + ISet result_1 = ((ISet)($me.findResources(((IString)fileName_0)))); + final ISet $switchVal0 = ((ISet)result_1); + boolean noCaseMatched_$switchVal0 = true; + SWITCH0: switch(Fingerprint.getFingerprint($switchVal0)){ + + case 113762: + if(noCaseMatched_$switchVal0){ + noCaseMatched_$switchVal0 = false; + if($isSubtypeOf($switchVal0.getType(),$T17)){ + /*muExists*/CASE_113762_0: + do { + if($switchVal0.equals(((ISet)$constants.get(1)/*{}*/))){ + final Template $template2 = (Template)new Template($RVF, ""); + $template2.addStr(((IString)fileName_0).getValue()); + $template2.addStr(" not found"); + throw new Throw($RVF.constructor(M_Exception.RuntimeException_IO_str, new IValue[]{((IString)($template2.close()))})); + } + + } while(false); + + } + if($isSubtypeOf($switchVal0.getType(),$T18)){ + /*muExists*/CASE_113762_1: + do { + ISet $subject3 = (ISet)($switchVal0); + if(((ISet)($subject3)).size() >= 1){ + CASE_113762_1_SET_VARsingleton: + for(IValue $elem6_for : ((ISet)($subject3))){ + ISourceLocation $elem6 = (ISourceLocation) $elem6_for; + ISourceLocation singleton_2 = ((ISourceLocation)($elem6)); + final ISet $subject5 = ((ISet)(((ISet)($subject3)).delete(((ISourceLocation)singleton_2)))); + if(((ISet)($subject5)).size() == 0){ + return ((ISourceLocation)singleton_2); + + } else { + continue CASE_113762_1_SET_VARsingleton;/*set pat3*/ + } + } + + + } + + } while(false); + + } + + } + + + default: final Template $template1 = (Template)new Template($RVF, ""); + $template1.addStr(((IString)fileName_0).getValue()); + $template1.addStr(" found more than once: "); + $template1.beginIndent(" "); + $template1.addVal(result_1); + $template1.endIndent(" "); + + throw new Throw($RVF.constructor(M_Exception.RuntimeException_IO_str, new IValue[]{((IString)($template1.close()))})); + } + + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/IO.rsc|(7042,868,<133,0>,<150,24>) + public void IO_appendToFile$b2c3019bb1d0700f(ISourceLocation file_0, IList V_1, java.util.Map $kwpActuals){ + + java.util.Map $kwpDefaults = Util.kwpMap(); + IString $kwpDefault_charset = ((IString)DEFAULT_CHARSET); + $kwpDefaults.put("charset", $kwpDefault_charset);IBool $kwpDefault_inferCharset = $RVF.bool(!$kwpActuals.containsKey("charset")); + $kwpDefaults.put("inferCharset", $kwpDefault_inferCharset); + $Prelude.appendToFile(file_0, V_1, (IString)($kwpActuals.containsKey("charset") ? $kwpActuals.get("charset") : $kwpDefaults.get("charset")), (IBool)($kwpActuals.containsKey("inferCharset") ? $kwpActuals.get("inferCharset") : $kwpDefaults.get("inferCharset"))); + return; + + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/IO.rsc|(7912,682,<152,0>,<167,63>) + public void IO_appendToFileEnc$b0af0d043e746edc(ISourceLocation file_0, IString charset_1, IList V_2){ + + + $me.appendToFile(((ISourceLocation)file_0), V_2, Util.kwpMap("charset", charset_1, "inferCharset", ((IBool)$constants.get(2)/*false*/))); + return; + + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/IO.rsc|(8596,123,<169,0>,<171,32>) + public ISet IO_charsets$5741e8924db30a5d(){ + + + return ((ISet)((ISet)$Prelude.charsets())); + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/IO.rsc|(8721,176,<173,0>,<175,44>) + public ISet IO_canEncode$8f2f7cac6b8255e8(IString charset_0){ + + + return ((ISet)((ISet)$Prelude.canEncode(charset_0))); + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/IO.rsc|(8899,418,<177,0>,<192,1>) + public IBool IO_bprintln$3dd978ad22652384(IValue arg_0){ + + + $me.println(((IValue)arg_0)); + return ((IBool)$constants.get(3)/*true*/); + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/IO.rsc|(9319,372,<194,0>,<209,34>) + public IBool IO_exists$1434fcb1b8dcf974(ISourceLocation file_0){ + + + return ((IBool)((IBool)$Prelude.exists(file_0))); + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/IO.rsc|(9694,396,<212,0>,<227,1>) + public ISourceLocation IO_find$b7dd966cf6c0e7c2(IString name_0, IList path_1){ + + + /*muExists*/IF1: + do { + IF1_GEN9967: + for(IValue $elem9_for : ((IList)path_1)){ + ISourceLocation $elem9 = (ISourceLocation) $elem9_for; + ISourceLocation dir_2 = ((ISourceLocation)($elem9)); + final Template $template7 = (Template)new Template($RVF, "/"); + $template7.beginIndent(" "); + $template7.addStr(((IString)name_0).getValue()); + $template7.endIndent(" "); + final ISourceLocation $subject_val8 = ((ISourceLocation)($aloc_add_astr(((ISourceLocation)dir_2),((IString)($template7.close()))))); + ISourceLocation f_3 = ((ISourceLocation)($subject_val8)); + if((((IBool)($me.exists(((ISourceLocation)f_3))))).getValue()){ + return ((ISourceLocation)f_3); + + } else { + continue IF1_GEN9967; + } + } + + + } while(false); + final ISetWriter $setwriter10 = (ISetWriter)$RVF.setWriter(); + ; + $SCOMP11_GEN10074: + for(IValue $elem13_for : ((IList)path_1)){ + ISourceLocation $elem13 = (ISourceLocation) $elem13_for; + ISourceLocation dir_4 = null; + final Template $template12 = (Template)new Template($RVF, "/"); + $template12.beginIndent(" "); + $template12.addStr(((IString)name_0).getValue()); + $template12.endIndent(" "); + $setwriter10.insert($aloc_add_astr(((ISourceLocation)($elem13)),((IString)($template12.close())))); + + } + + throw new Throw($RVF.constructor(M_Exception.RuntimeException_PathNotFound_set_loc, new IValue[]{((ISet)($setwriter10.done()))})); + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/IO.rsc|(10092,205,<229,0>,<234,39>) + public IBool IO_isDirectory$f70ff48d80811e3c(ISourceLocation file_0){ + + + return ((IBool)((IBool)$Prelude.isDirectory(file_0))); + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/IO.rsc|(10299,464,<236,0>,<249,57>) + public void IO_iprint$8519f29f09d8b95d(IValue arg_0, java.util.Map $kwpActuals){ + + java.util.Map $kwpDefaults = $kwpDefaults_IO_iprint$8519f29f09d8b95d; + + $Prelude.iprint(arg_0, (IInteger)($kwpActuals.containsKey("lineLimit") ? $kwpActuals.get("lineLimit") : $kwpDefaults.get("lineLimit"))); + return; + + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/IO.rsc|(10766,557,<251,0>,<264,80>) + public void IO_iprintToFile$2fcda4fb1d15a6b5(ISourceLocation file_0, IValue arg_1, java.util.Map $kwpActuals){ + + java.util.Map $kwpDefaults = Util.kwpMap(); + IString $kwpDefault_charset = ((IString)DEFAULT_CHARSET); + $kwpDefaults.put("charset", $kwpDefault_charset); + $Prelude.iprintToFile(file_0, arg_1, (IString)($kwpActuals.containsKey("charset") ? $kwpActuals.get("charset") : $kwpDefaults.get("charset"))); + return; + + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/IO.rsc|(11326,84,<266,0>,<267,42>) + public IString IO_iprintToString$c747648c89d779e2(IValue arg_0){ + + + return ((IString)((IString)$Prelude.iprintToString(arg_0))); + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/IO.rsc|(11413,324,<270,0>,<283,1>) + public IValue IO_iprintExp$2ee37e5de7a1d10f(IValue v_0){ + + + HashMap $typeBindings = new HashMap<>(); + if($T6.match(v_0.getType(), $typeBindings)){ + $me.iprint(((IValue)v_0), Util.kwpMap()); + final IValue $result14 = ((IValue)v_0); + if($T20.instantiate($typeBindings) != $TF.voidType() && $isSubtypeOf($result14.getType(),$T20)){ + return ((IValue)($result14)); + + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/IO.rsc|(11740,358,<286,0>,<299,1>) + public IValue IO_iprintlnExp$39578a072d3af0a3(IValue v_0){ + + + HashMap $typeBindings = new HashMap<>(); + if($T6.match(v_0.getType(), $typeBindings)){ + $me.iprintln(((IValue)v_0), Util.kwpMap()); + final IValue $result15 = ((IValue)v_0); + if($T20.instantiate($typeBindings) != $TF.voidType() && $isSubtypeOf($result15.getType(),$T20)){ + return ((IValue)($result15)); + + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/IO.rsc|(12102,675,<303,0>,<319,59>) + public void IO_iprintln$e630d4c5c6614fca(IValue arg_0, java.util.Map $kwpActuals){ + + java.util.Map $kwpDefaults = $kwpDefaults_IO_iprintln$e630d4c5c6614fca; + + $Prelude.iprintln(arg_0, (IInteger)($kwpActuals.containsKey("lineLimit") ? $kwpActuals.get("lineLimit") : $kwpDefaults.get("lineLimit"))); + return; + + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/IO.rsc|(12781,226,<322,0>,<327,34>) + public IBool IO_isFile$f74fdf3db6ed7ce0(ISourceLocation file_0){ + + + return ((IBool)((IBool)$Prelude.isFile(file_0))); + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/IO.rsc|(13011,387,<331,0>,<345,44>) + public IDateTime IO_lastModified$535dddb3603abc18(ISourceLocation file_0){ + + + return ((IDateTime)((IDateTime)$Prelude.lastModified(file_0))); + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/IO.rsc|(13401,367,<348,0>,<362,39>) + public IDateTime IO_created$b9550524d3128d61(ISourceLocation file_0){ + + + return ((IDateTime)((IDateTime)$Prelude.created(file_0))); + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/IO.rsc|(13772,167,<366,0>,<368,26>) + public void IO_touch$ffcc8dcde35abdbc(ISourceLocation file_0){ + + + $Prelude.touch(file_0); + return; + + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/IO.rsc|(13942,162,<371,0>,<373,56>) + public void IO_setLastModified$77ace42c2a009ccb(ISourceLocation file_0, IDateTime timestamp_1){ + + + $Prelude.setLastModified(file_0, timestamp_1); + return; + + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/IO.rsc|(14107,323,<376,0>,<390,44>) + public IList IO_listEntries$2acbb365e81a5100(ISourceLocation file_0){ + + + return ((IList)((IList)$Prelude.listEntries(file_0))); + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/IO.rsc|(14434,195,<394,0>,<400,24>) + public void IO_mkDirectory$a327c555c346e973(ISourceLocation file_0){ + + + $Prelude.mkDirectory(file_0); + return; + + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/IO.rsc|(14632,602,<403,0>,<421,34>) + public void IO_print$92b0eb45ba8d0cab(IValue arg_0){ + + + $Prelude.print(arg_0); + return; + + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/IO.rsc|(15237,217,<424,0>,<435,1>) + public IValue IO_printExp$aa807cbdeda63b88(IValue v_0){ + + + HashMap $typeBindings = new HashMap<>(); + if($T6.match(v_0.getType(), $typeBindings)){ + final Template $template16 = (Template)new Template($RVF, ""); + $template16.addVal(v_0); + $me.print(((IValue)($template16.close()))); + final IValue $result17 = ((IValue)v_0); + if($T20.instantiate($typeBindings) != $TF.voidType() && $isSubtypeOf($result17.getType(),$T20)){ + return ((IValue)($result17)); + + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/IO.rsc|(15456,68,<437,0>,<440,1>) + public IValue IO_printExp$948ec89b717e30e4(IString msg_0, IValue v_1){ + + + HashMap $typeBindings = new HashMap<>(); + if($T6.match(v_1.getType(), $typeBindings)){ + final Template $template18 = (Template)new Template($RVF, ""); + $template18.addStr(((IString)msg_0).getValue()); + ;$template18.addVal(v_1); + $me.print(((IValue)($template18.close()))); + final IValue $result19 = ((IValue)v_1); + if($T20.instantiate($typeBindings) != $TF.voidType() && $isSubtypeOf($result19.getType(),$T20)){ + return ((IValue)($result19)); + + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/IO.rsc|(15527,766,<443,0>,<474,36>) + public void IO_println$940af00050348a50(IValue arg_0){ + + + $Prelude.println(arg_0); + return; + + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/IO.rsc|(16295,69,<476,0>,<477,27>) + public void IO_println$65b99fec44a8d78d(){ + + + $Prelude.println(); + return; + + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/IO.rsc|(16367,383,<480,0>,<493,1>) + public IValue IO_printlnExp$b49750d88cd18560(IValue v_0){ + + + HashMap $typeBindings = new HashMap<>(); + if($T6.match(v_0.getType(), $typeBindings)){ + final Template $template20 = (Template)new Template($RVF, ""); + $template20.addVal(v_0); + $me.println(((IValue)($template20.close()))); + final IValue $result21 = ((IValue)v_0); + if($T20.instantiate($typeBindings) != $TF.voidType() && $isSubtypeOf($result21.getType(),$T20)){ + return ((IValue)($result21)); + + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/IO.rsc|(16752,72,<495,0>,<498,1>) + public IValue IO_printlnExp$a88ede004ad859eb(IString msg_0, IValue v_1){ + + + HashMap $typeBindings = new HashMap<>(); + if($T6.match(v_1.getType(), $typeBindings)){ + final Template $template22 = (Template)new Template($RVF, ""); + $template22.addStr(((IString)msg_0).getValue()); + ;$template22.addVal(v_1); + $me.println(((IValue)($template22.close()))); + final IValue $result23 = ((IValue)v_1); + if($T20.instantiate($typeBindings) != $TF.voidType() && $isSubtypeOf($result23.getType(),$T20)){ + return ((IValue)($result23)); + + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/IO.rsc|(16827,221,<501,0>,<509,35>) + public void IO_rprint$a233373bf203ad10(IValue arg_0){ + + + $Prelude.rprint(arg_0); + return; + + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/IO.rsc|(17056,243,<513,0>,<521,37>) + public void IO_rprintln$8b703d3f54a01b68(IValue arg_0){ + + + $Prelude.rprintln(arg_0); + return; + + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/IO.rsc|(17302,1660,<524,0>,<553,24>) + public IString IO_readFile$b19e69121dd2f077(ISourceLocation file_0, java.util.Map $kwpActuals){ + + java.util.Map $kwpDefaults = Util.kwpMap(); + IString $kwpDefault_charset = ((IString)DEFAULT_CHARSET); + $kwpDefaults.put("charset", $kwpDefault_charset);IBool $kwpDefault_inferCharset = $RVF.bool(!$kwpActuals.containsKey("charset")); + $kwpDefaults.put("inferCharset", $kwpDefault_inferCharset); + return ((IString)((IString)$Prelude.readFile(file_0, (IString)($kwpActuals.containsKey("charset") ? $kwpActuals.get("charset") : $kwpDefaults.get("charset")), (IBool)($kwpActuals.containsKey("inferCharset") ? $kwpActuals.get("inferCharset") : $kwpDefaults.get("inferCharset"))))); + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/IO.rsc|(18964,439,<555,0>,<564,56>) + public IString IO_readFileEnc$28e8b07737a85a02(ISourceLocation file_0, IString charset_1){ + + + return ((IString)($me.readFile(((ISourceLocation)file_0), Util.kwpMap("inferCharset", ((IBool)$constants.get(2)/*false*/), "charset", charset_1)))); + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/IO.rsc|(19405,227,<566,0>,<571,24>) + public IString IO_readBase64$e403bc4c7f63d90b(ISourceLocation file_0, java.util.Map $kwpActuals){ + + java.util.Map $kwpDefaults = $kwpDefaults_IO_readBase64$e403bc4c7f63d90b; + + return ((IString)((IString)$Prelude.readBase64(file_0, (IBool)($kwpActuals.containsKey("includePadding") ? $kwpActuals.get("includePadding") : $kwpDefaults.get("includePadding"))))); + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/IO.rsc|(19634,88,<573,0>,<576,49>) + public IString IO_uuencode$8a10b8c9efe38cc0(ISourceLocation file_0){ + + + return ((IString)($me.readBase64(((ISourceLocation)file_0), Util.kwpMap()))); + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/IO.rsc|(19724,219,<578,0>,<583,24>) + public void IO_writeBase64$9e98f0af060196b2(ISourceLocation file_0, IString content_1){ + + + $Prelude.writeBase64(file_0, content_1); + return; + + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/IO.rsc|(19945,113,<585,0>,<588,73>) + public void IO_uudecode$7c69e2e7099865ab(ISourceLocation file_0, IString content_1){ + + + $me.writeBase64(((ISourceLocation)file_0), ((IString)content_1)); + return; + + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/IO.rsc|(20060,227,<590,0>,<595,24>) + public IString IO_readBase32$c3263d5cb496b291(ISourceLocation file_0, java.util.Map $kwpActuals){ + + java.util.Map $kwpDefaults = $kwpDefaults_IO_readBase32$c3263d5cb496b291; + + return ((IString)((IString)$Prelude.readBase32(file_0, (IBool)($kwpActuals.containsKey("includePadding") ? $kwpActuals.get("includePadding") : $kwpDefaults.get("includePadding"))))); + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/IO.rsc|(20289,219,<597,0>,<602,24>) + public void IO_writeBase32$e46c26e9b423a0ef(ISourceLocation file_0, IString content_1){ + + + $Prelude.writeBase32(file_0, content_1); + return; + + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/IO.rsc|(20510,185,<604,0>,<607,24>) + public IList IO_readFileBytes$5083dcf66416aa92(ISourceLocation file_0){ + + + return ((IList)((IList)$Prelude.readFileBytes(file_0))); + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/IO.rsc|(20699,781,<611,0>,<626,24>) + public IList IO_readFileLines$4b1aaff71652c293(ISourceLocation file_0, java.util.Map $kwpActuals){ + + java.util.Map $kwpDefaults = Util.kwpMap(); + IString $kwpDefault_charset = ((IString)DEFAULT_CHARSET); + $kwpDefaults.put("charset", $kwpDefault_charset); + return ((IList)((IList)$Prelude.readFileLines(file_0, (IString)($kwpActuals.containsKey("charset") ? $kwpActuals.get("charset") : $kwpDefaults.get("charset"))))); + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/IO.rsc|(21482,487,<628,0>,<639,1>) + public void IO_writeFileLines$c9280a460e0da623(ISourceLocation file_0, IList lines_1, java.util.Map $kwpActuals){ + + java.util.Map $kwpDefaults = Util.kwpMap(); + IString $kwpDefault_charset = ((IString)DEFAULT_CHARSET); + $kwpDefaults.put("charset", $kwpDefault_charset); + final Template $template24 = (Template)new Template($RVF, ""); + /*muExists*/LAB2: + do { + LAB2_GEN21879: + for(IValue $elem25_for : ((IList)lines_1)){ + IString $elem25 = (IString) $elem25_for; + IString line_3 = null; + ;$template24.addStr(((IString)($elem25)).getValue()); + $template24.addStr("\n"); + + } + continue LAB2; + + } while(false); + $me.writeFile(((ISourceLocation)file_0), $RVF.list($template24.close()), Util.kwpMapExtend(Util.kwpMapRemoveRedeclared($kwpActuals, "charset"), "charset", ((IString) ($kwpActuals.containsKey("charset") ? $kwpActuals.get("charset") : $kwpDefaults.get("charset"))))); + return; + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/IO.rsc|(21971,427,<641,0>,<651,41>) + public IList IO_readFileLinesEnc$3684048af0816067(ISourceLocation file_0, IString charset_1){ + + + return ((IList)($me.readFileLines(((ISourceLocation)file_0), Util.kwpMap("charset", charset_1)))); + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/IO.rsc|(22401,107,<654,0>,<655,65>) + public void IO_remove$7ee95f40dde4956c(ISourceLocation file_0, java.util.Map $kwpActuals){ + + java.util.Map $kwpDefaults = $kwpDefaults_IO_remove$7ee95f40dde4956c; + + $Prelude.remove(file_0, (IBool)($kwpActuals.containsKey("recursive") ? $kwpActuals.get("recursive") : $kwpDefaults.get("recursive"))); + return; + + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/IO.rsc|(22511,600,<658,0>,<671,24>) + public void IO_writeFile$e568a8263ade98e3(ISourceLocation file_0, IList V_1, java.util.Map $kwpActuals){ + + java.util.Map $kwpDefaults = Util.kwpMap(); + IString $kwpDefault_charset = ((IString)DEFAULT_CHARSET); + $kwpDefaults.put("charset", $kwpDefault_charset); + $Prelude.writeFile(file_0, V_1, (IString)($kwpActuals.containsKey("charset") ? $kwpActuals.get("charset") : $kwpDefaults.get("charset"))); + return; + + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/IO.rsc|(23113,169,<673,0>,<676,24>) + public void IO_writeFileBytes$0c8db72a6ebf3e9d(ISourceLocation file_0, IList bytes_1){ + + + $Prelude.writeFileBytes(file_0, bytes_1); + return; + + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/IO.rsc|(23285,606,<679,0>,<694,40>) + public void IO_writeFileEnc$366c164ad64d9b51(ISourceLocation file_0, IString charset_1, IList V_2){ + + + $me.writeFile(((ISourceLocation)file_0), V_2, Util.kwpMap("charset", charset_1)); + return; + + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/IO.rsc|(23894,231,<697,0>,<704,24>) + public IString IO_md5HashFile$4f8764080ca4ef11(ISourceLocation file_0){ + + + return ((IString)((IString)$Prelude.md5HashFile(file_0))); + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/IO.rsc|(24127,75,<706,0>,<707,33>) + public IString IO_md5Hash$8849b64c711c3dc4(IValue v_0){ + + + return ((IString)((IString)$Prelude.md5Hash(v_0))); + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/IO.rsc|(24204,92,<709,0>,<710,50>) + public IString IO_createLink$77fce1eedcd41a29(IString title_0, IString target_1){ + + + return ((IString)((IString)$Prelude.createLink(title_0, target_1))); + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/IO.rsc|(24299,168,<713,0>,<718,24>) + public IString IO_toBase64$444f08dbde4c25dd(ISourceLocation file_0, java.util.Map $kwpActuals){ + + java.util.Map $kwpDefaults = $kwpDefaults_IO_toBase64$444f08dbde4c25dd; + + return ((IString)((IString)$Prelude.toBase64(file_0, (IBool)($kwpActuals.containsKey("includePadding") ? $kwpActuals.get("includePadding") : $kwpDefaults.get("includePadding"))))); + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/IO.rsc|(24469,134,<720,0>,<721,92>) + public void IO_copy$2b7816b64efe7fa8(ISourceLocation source_0, ISourceLocation target_1, java.util.Map $kwpActuals){ + + java.util.Map $kwpDefaults = $kwpDefaults_IO_copy$2b7816b64efe7fa8; + + $Prelude.copy(source_0, target_1, (IBool)($kwpActuals.containsKey("recursive") ? $kwpActuals.get("recursive") : $kwpDefaults.get("recursive")), (IBool)($kwpActuals.containsKey("overwrite") ? $kwpActuals.get("overwrite") : $kwpDefaults.get("overwrite"))); + return; + + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/IO.rsc|(24605,145,<723,0>,<728,1>) + public void IO_copyFile$bc8c4d06598998e1(ISourceLocation source_0, ISourceLocation target_1){ + + + $me.copy(((ISourceLocation)source_0), ((ISourceLocation)target_1), Util.kwpMap("recursive", ((IBool)$constants.get(2)/*false*/), "overwrite", ((IBool)$constants.get(3)/*true*/))); + return; + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/IO.rsc|(24752,149,<730,0>,<735,1>) + public void IO_copyDirectory$616cbca28ab11f77(ISourceLocation source_0, ISourceLocation target_1){ + + + $me.copy(((ISourceLocation)source_0), ((ISourceLocation)target_1), Util.kwpMap("recursive", ((IBool)$constants.get(3)/*true*/), "overwrite", ((IBool)$constants.get(3)/*true*/))); + return; + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/IO.rsc|(24903,112,<737,0>,<738,70>) + public void IO_move$7b018fae0f5aced6(ISourceLocation source_0, ISourceLocation target_1, java.util.Map $kwpActuals){ + + java.util.Map $kwpDefaults = $kwpDefaults_IO_move$7b018fae0f5aced6; + + $Prelude.move(source_0, target_1, (IBool)($kwpActuals.containsKey("overwrite") ? $kwpActuals.get("overwrite") : $kwpDefaults.get("overwrite"))); + return; + + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/IO.rsc|(25017,60,<740,0>,<741,18>) + public ISourceLocation IO_arbLoc$7d94a673b878c7c6(){ + + + return ((ISourceLocation)((ISourceLocation)$Prelude.arbLoc())); + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/IO.rsc|(25313,125,<755,0>,<756,83>) + public void IO_watch$109532ab0f0f0dda(ISourceLocation src_0, IBool recursive_1, TypedFunctionInstance1 watcher_2){ + + + $Prelude.watch(src_0, recursive_1, watcher_2); + return; + + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/IO.rsc|(25440,127,<758,0>,<759,85>) + public void IO_unwatch$29fe25f5d595f14f(ISourceLocation src_0, IBool recursive_1, TypedFunctionInstance1 watcher_2){ + + + $Prelude.unwatch(src_0, recursive_1, watcher_2); + return; + + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/IO.rsc|(26991,150,<796,0>,<798,50>) + public ISet IO_capabilities$690ea121bc6a3a4e(ISourceLocation location_0){ + + + return ((ISet)((ISet)$Prelude.capabilities(location_0))); + + } + + + public static void main(String[] args) { + throw new RuntimeException("No function `main` found in Rascal module `IO`"); + } +} \ No newline at end of file diff --git a/src/rascal/$IO.tpl b/src/rascal/$IO.tpl new file mode 100644 index 00000000000..e865716b0a4 Binary files /dev/null and b/src/rascal/$IO.tpl differ diff --git a/src/rascal/$IO_$I.java b/src/rascal/$IO_$I.java new file mode 100644 index 00000000000..1e600b9805a --- /dev/null +++ b/src/rascal/$IO_$I.java @@ -0,0 +1,70 @@ +package rascal; +import io.usethesource.vallang.*; +import org.rascalmpl.runtime.function.*; + +@SuppressWarnings("unused") +public interface $IO_$I { + void appendToFile(IValue $0, IValue $1, java.util.Map $kwpActuals); + void appendToFileEnc(IValue $0, IValue $1, IValue $2); + IValue arbLoc(); + IValue bprintln(IValue $0); + IValue canEncode(IValue $0); + IValue capabilities(IValue $0); + IValue charsets(); + void copy(IValue $0, IValue $1, java.util.Map $kwpActuals); + void copyDirectory(IValue $0, IValue $1); + void copyFile(IValue $0, IValue $1); + IValue createLink(IValue $0, IValue $1); + IValue created(IValue $0); + IValue exists(IValue $0); + IValue find(IValue $0, IValue $1); + IValue findResources(IValue $0); + IValue getResource(IValue $0); + void iprint(IValue $0, java.util.Map $kwpActuals); + IValue iprintExp(IValue $0); + void iprintToFile(IValue $0, IValue $1, java.util.Map $kwpActuals); + IValue iprintToString(IValue $0); + void iprintln(IValue $0, java.util.Map $kwpActuals); + IValue iprintlnExp(IValue $0); + IValue isDirectory(IValue $0); + IValue isFile(IValue $0); + IValue lastModified(IValue $0); + IValue listEntries(IValue $0); + IValue md5Hash(IValue $0); + IValue md5HashFile(IValue $0); + void mkDirectory(IValue $0); + void move(IValue $0, IValue $1, java.util.Map $kwpActuals); + void print(IValue $0); + IValue printExp(IValue $0); + IValue printExp(IValue $0, IValue $1); + void println(); + void println(IValue $0); + IValue printlnExp(IValue $0); + IValue printlnExp(IValue $0, IValue $1); + IValue readBase32(IValue $0, java.util.Map $kwpActuals); + IValue readBase64(IValue $0, java.util.Map $kwpActuals); + IValue readFile(IValue $0, java.util.Map $kwpActuals); + IValue readFileBytes(IValue $0); + IValue readFileEnc(IValue $0, IValue $1); + IValue readFileLines(IValue $0, java.util.Map $kwpActuals); + IValue readFileLinesEnc(IValue $0, IValue $1); + void registerLocations(IValue $0, IValue $1, IValue $2); + void remove(IValue $0, java.util.Map $kwpActuals); + IValue resolveLocation(IValue $0); + void rprint(IValue $0); + void rprintln(IValue $0); + void setLastModified(IValue $0, IValue $1); + IValue toBase64(IValue $0, java.util.Map $kwpActuals); + void touch(IValue $0); + void unregisterLocations(IValue $0, IValue $1); + void unwatch(IValue $0, IValue $1, IValue $2); + void uudecode(IValue $0, IValue $1); + IValue uuencode(IValue $0); + void watch(IValue $0, IValue $1, IValue $2); + void writeBase32(IValue $0, IValue $1); + void writeBase64(IValue $0, IValue $1); + void writeFile(IValue $0, IValue $1, java.util.Map $kwpActuals); + void writeFileBytes(IValue $0, IValue $1); + void writeFileEnc(IValue $0, IValue $1, IValue $2); + void writeFileLines(IValue $0, IValue $1, java.util.Map $kwpActuals); +} \ No newline at end of file diff --git a/src/rascal/$List.constants b/src/rascal/$List.constants new file mode 100644 index 00000000000..f5caae0533a Binary files /dev/null and b/src/rascal/$List.constants differ diff --git a/src/rascal/$List.java b/src/rascal/$List.java new file mode 100644 index 00000000000..950d77ec742 --- /dev/null +++ b/src/rascal/$List.java @@ -0,0 +1,3119 @@ +package rascal; +import java.io.PrintWriter; +import java.io.StringWriter; +import java.io.InputStreamReader; +import java.io.PrintWriter; +import java.util.*; +import java.util.regex.Matcher; +import io.usethesource.vallang.*; +import io.usethesource.vallang.type.*; +import org.rascalmpl.runtime.*; +import org.rascalmpl.runtime.RascalExecutionContext; +import org.rascalmpl.runtime.function.*; +import org.rascalmpl.runtime.traverse.*; +import org.rascalmpl.runtime.utils.*; +import org.rascalmpl.exceptions.RuntimeExceptionFactory; +import org.rascalmpl.exceptions.Throw; +import org.rascalmpl.runtime.RascalExecutionContext; +import org.rascalmpl.interpreter.control_exceptions.Filtered; +import org.rascalmpl.types.NonTerminalType; +import org.rascalmpl.types.RascalTypeFactory; +import org.rascalmpl.util.ExpiringFunctionResultCache; +import org.rascalmpl.values.RascalValueFactory; +import org.rascalmpl.values.ValueFactoryFactory; +import org.rascalmpl.values.parsetrees.ITree; +import org.rascalmpl.values.parsetrees.TreeAdapter; + + + +@SuppressWarnings({"unused","unchecked","deprecation"}) +public class $List + extends + org.rascalmpl.runtime.$RascalModule + implements + rascal.$List_$I { + + private final $List_$I $me; + private final IList $constants; + + + public final rascal.$Exception M_Exception; + public final rascal.$Map M_Map; + + + final org.rascalmpl.library.Prelude $Prelude; // TODO: asBaseClassName will generate name collisions if there are more of the same name in different packages + + + public final io.usethesource.vallang.type.Type $T1; /*avalue()*/ + public final io.usethesource.vallang.type.Type $T10; /*aparameter("T",avalue(),closed=false,alabel="h")*/ + public final io.usethesource.vallang.type.Type $T15; /*aparameter("U",avalue(),closed=false)*/ + public final io.usethesource.vallang.type.Type $T62; /*aparameter("V",avalue(),closed=true)*/ + public final io.usethesource.vallang.type.Type $T13; /*aparameter("B",avalue(),closed=false)*/ + public final io.usethesource.vallang.type.Type $T6; /*aint()*/ + public final io.usethesource.vallang.type.Type $T31; /*aparameter("T",avalue(),closed=false,alabel="_")*/ + public final io.usethesource.vallang.type.Type $T54; /*aparameter("A",avalue(),closed=true)*/ + public final io.usethesource.vallang.type.Type $T48; /*aparameter("U",avalue(),closed=true)*/ + public final io.usethesource.vallang.type.Type $T36; /*aparameter("T",avalue(),closed=false,alabel="t")*/ + public final io.usethesource.vallang.type.Type $T23; /*anum()*/ + public final io.usethesource.vallang.type.Type $T4; /*aparameter("K",avalue(),closed=false)*/ + public final io.usethesource.vallang.type.Type $T41; /*aint(alabel="occurs")*/ + public final io.usethesource.vallang.type.Type $T38; /*aparameter("T",avalue(),closed=false,alabel="b")*/ + public final io.usethesource.vallang.type.Type $T2; /*aparameter("T",avalue(),closed=false)*/ + public final io.usethesource.vallang.type.Type $T24; /*aparameter("T",anum(),closed=false,alabel="hd")*/ + public final io.usethesource.vallang.type.Type $T12; /*aparameter("A",avalue(),closed=false)*/ + public final io.usethesource.vallang.type.Type $T17; /*aparameter("T",avalue(),closed=false,alabel="f")*/ + public final io.usethesource.vallang.type.Type $T68; /*aparameter("V",avalue(),closed=true,alabel="third")*/ + public final io.usethesource.vallang.type.Type $T7; /*astr()*/ + public final io.usethesource.vallang.type.Type $T44; /*aparameter("T",avalue(),closed=true,alabel="element")*/ + public final io.usethesource.vallang.type.Type $T65; /*aparameter("T",avalue(),closed=true,alabel="first")*/ + public final io.usethesource.vallang.type.Type $T55; /*aparameter("B",avalue(),closed=true)*/ + public final io.usethesource.vallang.type.Type $T40; /*aparameter("T",avalue(),closed=false,alabel="element")*/ + public final io.usethesource.vallang.type.Type $T26; /*aparameter("T",anum(),closed=false)*/ + public final io.usethesource.vallang.type.Type $T29; /*aparameter("T",avalue(),closed=true)*/ + public final io.usethesource.vallang.type.Type $T66; /*aparameter("U",avalue(),closed=true,alabel="second")*/ + public final io.usethesource.vallang.type.Type $T5; /*aparameter("V",avalue(),closed=false)*/ + public final io.usethesource.vallang.type.Type $T52; /*aparameter("T",anum(),closed=true)*/ + public final io.usethesource.vallang.type.Type $T20; /*aparameter("T",avalue(),closed=false,alabel="a")*/ + public final io.usethesource.vallang.type.Type $T64; /*alrel(atypeList([aparameter("T",avalue(),closed=true,alabel="first"),aparameter("U",avalue(),closed=true,alabel="second")]))*/ + public final io.usethesource.vallang.type.Type $T9; /*alist(aparameter("T",avalue(),closed=false,alabel="h"))*/ + public final io.usethesource.vallang.type.Type $T39; /*amap(aparameter("T",avalue(),closed=false,alabel="element"),aint(alabel="occurs"))*/ + public final io.usethesource.vallang.type.Type $T35; /*alist(aparameter("T",avalue(),closed=false,alabel="t"))*/ + public final io.usethesource.vallang.type.Type $T25; /*alist(aparameter("T",anum(),closed=false))*/ + public final io.usethesource.vallang.type.Type $T42; /*alist(aparameter("T",avalue(),closed=true))*/ + public final io.usethesource.vallang.type.Type $T19; /*abool()*/ + public final io.usethesource.vallang.type.Type $T37; /*afunc(abool(),[aparameter("T",avalue(),closed=false,alabel="a"),aparameter("T",avalue(),closed=false,alabel="b")],[])*/ + public final io.usethesource.vallang.type.Type $T32; /*alist(aparameter("U",avalue(),closed=false))*/ + public final io.usethesource.vallang.type.Type $T11; /*alrel(atypeList([aparameter("A",avalue(),closed=false),aparameter("B",avalue(),closed=false)]))*/ + public final io.usethesource.vallang.type.Type $T30; /*alist(aparameter("T",avalue(),closed=false,alabel="_"))*/ + public final io.usethesource.vallang.type.Type $T46; /*alist(aint())*/ + public final io.usethesource.vallang.type.Type $T21; /*alrel(atypeList([aparameter("T",avalue(),closed=false),aparameter("U",avalue(),closed=false)]))*/ + public final io.usethesource.vallang.type.Type $T0; /*alist(aparameter("T",avalue(),closed=false))*/ + public final io.usethesource.vallang.type.Type $T16; /*alist(aparameter("T",avalue(),closed=false,alabel="f"))*/ + public final io.usethesource.vallang.type.Type $T8; /*alist(avalue())*/ + public final io.usethesource.vallang.type.Type $T51; /*atuple(atypeList([alist(aparameter("T",avalue(),closed=true)),alist(aparameter("T",avalue(),closed=true))]))*/ + public final io.usethesource.vallang.type.Type $T3; /*amap(aparameter("K",avalue(),closed=false),aparameter("V",avalue(),closed=false))*/ + public final io.usethesource.vallang.type.Type $T18; /*afunc(abool(),[aparameter("T",avalue(),closed=false,alabel="a")],[])*/ + public final io.usethesource.vallang.type.Type $T14; /*afunc(aparameter("U",avalue(),closed=false),[aparameter("T",avalue(),closed=false)],[])*/ + public final io.usethesource.vallang.type.Type $T50; /*afunc(abool(),[aparameter("T",avalue(),closed=false,alabel="a"),aparameter("T",avalue(),closed=false,alabel="b")],[],returnsViaAllPath=true)*/ + public final io.usethesource.vallang.type.Type $T47; /*alist(aparameter("U",avalue(),closed=true))*/ + public final io.usethesource.vallang.type.Type $T56; /*alist(aparameter("B",avalue(),closed=true))*/ + public final io.usethesource.vallang.type.Type $T67; /*alrel(atypeList([aparameter("T",avalue(),closed=true,alabel="first"),aparameter("U",avalue(),closed=true,alabel="second"),aparameter("V",avalue(),closed=true,alabel="third")]))*/ + public final io.usethesource.vallang.type.Type $T53; /*amap(aparameter("A",avalue(),closed=true),alist(aparameter("B",avalue(),closed=true)))*/ + public final io.usethesource.vallang.type.Type $T57; /*amap(aparameter("A",avalue(),closed=true),aparameter("B",avalue(),closed=true))*/ + public final io.usethesource.vallang.type.Type $T59; /*aset(aparameter("T",avalue(),closed=true))*/ + public final io.usethesource.vallang.type.Type $T63; /*alist(aparameter("V",avalue(),closed=true))*/ + public final io.usethesource.vallang.type.Type $T58; /*arel(atypeList([aparameter("T",avalue(),closed=true),aparameter("T",avalue(),closed=true)]))*/ + public final io.usethesource.vallang.type.Type $T28; /*afunc(aparameter("T",avalue(),closed=true),[aparameter("T",avalue(),closed=false),aparameter("T",avalue(),closed=false)],[])*/ + public final io.usethesource.vallang.type.Type $T43; /*amap(aparameter("T",avalue(),closed=true,alabel="element"),aint(alabel="occurs"))*/ + public final io.usethesource.vallang.type.Type ADT_RuntimeException; /*aadt("RuntimeException",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type $T60; /*atuple(atypeList([alist(aparameter("T",avalue(),closed=true)),alist(aparameter("U",avalue(),closed=true))]))*/ + public final io.usethesource.vallang.type.Type $T33; /*alist(aparameter("V",avalue(),closed=false))*/ + public final io.usethesource.vallang.type.Type $T61; /*atuple(atypeList([alist(aparameter("T",avalue(),closed=true)),alist(aparameter("U",avalue(),closed=true)),alist(aparameter("V",avalue(),closed=true))]))*/ + public final io.usethesource.vallang.type.Type $T34; /*alist(alist(aparameter("T",avalue(),closed=false)))*/ + public final io.usethesource.vallang.type.Type $T22; /*alist(aparameter("T",anum(),closed=false,alabel="hd"))*/ + public final io.usethesource.vallang.type.Type $T49; /*aset(alist(aparameter("T",avalue(),closed=true)))*/ + public final io.usethesource.vallang.type.Type $T45; /*atuple(atypeList([aparameter("T",avalue(),closed=true),alist(aparameter("T",avalue(),closed=true))]))*/ + public final io.usethesource.vallang.type.Type $T27; /*alrel(atypeList([aparameter("T",avalue(),closed=false),aparameter("U",avalue(),closed=false),aparameter("V",avalue(),closed=false)]))*/ + + public $List(RascalExecutionContext rex){ + this(rex, null); + } + + public $List(RascalExecutionContext rex, Object extended){ + super(rex); + this.$me = extended == null ? this : ($List_$I)extended; + ModuleStore mstore = rex.getModuleStore(); + mstore.put(rascal.$List.class, this); + + mstore.importModule(rascal.$Exception.class, rex, rascal.$Exception::new); + mstore.importModule(rascal.$Map.class, rex, rascal.$Map::new); + + M_Exception = mstore.getModule(rascal.$Exception.class); + M_Map = mstore.getModule(rascal.$Map.class); + + + + $TS.importStore(M_Exception.$TS); + $TS.importStore(M_Map.$TS); + + $Prelude = $initLibrary("org.rascalmpl.library.Prelude"); + + $constants = readBinaryConstantsFile(this.getClass(), "rascal/$List.constants", 11, "ec2d05959de6a65091904c172c026df2"); + ADT_RuntimeException = $adt("RuntimeException"); + $T1 = $TF.valueType(); + $T10 = $TF.parameterType("T", $T1); + $T15 = $TF.parameterType("U", $T1); + $T62 = $TF.parameterType("V", $T1); + $T13 = $TF.parameterType("B", $T1); + $T6 = $TF.integerType(); + $T31 = $TF.parameterType("T", $T1); + $T54 = $TF.parameterType("A", $T1); + $T48 = $TF.parameterType("U", $T1); + $T36 = $TF.parameterType("T", $T1); + $T23 = $TF.numberType(); + $T4 = $TF.parameterType("K", $T1); + $T41 = $TF.integerType(); + $T38 = $TF.parameterType("T", $T1); + $T2 = $TF.parameterType("T", $T1); + $T24 = $TF.parameterType("T", $T23); + $T12 = $TF.parameterType("A", $T1); + $T17 = $TF.parameterType("T", $T1); + $T68 = $TF.parameterType("V", $T1); + $T7 = $TF.stringType(); + $T44 = $TF.parameterType("T", $T1); + $T65 = $TF.parameterType("T", $T1); + $T55 = $TF.parameterType("B", $T1); + $T40 = $TF.parameterType("T", $T1); + $T26 = $TF.parameterType("T", $T23); + $T29 = $TF.parameterType("T", $T1); + $T66 = $TF.parameterType("U", $T1); + $T5 = $TF.parameterType("V", $T1); + $T52 = $TF.parameterType("T", $T23); + $T20 = $TF.parameterType("T", $T1); + $T64 = $TF.listType($TF.tupleType($T65, $T66)); + $T9 = $TF.listType($T10); + $T39 = $TF.mapType($T40, "element", $T41, "occurs"); + $T35 = $TF.listType($T36); + $T25 = $TF.listType($T26); + $T42 = $TF.listType($T29); + $T19 = $TF.boolType(); + $T37 = $TF.functionType($T19, $TF.tupleType($T20, "a", $T38, "b"), $TF.tupleEmpty()); + $T32 = $TF.listType($T15); + $T11 = $TF.listType($TF.tupleType($T12, $T13)); + $T30 = $TF.listType($T31); + $T46 = $TF.listType($T6); + $T21 = $TF.listType($TF.tupleType($T2, $T15)); + $T0 = $TF.listType($T2); + $T16 = $TF.listType($T17); + $T8 = $TF.listType($T1); + $T51 = $TF.tupleType($T42, $T42); + $T3 = $TF.mapType($T4,$T5); + $T18 = $TF.functionType($T19, $TF.tupleType($T20, "a"), $TF.tupleEmpty()); + $T14 = $TF.functionType($T15, $TF.tupleType($T2), $TF.tupleEmpty()); + $T50 = $TF.functionType($T19, $TF.tupleType($T20, "a", $T38, "b"), $TF.tupleEmpty()); + $T47 = $TF.listType($T48); + $T56 = $TF.listType($T55); + $T67 = $TF.listType($TF.tupleType($T65, $T66, $T68)); + $T53 = $TF.mapType($T54,$T56); + $T57 = $TF.mapType($T54,$T55); + $T59 = $TF.setType($T29); + $T63 = $TF.listType($T62); + $T58 = $TF.setType($TF.tupleType($T29, $T29)); + $T28 = $TF.functionType($T29, $TF.tupleType($T2, $T2), $TF.tupleEmpty()); + $T43 = $TF.mapType($T44, "element", $T41, "occurs"); + $T60 = $TF.tupleType($T42, $T47); + $T33 = $TF.listType($T5); + $T61 = $TF.tupleType($T42, $T47, $T63); + $T34 = $TF.listType($T0); + $T22 = $TF.listType($T24); + $T49 = $TF.setType($T42); + $T45 = $TF.tupleType($T29, $T42); + $T27 = $TF.listType($TF.tupleType($T2, $T15, $T5)); + + + + } + public IBool isEmpty(IValue $P0){ // Generated by Resolver + IBool $result = null; + Type $P0Type = $P0.getType(); + if($isSubtypeOf($P0Type,$T0)){ + $result = (IBool)List_isEmpty$fdfe8b76f8afe83f((IList) $P0); + if($result != null) return $result; + } + if($isSubtypeOf($P0Type,$T3)){ + $result = (IBool)M_Map.Map_isEmpty$ed672b4b9c5f3bbb((IMap) $P0); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0)); + } + public IValue last(IValue $P0){ // Generated by Resolver + IValue $result = null; + Type $P0Type = $P0.getType(); + if($isSubtypeOf($P0Type,$T0)){ + $result = (IValue)List_last$452c6357cf59d51d((IList) $P0); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0)); + } + public IList shuffle(IValue $P0){ // Generated by Resolver + IList $result = null; + Type $P0Type = $P0.getType(); + if($isSubtypeOf($P0Type,$T0)){ + $result = (IList)List_shuffle$33a2b58b4f0a6e3a((IList) $P0); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0)); + } + public IList shuffle(IValue $P0, IValue $P1){ // Generated by Resolver + IList $result = null; + Type $P0Type = $P0.getType(); + Type $P1Type = $P1.getType(); + if($isSubtypeOf($P0Type,$T0) && $isSubtypeOf($P1Type,$T6)){ + $result = (IList)List_shuffle$ef4eb9552ad766a9((IList) $P0, (IInteger) $P1); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0, $P1)); + } + public IString intercalate(IValue $P0, IValue $P1){ // Generated by Resolver + IString $result = null; + Type $P0Type = $P0.getType(); + Type $P1Type = $P1.getType(); + if($isSubtypeOf($P0Type,$T7) && $isSubtypeOf($P1Type,$T8)){ + $result = (IString)List_intercalate$6d96d640d678090f((IString) $P0, (IList) $P1); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0, $P1)); + } + public IValue head(IValue $P0){ // Generated by Resolver + IValue $result = null; + Type $P0Type = $P0.getType(); + if($isSubtypeOf($P0Type,$T9)){ + $result = (IValue)List_head$d783f64b0cdf56cc((IList) $P0); + if($result != null) return $result; + } + if($isSubtypeOf($P0Type,$T0)){ + $result = (IValue)List_head$0a8ce23c83613597((IList) $P0); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0)); + } + public IList head(IValue $P0, IValue $P1){ // Generated by Resolver + IList $result = null; + Type $P0Type = $P0.getType(); + Type $P1Type = $P1.getType(); + if($isSubtypeOf($P0Type,$T0) && $isSubtypeOf($P1Type,$T6)){ + $result = (IList)List_head$31bed95364700c65((IList) $P0, (IInteger) $P1); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0, $P1)); + } + public IInteger size(IValue $P0){ // Generated by Resolver + IInteger $result = null; + Type $P0Type = $P0.getType(); + if($isSubtypeOf($P0Type,$T0)){ + $result = (IInteger)List_size$ba7443328d8b4a27((IList) $P0); + if($result != null) return $result; + } + if($isSubtypeOf($P0Type,$T3)){ + $result = (IInteger)M_Map.Map_size$9404b041dab68eb5((IMap) $P0); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0)); + } + public IMap toMap(IValue $P0){ // Generated by Resolver + IMap $result = null; + Type $P0Type = $P0.getType(); + if($isSubtypeOf($P0Type,$T11)){ + $result = (IMap)List_toMap$795bdddf805b0c4b((IList) $P0); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0)); + } + public IList mapper(IValue $P0, IValue $P1){ // Generated by Resolver + IList $result = null; + Type $P0Type = $P0.getType(); + Type $P1Type = $P1.getType(); + if($isSubtypeOf($P0Type,$T0) && $isSubtypeOf($P1Type,$T14)){ + $result = (IList)List_mapper$12df1ca4a10ff2b1((IList) $P0, (TypedFunctionInstance1) $P1); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0, $P1)); + } + public IList reverse(IValue $P0){ // Generated by Resolver + IList $result = null; + Type $P0Type = $P0.getType(); + if($isSubtypeOf($P0Type,$T0)){ + $result = (IList)List_reverse$9dfd2c061e6148ac((IList) $P0); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0)); + } + public IList remove(IValue $P0, IValue $P1){ // Generated by Resolver + IList $result = null; + Type $P0Type = $P0.getType(); + Type $P1Type = $P1.getType(); + if($isSubtypeOf($P0Type,$T0) && $isSubtypeOf($P1Type,$T6)){ + $result = (IList)List_remove$6047315caa154842((IList) $P0, (IInteger) $P1); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0, $P1)); + } + public IValue max(IValue $P0){ // Generated by Resolver + IValue $result = null; + Type $P0Type = $P0.getType(); + if($isSubtypeOf($P0Type,$T9)){ + $result = (IValue)List_max$c8bc65c8275c2ea6((IList) $P0); + if($result != null) return $result; + } + if($isSubtypeOf($P0Type,$T0)){ + $result = (IValue)List_max$4d35fec0913b9adc((IList) $P0); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0)); + } + public IMap distribution(IValue $P0){ // Generated by Resolver + IMap $result = null; + Type $P0Type = $P0.getType(); + if($isSubtypeOf($P0Type,$T0)){ + $result = (IMap)List_distribution$fe0e5f52b44a463f((IList) $P0); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0)); + } + public IValue getFirstFrom(IValue $P0){ // Generated by Resolver + IValue $result = null; + Type $P0Type = $P0.getType(); + if($isSubtypeOf($P0Type,$T16)){ + $result = (IValue)List_getFirstFrom$8b59769acd262783((IList) $P0); + if($result != null) return $result; + } + if($isSubtypeOf($P0Type,$T0)){ + $result = (IValue)List_getFirstFrom$ecaac22228d5233c((IList) $P0); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0)); + } + public ISet toSet(IValue $P0){ // Generated by Resolver + ISet $result = null; + Type $P0Type = $P0.getType(); + if($isSubtypeOf($P0Type,$T0)){ + $result = (ISet)List_toSet$7a7d987a16d99f97((IList) $P0); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0)); + } + public IBool isSorted(IValue $P0, java.util.Map $kwpActuals){ // Generated by Resolver + IBool $result = null; + Type $P0Type = $P0.getType(); + if($isSubtypeOf($P0Type,$T0)){ + $result = (IBool)List_isSorted$293ad5967a3bf1ea((IList) $P0, $kwpActuals); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0)); + } + public IList take(IValue $P0, IValue $P1){ // Generated by Resolver + IList $result = null; + Type $P0Type = $P0.getType(); + Type $P1Type = $P1.getType(); + if($isSubtypeOf($P0Type,$T6) && $isSubtypeOf($P1Type,$T0)){ + $result = (IList)List_take$95b89daedfc23844((IInteger) $P0, (IList) $P1); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0, $P1)); + } + public ITuple takeOneFrom(IValue $P0){ // Generated by Resolver + ITuple $result = null; + Type $P0Type = $P0.getType(); + if($isSubtypeOf($P0Type,$T0)){ + $result = (ITuple)List_takeOneFrom$48bb3b6062ea97b1((IList) $P0); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0)); + } + public IInteger indexOf(IValue $P0, IValue $P1){ // Generated by Resolver + IInteger $result = null; + Type $P0Type = $P0.getType(); + Type $P1Type = $P1.getType(); + if($isSubtypeOf($P0Type,$T0) && $isSubtypeOf($P1Type,$T2)){ + $result = (IInteger)List_indexOf$27a7fd44855c0cd1((IList) $P0, (IValue) $P1); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0, $P1)); + } + public IList takeWhile(IValue $P0, IValue $P1){ // Generated by Resolver + IList $result = null; + Type $P0Type = $P0.getType(); + Type $P1Type = $P1.getType(); + if($isSubtypeOf($P0Type,$T0) && $isSubtypeOf($P1Type,$T18)){ + $result = (IList)List_takeWhile$557e76d9c8e487c3((IList) $P0, (TypedFunctionInstance1) $P1); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0, $P1)); + } + public ITuple unzip2(IValue $P0){ // Generated by Resolver + ITuple $result = null; + Type $P0Type = $P0.getType(); + if($isSubtypeOf($P0Type,$T21)){ + $result = (ITuple)List_unzip2$2f0030d08b0b515c((IList) $P0); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0)); + } + public IList delete(IValue $P0, IValue $P1){ // Generated by Resolver + IList $result = null; + Type $P0Type = $P0.getType(); + Type $P1Type = $P1.getType(); + if($isSubtypeOf($P0Type,$T0) && $isSubtypeOf($P1Type,$T6)){ + $result = (IList)List_delete$d7e38e0bb055d671((IList) $P0, (IInteger) $P1); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0, $P1)); + } + public INumber sum(IValue $P0){ // Generated by Resolver + INumber $result = null; + Type $P0Type = $P0.getType(); + if($isSubtypeOf($P0Type,$T22)){ + $result = (INumber)List_sum$9ba9391d87d7cdce((IList) $P0); + if($result != null) return $result; + } + if($isSubtypeOf($P0Type,$T25)){ + $result = (INumber)List_sum$7fab443836973776((IList) $P0); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0)); + } + public ITuple unzip3(IValue $P0){ // Generated by Resolver + ITuple $result = null; + Type $P0Type = $P0.getType(); + if($isSubtypeOf($P0Type,$T27)){ + $result = (ITuple)List_unzip3$70df47ebf833367b((IList) $P0); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0)); + } + public IList insertAt(IValue $P0, IValue $P1, IValue $P2){ // Generated by Resolver + IList $result = null; + Type $P0Type = $P0.getType(); + Type $P1Type = $P1.getType(); + Type $P2Type = $P2.getType(); + if($isSubtypeOf($P0Type,$T0) && $isSubtypeOf($P1Type,$T6) && $isSubtypeOf($P2Type,$T2)){ + $result = (IList)List_insertAt$983b3761096c321e((IList) $P0, (IInteger) $P1, (IValue) $P2); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0, $P1, $P2)); + } + public IString toString(IValue $P0){ // Generated by Resolver + IString $result = null; + Type $P0Type = $P0.getType(); + if($isSubtypeOf($P0Type,$T0)){ + $result = (IString)List_toString$a04f1c5d8efcd2e2((IList) $P0); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0)); + } + public IValue reducer(IValue $P0, IValue $P1, IValue $P2){ // Generated by Resolver + IValue $result = null; + Type $P0Type = $P0.getType(); + Type $P1Type = $P1.getType(); + Type $P2Type = $P2.getType(); + if($isSubtypeOf($P0Type,$T0) && $isSubtypeOf($P1Type,$T28) && $isSubtypeOf($P2Type,$T2)){ + $result = (IValue)List_reducer$13d810a90f3d6575((IList) $P0, (TypedFunctionInstance2) $P1, (IValue) $P2); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0, $P1, $P2)); + } + public ISet permutations(IValue $P0){ // Generated by Resolver + ISet $result = null; + Type $P0Type = $P0.getType(); + if($isSubtypeOf($P0Type,$T0)){ + $result = (ISet)List_permutations$c819f16d8907d74b((IList) $P0); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0)); + } + public IList drop(IValue $P0, IValue $P1){ // Generated by Resolver + IList $result = null; + Type $P0Type = $P0.getType(); + Type $P1Type = $P1.getType(); + if($isSubtypeOf($P0Type,$T6) && $isSubtypeOf($P1Type,$T0)){ + $result = (IList)List_drop$c77fb9b1073eace8((IInteger) $P0, (IList) $P1); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0, $P1)); + } + public IValue elementAt(IValue $P0, IValue $P1){ // Generated by Resolver + IValue $result = null; + Type $P0Type = $P0.getType(); + Type $P1Type = $P1.getType(); + if($isSubtypeOf($P0Type,$T0) && $isSubtypeOf($P1Type,$T6)){ + $result = (IValue)List_elementAt$e76f0a052171ebb6((IList) $P0, (IInteger) $P1); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0, $P1)); + } + public ITuple headTail(IValue $P0){ // Generated by Resolver + ITuple $result = null; + Type $P0Type = $P0.getType(); + if($isSubtypeOf($P0Type,$T9)){ + $result = (ITuple)List_headTail$b593cd2ebbc70fb1((IList) $P0); + if($result != null) return $result; + } + if($isSubtypeOf($P0Type,$T0)){ + $result = (ITuple)List_headTail$bb288b37efeecc6b((IList) $P0); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0)); + } + public IList upTill(IValue $P0){ // Generated by Resolver + IList $result = null; + Type $P0Type = $P0.getType(); + if($isSubtypeOf($P0Type,$T6)){ + $result = (IList)List_upTill$fafbd14901ea615f((IInteger) $P0); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0)); + } + public IList tail(IValue $P0){ // Generated by Resolver + IList $result = null; + Type $P0Type = $P0.getType(); + if($isSubtypeOf($P0Type,$T30)){ + $result = (IList)List_tail$a4bd36b1f369026a((IList) $P0); + if($result != null) return $result; + } + if($isSubtypeOf($P0Type,$T0)){ + $result = (IList)List_tail$33110d2c64b6f3cf((IList) $P0); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0)); + } + public IList tail(IValue $P0, IValue $P1){ // Generated by Resolver + IList $result = null; + Type $P0Type = $P0.getType(); + Type $P1Type = $P1.getType(); + if($isSubtypeOf($P0Type,$T0) && $isSubtypeOf($P1Type,$T6)){ + $result = (IList)List_tail$28d274b499bfa1ce((IList) $P0, (IInteger) $P1); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0, $P1)); + } + public IList zip2(IValue $P0, IValue $P1){ // Generated by Resolver + IList $result = null; + Type $P0Type = $P0.getType(); + Type $P1Type = $P1.getType(); + if($isSubtypeOf($P0Type,$T0) && $isSubtypeOf($P1Type,$T32)){ + $result = (IList)List_zip2$5cf6b97a195b0a20((IList) $P0, (IList) $P1); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0, $P1)); + } + public ITuple pop(IValue $P0){ // Generated by Resolver + ITuple $result = null; + Type $P0Type = $P0.getType(); + if($isSubtypeOf($P0Type,$T0)){ + $result = (ITuple)List_pop$564116ba8d629906((IList) $P0); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0)); + } + public IMap toMapUnique(IValue $P0){ // Generated by Resolver + IMap $result = null; + Type $P0Type = $P0.getType(); + if($isSubtypeOf($P0Type,$T11)){ + $result = (IMap)List_toMapUnique$1ee65c954c28c774((IList) $P0); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0)); + } + public IList index(IValue $P0){ // Generated by Resolver + IList $result = null; + Type $P0Type = $P0.getType(); + if($isSubtypeOf($P0Type,$T0)){ + $result = (IList)List_index$90228c781d131b76((IList) $P0); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0)); + } + public IList slice(IValue $P0, IValue $P1, IValue $P2){ // Generated by Resolver + IList $result = null; + Type $P0Type = $P0.getType(); + Type $P1Type = $P1.getType(); + Type $P2Type = $P2.getType(); + if($isSubtypeOf($P0Type,$T0) && $isSubtypeOf($P1Type,$T6) && $isSubtypeOf($P2Type,$T6)){ + $result = (IList)List_slice$dac0d5be581790d0((IList) $P0, (IInteger) $P1, (IInteger) $P2); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0, $P1, $P2)); + } + public IValue min(IValue $P0){ // Generated by Resolver + IValue $result = null; + Type $P0Type = $P0.getType(); + if($isSubtypeOf($P0Type,$T9)){ + $result = (IValue)List_min$86af046c90057650((IList) $P0); + if($result != null) return $result; + } + if($isSubtypeOf($P0Type,$T0)){ + $result = (IValue)List_min$acb3d58fffd8b2f1((IList) $P0); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0)); + } + public IList prefix(IValue $P0){ // Generated by Resolver + IList $result = null; + Type $P0Type = $P0.getType(); + if($isSubtypeOf($P0Type,$T0)){ + $result = (IList)List_prefix$09e7c5b6eb264f3e((IList) $P0); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0)); + } + public IList zip3(IValue $P0, IValue $P1, IValue $P2){ // Generated by Resolver + IList $result = null; + Type $P0Type = $P0.getType(); + Type $P1Type = $P1.getType(); + Type $P2Type = $P2.getType(); + if($isSubtypeOf($P0Type,$T0) && $isSubtypeOf($P1Type,$T32) && $isSubtypeOf($P2Type,$T33)){ + $result = (IList)List_zip3$cd5c8c83ab2f56d9((IList) $P0, (IList) $P1, (IList) $P2); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0, $P1, $P2)); + } + public IInteger lastIndexOf(IValue $P0, IValue $P1){ // Generated by Resolver + IInteger $result = null; + Type $P0Type = $P0.getType(); + Type $P1Type = $P1.getType(); + if($isSubtypeOf($P0Type,$T0) && $isSubtypeOf($P1Type,$T2)){ + $result = (IInteger)List_lastIndexOf$66d10d5e9466bed6((IList) $P0, (IValue) $P1); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0, $P1)); + } + public IList concat(IValue $P0){ // Generated by Resolver + IList $result = null; + Type $P0Type = $P0.getType(); + if($isSubtypeOf($P0Type,$T34)){ + $result = (IList)List_concat$e1275851155358ce((IList) $P0); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0)); + } + public IValue top(IValue $P0){ // Generated by Resolver + IValue $result = null; + Type $P0Type = $P0.getType(); + if($isSubtypeOf($P0Type,$T35)){ + $result = (IValue)List_top$7d8d56824622aa16((IList) $P0); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0)); + } + public IString itoString(IValue $P0){ // Generated by Resolver + IString $result = null; + Type $P0Type = $P0.getType(); + if($isSubtypeOf($P0Type,$T0)){ + $result = (IString)List_itoString$dc18c931a359f8dc((IList) $P0); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0)); + } + public IList intersperse(IValue $P0, IValue $P1){ // Generated by Resolver + IList $result = null; + Type $P0Type = $P0.getType(); + Type $P1Type = $P1.getType(); + if($isSubtypeOf($P0Type,$T2) && $isSubtypeOf($P1Type,$T0)){ + $result = (IList)List_intersperse$2082f04fb71c32f9((IValue) $P0, (IList) $P1); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0, $P1)); + } + public IList merge(IValue $P0, IValue $P1, IValue $P2){ // Generated by Resolver + IList $result = null; + Type $P0Type = $P0.getType(); + Type $P1Type = $P1.getType(); + Type $P2Type = $P2.getType(); + if($isSubtypeOf($P0Type,$T0) && $isSubtypeOf($P1Type,$T0) && $isSubtypeOf($P2Type,$T37)){ + $result = (IList)List_merge$0532f44b2eda13d8((IList) $P0, (IList) $P1, (TypedFunctionInstance2) $P2); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0, $P1, $P2)); + } + public IList merge(IValue $P0, IValue $P1){ // Generated by Resolver + IList $result = null; + Type $P0Type = $P0.getType(); + Type $P1Type = $P1.getType(); + if($isSubtypeOf($P0Type,$T0) && $isSubtypeOf($P1Type,$T0)){ + $result = (IList)List_merge$587ced50ba87c4a7((IList) $P0, (IList) $P1); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0, $P1)); + } + public IValue getOneFrom(IValue $P0){ // Generated by Resolver + IValue $result = null; + Type $P0Type = $P0.getType(); + if($isSubtypeOf($P0Type,$T0)){ + $result = (IValue)List_getOneFrom$4d823dc007dd1cd9((IList) $P0); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0)); + } + public IMap removeFromBag(IValue $P0, IValue $P1, IValue $P2){ // Generated by Resolver + IMap $result = null; + Type $P0Type = $P0.getType(); + Type $P1Type = $P1.getType(); + Type $P2Type = $P2.getType(); + if($isSubtypeOf($P0Type,$T39) && $isSubtypeOf($P1Type,$T2) && $isSubtypeOf($P2Type,$T6)){ + $result = (IMap)List_removeFromBag$5c4ef2614668a761((IMap) $P0, (IValue) $P1, (IInteger) $P2); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0, $P1, $P2)); + } + public IMap removeFromBag(IValue $P0, IValue $P1){ // Generated by Resolver + IMap $result = null; + Type $P0Type = $P0.getType(); + Type $P1Type = $P1.getType(); + if($isSubtypeOf($P0Type,$T39) && $isSubtypeOf($P1Type,$T2)){ + $result = (IMap)List_removeFromBag$3427b7346e20c720((IMap) $P0, (IValue) $P1); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0, $P1)); + } + public ITuple split(IValue $P0){ // Generated by Resolver + ITuple $result = null; + Type $P0Type = $P0.getType(); + if($isSubtypeOf($P0Type,$T0)){ + $result = (ITuple)List_split$19c747b75c8a251d((IList) $P0); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0)); + } + public IList push(IValue $P0, IValue $P1){ // Generated by Resolver + IList $result = null; + Type $P0Type = $P0.getType(); + Type $P1Type = $P1.getType(); + if($isSubtypeOf($P0Type,$T2) && $isSubtypeOf($P1Type,$T0)){ + $result = (IList)List_push$a31a54c2a21ec30e((IValue) $P0, (IList) $P1); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0, $P1)); + } + public ISet permutationsBag(IValue $P0){ // Generated by Resolver + ISet $result = null; + Type $P0Type = $P0.getType(); + if($isSubtypeOf($P0Type,$T39)){ + $result = (ISet)List_permutationsBag$8b2de212b4f23a16((IMap) $P0); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0)); + } + public IList mix(IValue $P0, IValue $P1){ // Generated by Resolver + IList $result = null; + Type $P0Type = $P0.getType(); + Type $P1Type = $P1.getType(); + if($isSubtypeOf($P0Type,$T0) && $isSubtypeOf($P1Type,$T0)){ + $result = (IList)List_mix$5b11827cf2a66f4b((IList) $P0, (IList) $P1); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0, $P1)); + } + public ISet toRel(IValue $P0){ // Generated by Resolver + ISet $result = null; + Type $P0Type = $P0.getType(); + if($isSubtypeOf($P0Type,$T0)){ + $result = (ISet)List_toRel$87081beb0169e3cf((IList) $P0); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0)); + } + public IList sort(IValue $P0){ // Generated by Resolver + IList $result = null; + Type $P0Type = $P0.getType(); + if($isSubtypeOf($P0Type,$T0)){ + $result = (IList)List_sort$1fe4426c8c8039da((IList) $P0); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0)); + } + public IList sort(IValue $P0, IValue $P1){ // Generated by Resolver + IList $result = null; + Type $P0Type = $P0.getType(); + Type $P1Type = $P1.getType(); + if($isSubtypeOf($P0Type,$T0) && $isSubtypeOf($P1Type,$T37)){ + $result = (IList)List_sort$a9bbc6fca4e60d0a((IList) $P0, (TypedFunctionInstance2) $P1); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0, $P1)); + } + public IList dup(IValue $P0){ // Generated by Resolver + IList $result = null; + Type $P0Type = $P0.getType(); + if($isSubtypeOf($P0Type,$T0)){ + $result = (IList)List_dup$668836823e08d219((IList) $P0); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0)); + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/List.rsc|(681,249,<24,0>,<36,31>) + public IList List_concat$e1275851155358ce(IList xxs_0){ + + + HashMap $typeBindings = new HashMap<>(); + if($T34.match(xxs_0.getType(), $typeBindings)){ + if(true){ + final IListWriter $listwriter0 = (IListWriter)$RVF.listWriter(); + $LCOMP1_GEN910: + for(IValue $elem2_for : ((IList)xxs_0)){ + IList $elem2 = (IList) $elem2_for; + if($isSubtypeOf($elem2.getType(),$T42.instantiate($typeBindings))){ + IList xs_1 = null; + $listwriter_splice($listwriter0,$elem2); + + } else { + continue $LCOMP1_GEN910; + } + } + + final IList $result3 = ((IList)($listwriter0.done())); + if($T42.instantiate($typeBindings) != $TF.voidType() && $isSubtypeOf($result3.getType(),$T42)){ + return ((IList)($result3)); + + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/List.rsc|(933,432,<39,0>,<52,42>) + public IList List_delete$d7e38e0bb055d671(IList lst_0, IInteger n_1){ + + + HashMap $typeBindings = new HashMap<>(); + if($T0.match(lst_0.getType(), $typeBindings)){ + final IList $result4 = ((IList)((IList)$Prelude.delete(lst_0, n_1))); + if($T42.instantiate($typeBindings) != $TF.voidType() && $isSubtypeOf($result4.getType(),$T42)){ + return ((IList)($result4)); + + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/List.rsc|(1368,372,<55,0>,<69,1>) + public IMap List_distribution$fe0e5f52b44a463f(IList lst_0){ + + + HashMap $typeBindings = new HashMap<>(); + if($T0.match(lst_0.getType(), $typeBindings)){ + if(true){ + IMap res_1 = ((IMap)$constants.get(0)/*()*/); + /*muExists*/FOR0: + do { + FOR0_GEN1677: + for(IValue $elem5_for : ((IList)lst_0)){ + IValue $elem5 = (IValue) $elem5_for; + IValue e_2 = null; + GuardedIValue guarded1 = $guarded_map_subscript(((IMap)res_1),((IValue)($elem5))); + res_1 = ((IMap)($amap_update($elem5,$aint_add_aint(((IInteger)(($is_defined_value(guarded1) ? ((IInteger)$get_defined_value(guarded1)) : ((IInteger)$constants.get(1)/*0*/)))),((IInteger)$constants.get(2)/*1*/)), ((IMap)(((IMap)res_1)))))); + + } + continue FOR0; + + } while(false); + /* void: muCon([]) */final IMap $result6 = ((IMap)res_1); + if($T43.instantiate($typeBindings) != $TF.voidType() && $isSubtypeOf($result6.getType(),$T43)){ + return ((IMap)($result6)); + + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/List.rsc|(1744,437,<73,0>,<87,41>) + public IList List_drop$c77fb9b1073eace8(IInteger n_0, IList lst_1){ + + + HashMap $typeBindings = new HashMap<>(); + if($T0.match(lst_1.getType(), $typeBindings)){ + final IList $result7 = ((IList)((IList)$Prelude.drop(n_0, lst_1))); + if($T42.instantiate($typeBindings) != $TF.voidType() && $isSubtypeOf($result7.getType(),$T42)){ + return ((IList)($result7)); + + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/List.rsc|(2183,251,<89,0>,<97,54>) + public IList List_dup$668836823e08d219(IList lst_0){ + + + HashMap $typeBindings = new HashMap<>(); + if($T0.match(lst_0.getType(), $typeBindings)){ + if(true){ + IList $reducer9 = (IList)(((IList)$constants.get(3)/*[]*/)); + $REDUCER8_GEN2420: + for(IValue $elem11_for : ((IList)lst_0)){ + IValue $elem11 = (IValue) $elem11_for; + if($isSubtypeOf($elem11.getType(),$T29.instantiate($typeBindings))){ + IValue ix_2 = null; + if((((IBool)($RVF.bool(((IList)($reducer9)).contains(((IValue)($elem11))))))).getValue()){ + $reducer9 = ((IList)($reducer9)); + + } else { + $reducer9 = ((IList)($alist_add_alist(((IList)($reducer9)),((IList)($RVF.list(((IValue)($elem11)))))))); + + } + } else { + continue $REDUCER8_GEN2420; + } + } + + final IList $result12 = ((IList)($reducer9)); + if($T42.instantiate($typeBindings) != $TF.voidType() && $isSubtypeOf($result12.getType(),$T42)){ + return ((IList)($result12)); + + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/List.rsc|(2436,374,<99,0>,<110,43>) + public IValue List_elementAt$e76f0a052171ebb6(IList lst_0, IInteger index_1){ + + + HashMap $typeBindings = new HashMap<>(); + if($T0.match(lst_0.getType(), $typeBindings)){ + final IValue $result13 = ((IValue)((IValue)$Prelude.elementAt(lst_0, index_1))); + if($T29.instantiate($typeBindings) != $TF.voidType() && $isSubtypeOf($result13.getType(),$T29)){ + return ((IValue)($result13)); + + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/List.rsc|(2814,454,<113,0>,<126,33>) + public IValue List_getOneFrom$4d823dc007dd1cd9(IList lst_0){ + + + HashMap $typeBindings = new HashMap<>(); + if($T0.match(lst_0.getType(), $typeBindings)){ + final IValue $result14 = ((IValue)((IValue)$Prelude.getOneFrom(lst_0))); + if($T29.instantiate($typeBindings) != $TF.voidType() && $isSubtypeOf($result14.getType(),$T29)){ + return ((IValue)($result14)); + + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/List.rsc|(3271,223,<129,0>,<133,35>) + public IValue List_getFirstFrom$8b59769acd262783(IList $0){ + + + HashMap $typeBindings = new HashMap<>(); + /*muExists*/getFirstFrom: + do { + if($T16.match($0.getType(), $typeBindings)){ + final IList $subject18 = ((IList)$0); + int $subject18_cursor = 0; + if($isSubtypeOf($subject18.getType(),$T16)){ + final int $subject18_len = (int)((IList)($subject18)).length(); + if($subject18_len >= 1){ + if($subject18_cursor < $subject18_len){ + IValue f_0 = ((IValue)($alist_subscript_int(((IList)($subject18)),$subject18_cursor))); + $subject18_cursor += 1; + final int $__119_start = (int)$subject18_cursor; + final int $__119_len = (int)$subject18_len - $__119_start - 0; + $subject18_cursor = $__119_start + $__119_len; + /*muExists*/getFirstFrom_LIST_VARf_MVAR$_16: + do { + if($subject18_cursor == $subject18_len){ + final IValue $result17 = ((IValue)f_0); + if($T29.instantiate($typeBindings) != $TF.voidType() && $isSubtypeOf($result17.getType(),$T29)){ + return ((IValue)($result17)); + + } else { + return null; + } + } else { + continue getFirstFrom_LIST_VARf_MVAR$_16;/*list match1*/ + } + } while(false); + return null; + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } while(false); + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/List.rsc|(3495,54,<134,0>,<134,54>) + public IValue List_getFirstFrom$ecaac22228d5233c(IList $__0){ + + + HashMap $typeBindings = new HashMap<>(); + /*muExists*/getFirstFrom: + do { + if($T0.match($__0.getType(), $typeBindings)){ + if($__0.equals(((IList)$constants.get(3)/*[]*/))){ + throw new Throw($RVF.constructor(M_Exception.RuntimeException_EmptyList_, new IValue[]{})); + } else { + return null; + } + } else { + return null; + } + } while(false); + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/List.rsc|(3552,877,<137,0>,<167,27>) + public IValue List_head$d783f64b0cdf56cc(IList $0){ + + + HashMap $typeBindings = new HashMap<>(); + /*muExists*/head: + do { + if($T9.match($0.getType(), $typeBindings)){ + final IList $subject23 = ((IList)$0); + int $subject23_cursor = 0; + if($isSubtypeOf($subject23.getType(),$T9)){ + final int $subject23_len = (int)((IList)($subject23)).length(); + if($subject23_len >= 1){ + if($subject23_cursor < $subject23_len){ + IValue h_0 = ((IValue)($alist_subscript_int(((IList)($subject23)),$subject23_cursor))); + $subject23_cursor += 1; + final int $__124_start = (int)$subject23_cursor; + final int $__124_len = (int)$subject23_len - $__124_start - 0; + $subject23_cursor = $__124_start + $__124_len; + /*muExists*/head_LIST_VARh_MVAR$_21: + do { + if($subject23_cursor == $subject23_len){ + final IValue $result22 = ((IValue)h_0); + if($T29.instantiate($typeBindings) != $TF.voidType() && $isSubtypeOf($result22.getType(),$T29)){ + return ((IValue)($result22)); + + } else { + return null; + } + } else { + continue head_LIST_VARh_MVAR$_21;/*list match1*/ + } + } while(false); + return null; + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } while(false); + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/List.rsc|(4431,45,<168,0>,<168,45>) + public IValue List_head$0a8ce23c83613597(IList $__0){ + + + HashMap $typeBindings = new HashMap<>(); + /*muExists*/head: + do { + if($T0.match($__0.getType(), $typeBindings)){ + if($__0.equals(((IList)$constants.get(3)/*[]*/))){ + throw new Throw($RVF.constructor(M_Exception.RuntimeException_EmptyList_, new IValue[]{})); + } else { + return null; + } + } else { + return null; + } + } while(false); + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/List.rsc|(4516,106,<171,0>,<172,64>) + public IList List_head$31bed95364700c65(IList lst_0, IInteger n_1){ + + + HashMap $typeBindings = new HashMap<>(); + if($T0.match(lst_0.getType(), $typeBindings)){ + final IList $result25 = ((IList)((IList)$Prelude.head(lst_0, n_1))); + if($T42.instantiate($typeBindings) != $TF.voidType() && $isSubtypeOf($result25.getType(),$T42)){ + return ((IList)($result25)); + + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/List.rsc|(4626,297,<176,0>,<188,53>) + public ITuple List_headTail$b593cd2ebbc70fb1(IList $0){ + + + HashMap $typeBindings = new HashMap<>(); + /*muExists*/headTail: + do { + if($T9.match($0.getType(), $typeBindings)){ + final IList $subject27 = ((IList)$0); + int $subject27_cursor = 0; + if($isSubtypeOf($subject27.getType(),$T9)){ + final int $subject27_len = (int)((IList)($subject27)).length(); + if($subject27_len >= 1){ + if($subject27_cursor < $subject27_len){ + IValue h_0 = ((IValue)($alist_subscript_int(((IList)($subject27)),$subject27_cursor))); + $subject27_cursor += 1; + final int $t_128_start = (int)$subject27_cursor; + headTail_LIST_VARh_MVARt: + + for(int $t_128_len = 0; $t_128_len <= $subject27_len - $t_128_start - 0; $t_128_len += 1){ + IList t_1 = ((IList)($subject27.sublist($t_128_start, $t_128_len))); + $subject27_cursor = $t_128_start + $t_128_len; + if($subject27_cursor == $subject27_len){ + final ITuple $result26 = ((ITuple)($RVF.tuple(((IValue)h_0), ((IList)t_1)))); + if($T45.instantiate($typeBindings) != $TF.voidType() && $isSubtypeOf($result26.getType(),$T45)){ + return ((ITuple)($result26)); + + } else { + return null; + } + } else { + continue headTail_LIST_VARh_MVARt;/*list match1*/ + } + } + return null; + + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } while(false); + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/List.rsc|(4925,66,<189,0>,<189,66>) + public ITuple List_headTail$bb288b37efeecc6b(IList $__0){ + + + HashMap $typeBindings = new HashMap<>(); + /*muExists*/headTail: + do { + if($T0.match($__0.getType(), $typeBindings)){ + if($__0.equals(((IList)$constants.get(3)/*[]*/))){ + throw new Throw($RVF.constructor(M_Exception.RuntimeException_EmptyList_, new IValue[]{})); + } else { + return null; + } + } else { + return null; + } + } while(false); + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/List.rsc|(4994,354,<192,0>,<206,50>) + public IList List_index$90228c781d131b76(IList lst_0){ + + + HashMap $typeBindings = new HashMap<>(); + if($T0.match(lst_0.getType(), $typeBindings)){ + final IList $result29 = ((IList)($me.upTill(((IInteger)($me.size(((IList)lst_0))))))); + if($T46.instantiate($typeBindings) != $TF.voidType() && $isSubtypeOf($result29.getType(),$T46)){ + return ((IList)($result29)); + + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/List.rsc|(5352,518,<210,0>,<229,1>) + public IInteger List_indexOf$27a7fd44855c0cd1(IList lst_0, IValue elt_1){ + + + HashMap $typeBindings = new HashMap<>(); + if($T0.match(lst_0.getType(), $typeBindings)){ + if(true){ + if($T2.match(elt_1.getType(), $typeBindings)){ + if(true){ + /*muExists*/FOR2: + do { + final IInteger $lst2 = ((IInteger)($me.size(((IList)lst_0)))); + final boolean $dir3 = ((IInteger)$constants.get(1)/*0*/).less($lst2).getValue(); + + FOR2_GEN5797: + for(IInteger $elem30 = ((IInteger)$constants.get(1)/*0*/); $dir3 ? $aint_less_aint($elem30,$lst2).getValue() + : $aint_lessequal_aint($elem30,$lst2).not().getValue(); $elem30 = $aint_add_aint($elem30,$dir3 ? ((IInteger)$constants.get(2)/*1*/) : ((IInteger)$constants.get(4)/*-1*/))){ + if($isSubtypeOf($elem30.getType(),$T6.instantiate($typeBindings))){ + IInteger i_2 = null; + if((((IBool)($equal(((IValue)($alist_subscript_int(((IList)lst_0),((IInteger)($elem30)).intValue()))), ((IValue)elt_1))))).getValue()){ + final IInteger $result31 = ((IInteger)($elem30)); + if($T6.instantiate($typeBindings) != $TF.voidType() && $isSubtypeOf($result31.getType(),$T6)){ + return ((IInteger)($result31)); + + } else { + return null; + } + } + + } else { + continue FOR2_GEN5797; + }} + continue FOR2; + + } while(false); + /* void: muCon([]) */final IInteger $result31 = ((IInteger)$constants.get(4)/*-1*/); + if($T6.instantiate($typeBindings) != $TF.voidType() && $isSubtypeOf($result31.getType(),$T6)){ + return ((IInteger)($result31)); + + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/List.rsc|(5873,549,<232,0>,<248,76>) + public IList List_insertAt$983b3761096c321e(IList lst_0, IInteger n_1, IValue elm_2){ + + + HashMap $typeBindings = new HashMap<>(); + if($T0.match(lst_0.getType(), $typeBindings)){ + if($T2.match(elm_2.getType(), $typeBindings)){ + final IList $result32 = ((IList)((IList)$Prelude.insertAt(lst_0, n_1, elm_2))); + if($T42.instantiate($typeBindings) != $TF.voidType() && $isSubtypeOf($result32.getType(),$T42)){ + return ((IList)($result32)); + + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/List.rsc|(6425,366,<251,0>,<262,58>) + public IString List_intercalate$6d96d640d678090f(IString sep_0, IList l_1){ + + + final Template $template33 = (Template)new Template($RVF, ""); + /*muExists*/LAB4: + do { + LAB4_GEN6741: + for(IValue $elem35_for : ((IList)($me.index(((IList)l_1))))){ + IInteger $elem35 = (IInteger) $elem35_for; + IInteger i_2 = null; + ;$template33.addStr(((IString)(((((IBool)($equal(((IInteger)($elem35)), ((IInteger)$constants.get(1)/*0*/))))).getValue() ? ((IString)$constants.get(5)/*""*/) : sep_0))).getValue()); + ;$template33.addVal($alist_subscript_int(((IList)l_1),((IInteger)($elem35)).intValue())); + + } + continue LAB4; + + } while(false); + return ((IString)($template33.close())); + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/List.rsc|(6794,319,<265,0>,<276,66>) + public IList List_intersperse$2082f04fb71c32f9(IValue sep_0, IList xs_1){ + + + HashMap $typeBindings = new HashMap<>(); + if($T2.match(sep_0.getType(), $typeBindings)){ + if($T0.match(xs_1.getType(), $typeBindings)){ + if((((IBool)($me.isEmpty(((IList)xs_1))))).getValue()){ + final IList $result40 = ((IList)$constants.get(3)/*[]*/); + if($T42.instantiate($typeBindings) != $TF.voidType() && $isSubtypeOf($result40.getType(),$T42)){ + return ((IList)($result40)); + + } else { + return null; + } + } else { + IList $reducer38 = (IList)($RVF.list(((IValue)($me.head(((IList)xs_1)))))); + $REDUCER37_GEN7098: + for(IValue $elem39_for : ((IList)($me.tail(((IList)xs_1))))){ + IValue $elem39 = (IValue) $elem39_for; + IValue x_3 = null; + $reducer38 = ((IList)($alist_add_alist(((IList)($reducer38)),((IList)($RVF.list(((IValue)sep_0), $elem39)))))); + + } + + final IList $result40 = ((IList)($reducer38)); + if($T42.instantiate($typeBindings) != $TF.voidType() && $isSubtypeOf($result40.getType(),$T42)){ + return ((IList)($result40)); + + } else { + return null; + } + } + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/List.rsc|(7116,269,<279,0>,<291,32>) + public IBool List_isEmpty$fdfe8b76f8afe83f(IList lst_0){ + + + HashMap $typeBindings = new HashMap<>(); + if($T0.match(lst_0.getType(), $typeBindings)){ + final IBool $result41 = ((IBool)((IBool)$Prelude.isEmpty(lst_0))); + if($T19.instantiate($typeBindings) != $TF.voidType() && $isSubtypeOf($result41.getType(),$T19)){ + return ((IBool)($result41)); + + } else { + return ((IBool)$constants.get(6)/*false*/); + + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/List.rsc|(7388,388,<294,0>,<308,44>) + public IValue List_last$452c6357cf59d51d(IList lst_0){ + + + HashMap $typeBindings = new HashMap<>(); + if($T0.match(lst_0.getType(), $typeBindings)){ + final IValue $result42 = ((IValue)((IValue)$Prelude.last(lst_0))); + if($T29.instantiate($typeBindings) != $TF.voidType() && $isSubtypeOf($result42.getType(),$T29)){ + return ((IValue)($result42)); + + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/List.rsc|(7778,425,<310,0>,<327,1>) + public IInteger List_lastIndexOf$66d10d5e9466bed6(IList lst_0, IValue elt_1){ + + + HashMap $typeBindings = new HashMap<>(); + if($T0.match(lst_0.getType(), $typeBindings)){ + if(true){ + if($T2.match(elt_1.getType(), $typeBindings)){ + if(true){ + /*muExists*/FOR5: + do { + FOR5_GEN8129: + for(IValue $elem43_for : ((IList)($me.reverse(((IList)($me.index(((IList)lst_0)))))))){ + IInteger $elem43 = (IInteger) $elem43_for; + IInteger i_2 = null; + if((((IBool)($equal(((IValue)($alist_subscript_int(((IList)lst_0),((IInteger)($elem43)).intValue()))), ((IValue)elt_1))))).getValue()){ + final IInteger $result44 = ((IInteger)($elem43)); + if($T6.instantiate($typeBindings) != $TF.voidType() && $isSubtypeOf($result44.getType(),$T6)){ + return ((IInteger)($result44)); + + } else { + return null; + } + } + + } + continue FOR5; + + } while(false); + /* void: muCon([]) */final IInteger $result44 = ((IInteger)$constants.get(4)/*-1*/); + if($T6.instantiate($typeBindings) != $TF.voidType() && $isSubtypeOf($result44.getType(),$T6)){ + return ((IInteger)($result44)); + + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/List.rsc|(8206,351,<330,0>,<341,71>) + public IList List_mapper$12df1ca4a10ff2b1(IList lst_0, TypedFunctionInstance1 fn_1){ + + + HashMap $typeBindings = new HashMap<>(); + if($T0.match(lst_0.getType(), $typeBindings)){ + if(true){ + if($T14.match(fn_1.getType(), $typeBindings)){ + if(true){ + final IListWriter $listwriter45 = (IListWriter)$RVF.listWriter(); + $LCOMP46_GEN8542: + for(IValue $elem47_for : ((IList)lst_0)){ + IValue $elem47 = (IValue) $elem47_for; + if($isSubtypeOf($elem47.getType(),$T29.instantiate($typeBindings))){ + IValue elm_2 = null; + $listwriter45.append(((TypedFunctionInstance1)fn_1).typedCall(((IValue)($elem47)))); + + } else { + continue $LCOMP46_GEN8542; + } + } + + final IList $result48 = ((IList)($listwriter45.done())); + if($T47.instantiate($typeBindings) != $TF.voidType() && $isSubtypeOf($result48.getType(),$T47)){ + return ((IList)($result48)); + + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/List.rsc|(8560,219,<344,0>,<352,55>) + public IValue List_max$c8bc65c8275c2ea6(IList $0){ + + + HashMap $typeBindings = new HashMap<>(); + /*muExists*/max: + do { + if($T9.match($0.getType(), $typeBindings)){ + final IList $subject54 = ((IList)$0); + int $subject54_cursor = 0; + if($isSubtypeOf($subject54.getType(),$T9)){ + final int $subject54_len = (int)((IList)($subject54)).length(); + if($subject54_len >= 1){ + if($subject54_cursor < $subject54_len){ + IValue h_0 = ((IValue)($alist_subscript_int(((IList)($subject54)),$subject54_cursor))); + $subject54_cursor += 1; + final int $t_155_start = (int)$subject54_cursor; + max_LIST_VARh_MVARt: + + for(int $t_155_len = 0; $t_155_len <= $subject54_len - $t_155_start - 0; $t_155_len += 1){ + IList t_1 = ((IList)($subject54.sublist($t_155_start, $t_155_len))); + $subject54_cursor = $t_155_start + $t_155_len; + if($subject54_cursor == $subject54_len){ + IValue $reducer50 = (IValue)(h_0); + $REDUCER49_GEN8771: + for(IValue $elem52_for : ((IList)t_1)){ + IValue $elem52 = (IValue) $elem52_for; + IValue e_3 = null; + if((((IBool)($lessequal(((IValue)($elem52)),((IValue)($reducer50))).not()))).getValue()){ + $reducer50 = ((IValue)($elem52)); + + } else { + $reducer50 = ((IValue)($reducer50)); + + } + } + + final IValue $result53 = ((IValue)($reducer50)); + if($T29.instantiate($typeBindings) != $TF.voidType() && $isSubtypeOf($result53.getType(),$T29)){ + return ((IValue)($result53)); + + } else { + return null; + } + } else { + continue max_LIST_VARh_MVARt;/*list match1*/ + } + } + return null; + + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } while(false); + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/List.rsc|(8780,44,<353,0>,<353,44>) + public IValue List_max$4d35fec0913b9adc(IList $__0){ + + + HashMap $typeBindings = new HashMap<>(); + /*muExists*/max: + do { + if($T0.match($__0.getType(), $typeBindings)){ + if($__0.equals(((IList)$constants.get(3)/*[]*/))){ + throw new Throw($RVF.constructor(M_Exception.RuntimeException_EmptyList_, new IValue[]{})); + } else { + return null; + } + } else { + return null; + } + } while(false); + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/List.rsc|(8828,997,<356,0>,<384,1>) + public IList List_merge$587ced50ba87c4a7(IList left_0, IList right_1){ + + + HashMap $typeBindings = new HashMap<>(); + if($T0.match(left_0.getType(), $typeBindings)){ + if($T0.match(right_1.getType(), $typeBindings)){ + final IListWriter listwriter_WHILE7 = (IListWriter)$RVF.listWriter(); + /*muExists*/WHILE7_BT: + do { + WHILE7: + while((((IBool)((((IBool)($me.isEmpty(((IList)left_0))))).not()))).getValue()){ + if((((IBool)((((IBool)($me.isEmpty(((IList)right_1))))).not()))).getValue()){ + if((((IBool)($lessequal(((IValue)($me.head(((IList)left_0)))),((IValue)($me.head(((IList)right_1)))))))).getValue()){ + listwriter_WHILE7.append($me.head(((IList)left_0))); + left_0 = ((IList)($me.tail(((IList)left_0)))); + + } else { + listwriter_WHILE7.append($me.head(((IList)right_1))); + right_1 = ((IList)($me.tail(((IList)right_1)))); + + } + } else { + break WHILE7; // muBreak + + } + + } + + } while(false); + IList res_2 = ((IList)(listwriter_WHILE7.done())); + final IList $result56 = ((IList)($alist_add_alist(((IList)($alist_add_alist(((IList)res_2),((IList)left_0)))),((IList)right_1)))); + if($T42.instantiate($typeBindings) != $TF.voidType() && $isSubtypeOf($result56.getType(),$T42)){ + return ((IList)($result56)); + + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/List.rsc|(9827,331,<386,0>,<397,1>) + public IList List_merge$0532f44b2eda13d8(IList left_0, IList right_1, TypedFunctionInstance2 lessOrEqual_2){ + + + HashMap $typeBindings = new HashMap<>(); + if($T0.match(left_0.getType(), $typeBindings)){ + if($T0.match(right_1.getType(), $typeBindings)){ + if($T37.match(lessOrEqual_2.getType(), $typeBindings)){ + final IListWriter listwriter_WHILE9 = (IListWriter)$RVF.listWriter(); + /*muExists*/WHILE9_BT: + do { + WHILE9: + while((((IBool)((((IBool)($me.isEmpty(((IList)left_0))))).not()))).getValue()){ + if((((IBool)((((IBool)($me.isEmpty(((IList)right_1))))).not()))).getValue()){ + if((((IBool)(((TypedFunctionInstance2)lessOrEqual_2).typedCall(((IValue)($me.head(((IList)left_0)))), ((IValue)($me.head(((IList)right_1)))))))).getValue()){ + listwriter_WHILE9.append($me.head(((IList)left_0))); + left_0 = ((IList)($me.tail(((IList)left_0)))); + + } else { + listwriter_WHILE9.append($me.head(((IList)right_1))); + right_1 = ((IList)($me.tail(((IList)right_1)))); + + } + } else { + break WHILE9; // muBreak + + } + + } + + } while(false); + IList res_3 = ((IList)(listwriter_WHILE9.done())); + final IList $result57 = ((IList)($alist_add_alist(((IList)($alist_add_alist(((IList)res_3),((IList)left_0)))),((IList)right_1)))); + if($T42.instantiate($typeBindings) != $TF.voidType() && $isSubtypeOf($result57.getType(),$T42)){ + return ((IList)($result57)); + + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/List.rsc|(10161,220,<400,0>,<408,55>) + public IValue List_min$86af046c90057650(IList $0){ + + + HashMap $typeBindings = new HashMap<>(); + /*muExists*/min: + do { + if($T9.match($0.getType(), $typeBindings)){ + final IList $subject63 = ((IList)$0); + int $subject63_cursor = 0; + if($isSubtypeOf($subject63.getType(),$T9)){ + final int $subject63_len = (int)((IList)($subject63)).length(); + if($subject63_len >= 1){ + if($subject63_cursor < $subject63_len){ + IValue h_0 = ((IValue)($alist_subscript_int(((IList)($subject63)),$subject63_cursor))); + $subject63_cursor += 1; + final int $t_164_start = (int)$subject63_cursor; + min_LIST_VARh_MVARt: + + for(int $t_164_len = 0; $t_164_len <= $subject63_len - $t_164_start - 0; $t_164_len += 1){ + IList t_1 = ((IList)($subject63.sublist($t_164_start, $t_164_len))); + $subject63_cursor = $t_164_start + $t_164_len; + if($subject63_cursor == $subject63_len){ + IValue $reducer59 = (IValue)(h_0); + $REDUCER58_GEN10373: + for(IValue $elem61_for : ((IList)t_1)){ + IValue $elem61 = (IValue) $elem61_for; + IValue e_3 = null; + if((((IBool)($less(((IValue)($elem61)),((IValue)($reducer59)))))).getValue()){ + $reducer59 = ((IValue)($elem61)); + + } else { + $reducer59 = ((IValue)($reducer59)); + + } + } + + final IValue $result62 = ((IValue)($reducer59)); + if($T29.instantiate($typeBindings) != $TF.voidType() && $isSubtypeOf($result62.getType(),$T29)){ + return ((IValue)($result62)); + + } else { + return null; + } + } else { + continue min_LIST_VARh_MVARt;/*list match1*/ + } + } + return null; + + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } while(false); + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/List.rsc|(10382,45,<409,0>,<409,45>) + public IValue List_min$acb3d58fffd8b2f1(IList $__0){ + + + HashMap $typeBindings = new HashMap<>(); + /*muExists*/min: + do { + if($T0.match($__0.getType(), $typeBindings)){ + if($__0.equals(((IList)$constants.get(3)/*[]*/))){ + throw new Throw($RVF.constructor(M_Exception.RuntimeException_EmptyList_, new IValue[]{})); + } else { + return null; + } + } else { + return null; + } + } while(false); + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/List.rsc|(10430,639,<412,0>,<431,1>) + public IList List_mix$5b11827cf2a66f4b(IList l_0, IList r_1){ + + + HashMap $typeBindings = new HashMap<>(); + if($T0.match(l_0.getType(), $typeBindings)){ + if($T0.match(r_1.getType(), $typeBindings)){ + IInteger sizeL_2 = ((IInteger)($me.size(((IList)l_0)))); + IInteger sizeR_3 = ((IInteger)($me.size(((IList)r_1)))); + IInteger minSize_4 = null; + if((((IBool)($aint_less_aint(((IInteger)sizeL_2),((IInteger)sizeR_3))))).getValue()){ + minSize_4 = ((IInteger)sizeL_2); + + } else { + minSize_4 = ((IInteger)sizeR_3); + + }final IListWriter $listwriter66 = (IListWriter)$RVF.listWriter(); + final IInteger $lst7 = ((IInteger)minSize_4); + final boolean $dir8 = ((IInteger)$constants.get(1)/*0*/).less($lst7).getValue(); + + $LCOMP67_GEN11014: + for(IInteger $elem68 = ((IInteger)$constants.get(1)/*0*/); $dir8 ? $aint_less_aint($elem68,$lst7).getValue() + : $aint_lessequal_aint($elem68,$lst7).not().getValue(); $elem68 = $aint_add_aint($elem68,$dir8 ? ((IInteger)$constants.get(2)/*1*/) : ((IInteger)$constants.get(4)/*-1*/))){ + IInteger i_5 = null; + $listwriter66.append($alist_subscript_int(((IList)l_0),((IInteger)($elem68)).intValue())); + $listwriter66.append($alist_subscript_int(((IList)r_1),((IInteger)($elem68)).intValue())); + } + + final IList $result69 = ((IList)($alist_add_alist(((IList)($alist_add_alist(((IList)($listwriter66.done())),((IList)($me.drop(((IInteger)sizeR_3), ((IList)l_0))))))),((IList)($me.drop(((IInteger)sizeL_2), ((IList)r_1))))))); + if($T42.instantiate($typeBindings) != $TF.voidType() && $isSubtypeOf($result69.getType(),$T42)){ + return ((IList)($result69)); + + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/List.rsc|(11071,195,<433,0>,<441,36>) + public ISet List_permutations$c819f16d8907d74b(IList lst_0){ + + + HashMap $typeBindings = new HashMap<>(); + if($T0.match(lst_0.getType(), $typeBindings)){ + final ISet $result70 = ((ISet)($me.permutationsBag(((IMap)($me.distribution(((IList)lst_0))))))); + if($T49.instantiate($typeBindings) != $TF.voidType() && $isSubtypeOf($result70.getType(),$T49)){ + return ((ISet)($result70)); + + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/List.rsc|(11268,172,<443,0>,<446,74>) + public ISet List_permutationsBag$8b2de212b4f23a16(IMap b_0){ + + + HashMap $typeBindings = new HashMap<>(); + if($T39.match(b_0.getType(), $typeBindings)){ + if(true){ + if((((IBool)(M_Map.isEmpty(((IMap)b_0))))).getValue()){ + final ISet $result76 = ((ISet)$constants.get(7)/*{[]}*/); + if($T49.instantiate($typeBindings) != $TF.voidType() && $isSubtypeOf($result76.getType(),$T49)){ + return ((ISet)($result76)); + + } else { + return null; + } + } else { + final ISetWriter $setwriter72 = (ISetWriter)$RVF.setWriter(); + ; + $SCOMP73_GEN11387: + for(IValue $elem75_for : ((IMap)b_0)){ + IValue $elem75 = (IValue) $elem75_for; + IValue e_1 = ((IValue)($elem75)); + $SCOMP73_GEN11387_GEN11395: + for(IValue $elem74_for : ((ISet)($me.permutationsBag(((IMap)($me.removeFromBag(((IMap)b_0), ((IValue)e_1)))))))){ + IList $elem74 = (IList) $elem74_for; + IList rest_2 = null; + $setwriter72.insert($alist_add_alist(((IList)($RVF.list(((IValue)e_1)))),((IList)($elem74)))); + + } + continue $SCOMP73_GEN11387; + + } + + final ISet $result76 = ((ISet)($setwriter72.done())); + if($T49.instantiate($typeBindings) != $TF.voidType() && $isSubtypeOf($result76.getType(),$T49)){ + return ((ISet)($result76)); + + } else { + return null; + } + } + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/List.rsc|(11443,342,<449,0>,<462,54>) + public ITuple List_pop$564116ba8d629906(IList lst_0){ + + + HashMap $typeBindings = new HashMap<>(); + if($T0.match(lst_0.getType(), $typeBindings)){ + final ITuple $result77 = ((ITuple)($me.headTail(((IList)lst_0)))); + if($T45.instantiate($typeBindings) != $TF.voidType() && $isSubtypeOf($result77.getType(),$T45)){ + return ((ITuple)($result77)); + + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/List.rsc|(11788,259,<465,0>,<475,36>) + public IList List_prefix$09e7c5b6eb264f3e(IList lst_0){ + + + HashMap $typeBindings = new HashMap<>(); + if($T0.match(lst_0.getType(), $typeBindings)){ + final IList $result78 = ((IList)((IList)$Prelude.prefix(lst_0))); + if($T42.instantiate($typeBindings) != $TF.voidType() && $isSubtypeOf($result78.getType(),$T42)){ + return ((IList)($result78)); + + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/List.rsc|(12050,278,<478,0>,<489,52>) + public IList List_push$a31a54c2a21ec30e(IValue elem_0, IList lst_1){ + + + HashMap $typeBindings = new HashMap<>(); + if($T2.match(elem_0.getType(), $typeBindings)){ + if($T0.match(lst_1.getType(), $typeBindings)){ + final IList $result79 = ((IList)($alist_add_alist(((IList)($RVF.list(((IValue)elem_0)))),((IList)lst_1)))); + if($T42.instantiate($typeBindings) != $TF.voidType() && $isSubtypeOf($result79.getType(),$T42)){ + return ((IList)($result79)); + + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/List.rsc|(12331,715,<492,0>,<513,38>) + public IValue List_reducer$13d810a90f3d6575(IList lst_0, TypedFunctionInstance2 fn_1, IValue unit_2){ + + + HashMap $typeBindings = new HashMap<>(); + if($T0.match(lst_0.getType(), $typeBindings)){ + if($T28.match(fn_1.getType(), $typeBindings)){ + if($T2.match(unit_2.getType(), $typeBindings)){ + IValue $reducer81 = (IValue)(unit_2); + $REDUCER80_GEN13034: + for(IValue $elem82_for : ((IList)lst_0)){ + IValue $elem82 = (IValue) $elem82_for; + IValue elm_4 = null; + $reducer81 = ((IValue)(((TypedFunctionInstance2)fn_1).typedCall(((IValue)($reducer81)), ((IValue)($elem82))))); + + } + + final IValue $result83 = ((IValue)($reducer81)); + if($T29.instantiate($typeBindings) != $TF.voidType() && $isSubtypeOf($result83.getType(),$T29)){ + return ((IValue)($result83)); + + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/List.rsc|(13048,102,<515,0>,<516,53>) + public IList List_remove$6047315caa154842(IList lst_0, IInteger indexToDelete_1){ + + + HashMap $typeBindings = new HashMap<>(); + if($T0.match(lst_0.getType(), $typeBindings)){ + if(true){ + if(true){ + final IListWriter $listwriter84 = (IListWriter)$RVF.listWriter(); + $LCOMP85_GEN13112: + for(IValue $elem86_for : ((IList)($me.index(((IList)lst_0))))){ + IInteger $elem86 = (IInteger) $elem86_for; + IInteger i_2 = null; + if((((IBool)($equal(((IInteger)($elem86)),((IInteger)indexToDelete_1)).not()))).getValue()){ + $listwriter84.append($alist_subscript_int(((IList)lst_0),((IInteger)($elem86)).intValue())); + + } else { + continue $LCOMP85_GEN13112; + } + + } + + final IList $result87 = ((IList)($listwriter84.done())); + if($T42.instantiate($typeBindings) != $TF.voidType() && $isSubtypeOf($result87.getType(),$T42)){ + return ((IList)($result87)); + + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/List.rsc|(13152,115,<518,0>,<519,26>) + public IMap List_removeFromBag$3427b7346e20c720(IMap b_0, IValue el_1){ + + + HashMap $typeBindings = new HashMap<>(); + if($T39.match(b_0.getType(), $typeBindings)){ + if($T2.match(el_1.getType(), $typeBindings)){ + final IMap $result88 = ((IMap)($me.removeFromBag(((IMap)b_0), ((IValue)el_1), ((IInteger)$constants.get(2)/*1*/)))); + if($T43.instantiate($typeBindings) != $TF.voidType() && $isSubtypeOf($result88.getType(),$T43)){ + return ((IMap)($result88)); + + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/List.rsc|(13269,175,<521,0>,<522,78>) + public IMap List_removeFromBag$5c4ef2614668a761(IMap b_0, IValue el_1, IInteger nr_2){ + + + HashMap $typeBindings = new HashMap<>(); + if($T39.match(b_0.getType(), $typeBindings)){ + if($T2.match(el_1.getType(), $typeBindings)){ + if($is_defined_value($guarded_map_subscript(((IMap)b_0),((IValue)el_1)))){ + if((((IBool)($aint_lessequal_aint(((IInteger)($amap_subscript(((IMap)b_0),((IValue)el_1)))),((IInteger)nr_2))))).getValue()){ + final IMap $result91 = ((IMap)(((IMap)b_0).remove(((IMap)($buildMap(((IValue)el_1), ((IInteger)($amap_subscript(((IMap)b_0),((IValue)el_1)))))))))); + if($T43.instantiate($typeBindings) != $TF.voidType() && $isSubtypeOf($result91.getType(),$T43)){ + return ((IMap)($result91)); + + } else { + return null; + } + } else { + final IMap $result91 = ((IMap)($amap_add_amap(((IMap)b_0),((IMap)($buildMap(((IValue)el_1), ((IInteger)(((IInteger) ((IInteger)($amap_subscript(((IMap)b_0),((IValue)el_1)))).subtract(((IInteger)nr_2))))))))))); + if($T43.instantiate($typeBindings) != $TF.voidType() && $isSubtypeOf($result91.getType(),$T43)){ + return ((IMap)($result91)); + + } else { + return null; + } + } + } else { + final IMap $result91 = ((IMap)b_0); + if($T43.instantiate($typeBindings) != $TF.voidType() && $isSubtypeOf($result91.getType(),$T43)){ + return ((IMap)($result91)); + + } else { + return null; + } + } + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/List.rsc|(13448,295,<525,0>,<537,36>) + public IList List_reverse$9dfd2c061e6148ac(IList lst_0){ + + + HashMap $typeBindings = new HashMap<>(); + if($T0.match(lst_0.getType(), $typeBindings)){ + final IList $result92 = ((IList)((IList)$Prelude.reverse(lst_0))); + if($T42.instantiate($typeBindings) != $TF.voidType() && $isSubtypeOf($result92.getType(),$T42)){ + return ((IList)($result92)); + + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/List.rsc|(13746,236,<540,0>,<549,28>) + public IInteger List_size$ba7443328d8b4a27(IList lst_0){ + + + HashMap $typeBindings = new HashMap<>(); + if($T0.match(lst_0.getType(), $typeBindings)){ + final IInteger $result93 = ((IInteger)((IInteger)$Prelude.size(lst_0))); + if($T6.instantiate($typeBindings) != $TF.voidType() && $isSubtypeOf($result93.getType(),$T6)){ + return ((IInteger)($result93)); + + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/List.rsc|(13985,678,<552,0>,<575,54>) + public IList List_slice$dac0d5be581790d0(IList lst_0, IInteger begin_1, IInteger len_2){ + + + HashMap $typeBindings = new HashMap<>(); + if($T0.match(lst_0.getType(), $typeBindings)){ + final IList $result94 = ((IList)((IList)$Prelude.slice(lst_0, begin_1, len_2))); + if($T42.instantiate($typeBindings) != $TF.voidType() && $isSubtypeOf($result94.getType(),$T42)){ + return ((IList)($result94)); + + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/List.rsc|(15190,35,<596,11>,<596,46>) + public IBool $CLOSURE_0(IValue a_0, IValue b_1){ + + + HashMap $typeBindings = new HashMap<>(); + if($T20.match(a_0.getType(), $typeBindings)){ + if($T38.match(b_1.getType(), $typeBindings)){ + final IBool $result95 = ((IBool)($less(((IValue)a_0),((IValue)b_1)))); + if($T19.instantiate($typeBindings) != $TF.voidType() && $isSubtypeOf($result95.getType(),$T19)){ + return ((IBool)($result95)); + + } else { + return ((IBool)$constants.get(6)/*false*/); + + } + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/List.rsc|(14666,562,<578,0>,<596,49>) + public IList List_sort$1fe4426c8c8039da(IList lst_0){ + + + HashMap $typeBindings = new HashMap<>(); + if($T0.match(lst_0.getType(), $typeBindings)){ + final IList $result96 = ((IList)($me.sort(((IList)lst_0), new TypedFunctionInstance2(($15190_0, $15190_1) -> { return $CLOSURE_0((IValue)$15190_0, (IValue)$15190_1); }, $T50)))); + if($T42.instantiate($typeBindings) != $TF.voidType() && $isSubtypeOf($result96.getType(),$T42)){ + return ((IList)($result96)); + + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/List.rsc|(15231,98,<598,0>,<599,56>) + public IList List_sort$a9bbc6fca4e60d0a(IList l_0, TypedFunctionInstance2 less_1){ + + + HashMap $typeBindings = new HashMap<>(); + if($T0.match(l_0.getType(), $typeBindings)){ + if($T37.match(less_1.getType(), $typeBindings)){ + final IList $result97 = ((IList)((IList)$Prelude.sort(l_0, less_1))); + if($T42.instantiate($typeBindings) != $TF.voidType() && $isSubtypeOf($result97.getType(),$T42)){ + return ((IList)($result97)); + + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/List.rsc|(15716,35,<609,51>,<609,86>) + public IBool $CLOSURE_1(IValue a_0, IValue b_1){ + + + HashMap $typeBindings = new HashMap<>(); + if($T20.match(a_0.getType(), $typeBindings)){ + if($T38.match(b_1.getType(), $typeBindings)){ + final IBool $result98 = ((IBool)($less(((IValue)a_0),((IValue)b_1)))); + if($T19.instantiate($typeBindings) != $TF.voidType() && $isSubtypeOf($result98.getType(),$T19)){ + return ((IBool)($result98)); + + } else { + return ((IBool)$constants.get(6)/*false*/); + + } + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/List.rsc|(15332,468,<602,0>,<610,47>) + public IBool List_isSorted$293ad5967a3bf1ea(IList l_0, java.util.Map $kwpActuals){ + + java.util.Map $kwpDefaults = Util.kwpMap(); + TypedFunctionInstance2 $kwpDefault_less = new TypedFunctionInstance2(($15716_0, $15716_1) -> { return $CLOSURE_1((IValue)$15716_0, (IValue)$15716_1); }, $T50); + $kwpDefaults.put("less", $kwpDefault_less); + HashMap $typeBindings = new HashMap<>(); + if($T0.match(l_0.getType(), $typeBindings)){ + if(true){ + IBool $done99 = (IBool)(((IBool)$constants.get(8)/*true*/)); + /*muExists*/$ANY100: + do { + final IList $subject103 = ((IList)l_0); + int $subject103_cursor = 0; + if($isSubtypeOf($subject103.getType(),$T0)){ + final int $subject103_len = (int)((IList)($subject103)).length(); + if($subject103_len >= 2){ + final int $__1105_start = (int)$subject103_cursor; + $ANY100_LIST_MVAR$_101: + + for(int $__1105_len = 0; $__1105_len <= $subject103_len - $__1105_start - 2; $__1105_len += 1){ + $subject103_cursor = $__1105_start + $__1105_len; + if($subject103_cursor < $subject103_len){ + IValue a_2 = ((IValue)($alist_subscript_int(((IList)($subject103)),$subject103_cursor))); + $subject103_cursor += 1; + if($subject103_cursor < $subject103_len){ + IValue b_3 = ((IValue)($alist_subscript_int(((IList)($subject103)),$subject103_cursor))); + $subject103_cursor += 1; + final int $__1104_start = (int)$subject103_cursor; + final int $__1104_len = (int)$subject103_len - $__1104_start - 0; + $subject103_cursor = $__1104_start + $__1104_len; + /*muExists*/$ANY100_LIST_MVAR$_101_VARa_VARb_MVAR$_102: + do { + if($subject103_cursor == $subject103_len){ + if((((IBool)(((TypedFunctionInstance2)((TypedFunctionInstance2) ($kwpActuals.containsKey("less") ? $kwpActuals.get("less") : $kwpDefaults.get("less")))).typedCall(((IValue)b_3), ((IValue)a_2))))).getValue()){ + $done99 = ((IBool)$constants.get(6)/*false*/); + break $ANY100; // muSucceed + } else { + continue $ANY100;/*not any*/ + } + } else { + continue $ANY100_LIST_MVAR$_101_VARa_VARb_MVAR$_102;/*list match1*/ + } + } while(false); + continue $ANY100_LIST_MVAR$_101;/*computeFail*/ + } else { + continue $ANY100_LIST_MVAR$_101;/*computeFail*/ + } + } else { + continue $ANY100_LIST_MVAR$_101;/*computeFail*/ + } + } + + + } + + } + + } while(false); + final IBool $result106 = ((IBool)($done99)); + if($T19.instantiate($typeBindings) != $TF.voidType() && $isSubtypeOf($result106.getType(),$T19)){ + return ((IBool)($result106)); + + } else { + return ((IBool)$constants.get(6)/*false*/); + + } + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/List.rsc|(15803,276,<613,0>,<625,34>) + public IList List_shuffle$33a2b58b4f0a6e3a(IList l_0){ + + + HashMap $typeBindings = new HashMap<>(); + if($T0.match(l_0.getType(), $typeBindings)){ + final IList $result107 = ((IList)((IList)$Prelude.shuffle(l_0))); + if($T42.instantiate($typeBindings) != $TF.voidType() && $isSubtypeOf($result107.getType(),$T42)){ + return ((IList)($result107)); + + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/List.rsc|(16082,374,<628,0>,<642,44>) + public IList List_shuffle$ef4eb9552ad766a9(IList l_0, IInteger seed_1){ + + + HashMap $typeBindings = new HashMap<>(); + if($T0.match(l_0.getType(), $typeBindings)){ + final IList $result108 = ((IList)((IList)$Prelude.shuffle(l_0, seed_1))); + if($T42.instantiate($typeBindings) != $TF.voidType() && $isSubtypeOf($result108.getType(),$T42)){ + return ((IList)($result108)); + + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/List.rsc|(16459,260,<645,0>,<656,1>) + public ITuple List_split$19c747b75c8a251d(IList l_0){ + + + HashMap $typeBindings = new HashMap<>(); + if($T0.match(l_0.getType(), $typeBindings)){ + IInteger half_1 = ((IInteger)($aint_divide_aint(((IInteger)($me.size(((IList)l_0)))),((IInteger)$constants.get(9)/*2*/)))); + final ITuple $result109 = ((ITuple)($RVF.tuple(((IList)($me.take(((IInteger)half_1), ((IList)l_0)))), ((IList)($me.drop(((IInteger)half_1), ((IList)l_0))))))); + if($T51.instantiate($typeBindings) != $TF.voidType() && $isSubtypeOf($result109.getType(),$T51)){ + return ((ITuple)($result109)); + + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/List.rsc|(16722,201,<659,0>,<667,76>) + public INumber List_sum$9ba9391d87d7cdce(IList $0){ + + + HashMap $typeBindings = new HashMap<>(); + /*muExists*/sum: + do { + if($T22.match($0.getType(), $typeBindings)){ + final IList $subject114 = ((IList)$0); + int $subject114_cursor = 0; + if($isSubtypeOf($subject114.getType(),$T22)){ + final int $subject114_len = (int)((IList)($subject114)).length(); + if($subject114_len >= 1){ + if($subject114_cursor < $subject114_len){ + INumber hd_0 = ((INumber)($alist_subscript_int(((IList)($subject114)),$subject114_cursor))); + $subject114_cursor += 1; + final int $tl_1115_start = (int)$subject114_cursor; + sum_LIST_VARhd_MVARtl: + + for(int $tl_1115_len = 0; $tl_1115_len <= $subject114_len - $tl_1115_start - 0; $tl_1115_len += 1){ + IList tl_1 = ((IList)($subject114.sublist($tl_1115_start, $tl_1115_len))); + $subject114_cursor = $tl_1115_start + $tl_1115_len; + if($subject114_cursor == $subject114_len){ + INumber $reducer111 = (INumber)(hd_0); + $REDUCER110_GEN16914: + for(IValue $elem112_for : ((IList)tl_1)){ + INumber $elem112 = (INumber) $elem112_for; + INumber i_3 = null; + $reducer111 = ((INumber)($anum_add_anum(((INumber)($reducer111)),((INumber)($elem112))))); + + } + + final INumber $result113 = ((INumber)($reducer111)); + if($T52.instantiate($typeBindings) != $TF.voidType() && $isSubtypeOf($result113.getType(),$T52)){ + return ((INumber)($result113)); + + } else { + return null; + } + } else { + continue sum_LIST_VARhd_MVARtl;/*list match1*/ + } + } + return null; + + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } while(false); + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/List.rsc|(16924,53,<668,0>,<668,53>) + public IValue List_sum$7fab443836973776(IList $__0){ + + + HashMap $typeBindings = new HashMap<>(); + /*muExists*/sum: + do { + if($T0.match($__0.getType(), $typeBindings)){ + if($__0.equals(((IList)$constants.get(3)/*[]*/))){ + throw new Throw($RVF.constructor(M_Exception.RuntimeException_EmptyList_, new IValue[]{})); + } else { + return null; + } + } else { + return null; + } + } while(false); + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/List.rsc|(16980,558,<671,0>,<695,33>) + public IList List_tail$a4bd36b1f369026a(IList $0){ + + + HashMap $typeBindings = new HashMap<>(); + /*muExists*/tail: + do { + if($T30.match($0.getType(), $typeBindings)){ + final IList $subject119 = ((IList)$0); + int $subject119_cursor = 0; + if($isSubtypeOf($subject119.getType(),$T30)){ + final int $subject119_len = (int)((IList)($subject119)).length(); + if($subject119_len >= 1){ + if($subject119_cursor < $subject119_len){ + $subject119_cursor += 1; + final int $t_0120_start = (int)$subject119_cursor; + tail_LIST_VAR$_117_MVARt: + + for(int $t_0120_len = 0; $t_0120_len <= $subject119_len - $t_0120_start - 0; $t_0120_len += 1){ + IList t_0 = ((IList)($subject119.sublist($t_0120_start, $t_0120_len))); + $subject119_cursor = $t_0120_start + $t_0120_len; + if($subject119_cursor == $subject119_len){ + final IList $result118 = ((IList)t_0); + if($T42.instantiate($typeBindings) != $TF.voidType() && $isSubtypeOf($result118.getType(),$T42)){ + return ((IList)($result118)); + + } else { + return null; + } + } else { + continue tail_LIST_VAR$_117_MVARt;/*list match1*/ + } + } + return null; + + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } while(false); + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/List.rsc|(17539,51,<696,0>,<696,51>) + public IList List_tail$33110d2c64b6f3cf(IList $__0){ + + + HashMap $typeBindings = new HashMap<>(); + /*muExists*/tail: + do { + if($T0.match($__0.getType(), $typeBindings)){ + if($__0.equals(((IList)$constants.get(3)/*[]*/))){ + throw new Throw($RVF.constructor(M_Exception.RuntimeException_EmptyList_, new IValue[]{})); + } else { + return null; + } + } else { + return null; + } + } while(false); + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/List.rsc|(17593,108,<698,0>,<699,66>) + public IList List_tail$28d274b499bfa1ce(IList lst_0, IInteger len_1){ + + + HashMap $typeBindings = new HashMap<>(); + if($T0.match(lst_0.getType(), $typeBindings)){ + final IList $result121 = ((IList)((IList)$Prelude.tail(lst_0, len_1))); + if($T42.instantiate($typeBindings) != $TF.voidType() && $isSubtypeOf($result121.getType(),$T42)){ + return ((IList)($result121)); + + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/List.rsc|(17704,448,<702,0>,<716,40>) + public IList List_take$95b89daedfc23844(IInteger n_0, IList lst_1){ + + + HashMap $typeBindings = new HashMap<>(); + if($T0.match(lst_1.getType(), $typeBindings)){ + final IList $result122 = ((IList)((IList)$Prelude.take(n_0, lst_1))); + if($T42.instantiate($typeBindings) != $TF.voidType() && $isSubtypeOf($result122.getType(),$T42)){ + return ((IList)($result122)); + + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/List.rsc|(18155,750,<719,0>,<741,51>) + public ITuple List_takeOneFrom$48bb3b6062ea97b1(IList lst_0){ + + + HashMap $typeBindings = new HashMap<>(); + if($T0.match(lst_0.getType(), $typeBindings)){ + final ITuple $result123 = ((ITuple)((ITuple)$Prelude.takeOneFrom(lst_0))); + if($T45.instantiate($typeBindings) != $TF.voidType() && $isSubtypeOf($result123.getType(),$T45)){ + return ((ITuple)($result123)); + + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/List.rsc|(18908,341,<744,0>,<758,1>) + public IList List_takeWhile$557e76d9c8e487c3(IList lst_0, TypedFunctionInstance1 take_1){ + + + HashMap $typeBindings = new HashMap<>(); + if($T0.match(lst_0.getType(), $typeBindings)){ + if($T18.match(take_1.getType(), $typeBindings)){ + IInteger i_2 = ((IInteger)$constants.get(1)/*0*/); + final IListWriter listwriter_WHILE11 = (IListWriter)$RVF.listWriter(); + /*muExists*/WHILE11_BT: + do { + WHILE11: + while((((IBool)($aint_less_aint(((IInteger)i_2),((IInteger)($me.size(((IList)lst_0)))))))).getValue()){ + if((((IBool)(((TypedFunctionInstance1)take_1).typedCall(((IValue)($alist_subscript_int(((IList)lst_0),((IInteger)i_2).intValue()))))))).getValue()){ + listwriter_WHILE11.append($alist_subscript_int(((IList)lst_0),((IInteger)i_2).intValue())); + i_2 = ((IInteger)($aint_add_aint(((IInteger)i_2),((IInteger)$constants.get(2)/*1*/)))); + + } else { + break WHILE11; // muBreak + + } + + } + + } while(false); + final IList $result124 = ((IList)(listwriter_WHILE11.done())); + if($T42.instantiate($typeBindings) != $TF.voidType() && $isSubtypeOf($result124.getType(),$T42)){ + return ((IList)($result124)); + + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/List.rsc|(19252,768,<761,0>,<778,72>) + public IMap List_toMap$795bdddf805b0c4b(IList lst_0){ + + + HashMap $typeBindings = new HashMap<>(); + if($T11.match(lst_0.getType(), $typeBindings)){ + final IMap $result125 = ((IMap)((IMap)$Prelude.toMap(lst_0))); + if($T53.instantiate($typeBindings) != $TF.voidType() && $isSubtypeOf($result125.getType(),$T53)){ + return ((IMap)($result125)); + + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/List.rsc|(20023,630,<781,0>,<800,72>) + public IMap List_toMapUnique$1ee65c954c28c774(IList lst_0){ + + + HashMap $typeBindings = new HashMap<>(); + if($T11.match(lst_0.getType(), $typeBindings)){ + final IMap $result126 = ((IMap)((IMap)$Prelude.toMapUnique(lst_0))); + if($T57.instantiate($typeBindings) != $TF.voidType() && $isSubtypeOf($result126.getType(),$T57)){ + return ((IMap)($result126)); + + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/List.rsc|(20656,280,<803,0>,<815,26>) + public IValue List_top$7d8d56824622aa16(IList $0){ + + + HashMap $typeBindings = new HashMap<>(); + /*muExists*/top: + do { + if($T35.match($0.getType(), $typeBindings)){ + final IList $subject130 = ((IList)$0); + int $subject130_cursor = 0; + if($isSubtypeOf($subject130.getType(),$T35)){ + final int $subject130_len = (int)((IList)($subject130)).length(); + if($subject130_len >= 1){ + if($subject130_cursor < $subject130_len){ + IValue t_0 = ((IValue)($alist_subscript_int(((IList)($subject130)),$subject130_cursor))); + $subject130_cursor += 1; + final int $__1131_start = (int)$subject130_cursor; + final int $__1131_len = (int)$subject130_len - $__1131_start - 0; + $subject130_cursor = $__1131_start + $__1131_len; + /*muExists*/top_LIST_VARt_MVAR$_128: + do { + if($subject130_cursor == $subject130_len){ + final IValue $result129 = ((IValue)t_0); + if($T29.instantiate($typeBindings) != $TF.voidType() && $isSubtypeOf($result129.getType(),$T29)){ + return ((IValue)($result129)); + + } else { + return null; + } + } else { + continue top_LIST_VARt_MVAR$_128;/*list match1*/ + } + } while(false); + return null; + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } while(false); + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/List.rsc|(20939,439,<818,0>,<832,1>) + public ISet List_toRel$87081beb0169e3cf(IList lst_0){ + + + HashMap $typeBindings = new HashMap<>(); + if($T0.match(lst_0.getType(), $typeBindings)){ + if(true){ + final ISetWriter $setwriter132 = (ISetWriter)$RVF.setWriter(); + ; + /*muExists*/$SCOMP133: + do { + final IList $subject136 = ((IList)lst_0); + int $subject136_cursor = 0; + if($isSubtypeOf($subject136.getType(),$T0)){ + final int $subject136_len = (int)((IList)($subject136)).length(); + if($subject136_len >= 2){ + final int $__1138_start = (int)$subject136_cursor; + $SCOMP133_LIST_MVAR$_134: + + for(int $__1138_len = 0; $__1138_len <= $subject136_len - $__1138_start - 2; $__1138_len += 1){ + $subject136_cursor = $__1138_start + $__1138_len; + if($subject136_cursor < $subject136_len){ + IValue from_1 = ((IValue)($alist_subscript_int(((IList)($subject136)),$subject136_cursor))); + $subject136_cursor += 1; + if($subject136_cursor < $subject136_len){ + IValue to_2 = ((IValue)($alist_subscript_int(((IList)($subject136)),$subject136_cursor))); + $subject136_cursor += 1; + final int $__1137_start = (int)$subject136_cursor; + final int $__1137_len = (int)$subject136_len - $__1137_start - 0; + $subject136_cursor = $__1137_start + $__1137_len; + /*muExists*/$SCOMP133_LIST_MVAR$_134_VARfrom_VARto_MVAR$_135: + do { + if($subject136_cursor == $subject136_len){ + $setwriter132.insert($RVF.tuple(((IValue)from_1), ((IValue)to_2))); + + } else { + continue $SCOMP133_LIST_MVAR$_134_VARfrom_VARto_MVAR$_135;/*list match1*/ + } + } while(false); + continue $SCOMP133_LIST_MVAR$_134;/*computeFail*/ + } else { + continue $SCOMP133_LIST_MVAR$_134;/*computeFail*/ + } + } else { + continue $SCOMP133_LIST_MVAR$_134;/*computeFail*/ + } + } + + + } + + } + + } while(false); + final ISet $result139 = ((ISet)($setwriter132.done())); + if($T58.instantiate($typeBindings) != $TF.voidType() && $isSubtypeOf($result139.getType(),$T58)){ + return ((ISet)($result139)); + + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/List.rsc|(21381,373,<835,0>,<853,33>) + public ISet List_toSet$7a7d987a16d99f97(IList lst_0){ + + + HashMap $typeBindings = new HashMap<>(); + if($T0.match(lst_0.getType(), $typeBindings)){ + final ISet $result140 = ((ISet)((ISet)$Prelude.toSet(lst_0))); + if($T59.instantiate($typeBindings) != $TF.voidType() && $isSubtypeOf($result140.getType(),$T59)){ + return ((ISet)($result140)); + + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/List.rsc|(21757,275,<856,0>,<868,32>) + public IString List_toString$a04f1c5d8efcd2e2(IList lst_0){ + + + HashMap $typeBindings = new HashMap<>(); + if($T0.match(lst_0.getType(), $typeBindings)){ + final IString $result141 = ((IString)((IString)$Prelude.toString(lst_0))); + if($T7.instantiate($typeBindings) != $TF.voidType() && $isSubtypeOf($result141.getType(),$T7)){ + return ((IString)($result141)); + + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/List.rsc|(22036,297,<872,0>,<884,33>) + public IString List_itoString$dc18c931a359f8dc(IList lst_0){ + + + HashMap $typeBindings = new HashMap<>(); + if($T0.match(lst_0.getType(), $typeBindings)){ + final IString $result142 = ((IString)((IString)$Prelude.itoString(lst_0))); + if($T7.instantiate($typeBindings) != $TF.voidType() && $isSubtypeOf($result142.getType(),$T7)){ + return ((IString)($result142)); + + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/List.rsc|(22337,369,<888,0>,<900,42>) + public ITuple List_unzip2$2f0030d08b0b515c(IList lst_0){ + + + HashMap $typeBindings = new HashMap<>(); + if($T21.match(lst_0.getType(), $typeBindings)){ + if(true){ + final IListWriter $listwriter143 = (IListWriter)$RVF.listWriter(); + $LCOMP144_GEN22671: + for(IValue $elem145_for : ((IList)lst_0)){ + IValue $elem145 = (IValue) $elem145_for; + final IValue $tuple_subject146 = ((IValue)($elem145)); + if($tuple_subject146 instanceof ITuple && ((ITuple)$tuple_subject146).arity() == 2){ + /*muExists*/$LCOMP144_GEN22671_TUPLE: + do { + IValue t_1 = null; + $listwriter143.append($subscript_int(((IValue)($tuple_subject146)),0)); + + } while(false); + + } else { + continue $LCOMP144_GEN22671; + } + } + + final IListWriter $listwriter147 = (IListWriter)$RVF.listWriter(); + $LCOMP148_GEN22691: + for(IValue $elem149_for : ((IList)lst_0)){ + IValue $elem149 = (IValue) $elem149_for; + final IValue $tuple_subject150 = ((IValue)($elem149)); + if($tuple_subject150 instanceof ITuple && ((ITuple)$tuple_subject150).arity() == 2){ + /*muExists*/$LCOMP148_GEN22691_TUPLE: + do { + IValue u_2 = null; + $listwriter147.append($subscript_int(((IValue)($tuple_subject150)),1)); + + } while(false); + + } else { + continue $LCOMP148_GEN22691; + } + } + + final ITuple $result151 = ((ITuple)($RVF.tuple(((IList)($listwriter143.done())), ((IList)($listwriter147.done()))))); + if($T60.instantiate($typeBindings) != $TF.voidType() && $isSubtypeOf($result151.getType(),$T60)){ + return ((ITuple)($result151)); + + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/List.rsc|(22758,138,<903,0>,<904,68>) + public ITuple List_unzip3$70df47ebf833367b(IList lst_0){ + + + HashMap $typeBindings = new HashMap<>(); + if($T27.match(lst_0.getType(), $typeBindings)){ + if(true){ + final IListWriter $listwriter152 = (IListWriter)$RVF.listWriter(); + $LCOMP153_GEN22835: + for(IValue $elem154_for : ((IList)lst_0)){ + IValue $elem154 = (IValue) $elem154_for; + final IValue $tuple_subject155 = ((IValue)($elem154)); + if($tuple_subject155 instanceof ITuple && ((ITuple)$tuple_subject155).arity() == 3){ + /*muExists*/$LCOMP153_GEN22835_TUPLE: + do { + IValue t_1 = null; + $listwriter152.append($subscript_int(((IValue)($tuple_subject155)),0)); + + } while(false); + + } else { + continue $LCOMP153_GEN22835; + } + } + + final IListWriter $listwriter156 = (IListWriter)$RVF.listWriter(); + $LCOMP157_GEN22857: + for(IValue $elem158_for : ((IList)lst_0)){ + IValue $elem158 = (IValue) $elem158_for; + final IValue $tuple_subject159 = ((IValue)($elem158)); + if($tuple_subject159 instanceof ITuple && ((ITuple)$tuple_subject159).arity() == 3){ + /*muExists*/$LCOMP157_GEN22857_TUPLE: + do { + IValue u_2 = null; + $listwriter156.append($subscript_int(((IValue)($tuple_subject159)),1)); + + } while(false); + + } else { + continue $LCOMP157_GEN22857; + } + } + + final IListWriter $listwriter160 = (IListWriter)$RVF.listWriter(); + $LCOMP161_GEN22879: + for(IValue $elem162_for : ((IList)lst_0)){ + IValue $elem162 = (IValue) $elem162_for; + final IValue $tuple_subject163 = ((IValue)($elem162)); + if($tuple_subject163 instanceof ITuple && ((ITuple)$tuple_subject163).arity() == 3){ + /*muExists*/$LCOMP161_GEN22879_TUPLE: + do { + IValue w_3 = null; + $listwriter160.append($subscript_int(((IValue)($tuple_subject163)),2)); + + } while(false); + + } else { + continue $LCOMP161_GEN22879; + } + } + + final ITuple $result164 = ((ITuple)($RVF.tuple(((IList)($listwriter152.done())), ((IList)($listwriter156.done())), ((IList)($listwriter160.done()))))); + if($T61.instantiate($typeBindings) != $TF.voidType() && $isSubtypeOf($result164.getType(),$T61)){ + return ((ITuple)($result164)); + + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/List.rsc|(22899,298,<907,0>,<918,29>) + public IList List_upTill$fafbd14901ea615f(IInteger n_0){ + + + return ((IList)((IList)$Prelude.upTill(n_0))); + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/List.rsc|(23200,485,<921,0>,<936,1>) + public IList List_zip2$5cf6b97a195b0a20(IList a_0, IList b_1){ + + + HashMap $typeBindings = new HashMap<>(); + if($T0.match(a_0.getType(), $typeBindings)){ + if($T32.match(b_1.getType(), $typeBindings)){ + if((((IBool)($equal(((IInteger)($me.size(((IList)a_0)))),((IInteger)($me.size(((IList)b_1))))).not()))).getValue()){ + throw new Throw($RVF.constructor(M_Exception.RuntimeException_IllegalArgument_value_str, new IValue[]{((IValue)($RVF.tuple(((IInteger)($me.size(((IList)a_0)))), ((IInteger)($me.size(((IList)b_1))))))), ((IString)$constants.get(10)/*"List size mismatch"*/)})); + } + final IListWriter $listwriter165 = (IListWriter)$RVF.listWriter(); + $LCOMP166_GEN23668: + for(IValue $elem167_for : ((IList)($me.index(((IList)a_0))))){ + IInteger $elem167 = (IInteger) $elem167_for; + IInteger i_2 = ((IInteger)($elem167)); + $listwriter165.append($RVF.tuple(((IValue)($me.elementAt(((IList)a_0), ((IInteger)i_2)))), ((IValue)($me.elementAt(((IList)b_1), ((IInteger)i_2)))))); + + } + + final IList $result168 = ((IList)($listwriter165.done())); + if($T64.instantiate($typeBindings) != $TF.voidType() && $isSubtypeOf($result168.getType(),$T64)){ + return ((IList)($result168)); + + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/List.rsc|(23687,283,<938,0>,<942,1>) + public IList List_zip3$cd5c8c83ab2f56d9(IList a_0, IList b_1, IList c_2){ + + + HashMap $typeBindings = new HashMap<>(); + if($T0.match(a_0.getType(), $typeBindings)){ + if($T32.match(b_1.getType(), $typeBindings)){ + if($T33.match(c_2.getType(), $typeBindings)){ + if((((IBool)($equal(((IInteger)($me.size(((IList)a_0)))),((IInteger)($me.size(((IList)b_1))))).not()))).getValue()){ + throw new Throw($RVF.constructor(M_Exception.RuntimeException_IllegalArgument_value_str, new IValue[]{((IValue)($RVF.tuple(((IInteger)($me.size(((IList)a_0)))), ((IInteger)($me.size(((IList)b_1)))), ((IInteger)($me.size(((IList)c_2))))))), ((IString)$constants.get(10)/*"List size mismatch"*/)})); + } else { + if((((IBool)($equal(((IInteger)($me.size(((IList)a_0)))),((IInteger)($me.size(((IList)c_2))))).not()))).getValue()){ + throw new Throw($RVF.constructor(M_Exception.RuntimeException_IllegalArgument_value_str, new IValue[]{((IValue)($RVF.tuple(((IInteger)($me.size(((IList)a_0)))), ((IInteger)($me.size(((IList)b_1)))), ((IInteger)($me.size(((IList)c_2))))))), ((IString)$constants.get(10)/*"List size mismatch"*/)})); + } + + }final IListWriter $listwriter169 = (IListWriter)$RVF.listWriter(); + $LCOMP170_GEN23953: + for(IValue $elem171_for : ((IList)($me.index(((IList)a_0))))){ + IInteger $elem171 = (IInteger) $elem171_for; + IInteger i_3 = ((IInteger)($elem171)); + $listwriter169.append($RVF.tuple(((IValue)($me.elementAt(((IList)a_0), ((IInteger)i_3)))), ((IValue)($me.elementAt(((IList)b_1), ((IInteger)i_3)))), ((IValue)($me.elementAt(((IList)c_2), ((IInteger)i_3)))))); + + } + + final IList $result172 = ((IList)($listwriter169.done())); + if($T67.instantiate($typeBindings) != $TF.voidType() && $isSubtypeOf($result172.getType(),$T67)){ + return ((IList)($result172)); + + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } + + + public static void main(String[] args) { + throw new RuntimeException("No function `main` found in Rascal module `List`"); + } +} \ No newline at end of file diff --git a/src/rascal/$List.tpl b/src/rascal/$List.tpl new file mode 100644 index 00000000000..e6c61cb68b8 Binary files /dev/null and b/src/rascal/$List.tpl differ diff --git a/src/rascal/$List_$I.java b/src/rascal/$List_$I.java new file mode 100644 index 00000000000..c54b6453a33 --- /dev/null +++ b/src/rascal/$List_$I.java @@ -0,0 +1,68 @@ +package rascal; +import io.usethesource.vallang.*; +import org.rascalmpl.runtime.function.*; + +@SuppressWarnings("unused") +public interface $List_$I { + IValue concat(IValue $0); + IValue delete(IValue $0, IValue $1); + IValue distribution(IValue $0); + IValue drop(IValue $0, IValue $1); + IValue dup(IValue $0); + IValue elementAt(IValue $0, IValue $1); + IValue getFirstFrom(IValue $0); + IValue getOneFrom(IValue $0); + IValue head(IValue $0, IValue $1); + IValue head(IValue $0); + IValue headTail(IValue $0); + IValue index(IValue $0); + IValue indexOf(IValue $0, IValue $1); + IValue insertAt(IValue $0, IValue $1, IValue $2); + IValue intercalate(IValue $0, IValue $1); + IValue intersperse(IValue $0, IValue $1); + IValue isEmpty(IValue $0); + IValue isSorted(IValue $0, java.util.Map $kwpActuals); + IValue itoString(IValue $0); + IValue last(IValue $0); + IValue lastIndexOf(IValue $0, IValue $1); + IValue mapper(IValue $0, IValue $1); + IValue max(IValue $0); + IValue merge(IValue $0, IValue $1); + IValue merge(IValue $0, IValue $1, IValue $2); + IValue min(IValue $0); + IValue mix(IValue $0, IValue $1); + IValue permutations(IValue $0); + IValue permutationsBag(IValue $0); + IValue pop(IValue $0); + IValue prefix(IValue $0); + IValue push(IValue $0, IValue $1); + IValue reducer(IValue $0, IValue $1, IValue $2); + IValue remove(IValue $0, IValue $1); + IValue removeFromBag(IValue $0, IValue $1); + IValue removeFromBag(IValue $0, IValue $1, IValue $2); + IValue reverse(IValue $0); + IValue shuffle(IValue $0); + IValue shuffle(IValue $0, IValue $1); + IValue size(IValue $0); + IValue slice(IValue $0, IValue $1, IValue $2); + IValue sort(IValue $0); + IValue sort(IValue $0, IValue $1); + IValue split(IValue $0); + IValue sum(IValue $0); + IValue tail(IValue $0); + IValue tail(IValue $0, IValue $1); + IValue take(IValue $0, IValue $1); + IValue takeOneFrom(IValue $0); + IValue takeWhile(IValue $0, IValue $1); + IValue toMap(IValue $0); + IValue toMapUnique(IValue $0); + IValue toRel(IValue $0); + IValue toSet(IValue $0); + IValue toString(IValue $0); + IValue top(IValue $0); + IValue unzip2(IValue $0); + IValue unzip3(IValue $0); + IValue upTill(IValue $0); + IValue zip2(IValue $0, IValue $1); + IValue zip3(IValue $0, IValue $1, IValue $2); +} \ No newline at end of file diff --git a/src/rascal/$Map.constants b/src/rascal/$Map.constants new file mode 100644 index 00000000000..9652aa31afd Binary files /dev/null and b/src/rascal/$Map.constants differ diff --git a/src/rascal/$Map.java b/src/rascal/$Map.java new file mode 100644 index 00000000000..a9c16163f1a --- /dev/null +++ b/src/rascal/$Map.java @@ -0,0 +1,912 @@ +package rascal; +import java.io.PrintWriter; +import java.io.StringWriter; +import java.io.InputStreamReader; +import java.io.PrintWriter; +import java.util.*; +import java.util.regex.Matcher; +import io.usethesource.vallang.*; +import io.usethesource.vallang.type.*; +import org.rascalmpl.runtime.*; +import org.rascalmpl.runtime.RascalExecutionContext; +import org.rascalmpl.runtime.function.*; +import org.rascalmpl.runtime.traverse.*; +import org.rascalmpl.runtime.utils.*; +import org.rascalmpl.exceptions.RuntimeExceptionFactory; +import org.rascalmpl.exceptions.Throw; +import org.rascalmpl.runtime.RascalExecutionContext; +import org.rascalmpl.interpreter.control_exceptions.Filtered; +import org.rascalmpl.types.NonTerminalType; +import org.rascalmpl.types.RascalTypeFactory; +import org.rascalmpl.util.ExpiringFunctionResultCache; +import org.rascalmpl.values.RascalValueFactory; +import org.rascalmpl.values.ValueFactoryFactory; +import org.rascalmpl.values.parsetrees.ITree; +import org.rascalmpl.values.parsetrees.TreeAdapter; + + + +@SuppressWarnings({"unused","unchecked","deprecation"}) +public class $Map + extends + org.rascalmpl.runtime.$RascalModule + implements + rascal.$Map_$I { + + private final $Map_$I $me; + private final IList $constants; + + + + + final org.rascalmpl.library.Prelude $Prelude; // TODO: asBaseClassName will generate name collisions if there are more of the same name in different packages + + + public final io.usethesource.vallang.type.Type $T1; /*avalue()*/ + public final io.usethesource.vallang.type.Type $T3; /*aparameter("V",avalue(),closed=false)*/ + public final io.usethesource.vallang.type.Type $T12; /*aparameter("W",avalue(),closed=false)*/ + public final io.usethesource.vallang.type.Type $T15; /*aparameter("V",avalue(),closed=true)*/ + public final io.usethesource.vallang.type.Type $T21; /*aparameter("L",avalue(),closed=true)*/ + public final io.usethesource.vallang.type.Type $T22; /*aparameter("W",avalue(),closed=true)*/ + public final io.usethesource.vallang.type.Type $T27; /*astr()*/ + public final io.usethesource.vallang.type.Type $T10; /*aparameter("L",avalue(),closed=false)*/ + public final io.usethesource.vallang.type.Type $T14; /*aparameter("K",avalue(),closed=true)*/ + public final io.usethesource.vallang.type.Type $T2; /*aparameter("K",avalue(),closed=false)*/ + public final io.usethesource.vallang.type.Type $T24; /*aint()*/ + public final io.usethesource.vallang.type.Type $T8; /*alist(aparameter("V",avalue(),closed=false))*/ + public final io.usethesource.vallang.type.Type $T7; /*amap(aparameter("K",avalue(),closed=false),alist(aparameter("V",avalue(),closed=false)))*/ + public final io.usethesource.vallang.type.Type $T9; /*afunc(aparameter("L",avalue(),closed=false),[aparameter("K",avalue(),closed=false)],[])*/ + public final io.usethesource.vallang.type.Type $T13; /*amap(aparameter("K",avalue(),closed=true),aparameter("V",avalue(),closed=true))*/ + public final io.usethesource.vallang.type.Type $T11; /*afunc(aparameter("W",avalue(),closed=false),[aparameter("V",avalue(),closed=false)],[])*/ + public final io.usethesource.vallang.type.Type $T26; /*arel(atypeList([aparameter("K",avalue(),closed=true),aparameter("V",avalue(),closed=true)]))*/ + public final io.usethesource.vallang.type.Type $T5; /*aset(aparameter("V",avalue(),closed=false))*/ + public final io.usethesource.vallang.type.Type $T4; /*aset(aparameter("K",avalue(),closed=false))*/ + public final io.usethesource.vallang.type.Type $T0; /*amap(aparameter("K",avalue(),closed=false),aparameter("V",avalue(),closed=false))*/ + public final io.usethesource.vallang.type.Type $T25; /*alrel(atypeList([aparameter("K",avalue(),closed=true),aparameter("V",avalue(),closed=true)]))*/ + public final io.usethesource.vallang.type.Type $T16; /*aset(aparameter("K",avalue(),closed=true))*/ + public final io.usethesource.vallang.type.Type $T23; /*aset(aparameter("V",avalue(),closed=true))*/ + public final io.usethesource.vallang.type.Type $T17; /*amap(aparameter("V",avalue(),closed=true),aset(aparameter("K",avalue(),closed=true)))*/ + public final io.usethesource.vallang.type.Type $T6; /*amap(aparameter("K",avalue(),closed=false),aset(aparameter("V",avalue(),closed=false)))*/ + public final io.usethesource.vallang.type.Type $T18; /*amap(aparameter("V",avalue(),closed=true),aparameter("K",avalue(),closed=true))*/ + public final io.usethesource.vallang.type.Type $T20; /*amap(aparameter("L",avalue(),closed=true),aparameter("W",avalue(),closed=true))*/ + public final io.usethesource.vallang.type.Type $T19; /*abool()*/ + + public $Map(RascalExecutionContext rex){ + this(rex, null); + } + + public $Map(RascalExecutionContext rex, Object extended){ + super(rex); + this.$me = extended == null ? this : ($Map_$I)extended; + ModuleStore mstore = rex.getModuleStore(); + mstore.put(rascal.$Map.class, this); + + + + + + + $Prelude = $initLibrary("org.rascalmpl.library.Prelude"); + + $constants = readBinaryConstantsFile(this.getClass(), "rascal/$Map.constants", 1, "f9e544f77b7eac7add281ef28ca5559f"); + $T1 = $TF.valueType(); + $T3 = $TF.parameterType("V", $T1); + $T12 = $TF.parameterType("W", $T1); + $T15 = $TF.parameterType("V", $T1); + $T21 = $TF.parameterType("L", $T1); + $T22 = $TF.parameterType("W", $T1); + $T27 = $TF.stringType(); + $T10 = $TF.parameterType("L", $T1); + $T14 = $TF.parameterType("K", $T1); + $T2 = $TF.parameterType("K", $T1); + $T24 = $TF.integerType(); + $T8 = $TF.listType($T3); + $T7 = $TF.mapType($T2,$T8); + $T9 = $TF.functionType($T10, $TF.tupleType($T2), $TF.tupleEmpty()); + $T13 = $TF.mapType($T14,$T15); + $T11 = $TF.functionType($T12, $TF.tupleType($T3), $TF.tupleEmpty()); + $T26 = $TF.setType($TF.tupleType($T14, $T15)); + $T5 = $TF.setType($T3); + $T4 = $TF.setType($T2); + $T0 = $TF.mapType($T2,$T3); + $T25 = $TF.listType($TF.tupleType($T14, $T15)); + $T16 = $TF.setType($T14); + $T23 = $TF.setType($T15); + $T17 = $TF.mapType($T15,$T16); + $T6 = $TF.mapType($T2,$T5); + $T18 = $TF.mapType($T15,$T14); + $T20 = $TF.mapType($T21,$T22); + $T19 = $TF.boolType(); + + + + } + public IBool isEmpty(IValue $P0){ // Generated by Resolver + IBool $result = null; + Type $P0Type = $P0.getType(); + if($isSubtypeOf($P0Type,$T0)){ + $result = (IBool)Map_isEmpty$ed672b4b9c5f3bbb((IMap) $P0); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0)); + } + public ISet domain(IValue $P0){ // Generated by Resolver + ISet $result = null; + Type $P0Type = $P0.getType(); + if($isSubtypeOf($P0Type,$T0)){ + $result = (ISet)Map_domain$9b1288a4ad0237b3((IMap) $P0); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0)); + } + public IMap invertUnique(IValue $P0){ // Generated by Resolver + IMap $result = null; + Type $P0Type = $P0.getType(); + if($isSubtypeOf($P0Type,$T0)){ + $result = (IMap)Map_invertUnique$5b3b386b9fc483b2((IMap) $P0); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0)); + } + public IMap delete(IValue $P0, IValue $P1){ // Generated by Resolver + IMap $result = null; + Type $P0Type = $P0.getType(); + Type $P1Type = $P1.getType(); + if($isSubtypeOf($P0Type,$T0) && $isSubtypeOf($P1Type,$T2)){ + $result = (IMap)Map_delete$b1d5cae977fe2443((IMap) $P0, (IValue) $P1); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0, $P1)); + } + public IString toString(IValue $P0){ // Generated by Resolver + IString $result = null; + Type $P0Type = $P0.getType(); + if($isSubtypeOf($P0Type,$T0)){ + $result = (IString)Map_toString$abf5d325b231fef4((IMap) $P0); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0)); + } + public IMap domainR(IValue $P0, IValue $P1){ // Generated by Resolver + IMap $result = null; + Type $P0Type = $P0.getType(); + Type $P1Type = $P1.getType(); + if($isSubtypeOf($P0Type,$T0) && $isSubtypeOf($P1Type,$T4)){ + $result = (IMap)Map_domainR$a8f99b67701b72b1((IMap) $P0, (ISet) $P1); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0, $P1)); + } + public IMap domainX(IValue $P0, IValue $P1){ // Generated by Resolver + IMap $result = null; + Type $P0Type = $P0.getType(); + Type $P1Type = $P1.getType(); + if($isSubtypeOf($P0Type,$T0) && $isSubtypeOf($P1Type,$T4)){ + $result = (IMap)Map_domainX$afe984f893f4a301((IMap) $P0, (ISet) $P1); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0, $P1)); + } + public IMap invert(IValue $P0){ // Generated by Resolver + IMap $result = null; + Type $P0Type = $P0.getType(); + if($isSubtypeOf($P0Type,$T0)){ + $result = (IMap)Map_invert$64aa6cd1282cb3fa((IMap) $P0); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0)); + } + public IList toList(IValue $P0){ // Generated by Resolver + IList $result = null; + Type $P0Type = $P0.getType(); + if($isSubtypeOf($P0Type,$T0)){ + $result = (IList)Map_toList$0b33bf725d0e6d0f((IMap) $P0); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0)); + } + public IValue getOneFrom(IValue $P0){ // Generated by Resolver + IValue $result = null; + Type $P0Type = $P0.getType(); + if($isSubtypeOf($P0Type,$T0)){ + $result = (IValue)Map_getOneFrom$29ec312a4cfff141((IMap) $P0); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0)); + } + public IMap rangeX(IValue $P0, IValue $P1){ // Generated by Resolver + IMap $result = null; + Type $P0Type = $P0.getType(); + Type $P1Type = $P1.getType(); + if($isSubtypeOf($P0Type,$T0) && $isSubtypeOf($P1Type,$T5)){ + $result = (IMap)Map_rangeX$ee9d95de88722a3d((IMap) $P0, (ISet) $P1); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0, $P1)); + } + public ISet range(IValue $P0){ // Generated by Resolver + ISet $result = null; + Type $P0Type = $P0.getType(); + if($isSubtypeOf($P0Type,$T0)){ + $result = (ISet)Map_range$253fbdb0dfd1c58e((IMap) $P0); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0)); + } + public ISet toRel(IValue $P0){ // Generated by Resolver + ISet $result = null; + Type $P0Type = $P0.getType(); + if($isSubtypeOf($P0Type,$T6)){ + $result = (ISet)Map_toRel$11f169637ca77288((IMap) $P0); + if($result != null) return $result; + } + if($isSubtypeOf($P0Type,$T7)){ + $result = (ISet)Map_toRel$9956856de4e2d212((IMap) $P0); + if($result != null) return $result; + } + if($isSubtypeOf($P0Type,$T0)){ + $result = (ISet)Map_toRel$387f97e911755202((IMap) $P0); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0)); + } + public IInteger size(IValue $P0){ // Generated by Resolver + IInteger $result = null; + Type $P0Type = $P0.getType(); + if($isSubtypeOf($P0Type,$T0)){ + $result = (IInteger)Map_size$9404b041dab68eb5((IMap) $P0); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0)); + } + public IMap mapper(IValue $P0, IValue $P1, IValue $P2){ // Generated by Resolver + IMap $result = null; + Type $P0Type = $P0.getType(); + Type $P1Type = $P1.getType(); + Type $P2Type = $P2.getType(); + if($isSubtypeOf($P0Type,$T0) && $isSubtypeOf($P1Type,$T9) && $isSubtypeOf($P2Type,$T11)){ + $result = (IMap)Map_mapper$b5a90d96017a8cf1((IMap) $P0, (TypedFunctionInstance1) $P1, (TypedFunctionInstance1) $P2); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0, $P1, $P2)); + } + public IString itoString(IValue $P0){ // Generated by Resolver + IString $result = null; + Type $P0Type = $P0.getType(); + if($isSubtypeOf($P0Type,$T0)){ + $result = (IString)Map_itoString$5b37f50401db6c5c((IMap) $P0); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0)); + } + public IMap rangeR(IValue $P0, IValue $P1){ // Generated by Resolver + IMap $result = null; + Type $P0Type = $P0.getType(); + Type $P1Type = $P1.getType(); + if($isSubtypeOf($P0Type,$T0) && $isSubtypeOf($P1Type,$T5)){ + $result = (IMap)Map_rangeR$fdf13a0a4c50674a((IMap) $P0, (ISet) $P1); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0, $P1)); + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Map.rsc|(648,267,<21,0>,<32,50>) + public IMap Map_delete$b1d5cae977fe2443(IMap m_0, IValue k_1){ + + + HashMap $typeBindings = new HashMap<>(); + if($T0.match(m_0.getType(), $typeBindings)){ + if($T2.match(k_1.getType(), $typeBindings)){ + final IMap $result0 = ((IMap)((IMap)$Prelude.delete(m_0, k_1))); + if($T13.instantiate($typeBindings) != $TF.voidType() && $isSubtypeOf($result0.getType(),$T13)){ + return ((IMap)($result0)); + + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Map.rsc|(921,279,<36,0>,<47,42>) + public ISet Map_domain$9b1288a4ad0237b3(IMap M_0){ + + + HashMap $typeBindings = new HashMap<>(); + if($T0.match(M_0.getType(), $typeBindings)){ + final ISet $result1 = ((ISet)((ISet)$Prelude.domain(M_0))); + if($T16.instantiate($typeBindings) != $TF.voidType() && $isSubtypeOf($result1.getType(),$T16)){ + return ((ISet)($result1)); + + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Map.rsc|(1203,328,<50,0>,<61,49>) + public IMap Map_domainR$a8f99b67701b72b1(IMap M_0, ISet S_1){ + + + HashMap $typeBindings = new HashMap<>(); + if($T0.match(M_0.getType(), $typeBindings)){ + if(true){ + if($T4.match(S_1.getType(), $typeBindings)){ + if(true){ + if((((IBool)($me.isEmpty(((IMap)M_0))))).getValue()){ + final IMap $result6 = ((IMap)M_0); + if($T13.instantiate($typeBindings) != $TF.voidType() && $isSubtypeOf($result6.getType(),$T13)){ + return ((IMap)($result6)); + + } else { + return null; + } + } else { + final IMapWriter $mapwriter3 = (IMapWriter)$RVF.mapWriter(); + $MCOMP4_GEN1512: + for(IValue $elem5_for : ((IMap)M_0)){ + IValue $elem5 = (IValue) $elem5_for; + if($isSubtypeOf($elem5.getType(),$T14.instantiate($typeBindings))){ + IValue k_2 = null; + if((((IBool)($RVF.bool(((ISet)S_1).contains(((IValue)($elem5))))))).getValue()){ + $mapwriter3.insert($RVF.tuple($elem5, $amap_subscript(((IMap)M_0),((IValue)($elem5))))); + + } else { + continue $MCOMP4_GEN1512; + } + + } else { + continue $MCOMP4_GEN1512; + } + } + + final IMap $result6 = ((IMap)($mapwriter3.done())); + if($T13.instantiate($typeBindings) != $TF.voidType() && $isSubtypeOf($result6.getType(),$T13)){ + return ((IMap)($result6)); + + } else { + return null; + } + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Map.rsc|(1534,335,<64,0>,<75,52>) + public IMap Map_domainX$afe984f893f4a301(IMap M_0, ISet S_1){ + + + HashMap $typeBindings = new HashMap<>(); + if($T0.match(M_0.getType(), $typeBindings)){ + if(true){ + if($T4.match(S_1.getType(), $typeBindings)){ + if(true){ + if((((IBool)($me.isEmpty(((IMap)M_0))))).getValue()){ + final IMap $result11 = ((IMap)M_0); + if($T13.instantiate($typeBindings) != $TF.voidType() && $isSubtypeOf($result11.getType(),$T13)){ + return ((IMap)($result11)); + + } else { + return null; + } + } else { + final IMapWriter $mapwriter8 = (IMapWriter)$RVF.mapWriter(); + $MCOMP9_GEN1847: + for(IValue $elem10_for : ((IMap)M_0)){ + IValue $elem10 = (IValue) $elem10_for; + if($isSubtypeOf($elem10.getType(),$T14.instantiate($typeBindings))){ + IValue k_2 = null; + if((((IBool)($RVF.bool(!(((ISet)S_1)).contains(((IValue)($elem10))))))).getValue()){ + $mapwriter8.insert($RVF.tuple($elem10, $amap_subscript(((IMap)M_0),((IValue)($elem10))))); + + } else { + continue $MCOMP9_GEN1847; + } + + } else { + continue $MCOMP9_GEN1847; + } + } + + final IMap $result11 = ((IMap)($mapwriter8.done())); + if($T13.instantiate($typeBindings) != $TF.voidType() && $isSubtypeOf($result11.getType(),$T13)){ + return ((IMap)($result11)); + + } else { + return null; + } + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Map.rsc|(1872,385,<78,0>,<91,41>) + public IValue Map_getOneFrom$29ec312a4cfff141(IMap M_0){ + + + HashMap $typeBindings = new HashMap<>(); + if($T0.match(M_0.getType(), $typeBindings)){ + final IValue $result12 = ((IValue)((IValue)$Prelude.getOneFrom(M_0))); + if($T14.instantiate($typeBindings) != $TF.voidType() && $isSubtypeOf($result12.getType(),$T14)){ + return ((IValue)($result12)); + + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Map.rsc|(2260,396,<94,0>,<106,53>) + public IMap Map_invert$64aa6cd1282cb3fa(IMap M_0){ + + + HashMap $typeBindings = new HashMap<>(); + if($T0.match(M_0.getType(), $typeBindings)){ + final IMap $result13 = ((IMap)((IMap)$Prelude.invert(M_0))); + if($T17.instantiate($typeBindings) != $TF.voidType() && $isSubtypeOf($result13.getType(),$T17)){ + return ((IMap)($result13)); + + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Map.rsc|(2659,708,<109,0>,<130,54>) + public IMap Map_invertUnique$5b3b386b9fc483b2(IMap M_0){ + + + HashMap $typeBindings = new HashMap<>(); + if($T0.match(M_0.getType(), $typeBindings)){ + final IMap $result14 = ((IMap)((IMap)$Prelude.invertUnique(M_0))); + if($T18.instantiate($typeBindings) != $TF.voidType() && $isSubtypeOf($result14.getType(),$T18)){ + return ((IMap)($result14)); + + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Map.rsc|(3370,302,<133,0>,<145,40>) + public IBool Map_isEmpty$ed672b4b9c5f3bbb(IMap M_0){ + + + HashMap $typeBindings = new HashMap<>(); + if($T0.match(M_0.getType(), $typeBindings)){ + final IBool $result15 = ((IBool)((IBool)$Prelude.isEmpty(M_0))); + if($T19.instantiate($typeBindings) != $TF.voidType() && $isSubtypeOf($result15.getType(),$T19)){ + return ((IBool)($result15)); + + } else { + return ((IBool)$constants.get(0)/*false*/); + + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Map.rsc|(3675,454,<148,0>,<161,38>) + public IMap Map_mapper$b5a90d96017a8cf1(IMap M_0, TypedFunctionInstance1 F_1, TypedFunctionInstance1 G_2){ + + + HashMap $typeBindings = new HashMap<>(); + if($T0.match(M_0.getType(), $typeBindings)){ + if(true){ + if($T9.match(F_1.getType(), $typeBindings)){ + if(true){ + if($T11.match(G_2.getType(), $typeBindings)){ + if(true){ + final IMapWriter $mapwriter16 = (IMapWriter)$RVF.mapWriter(); + $MCOMP17_GEN4116: + for(IValue $elem18_for : ((IMap)M_0)){ + IValue $elem18 = (IValue) $elem18_for; + if($isSubtypeOf($elem18.getType(),$T14.instantiate($typeBindings))){ + IValue key_3 = null; + $mapwriter16.insert($RVF.tuple(((TypedFunctionInstance1)F_1).typedCall(((IValue)($elem18))), ((TypedFunctionInstance1)G_2).typedCall(((IValue)($amap_subscript(((IMap)M_0),((IValue)($elem18)))))))); + + } else { + continue $MCOMP17_GEN4116; + } + } + + final IMap $result19 = ((IMap)($mapwriter16.done())); + if($T20.instantiate($typeBindings) != $TF.voidType() && $isSubtypeOf($result19.getType(),$T20)){ + return ((IMap)($result19)); + + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Map.rsc|(4133,297,<165,0>,<176,41>) + public ISet Map_range$253fbdb0dfd1c58e(IMap M_0){ + + + HashMap $typeBindings = new HashMap<>(); + if($T0.match(M_0.getType(), $typeBindings)){ + final ISet $result20 = ((ISet)((ISet)$Prelude.range(M_0))); + if($T23.instantiate($typeBindings) != $TF.voidType() && $isSubtypeOf($result20.getType(),$T23)){ + return ((ISet)($result20)); + + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Map.rsc|(4433,342,<179,0>,<190,52>) + public IMap Map_rangeR$fdf13a0a4c50674a(IMap M_0, ISet S_1){ + + + HashMap $typeBindings = new HashMap<>(); + if($T0.match(M_0.getType(), $typeBindings)){ + if(true){ + if($T5.match(S_1.getType(), $typeBindings)){ + if(true){ + if((((IBool)($me.isEmpty(((IMap)M_0))))).getValue()){ + final IMap $result25 = ((IMap)M_0); + if($T13.instantiate($typeBindings) != $TF.voidType() && $isSubtypeOf($result25.getType(),$T13)){ + return ((IMap)($result25)); + + } else { + return null; + } + } else { + final IMapWriter $mapwriter22 = (IMapWriter)$RVF.mapWriter(); + $MCOMP23_GEN4753: + for(IValue $elem24_for : ((IMap)M_0)){ + IValue $elem24 = (IValue) $elem24_for; + if($isSubtypeOf($elem24.getType(),$T14.instantiate($typeBindings))){ + IValue k_2 = null; + if((((IBool)($RVF.bool(((ISet)S_1).contains(((IValue)($amap_subscript(((IMap)M_0),((IValue)($elem24)))))))))).getValue()){ + $mapwriter22.insert($RVF.tuple($elem24, $amap_subscript(((IMap)M_0),((IValue)($elem24))))); + + } else { + continue $MCOMP23_GEN4753; + } + + } else { + continue $MCOMP23_GEN4753; + } + } + + final IMap $result25 = ((IMap)($mapwriter22.done())); + if($T13.instantiate($typeBindings) != $TF.voidType() && $isSubtypeOf($result25.getType(),$T13)){ + return ((IMap)($result25)); + + } else { + return null; + } + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Map.rsc|(4778,348,<193,0>,<204,55>) + public IMap Map_rangeX$ee9d95de88722a3d(IMap M_0, ISet S_1){ + + + HashMap $typeBindings = new HashMap<>(); + if($T0.match(M_0.getType(), $typeBindings)){ + if(true){ + if($T5.match(S_1.getType(), $typeBindings)){ + if(true){ + if((((IBool)($me.isEmpty(((IMap)M_0))))).getValue()){ + final IMap $result30 = ((IMap)M_0); + if($T13.instantiate($typeBindings) != $TF.voidType() && $isSubtypeOf($result30.getType(),$T13)){ + return ((IMap)($result30)); + + } else { + return null; + } + } else { + final IMapWriter $mapwriter27 = (IMapWriter)$RVF.mapWriter(); + $MCOMP28_GEN5101: + for(IValue $elem29_for : ((IMap)M_0)){ + IValue $elem29 = (IValue) $elem29_for; + if($isSubtypeOf($elem29.getType(),$T14.instantiate($typeBindings))){ + IValue k_2 = null; + if((((IBool)($RVF.bool(!(((ISet)S_1)).contains(((IValue)($amap_subscript(((IMap)M_0),((IValue)($elem29)))))))))).getValue()){ + $mapwriter27.insert($RVF.tuple($elem29, $amap_subscript(((IMap)M_0),((IValue)($elem29))))); + + } else { + continue $MCOMP28_GEN5101; + } + + } else { + continue $MCOMP28_GEN5101; + } + } + + final IMap $result30 = ((IMap)($mapwriter27.done())); + if($T13.instantiate($typeBindings) != $TF.voidType() && $isSubtypeOf($result30.getType(),$T13)){ + return ((IMap)($result30)); + + } else { + return null; + } + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Map.rsc|(5129,273,<207,0>,<218,36>) + public IInteger Map_size$9404b041dab68eb5(IMap M_0){ + + + HashMap $typeBindings = new HashMap<>(); + if($T0.match(M_0.getType(), $typeBindings)){ + final IInteger $result31 = ((IInteger)((IInteger)$Prelude.size(M_0))); + if($T24.instantiate($typeBindings) != $TF.voidType() && $isSubtypeOf($result31.getType(),$T24)){ + return ((IInteger)($result31)); + + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Map.rsc|(5405,233,<221,0>,<229,54>) + public IList Map_toList$0b33bf725d0e6d0f(IMap M_0){ + + + HashMap $typeBindings = new HashMap<>(); + if($T0.match(M_0.getType(), $typeBindings)){ + final IList $result32 = ((IList)((IList)$Prelude.toList(M_0))); + if($T25.instantiate($typeBindings) != $TF.voidType() && $isSubtypeOf($result32.getType(),$T25)){ + return ((IList)($result32)); + + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Map.rsc|(5641,211,<232,0>,<239,81>) + public ISet Map_toRel$11f169637ca77288(IMap M_0){ + + + HashMap $typeBindings = new HashMap<>(); + if($T6.match(M_0.getType(), $typeBindings)){ + if(true){ + final ISetWriter $setwriter33 = (ISetWriter)$RVF.setWriter(); + ; + $SCOMP34_GEN5827: + for(IValue $elem36_for : ((IMap)M_0)){ + IValue $elem36 = (IValue) $elem36_for; + if($isSubtypeOf($elem36.getType(),$T14.instantiate($typeBindings))){ + IValue k_1 = null; + $SCOMP34_GEN5827_GEN5838: + for(IValue $elem35_for : ((ISet)($amap_subscript(((IMap)M_0),((IValue)($elem36)))))){ + IValue $elem35 = (IValue) $elem35_for; + if($isSubtypeOf($elem35.getType(),$T15.instantiate($typeBindings))){ + IValue v_2 = null; + $setwriter33.insert($RVF.tuple(((IValue)($elem36)), ((IValue)($elem35)))); + + } else { + continue $SCOMP34_GEN5827_GEN5838; + } + } + continue $SCOMP34_GEN5827; + + } else { + continue $SCOMP34_GEN5827; + } + } + + final ISet $result37 = ((ISet)($setwriter33.done())); + if($T26.instantiate($typeBindings) != $TF.voidType() && $isSubtypeOf($result37.getType(),$T26)){ + return ((ISet)($result37)); + + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Map.rsc|(5853,81,<240,0>,<240,81>) + public ISet Map_toRel$9956856de4e2d212(IMap M_0){ + + + HashMap $typeBindings = new HashMap<>(); + if($T7.match(M_0.getType(), $typeBindings)){ + if(true){ + final ISetWriter $setwriter38 = (ISetWriter)$RVF.setWriter(); + ; + $SCOMP39_GEN5909: + for(IValue $elem41_for : ((IMap)M_0)){ + IValue $elem41 = (IValue) $elem41_for; + if($isSubtypeOf($elem41.getType(),$T14.instantiate($typeBindings))){ + IValue k_1 = null; + $SCOMP39_GEN5909_GEN5920: + for(IValue $elem40_for : ((IList)($amap_subscript(((IMap)M_0),((IValue)($elem41)))))){ + IValue $elem40 = (IValue) $elem40_for; + if($isSubtypeOf($elem40.getType(),$T15.instantiate($typeBindings))){ + IValue v_2 = null; + $setwriter38.insert($RVF.tuple(((IValue)($elem41)), ((IValue)($elem40)))); + + } else { + continue $SCOMP39_GEN5909_GEN5920; + } + } + continue $SCOMP39_GEN5909; + + } else { + continue $SCOMP39_GEN5909; + } + } + + final ISet $result42 = ((ISet)($setwriter38.done())); + if($T26.instantiate($typeBindings) != $TF.voidType() && $isSubtypeOf($result42.getType(),$T26)){ + return ((ISet)($result42)); + + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Map.rsc|(5935,95,<241,0>,<242,53>) + public ISet Map_toRel$387f97e911755202(IMap M_0){ + + + HashMap $typeBindings = new HashMap<>(); + if($T0.match(M_0.getType(), $typeBindings)){ + final ISet $result43 = ((ISet)((ISet)$Prelude.toRel(M_0))); + if($T26.instantiate($typeBindings) != $TF.voidType() && $isSubtypeOf($result43.getType(),$T26)){ + return ((ISet)($result43)); + + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Map.rsc|(6033,213,<245,0>,<253,40>) + public IString Map_toString$abf5d325b231fef4(IMap M_0){ + + + HashMap $typeBindings = new HashMap<>(); + if($T0.match(M_0.getType(), $typeBindings)){ + final IString $result44 = ((IString)((IString)$Prelude.toString(M_0))); + if($T27.instantiate($typeBindings) != $TF.voidType() && $isSubtypeOf($result44.getType(),$T27)){ + return ((IString)($result44)); + + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Map.rsc|(6249,224,<256,0>,<264,41>) + public IString Map_itoString$5b37f50401db6c5c(IMap M_0){ + + + HashMap $typeBindings = new HashMap<>(); + if($T0.match(M_0.getType(), $typeBindings)){ + final IString $result45 = ((IString)((IString)$Prelude.itoString(M_0))); + if($T27.instantiate($typeBindings) != $TF.voidType() && $isSubtypeOf($result45.getType(),$T27)){ + return ((IString)($result45)); + + } else { + return null; + } + } else { + return null; + } + } + + + public static void main(String[] args) { + throw new RuntimeException("No function `main` found in Rascal module `Map`"); + } +} \ No newline at end of file diff --git a/src/rascal/$Map.tpl b/src/rascal/$Map.tpl new file mode 100644 index 00000000000..ab2675cc40d Binary files /dev/null and b/src/rascal/$Map.tpl differ diff --git a/src/rascal/$Map_$I.java b/src/rascal/$Map_$I.java new file mode 100644 index 00000000000..0b609f308e7 --- /dev/null +++ b/src/rascal/$Map_$I.java @@ -0,0 +1,24 @@ +package rascal; +import io.usethesource.vallang.*; +import org.rascalmpl.runtime.function.*; + +@SuppressWarnings("unused") +public interface $Map_$I { + IValue delete(IValue $0, IValue $1); + IValue domain(IValue $0); + IValue domainR(IValue $0, IValue $1); + IValue domainX(IValue $0, IValue $1); + IValue getOneFrom(IValue $0); + IValue invert(IValue $0); + IValue invertUnique(IValue $0); + IValue isEmpty(IValue $0); + IValue itoString(IValue $0); + IValue mapper(IValue $0, IValue $1, IValue $2); + IValue range(IValue $0); + IValue rangeR(IValue $0, IValue $1); + IValue rangeX(IValue $0, IValue $1); + IValue size(IValue $0); + IValue toList(IValue $0); + IValue toRel(IValue $0); + IValue toString(IValue $0); +} \ No newline at end of file diff --git a/src/rascal/$Message.constants b/src/rascal/$Message.constants new file mode 100644 index 00000000000..d5f616a8a1d Binary files /dev/null and b/src/rascal/$Message.constants differ diff --git a/src/rascal/$Message.java b/src/rascal/$Message.java new file mode 100644 index 00000000000..5afcd7618a7 --- /dev/null +++ b/src/rascal/$Message.java @@ -0,0 +1,349 @@ +package rascal; +import java.io.PrintWriter; +import java.io.StringWriter; +import java.io.InputStreamReader; +import java.io.PrintWriter; +import java.util.*; +import java.util.regex.Matcher; +import io.usethesource.vallang.*; +import io.usethesource.vallang.type.*; +import org.rascalmpl.runtime.*; +import org.rascalmpl.runtime.RascalExecutionContext; +import org.rascalmpl.runtime.function.*; +import org.rascalmpl.runtime.traverse.*; +import org.rascalmpl.runtime.utils.*; +import org.rascalmpl.exceptions.RuntimeExceptionFactory; +import org.rascalmpl.exceptions.Throw; +import org.rascalmpl.runtime.RascalExecutionContext; +import org.rascalmpl.interpreter.control_exceptions.Filtered; +import org.rascalmpl.types.NonTerminalType; +import org.rascalmpl.types.RascalTypeFactory; +import org.rascalmpl.util.ExpiringFunctionResultCache; +import org.rascalmpl.values.RascalValueFactory; +import org.rascalmpl.values.ValueFactoryFactory; +import org.rascalmpl.values.parsetrees.ITree; +import org.rascalmpl.values.parsetrees.TreeAdapter; + + + +@SuppressWarnings({"unused","unchecked","deprecation"}) +public class $Message + extends + org.rascalmpl.runtime.$RascalModule + implements + rascal.$Message_$I { + + private final $Message_$I $me; + private final IList $constants; + final java.util.Map $kwpDefaults_Message_write$20b1af6cda057030; + final java.util.Map $kwpDefaults_Message_mainMessageHandler$e9f9c181e87bd238; + + + public final rascal.$IO M_IO; + + + final org.rascalmpl.library.Messages $Messages; // TODO: asBaseClassName will generate name collisions if there are more of the same name in different packages + + + public final io.usethesource.vallang.type.Type $T3; /*avalue()*/ + public final io.usethesource.vallang.type.Type $T1; /*astr(alabel="msg")*/ + public final io.usethesource.vallang.type.Type $T2; /*aloc(alabel="at")*/ + public final io.usethesource.vallang.type.Type ADT_LocationChangeType; /*aadt("LocationChangeType",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type $T5; /*abool()*/ + public final io.usethesource.vallang.type.Type $T6; /*abool(alabel="_")*/ + public final io.usethesource.vallang.type.Type $T4; /*atuple(atypeList([abool(),abool(alabel="_"),abool(),abool(alabel="_")]))*/ + public final io.usethesource.vallang.type.Type ADT_Message; /*aadt("Message",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_IOCapability; /*aadt("IOCapability",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_LocationType; /*aadt("LocationType",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type Message_error_str_loc; /*acons(aadt("Message",[],dataSyntax()),[astr(alabel="msg"),aloc(alabel="at")],[],alabel="error")*/ + public final io.usethesource.vallang.type.Type $T0; /*alist(aadt("Message",[],dataSyntax()))*/ + public final io.usethesource.vallang.type.Type Message_warning_str_loc; /*acons(aadt("Message",[],dataSyntax()),[astr(alabel="msg"),aloc(alabel="at")],[],alabel="warning")*/ + public final io.usethesource.vallang.type.Type Message_error_str; /*acons(aadt("Message",[],dataSyntax()),[astr(alabel="msg")],[],alabel="error")*/ + public final io.usethesource.vallang.type.Type ADT_RuntimeException; /*aadt("RuntimeException",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_LocationChangeEvent; /*aadt("LocationChangeEvent",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type Message_info_str_loc; /*acons(aadt("Message",[],dataSyntax()),[astr(alabel="msg"),aloc(alabel="at")],[],alabel="info")*/ + public final io.usethesource.vallang.type.Type $T7; /*atuple(atypeList([abool(alabel="_"),abool(),abool(alabel="_"),abool()]))*/ + + public $Message(RascalExecutionContext rex){ + this(rex, null); + } + + public $Message(RascalExecutionContext rex, Object extended){ + super(rex); + this.$me = extended == null ? this : ($Message_$I)extended; + ModuleStore mstore = rex.getModuleStore(); + mstore.put(rascal.$Message.class, this); + + mstore.importModule(rascal.$IO.class, rex, rascal.$IO::new); + + M_IO = mstore.getModule(rascal.$IO.class); + + + + $TS.importStore(M_IO.$TS); + + $Messages = $initLibrary("org.rascalmpl.library.Messages"); + + $constants = readBinaryConstantsFile(this.getClass(), "rascal/$Message.constants", 8, "884ffd182f062aeb1ae973ac30987e46"); + ADT_LocationChangeType = $adt("LocationChangeType"); + ADT_Message = $adt("Message"); + ADT_IOCapability = $adt("IOCapability"); + ADT_LocationType = $adt("LocationType"); + ADT_RuntimeException = $adt("RuntimeException"); + ADT_LocationChangeEvent = $adt("LocationChangeEvent"); + $T3 = $TF.valueType(); + $T1 = $TF.stringType(); + $T2 = $TF.sourceLocationType(); + $T5 = $TF.boolType(); + $T6 = $TF.boolType(); + $T4 = $TF.tupleType($T5, $T6, $T5, $T6); + $T0 = $TF.listType(ADT_Message); + $T7 = $TF.tupleType($T6, $T5, $T6, $T5); + Message_error_str_loc = $TF.constructor($TS, ADT_Message, "error", $TF.stringType(), "msg", $TF.sourceLocationType(), "at"); + Message_warning_str_loc = $TF.constructor($TS, ADT_Message, "warning", $TF.stringType(), "msg", $TF.sourceLocationType(), "at"); + Message_error_str = $TF.constructor($TS, ADT_Message, "error", $TF.stringType(), "msg"); + Message_info_str_loc = $TF.constructor($TS, ADT_Message, "info", $TF.stringType(), "msg", $TF.sourceLocationType(), "at"); + + + $kwpDefaults_Message_write$20b1af6cda057030 = Util.kwpMap("roots", ((IList)$constants.get(0)/*[]*/)); + $kwpDefaults_Message_mainMessageHandler$e9f9c181e87bd238 = Util.kwpMap("srcs", ((IList)$constants.get(0)/*[]*/), "errorsAsWarnings", ((IBool)$constants.get(1)/*false*/), "warningsAsErrors", ((IBool)$constants.get(1)/*false*/)); + + } + public void println(IValue $P0){ // Generated by Resolver + M_IO.println($P0); + } + public void println(){ // Generated by Resolver + M_IO.println(); + } + public IInteger mainMessageHandler(IValue $P0, java.util.Map $kwpActuals){ // Generated by Resolver + IInteger $result = null; + Type $P0Type = $P0.getType(); + if($isSubtypeOf($P0Type,$T0)){ + $result = (IInteger)Message_mainMessageHandler$e9f9c181e87bd238((IList) $P0, $kwpActuals); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0)); + } + public IString write(IValue $P0, java.util.Map $kwpActuals){ // Generated by Resolver + IString $result = null; + Type $P0Type = $P0.getType(); + if($isSubtypeOf($P0Type,$T0)){ + $result = (IString)Message_write$20b1af6cda057030((IList) $P0, $kwpActuals); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0)); + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Message.rsc|(1139,204,<32,0>,<34,59>) + public IString Message_write$20b1af6cda057030(IList messages_0, java.util.Map $kwpActuals){ + + java.util.Map $kwpDefaults = $kwpDefaults_Message_write$20b1af6cda057030; + + return ((IString)((IString)$Messages.write(messages_0, (IList)($kwpActuals.containsKey("roots") ? $kwpActuals.get("roots") : $kwpDefaults.get("roots"))))); + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Message.rsc|(1345,2195,<36,0>,<92,1>) + public IInteger Message_mainMessageHandler$e9f9c181e87bd238(IList messages_0, java.util.Map $kwpActuals){ + + java.util.Map $kwpDefaults = $kwpDefaults_Message_mainMessageHandler$e9f9c181e87bd238; + + IInteger FAILURE_2 = ((IInteger)$constants.get(2)/*1*/); + IInteger SUCCESS_3 = ((IInteger)$constants.get(3)/*0*/); + if((((IBool)(((IBool) ($kwpActuals.containsKey("errorsAsWarnings") ? $kwpActuals.get("errorsAsWarnings") : $kwpDefaults.get("errorsAsWarnings")))))).getValue()){ + if((((IBool)(((IBool) ($kwpActuals.containsKey("warningsAsErrors") ? $kwpActuals.get("warningsAsErrors") : $kwpDefaults.get("warningsAsErrors")))))).getValue()){ + M_IO.println(((IString)$constants.get(4)/*"[ERROR] the error handler is confused because both errorsAsWarnings and warningsAsErrors are set to ..."*/)); + return ((IInteger)FAILURE_2); + + } + + } + M_IO.println(((IValue)($me.write(((IList)messages_0), Util.kwpMapExtend($kwpActuals, "roots", ((IList) ($kwpActuals.containsKey("srcs") ? $kwpActuals.get("srcs") : $kwpDefaults.get("srcs")))))))); + IBool hasErrors_4 = ((IBool)$constants.get(1)/*false*/); + IBool hasWarnings_5 = ((IBool)hasErrors_4); + if((((IBool)($equal(((IList)messages_0),((IList)$constants.get(0)/*[]*/)).not()))).getValue()){ + IBool $done0 = (IBool)(((IBool)$constants.get(1)/*false*/)); + /*muExists*/$ANY1_GEN2921_CONS_error: + do { + $ANY1_GEN2921: + for(IValue $elem2_for : ((IList)messages_0)){ + IConstructor $elem2 = (IConstructor) $elem2_for; + if($has_type_and_arity($elem2, Message_error_str_loc, 2)){ + IValue $arg0_4 = (IValue)($aadt_subscript_int(((IConstructor)($elem2)),0)); + if($isComparable($arg0_4.getType(), $T3)){ + IValue $arg1_3 = (IValue)($aadt_subscript_int(((IConstructor)($elem2)),1)); + if($isComparable($arg1_3.getType(), $T3)){ + $done0 = ((IBool)$constants.get(5)/*true*/); + break $ANY1_GEN2921_CONS_error; // muSucceed + } else { + continue $ANY1_GEN2921; + } + } else { + continue $ANY1_GEN2921; + } + } else { + continue $ANY1_GEN2921; + } + } + + + } while(false); + hasErrors_4 = ((IBool)($done0)); + IBool $done5 = (IBool)(((IBool)$constants.get(1)/*false*/)); + /*muExists*/$ANY6_GEN2971_CONS_warning: + do { + $ANY6_GEN2971: + for(IValue $elem7_for : ((IList)messages_0)){ + IConstructor $elem7 = (IConstructor) $elem7_for; + if($has_type_and_arity($elem7, Message_warning_str_loc, 2)){ + IValue $arg0_9 = (IValue)($aadt_subscript_int(((IConstructor)($elem7)),0)); + if($isComparable($arg0_9.getType(), $T3)){ + IValue $arg1_8 = (IValue)($aadt_subscript_int(((IConstructor)($elem7)),1)); + if($isComparable($arg1_8.getType(), $T3)){ + $done5 = ((IBool)$constants.get(5)/*true*/); + break $ANY6_GEN2971_CONS_warning; // muSucceed + } else { + continue $ANY6_GEN2971; + } + } else { + continue $ANY6_GEN2971; + } + } else { + continue $ANY6_GEN2971; + } + } + + + } while(false); + hasWarnings_5 = ((IBool)($done5)); + + } + final ITuple $switchVal10 = ((ITuple)($RVF.tuple(((IBool)hasErrors_4), ((IBool)hasWarnings_5), ((IBool)(((IBool) ($kwpActuals.containsKey("errorsAsWarnings") ? $kwpActuals.get("errorsAsWarnings") : $kwpDefaults.get("errorsAsWarnings"))))), ((IBool)(((IBool) ($kwpActuals.containsKey("warningsAsErrors") ? $kwpActuals.get("warningsAsErrors") : $kwpDefaults.get("warningsAsErrors")))))))); + boolean noCaseMatched_$switchVal10 = true; + SWITCH2: switch(Fingerprint.getFingerprint($switchVal10)){ + + case -1503530496: + if(noCaseMatched_$switchVal10){ + noCaseMatched_$switchVal10 = false; + if($isSubtypeOf($switchVal10.getType(),$T4)){ + /*muExists*/CASE_1503530496_0: + do { + final ITuple $tuple_subject12 = ((ITuple)($switchVal10)); + if($tuple_subject12 instanceof ITuple && ((ITuple)$tuple_subject12).arity() == 4){ + /*muExists*/CASE_1503530496_0_TUPLE: + do { + if(((IBool)$constants.get(5)/*true*/).equals($atuple_subscript_int(((ITuple)($tuple_subject12)),0))){ + if(((IBool)$constants.get(1)/*false*/).equals($atuple_subscript_int(((ITuple)($tuple_subject12)),2))){ + return ((IInteger)FAILURE_2); + + } else { + continue CASE_1503530496_0_TUPLE;/*computeFail*/ + } + } + + } while(false); + + } + + } while(false); + + } + if($isSubtypeOf($switchVal10.getType(),$T4)){ + /*muExists*/CASE_1503530496_1: + do { + final ITuple $tuple_subject13 = ((ITuple)($switchVal10)); + if($tuple_subject13 instanceof ITuple && ((ITuple)$tuple_subject13).arity() == 4){ + /*muExists*/CASE_1503530496_1_TUPLE: + do { + if(((IBool)$constants.get(5)/*true*/).equals($atuple_subscript_int(((ITuple)($tuple_subject13)),0))){ + if(((IBool)$constants.get(5)/*true*/).equals($atuple_subscript_int(((ITuple)($tuple_subject13)),2))){ + M_IO.println(((IString)$constants.get(6)/*"[INFO] errors have been de-escalated to warnings."*/)); + return ((IInteger)SUCCESS_3); + + } else { + continue CASE_1503530496_1_TUPLE;/*computeFail*/ + } + } + + } while(false); + + } + + } while(false); + + } + if($isSubtypeOf($switchVal10.getType(),$T7)){ + /*muExists*/CASE_1503530496_2: + do { + final ITuple $tuple_subject14 = ((ITuple)($switchVal10)); + if($tuple_subject14 instanceof ITuple && ((ITuple)$tuple_subject14).arity() == 4){ + /*muExists*/CASE_1503530496_2_TUPLE: + do { + if(((IBool)$constants.get(5)/*true*/).equals($atuple_subscript_int(((ITuple)($tuple_subject14)),1))){ + if(((IBool)$constants.get(5)/*true*/).equals($atuple_subscript_int(((ITuple)($tuple_subject14)),3))){ + M_IO.println(((IString)$constants.get(7)/*"[INFO] warnings have been escalated to errors"*/)); + return ((IInteger)FAILURE_2); + + } else { + continue CASE_1503530496_2_TUPLE;/*computeFail*/ + } + } else { + continue CASE_1503530496_2_TUPLE;/*computeFail*/ + } + } while(false); + + } + + } while(false); + + } + if($isSubtypeOf($switchVal10.getType(),$T7)){ + /*muExists*/CASE_1503530496_3: + do { + final ITuple $tuple_subject15 = ((ITuple)($switchVal10)); + if($tuple_subject15 instanceof ITuple && ((ITuple)$tuple_subject15).arity() == 4){ + /*muExists*/CASE_1503530496_3_TUPLE: + do { + if(((IBool)$constants.get(1)/*false*/).equals($atuple_subscript_int(((ITuple)($tuple_subject15)),1))){ + if(((IBool)$constants.get(1)/*false*/).equals($atuple_subscript_int(((ITuple)($tuple_subject15)),3))){ + return ((IInteger)SUCCESS_3); + + } else { + continue CASE_1503530496_3_TUPLE;/*computeFail*/ + } + } else { + continue CASE_1503530496_3_TUPLE;/*computeFail*/ + } + } while(false); + + } + + } while(false); + + } + + } + + + default: /*muExists*/$RET11: + do { + if((((IBool)hasErrors_4)).getValue()){ + return ((IInteger)FAILURE_2); + + } + + } while(false); + return ((IInteger)SUCCESS_3); + + } + + + } + + + public static void main(String[] args) { + throw new RuntimeException("No function `main` found in Rascal module `Message`"); + } +} \ No newline at end of file diff --git a/src/rascal/$Message.tpl b/src/rascal/$Message.tpl new file mode 100644 index 00000000000..77effaf3658 Binary files /dev/null and b/src/rascal/$Message.tpl differ diff --git a/src/rascal/$Message_$I.java b/src/rascal/$Message_$I.java new file mode 100644 index 00000000000..2a980daf8c3 --- /dev/null +++ b/src/rascal/$Message_$I.java @@ -0,0 +1,9 @@ +package rascal; +import io.usethesource.vallang.*; +import org.rascalmpl.runtime.function.*; + +@SuppressWarnings("unused") +public interface $Message_$I { + IValue mainMessageHandler(IValue $0, java.util.Map $kwpActuals); + IValue write(IValue $0, java.util.Map $kwpActuals); +} \ No newline at end of file diff --git a/src/rascal/$Node.constants b/src/rascal/$Node.constants new file mode 100644 index 00000000000..3aa27afc320 Binary files /dev/null and b/src/rascal/$Node.constants differ diff --git a/src/rascal/$Node.java b/src/rascal/$Node.java new file mode 100644 index 00000000000..d8ea28b96da --- /dev/null +++ b/src/rascal/$Node.java @@ -0,0 +1,666 @@ +package rascal; +import java.io.PrintWriter; +import java.io.StringWriter; +import java.io.InputStreamReader; +import java.io.PrintWriter; +import java.util.*; +import java.util.regex.Matcher; +import io.usethesource.vallang.*; +import io.usethesource.vallang.type.*; +import org.rascalmpl.runtime.*; +import org.rascalmpl.runtime.RascalExecutionContext; +import org.rascalmpl.runtime.function.*; +import org.rascalmpl.runtime.traverse.*; +import org.rascalmpl.runtime.utils.*; +import org.rascalmpl.exceptions.RuntimeExceptionFactory; +import org.rascalmpl.exceptions.Throw; +import org.rascalmpl.runtime.RascalExecutionContext; +import org.rascalmpl.interpreter.control_exceptions.Filtered; +import org.rascalmpl.types.NonTerminalType; +import org.rascalmpl.types.RascalTypeFactory; +import org.rascalmpl.util.ExpiringFunctionResultCache; +import org.rascalmpl.values.RascalValueFactory; +import org.rascalmpl.values.ValueFactoryFactory; +import org.rascalmpl.values.parsetrees.ITree; +import org.rascalmpl.values.parsetrees.TreeAdapter; + + + +@SuppressWarnings({"unused","unchecked","deprecation"}) +public class $Node + extends + org.rascalmpl.runtime.$RascalModule + implements + rascal.$Node_$I { + + private final $Node_$I $me; + private final IList $constants; + final java.util.Map $kwpDefaults_Node_makeNode$a205564acc8fbb7f; + + + + + final org.rascalmpl.library.Prelude $Prelude; // TODO: asBaseClassName will generate name collisions if there are more of the same name in different packages + + + public final io.usethesource.vallang.type.Type $T3; /*astr()*/ + public final io.usethesource.vallang.type.Type $T4; /*avalue()*/ + public final io.usethesource.vallang.type.Type $T9; /*aparameter("T",avalue(),closed=true)*/ + public final io.usethesource.vallang.type.Type $T6; /*aparameter("T",avalue(),closed=false)*/ + public final io.usethesource.vallang.type.Type $T7; /*aset(astr())*/ + public final io.usethesource.vallang.type.Type $T0; /*anode([])*/ + public final io.usethesource.vallang.type.Type $T1; /*aparameter("T",anode([]),closed=false)*/ + public final io.usethesource.vallang.type.Type $T2; /*amap(astr(),avalue())*/ + public final io.usethesource.vallang.type.Type $T8; /*aparameter("T",anode([]),closed=true)*/ + public final io.usethesource.vallang.type.Type $T5; /*alist(avalue())*/ + + public $Node(RascalExecutionContext rex){ + this(rex, null); + } + + public $Node(RascalExecutionContext rex, Object extended){ + super(rex); + this.$me = extended == null ? this : ($Node_$I)extended; + ModuleStore mstore = rex.getModuleStore(); + mstore.put(rascal.$Node.class, this); + + + + + + + $Prelude = $initLibrary("org.rascalmpl.library.Prelude"); + + $constants = readBinaryConstantsFile(this.getClass(), "rascal/$Node.constants", 1, "2f8cfc21de2cecb8efada9d0a44f68a8"); + $T3 = $TF.stringType(); + $T4 = $TF.valueType(); + $T9 = $TF.parameterType("T", $T4); + $T6 = $TF.parameterType("T", $T4); + $T7 = $TF.setType($T3); + $T0 = $TF.nodeType(); + $T1 = $TF.parameterType("T", $T0); + $T2 = $TF.mapType($T3,$T4); + $T8 = $TF.parameterType("T", $T0); + $T5 = $TF.listType($T4); + + + $kwpDefaults_Node_makeNode$a205564acc8fbb7f = Util.kwpMap("keywordParameters", ((IMap)$constants.get(0)/*()*/)); + + } + public IString getName(IValue $P0){ // Generated by Resolver + IString $result = null; + Type $P0Type = $P0.getType(); + if($isSubtypeOf($P0Type,$T0)){ + $result = (IString)Node_getName$8220c1ee18300d75((INode) $P0); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0)); + } + public INode setAnnotations(IValue $P0, IValue $P1){ // Generated by Resolver + INode $result = null; + Type $P0Type = $P0.getType(); + Type $P1Type = $P1.getType(); + if($isSubtypeOf($P0Type,$T1) && $isSubtypeOf($P1Type,$T2)){ + $result = (INode)Node_setAnnotations$4a78ea2e810e4a12((INode) $P0, (IMap) $P1); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0, $P1)); + } + public IString toString(IValue $P0){ // Generated by Resolver + IString $result = null; + Type $P0Type = $P0.getType(); + if($isSubtypeOf($P0Type,$T0)){ + $result = (IString)Node_toString$60c74d13a3a05889((INode) $P0); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0)); + } + public IMap getAnnotations(IValue $P0){ // Generated by Resolver + IMap $result = null; + Type $P0Type = $P0.getType(); + if($isSubtypeOf($P0Type,$T0)){ + $result = (IMap)Node_getAnnotations$997a085416e764e9((INode) $P0); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0)); + } + public INode makeNode(IValue $P0, IValue $P1, java.util.Map $kwpActuals){ // Generated by Resolver + INode $result = null; + Type $P0Type = $P0.getType(); + Type $P1Type = $P1.getType(); + if($isSubtypeOf($P0Type,$T3) && $isSubtypeOf($P1Type,$T5)){ + $result = (INode)Node_makeNode$a205564acc8fbb7f((IString) $P0, (IList) $P1, $kwpActuals); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0, $P1)); + } + public INode setKeywordParameters(IValue $P0, IValue $P1){ // Generated by Resolver + INode $result = null; + Type $P0Type = $P0.getType(); + Type $P1Type = $P1.getType(); + if($isSubtypeOf($P0Type,$T1) && $isSubtypeOf($P1Type,$T2)){ + $result = (INode)Node_setKeywordParameters$21db00ddc2ae8b1f((INode) $P0, (IMap) $P1); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0, $P1)); + } + public INode arbNode(){ // Generated by Resolver + INode $result = null; + $result = (INode)Node_arbNode$5d7a2766c8e547f5(); + if($result != null) return $result; + throw RuntimeExceptionFactory.callFailed($RVF.list()); + } + public IValue delAnnotationsRec(IValue $P0){ // Generated by Resolver + IValue $result = null; + Type $P0Type = $P0.getType(); + if($isSubtypeOf($P0Type,$T6)){ + $result = (IValue)Node_delAnnotationsRec$ce78888ea6751c16((IValue) $P0); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0)); + } + public INode delAnnotations(IValue $P0){ // Generated by Resolver + INode $result = null; + Type $P0Type = $P0.getType(); + if($isSubtypeOf($P0Type,$T1)){ + $result = (INode)Node_delAnnotations$789589503b5f45a3((INode) $P0); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0)); + } + public INode delAnnotation(IValue $P0, IValue $P1){ // Generated by Resolver + INode $result = null; + Type $P0Type = $P0.getType(); + Type $P1Type = $P1.getType(); + if($isSubtypeOf($P0Type,$T1) && $isSubtypeOf($P1Type,$T3)){ + $result = (INode)Node_delAnnotation$e3637c451560b3f6((INode) $P0, (IString) $P1); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0, $P1)); + } + public IValue unsetRec(IValue $P0){ // Generated by Resolver + IValue $result = null; + Type $P0Type = $P0.getType(); + if($isSubtypeOf($P0Type,$T6)){ + $result = (IValue)Node_unsetRec$f0d37b6f74d90365((IValue) $P0); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0)); + } + public INode unsetRec(IValue $P0, IValue $P1){ // Generated by Resolver + INode $result = null; + Type $P0Type = $P0.getType(); + Type $P1Type = $P1.getType(); + if($isSubtypeOf($P0Type,$T6) && $isSubtypeOf($P1Type,$T3)){ + $result = (INode)Node_unsetRec$b63c422bf0e84dd0((IValue) $P0, (IString) $P1); + if($result != null) return $result; + } + if($isSubtypeOf($P0Type,$T1) && $isSubtypeOf($P1Type,$T7)){ + $result = (INode)Node_unsetRec$5394aa5e7b98f9a0((INode) $P0, (ISet) $P1); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0, $P1)); + } + public INode unset(IValue $P0){ // Generated by Resolver + INode $result = null; + Type $P0Type = $P0.getType(); + if($isSubtypeOf($P0Type,$T1)){ + $result = (INode)Node_unset$bdf124b95343e3f6((INode) $P0); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0)); + } + public INode unset(IValue $P0, IValue $P1){ // Generated by Resolver + INode $result = null; + Type $P0Type = $P0.getType(); + Type $P1Type = $P1.getType(); + if($isSubtypeOf($P0Type,$T1) && $isSubtypeOf($P1Type,$T3)){ + $result = (INode)Node_unset$2a772a89c1766534((INode) $P0, (IString) $P1); + if($result != null) return $result; + } + if($isSubtypeOf($P0Type,$T1) && $isSubtypeOf($P1Type,$T7)){ + $result = (INode)Node_unset$1de12aecb35205c6((INode) $P0, (ISet) $P1); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0, $P1)); + } + public IString itoString(IValue $P0){ // Generated by Resolver + IString $result = null; + Type $P0Type = $P0.getType(); + if($isSubtypeOf($P0Type,$T0)){ + $result = (IString)Node_itoString$68d8ab63abcf7845((INode) $P0); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0)); + } + public IList getChildren(IValue $P0){ // Generated by Resolver + IList $result = null; + Type $P0Type = $P0.getType(); + if($isSubtypeOf($P0Type,$T0)){ + $result = (IList)Node_getChildren$f264bd0f46070402((INode) $P0); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0)); + } + public IInteger arity(IValue $P0){ // Generated by Resolver + IInteger $result = null; + Type $P0Type = $P0.getType(); + if($isSubtypeOf($P0Type,$T0)){ + $result = (IInteger)Node_arity$4d0848d1bb09281c((INode) $P0); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0)); + } + public IMap getKeywordParameters(IValue $P0){ // Generated by Resolver + IMap $result = null; + Type $P0Type = $P0.getType(); + if($isSubtypeOf($P0Type,$T0)){ + $result = (IMap)Node_getKeywordParameters$a6c3c6e6c375754b((INode) $P0); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0)); + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Node.rsc|(531,226,<19,0>,<28,30>) + public IInteger Node_arity$4d0848d1bb09281c(INode T_0){ + + + return ((IInteger)((IInteger)$Prelude.arity(T_0))); + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Node.rsc|(760,200,<31,0>,<39,44>) + public IList Node_getChildren$f264bd0f46070402(INode T_0){ + + + return ((IList)((IList)$Prelude.getChildren(T_0))); + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Node.rsc|(963,241,<42,0>,<50,56>) + public IMap Node_getKeywordParameters$a6c3c6e6c375754b(INode T_0){ + + + return ((IMap)((IMap)$Prelude.getKeywordParameters(T_0))); + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Node.rsc|(1206,115,<52,0>,<55,72>) + public IMap Node_getAnnotations$997a085416e764e9(INode T_0){ + + + return ((IMap)($me.getKeywordParameters(((INode)T_0)))); + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Node.rsc|(1324,281,<58,0>,<66,92>) + public INode Node_setKeywordParameters$21db00ddc2ae8b1f(INode x_0, IMap keywordParameters_1){ + + + HashMap $typeBindings = new HashMap<>(); + if($T1.match(x_0.getType(), $typeBindings)){ + final INode $result0 = ((INode)((INode)$Prelude.setKeywordParameters(x_0, keywordParameters_1))); + if($T8.instantiate($typeBindings) != $TF.voidType() && $isSubtypeOf($result0.getType(),$T8)){ + return ((INode)($result0)); + + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Node.rsc|(2035,190,<80,0>,<84,47>) + public INode Node_setAnnotations$4a78ea2e810e4a12(INode x_0, IMap keywordParameters_1){ + + + HashMap $typeBindings = new HashMap<>(); + if($T1.match(x_0.getType(), $typeBindings)){ + final INode $result1 = ((INode)($me.setKeywordParameters(((INode)x_0), ((IMap)keywordParameters_1)))); + if($T8.instantiate($typeBindings) != $TF.voidType() && $isSubtypeOf($result1.getType(),$T8)){ + return ((INode)($result1)); + + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Node.rsc|(2230,186,<87,0>,<95,32>) + public IString Node_getName$8220c1ee18300d75(INode T_0){ + + + return ((IString)((IString)$Prelude.getName(T_0))); + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Node.rsc|(2419,265,<98,0>,<106,85>) + public INode Node_makeNode$a205564acc8fbb7f(IString N_0, IList V_1, java.util.Map $kwpActuals){ + + java.util.Map $kwpDefaults = $kwpDefaults_Node_makeNode$a205564acc8fbb7f; + + return ((INode)((INode)$Prelude.makeNode(N_0, V_1, (IMap)($kwpActuals.containsKey("keywordParameters") ? $kwpActuals.get("keywordParameters") : $kwpDefaults.get("keywordParameters"))))); + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Node.rsc|(2687,186,<109,0>,<111,65>) + public INode Node_unset$2a772a89c1766534(INode x_0, IString keywordParameter_1){ + + + HashMap $typeBindings = new HashMap<>(); + if($T1.match(x_0.getType(), $typeBindings)){ + final INode $result2 = ((INode)((INode)$Prelude.unset(x_0, keywordParameter_1))); + if($T8.instantiate($typeBindings) != $TF.voidType() && $isSubtypeOf($result2.getType(),$T8)){ + return ((INode)($result2)); + + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Node.rsc|(2875,130,<113,0>,<116,98>) + public INode Node_delAnnotation$e3637c451560b3f6(INode x_0, IString keywordParameter_1){ + + + HashMap $typeBindings = new HashMap<>(); + if($T1.match(x_0.getType(), $typeBindings)){ + final INode $result3 = ((INode)($me.unset(((INode)x_0), ((IString)keywordParameter_1)))); + if($T8.instantiate($typeBindings) != $TF.voidType() && $isSubtypeOf($result3.getType(),$T8)){ + return ((INode)($result3)); + + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Node.rsc|(3009,254,<119,0>,<125,1>) + public INode Node_unset$1de12aecb35205c6(INode x_0, ISet keywordParameters_1){ + + + HashMap $typeBindings = new HashMap<>(); + if($T1.match(x_0.getType(), $typeBindings)){ + if(true){ + if(true){ + /*muExists*/FOR0: + do { + FOR0_GEN3162: + for(IValue $elem4_for : ((ISet)keywordParameters_1)){ + IString $elem4 = (IString) $elem4_for; + IString keywordParameter_2 = ((IString)($elem4)); + x_0 = ((INode)($me.unset(((INode)x_0), ((IString)keywordParameter_2)))); + + } + continue FOR0; + + } while(false); + /* void: muCon([]) */final INode $result5 = ((INode)x_0); + if($T8.instantiate($typeBindings) != $TF.voidType() && $isSubtypeOf($result5.getType(),$T8)){ + return ((INode)($result5)); + + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Node.rsc|(3267,148,<129,0>,<131,43>) + public INode Node_unset$bdf124b95343e3f6(INode x_0){ + + + HashMap $typeBindings = new HashMap<>(); + if($T1.match(x_0.getType(), $typeBindings)){ + final INode $result6 = ((INode)((INode)$Prelude.unset(x_0))); + if($T8.instantiate($typeBindings) != $TF.voidType() && $isSubtypeOf($result6.getType(),$T8)){ + return ((INode)($result6)); + + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Node.rsc|(3417,88,<133,0>,<136,58>) + public INode Node_delAnnotations$789589503b5f45a3(INode x_0){ + + + HashMap $typeBindings = new HashMap<>(); + if($T1.match(x_0.getType(), $typeBindings)){ + final INode $result7 = ((INode)($me.unset(((INode)x_0)))); + if($T8.instantiate($typeBindings) != $TF.voidType() && $isSubtypeOf($result7.getType(),$T8)){ + return ((INode)($result7)); + + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Node.rsc|(3508,176,<139,0>,<141,30>) + public IValue Node_unsetRec$f0d37b6f74d90365(IValue x_0){ + + + HashMap $typeBindings = new HashMap<>(); + if($T6.match(x_0.getType(), $typeBindings)){ + final IValue $result8 = ((IValue)((IValue)$Prelude.unsetRec(x_0))); + if($T9.instantiate($typeBindings) != $TF.voidType() && $isSubtypeOf($result8.getType(),$T9)){ + return ((IValue)($result8)); + + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Node.rsc|(3686,81,<143,0>,<146,48>) + public IValue Node_delAnnotationsRec$ce78888ea6751c16(IValue x_0){ + + + HashMap $typeBindings = new HashMap<>(); + if($T6.match(x_0.getType(), $typeBindings)){ + final IValue $result9 = ((IValue)($me.unsetRec(((IValue)x_0)))); + if($T9.instantiate($typeBindings) != $TF.voidType() && $isSubtypeOf($result9.getType(),$T9)){ + return ((IValue)($result9)); + + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Node.rsc|(3770,215,<149,0>,<152,2>) + public IValue Node_unsetRec$b63c422bf0e84dd0(IValue x_0, IString $aux_keywordParameter_1){ + ValueRef keywordParameter_1 = new ValueRef("keywordParameter_1", $aux_keywordParameter_1); + + + try { + HashMap $typeBindings = new HashMap<>(); + if($T6.match(x_0.getType(), $typeBindings)){ + final IValue $result11 = ((IValue)($TRAVERSE.traverse(DIRECTION.BottomUp, PROGRESS.Continuing, FIXEDPOINT.No, REBUILD.Yes, + new DescendantDescriptorAlwaysTrue($RVF.bool(false)), + x_0, + (IVisitFunction) (IValue $VISIT1_subject, TraversalState $traversalState) -> { + VISIT1:switch(Fingerprint.getFingerprint($VISIT1_subject)){ + + case 0: + + + default: + if($isSubtypeOf($VISIT1_subject.getType(),$T0)){ + /*muExists*/CASE_0_0: + do { + if($isSubtypeOf($VISIT1_subject.getType(),$T0.instantiate($typeBindings))){ + INode n_2 = ((INode)($VISIT1_subject)); + INode $replacement10 = (INode)($me.unset(((INode)n_2), keywordParameter_1.getValue())); + if($isSubtypeOf($replacement10.getType(),$VISIT1_subject.getType())){ + $traversalState.setMatchedAndChanged(true, true); + return $replacement10; + + } else { + break VISIT1;// switch + + } + } + + } while(false); + + } + + } + return $VISIT1_subject; + }))); + if($T9.instantiate($typeBindings) != $TF.voidType() && $isSubtypeOf($result11.getType(),$T9)){ + return ((IValue)($result11)); + + } else { + return null; + } + } else { + return null; + } + } catch (ReturnFromTraversalException e) { + return (IValue) e.getValue(); + } + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Node.rsc|(3988,307,<155,0>,<158,2>) + public INode Node_unsetRec$5394aa5e7b98f9a0(INode x_0, ISet $aux_keywordParameters_1){ + ValueRef keywordParameters_1 = new ValueRef("keywordParameters_1", $aux_keywordParameters_1); + + + try { + HashMap $typeBindings = new HashMap<>(); + if($T1.match(x_0.getType(), $typeBindings)){ + if(true){ + if(true){ + final INode $result13 = ((INode)($TRAVERSE.traverse(DIRECTION.BottomUp, PROGRESS.Continuing, FIXEDPOINT.No, REBUILD.Yes, + new DescendantDescriptorAlwaysTrue($RVF.bool(false)), + x_0, + (IVisitFunction) (IValue $VISIT2_subject, TraversalState $traversalState) -> { + VISIT2:switch(Fingerprint.getFingerprint($VISIT2_subject)){ + + case 0: + + + default: + if($isSubtypeOf($VISIT2_subject.getType(),$T0)){ + /*muExists*/CASE_0_0: + do { + if($isSubtypeOf($VISIT2_subject.getType(),$T0.instantiate($typeBindings))){ + INode n_2 = ((INode)($VISIT2_subject)); + /*muExists*/FOR3: + do { + FOR3_GEN4210: + for(IValue $elem12_for : keywordParameters_1.getValue()){ + IString $elem12 = (IString) $elem12_for; + IString keywordParameter_3 = ((IString)($elem12)); + n_2 = ((INode)($me.unset(((INode)n_2), ((IString)keywordParameter_3)))); + + } + continue FOR3; + + } while(false); + /* void: muCon([]) */$traversalState.setMatchedAndChanged(true, true); + return n_2; + + } + + } while(false); + + } + + } + return $VISIT2_subject; + }))); + if($T8.instantiate($typeBindings) != $TF.voidType() && $isSubtypeOf($result13.getType(),$T8)){ + return ((INode)($result13)); + + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } catch (ReturnFromTraversalException e) { + return (INode) e.getValue(); + } + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Node.rsc|(4298,69,<161,0>,<162,27>) + public INode Node_arbNode$5d7a2766c8e547f5(){ + + + return ((INode)((INode)$Prelude.arbNode())); + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Node.rsc|(4371,220,<166,0>,<175,33>) + public IString Node_toString$60c74d13a3a05889(INode T_0){ + + + return ((IString)((IString)$Prelude.toString(T_0))); + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Node.rsc|(4595,232,<179,0>,<188,34>) + public IString Node_itoString$68d8ab63abcf7845(INode T_0){ + + + return ((IString)((IString)$Prelude.itoString(T_0))); + + } + + + public static void main(String[] args) { + throw new RuntimeException("No function `main` found in Rascal module `Node`"); + } +} \ No newline at end of file diff --git a/src/rascal/$Node.tpl b/src/rascal/$Node.tpl new file mode 100644 index 00000000000..07234bb6788 Binary files /dev/null and b/src/rascal/$Node.tpl differ diff --git a/src/rascal/$Node_$I.java b/src/rascal/$Node_$I.java new file mode 100644 index 00000000000..6d2d7d3f5ab --- /dev/null +++ b/src/rascal/$Node_$I.java @@ -0,0 +1,25 @@ +package rascal; +import io.usethesource.vallang.*; +import org.rascalmpl.runtime.function.*; + +@SuppressWarnings("unused") +public interface $Node_$I { + IValue arbNode(); + IValue arity(IValue $0); + IValue delAnnotation(IValue $0, IValue $1); + IValue delAnnotations(IValue $0); + IValue delAnnotationsRec(IValue $0); + IValue getAnnotations(IValue $0); + IValue getChildren(IValue $0); + IValue getKeywordParameters(IValue $0); + IValue getName(IValue $0); + IValue itoString(IValue $0); + IValue makeNode(IValue $0, IValue $1, java.util.Map $kwpActuals); + IValue setAnnotations(IValue $0, IValue $1); + IValue setKeywordParameters(IValue $0, IValue $1); + IValue toString(IValue $0); + IValue unset(IValue $0); + IValue unset(IValue $0, IValue $1); + IValue unsetRec(IValue $0, IValue $1); + IValue unsetRec(IValue $0); +} \ No newline at end of file diff --git a/src/rascal/$ParseTree.constants b/src/rascal/$ParseTree.constants new file mode 100644 index 00000000000..65f1e9a728b Binary files /dev/null and b/src/rascal/$ParseTree.constants differ diff --git a/src/rascal/$ParseTree.java b/src/rascal/$ParseTree.java new file mode 100644 index 00000000000..06521f6f80a --- /dev/null +++ b/src/rascal/$ParseTree.java @@ -0,0 +1,1971 @@ +package rascal; +import java.io.PrintWriter; +import java.io.StringWriter; +import java.io.InputStreamReader; +import java.io.PrintWriter; +import java.util.*; +import java.util.regex.Matcher; +import io.usethesource.vallang.*; +import io.usethesource.vallang.type.*; +import org.rascalmpl.runtime.*; +import org.rascalmpl.runtime.RascalExecutionContext; +import org.rascalmpl.runtime.function.*; +import org.rascalmpl.runtime.traverse.*; +import org.rascalmpl.runtime.utils.*; +import org.rascalmpl.exceptions.RuntimeExceptionFactory; +import org.rascalmpl.exceptions.Throw; +import org.rascalmpl.runtime.RascalExecutionContext; +import org.rascalmpl.interpreter.control_exceptions.Filtered; +import org.rascalmpl.types.NonTerminalType; +import org.rascalmpl.types.RascalTypeFactory; +import org.rascalmpl.util.ExpiringFunctionResultCache; +import org.rascalmpl.values.RascalValueFactory; +import org.rascalmpl.values.ValueFactoryFactory; +import org.rascalmpl.values.parsetrees.ITree; +import org.rascalmpl.values.parsetrees.TreeAdapter; + + + +@SuppressWarnings({"unused","unchecked","deprecation"}) +public class $ParseTree + extends + org.rascalmpl.runtime.$RascalModule + implements + rascal.$Message_$I, + rascal.$ParseTree_$I, + rascal.$Type_$I, + rascal.$List_$I { + + private final $ParseTree_$I $me; + private final IList $constants; + final java.util.Map $kwpDefaults_ParseTree_parse$4d2afd5837b53c80; + final java.util.Map $kwpDefaults_ParseTree_parse$696136d9f024501e; + final java.util.Map $kwpDefaults_ParseTree_parse$55b9e584aedc91f7; + final java.util.Map $kwpDefaults_ParseTree_parser$c4d258086f531875; + final java.util.Map $kwpDefaults_ParseTree_firstAmbiguityFinder$4c88e56e1de6a5c6; + final java.util.Map $kwpDefaults_ParseTree_parsers$43e4839e939e0971; + final java.util.Map $kwpDefaults_ParseTree_firstAmbiguityFinders$4e066d437479bb46; + final java.util.Map $kwpDefaults_ParseTree_loadParsers$12936d804ae9b4a7; + final java.util.Map $kwpDefaults_ParseTree_loadParser$a320f401f0ea0902; + + + public final rascal.$Message M_Message; + public final rascal.$Type M_Type; + public final rascal.$List M_List; + + + final org.rascalmpl.library.Prelude $Prelude; // TODO: asBaseClassName will generate name collisions if there are more of the same name in different packages + + + public final io.usethesource.vallang.type.Type $T34; /*aint(alabel="character")*/ + public final io.usethesource.vallang.type.Type $T3; /*avalue()*/ + public final io.usethesource.vallang.type.Type $T8; /*aparameter("T",avalue(),closed=false)*/ + public final io.usethesource.vallang.type.Type $T31; /*aint(alabel="dot")*/ + public final io.usethesource.vallang.type.Type $T5; /*aloc()*/ + public final io.usethesource.vallang.type.Type $T4; /*aparameter("U",avalue(),closed=false)*/ + public final io.usethesource.vallang.type.Type $T22; /*aint(alabel="column")*/ + public final io.usethesource.vallang.type.Type $T32; /*astr(alabel="label")*/ + public final io.usethesource.vallang.type.Type $T35; /*aint(alabel="begin")*/ + public final io.usethesource.vallang.type.Type $T20; /*astr(alabel="name")*/ + public final io.usethesource.vallang.type.Type $T21; /*astr(alabel="cons")*/ + public final io.usethesource.vallang.type.Type $T33; /*astr(alabel="string")*/ + public final io.usethesource.vallang.type.Type $T19; /*aint(alabel="cycleLength")*/ + public final io.usethesource.vallang.type.Type $T11; /*astr()*/ + public final io.usethesource.vallang.type.Type $T36; /*aint(alabel="end")*/ + public final io.usethesource.vallang.type.Type $T40; /*avalue(alabel="input")*/ + public final io.usethesource.vallang.type.Type $T43; /*aparameter("U",avalue(),closed=true)*/ + public final io.usethesource.vallang.type.Type $T41; /*aloc(alabel="origin")*/ + public final io.usethesource.vallang.type.Type $T39; /*aparameter("T",avalue(),closed=true)*/ + public final io.usethesource.vallang.type.Type ADT_Symbol; /*aadt("Symbol",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type Symbol_keywords_str; /*acons(aadt("Symbol",[],dataSyntax()),[astr(alabel="name")],[],alabel="keywords")*/ + public final io.usethesource.vallang.type.Type ADT_Tree; /*aadt("Tree",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type Tree_cycle_Symbol_int; /*acons(aadt("Tree",[],dataSyntax()),[aadt("Symbol",[],dataSyntax(),alabel="symbol"),aint(alabel="cycleLength")],[],alabel="cycle")*/ + public final io.usethesource.vallang.type.Type $T37; /*alist(aadt("Tree",[],dataSyntax()),alabel="args")*/ + public final io.usethesource.vallang.type.Type Symbol_lex_str; /*acons(aadt("Symbol",[],dataSyntax()),[astr(alabel="name")],[],alabel="lex")*/ + public final io.usethesource.vallang.type.Type ADT_LocationChangeType; /*aadt("LocationChangeType",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type $T29; /*alist(aadt("Symbol",[],dataSyntax()),alabel="separators")*/ + public final io.usethesource.vallang.type.Type Symbol_iter_star_seps_Symbol_list_Symbol; /*acons(aadt("Symbol",[],dataSyntax()),[aadt("Symbol",[],dataSyntax(),alabel="symbol"),alist(aadt("Symbol",[],dataSyntax()),alabel="separators")],[],alabel="iter-star-seps")*/ + public final io.usethesource.vallang.type.Type Symbol_cilit_str; /*acons(aadt("Symbol",[],dataSyntax()),[astr(alabel="string")],[],alabel="cilit")*/ + public final io.usethesource.vallang.type.Type $T45; /*afunc(aparameter("U",avalue(),closed=true),[avalue(alabel="input"),aloc(alabel="origin")],[])*/ + public final io.usethesource.vallang.type.Type $T0; /*areified(aadt("Tree",[],dataSyntax()))*/ + public final io.usethesource.vallang.type.Type $T18; /*alist(aadt("Symbol",[],dataSyntax()),alabel="symbols")*/ + public final io.usethesource.vallang.type.Type ADT_Production; /*aadt("Production",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type $T27; /*alist(aadt("Production",[],dataSyntax()),alabel="choices")*/ + public final io.usethesource.vallang.type.Type ADT_CharRange; /*aadt("CharRange",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type $T16; /*alist(aadt("CharRange",[],dataSyntax()),alabel="ranges")*/ + public final io.usethesource.vallang.type.Type $T26; /*aparameter("T",aadt("Tree",[],dataSyntax()),closed=false,alabel="tree")*/ + public final io.usethesource.vallang.type.Type ADT_Condition; /*aadt("Condition",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_LocationChangeEvent; /*aadt("LocationChangeEvent",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type $T25; /*aset(aadt("Condition",[],dataSyntax()),alabel="conditions")*/ + public final io.usethesource.vallang.type.Type $T10; /*aparameter("T",aadt("Tree",[],dataSyntax()),closed=false)*/ + public final io.usethesource.vallang.type.Type Symbol_iter_Symbol; /*acons(aadt("Symbol",[],dataSyntax()),[aadt("Symbol",[],dataSyntax(),alabel="symbol")],[],alabel="iter")*/ + public final io.usethesource.vallang.type.Type ADT_Attr; /*aadt("Attr",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type Attr_assoc_Associativity; /*acons(aadt("Attr",[],dataSyntax()),[aadt("Associativity",[],dataSyntax(),alabel="assoc")],[],alabel="assoc")*/ + public final io.usethesource.vallang.type.Type ADT_Associativity; /*aadt("Associativity",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type $T28; /*alist(aadt("Symbol",[],dataSyntax()),alabel="parameters")*/ + public final io.usethesource.vallang.type.Type Symbol_parameterized_lex_str_list_Symbol; /*acons(aadt("Symbol",[],dataSyntax()),[astr(alabel="name"),alist(aadt("Symbol",[],dataSyntax()),alabel="parameters")],[],alabel="parameterized-lex")*/ + public final io.usethesource.vallang.type.Type CharRange_range_int_int; /*acons(aadt("CharRange",[],dataSyntax()),[aint(alabel="begin"),aint(alabel="end")],[],alabel="range")*/ + public final io.usethesource.vallang.type.Type Associativity_assoc_; /*acons(aadt("Associativity",[],dataSyntax()),[],[],alabel="assoc")*/ + public final io.usethesource.vallang.type.Type Production_reference_Symbol_str; /*acons(aadt("Production",[],dataSyntax()),[aadt("Symbol",[],dataSyntax(),alabel="def"),astr(alabel="cons")],[],alabel="reference")*/ + public final io.usethesource.vallang.type.Type Associativity_non_assoc_; /*acons(aadt("Associativity",[],dataSyntax()),[],[],alabel="non-assoc")*/ + public final io.usethesource.vallang.type.Type Tree_appl_Production_list_Tree; /*acons(aadt("Tree",[],dataSyntax()),[aadt("Production",[],dataSyntax(),alabel="prod"),alist(aadt("Tree",[],dataSyntax()),alabel="args")],[],alabel="appl")*/ + public final io.usethesource.vallang.type.Type Condition_not_precede_Symbol; /*acons(aadt("Condition",[],dataSyntax()),[aadt("Symbol",[],dataSyntax(),alabel="symbol")],[],alabel="not-precede")*/ + public final io.usethesource.vallang.type.Type Symbol_start_Symbol; /*acons(aadt("Symbol",[],dataSyntax()),[aadt("Symbol",[],dataSyntax(),alabel="symbol")],[],alabel="start")*/ + public final io.usethesource.vallang.type.Type Symbol_sort_str; /*acons(aadt("Symbol",[],dataSyntax()),[astr(alabel="name")],[],alabel="sort")*/ + public final io.usethesource.vallang.type.Type $T30; /*aset(aadt("Tree",[],dataSyntax()),alabel="alternatives")*/ + public final io.usethesource.vallang.type.Type ADT_IOCapability; /*aadt("IOCapability",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type Condition_end_of_line_; /*acons(aadt("Condition",[],dataSyntax()),[],[],alabel="end-of-line")*/ + public final io.usethesource.vallang.type.Type Tree_char_int; /*acons(aadt("Tree",[],dataSyntax()),[aint(alabel="character")],[],alabel="char")*/ + public final io.usethesource.vallang.type.Type $T14; /*alist(aparameter("T",avalue(),closed=false))*/ + public final io.usethesource.vallang.type.Type Symbol_lit_str; /*acons(aadt("Symbol",[],dataSyntax()),[astr(alabel="string")],[],alabel="lit")*/ + public final io.usethesource.vallang.type.Type Condition_delete_Symbol; /*acons(aadt("Condition",[],dataSyntax()),[aadt("Symbol",[],dataSyntax(),alabel="symbol")],[],alabel="delete")*/ + public final io.usethesource.vallang.type.Type Symbol_layouts_str; /*acons(aadt("Symbol",[],dataSyntax()),[astr(alabel="name")],[],alabel="layouts")*/ + public final io.usethesource.vallang.type.Type $T6; /*abool()*/ + public final io.usethesource.vallang.type.Type Attr_bracket_; /*acons(aadt("Attr",[],dataSyntax()),[],[],alabel="bracket")*/ + public final io.usethesource.vallang.type.Type Symbol_opt_Symbol; /*acons(aadt("Symbol",[],dataSyntax()),[aadt("Symbol",[],dataSyntax(),alabel="symbol")],[],alabel="opt")*/ + public final io.usethesource.vallang.type.Type Associativity_left_; /*acons(aadt("Associativity",[],dataSyntax()),[],[],alabel="left")*/ + public final io.usethesource.vallang.type.Type $T23; /*aset(aadt("Attr",[],dataSyntax()),alabel="attributes")*/ + public final io.usethesource.vallang.type.Type Production_prod_Symbol_list_Symbol_set_Attr; /*acons(aadt("Production",[],dataSyntax()),[aadt("Symbol",[],dataSyntax(),alabel="def"),alist(aadt("Symbol",[],dataSyntax()),alabel="symbols"),aset(aadt("Attr",[],dataSyntax()),alabel="attributes")],[],alabel="prod")*/ + public final io.usethesource.vallang.type.Type $T24; /*aset(aadt("Production",[],dataSyntax()),alabel="alternatives")*/ + public final io.usethesource.vallang.type.Type Symbol_conditional_Symbol_set_Condition; /*acons(aadt("Symbol",[],dataSyntax()),[aadt("Symbol",[],dataSyntax(),alabel="symbol"),aset(aadt("Condition",[],dataSyntax()),alabel="conditions")],[],alabel="conditional")*/ + public final io.usethesource.vallang.type.Type $T17; /*aset(aadt("Symbol",[],dataSyntax()),alabel="alternatives")*/ + public final io.usethesource.vallang.type.Type $T15; /*aparameter("T",aadt("Tree",[],dataSyntax()),closed=true)*/ + public final io.usethesource.vallang.type.Type ADT_TreeSearchResult_1; /*aadt("TreeSearchResult",[aparameter("T",aadt("Tree",[],dataSyntax()),closed=true)],dataSyntax())*/ + public final io.usethesource.vallang.type.Type TreeSearchResult_1_treeFound_; /*acons(aadt("TreeSearchResult",[aparameter("T",aadt("Tree",[],dataSyntax()),closed=true)],dataSyntax()),[aparameter("T",aadt("Tree",[],dataSyntax()),closed=false,alabel="tree")],[],alabel="treeFound")*/ + public final io.usethesource.vallang.type.Type Condition_begin_of_line_; /*acons(aadt("Condition",[],dataSyntax()),[],[],alabel="begin-of-line")*/ + public final io.usethesource.vallang.type.Type Production_associativity_Symbol_Associativity_set_Production; /*acons(aadt("Production",[],dataSyntax()),[aadt("Symbol",[],dataSyntax(),alabel="def"),aadt("Associativity",[],dataSyntax(),alabel="assoc"),aset(aadt("Production",[],dataSyntax()),alabel="alternatives")],[],alabel="associativity")*/ + public final io.usethesource.vallang.type.Type ADT_Message; /*aadt("Message",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type Symbol_seq_list_Symbol; /*acons(aadt("Symbol",[],dataSyntax()),[alist(aadt("Symbol",[],dataSyntax()),alabel="symbols")],[],alabel="seq")*/ + public final io.usethesource.vallang.type.Type $T1; /*alist(aadt("Production",[],dataSyntax()))*/ + public final io.usethesource.vallang.type.Type $T12; /*alist(aadt("Symbol",[],dataSyntax()))*/ + public final io.usethesource.vallang.type.Type TreeSearchResult_1_treeNotFound_; /*acons(aadt("TreeSearchResult",[aparameter("T",aadt("Tree",[],dataSyntax()),closed=true)],dataSyntax()),[],[],alabel="treeNotFound")*/ + public final io.usethesource.vallang.type.Type Condition_at_column_int; /*acons(aadt("Condition",[],dataSyntax()),[aint(alabel="column")],[],alabel="at-column")*/ + public final io.usethesource.vallang.type.Type $T44; /*areified(aparameter("U",avalue(),closed=true),alabel="nonterminal")*/ + public final io.usethesource.vallang.type.Type Symbol_char_class_list_CharRange; /*acons(aadt("Symbol",[],dataSyntax()),[alist(aadt("CharRange",[],dataSyntax()),alabel="ranges")],[],alabel="char-class")*/ + public final io.usethesource.vallang.type.Type $T7; /*areified(aparameter("T",avalue(),closed=false))*/ + public final io.usethesource.vallang.type.Type Condition_follow_Symbol; /*acons(aadt("Condition",[],dataSyntax()),[aadt("Symbol",[],dataSyntax(),alabel="symbol")],[],alabel="follow")*/ + public final io.usethesource.vallang.type.Type Production_skipped_Symbol; /*acons(aadt("Production",[],dataSyntax()),[aadt("Symbol",[],dataSyntax(),alabel="def")],[],alabel="skipped")*/ + public final io.usethesource.vallang.type.Type Condition_precede_Symbol; /*acons(aadt("Condition",[],dataSyntax()),[aadt("Symbol",[],dataSyntax(),alabel="symbol")],[],alabel="precede")*/ + public final io.usethesource.vallang.type.Type $T38; /*afunc(aparameter("T",avalue(),closed=true),[avalue(alabel="input"),aloc(alabel="origin")],[])*/ + public final io.usethesource.vallang.type.Type Production_error_Symbol_Production_int; /*acons(aadt("Production",[],dataSyntax()),[aadt("Symbol",[],dataSyntax(),alabel="def"),aadt("Production",[],dataSyntax(),alabel="prod"),aint(alabel="dot")],[],alabel="error")*/ + public final io.usethesource.vallang.type.Type Symbol_empty_; /*acons(aadt("Symbol",[],dataSyntax()),[],[],alabel="empty")*/ + public final io.usethesource.vallang.type.Type Condition_not_follow_Symbol; /*acons(aadt("Condition",[],dataSyntax()),[aadt("Symbol",[],dataSyntax(),alabel="symbol")],[],alabel="not-follow")*/ + public final io.usethesource.vallang.type.Type ADT_RuntimeException; /*aadt("RuntimeException",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type Symbol_alt_set_Symbol; /*acons(aadt("Symbol",[],dataSyntax()),[aset(aadt("Symbol",[],dataSyntax()),alabel="alternatives")],[],alabel="alt")*/ + public final io.usethesource.vallang.type.Type Condition_except_str; /*acons(aadt("Condition",[],dataSyntax()),[astr(alabel="label")],[],alabel="except")*/ + public final io.usethesource.vallang.type.Type ADT_Exception; /*aadt("Exception",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_LocationType; /*aadt("LocationType",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type $T9; /*areified(aparameter("T",aadt("Tree",[],dataSyntax()),closed=false))*/ + public final io.usethesource.vallang.type.Type $T13; /*aset(aadt("Production",[],dataSyntax()))*/ + public final io.usethesource.vallang.type.Type Production_regular_Symbol; /*acons(aadt("Production",[],dataSyntax()),[aadt("Symbol",[],dataSyntax(),alabel="def")],[],alabel="regular")*/ + public final io.usethesource.vallang.type.Type $T2; /*areified(aparameter("U",avalue(),closed=false))*/ + public final io.usethesource.vallang.type.Type Symbol_iter_seps_Symbol_list_Symbol; /*acons(aadt("Symbol",[],dataSyntax()),[aadt("Symbol",[],dataSyntax(),alabel="symbol"),alist(aadt("Symbol",[],dataSyntax()),alabel="separators")],[],alabel="iter-seps")*/ + public final io.usethesource.vallang.type.Type Symbol_parameterized_sort_str_list_Symbol; /*acons(aadt("Symbol",[],dataSyntax()),[astr(alabel="name"),alist(aadt("Symbol",[],dataSyntax()),alabel="parameters")],[],alabel="parameterized-sort")*/ + public final io.usethesource.vallang.type.Type Tree_amb_set_Tree; /*acons(aadt("Tree",[],dataSyntax()),[aset(aadt("Tree",[],dataSyntax()),alabel="alternatives")],[],alabel="amb")*/ + public final io.usethesource.vallang.type.Type Production_priority_Symbol_list_Production; /*acons(aadt("Production",[],dataSyntax()),[aadt("Symbol",[],dataSyntax(),alabel="def"),alist(aadt("Production",[],dataSyntax()),alabel="choices")],[],alabel="priority")*/ + public final io.usethesource.vallang.type.Type $T42; /*afunc(aparameter("U",avalue(),closed=true),[areified(aparameter("U",avalue(),closed=true),alabel="nonterminal"),avalue(alabel="input"),aloc(alabel="origin")],[])*/ + public final io.usethesource.vallang.type.Type Associativity_right_; /*acons(aadt("Associativity",[],dataSyntax()),[],[],alabel="right")*/ + public final io.usethesource.vallang.type.Type Symbol_iter_star_Symbol; /*acons(aadt("Symbol",[],dataSyntax()),[aadt("Symbol",[],dataSyntax(),alabel="symbol")],[],alabel="iter-star")*/ + + public $ParseTree(RascalExecutionContext rex){ + this(rex, null); + } + + public $ParseTree(RascalExecutionContext rex, Object extended){ + super(rex); + this.$me = extended == null ? this : ($ParseTree_$I)extended; + ModuleStore mstore = rex.getModuleStore(); + mstore.put(rascal.$ParseTree.class, this); + + + + M_Message = mstore.extendModule(rascal.$Message.class, rex, rascal.$Message::new, $me); + M_Type = mstore.extendModule(rascal.$Type.class, rex, rascal.$Type::new, $me); + M_List = mstore.extendModule(rascal.$List.class, rex, rascal.$List::new, $me); + + + $TS.importStore(M_Message.$TS); + $TS.importStore(M_Type.$TS); + $TS.importStore(M_List.$TS); + + $Prelude = $initLibrary("org.rascalmpl.library.Prelude"); + + $constants = readBinaryConstantsFile(this.getClass(), "rascal/$ParseTree.constants", 8, "40d90c4f6e73240a2157ffdc5e5da56b"); + ADT_Symbol = $adt("Symbol"); + ADT_Tree = $adt("Tree"); + ADT_LocationChangeType = $adt("LocationChangeType"); + ADT_Production = $adt("Production"); + ADT_CharRange = $adt("CharRange"); + ADT_Condition = $adt("Condition"); + ADT_LocationChangeEvent = $adt("LocationChangeEvent"); + ADT_Attr = $adt("Attr"); + ADT_Associativity = $adt("Associativity"); + ADT_IOCapability = $adt("IOCapability"); + ADT_Message = $adt("Message"); + ADT_RuntimeException = $adt("RuntimeException"); + ADT_Exception = $adt("Exception"); + ADT_LocationType = $adt("LocationType"); + $T34 = $TF.integerType(); + $T3 = $TF.valueType(); + $T8 = $TF.parameterType("T", $T3); + $T31 = $TF.integerType(); + $T5 = $TF.sourceLocationType(); + $T4 = $TF.parameterType("U", $T3); + $T22 = $TF.integerType(); + $T32 = $TF.stringType(); + $T35 = $TF.integerType(); + $T20 = $TF.stringType(); + $T21 = $TF.stringType(); + $T33 = $TF.stringType(); + $T19 = $TF.integerType(); + $T11 = $TF.stringType(); + $T36 = $TF.integerType(); + $T40 = $TF.valueType(); + $T43 = $TF.parameterType("U", $T3); + $T41 = $TF.sourceLocationType(); + $T39 = $TF.parameterType("T", $T3); + $T37 = $TF.listType(ADT_Tree); + $T29 = $TF.listType(ADT_Symbol); + $T45 = $TF.functionType($T43, $TF.tupleType($T40, "input", $T41, "origin"), $TF.tupleEmpty()); + $T0 = $RTF.reifiedType(ADT_Tree); + $T18 = $TF.listType(ADT_Symbol); + $T27 = $TF.listType(ADT_Production); + $T16 = $TF.listType(ADT_CharRange); + $T26 = $TF.parameterType("T", ADT_Tree); + $T25 = $TF.setType(ADT_Condition); + $T10 = $TF.parameterType("T", ADT_Tree); + $T28 = $TF.listType(ADT_Symbol); + $T30 = $TF.setType(ADT_Tree); + $T14 = $TF.listType($T8); + $T6 = $TF.boolType(); + $T23 = $TF.setType(ADT_Attr); + $T24 = $TF.setType(ADT_Production); + $T17 = $TF.setType(ADT_Symbol); + $T15 = $TF.parameterType("T", ADT_Tree); + ADT_TreeSearchResult_1 = $parameterizedAdt("TreeSearchResult", new Type[] { $T15 }); + $T1 = $TF.listType(ADT_Production); + $T12 = $TF.listType(ADT_Symbol); + $T44 = $RTF.reifiedType($T43); + $T7 = $RTF.reifiedType($T8); + $T38 = $TF.functionType($T39, $TF.tupleType($T40, "input", $T41, "origin"), $TF.tupleEmpty()); + $T9 = $RTF.reifiedType($T10); + $T13 = $TF.setType(ADT_Production); + $T2 = $RTF.reifiedType($T4); + $T42 = $TF.functionType($T43, $TF.tupleType($T44, "nonterminal", $T40, "input", $T41, "origin"), $TF.tupleEmpty()); + Symbol_keywords_str = $TF.constructor($TS, ADT_Symbol, "keywords", $TF.stringType(), "name"); + Tree_cycle_Symbol_int = $TF.constructor($TS, ADT_Tree, "cycle", M_Type.ADT_Symbol, "symbol", $TF.integerType(), "cycleLength"); + Symbol_lex_str = $TF.constructor($TS, ADT_Symbol, "lex", $TF.stringType(), "name"); + Symbol_iter_star_seps_Symbol_list_Symbol = $TF.constructor($TS, ADT_Symbol, "iter-star-seps", M_Type.ADT_Symbol, "symbol", $TF.listType(ADT_Symbol), "separators"); + Symbol_cilit_str = $TF.constructor($TS, ADT_Symbol, "cilit", $TF.stringType(), "string"); + Symbol_iter_Symbol = $TF.constructor($TS, ADT_Symbol, "iter", M_Type.ADT_Symbol, "symbol"); + Attr_assoc_Associativity = $TF.constructor($TS, ADT_Attr, "assoc", ADT_Associativity, "assoc"); + Symbol_parameterized_lex_str_list_Symbol = $TF.constructor($TS, ADT_Symbol, "parameterized-lex", $TF.stringType(), "name", $TF.listType(ADT_Symbol), "parameters"); + CharRange_range_int_int = $TF.constructor($TS, ADT_CharRange, "range", $TF.integerType(), "begin", $TF.integerType(), "end"); + Associativity_assoc_ = $TF.constructor($TS, ADT_Associativity, "assoc"); + Production_reference_Symbol_str = $TF.constructor($TS, ADT_Production, "reference", M_Type.ADT_Symbol, "def", $TF.stringType(), "cons"); + Associativity_non_assoc_ = $TF.constructor($TS, ADT_Associativity, "non-assoc"); + Tree_appl_Production_list_Tree = $TF.constructor($TS, ADT_Tree, "appl", M_Type.ADT_Production, "prod", $TF.listType(ADT_Tree), "args"); + Condition_not_precede_Symbol = $TF.constructor($TS, ADT_Condition, "not-precede", M_Type.ADT_Symbol, "symbol"); + Symbol_start_Symbol = $TF.constructor($TS, ADT_Symbol, "start", M_Type.ADT_Symbol, "symbol"); + Symbol_sort_str = $TF.constructor($TS, ADT_Symbol, "sort", $TF.stringType(), "name"); + Condition_end_of_line_ = $TF.constructor($TS, ADT_Condition, "end-of-line"); + Tree_char_int = $TF.constructor($TS, ADT_Tree, "char", $TF.integerType(), "character"); + Symbol_lit_str = $TF.constructor($TS, ADT_Symbol, "lit", $TF.stringType(), "string"); + Condition_delete_Symbol = $TF.constructor($TS, ADT_Condition, "delete", M_Type.ADT_Symbol, "symbol"); + Symbol_layouts_str = $TF.constructor($TS, ADT_Symbol, "layouts", $TF.stringType(), "name"); + Attr_bracket_ = $TF.constructor($TS, ADT_Attr, "bracket"); + Symbol_opt_Symbol = $TF.constructor($TS, ADT_Symbol, "opt", M_Type.ADT_Symbol, "symbol"); + Associativity_left_ = $TF.constructor($TS, ADT_Associativity, "left"); + Production_prod_Symbol_list_Symbol_set_Attr = $TF.constructor($TS, ADT_Production, "prod", M_Type.ADT_Symbol, "def", $TF.listType(ADT_Symbol), "symbols", $TF.setType(ADT_Attr), "attributes"); + Symbol_conditional_Symbol_set_Condition = $TF.constructor($TS, ADT_Symbol, "conditional", M_Type.ADT_Symbol, "symbol", $TF.setType(ADT_Condition), "conditions"); + TreeSearchResult_1_treeFound_ = $TF.constructor($TS, ADT_TreeSearchResult_1, "treeFound", $TF.parameterType("T", ADT_Tree), "tree"); + Condition_begin_of_line_ = $TF.constructor($TS, ADT_Condition, "begin-of-line"); + Production_associativity_Symbol_Associativity_set_Production = $TF.constructor($TS, ADT_Production, "associativity", M_Type.ADT_Symbol, "def", ADT_Associativity, "assoc", $TF.setType(ADT_Production), "alternatives"); + Symbol_seq_list_Symbol = $TF.constructor($TS, ADT_Symbol, "seq", $TF.listType(ADT_Symbol), "symbols"); + TreeSearchResult_1_treeNotFound_ = $TF.constructor($TS, ADT_TreeSearchResult_1, "treeNotFound"); + Condition_at_column_int = $TF.constructor($TS, ADT_Condition, "at-column", $TF.integerType(), "column"); + Symbol_char_class_list_CharRange = $TF.constructor($TS, ADT_Symbol, "char-class", $TF.listType(ADT_CharRange), "ranges"); + Condition_follow_Symbol = $TF.constructor($TS, ADT_Condition, "follow", M_Type.ADT_Symbol, "symbol"); + Production_skipped_Symbol = $TF.constructor($TS, ADT_Production, "skipped", M_Type.ADT_Symbol, "def"); + Condition_precede_Symbol = $TF.constructor($TS, ADT_Condition, "precede", M_Type.ADT_Symbol, "symbol"); + Production_error_Symbol_Production_int = $TF.constructor($TS, ADT_Production, "error", M_Type.ADT_Symbol, "def", M_Type.ADT_Production, "prod", $TF.integerType(), "dot"); + Symbol_empty_ = $TF.constructor($TS, ADT_Symbol, "empty"); + Condition_not_follow_Symbol = $TF.constructor($TS, ADT_Condition, "not-follow", M_Type.ADT_Symbol, "symbol"); + Symbol_alt_set_Symbol = $TF.constructor($TS, ADT_Symbol, "alt", $TF.setType(ADT_Symbol), "alternatives"); + Condition_except_str = $TF.constructor($TS, ADT_Condition, "except", $TF.stringType(), "label"); + Production_regular_Symbol = $TF.constructor($TS, ADT_Production, "regular", M_Type.ADT_Symbol, "def"); + Symbol_iter_seps_Symbol_list_Symbol = $TF.constructor($TS, ADT_Symbol, "iter-seps", M_Type.ADT_Symbol, "symbol", $TF.listType(ADT_Symbol), "separators"); + Symbol_parameterized_sort_str_list_Symbol = $TF.constructor($TS, ADT_Symbol, "parameterized-sort", $TF.stringType(), "name", $TF.listType(ADT_Symbol), "parameters"); + Tree_amb_set_Tree = $TF.constructor($TS, ADT_Tree, "amb", $TF.setType(ADT_Tree), "alternatives"); + Production_priority_Symbol_list_Production = $TF.constructor($TS, ADT_Production, "priority", M_Type.ADT_Symbol, "def", $TF.listType(ADT_Production), "choices"); + Associativity_right_ = $TF.constructor($TS, ADT_Associativity, "right"); + Symbol_iter_star_Symbol = $TF.constructor($TS, ADT_Symbol, "iter-star", M_Type.ADT_Symbol, "symbol"); + + + $kwpDefaults_ParseTree_parse$4d2afd5837b53c80 = Util.kwpMap("allowAmbiguity", ((IBool)$constants.get(2)/*false*/), "maxAmbDepth", ((IInteger)$constants.get(3)/*2*/), "allowRecovery", ((IBool)$constants.get(2)/*false*/), "maxRecoveryAttempts", ((IInteger)$constants.get(4)/*30*/), "maxRecoveryTokens", ((IInteger)$constants.get(5)/*3*/), "hasSideEffects", ((IBool)$constants.get(2)/*false*/), "filters", ((ISet)$constants.get(6)/*{}*/)); + $kwpDefaults_ParseTree_parse$696136d9f024501e = Util.kwpMap("allowAmbiguity", ((IBool)$constants.get(2)/*false*/), "maxAmbDepth", ((IInteger)$constants.get(3)/*2*/), "allowRecovery", ((IBool)$constants.get(2)/*false*/), "maxRecoveryAttempts", ((IInteger)$constants.get(4)/*30*/), "maxRecoveryTokens", ((IInteger)$constants.get(5)/*3*/), "hasSideEffects", ((IBool)$constants.get(2)/*false*/), "filters", ((ISet)$constants.get(6)/*{}*/)); + $kwpDefaults_ParseTree_parse$55b9e584aedc91f7 = Util.kwpMap("allowAmbiguity", ((IBool)$constants.get(2)/*false*/), "maxAmbDepth", ((IInteger)$constants.get(3)/*2*/), "allowRecovery", ((IBool)$constants.get(2)/*false*/), "maxRecoveryAttempts", ((IInteger)$constants.get(4)/*30*/), "maxRecoveryTokens", ((IInteger)$constants.get(5)/*3*/), "hasSideEffects", ((IBool)$constants.get(2)/*false*/), "filters", ((ISet)$constants.get(6)/*{}*/)); + $kwpDefaults_ParseTree_parser$c4d258086f531875 = Util.kwpMap("allowAmbiguity", ((IBool)$constants.get(2)/*false*/), "maxAmbDepth", ((IInteger)$constants.get(3)/*2*/), "allowRecovery", ((IBool)$constants.get(2)/*false*/), "maxRecoveryAttempts", ((IInteger)$constants.get(4)/*30*/), "maxRecoveryTokens", ((IInteger)$constants.get(5)/*3*/), "hasSideEffects", ((IBool)$constants.get(2)/*false*/), "filters", ((ISet)$constants.get(6)/*{}*/)); + $kwpDefaults_ParseTree_firstAmbiguityFinder$4c88e56e1de6a5c6 = Util.kwpMap("hasSideEffects", ((IBool)$constants.get(2)/*false*/), "filters", ((ISet)$constants.get(6)/*{}*/)); + $kwpDefaults_ParseTree_parsers$43e4839e939e0971 = Util.kwpMap("allowAmbiguity", ((IBool)$constants.get(2)/*false*/), "maxAmbDepth", ((IInteger)$constants.get(3)/*2*/), "allowRecovery", ((IBool)$constants.get(2)/*false*/), "maxRecoveryAttempts", ((IInteger)$constants.get(4)/*30*/), "maxRecoveryTokens", ((IInteger)$constants.get(5)/*3*/), "hasSideEffects", ((IBool)$constants.get(2)/*false*/), "filters", ((ISet)$constants.get(6)/*{}*/)); + $kwpDefaults_ParseTree_firstAmbiguityFinders$4e066d437479bb46 = Util.kwpMap("hasSideEffects", ((IBool)$constants.get(2)/*false*/), "filters", ((ISet)$constants.get(6)/*{}*/)); + $kwpDefaults_ParseTree_loadParsers$12936d804ae9b4a7 = Util.kwpMap("allowAmbiguity", ((IBool)$constants.get(2)/*false*/), "maxAmbDepth", ((IInteger)$constants.get(3)/*2*/), "allowRecovery", ((IBool)$constants.get(2)/*false*/), "maxRecoveryAttempts", ((IInteger)$constants.get(4)/*30*/), "maxRecoveryTokens", ((IInteger)$constants.get(5)/*3*/), "hasSideEffects", ((IBool)$constants.get(2)/*false*/), "filters", ((ISet)$constants.get(6)/*{}*/)); + $kwpDefaults_ParseTree_loadParser$a320f401f0ea0902 = Util.kwpMap("allowAmbiguity", ((IBool)$constants.get(2)/*false*/), "maxAmbDepth", ((IInteger)$constants.get(3)/*2*/), "allowRecovery", ((IBool)$constants.get(2)/*false*/), "maxRecoveryAttempts", ((IInteger)$constants.get(4)/*30*/), "maxRecoveryTokens", ((IInteger)$constants.get(5)/*3*/), "hasSideEffects", ((IBool)$constants.get(2)/*false*/), "filters", ((ISet)$constants.get(6)/*{}*/)); + + } + public IList addLabels(IValue $P0, IValue $P1){ // Generated by Resolver + return (IList) M_Type.addLabels($P0, $P1); + } + public IBool sameType(IValue $P0, IValue $P1){ // Generated by Resolver + IBool $result = null; + Type $P0Type = $P0.getType(); + Type $P1Type = $P1.getType(); + switch(Fingerprint.getFingerprint($P0)){ + + case 1643638592: + if($isSubtypeOf($P0Type, M_Type.ADT_Symbol) && $isSubtypeOf($P1Type, M_Type.ADT_Symbol)){ + $result = (IBool)ParseTree_sameType$b275756ae4e2966e((IConstructor) $P0, (IConstructor) $P1); + if($result != null) return $result; + } + break; + case -2144737184: + if($isSubtypeOf($P0Type, M_Type.ADT_Symbol) && $isSubtypeOf($P1Type, M_Type.ADT_Symbol)){ + $result = (IBool)ParseTree_sameType$10233296380130e3((IConstructor) $P0, (IConstructor) $P1); + if($result != null) return $result; + } + break; + } + if($isSubtypeOf($P0Type, M_Type.ADT_Symbol) && $isSubtypeOf($P1Type, M_Type.ADT_Symbol)){ + $result = (IBool)ParseTree_sameType$a84782db931f7a30((IConstructor) $P0, (IConstructor) $P1); + if($result != null) return $result; + $result = (IBool)ParseTree_sameType$62cda661d939c9fa((IConstructor) $P0, (IConstructor) $P1); + if($result != null) return $result; + $result = (IBool)ParseTree_sameType$3698dd87f53b84eb((IConstructor) $P0, (IConstructor) $P1); + if($result != null) return $result; + $result = (IBool)ParseTree_sameType$e3b3acd78100d719((IConstructor) $P0, (IConstructor) $P1); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0, $P1)); + } + public IBool isAliasType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isAliasType($P0); + } + public IString intercalate(IValue $P0, IValue $P1){ // Generated by Resolver + return (IString) M_List.intercalate($P0, $P1); + } + public IValue head(IValue $P0){ // Generated by Resolver + return (IValue) M_List.head($P0); + } + public IList head(IValue $P0, IValue $P1){ // Generated by Resolver + return (IList) M_List.head($P0, $P1); + } + public IInteger size(IValue $P0){ // Generated by Resolver + return (IInteger) M_List.size($P0); + } + public IBool isStrType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isStrType($P0); + } + public IMap toMap(IValue $P0){ // Generated by Resolver + return (IMap) M_List.toMap($P0); + } + public IConstructor choice(IValue $P0, IValue $P1){ // Generated by Resolver + return (IConstructor) M_Type.choice($P0, $P1); + } + public IBool isADTType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isADTType($P0); + } + public IBool isValueType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isValueType($P0); + } + public IList mapper(IValue $P0, IValue $P1){ // Generated by Resolver + return (IList) M_List.mapper($P0, $P1); + } + public IBool isListType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isListType($P0); + } + public IBool isRealType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isRealType($P0); + } + public IList reverse(IValue $P0){ // Generated by Resolver + return (IList) M_List.reverse($P0); + } + public IBool isTypeVar(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isTypeVar($P0); + } + public TypedFunctionInstance2 firstAmbiguityFinder(IValue $P0, java.util.Map $kwpActuals){ // Generated by Resolver + TypedFunctionInstance2 $result = null; + Type $P0Type = $P0.getType(); + if($isSubtypeOf($P0Type,$T0)){ + $result = (TypedFunctionInstance2)ParseTree_firstAmbiguityFinder$4c88e56e1de6a5c6((IConstructor) $P0, $kwpActuals); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0)); + } + public IBool isEmpty(IValue $P0){ // Generated by Resolver + return (IBool) M_List.isEmpty($P0); + } + public IList remove(IValue $P0, IValue $P1){ // Generated by Resolver + return (IList) M_List.remove($P0, $P1); + } + public IValue max(IValue $P0){ // Generated by Resolver + return (IValue) M_List.max($P0); + } + public IConstructor priority(IValue $P0, IValue $P1){ // Generated by Resolver + IConstructor $result = null; + Type $P0Type = $P0.getType(); + Type $P1Type = $P1.getType(); + if($isSubtypeOf($P0Type, M_Type.ADT_Symbol) && $isSubtypeOf($P1Type,$T1)){ + $result = (IConstructor)ParseTree_priority$ee30aba6f6d82e37((IConstructor) $P0, (IList) $P1); + if($result != null) return $result; + return $RVF.constructor(Production_priority_Symbol_list_Production, new IValue[]{(IConstructor) $P0, (IList) $P1}); + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0, $P1)); + } + public IValue getFirstFrom(IValue $P0){ // Generated by Resolver + return (IValue) M_List.getFirstFrom($P0); + } + public IMap distribution(IValue $P0){ // Generated by Resolver + return (IMap) M_List.distribution($P0); + } + public TypedFunctionInstance2 loadParser(IValue $P0, IValue $P1, java.util.Map $kwpActuals){ // Generated by Resolver + TypedFunctionInstance2 $result = null; + Type $P0Type = $P0.getType(); + Type $P1Type = $P1.getType(); + if($isSubtypeOf($P0Type,$T2) && $isSubtypeOf($P1Type,$T5)){ + $result = (TypedFunctionInstance2)ParseTree_loadParser$a320f401f0ea0902((IConstructor) $P0, (ISourceLocation) $P1, $kwpActuals); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0, $P1)); + } + public IString printSymbol(IValue $P0, IValue $P1){ // Generated by Resolver + IString $result = null; + Type $P0Type = $P0.getType(); + Type $P1Type = $P1.getType(); + if($isSubtypeOf($P0Type, M_Type.ADT_Symbol) && $isSubtypeOf($P1Type,$T6)){ + $result = (IString)ParseTree_printSymbol$4ce577b2a14fc038((IConstructor) $P0, (IBool) $P1); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0, $P1)); + } + public IBool isNodeType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isNodeType($P0); + } + public IBool isSorted(IValue $P0, java.util.Map $kwpActuals){ // Generated by Resolver + return (IBool) M_List.isSorted($P0, $kwpActuals); + } + public IList take(IValue $P0, IValue $P1){ // Generated by Resolver + return (IList) M_List.take($P0, $P1); + } + public ISet toSet(IValue $P0){ // Generated by Resolver + return (ISet) M_List.toSet($P0); + } + public IBool isReifiedType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isReifiedType($P0); + } + public ITuple takeOneFrom(IValue $P0){ // Generated by Resolver + return (ITuple) M_List.takeOneFrom($P0); + } + public IInteger indexOf(IValue $P0, IValue $P1){ // Generated by Resolver + return (IInteger) M_List.indexOf($P0, $P1); + } + public IBool isRelType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isRelType($P0); + } + public ITuple unzip2(IValue $P0){ // Generated by Resolver + return (ITuple) M_List.unzip2($P0); + } + public IBool isConstructorType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isConstructorType($P0); + } + public IConstructor var_func(IValue $P0, IValue $P1, IValue $P2){ // Generated by Resolver + return (IConstructor) M_Type.var_func($P0, $P1, $P2); + } + public IBool equivalent(IValue $P0, IValue $P1){ // Generated by Resolver + return (IBool) M_Type.equivalent($P0, $P1); + } + public IList takeWhile(IValue $P0, IValue $P1){ // Generated by Resolver + return (IList) M_List.takeWhile($P0, $P1); + } + public INumber sum(IValue $P0){ // Generated by Resolver + return (INumber) M_List.sum($P0); + } + public IList addParamLabels(IValue $P0, IValue $P1){ // Generated by Resolver + return (IList) M_Type.addParamLabels($P0, $P1); + } + public IList delete(IValue $P0, IValue $P1){ // Generated by Resolver + return (IList) M_List.delete($P0, $P1); + } + public IBool keepParams(IValue $P0, IValue $P1){ // Generated by Resolver + return (IBool) M_Type.keepParams($P0, $P1); + } + public IBool isListRelType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isListRelType($P0); + } + public ITuple unzip3(IValue $P0){ // Generated by Resolver + return (ITuple) M_List.unzip3($P0); + } + public IBool eq(IValue $P0, IValue $P1){ // Generated by Resolver + return (IBool) M_Type.eq($P0, $P1); + } + public IList insertAt(IValue $P0, IValue $P1, IValue $P2){ // Generated by Resolver + return (IList) M_List.insertAt($P0, $P1, $P2); + } + public IBool isMapType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isMapType($P0); + } + public IString toString(IValue $P0){ // Generated by Resolver + return (IString) M_List.toString($P0); + } + public IValue reducer(IValue $P0, IValue $P1, IValue $P2){ // Generated by Resolver + return (IValue) M_List.reducer($P0, $P1, $P2); + } + public ISet permutations(IValue $P0){ // Generated by Resolver + return (ISet) M_List.permutations($P0); + } + public TypedFunctionInstance3 loadParsers(IValue $P0, java.util.Map $kwpActuals){ // Generated by Resolver + TypedFunctionInstance3 $result = null; + Type $P0Type = $P0.getType(); + if($isSubtypeOf($P0Type,$T5)){ + $result = (TypedFunctionInstance3)ParseTree_loadParsers$12936d804ae9b4a7((ISourceLocation) $P0, $kwpActuals); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0)); + } + public IBool isBoolType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isBoolType($P0); + } + public IValue make(IValue $P0, IValue $P1, IValue $P2){ // Generated by Resolver + return (IValue) M_Type.make($P0, $P1, $P2); + } + public IValue make(IValue $P0, IValue $P1, IValue $P2, IValue $P3){ // Generated by Resolver + return (IValue) M_Type.make($P0, $P1, $P2, $P3); + } + public IList drop(IValue $P0, IValue $P1){ // Generated by Resolver + return (IList) M_List.drop($P0, $P1); + } + public IValue elementAt(IValue $P0, IValue $P1){ // Generated by Resolver + return (IValue) M_List.elementAt($P0, $P1); + } + public IBool isLocType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isLocType($P0); + } + public IValue implode(IValue $P0, IValue $P1){ // Generated by Resolver + IValue $result = null; + Type $P0Type = $P0.getType(); + Type $P1Type = $P1.getType(); + if($isSubtypeOf($P0Type,$T7) && $isSubtypeOf($P1Type, ADT_Tree)){ + $result = (IValue)ParseTree_implode$13172869ec254a12((IConstructor) $P0, (ITree) $P1); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0, $P1)); + } + public TypedFunctionInstance3 firstAmbiguityFinders(IValue $P0, java.util.Map $kwpActuals){ // Generated by Resolver + TypedFunctionInstance3 $result = null; + Type $P0Type = $P0.getType(); + if($isSubtypeOf($P0Type,$T0)){ + $result = (TypedFunctionInstance3)ParseTree_firstAmbiguityFinders$4e066d437479bb46((IConstructor) $P0, $kwpActuals); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0)); + } + public IList upTill(IValue $P0){ // Generated by Resolver + return (IList) M_List.upTill($P0); + } + public IList tail(IValue $P0){ // Generated by Resolver + return (IList) M_List.tail($P0); + } + public IList tail(IValue $P0, IValue $P1){ // Generated by Resolver + return (IList) M_List.tail($P0, $P1); + } + public ITuple headTail(IValue $P0){ // Generated by Resolver + return (ITuple) M_List.headTail($P0); + } + public IList zip2(IValue $P0, IValue $P1){ // Generated by Resolver + return (IList) M_List.zip2($P0, $P1); + } + public ITuple pop(IValue $P0){ // Generated by Resolver + return (ITuple) M_List.pop($P0); + } + public IConstructor typeOf(IValue $P0){ // Generated by Resolver + return (IConstructor) M_Type.typeOf($P0); + } + public IConstructor treeAt(IValue $P0, IValue $P1, IValue $P2){ // Generated by Resolver + IConstructor $result = null; + Type $P0Type = $P0.getType(); + Type $P1Type = $P1.getType(); + Type $P2Type = $P2.getType(); + if($isSubtypeOf($P0Type,$T9) && $isSubtypeOf($P1Type,$T5) && $isSubtypeOf($P2Type, ADT_Tree)){ + $result = (IConstructor)ParseTree_treeAt$d353ab20d6109b21((IConstructor) $P0, (ISourceLocation) $P1, (ITree) $P2); + if($result != null) return $result; + $result = (IConstructor)ParseTree_treeAt$070d7a31ea8abb2e((IConstructor) $P0, (ISourceLocation) $P1, (ITree) $P2); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0, $P1, $P2)); + } + public IMap toMapUnique(IValue $P0){ // Generated by Resolver + return (IMap) M_List.toMapUnique($P0); + } + public IList index(IValue $P0){ // Generated by Resolver + return (IList) M_List.index($P0); + } + public IList slice(IValue $P0, IValue $P1, IValue $P2){ // Generated by Resolver + return (IList) M_List.slice($P0, $P1, $P2); + } + public IBool allLabeled(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.allLabeled($P0); + } + public IValue min(IValue $P0){ // Generated by Resolver + return (IValue) M_List.min($P0); + } + public IList prefix(IValue $P0){ // Generated by Resolver + return (IList) M_List.prefix($P0); + } + public IList zip3(IValue $P0, IValue $P1, IValue $P2){ // Generated by Resolver + return (IList) M_List.zip3($P0, $P1, $P2); + } + public IBool isSetType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isSetType($P0); + } + public void storeParsers(IValue $P0, IValue $P1){ // Generated by Resolver + Type $P0Type = $P0.getType(); + Type $P1Type = $P1.getType(); + if($isSubtypeOf($P0Type,$T0) && $isSubtypeOf($P1Type,$T5)){ + try { ParseTree_storeParsers$e7c8ce1688fd48e5((IConstructor) $P0, (ISourceLocation) $P1); return; } catch (FailReturnFromVoidException e){}; + + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0, $P1)); + } + public IInteger lastIndexOf(IValue $P0, IValue $P1){ // Generated by Resolver + return (IInteger) M_List.lastIndexOf($P0, $P1); + } + public ITree parse(IValue $P0, IValue $P1, IValue $P2, java.util.Map $kwpActuals){ // Generated by Resolver + ITree $result = null; + Type $P0Type = $P0.getType(); + Type $P1Type = $P1.getType(); + Type $P2Type = $P2.getType(); + if($isSubtypeOf($P0Type,$T9) && $isSubtypeOf($P1Type,$T11) && $isSubtypeOf($P2Type,$T5)){ + $result = (ITree)ParseTree_parse$696136d9f024501e((IConstructor) $P0, (IString) $P1, (ISourceLocation) $P2, $kwpActuals); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0, $P1, $P2)); + } + public ITree parse(IValue $P0, IValue $P1, java.util.Map $kwpActuals){ // Generated by Resolver + ITree $result = null; + Type $P0Type = $P0.getType(); + Type $P1Type = $P1.getType(); + if($isSubtypeOf($P0Type,$T9) && $isSubtypeOf($P1Type,$T11)){ + $result = (ITree)ParseTree_parse$4d2afd5837b53c80((IConstructor) $P0, (IString) $P1, $kwpActuals); + if($result != null) return $result; + } + if($isSubtypeOf($P0Type,$T9) && $isSubtypeOf($P1Type,$T5)){ + $result = (ITree)ParseTree_parse$55b9e584aedc91f7((IConstructor) $P0, (ISourceLocation) $P1, $kwpActuals); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0, $P1)); + } + public TypedFunctionInstance3 parsers(IValue $P0, java.util.Map $kwpActuals){ // Generated by Resolver + TypedFunctionInstance3 $result = null; + Type $P0Type = $P0.getType(); + if($isSubtypeOf($P0Type,$T7)){ + $result = (TypedFunctionInstance3)ParseTree_parsers$43e4839e939e0971((IConstructor) $P0, $kwpActuals); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0)); + } + public IList concat(IValue $P0){ // Generated by Resolver + return (IList) M_List.concat($P0); + } + public IBool isRatType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isRatType($P0); + } + public IValue top(IValue $P0){ // Generated by Resolver + return (IValue) M_List.top($P0); + } + public IString itoString(IValue $P0){ // Generated by Resolver + return (IString) M_List.itoString($P0); + } + public IList getLabels(IValue $P0){ // Generated by Resolver + return (IList) M_Type.getLabels($P0); + } + public IValue last(IValue $P0){ // Generated by Resolver + return (IValue) M_List.last($P0); + } + public IList getParamLabels(IValue $P0){ // Generated by Resolver + return (IList) M_Type.getParamLabels($P0); + } + public IBool isNumType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isNumType($P0); + } + public IList stripLabels(IValue $P0){ // Generated by Resolver + return (IList) M_Type.stripLabels($P0); + } + public IBool isTupleType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isTupleType($P0); + } + public IBool isBagType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isBagType($P0); + } + public IList intersperse(IValue $P0, IValue $P1){ // Generated by Resolver + return (IList) M_List.intersperse($P0, $P1); + } + public IList merge(IValue $P0, IValue $P1, IValue $P2){ // Generated by Resolver + return (IList) M_List.merge($P0, $P1, $P2); + } + public IList merge(IValue $P0, IValue $P1){ // Generated by Resolver + return (IList) M_List.merge($P0, $P1); + } + public IBool isVoidType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isVoidType($P0); + } + public IBool isNonTerminalType(IValue $P0){ // Generated by Resolver + IBool $result = null; + Type $P0Type = $P0.getType(); + switch(Fingerprint.getFingerprint($P0)){ + + case 1444258592: + if($isSubtypeOf($P0Type, M_Type.ADT_Symbol)){ + $result = (IBool)ParseTree_isNonTerminalType$fd8640b90be01f96((IConstructor) $P0); + if($result != null) return $result; + } + break; + case -109773488: + if($isSubtypeOf($P0Type, M_Type.ADT_Symbol)){ + $result = (IBool)ParseTree_isNonTerminalType$596a4e65f73f6ddd((IConstructor) $P0); + if($result != null) return $result; + } + break; + case 878060304: + if($isSubtypeOf($P0Type, M_Type.ADT_Symbol)){ + $result = (IBool)ParseTree_isNonTerminalType$f27daba5b606f35d((IConstructor) $P0); + if($result != null) return $result; + } + break; + case 856312: + if($isSubtypeOf($P0Type, M_Type.ADT_Symbol)){ + $result = (IBool)ParseTree_isNonTerminalType$bd8ebacb8470da66((IConstructor) $P0); + if($result != null) return $result; + } + break; + case 1154855088: + if($isSubtypeOf($P0Type, M_Type.ADT_Symbol)){ + $result = (IBool)ParseTree_isNonTerminalType$bec4d445d8286a07((IConstructor) $P0); + if($result != null) return $result; + } + break; + case 28290288: + if($isSubtypeOf($P0Type, M_Type.ADT_Symbol)){ + $result = (IBool)ParseTree_isNonTerminalType$897add07fd0679fa((IConstructor) $P0); + if($result != null) return $result; + } + break; + case -333228984: + if($isSubtypeOf($P0Type, M_Type.ADT_Symbol)){ + $result = (IBool)ParseTree_isNonTerminalType$60a31525ab4124d2((IConstructor) $P0); + if($result != null) return $result; + } + break; + } + if($isSubtypeOf($P0Type, M_Type.ADT_Symbol)){ + $result = (IBool)ParseTree_isNonTerminalType$c6eab95f5fe5b746((IConstructor) $P0); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0)); + } + public IValue typeCast(IValue $P0, IValue $P1){ // Generated by Resolver + return (IValue) M_Type.typeCast($P0, $P1); + } + public IValue lub(IValue $P0, IValue $P1){ // Generated by Resolver + return (IValue) M_Type.lub($P0, $P1); + } + public IList shuffle(IValue $P0){ // Generated by Resolver + return (IList) M_List.shuffle($P0); + } + public IList shuffle(IValue $P0, IValue $P1){ // Generated by Resolver + return (IList) M_List.shuffle($P0, $P1); + } + public IBool comparable(IValue $P0, IValue $P1){ // Generated by Resolver + return (IBool) M_Type.comparable($P0, $P1); + } + public IBool subtype(IValue $P0, IValue $P1){ // Generated by Resolver + IBool $result = null; + Type $P0Type = $P0.getType(); + Type $P1Type = $P1.getType(); + switch(Fingerprint.getFingerprint($P0)){ + + case 1643638592: + if($isSubtypeOf($P0Type, M_Type.ADT_Symbol) && $isSubtypeOf($P1Type, M_Type.ADT_Symbol)){ + $result = (IBool)M_Type.Type_subtype$162da85a0f5a9f0d((IConstructor) $P0, (IConstructor) $P1); + if($result != null) return $result; + } + break; + case 26576112: + if($isSubtypeOf($P0Type, M_Type.ADT_Symbol) && $isSubtypeOf($P1Type, M_Type.ADT_Symbol)){ + $result = (IBool)M_Type.Type_subtype$258479665eae36af((IConstructor) $P0, (IConstructor) $P1); + if($result != null) return $result; + $result = (IBool)M_Type.Type_subtype$0462d461bde80a82((IConstructor) $P0, (IConstructor) $P1); + if($result != null) return $result; + } + break; + case 1725888: + if($isSubtypeOf($P0Type, M_Type.ADT_Symbol) && $isSubtypeOf($P1Type, M_Type.ADT_Symbol)){ + $result = (IBool)M_Type.Type_subtype$f6957636a33615ae((IConstructor) $P0, (IConstructor) $P1); + if($result != null) return $result; + } + break; + case 1206598288: + if($isSubtypeOf($P0Type, M_Type.ADT_Symbol) && $isSubtypeOf($P1Type, M_Type.ADT_Symbol)){ + $result = (IBool)M_Type.Type_subtype$b674428cffef84bc((IConstructor) $P0, (IConstructor) $P1); + if($result != null) return $result; + } + break; + case 97904160: + if($isSubtypeOf($P0Type, M_Type.ADT_Symbol) && $isSubtypeOf($P1Type, M_Type.ADT_Symbol)){ + $result = (IBool)M_Type.Type_subtype$98167e340333c9a5((IConstructor) $P0, (IConstructor) $P1); + if($result != null) return $result; + $result = (IBool)M_Type.Type_subtype$4fe5b133e2ee1de9((IConstructor) $P0, (IConstructor) $P1); + if($result != null) return $result; + } + break; + case 28290288: + if($isSubtypeOf($P0Type, M_Type.ADT_Symbol) && $isSubtypeOf($P1Type, M_Type.ADT_Symbol)){ + $result = (IBool)ParseTree_subtype$384d8d76f0c7a053((IConstructor) $P0, (IConstructor) $P1); + if($result != null) return $result; + } + break; + case 910096: + if($isSubtypeOf($P0Type, M_Type.ADT_Symbol) && $isSubtypeOf($P1Type, M_Type.ADT_Symbol)){ + $result = (IBool)M_Type.Type_subtype$ca59d9bf5276e15d((IConstructor) $P0, (IConstructor) $P1); + if($result != null) return $result; + $result = (IBool)M_Type.Type_subtype$e77633ea9a4ac6a5((IConstructor) $P0, (IConstructor) $P1); + if($result != null) return $result; + } + break; + case 902344: + if($isSubtypeOf($P0Type, M_Type.ADT_Symbol) && $isSubtypeOf($P1Type, M_Type.ADT_Symbol)){ + $result = (IBool)M_Type.Type_subtype$21c6b8b775030d1d((IConstructor) $P0, (IConstructor) $P1); + if($result != null) return $result; + $result = (IBool)M_Type.Type_subtype$98e19b11a09faf67((IConstructor) $P0, (IConstructor) $P1); + if($result != null) return $result; + } + break; + case -1322071552: + if($isSubtypeOf($P0Type, M_Type.ADT_Symbol) && $isSubtypeOf($P1Type, M_Type.ADT_Symbol)){ + $result = (IBool)M_Type.Type_subtype$0862159b9fa78cf9((IConstructor) $P0, (IConstructor) $P1); + if($result != null) return $result; + } + break; + case 26641768: + if($isSubtypeOf($P0Type, M_Type.ADT_Symbol) && $isSubtypeOf($P1Type, M_Type.ADT_Symbol)){ + $result = (IBool)M_Type.Type_subtype$ab363c241c416a71((IConstructor) $P0, (IConstructor) $P1); + if($result != null) return $result; + $result = (IBool)M_Type.Type_subtype$4de9a977591be6e5((IConstructor) $P0, (IConstructor) $P1); + if($result != null) return $result; + } + break; + case 778304: + if($isSubtypeOf($P0Type, M_Type.ADT_Symbol) && $isSubtypeOf($P1Type, M_Type.ADT_Symbol)){ + $result = (IBool)M_Type.Type_subtype$23f59dc1171dc69d((IConstructor) $P0, (IConstructor) $P1); + if($result != null) return $result; + } + break; + case 100948096: + if($isSubtypeOf($P0Type, M_Type.ADT_Symbol) && $isSubtypeOf($P1Type, M_Type.ADT_Symbol)){ + $result = (IBool)M_Type.Type_subtype$ddf53e134f4d5416((IConstructor) $P0, (IConstructor) $P1); + if($result != null) return $result; + } + break; + case 112955840: + if($isSubtypeOf($P0Type, M_Type.ADT_Symbol) && $isSubtypeOf($P1Type, M_Type.ADT_Symbol)){ + $result = (IBool)M_Type.Type_subtype$bc5943e83a6df899((IConstructor) $P0, (IConstructor) $P1); + if($result != null) return $result; + $result = (IBool)M_Type.Type_subtype$282ad33dd55efdcc((IConstructor) $P0, (IConstructor) $P1); + if($result != null) return $result; + } + break; + case 1542928: + if($isSubtypeOf($P0Type, M_Type.ADT_Symbol) && $isSubtypeOf($P1Type, M_Type.ADT_Symbol)){ + $result = (IBool)M_Type.Type_subtype$5f5250bbf1aff423((IConstructor) $P0, (IConstructor) $P1); + if($result != null) return $result; + $result = (IBool)M_Type.Type_subtype$15cedff9916fdbee((IConstructor) $P0, (IConstructor) $P1); + if($result != null) return $result; + } + break; + case 885800512: + if($isSubtypeOf($P0Type, M_Type.ADT_Symbol) && $isSubtypeOf($P1Type, M_Type.ADT_Symbol)){ + $result = (IBool)M_Type.Type_subtype$44422dfea95218a8((IConstructor) $P0, (IConstructor) $P1); + if($result != null) return $result; + } + break; + } + if($isSubtypeOf($P0Type, M_Type.ADT_Symbol) && $isSubtypeOf($P1Type, M_Type.ADT_Symbol)){ + $result = (IBool)M_Type.Type_subtype$cfecefb3bc3fa773((IConstructor) $P0, (IConstructor) $P1); + if($result != null) return $result; + $result = (IBool)M_Type.Type_subtype$53c4de769757bddc((IConstructor) $P0, (IConstructor) $P1); + if($result != null) return $result; + $result = (IBool)M_Type.Type_subtype$2750c116f0b05084((IConstructor) $P0, (IConstructor) $P1); + if($result != null) return $result; + $result = (IBool)M_Type.Type_subtype$39fbab80e9db10e1((IConstructor) $P0, (IConstructor) $P1); + if($result != null) return $result; + $result = (IBool)M_Type.Type_subtype$3eada106dbc66d2d((IConstructor) $P0, (IConstructor) $P1); + if($result != null) return $result; + $result = (IBool)M_Type.Type_subtype$30215aaed6c33fd7((IConstructor) $P0, (IConstructor) $P1); + if($result != null) return $result; + $result = (IBool)M_Type.Type_subtype$1b2387a35f10c1e0((IConstructor) $P0, (IConstructor) $P1); + if($result != null) return $result; + $result = (IBool)M_Type.Type_subtype$80633493313ebd18((IConstructor) $P0, (IConstructor) $P1); + if($result != null) return $result; + $result = (IBool)M_Type.Type_subtype$3aa09e73e41fcf84((IConstructor) $P0, (IConstructor) $P1); + if($result != null) return $result; + } + if($isSubtypeOf($P0Type,$T12) && $isSubtypeOf($P1Type,$T12)){ + $result = (IBool)M_Type.Type_subtype$e6962df5576407da((IList) $P0, (IList) $P1); + if($result != null) return $result; + } + if($isSubtypeOf($P0Type,$T7) && $isSubtypeOf($P1Type,$T2)){ + $result = (IBool)M_Type.Type_subtype$7b9c005ac35dd586((IConstructor) $P0, (IConstructor) $P1); + if($result != null) return $result; + } + if($isSubtypeOf($P0Type, M_Type.ADT_Symbol) && $isSubtypeOf($P1Type, M_Type.ADT_Symbol)){ + $result = (IBool)M_Type.Type_subtype$06d2c71d010480ef((IConstructor) $P0, (IConstructor) $P1); + if($result != null) return $result; + } + if($isSubtypeOf($P0Type,$T12) && $isSubtypeOf($P1Type,$T12)){ + $result = (IBool)M_Type.Type_subtype$812a7f34ff841fdb((IList) $P0, (IList) $P1); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0, $P1)); + } + public IConstructor associativity(IValue $P0, IValue $P1, IValue $P2){ // Generated by Resolver + IConstructor $result = null; + Type $P0Type = $P0.getType(); + Type $P1Type = $P1.getType(); + Type $P2Type = $P2.getType(); + if($isSubtypeOf($P0Type, M_Type.ADT_Symbol) && $isSubtypeOf($P1Type, ADT_Associativity) && $isSubtypeOf($P2Type,$T13)){ + $result = (IConstructor)ParseTree_associativity$95843a2f3959b22f((IConstructor) $P0, (IConstructor) $P1, (ISet) $P2); + if($result != null) return $result; + $result = (IConstructor)ParseTree_associativity$05ee42b13b7e96fb((IConstructor) $P0, (IConstructor) $P1, (ISet) $P2); + if($result != null) return $result; + $result = (IConstructor)ParseTree_associativity$9299e943b00366a7((IConstructor) $P0, (IConstructor) $P1, (ISet) $P2); + if($result != null) return $result; + return $RVF.constructor(Production_associativity_Symbol_Associativity_set_Production, new IValue[]{(IConstructor) $P0, (IConstructor) $P1, (ISet) $P2}); + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0, $P1, $P2)); + } + public IValue getOneFrom(IValue $P0){ // Generated by Resolver + return (IValue) M_List.getOneFrom($P0); + } + public IString unparse(IValue $P0){ // Generated by Resolver + IString $result = null; + Type $P0Type = $P0.getType(); + if($isSubtypeOf($P0Type, ADT_Tree)){ + $result = (IString)ParseTree_unparse$8685ce60c1159ea5((ITree) $P0); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0)); + } + public IMap removeFromBag(IValue $P0, IValue $P1, IValue $P2){ // Generated by Resolver + return (IMap) M_List.removeFromBag($P0, $P1, $P2); + } + public IMap removeFromBag(IValue $P0, IValue $P1){ // Generated by Resolver + return (IMap) M_List.removeFromBag($P0, $P1); + } + public ITuple split(IValue $P0){ // Generated by Resolver + return (ITuple) M_List.split($P0); + } + public IList push(IValue $P0, IValue $P1){ // Generated by Resolver + return (IList) M_List.push($P0, $P1); + } + public IBool noneLabeled(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.noneLabeled($P0); + } + public ISet permutationsBag(IValue $P0){ // Generated by Resolver + return (ISet) M_List.permutationsBag($P0); + } + public IList mix(IValue $P0, IValue $P1){ // Generated by Resolver + return (IList) M_List.mix($P0, $P1); + } + public IInteger mainMessageHandler(IValue $P0, java.util.Map $kwpActuals){ // Generated by Resolver + return (IInteger) M_Message.mainMessageHandler($P0, $kwpActuals); + } + public IBool isFunctionType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isFunctionType($P0); + } + public IValue glb(IValue $P0, IValue $P1){ // Generated by Resolver + return (IValue) M_Type.glb($P0, $P1); + } + public ITree firstAmbiguity(IValue $P0, IValue $P1){ // Generated by Resolver + ITree $result = null; + Type $P0Type = $P0.getType(); + Type $P1Type = $P1.getType(); + if($isSubtypeOf($P0Type,$T0) && $isSubtypeOf($P1Type,$T5)){ + $result = (ITree)ParseTree_firstAmbiguity$a49129037d5d17ba((IConstructor) $P0, (ISourceLocation) $P1); + if($result != null) return $result; + } + if($isSubtypeOf($P0Type,$T0) && $isSubtypeOf($P1Type,$T11)){ + $result = (ITree)ParseTree_firstAmbiguity$70a6c6fb84d56e8f((IConstructor) $P0, (IString) $P1); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0, $P1)); + } + public ISet toRel(IValue $P0){ // Generated by Resolver + return (ISet) M_List.toRel($P0); + } + public IValue sort(IValue $P0){ // Generated by Resolver + IValue $result = null; + Type $P0Type = $P0.getType(); + if($isSubtypeOf($P0Type,$T14)){ + $result = (IValue)M_List.List_sort$1fe4426c8c8039da((IList) $P0); + if($result != null) return $result; + } + if($isSubtypeOf($P0Type,$T11)){ + return $RVF.constructor(Symbol_sort_str, new IValue[]{(IString) $P0}); + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0)); + } + public IList sort(IValue $P0, IValue $P1){ // Generated by Resolver + return (IList) M_List.sort($P0, $P1); + } + public TypedFunctionInstance2 parser(IValue $P0, java.util.Map $kwpActuals){ // Generated by Resolver + TypedFunctionInstance2 $result = null; + Type $P0Type = $P0.getType(); + if($isSubtypeOf($P0Type,$T7)){ + $result = (TypedFunctionInstance2)ParseTree_parser$c4d258086f531875((IConstructor) $P0, $kwpActuals); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0)); + } + public IList dup(IValue $P0){ // Generated by Resolver + return (IList) M_List.dup($P0); + } + public IBool isIntType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isIntType($P0); + } + public IBool isDateTimeType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isDateTimeType($P0); + } + public IString write(IValue $P0, java.util.Map $kwpActuals){ // Generated by Resolver + return (IString) M_Message.write($P0, $kwpActuals); + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/ParseTree.rsc|(10584,63,<292,0>,<292,63>) + public IBool ParseTree_subtype$384d8d76f0c7a053(IConstructor $0, IConstructor $1){ + + + if($has_type_and_arity($0, Symbol_sort_str, 1)){ + IValue $arg0_2 = (IValue)($aadt_subscript_int(((IConstructor)$0),0)); + if($isComparable($arg0_2.getType(), $T3)){ + if($has_type_and_arity($1, M_Type.Symbol_adt_str_list_Symbol, 2)){ + IValue $arg0_1 = (IValue)($aadt_subscript_int(((IConstructor)$1),0)); + if($isComparable($arg0_1.getType(), $T11)){ + if(((IString)$constants.get(0)/*"Tree"*/).equals($arg0_1)){ + IValue $arg1_0 = (IValue)($aadt_subscript_int(((IConstructor)$1),1)); + if($isComparable($arg1_0.getType(), $T3)){ + return ((IBool)$constants.get(1)/*true*/); + + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/ParseTree.rsc|(11322,165,<315,0>,<317,22>) + public IConstructor ParseTree_priority$ee30aba6f6d82e37(IConstructor s_0, IList $1){ + + + /*muExists*/priority: + do { + final IList $subject3 = ((IList)$1); + int $subject3_cursor = 0; + if($isSubtypeOf($subject3.getType(),$T1)){ + final int $subject3_len = (int)((IList)($subject3)).length(); + if($subject3_len >= 1){ + final int $a_18_start = (int)$subject3_cursor; + priority_LIST_MVARa: + + for(int $a_18_len = 0; $a_18_len <= $subject3_len - $a_18_start - 1; $a_18_len += 1){ + IList a_1 = ((IList)($subject3.sublist($a_18_start, $a_18_len))); + $subject3_cursor = $a_18_start + $a_18_len; + final IConstructor $subject5 = ((IConstructor)($alist_subscript_int(((IList)($subject3)),$subject3_cursor))); + if($has_type_and_arity($subject5, Production_priority_Symbol_list_Production, 2)){ + IValue $arg0_7 = (IValue)($aadt_subscript_int(((IConstructor)($subject5)),0)); + if($isComparable($arg0_7.getType(), M_Type.ADT_Symbol)){ + IValue $arg1_6 = (IValue)($aadt_subscript_int(((IConstructor)($subject5)),1)); + if($isComparable($arg1_6.getType(), $T1)){ + if(true){ + IList b_2 = null; + $subject3_cursor += 1; + final int $c_34_start = (int)$subject3_cursor; + priority_LIST_MVARa_CONS_priority_MVARc: + + for(int $c_34_len = 0; $c_34_len <= $subject3_len - $c_34_start - 0; $c_34_len += 1){ + IList c_3 = ((IList)($subject3.sublist($c_34_start, $c_34_len))); + $subject3_cursor = $c_34_start + $c_34_len; + if($subject3_cursor == $subject3_len){ + return ((IConstructor)($me.priority(((IConstructor)s_0), ((IList)($alist_add_alist(((IList)($alist_add_alist(((IList)a_1),((IList)($arg1_6))))),((IList)c_3))))))); + + } else { + continue priority_LIST_MVARa_CONS_priority_MVARc;/*list match1*/ + } + } + continue priority_LIST_MVARa;/*computeFail*/ + + } else { + continue priority_LIST_MVARa;/*computeFail*/ + } + } else { + continue priority_LIST_MVARa;/*computeFail*/ + } + } else { + continue priority_LIST_MVARa;/*computeFail*/ + } + } else { + continue priority_LIST_MVARa;/*computeFail*/ + } + } + return null; + + } else { + return null; + } + } else { + return null; + } + } while(false); + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/ParseTree.rsc|(11493,384,<320,0>,<327,30>) + public IConstructor ParseTree_associativity$95843a2f3959b22f(IConstructor s_0, IConstructor as_1, ISet $2){ + + + /*muExists*/associativity: + do { + ISet $subject9 = (ISet)($2); + associativity_SET_MVARa: + for(IValue $elem17_for : new SubSetGenerator(((ISet)($subject9)))){ + ISet $elem17 = (ISet) $elem17_for; + ISet a_2 = ((ISet)($elem17)); + final ISet $subject11 = ((ISet)(((ISet)($subject9)).subtract(((ISet)($elem17))))); + associativity_SET_MVARa_CONS_choice$_DFLT_SET_ELM14: + for(IValue $elem13_for : ((ISet)($subject11))){ + IConstructor $elem13 = (IConstructor) $elem13_for; + if($has_type_and_arity($elem13, M_Type.Production_choice_Symbol_set_Production, 2)){ + IValue $arg0_16 = (IValue)($aadt_subscript_int(((IConstructor)($elem13)),0)); + if($isComparable($arg0_16.getType(), M_Type.ADT_Symbol)){ + if(true){ + IConstructor t_3 = null; + IValue $arg1_15 = (IValue)($aadt_subscript_int(((IConstructor)($elem13)),1)); + if($isComparable($arg1_15.getType(), $T13)){ + if(true){ + ISet b_4 = null; + final ISet $subject12 = ((ISet)(((ISet)($subject11)).delete(((IConstructor)($elem13))))); + if(((ISet)($subject12)).size() == 0){ + return ((IConstructor)($me.associativity(((IConstructor)s_0), ((IConstructor)as_1), ((ISet)($aset_add_aset(((ISet)a_2),((ISet)($arg1_15)))))))); + + } else { + continue associativity_SET_MVARa_CONS_choice$_DFLT_SET_ELM14;/*redirected associativity_SET_MVARa_CONS_choice to associativity_SET_MVARa_CONS_choice$_DFLT_SET_ELM14; set pat3*/ + } + } else { + continue associativity_SET_MVARa_CONS_choice$_DFLT_SET_ELM14;/*default set elem*/ + } + } else { + continue associativity_SET_MVARa_CONS_choice$_DFLT_SET_ELM14;/*default set elem*/ + } + } else { + continue associativity_SET_MVARa_CONS_choice$_DFLT_SET_ELM14;/*default set elem*/ + } + } else { + continue associativity_SET_MVARa_CONS_choice$_DFLT_SET_ELM14;/*default set elem*/ + } + } else { + continue associativity_SET_MVARa_CONS_choice$_DFLT_SET_ELM14;/*default set elem*/ + } + } + continue associativity_SET_MVARa;/*set pat4*/ + + } + return null; + + } while(false); + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/ParseTree.rsc|(11892,174,<329,0>,<330,39>) + public IConstructor ParseTree_associativity$05ee42b13b7e96fb(IConstructor rhs_0, IConstructor a_1, ISet $2){ + + + /*muExists*/associativity: + do { + ISet $subject18 = (ISet)($2); + associativity_SET_CONS_associativity$_DFLT_SET_ELM24: + for(IValue $elem23_for : ((ISet)($subject18))){ + IConstructor $elem23 = (IConstructor) $elem23_for; + if($has_type_and_arity($elem23, Production_associativity_Symbol_Associativity_set_Production, 3)){ + IValue $arg0_27 = (IValue)($aadt_subscript_int(((IConstructor)($elem23)),0)); + if($isComparable($arg0_27.getType(), M_Type.ADT_Symbol)){ + if((rhs_0 != null)){ + if(rhs_0.match($arg0_27)){ + IValue $arg1_26 = (IValue)($aadt_subscript_int(((IConstructor)($elem23)),1)); + if($isComparable($arg1_26.getType(), ADT_Associativity)){ + if(true){ + IConstructor b_2 = null; + IValue $arg2_25 = (IValue)($aadt_subscript_int(((IConstructor)($elem23)),2)); + if($isComparable($arg2_25.getType(), $T13)){ + if(true){ + ISet alts_3 = null; + final ISet $subject20 = ((ISet)(((ISet)($subject18)).delete(((IConstructor)($elem23))))); + associativity_SET_CONS_associativity_MVARrest: + for(IValue $elem22_for : new SubSetGenerator(((ISet)($subject20)))){ + ISet $elem22 = (ISet) $elem22_for; + ISet rest_4 = ((ISet)($elem22)); + final ISet $subject21 = ((ISet)(((ISet)($subject20)).subtract(((ISet)($elem22))))); + if(((ISet)($subject21)).size() == 0){ + return ((IConstructor)($me.associativity(((IConstructor)($arg0_27)), ((IConstructor)a_1), ((ISet)($aset_add_aset(((ISet)rest_4),((ISet)($arg2_25)))))))); + + } else { + continue associativity_SET_CONS_associativity_MVARrest;/*set pat3*/ + } + } + continue associativity_SET_CONS_associativity$_DFLT_SET_ELM24;/*redirected associativity_SET_CONS_associativity to associativity_SET_CONS_associativity$_DFLT_SET_ELM24; set pat4*/ + + } else { + continue associativity_SET_CONS_associativity$_DFLT_SET_ELM24;/*default set elem*/ + } + } else { + continue associativity_SET_CONS_associativity$_DFLT_SET_ELM24;/*default set elem*/ + } + } else { + continue associativity_SET_CONS_associativity$_DFLT_SET_ELM24;/*default set elem*/ + } + } else { + continue associativity_SET_CONS_associativity$_DFLT_SET_ELM24;/*default set elem*/ + } + } else { + continue associativity_SET_CONS_associativity$_DFLT_SET_ELM24;/*default set elem*/ + } + } else { + rhs_0 = ((IConstructor)($arg0_27)); + IValue $arg1_26 = (IValue)($aadt_subscript_int(((IConstructor)($elem23)),1)); + if($isComparable($arg1_26.getType(), ADT_Associativity)){ + if(true){ + IConstructor b_2 = null; + IValue $arg2_25 = (IValue)($aadt_subscript_int(((IConstructor)($elem23)),2)); + if($isComparable($arg2_25.getType(), $T13)){ + if(true){ + ISet alts_3 = null; + final ISet $subject20 = ((ISet)(((ISet)($subject18)).delete(((IConstructor)($elem23))))); + associativity_SET_CONS_associativity_MVARrest: + for(IValue $elem22_for : new SubSetGenerator(((ISet)($subject20)))){ + ISet $elem22 = (ISet) $elem22_for; + ISet rest_4 = ((ISet)($elem22)); + final ISet $subject21 = ((ISet)(((ISet)($subject20)).subtract(((ISet)($elem22))))); + if(((ISet)($subject21)).size() == 0){ + return ((IConstructor)($me.associativity(((IConstructor)($arg0_27)), ((IConstructor)a_1), ((ISet)($aset_add_aset(((ISet)rest_4),((ISet)($arg2_25)))))))); + + } else { + continue associativity_SET_CONS_associativity_MVARrest;/*set pat3*/ + } + } + continue associativity_SET_CONS_associativity$_DFLT_SET_ELM24;/*redirected associativity_SET_CONS_associativity to associativity_SET_CONS_associativity$_DFLT_SET_ELM24; set pat4*/ + + } else { + continue associativity_SET_CONS_associativity$_DFLT_SET_ELM24;/*default set elem*/ + } + } else { + continue associativity_SET_CONS_associativity$_DFLT_SET_ELM24;/*default set elem*/ + } + } else { + continue associativity_SET_CONS_associativity$_DFLT_SET_ELM24;/*default set elem*/ + } + } else { + continue associativity_SET_CONS_associativity$_DFLT_SET_ELM24;/*default set elem*/ + } + } + } else { + continue associativity_SET_CONS_associativity$_DFLT_SET_ELM24;/*default set elem*/ + } + } else { + continue associativity_SET_CONS_associativity$_DFLT_SET_ELM24;/*default set elem*/ + } + } + return null; + + } while(false); + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/ParseTree.rsc|(12128,146,<332,0>,<333,35>) + public IConstructor ParseTree_associativity$9299e943b00366a7(IConstructor s_0, IConstructor as_1, ISet $2){ + + + /*muExists*/associativity: + do { + ISet $subject29 = (ISet)($2); + associativity_SET_MVARa: + for(IValue $elem37_for : new SubSetGenerator(((ISet)($subject29)))){ + ISet $elem37 = (ISet) $elem37_for; + ISet a_2 = ((ISet)($elem37)); + final ISet $subject31 = ((ISet)(((ISet)($subject29)).subtract(((ISet)($elem37))))); + associativity_SET_MVARa_CONS_priority$_DFLT_SET_ELM34: + for(IValue $elem33_for : ((ISet)($subject31))){ + IConstructor $elem33 = (IConstructor) $elem33_for; + if($has_type_and_arity($elem33, Production_priority_Symbol_list_Production, 2)){ + IValue $arg0_36 = (IValue)($aadt_subscript_int(((IConstructor)($elem33)),0)); + if($isComparable($arg0_36.getType(), M_Type.ADT_Symbol)){ + if(true){ + IConstructor t_3 = null; + IValue $arg1_35 = (IValue)($aadt_subscript_int(((IConstructor)($elem33)),1)); + if($isComparable($arg1_35.getType(), $T1)){ + if(true){ + IList b_4 = null; + final ISet $subject32 = ((ISet)(((ISet)($subject31)).delete(((IConstructor)($elem33))))); + if(((ISet)($subject32)).size() == 0){ + final ISetWriter $writer28 = (ISetWriter)$RVF.setWriter(); + ; + $setwriter_splice($writer28,a_2); + $setwriter_splice($writer28,$arg1_35); + return ((IConstructor)($me.associativity(((IConstructor)s_0), ((IConstructor)as_1), ((ISet)($writer28.done()))))); + + } else { + continue associativity_SET_MVARa_CONS_priority$_DFLT_SET_ELM34;/*redirected associativity_SET_MVARa_CONS_priority to associativity_SET_MVARa_CONS_priority$_DFLT_SET_ELM34; set pat3*/ + } + } else { + continue associativity_SET_MVARa_CONS_priority$_DFLT_SET_ELM34;/*default set elem*/ + } + } else { + continue associativity_SET_MVARa_CONS_priority$_DFLT_SET_ELM34;/*default set elem*/ + } + } else { + continue associativity_SET_MVARa_CONS_priority$_DFLT_SET_ELM34;/*default set elem*/ + } + } else { + continue associativity_SET_MVARa_CONS_priority$_DFLT_SET_ELM34;/*default set elem*/ + } + } else { + continue associativity_SET_MVARa_CONS_priority$_DFLT_SET_ELM34;/*default set elem*/ + } + } + continue associativity_SET_MVARa;/*set pat4*/ + + } + return null; + + } while(false); + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/ParseTree.rsc|(12370,5387,<340,0>,<415,251>) + public ITree ParseTree_parse$4d2afd5837b53c80(IConstructor begin_0, IString input_1, java.util.Map $kwpActuals){ + + java.util.Map $kwpDefaults = $kwpDefaults_ParseTree_parse$4d2afd5837b53c80; + + HashMap $typeBindings = new HashMap<>(); + if($T9.match(begin_0.getType(), $typeBindings)){ + final ITree $result38 = ((ITree)(((TypedFunctionInstance2)$me.parser(((IConstructor)begin_0), Util.kwpMapExtend(Util.kwpMapRemoveRedeclared($kwpActuals, "allowAmbiguity", "maxAmbDepth", "allowRecovery", "maxRecoveryAttempts", "maxRecoveryTokens", "hasSideEffects", "filters"), "allowAmbiguity", ((IBool) ($kwpActuals.containsKey("allowAmbiguity") ? $kwpActuals.get("allowAmbiguity") : $kwpDefaults.get("allowAmbiguity"))), "maxAmbDepth", ((IInteger) ($kwpActuals.containsKey("maxAmbDepth") ? $kwpActuals.get("maxAmbDepth") : $kwpDefaults.get("maxAmbDepth"))), "allowRecovery", ((IBool) ($kwpActuals.containsKey("allowRecovery") ? $kwpActuals.get("allowRecovery") : $kwpDefaults.get("allowRecovery"))), "maxRecoveryAttempts", ((IInteger) ($kwpActuals.containsKey("maxRecoveryAttempts") ? $kwpActuals.get("maxRecoveryAttempts") : $kwpDefaults.get("maxRecoveryAttempts"))), "maxRecoveryTokens", ((IInteger) ($kwpActuals.containsKey("maxRecoveryTokens") ? $kwpActuals.get("maxRecoveryTokens") : $kwpDefaults.get("maxRecoveryTokens"))), "hasSideEffects", ((IBool) ($kwpActuals.containsKey("hasSideEffects") ? $kwpActuals.get("hasSideEffects") : $kwpDefaults.get("hasSideEffects"))), "filters", ((ISet) ($kwpActuals.containsKey("filters") ? $kwpActuals.get("filters") : $kwpDefaults.get("filters")))))).typedCall(((IValue)input_1), ((ISourceLocation)($create_aloc(((IString)$constants.get(7)/*"unknown:///"*/))))))); + if($T15.instantiate($typeBindings) != $TF.voidType() && $isSubtypeOf($result38.getType(),$T15)){ + return ((ITree)($result38)); + + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/ParseTree.rsc|(17759,484,<417,0>,<418,244>) + public ITree ParseTree_parse$696136d9f024501e(IConstructor begin_0, IString input_1, ISourceLocation origin_2, java.util.Map $kwpActuals){ + + java.util.Map $kwpDefaults = $kwpDefaults_ParseTree_parse$696136d9f024501e; + + HashMap $typeBindings = new HashMap<>(); + if($T9.match(begin_0.getType(), $typeBindings)){ + final ITree $result39 = ((ITree)(((TypedFunctionInstance2)$me.parser(((IConstructor)begin_0), Util.kwpMapExtend(Util.kwpMapRemoveRedeclared($kwpActuals, "allowAmbiguity", "maxAmbDepth", "allowRecovery", "maxRecoveryAttempts", "maxRecoveryTokens", "hasSideEffects", "filters"), "allowAmbiguity", ((IBool) ($kwpActuals.containsKey("allowAmbiguity") ? $kwpActuals.get("allowAmbiguity") : $kwpDefaults.get("allowAmbiguity"))), "maxAmbDepth", ((IInteger) ($kwpActuals.containsKey("maxAmbDepth") ? $kwpActuals.get("maxAmbDepth") : $kwpDefaults.get("maxAmbDepth"))), "allowRecovery", ((IBool) ($kwpActuals.containsKey("allowRecovery") ? $kwpActuals.get("allowRecovery") : $kwpDefaults.get("allowRecovery"))), "maxRecoveryAttempts", ((IInteger) ($kwpActuals.containsKey("maxRecoveryAttempts") ? $kwpActuals.get("maxRecoveryAttempts") : $kwpDefaults.get("maxRecoveryAttempts"))), "maxRecoveryTokens", ((IInteger) ($kwpActuals.containsKey("maxRecoveryTokens") ? $kwpActuals.get("maxRecoveryTokens") : $kwpDefaults.get("maxRecoveryTokens"))), "hasSideEffects", ((IBool) ($kwpActuals.containsKey("hasSideEffects") ? $kwpActuals.get("hasSideEffects") : $kwpDefaults.get("hasSideEffects"))), "filters", ((ISet) ($kwpActuals.containsKey("filters") ? $kwpActuals.get("filters") : $kwpDefaults.get("filters")))))).typedCall(((IValue)input_1), ((ISourceLocation)origin_2)))); + if($T15.instantiate($typeBindings) != $TF.voidType() && $isSubtypeOf($result39.getType(),$T15)){ + return ((ITree)($result39)); + + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/ParseTree.rsc|(18247,471,<420,0>,<421,243>) + public ITree ParseTree_parse$55b9e584aedc91f7(IConstructor begin_0, ISourceLocation input_1, java.util.Map $kwpActuals){ + + java.util.Map $kwpDefaults = $kwpDefaults_ParseTree_parse$55b9e584aedc91f7; + + HashMap $typeBindings = new HashMap<>(); + if($T9.match(begin_0.getType(), $typeBindings)){ + final ITree $result40 = ((ITree)(((TypedFunctionInstance2)$me.parser(((IConstructor)begin_0), Util.kwpMapExtend(Util.kwpMapRemoveRedeclared($kwpActuals, "allowAmbiguity", "maxAmbDepth", "allowRecovery", "maxRecoveryAttempts", "maxRecoveryTokens", "hasSideEffects", "filters"), "allowAmbiguity", ((IBool) ($kwpActuals.containsKey("allowAmbiguity") ? $kwpActuals.get("allowAmbiguity") : $kwpDefaults.get("allowAmbiguity"))), "maxAmbDepth", ((IInteger) ($kwpActuals.containsKey("maxAmbDepth") ? $kwpActuals.get("maxAmbDepth") : $kwpDefaults.get("maxAmbDepth"))), "allowRecovery", ((IBool) ($kwpActuals.containsKey("allowRecovery") ? $kwpActuals.get("allowRecovery") : $kwpDefaults.get("allowRecovery"))), "maxRecoveryAttempts", ((IInteger) ($kwpActuals.containsKey("maxRecoveryAttempts") ? $kwpActuals.get("maxRecoveryAttempts") : $kwpDefaults.get("maxRecoveryAttempts"))), "maxRecoveryTokens", ((IInteger) ($kwpActuals.containsKey("maxRecoveryTokens") ? $kwpActuals.get("maxRecoveryTokens") : $kwpDefaults.get("maxRecoveryTokens"))), "hasSideEffects", ((IBool) ($kwpActuals.containsKey("hasSideEffects") ? $kwpActuals.get("hasSideEffects") : $kwpDefaults.get("hasSideEffects"))), "filters", ((ISet) ($kwpActuals.containsKey("filters") ? $kwpActuals.get("filters") : $kwpDefaults.get("filters")))))).typedCall(((IValue)input_1), ((ISourceLocation)input_1)))); + if($T15.instantiate($typeBindings) != $TF.voidType() && $isSubtypeOf($result40.getType(),$T15)){ + return ((ITree)($result40)); + + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/ParseTree.rsc|(18721,3103,<424,0>,<455,239>) + public TypedFunctionInstance2 ParseTree_parser$c4d258086f531875(IConstructor grammar_0, java.util.Map $kwpActuals){ + + java.util.Map $kwpDefaults = $kwpDefaults_ParseTree_parser$c4d258086f531875; + + HashMap $typeBindings = new HashMap<>(); + if($T7.match(grammar_0.getType(), $typeBindings)){ + final TypedFunctionInstance2 $result41 = ((TypedFunctionInstance2)((TypedFunctionInstance2)$Prelude.parser(grammar_0, (IBool)($kwpActuals.containsKey("allowAmbiguity") ? $kwpActuals.get("allowAmbiguity") : $kwpDefaults.get("allowAmbiguity")), (IInteger)($kwpActuals.containsKey("maxAmbDepth") ? $kwpActuals.get("maxAmbDepth") : $kwpDefaults.get("maxAmbDepth")), (IBool)($kwpActuals.containsKey("allowRecovery") ? $kwpActuals.get("allowRecovery") : $kwpDefaults.get("allowRecovery")), (IInteger)($kwpActuals.containsKey("maxRecoveryAttempts") ? $kwpActuals.get("maxRecoveryAttempts") : $kwpDefaults.get("maxRecoveryAttempts")), (IInteger)($kwpActuals.containsKey("maxRecoveryTokens") ? $kwpActuals.get("maxRecoveryTokens") : $kwpDefaults.get("maxRecoveryTokens")), (IBool)($kwpActuals.containsKey("hasSideEffects") ? $kwpActuals.get("hasSideEffects") : $kwpDefaults.get("hasSideEffects")), (ISet)($kwpActuals.containsKey("filters") ? $kwpActuals.get("filters") : $kwpDefaults.get("filters"))))); + if($T38.instantiate($typeBindings) != $TF.voidType() && $isSubtypeOf($result41.getType(),$T38)){ + return ((TypedFunctionInstance2)($result41)); + + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/ParseTree.rsc|(21827,860,<457,0>,<468,132>) + public TypedFunctionInstance2 ParseTree_firstAmbiguityFinder$4c88e56e1de6a5c6(IConstructor grammar_0, java.util.Map $kwpActuals){ + + java.util.Map $kwpDefaults = $kwpDefaults_ParseTree_firstAmbiguityFinder$4c88e56e1de6a5c6; + + return ((TypedFunctionInstance2)((TypedFunctionInstance2)$Prelude.firstAmbiguityFinder(grammar_0, (IBool)($kwpActuals.containsKey("hasSideEffects") ? $kwpActuals.get("hasSideEffects") : $kwpDefaults.get("hasSideEffects")), (ISet)($kwpActuals.containsKey("filters") ? $kwpActuals.get("filters") : $kwpDefaults.get("filters"))))); + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/ParseTree.rsc|(22690,699,<470,0>,<476,263>) + public TypedFunctionInstance3 ParseTree_parsers$43e4839e939e0971(IConstructor grammar_0, java.util.Map $kwpActuals){ + + java.util.Map $kwpDefaults = $kwpDefaults_ParseTree_parsers$43e4839e939e0971; + + HashMap $typeBindings = new HashMap<>(); + if($T7.match(grammar_0.getType(), $typeBindings)){ + final TypedFunctionInstance3 $result42 = ((TypedFunctionInstance3)((TypedFunctionInstance3)$Prelude.parsers(grammar_0, (IBool)($kwpActuals.containsKey("allowAmbiguity") ? $kwpActuals.get("allowAmbiguity") : $kwpDefaults.get("allowAmbiguity")), (IInteger)($kwpActuals.containsKey("maxAmbDepth") ? $kwpActuals.get("maxAmbDepth") : $kwpDefaults.get("maxAmbDepth")), (IBool)($kwpActuals.containsKey("allowRecovery") ? $kwpActuals.get("allowRecovery") : $kwpDefaults.get("allowRecovery")), (IInteger)($kwpActuals.containsKey("maxRecoveryAttempts") ? $kwpActuals.get("maxRecoveryAttempts") : $kwpDefaults.get("maxRecoveryAttempts")), (IInteger)($kwpActuals.containsKey("maxRecoveryTokens") ? $kwpActuals.get("maxRecoveryTokens") : $kwpDefaults.get("maxRecoveryTokens")), (IBool)($kwpActuals.containsKey("hasSideEffects") ? $kwpActuals.get("hasSideEffects") : $kwpDefaults.get("hasSideEffects")), (ISet)($kwpActuals.containsKey("filters") ? $kwpActuals.get("filters") : $kwpDefaults.get("filters"))))); + if($T42.instantiate($typeBindings) != $TF.voidType() && $isSubtypeOf($result42.getType(),$T42)){ + return ((TypedFunctionInstance3)($result42)); + + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/ParseTree.rsc|(23392,886,<478,0>,<489,158>) + public TypedFunctionInstance3 ParseTree_firstAmbiguityFinders$4e066d437479bb46(IConstructor grammar_0, java.util.Map $kwpActuals){ + + java.util.Map $kwpDefaults = $kwpDefaults_ParseTree_firstAmbiguityFinders$4e066d437479bb46; + + return ((TypedFunctionInstance3)((TypedFunctionInstance3)$Prelude.firstAmbiguityFinders(grammar_0, (IBool)($kwpActuals.containsKey("hasSideEffects") ? $kwpActuals.get("hasSideEffects") : $kwpDefaults.get("hasSideEffects")), (ISet)($kwpActuals.containsKey("filters") ? $kwpActuals.get("filters") : $kwpDefaults.get("filters"))))); + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/ParseTree.rsc|(24281,617,<491,0>,<500,54>) + public ITree ParseTree_firstAmbiguity$70a6c6fb84d56e8f(IConstructor begin_0, IString input_1){ + + + return ((ITree)(((TypedFunctionInstance2)$me.firstAmbiguityFinder(((IConstructor)begin_0), Util.kwpMap())).typedCall(((IValue)input_1), ((ISourceLocation)($create_aloc(((IString)$constants.get(7)/*"unknown:///"*/))))))); + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/ParseTree.rsc|(24900,95,<502,0>,<503,46>) + public ITree ParseTree_firstAmbiguity$a49129037d5d17ba(IConstructor begin_0, ISourceLocation input_1){ + + + return ((ITree)(((TypedFunctionInstance2)$me.firstAmbiguityFinder(((IConstructor)begin_0), Util.kwpMap())).typedCall(((IValue)input_1), ((ISourceLocation)input_1)))); + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/ParseTree.rsc|(24997,1076,<505,0>,<526,61>) + public void ParseTree_storeParsers$e7c8ce1688fd48e5(IConstructor grammar_0, ISourceLocation saveLocation_1){ + + + $Prelude.storeParsers(grammar_0, saveLocation_1); + return; + + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/ParseTree.rsc|(26075,1593,<528,0>,<567,266>) + public TypedFunctionInstance3 ParseTree_loadParsers$12936d804ae9b4a7(ISourceLocation savedParsers_0, java.util.Map $kwpActuals){ + + java.util.Map $kwpDefaults = $kwpDefaults_ParseTree_loadParsers$12936d804ae9b4a7; + + HashMap $typeBindings = new HashMap<>(); + final TypedFunctionInstance3 $result43 = ((TypedFunctionInstance3)((TypedFunctionInstance3)$Prelude.loadParsers(savedParsers_0, (IBool)($kwpActuals.containsKey("allowAmbiguity") ? $kwpActuals.get("allowAmbiguity") : $kwpDefaults.get("allowAmbiguity")), (IInteger)($kwpActuals.containsKey("maxAmbDepth") ? $kwpActuals.get("maxAmbDepth") : $kwpDefaults.get("maxAmbDepth")), (IBool)($kwpActuals.containsKey("allowRecovery") ? $kwpActuals.get("allowRecovery") : $kwpDefaults.get("allowRecovery")), (IInteger)($kwpActuals.containsKey("maxRecoveryAttempts") ? $kwpActuals.get("maxRecoveryAttempts") : $kwpDefaults.get("maxRecoveryAttempts")), (IInteger)($kwpActuals.containsKey("maxRecoveryTokens") ? $kwpActuals.get("maxRecoveryTokens") : $kwpDefaults.get("maxRecoveryTokens")), (IBool)($kwpActuals.containsKey("hasSideEffects") ? $kwpActuals.get("hasSideEffects") : $kwpDefaults.get("hasSideEffects")), (ISet)($kwpActuals.containsKey("filters") ? $kwpActuals.get("filters") : $kwpDefaults.get("filters"))))); + if($T42.instantiate($typeBindings) != $TF.voidType() && $isSubtypeOf($result43.getType(),$T42)){ + return ((TypedFunctionInstance3)($result43)); + + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/ParseTree.rsc|(27670,555,<569,0>,<575,265>) + public TypedFunctionInstance2 ParseTree_loadParser$a320f401f0ea0902(IConstructor nonterminal_0, ISourceLocation savedParsers_1, java.util.Map $kwpActuals){ + + java.util.Map $kwpDefaults = $kwpDefaults_ParseTree_loadParser$a320f401f0ea0902; + + HashMap $typeBindings = new HashMap<>(); + if($T2.match(nonterminal_0.getType(), $typeBindings)){ + final TypedFunctionInstance2 $result44 = ((TypedFunctionInstance2)((TypedFunctionInstance2)$Prelude.loadParser(nonterminal_0, savedParsers_1, (IBool)($kwpActuals.containsKey("allowAmbiguity") ? $kwpActuals.get("allowAmbiguity") : $kwpDefaults.get("allowAmbiguity")), (IInteger)($kwpActuals.containsKey("maxAmbDepth") ? $kwpActuals.get("maxAmbDepth") : $kwpDefaults.get("maxAmbDepth")), (IBool)($kwpActuals.containsKey("allowRecovery") ? $kwpActuals.get("allowRecovery") : $kwpDefaults.get("allowRecovery")), (IInteger)($kwpActuals.containsKey("maxRecoveryAttempts") ? $kwpActuals.get("maxRecoveryAttempts") : $kwpDefaults.get("maxRecoveryAttempts")), (IInteger)($kwpActuals.containsKey("maxRecoveryTokens") ? $kwpActuals.get("maxRecoveryTokens") : $kwpDefaults.get("maxRecoveryTokens")), (IBool)($kwpActuals.containsKey("hasSideEffects") ? $kwpActuals.get("hasSideEffects") : $kwpDefaults.get("hasSideEffects")), (ISet)($kwpActuals.containsKey("filters") ? $kwpActuals.get("filters") : $kwpDefaults.get("filters"))))); + if($T45.instantiate($typeBindings) != $TF.voidType() && $isSubtypeOf($result44.getType(),$T45)){ + return ((TypedFunctionInstance2)($result44)); + + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/ParseTree.rsc|(28227,581,<577,0>,<596,34>) + public IString ParseTree_unparse$8685ce60c1159ea5(ITree tree_0){ + + + final Template $template45 = (Template)new Template($RVF, ""); + $template45.addVal(tree_0); + return ((IString)($template45.close())); + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/ParseTree.rsc|(28810,92,<598,0>,<599,50>) + public IString ParseTree_printSymbol$4ce577b2a14fc038(IConstructor sym_0, IBool withLayout_1){ + + + return ((IString)((IString)$Prelude.printSymbol(sym_0, withLayout_1))); + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/ParseTree.rsc|(28904,4953,<601,0>,<721,53>) + public IValue ParseTree_implode$13172869ec254a12(IConstructor t_0, ITree tree_1){ + + + HashMap $typeBindings = new HashMap<>(); + if($T7.match(t_0.getType(), $typeBindings)){ + final IValue $result46 = ((IValue)((IValue)$Prelude.implode(t_0, tree_1))); + if($T39.instantiate($typeBindings) != $TF.voidType() && $isSubtypeOf($result46.getType(),$T39)){ + return ((IValue)($result46)); + + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/ParseTree.rsc|(34837,494,<760,0>,<775,1>) + public IConstructor ParseTree_treeAt$d353ab20d6109b21(IConstructor t_0, ISourceLocation l_1, ITree a_2){ + + + HashMap $typeBindings = new HashMap<>(); + if($T9.match(t_0.getType(), $typeBindings)){ + if(true){ + if(true){ + if($has_type_and_arity(a_2, Tree_appl_Production_list_Tree, 2)){ + IValue $arg0_53 = (IValue)($aadt_subscript_int(((ITree)a_2),0)); + if($isComparable($arg0_53.getType(), $T3)){ + IValue $arg1_52 = (IValue)($aadt_subscript_int(((ITree)a_2),1)); + if($isComparable($arg1_52.getType(), $T3)){ + if($is_defined_value($guarded_annotation_get(((INode)a_2),"src"))){ + final ISourceLocation $subject_val50 = ((ISourceLocation)($annotation_get(((INode)a_2),"src"))); + ISourceLocation al_3 = null; + if((((IBool)($aint_lessequal_aint(((IInteger)(((IInteger)($aloc_get_field(((ISourceLocation)($subject_val50)), "offset"))))),((IInteger)(((IInteger)($aloc_get_field(((ISourceLocation)l_1), "offset"))))))))).getValue()){ + if((((IBool)($aint_less_aint(((IInteger)($aint_add_aint(((IInteger)(((IInteger)($aloc_get_field(((ISourceLocation)($subject_val50)), "offset"))))),((IInteger)(((IInteger)($aloc_get_field(((ISourceLocation)($subject_val50)), "length")))))))),((IInteger)($aint_add_aint(((IInteger)(((IInteger)($aloc_get_field(((ISourceLocation)l_1), "offset"))))),((IInteger)(((IInteger)($aloc_get_field(((ISourceLocation)l_1), "length"))))))))).not()))).getValue()){ + /*muExists*/FOR1: + do { + FOR1_GEN35134: + for(IValue $elem49_for : ((IList)(((IList)($aadt_get_field(((IConstructor)a_2), "args")))))){ + ITree $elem49 = (ITree) $elem49_for; + ITree arg_4 = null; + final IConstructor $subject_val47 = ((IConstructor)($me.treeAt(((IConstructor)t_0), ((ISourceLocation)l_1), ((ITree)($elem49))))); + if($has_type_and_arity($subject_val47, TreeSearchResult_1_treeFound_, 1)){ + IValue $arg0_48 = (IValue)($aadt_subscript_int(((IConstructor)($subject_val47)),0)); + if($isComparable($arg0_48.getType(), $T15)){ + if($isSubtypeOf($arg0_48.getType(),$T15.instantiate($typeBindings))){ + IConstructor r_5 = ((IConstructor)($subject_val47)); + final IConstructor $result51 = ((IConstructor)r_5); + if(ADT_TreeSearchResult_1.instantiate($typeBindings) != $TF.voidType() && $isSubtypeOf($result51.getType(),ADT_TreeSearchResult_1)){ + return ((IConstructor)($result51)); + + } else { + return null; + } + } else { + continue FOR1_GEN35134; + } + } else { + continue FOR1_GEN35134; + } + } else { + continue FOR1_GEN35134; + } + } + continue FOR1; + + } while(false); + /* void: muCon([]) */if($isSubtypeOf(a_2.getType(),$T15.instantiate($typeBindings))){ + ITree tree_6 = null; + final IConstructor $result51 = ((IConstructor)($RVF.constructor(TreeSearchResult_1_treeFound_, new IValue[]{((ITree)a_2)}))); + if(ADT_TreeSearchResult_1.instantiate($typeBindings) != $TF.voidType() && $isSubtypeOf($result51.getType(),ADT_TreeSearchResult_1)){ + return ((IConstructor)($result51)); + + } else { + return null; + } + } + + } + + } + + } + final IConstructor $result51 = ((IConstructor)($RVF.constructor(TreeSearchResult_1_treeNotFound_, new IValue[]{}))); + if(ADT_TreeSearchResult_1.instantiate($typeBindings) != $TF.voidType() && $isSubtypeOf($result51.getType(),ADT_TreeSearchResult_1)){ + return ((IConstructor)($result51)); + + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/ParseTree.rsc|(35333,95,<777,0>,<777,95>) + public IConstructor ParseTree_treeAt$070d7a31ea8abb2e(IConstructor t_0, ISourceLocation l_1, ITree root_2){ + + + HashMap $typeBindings = new HashMap<>(); + if($T9.match(t_0.getType(), $typeBindings)){ + final IConstructor $result54 = ((IConstructor)($RVF.constructor(TreeSearchResult_1_treeNotFound_, new IValue[]{}))); + if(ADT_TreeSearchResult_1.instantiate($typeBindings) != $TF.voidType() && $isSubtypeOf($result54.getType(),ADT_TreeSearchResult_1)){ + return ((IConstructor)($result54)); + + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/ParseTree.rsc|(35430,58,<779,0>,<779,58>) + public IBool ParseTree_sameType$b275756ae4e2966e(IConstructor $0, IConstructor t_1){ + + + if($has_type_and_arity($0, M_Type.Symbol_label_str_Symbol, 2)){ + IValue $arg0_56 = (IValue)($aadt_subscript_int(((IConstructor)$0),0)); + if($isComparable($arg0_56.getType(), $T3)){ + IValue $arg1_55 = (IValue)($aadt_subscript_int(((IConstructor)$0),1)); + if($isComparable($arg1_55.getType(), M_Type.ADT_Symbol)){ + IConstructor s_0 = null; + return ((IBool)($me.sameType(((IConstructor)($arg1_55)), ((IConstructor)t_1)))); + + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/ParseTree.rsc|(35489,58,<780,0>,<780,58>) + public IBool ParseTree_sameType$a84782db931f7a30(IConstructor s_0, IConstructor $1){ + + + if($has_type_and_arity($1, M_Type.Symbol_label_str_Symbol, 2)){ + IValue $arg0_58 = (IValue)($aadt_subscript_int(((IConstructor)$1),0)); + if($isComparable($arg0_58.getType(), $T3)){ + IValue $arg1_57 = (IValue)($aadt_subscript_int(((IConstructor)$1),1)); + if($isComparable($arg1_57.getType(), M_Type.ADT_Symbol)){ + IConstructor t_1 = null; + return ((IBool)($me.sameType(((IConstructor)s_0), ((IConstructor)($arg1_57))))); + + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/ParseTree.rsc|(35548,64,<781,0>,<781,64>) + public IBool ParseTree_sameType$62cda661d939c9fa(IConstructor s_0, IConstructor $1){ + + + if($has_type_and_arity($1, Symbol_conditional_Symbol_set_Condition, 2)){ + IValue $arg0_60 = (IValue)($aadt_subscript_int(((IConstructor)$1),0)); + if($isComparable($arg0_60.getType(), M_Type.ADT_Symbol)){ + IConstructor t_1 = null; + IValue $arg1_59 = (IValue)($aadt_subscript_int(((IConstructor)$1),1)); + if($isComparable($arg1_59.getType(), $T3)){ + return ((IBool)($me.sameType(((IConstructor)s_0), ((IConstructor)($arg0_60))))); + + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/ParseTree.rsc|(35613,65,<782,0>,<782,65>) + public IBool ParseTree_sameType$10233296380130e3(IConstructor $0, IConstructor t_1){ + + + if($has_type_and_arity($0, Symbol_conditional_Symbol_set_Condition, 2)){ + IValue $arg0_62 = (IValue)($aadt_subscript_int(((IConstructor)$0),0)); + if($isComparable($arg0_62.getType(), M_Type.ADT_Symbol)){ + IConstructor s_0 = null; + IValue $arg1_61 = (IValue)($aadt_subscript_int(((IConstructor)$0),1)); + if($isComparable($arg1_61.getType(), $T3)){ + return ((IBool)($me.sameType(((IConstructor)($arg0_62)), ((IConstructor)t_1)))); + + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/ParseTree.rsc|(35679,34,<783,0>,<783,34>) + public IBool ParseTree_sameType$3698dd87f53b84eb(IConstructor s_0, IConstructor s){ + + + if((s_0 != null)){ + if(s_0.match(s)){ + return ((IBool)$constants.get(1)/*true*/); + + } else { + return null; + } + } else { + s_0 = ((IConstructor)s); + return ((IBool)$constants.get(1)/*true*/); + + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/ParseTree.rsc|(35714,50,<784,0>,<784,50>) + public IBool ParseTree_sameType$e3b3acd78100d719(IConstructor s_0, IConstructor t_1){ + + + return ((IBool)$constants.get(2)/*false*/); + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/ParseTree.rsc|(35767,115,<787,0>,<788,52>) + public IBool ParseTree_isNonTerminalType$897add07fd0679fa(IConstructor $0){ + + + if($has_type_and_arity($0, Symbol_sort_str, 1)){ + IValue $arg0_63 = (IValue)($aadt_subscript_int(((IConstructor)$0),0)); + if($isComparable($arg0_63.getType(), $T11)){ + return ((IBool)$constants.get(1)/*true*/); + + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/ParseTree.rsc|(35883,51,<789,0>,<789,51>) + public IBool ParseTree_isNonTerminalType$bd8ebacb8470da66(IConstructor $0){ + + + if($has_type_and_arity($0, Symbol_lex_str, 1)){ + IValue $arg0_64 = (IValue)($aadt_subscript_int(((IConstructor)$0),0)); + if($isComparable($arg0_64.getType(), $T11)){ + return ((IBool)$constants.get(1)/*true*/); + + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/ParseTree.rsc|(35935,55,<790,0>,<790,55>) + public IBool ParseTree_isNonTerminalType$60a31525ab4124d2(IConstructor $0){ + + + if($has_type_and_arity($0, Symbol_layouts_str, 1)){ + IValue $arg0_65 = (IValue)($aadt_subscript_int(((IConstructor)$0),0)); + if($isComparable($arg0_65.getType(), $T11)){ + return ((IBool)$constants.get(1)/*true*/); + + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/ParseTree.rsc|(35991,56,<791,0>,<791,56>) + public IBool ParseTree_isNonTerminalType$596a4e65f73f6ddd(IConstructor $0){ + + + if($has_type_and_arity($0, Symbol_keywords_str, 1)){ + IValue $arg0_66 = (IValue)($aadt_subscript_int(((IConstructor)$0),0)); + if($isComparable($arg0_66.getType(), $T11)){ + return ((IBool)$constants.get(1)/*true*/); + + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/ParseTree.rsc|(36048,82,<792,0>,<792,82>) + public IBool ParseTree_isNonTerminalType$fd8640b90be01f96(IConstructor $0){ + + + if($has_type_and_arity($0, Symbol_parameterized_sort_str_list_Symbol, 2)){ + IValue $arg0_68 = (IValue)($aadt_subscript_int(((IConstructor)$0),0)); + if($isComparable($arg0_68.getType(), $T11)){ + IValue $arg1_67 = (IValue)($aadt_subscript_int(((IConstructor)$0),1)); + if($isComparable($arg1_67.getType(), $T12)){ + return ((IBool)$constants.get(1)/*true*/); + + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/ParseTree.rsc|(36131,81,<793,0>,<793,81>) + public IBool ParseTree_isNonTerminalType$bec4d445d8286a07(IConstructor $0){ + + + if($has_type_and_arity($0, Symbol_parameterized_lex_str_list_Symbol, 2)){ + IValue $arg0_70 = (IValue)($aadt_subscript_int(((IConstructor)$0),0)); + if($isComparable($arg0_70.getType(), $T11)){ + IValue $arg1_69 = (IValue)($aadt_subscript_int(((IConstructor)$0),1)); + if($isComparable($arg1_69.getType(), $T12)){ + return ((IBool)$constants.get(1)/*true*/); + + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/ParseTree.rsc|(36213,72,<794,0>,<794,72>) + public IBool ParseTree_isNonTerminalType$f27daba5b606f35d(IConstructor $0){ + + + if($has_type_and_arity($0, Symbol_start_Symbol, 1)){ + IValue $arg0_71 = (IValue)($aadt_subscript_int(((IConstructor)$0),0)); + if($isComparable($arg0_71.getType(), M_Type.ADT_Symbol)){ + IConstructor s_0 = null; + return ((IBool)($me.isNonTerminalType(((IConstructor)($arg0_71))))); + + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/ParseTree.rsc|(36286,49,<795,0>,<795,49>) + public IBool ParseTree_isNonTerminalType$c6eab95f5fe5b746(IConstructor s_0){ + + + return ((IBool)$constants.get(2)/*false*/); + + } + + + public static void main(String[] args) { + throw new RuntimeException("No function `main` found in Rascal module `ParseTree`"); + } +} \ No newline at end of file diff --git a/src/rascal/$ParseTree.tpl b/src/rascal/$ParseTree.tpl new file mode 100644 index 00000000000..055450581d4 Binary files /dev/null and b/src/rascal/$ParseTree.tpl differ diff --git a/src/rascal/$ParseTree_$I.java b/src/rascal/$ParseTree_$I.java new file mode 100644 index 00000000000..de78baca0d3 --- /dev/null +++ b/src/rascal/$ParseTree_$I.java @@ -0,0 +1,132 @@ +package rascal; +import io.usethesource.vallang.*; +import org.rascalmpl.runtime.function.*; + +@SuppressWarnings("unused") +public interface $ParseTree_$I { + IValue addLabels(IValue $0, IValue $1); + IValue addParamLabels(IValue $0, IValue $1); + IValue allLabeled(IValue $0); + IValue associativity(IValue $0, IValue $1, IValue $2); + IValue choice(IValue $0, IValue $1); + IValue comparable(IValue $0, IValue $1); + IValue concat(IValue $0); + IValue delete(IValue $0, IValue $1); + IValue distribution(IValue $0); + IValue drop(IValue $0, IValue $1); + IValue dup(IValue $0); + IValue elementAt(IValue $0, IValue $1); + IValue eq(IValue $0, IValue $1); + IValue equivalent(IValue $0, IValue $1); + IValue firstAmbiguity(IValue $0, IValue $1); + IValue firstAmbiguityFinder(IValue $0, java.util.Map $kwpActuals); + IValue firstAmbiguityFinders(IValue $0, java.util.Map $kwpActuals); + IValue getFirstFrom(IValue $0); + IValue getLabels(IValue $0); + IValue getOneFrom(IValue $0); + IValue getParamLabels(IValue $0); + IValue glb(IValue $0, IValue $1); + IValue head(IValue $0, IValue $1); + IValue head(IValue $0); + IValue headTail(IValue $0); + IValue implode(IValue $0, IValue $1); + IValue index(IValue $0); + IValue indexOf(IValue $0, IValue $1); + IValue insertAt(IValue $0, IValue $1, IValue $2); + IValue intercalate(IValue $0, IValue $1); + IValue intersperse(IValue $0, IValue $1); + IValue isADTType(IValue $0); + IValue isAliasType(IValue $0); + IValue isBagType(IValue $0); + IValue isBoolType(IValue $0); + IValue isConstructorType(IValue $0); + IValue isDateTimeType(IValue $0); + IValue isEmpty(IValue $0); + IValue isFunctionType(IValue $0); + IValue isIntType(IValue $0); + IValue isListRelType(IValue $0); + IValue isListType(IValue $0); + IValue isLocType(IValue $0); + IValue isMapType(IValue $0); + IValue isNodeType(IValue $0); + IValue isNonTerminalType(IValue $0); + IValue isNumType(IValue $0); + IValue isRatType(IValue $0); + IValue isRealType(IValue $0); + IValue isReifiedType(IValue $0); + IValue isRelType(IValue $0); + IValue isSetType(IValue $0); + IValue isSorted(IValue $0, java.util.Map $kwpActuals); + IValue isStrType(IValue $0); + IValue isTupleType(IValue $0); + IValue isTypeVar(IValue $0); + IValue isValueType(IValue $0); + IValue isVoidType(IValue $0); + IValue itoString(IValue $0); + IValue keepParams(IValue $0, IValue $1); + IValue last(IValue $0); + IValue lastIndexOf(IValue $0, IValue $1); + IValue loadParser(IValue $0, IValue $1, java.util.Map $kwpActuals); + IValue loadParsers(IValue $0, java.util.Map $kwpActuals); + IValue lub(IValue $0, IValue $1); + IValue mainMessageHandler(IValue $0, java.util.Map $kwpActuals); + IValue make(IValue $0, IValue $1, IValue $2); + IValue make(IValue $0, IValue $1, IValue $2, IValue $3); + IValue mapper(IValue $0, IValue $1); + IValue max(IValue $0); + IValue merge(IValue $0, IValue $1); + IValue merge(IValue $0, IValue $1, IValue $2); + IValue min(IValue $0); + IValue mix(IValue $0, IValue $1); + IValue noneLabeled(IValue $0); + IValue parse(IValue $0, IValue $1, java.util.Map $kwpActuals); + IValue parse(IValue $0, IValue $1, IValue $2, java.util.Map $kwpActuals); + IValue parser(IValue $0, java.util.Map $kwpActuals); + IValue parsers(IValue $0, java.util.Map $kwpActuals); + IValue permutations(IValue $0); + IValue permutationsBag(IValue $0); + IValue pop(IValue $0); + IValue prefix(IValue $0); + IValue printSymbol(IValue $0, IValue $1); + IValue priority(IValue $0, IValue $1); + IValue push(IValue $0, IValue $1); + IValue reducer(IValue $0, IValue $1, IValue $2); + IValue remove(IValue $0, IValue $1); + IValue removeFromBag(IValue $0, IValue $1); + IValue removeFromBag(IValue $0, IValue $1, IValue $2); + IValue reverse(IValue $0); + IValue sameType(IValue $0, IValue $1); + IValue shuffle(IValue $0); + IValue shuffle(IValue $0, IValue $1); + IValue size(IValue $0); + IValue slice(IValue $0, IValue $1, IValue $2); + IValue sort(IValue $0); + IValue sort(IValue $0, IValue $1); + IValue split(IValue $0); + void storeParsers(IValue $0, IValue $1); + IValue stripLabels(IValue $0); + IValue subtype(IValue $0, IValue $1); + IValue sum(IValue $0); + IValue tail(IValue $0); + IValue tail(IValue $0, IValue $1); + IValue take(IValue $0, IValue $1); + IValue takeOneFrom(IValue $0); + IValue takeWhile(IValue $0, IValue $1); + IValue toMap(IValue $0); + IValue toMapUnique(IValue $0); + IValue toRel(IValue $0); + IValue toSet(IValue $0); + IValue toString(IValue $0); + IValue top(IValue $0); + IValue treeAt(IValue $0, IValue $1, IValue $2); + IValue typeCast(IValue $0, IValue $1); + IValue typeOf(IValue $0); + IValue unparse(IValue $0); + IValue unzip2(IValue $0); + IValue unzip3(IValue $0); + IValue upTill(IValue $0); + IValue var_func(IValue $0, IValue $1, IValue $2); + IValue write(IValue $0, java.util.Map $kwpActuals); + IValue zip2(IValue $0, IValue $1); + IValue zip3(IValue $0, IValue $1, IValue $2); +} \ No newline at end of file diff --git a/src/rascal/$Relation.constants b/src/rascal/$Relation.constants new file mode 100644 index 00000000000..1e565c1730d Binary files /dev/null and b/src/rascal/$Relation.constants differ diff --git a/src/rascal/$Relation.java b/src/rascal/$Relation.java new file mode 100644 index 00000000000..9bf3990919f --- /dev/null +++ b/src/rascal/$Relation.java @@ -0,0 +1,2500 @@ +package rascal; +import java.io.PrintWriter; +import java.io.StringWriter; +import java.io.InputStreamReader; +import java.io.PrintWriter; +import java.util.*; +import java.util.regex.Matcher; +import io.usethesource.vallang.*; +import io.usethesource.vallang.type.*; +import org.rascalmpl.runtime.*; +import org.rascalmpl.runtime.RascalExecutionContext; +import org.rascalmpl.runtime.function.*; +import org.rascalmpl.runtime.traverse.*; +import org.rascalmpl.runtime.utils.*; +import org.rascalmpl.exceptions.RuntimeExceptionFactory; +import org.rascalmpl.exceptions.Throw; +import org.rascalmpl.runtime.RascalExecutionContext; +import org.rascalmpl.interpreter.control_exceptions.Filtered; +import org.rascalmpl.types.NonTerminalType; +import org.rascalmpl.types.RascalTypeFactory; +import org.rascalmpl.util.ExpiringFunctionResultCache; +import org.rascalmpl.values.RascalValueFactory; +import org.rascalmpl.values.ValueFactoryFactory; +import org.rascalmpl.values.parsetrees.ITree; +import org.rascalmpl.values.parsetrees.TreeAdapter; + + + +@SuppressWarnings({"unused","unchecked","deprecation"}) +public class $Relation + extends + org.rascalmpl.runtime.$RascalModule + implements + rascal.$Relation_$I { + + private final $Relation_$I $me; + private final IList $constants; + + + + + final org.rascalmpl.library.Prelude $Prelude; // TODO: asBaseClassName will generate name collisions if there are more of the same name in different packages + + + public final io.usethesource.vallang.type.Type $T1; /*avalue()*/ + public final io.usethesource.vallang.type.Type $T14; /*aparameter("T3",avalue(),closed=false)*/ + public final io.usethesource.vallang.type.Type $T41; /*aparameter("T4",avalue(),closed=true)*/ + public final io.usethesource.vallang.type.Type $T36; /*aparameter("T1",avalue(),closed=true)*/ + public final io.usethesource.vallang.type.Type $T37; /*aparameter("T2",avalue(),closed=true)*/ + public final io.usethesource.vallang.type.Type $T9; /*aparameter("T",avalue(),closed=false,alabel="ran")*/ + public final io.usethesource.vallang.type.Type $T58; /*aparameter("K",avalue(),closed=true)*/ + public final io.usethesource.vallang.type.Type $T21; /*aparameter("U",avalue(),closed=false)*/ + public final io.usethesource.vallang.type.Type $T2; /*aparameter("T",avalue(),closed=false)*/ + public final io.usethesource.vallang.type.Type $T11; /*aparameter("T0",avalue(),closed=false)*/ + public final io.usethesource.vallang.type.Type $T12; /*aparameter("T1",avalue(),closed=false)*/ + public final io.usethesource.vallang.type.Type $T59; /*aparameter("V",avalue(),closed=true)*/ + public final io.usethesource.vallang.type.Type $T8; /*aparameter("U",avalue(),closed=false,alabel="dom")*/ + public final io.usethesource.vallang.type.Type $T35; /*aparameter("T0",avalue(),closed=true)*/ + public final io.usethesource.vallang.type.Type $T13; /*aparameter("T2",avalue(),closed=false)*/ + public final io.usethesource.vallang.type.Type $T15; /*aparameter("T4",avalue(),closed=false)*/ + public final io.usethesource.vallang.type.Type $T25; /*aparameter("K",avalue(),closed=false)*/ + public final io.usethesource.vallang.type.Type $T45; /*aparameter("U",avalue(),closed=true)*/ + public final io.usethesource.vallang.type.Type $T26; /*aparameter("V",avalue(),closed=false)*/ + public final io.usethesource.vallang.type.Type $T29; /*aparameter("T",avalue(),closed=true)*/ + public final io.usethesource.vallang.type.Type $T39; /*aparameter("T3",avalue(),closed=true)*/ + public final io.usethesource.vallang.type.Type $T53; /*aset(aparameter("T1",avalue(),closed=true))*/ + public final io.usethesource.vallang.type.Type $T3; /*aset(aparameter("T",avalue(),closed=false))*/ + public final io.usethesource.vallang.type.Type $T52; /*arel(atypeList([aparameter("T4",avalue(),closed=true),aparameter("T3",avalue(),closed=true),aparameter("T2",avalue(),closed=true),aparameter("T1",avalue(),closed=true),aparameter("T0",avalue(),closed=true)]))*/ + public final io.usethesource.vallang.type.Type $T33; /*arel(atypeList([aparameter("T",avalue(),closed=true),aparameter("T",avalue(),closed=true),aparameter("T",avalue(),closed=true),aparameter("T",avalue(),closed=true),aparameter("T",avalue(),closed=true)]))*/ + public final io.usethesource.vallang.type.Type $T30; /*arel(atypeList([aparameter("T",avalue(),closed=true),aparameter("T",avalue(),closed=true)]))*/ + public final io.usethesource.vallang.type.Type $T55; /*arel(atypeList([aparameter("T1",avalue(),closed=true),aparameter("T2",avalue(),closed=true),aparameter("T3",avalue(),closed=true)]))*/ + public final io.usethesource.vallang.type.Type $T0; /*arel(atypeList([aparameter("T",avalue(),closed=false),aparameter("T",avalue(),closed=false),aparameter("T",avalue(),closed=false),aparameter("T",avalue(),closed=false),aparameter("T",avalue(),closed=false)]))*/ + public final io.usethesource.vallang.type.Type $T56; /*arel(atypeList([aparameter("T1",avalue(),closed=true),aparameter("T2",avalue(),closed=true),aparameter("T3",avalue(),closed=true),aparameter("T4",avalue(),closed=true)]))*/ + public final io.usethesource.vallang.type.Type $T17; /*arel(atypeList([aparameter("T0",avalue(),closed=false),aparameter("T1",avalue(),closed=false),aparameter("T2",avalue(),closed=false)]))*/ + public final io.usethesource.vallang.type.Type $T47; /*aset(aparameter("U",avalue(),closed=true))*/ + public final io.usethesource.vallang.type.Type $T46; /*aset(aset(aparameter("U",avalue(),closed=true)))*/ + public final io.usethesource.vallang.type.Type $T4; /*arel(atypeList([aparameter("T",avalue(),closed=false),aparameter("T",avalue(),closed=false)]))*/ + public final io.usethesource.vallang.type.Type $T5; /*arel(atypeList([aparameter("T",avalue(),closed=false),aparameter("T",avalue(),closed=false),aparameter("T",avalue(),closed=false)]))*/ + public final io.usethesource.vallang.type.Type $T24; /*arel(atypeList([aparameter("K",avalue(),closed=false),aparameter("V",avalue(),closed=false)]))*/ + public final io.usethesource.vallang.type.Type $T7; /*arel(atypeList([aparameter("U",avalue(),closed=false,alabel="dom"),aparameter("T",avalue(),closed=false,alabel="ran")]))*/ + public final io.usethesource.vallang.type.Type $T44; /*arel(atypeList([aparameter("T",avalue(),closed=true),aparameter("U",avalue(),closed=true)]))*/ + public final io.usethesource.vallang.type.Type $T6; /*arel(atypeList([aparameter("T",avalue(),closed=false),aparameter("T",avalue(),closed=false),aparameter("T",avalue(),closed=false),aparameter("T",avalue(),closed=false)]))*/ + public final io.usethesource.vallang.type.Type $T19; /*aset(aparameter("T0",avalue(),closed=false))*/ + public final io.usethesource.vallang.type.Type $T40; /*arel(atypeList([aparameter("T0",avalue(),closed=true),aparameter("T1",avalue(),closed=true),aparameter("T2",avalue(),closed=true),aparameter("T3",avalue(),closed=true)]))*/ + public final io.usethesource.vallang.type.Type $T60; /*aset(aparameter("V",avalue(),closed=true))*/ + public final io.usethesource.vallang.type.Type $T43; /*aset(aparameter("T0",avalue(),closed=true))*/ + public final io.usethesource.vallang.type.Type $T51; /*arel(atypeList([aparameter("T3",avalue(),closed=true),aparameter("T2",avalue(),closed=true),aparameter("T1",avalue(),closed=true),aparameter("T0",avalue(),closed=true)]))*/ + public final io.usethesource.vallang.type.Type $T18; /*arel(atypeList([aparameter("T0",avalue(),closed=false),aparameter("T1",avalue(),closed=false),aparameter("T2",avalue(),closed=false),aparameter("T3",avalue(),closed=false)]))*/ + public final io.usethesource.vallang.type.Type $T57; /*amap(aparameter("K",avalue(),closed=true),aset(aparameter("V",avalue(),closed=true)))*/ + public final io.usethesource.vallang.type.Type $T42; /*arel(atypeList([aparameter("T0",avalue(),closed=true),aparameter("T1",avalue(),closed=true),aparameter("T2",avalue(),closed=true),aparameter("T3",avalue(),closed=true),aparameter("T4",avalue(),closed=true)]))*/ + public final io.usethesource.vallang.type.Type $T23; /*abool()*/ + public final io.usethesource.vallang.type.Type $T54; /*arel(atypeList([aparameter("T1",avalue(),closed=true),aparameter("T2",avalue(),closed=true)]))*/ + public final io.usethesource.vallang.type.Type $T20; /*arel(atypeList([aparameter("T",avalue(),closed=false),aparameter("U",avalue(),closed=false)]))*/ + public final io.usethesource.vallang.type.Type $T50; /*arel(atypeList([aparameter("T2",avalue(),closed=true),aparameter("T1",avalue(),closed=true),aparameter("T0",avalue(),closed=true)]))*/ + public final io.usethesource.vallang.type.Type $T32; /*arel(atypeList([aparameter("T",avalue(),closed=true),aparameter("T",avalue(),closed=true),aparameter("T",avalue(),closed=true),aparameter("T",avalue(),closed=true)]))*/ + public final io.usethesource.vallang.type.Type $T28; /*aset(aparameter("T",avalue(),closed=true))*/ + public final io.usethesource.vallang.type.Type $T48; /*aset(aset(aparameter("T",avalue(),closed=true)))*/ + public final io.usethesource.vallang.type.Type $T34; /*arel(atypeList([aparameter("T0",avalue(),closed=true),aparameter("T1",avalue(),closed=true)]))*/ + public final io.usethesource.vallang.type.Type $T16; /*arel(atypeList([aparameter("T0",avalue(),closed=false),aparameter("T1",avalue(),closed=false)]))*/ + public final io.usethesource.vallang.type.Type $T10; /*arel(atypeList([aparameter("T0",avalue(),closed=false),aparameter("T1",avalue(),closed=false),aparameter("T2",avalue(),closed=false),aparameter("T3",avalue(),closed=false),aparameter("T4",avalue(),closed=false)]))*/ + public final io.usethesource.vallang.type.Type $T31; /*arel(atypeList([aparameter("T",avalue(),closed=true),aparameter("T",avalue(),closed=true),aparameter("T",avalue(),closed=true)]))*/ + public final io.usethesource.vallang.type.Type $T22; /*afunc(abool(),[aparameter("T",avalue(),closed=false)],[])*/ + public final io.usethesource.vallang.type.Type $T38; /*arel(atypeList([aparameter("T0",avalue(),closed=true),aparameter("T1",avalue(),closed=true),aparameter("T2",avalue(),closed=true)]))*/ + public final io.usethesource.vallang.type.Type $T27; /*aset(aparameter("T1",avalue(),closed=false))*/ + public final io.usethesource.vallang.type.Type $T49; /*arel(atypeList([aparameter("T1",avalue(),closed=true),aparameter("T0",avalue(),closed=true)]))*/ + + public $Relation(RascalExecutionContext rex){ + this(rex, null); + } + + public $Relation(RascalExecutionContext rex, Object extended){ + super(rex); + this.$me = extended == null ? this : ($Relation_$I)extended; + ModuleStore mstore = rex.getModuleStore(); + mstore.put(rascal.$Relation.class, this); + + + + + + + $Prelude = $initLibrary("org.rascalmpl.library.Prelude"); + + $constants = readBinaryConstantsFile(this.getClass(), "rascal/$Relation.constants", 5, "d62345a0b802833ae0f26ba12f6b3af4"); + $T1 = $TF.valueType(); + $T14 = $TF.parameterType("T3", $T1); + $T41 = $TF.parameterType("T4", $T1); + $T36 = $TF.parameterType("T1", $T1); + $T37 = $TF.parameterType("T2", $T1); + $T9 = $TF.parameterType("T", $T1); + $T58 = $TF.parameterType("K", $T1); + $T21 = $TF.parameterType("U", $T1); + $T2 = $TF.parameterType("T", $T1); + $T11 = $TF.parameterType("T0", $T1); + $T12 = $TF.parameterType("T1", $T1); + $T59 = $TF.parameterType("V", $T1); + $T8 = $TF.parameterType("U", $T1); + $T35 = $TF.parameterType("T0", $T1); + $T13 = $TF.parameterType("T2", $T1); + $T15 = $TF.parameterType("T4", $T1); + $T25 = $TF.parameterType("K", $T1); + $T45 = $TF.parameterType("U", $T1); + $T26 = $TF.parameterType("V", $T1); + $T29 = $TF.parameterType("T", $T1); + $T39 = $TF.parameterType("T3", $T1); + $T53 = $TF.setType($T36); + $T3 = $TF.setType($T2); + $T52 = $TF.setType($TF.tupleType($T41, $T39, $T37, $T36, $T35)); + $T33 = $TF.setType($TF.tupleType($T29, $T29, $T29, $T29, $T29)); + $T30 = $TF.setType($TF.tupleType($T29, $T29)); + $T55 = $TF.setType($TF.tupleType($T36, $T37, $T39)); + $T0 = $TF.setType($TF.tupleType($T2, $T2, $T2, $T2, $T2)); + $T56 = $TF.setType($TF.tupleType($T36, $T37, $T39, $T41)); + $T17 = $TF.setType($TF.tupleType($T11, $T12, $T13)); + $T47 = $TF.setType($T45); + $T46 = $TF.setType($T47); + $T4 = $TF.setType($TF.tupleType($T2, $T2)); + $T5 = $TF.setType($TF.tupleType($T2, $T2, $T2)); + $T24 = $TF.setType($TF.tupleType($T25, $T26)); + $T7 = $TF.setType($TF.tupleType($T8, $T9)); + $T44 = $TF.setType($TF.tupleType($T29, $T45)); + $T6 = $TF.setType($TF.tupleType($T2, $T2, $T2, $T2)); + $T19 = $TF.setType($T11); + $T40 = $TF.setType($TF.tupleType($T35, $T36, $T37, $T39)); + $T60 = $TF.setType($T59); + $T43 = $TF.setType($T35); + $T51 = $TF.setType($TF.tupleType($T39, $T37, $T36, $T35)); + $T18 = $TF.setType($TF.tupleType($T11, $T12, $T13, $T14)); + $T57 = $TF.mapType($T58,$T60); + $T42 = $TF.setType($TF.tupleType($T35, $T36, $T37, $T39, $T41)); + $T23 = $TF.boolType(); + $T54 = $TF.setType($TF.tupleType($T36, $T37)); + $T20 = $TF.setType($TF.tupleType($T2, $T21)); + $T50 = $TF.setType($TF.tupleType($T37, $T36, $T35)); + $T32 = $TF.setType($TF.tupleType($T29, $T29, $T29, $T29)); + $T28 = $TF.setType($T29); + $T48 = $TF.setType($T28); + $T34 = $TF.setType($TF.tupleType($T35, $T36)); + $T16 = $TF.setType($TF.tupleType($T11, $T12)); + $T10 = $TF.setType($TF.tupleType($T11, $T12, $T13, $T14, $T15)); + $T31 = $TF.setType($TF.tupleType($T29, $T29, $T29)); + $T22 = $TF.functionType($T23, $TF.tupleType($T2), $TF.tupleEmpty()); + $T38 = $TF.setType($TF.tupleType($T35, $T36, $T37)); + $T27 = $TF.setType($T12); + $T49 = $TF.setType($TF.tupleType($T36, $T35)); + + + + } + public ISet carrierX(IValue $P0, IValue $P1){ // Generated by Resolver + ISet $result = null; + Type $P0Type = $P0.getType(); + Type $P1Type = $P1.getType(); + if($isSubtypeOf($P0Type,$T0) && $isSubtypeOf($P1Type,$T3)){ + $result = (ISet)Relation_carrierX$dc7d4f1475a31c1a((ISet) $P0, (ISet) $P1); + if($result != null) return $result; + } + if($isSubtypeOf($P0Type,$T4) && $isSubtypeOf($P1Type,$T3)){ + $result = (ISet)Relation_carrierX$5e8f4248c208f606((ISet) $P0, (ISet) $P1); + if($result != null) return $result; + } + if($isSubtypeOf($P0Type,$T5) && $isSubtypeOf($P1Type,$T3)){ + $result = (ISet)Relation_carrierX$7005b62f0e805b5f((ISet) $P0, (ISet) $P1); + if($result != null) return $result; + } + if($isSubtypeOf($P0Type,$T6) && $isSubtypeOf($P1Type,$T3)){ + $result = (ISet)Relation_carrierX$c8228c40b970c38b((ISet) $P0, (ISet) $P1); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0, $P1)); + } + public ISet groupDomainByRange(IValue $P0){ // Generated by Resolver + ISet $result = null; + Type $P0Type = $P0.getType(); + if($isSubtypeOf($P0Type,$T7)){ + $result = (ISet)Relation_groupDomainByRange$327972fc187fd972((ISet) $P0); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0)); + } + public ISet domain(IValue $P0){ // Generated by Resolver + ISet $result = null; + Type $P0Type = $P0.getType(); + if($isSubtypeOf($P0Type,$T10)){ + $result = (ISet)Relation_domain$7e7cc8be3201741e((ISet) $P0); + if($result != null) return $result; + } + if($isSubtypeOf($P0Type,$T16)){ + $result = (ISet)Relation_domain$82c6d674586e8686((ISet) $P0); + if($result != null) return $result; + } + if($isSubtypeOf($P0Type,$T17)){ + $result = (ISet)Relation_domain$2a41e81f2232a510((ISet) $P0); + if($result != null) return $result; + } + if($isSubtypeOf($P0Type,$T18)){ + $result = (ISet)Relation_domain$ceb529b2fc10d7d4((ISet) $P0); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0)); + } + public ISet complement(IValue $P0){ // Generated by Resolver + ISet $result = null; + Type $P0Type = $P0.getType(); + if($isSubtypeOf($P0Type,$T10)){ + $result = (ISet)Relation_complement$56d58cd1d8429e72((ISet) $P0); + if($result != null) return $result; + } + if($isSubtypeOf($P0Type,$T17)){ + $result = (ISet)Relation_complement$00086bfeeba07066((ISet) $P0); + if($result != null) return $result; + } + if($isSubtypeOf($P0Type,$T16)){ + $result = (ISet)Relation_complement$4bb4b4dc0b4215a5((ISet) $P0); + if($result != null) return $result; + } + if($isSubtypeOf($P0Type,$T18)){ + $result = (ISet)Relation_complement$1dc10ce8d46ef909((ISet) $P0); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0)); + } + public ISet domainR(IValue $P0, IValue $P1){ // Generated by Resolver + ISet $result = null; + Type $P0Type = $P0.getType(); + Type $P1Type = $P1.getType(); + if($isSubtypeOf($P0Type,$T16) && $isSubtypeOf($P1Type,$T19)){ + $result = (ISet)Relation_domainR$6df70016a64d6b6b((ISet) $P0, (ISet) $P1); + if($result != null) return $result; + } + if($isSubtypeOf($P0Type,$T17) && $isSubtypeOf($P1Type,$T19)){ + $result = (ISet)Relation_domainR$acdf919373377fa5((ISet) $P0, (ISet) $P1); + if($result != null) return $result; + } + if($isSubtypeOf($P0Type,$T18) && $isSubtypeOf($P1Type,$T19)){ + $result = (ISet)Relation_domainR$4e560a92f3102f3a((ISet) $P0, (ISet) $P1); + if($result != null) return $result; + } + if($isSubtypeOf($P0Type,$T20) && $isSubtypeOf($P1Type,$T22)){ + $result = (ISet)Relation_domainR$c52c9514cb94dac5((ISet) $P0, (TypedFunctionInstance1) $P1); + if($result != null) return $result; + } + if($isSubtypeOf($P0Type,$T10) && $isSubtypeOf($P1Type,$T19)){ + $result = (ISet)Relation_domainR$c0b08c3c279262a0((ISet) $P0, (ISet) $P1); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0, $P1)); + } + public ISet ident(IValue $P0){ // Generated by Resolver + ISet $result = null; + Type $P0Type = $P0.getType(); + if($isSubtypeOf($P0Type,$T3)){ + $result = (ISet)Relation_ident$5a8fd748b3a21c74((ISet) $P0); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0)); + } + public IMap index(IValue $P0){ // Generated by Resolver + IMap $result = null; + Type $P0Type = $P0.getType(); + if($isSubtypeOf($P0Type,$T24)){ + $result = (IMap)Relation_index$d81a1657f0d245c9((ISet) $P0); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0)); + } + public ISet domainX(IValue $P0, IValue $P1){ // Generated by Resolver + ISet $result = null; + Type $P0Type = $P0.getType(); + Type $P1Type = $P1.getType(); + if($isSubtypeOf($P0Type,$T10) && $isSubtypeOf($P1Type,$T19)){ + $result = (ISet)Relation_domainX$b4c31366bacacc90((ISet) $P0, (ISet) $P1); + if($result != null) return $result; + } + if($isSubtypeOf($P0Type,$T18) && $isSubtypeOf($P1Type,$T19)){ + $result = (ISet)Relation_domainX$7ed378a6babc8601((ISet) $P0, (ISet) $P1); + if($result != null) return $result; + } + if($isSubtypeOf($P0Type,$T16) && $isSubtypeOf($P1Type,$T19)){ + $result = (ISet)Relation_domainX$227b267edf852d93((ISet) $P0, (ISet) $P1); + if($result != null) return $result; + } + if($isSubtypeOf($P0Type,$T17) && $isSubtypeOf($P1Type,$T19)){ + $result = (ISet)Relation_domainX$3378efc5bc069d9d((ISet) $P0, (ISet) $P1); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0, $P1)); + } + public ISet rangeR(IValue $P0, IValue $P1){ // Generated by Resolver + ISet $result = null; + Type $P0Type = $P0.getType(); + Type $P1Type = $P1.getType(); + if($isSubtypeOf($P0Type,$T16) && $isSubtypeOf($P1Type,$T27)){ + $result = (ISet)Relation_rangeR$442c89d533c8dd3c((ISet) $P0, (ISet) $P1); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0, $P1)); + } + public ISet invert(IValue $P0){ // Generated by Resolver + ISet $result = null; + Type $P0Type = $P0.getType(); + if($isSubtypeOf($P0Type,$T18)){ + $result = (ISet)Relation_invert$23c95694a74f9dc2((ISet) $P0); + if($result != null) return $result; + } + if($isSubtypeOf($P0Type,$T10)){ + $result = (ISet)Relation_invert$7bfa0a46912a50e5((ISet) $P0); + if($result != null) return $result; + } + if($isSubtypeOf($P0Type,$T17)){ + $result = (ISet)Relation_invert$02b31d4ba203e6f2((ISet) $P0); + if($result != null) return $result; + } + if($isSubtypeOf($P0Type,$T16)){ + $result = (ISet)Relation_invert$ab51fefa560e8d82((ISet) $P0); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0)); + } + public ISet carrier(IValue $P0){ // Generated by Resolver + ISet $result = null; + Type $P0Type = $P0.getType(); + if($isSubtypeOf($P0Type,$T5)){ + $result = (ISet)Relation_carrier$6e6c58db994362e2((ISet) $P0); + if($result != null) return $result; + } + if($isSubtypeOf($P0Type,$T0)){ + $result = (ISet)Relation_carrier$dedcc54b07b49f23((ISet) $P0); + if($result != null) return $result; + } + if($isSubtypeOf($P0Type,$T6)){ + $result = (ISet)Relation_carrier$cfeb33350bad999c((ISet) $P0); + if($result != null) return $result; + } + if($isSubtypeOf($P0Type,$T4)){ + $result = (ISet)Relation_carrier$fdfb882af871e8e7((ISet) $P0); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0)); + } + public ISet groupRangeByDomain(IValue $P0){ // Generated by Resolver + ISet $result = null; + Type $P0Type = $P0.getType(); + if($isSubtypeOf($P0Type,$T7)){ + $result = (ISet)Relation_groupRangeByDomain$bc2bb3150125fdcf((ISet) $P0); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0)); + } + public ISet carrierR(IValue $P0, IValue $P1){ // Generated by Resolver + ISet $result = null; + Type $P0Type = $P0.getType(); + Type $P1Type = $P1.getType(); + if($isSubtypeOf($P0Type,$T4) && $isSubtypeOf($P1Type,$T3)){ + $result = (ISet)Relation_carrierR$0c3cc6c60ce2992e((ISet) $P0, (ISet) $P1); + if($result != null) return $result; + } + if($isSubtypeOf($P0Type,$T0) && $isSubtypeOf($P1Type,$T3)){ + $result = (ISet)Relation_carrierR$eb31e23e51d7fd68((ISet) $P0, (ISet) $P1); + if($result != null) return $result; + } + if($isSubtypeOf($P0Type,$T5) && $isSubtypeOf($P1Type,$T3)){ + $result = (ISet)Relation_carrierR$f255ce7884c94485((ISet) $P0, (ISet) $P1); + if($result != null) return $result; + } + if($isSubtypeOf($P0Type,$T6) && $isSubtypeOf($P1Type,$T3)){ + $result = (ISet)Relation_carrierR$52b35d289144910a((ISet) $P0, (ISet) $P1); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0, $P1)); + } + public ISet rangeX(IValue $P0, IValue $P1){ // Generated by Resolver + ISet $result = null; + Type $P0Type = $P0.getType(); + Type $P1Type = $P1.getType(); + if($isSubtypeOf($P0Type,$T16) && $isSubtypeOf($P1Type,$T27)){ + $result = (ISet)Relation_rangeX$2ca0c43b311ef4db((ISet) $P0, (ISet) $P1); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0, $P1)); + } + public ISet range(IValue $P0){ // Generated by Resolver + ISet $result = null; + Type $P0Type = $P0.getType(); + if($isSubtypeOf($P0Type,$T10)){ + $result = (ISet)Relation_range$22ad49e0807b0b4b((ISet) $P0); + if($result != null) return $result; + } + if($isSubtypeOf($P0Type,$T16)){ + $result = (ISet)Relation_range$2db5a57a784252a8((ISet) $P0); + if($result != null) return $result; + } + if($isSubtypeOf($P0Type,$T18)){ + $result = (ISet)Relation_range$3bab8d1f24ba88b1((ISet) $P0); + if($result != null) return $result; + } + if($isSubtypeOf($P0Type,$T17)){ + $result = (ISet)Relation_range$86a90cd62434b56a((ISet) $P0); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0)); + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Relation.rsc|(543,256,<19,0>,<30,1>) + public ISet Relation_carrier$fdfb882af871e8e7(ISet R_0){ + + + HashMap $typeBindings = new HashMap<>(); + if($T4.match(R_0.getType(), $typeBindings)){ + final ISet $result0 = ((ISet)($aset_add_aset(((ISet)($arel_field_project((ISet)((ISet)R_0), ((IInteger)$constants.get(0)/*0*/)))),((ISet)($arel_field_project((ISet)((ISet)R_0), ((IInteger)$constants.get(1)/*1*/))))))); + if($T28.instantiate($typeBindings) != $TF.voidType() && $isSubtypeOf($result0.getType(),$T28)){ + return ((ISet)($result0)); + + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Relation.rsc|(801,78,<32,0>,<35,1>) + public ISet Relation_carrier$6e6c58db994362e2(ISet R_0){ + + + HashMap $typeBindings = new HashMap<>(); + if($T5.match(R_0.getType(), $typeBindings)){ + final ISet $result1 = ((ISet)($aset_add_aset(((ISet)($aset_add_aset(((ISet)($arel_field_project((ISet)((ISet)R_0), ((IInteger)$constants.get(0)/*0*/)))),((ISet)($arel_field_project((ISet)((ISet)R_0), ((IInteger)$constants.get(1)/*1*/))))))),((ISet)($arel_field_project((ISet)((ISet)R_0), ((IInteger)$constants.get(2)/*2*/))))))); + if($T28.instantiate($typeBindings) != $TF.voidType() && $isSubtypeOf($result1.getType(),$T28)){ + return ((ISet)($result1)); + + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Relation.rsc|(881,89,<37,0>,<40,1>) + public ISet Relation_carrier$cfeb33350bad999c(ISet R_0){ + + + HashMap $typeBindings = new HashMap<>(); + if($T6.match(R_0.getType(), $typeBindings)){ + final ISet $result2 = ((ISet)($aset_add_aset(((ISet)($aset_add_aset(((ISet)($aset_add_aset(((ISet)($arel_field_project((ISet)((ISet)R_0), ((IInteger)$constants.get(0)/*0*/)))),((ISet)($arel_field_project((ISet)((ISet)R_0), ((IInteger)$constants.get(1)/*1*/))))))),((ISet)($arel_field_project((ISet)((ISet)R_0), ((IInteger)$constants.get(2)/*2*/))))))),((ISet)($arel_field_project((ISet)((ISet)R_0), ((IInteger)$constants.get(3)/*3*/))))))); + if($T28.instantiate($typeBindings) != $TF.voidType() && $isSubtypeOf($result2.getType(),$T28)){ + return ((ISet)($result2)); + + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Relation.rsc|(972,101,<42,0>,<45,1>) + public ISet Relation_carrier$dedcc54b07b49f23(ISet R_0){ + + + HashMap $typeBindings = new HashMap<>(); + if($T0.match(R_0.getType(), $typeBindings)){ + final ISet $result3 = ((ISet)($aset_add_aset(((ISet)($aset_add_aset(((ISet)($aset_add_aset(((ISet)($aset_add_aset(((ISet)($arel_field_project((ISet)((ISet)R_0), ((IInteger)$constants.get(0)/*0*/)))),((ISet)($arel_field_project((ISet)((ISet)R_0), ((IInteger)$constants.get(1)/*1*/))))))),((ISet)($arel_field_project((ISet)((ISet)R_0), ((IInteger)$constants.get(2)/*2*/))))))),((ISet)($arel_field_project((ISet)((ISet)R_0), ((IInteger)$constants.get(3)/*3*/))))))),((ISet)($arel_field_project((ISet)((ISet)R_0), ((IInteger)$constants.get(4)/*4*/))))))); + if($T28.instantiate($typeBindings) != $TF.voidType() && $isSubtypeOf($result3.getType(),$T28)){ + return ((ISet)($result3)); + + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Relation.rsc|(1076,372,<48,0>,<61,1>) + public ISet Relation_carrierR$0c3cc6c60ce2992e(ISet R_0, ISet S_1){ + + + HashMap $typeBindings = new HashMap<>(); + if($T4.match(R_0.getType(), $typeBindings)){ + if(true){ + if($T3.match(S_1.getType(), $typeBindings)){ + if(true){ + final ISetWriter $setwriter4 = (ISetWriter)$RVF.setWriter(); + ; + $SCOMP5_GEN1406: + for(IValue $elem6_for : ((ISet)R_0)){ + IValue $elem6 = (IValue) $elem6_for; + final IValue $tuple_subject7 = ((IValue)($elem6)); + if($tuple_subject7 instanceof ITuple && ((ITuple)$tuple_subject7).arity() == 2){ + /*muExists*/$SCOMP5_GEN1406_TUPLE: + do { + if(true){ + IValue V0_2 = null; + if(true){ + IValue V1_3 = null; + if((((IBool)($RVF.bool(((ISet)S_1).contains(((IValue)($subscript_int(((IValue)($tuple_subject7)),0)))))))).getValue()){ + if((((IBool)($RVF.bool(((ISet)S_1).contains(((IValue)($subscript_int(((IValue)($tuple_subject7)),1)))))))).getValue()){ + $setwriter4.insert($RVF.tuple(((IValue)($subscript_int(((IValue)($tuple_subject7)),0))), ((IValue)($subscript_int(((IValue)($tuple_subject7)),1))))); + + } else { + continue $SCOMP5_GEN1406_TUPLE; + } + + } else { + continue $SCOMP5_GEN1406_TUPLE; + } + + } else { + continue $SCOMP5_GEN1406_TUPLE;/*computeFail*/ + } + } else { + continue $SCOMP5_GEN1406; + } + } while(false); + + } else { + continue $SCOMP5_GEN1406; + } + } + + final ISet $result8 = ((ISet)($setwriter4.done())); + if($T30.instantiate($typeBindings) != $TF.voidType() && $isSubtypeOf($result8.getType(),$T30)){ + return ((ISet)($result8)); + + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Relation.rsc|(1450,145,<63,0>,<66,1>) + public ISet Relation_carrierR$f255ce7884c94485(ISet R_0, ISet S_1){ + + + HashMap $typeBindings = new HashMap<>(); + if($T5.match(R_0.getType(), $typeBindings)){ + if(true){ + if($T3.match(S_1.getType(), $typeBindings)){ + if(true){ + final ISetWriter $setwriter9 = (ISetWriter)$RVF.setWriter(); + ; + $SCOMP10_GEN1537: + for(IValue $elem11_for : ((ISet)R_0)){ + IValue $elem11 = (IValue) $elem11_for; + final IValue $tuple_subject12 = ((IValue)($elem11)); + if($tuple_subject12 instanceof ITuple && ((ITuple)$tuple_subject12).arity() == 3){ + /*muExists*/$SCOMP10_GEN1537_TUPLE: + do { + if(true){ + IValue V0_2 = null; + if(true){ + IValue V1_3 = null; + if(true){ + IValue V2_4 = null; + if((((IBool)($RVF.bool(((ISet)S_1).contains(((IValue)($subscript_int(((IValue)($tuple_subject12)),0)))))))).getValue()){ + if((((IBool)($RVF.bool(((ISet)S_1).contains(((IValue)($subscript_int(((IValue)($tuple_subject12)),1)))))))).getValue()){ + if((((IBool)($RVF.bool(((ISet)S_1).contains(((IValue)($subscript_int(((IValue)($tuple_subject12)),2)))))))).getValue()){ + $setwriter9.insert($RVF.tuple(((IValue)($subscript_int(((IValue)($tuple_subject12)),0))), ((IValue)($subscript_int(((IValue)($tuple_subject12)),1))), ((IValue)($subscript_int(((IValue)($tuple_subject12)),2))))); + + } else { + continue $SCOMP10_GEN1537_TUPLE; + } + + } else { + continue $SCOMP10_GEN1537_TUPLE; + } + + } else { + continue $SCOMP10_GEN1537_TUPLE; + } + + } else { + continue $SCOMP10_GEN1537_TUPLE;/*computeFail*/ + } + } else { + continue $SCOMP10_GEN1537_TUPLE;/*computeFail*/ + } + } else { + continue $SCOMP10_GEN1537; + } + } while(false); + + } else { + continue $SCOMP10_GEN1537; + } + } + + final ISet $result13 = ((ISet)($setwriter9.done())); + if($T31.instantiate($typeBindings) != $TF.voidType() && $isSubtypeOf($result13.getType(),$T31)){ + return ((ISet)($result13)); + + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Relation.rsc|(1597,171,<68,0>,<71,1>) + public ISet Relation_carrierR$52b35d289144910a(ISet R_0, ISet S_1){ + + + HashMap $typeBindings = new HashMap<>(); + if($T6.match(R_0.getType(), $typeBindings)){ + if(true){ + if($T3.match(S_1.getType(), $typeBindings)){ + if(true){ + final ISetWriter $setwriter14 = (ISetWriter)$RVF.setWriter(); + ; + $SCOMP15_GEN1694: + for(IValue $elem16_for : ((ISet)R_0)){ + IValue $elem16 = (IValue) $elem16_for; + final IValue $tuple_subject17 = ((IValue)($elem16)); + if($tuple_subject17 instanceof ITuple && ((ITuple)$tuple_subject17).arity() == 4){ + /*muExists*/$SCOMP15_GEN1694_TUPLE: + do { + if(true){ + IValue V0_2 = null; + if(true){ + IValue V1_3 = null; + if(true){ + IValue V2_4 = null; + if(true){ + IValue V3_5 = null; + if((((IBool)($RVF.bool(((ISet)S_1).contains(((IValue)($subscript_int(((IValue)($tuple_subject17)),0)))))))).getValue()){ + if((((IBool)($RVF.bool(((ISet)S_1).contains(((IValue)($subscript_int(((IValue)($tuple_subject17)),1)))))))).getValue()){ + if((((IBool)($RVF.bool(((ISet)S_1).contains(((IValue)($subscript_int(((IValue)($tuple_subject17)),2)))))))).getValue()){ + if((((IBool)($RVF.bool(((ISet)S_1).contains(((IValue)($subscript_int(((IValue)($tuple_subject17)),3)))))))).getValue()){ + $setwriter14.insert($RVF.tuple(((IValue)($subscript_int(((IValue)($tuple_subject17)),0))), ((IValue)($subscript_int(((IValue)($tuple_subject17)),1))), ((IValue)($subscript_int(((IValue)($tuple_subject17)),2))), ((IValue)($subscript_int(((IValue)($tuple_subject17)),3))))); + + } else { + continue $SCOMP15_GEN1694_TUPLE; + } + + } else { + continue $SCOMP15_GEN1694_TUPLE; + } + + } else { + continue $SCOMP15_GEN1694_TUPLE; + } + + } else { + continue $SCOMP15_GEN1694_TUPLE; + } + + } else { + continue $SCOMP15_GEN1694_TUPLE;/*computeFail*/ + } + } else { + continue $SCOMP15_GEN1694_TUPLE;/*computeFail*/ + } + } else { + continue $SCOMP15_GEN1694_TUPLE;/*computeFail*/ + } + } else { + continue $SCOMP15_GEN1694; + } + } while(false); + + } else { + continue $SCOMP15_GEN1694; + } + } + + final ISet $result18 = ((ISet)($setwriter14.done())); + if($T32.instantiate($typeBindings) != $TF.voidType() && $isSubtypeOf($result18.getType(),$T32)){ + return ((ISet)($result18)); + + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Relation.rsc|(1770,232,<73,0>,<77,1>) + public ISet Relation_carrierR$eb31e23e51d7fd68(ISet R_0, ISet S_1){ + + + HashMap $typeBindings = new HashMap<>(); + if($T0.match(R_0.getType(), $typeBindings)){ + if(true){ + if($T3.match(S_1.getType(), $typeBindings)){ + if(true){ + final ISetWriter $setwriter19 = (ISetWriter)$RVF.setWriter(); + ; + $SCOMP20_GEN1877: + for(IValue $elem21_for : ((ISet)R_0)){ + IValue $elem21 = (IValue) $elem21_for; + final IValue $tuple_subject22 = ((IValue)($elem21)); + if($tuple_subject22 instanceof ITuple && ((ITuple)$tuple_subject22).arity() == 5){ + /*muExists*/$SCOMP20_GEN1877_TUPLE: + do { + if(true){ + IValue V0_2 = null; + if(true){ + IValue V1_3 = null; + if(true){ + IValue V2_4 = null; + if(true){ + IValue V3_5 = null; + if(true){ + IValue V4_6 = null; + if((((IBool)($RVF.bool(((ISet)S_1).contains(((IValue)($subscript_int(((IValue)($tuple_subject22)),0)))))))).getValue()){ + if((((IBool)($RVF.bool(((ISet)S_1).contains(((IValue)($subscript_int(((IValue)($tuple_subject22)),1)))))))).getValue()){ + if((((IBool)($RVF.bool(((ISet)S_1).contains(((IValue)($subscript_int(((IValue)($tuple_subject22)),2)))))))).getValue()){ + if((((IBool)($RVF.bool(((ISet)S_1).contains(((IValue)($subscript_int(((IValue)($tuple_subject22)),3)))))))).getValue()){ + if((((IBool)($RVF.bool(((ISet)S_1).contains(((IValue)($subscript_int(((IValue)($tuple_subject22)),4)))))))).getValue()){ + $setwriter19.insert($RVF.tuple(((IValue)($subscript_int(((IValue)($tuple_subject22)),0))), ((IValue)($subscript_int(((IValue)($tuple_subject22)),1))), ((IValue)($subscript_int(((IValue)($tuple_subject22)),2))), ((IValue)($subscript_int(((IValue)($tuple_subject22)),3))), ((IValue)($subscript_int(((IValue)($tuple_subject22)),4))))); + + } else { + continue $SCOMP20_GEN1877_TUPLE; + } + + } else { + continue $SCOMP20_GEN1877_TUPLE; + } + + } else { + continue $SCOMP20_GEN1877_TUPLE; + } + + } else { + continue $SCOMP20_GEN1877_TUPLE; + } + + } else { + continue $SCOMP20_GEN1877_TUPLE; + } + + } else { + continue $SCOMP20_GEN1877_TUPLE;/*computeFail*/ + } + } else { + continue $SCOMP20_GEN1877_TUPLE;/*computeFail*/ + } + } else { + continue $SCOMP20_GEN1877_TUPLE;/*computeFail*/ + } + } else { + continue $SCOMP20_GEN1877_TUPLE;/*computeFail*/ + } + } else { + continue $SCOMP20_GEN1877; + } + } while(false); + + } else { + continue $SCOMP20_GEN1877; + } + } + + final ISet $result23 = ((ISet)($setwriter19.done())); + if($T33.instantiate($typeBindings) != $TF.voidType() && $isSubtypeOf($result23.getType(),$T33)){ + return ((ISet)($result23)); + + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Relation.rsc|(2005,545,<80,0>,<101,1>) + public ISet Relation_carrierX$5e8f4248c208f606(ISet R_0, ISet S_1){ + + + HashMap $typeBindings = new HashMap<>(); + if($T4.match(R_0.getType(), $typeBindings)){ + if(true){ + if($T3.match(S_1.getType(), $typeBindings)){ + if(true){ + final ISetWriter $setwriter24 = (ISetWriter)$RVF.setWriter(); + ; + $SCOMP25_GEN2502: + for(IValue $elem26_for : ((ISet)R_0)){ + IValue $elem26 = (IValue) $elem26_for; + final IValue $tuple_subject27 = ((IValue)($elem26)); + if($tuple_subject27 instanceof ITuple && ((ITuple)$tuple_subject27).arity() == 2){ + /*muExists*/$SCOMP25_GEN2502_TUPLE: + do { + if(true){ + IValue V0_2 = null; + if(true){ + IValue V1_3 = null; + if((((IBool)($RVF.bool(!(((ISet)S_1)).contains(((IValue)($subscript_int(((IValue)($tuple_subject27)),0)))))))).getValue()){ + if((((IBool)($RVF.bool(!(((ISet)S_1)).contains(((IValue)($subscript_int(((IValue)($tuple_subject27)),1)))))))).getValue()){ + $setwriter24.insert($RVF.tuple(((IValue)($subscript_int(((IValue)($tuple_subject27)),0))), ((IValue)($subscript_int(((IValue)($tuple_subject27)),1))))); + + } else { + continue $SCOMP25_GEN2502_TUPLE; + } + + } else { + continue $SCOMP25_GEN2502_TUPLE; + } + + } else { + continue $SCOMP25_GEN2502_TUPLE;/*computeFail*/ + } + } else { + continue $SCOMP25_GEN2502; + } + } while(false); + + } else { + continue $SCOMP25_GEN2502; + } + } + + final ISet $result28 = ((ISet)($setwriter24.done())); + if($T30.instantiate($typeBindings) != $TF.voidType() && $isSubtypeOf($result28.getType(),$T30)){ + return ((ISet)($result28)); + + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Relation.rsc|(2552,154,<103,0>,<106,1>) + public ISet Relation_carrierX$7005b62f0e805b5f(ISet R_0, ISet S_1){ + + + HashMap $typeBindings = new HashMap<>(); + if($T5.match(R_0.getType(), $typeBindings)){ + if(true){ + if($T3.match(S_1.getType(), $typeBindings)){ + if(true){ + final ISetWriter $setwriter29 = (ISetWriter)$RVF.setWriter(); + ; + $SCOMP30_GEN2639: + for(IValue $elem31_for : ((ISet)R_0)){ + IValue $elem31 = (IValue) $elem31_for; + final IValue $tuple_subject32 = ((IValue)($elem31)); + if($tuple_subject32 instanceof ITuple && ((ITuple)$tuple_subject32).arity() == 3){ + /*muExists*/$SCOMP30_GEN2639_TUPLE: + do { + if(true){ + IValue V0_2 = null; + if(true){ + IValue V1_3 = null; + if(true){ + IValue V2_4 = null; + if((((IBool)($RVF.bool(!(((ISet)S_1)).contains(((IValue)($subscript_int(((IValue)($tuple_subject32)),0)))))))).getValue()){ + if((((IBool)($RVF.bool(!(((ISet)S_1)).contains(((IValue)($subscript_int(((IValue)($tuple_subject32)),1)))))))).getValue()){ + if((((IBool)($RVF.bool(!(((ISet)S_1)).contains(((IValue)($subscript_int(((IValue)($tuple_subject32)),2)))))))).getValue()){ + $setwriter29.insert($RVF.tuple(((IValue)($subscript_int(((IValue)($tuple_subject32)),0))), ((IValue)($subscript_int(((IValue)($tuple_subject32)),1))), ((IValue)($subscript_int(((IValue)($tuple_subject32)),2))))); + + } else { + continue $SCOMP30_GEN2639_TUPLE; + } + + } else { + continue $SCOMP30_GEN2639_TUPLE; + } + + } else { + continue $SCOMP30_GEN2639_TUPLE; + } + + } else { + continue $SCOMP30_GEN2639_TUPLE;/*computeFail*/ + } + } else { + continue $SCOMP30_GEN2639_TUPLE;/*computeFail*/ + } + } else { + continue $SCOMP30_GEN2639; + } + } while(false); + + } else { + continue $SCOMP30_GEN2639; + } + } + + final ISet $result33 = ((ISet)($setwriter29.done())); + if($T31.instantiate($typeBindings) != $TF.voidType() && $isSubtypeOf($result33.getType(),$T31)){ + return ((ISet)($result33)); + + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Relation.rsc|(2708,183,<108,0>,<111,1>) + public ISet Relation_carrierX$c8228c40b970c38b(ISet R_0, ISet S_1){ + + + HashMap $typeBindings = new HashMap<>(); + if($T6.match(R_0.getType(), $typeBindings)){ + if(true){ + if($T3.match(S_1.getType(), $typeBindings)){ + if(true){ + final ISetWriter $setwriter34 = (ISetWriter)$RVF.setWriter(); + ; + $SCOMP35_GEN2805: + for(IValue $elem36_for : ((ISet)R_0)){ + IValue $elem36 = (IValue) $elem36_for; + final IValue $tuple_subject37 = ((IValue)($elem36)); + if($tuple_subject37 instanceof ITuple && ((ITuple)$tuple_subject37).arity() == 4){ + /*muExists*/$SCOMP35_GEN2805_TUPLE: + do { + if(true){ + IValue V0_2 = null; + if(true){ + IValue V1_3 = null; + if(true){ + IValue V2_4 = null; + if(true){ + IValue V3_5 = null; + if((((IBool)($RVF.bool(!(((ISet)S_1)).contains(((IValue)($subscript_int(((IValue)($tuple_subject37)),0)))))))).getValue()){ + if((((IBool)($RVF.bool(!(((ISet)S_1)).contains(((IValue)($subscript_int(((IValue)($tuple_subject37)),1)))))))).getValue()){ + if((((IBool)($RVF.bool(!(((ISet)S_1)).contains(((IValue)($subscript_int(((IValue)($tuple_subject37)),2)))))))).getValue()){ + if((((IBool)($RVF.bool(!(((ISet)S_1)).contains(((IValue)($subscript_int(((IValue)($tuple_subject37)),3)))))))).getValue()){ + $setwriter34.insert($RVF.tuple(((IValue)($subscript_int(((IValue)($tuple_subject37)),0))), ((IValue)($subscript_int(((IValue)($tuple_subject37)),1))), ((IValue)($subscript_int(((IValue)($tuple_subject37)),2))), ((IValue)($subscript_int(((IValue)($tuple_subject37)),3))))); + + } else { + continue $SCOMP35_GEN2805_TUPLE; + } + + } else { + continue $SCOMP35_GEN2805_TUPLE; + } + + } else { + continue $SCOMP35_GEN2805_TUPLE; + } + + } else { + continue $SCOMP35_GEN2805_TUPLE; + } + + } else { + continue $SCOMP35_GEN2805_TUPLE;/*computeFail*/ + } + } else { + continue $SCOMP35_GEN2805_TUPLE;/*computeFail*/ + } + } else { + continue $SCOMP35_GEN2805_TUPLE;/*computeFail*/ + } + } else { + continue $SCOMP35_GEN2805; + } + } while(false); + + } else { + continue $SCOMP35_GEN2805; + } + } + + final ISet $result38 = ((ISet)($setwriter34.done())); + if($T32.instantiate($typeBindings) != $TF.voidType() && $isSubtypeOf($result38.getType(),$T32)){ + return ((ISet)($result38)); + + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Relation.rsc|(2893,247,<113,0>,<117,1>) + public ISet Relation_carrierX$dc7d4f1475a31c1a(ISet R_0, ISet S_1){ + + + HashMap $typeBindings = new HashMap<>(); + if($T0.match(R_0.getType(), $typeBindings)){ + if(true){ + if($T3.match(S_1.getType(), $typeBindings)){ + if(true){ + final ISetWriter $setwriter39 = (ISetWriter)$RVF.setWriter(); + ; + $SCOMP40_GEN3000: + for(IValue $elem41_for : ((ISet)R_0)){ + IValue $elem41 = (IValue) $elem41_for; + final IValue $tuple_subject42 = ((IValue)($elem41)); + if($tuple_subject42 instanceof ITuple && ((ITuple)$tuple_subject42).arity() == 5){ + /*muExists*/$SCOMP40_GEN3000_TUPLE: + do { + if(true){ + IValue V0_2 = null; + if(true){ + IValue V1_3 = null; + if(true){ + IValue V2_4 = null; + if(true){ + IValue V3_5 = null; + if(true){ + IValue V4_6 = null; + if((((IBool)($RVF.bool(!(((ISet)S_1)).contains(((IValue)($subscript_int(((IValue)($tuple_subject42)),0)))))))).getValue()){ + if((((IBool)($RVF.bool(!(((ISet)S_1)).contains(((IValue)($subscript_int(((IValue)($tuple_subject42)),1)))))))).getValue()){ + if((((IBool)($RVF.bool(!(((ISet)S_1)).contains(((IValue)($subscript_int(((IValue)($tuple_subject42)),2)))))))).getValue()){ + if((((IBool)($RVF.bool(!(((ISet)S_1)).contains(((IValue)($subscript_int(((IValue)($tuple_subject42)),3)))))))).getValue()){ + if((((IBool)($RVF.bool(!(((ISet)S_1)).contains(((IValue)($subscript_int(((IValue)($tuple_subject42)),4)))))))).getValue()){ + $setwriter39.insert($RVF.tuple(((IValue)($subscript_int(((IValue)($tuple_subject42)),0))), ((IValue)($subscript_int(((IValue)($tuple_subject42)),1))), ((IValue)($subscript_int(((IValue)($tuple_subject42)),2))), ((IValue)($subscript_int(((IValue)($tuple_subject42)),3))), ((IValue)($subscript_int(((IValue)($tuple_subject42)),4))))); + + } else { + continue $SCOMP40_GEN3000_TUPLE; + } + + } else { + continue $SCOMP40_GEN3000_TUPLE; + } + + } else { + continue $SCOMP40_GEN3000_TUPLE; + } + + } else { + continue $SCOMP40_GEN3000_TUPLE; + } + + } else { + continue $SCOMP40_GEN3000_TUPLE; + } + + } else { + continue $SCOMP40_GEN3000_TUPLE;/*computeFail*/ + } + } else { + continue $SCOMP40_GEN3000_TUPLE;/*computeFail*/ + } + } else { + continue $SCOMP40_GEN3000_TUPLE;/*computeFail*/ + } + } else { + continue $SCOMP40_GEN3000_TUPLE;/*computeFail*/ + } + } else { + continue $SCOMP40_GEN3000; + } + } while(false); + + } else { + continue $SCOMP40_GEN3000; + } + } + + final ISet $result43 = ((ISet)($setwriter39.done())); + if($T33.instantiate($typeBindings) != $TF.voidType() && $isSubtypeOf($result43.getType(),$T33)){ + return ((ISet)($result43)); + + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Relation.rsc|(3143,713,<120,0>,<144,1>) + public ISet Relation_complement$4bb4b4dc0b4215a5(ISet R_0){ + + + HashMap $typeBindings = new HashMap<>(); + if($T16.match(R_0.getType(), $typeBindings)){ + final ISet $result44 = ((ISet)(((ISet)($aset_product_aset(((ISet)($me.domain(((ISet)R_0)))),((ISet)($me.range(((ISet)R_0))))))).subtract(((ISet)R_0)))); + if($T34.instantiate($typeBindings) != $TF.voidType() && $isSubtypeOf($result44.getType(),$T34)){ + return ((ISet)($result44)); + + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Relation.rsc|(3858,159,<146,0>,<149,1>) + public ISet Relation_complement$00086bfeeba07066(ISet R_0){ + + + HashMap $typeBindings = new HashMap<>(); + if($T17.match(R_0.getType(), $typeBindings)){ + if(true){ + final ISetWriter $setwriter45 = (ISetWriter)$RVF.setWriter(); + ; + $SCOMP46_GEN3944: + for(IValue $elem49_for : ((ISet)($arel_field_project((ISet)((ISet)R_0), ((IInteger)$constants.get(0)/*0*/))))){ + IValue $elem49 = (IValue) $elem49_for; + if($isSubtypeOf($elem49.getType(),$T35.instantiate($typeBindings))){ + IValue V0_1 = null; + $SCOMP46_GEN3944_GEN3960: + for(IValue $elem48_for : ((ISet)($arel_field_project((ISet)((ISet)R_0), ((IInteger)$constants.get(1)/*1*/))))){ + IValue $elem48 = (IValue) $elem48_for; + if($isSubtypeOf($elem48.getType(),$T36.instantiate($typeBindings))){ + IValue V1_2 = null; + $SCOMP46_GEN3944_GEN3960_GEN3977: + for(IValue $elem47_for : ((ISet)($arel_field_project((ISet)((ISet)R_0), ((IInteger)$constants.get(2)/*2*/))))){ + IValue $elem47 = (IValue) $elem47_for; + if($isSubtypeOf($elem47.getType(),$T37.instantiate($typeBindings))){ + IValue V2_3 = null; + if((((IBool)($RVF.bool(!(((ISet)R_0)).contains(((ITuple)($RVF.tuple(((IValue)($elem49)), ((IValue)($elem48)), ((IValue)($elem47)))))))))).getValue()){ + $setwriter45.insert($RVF.tuple(((IValue)($elem49)), ((IValue)($elem48)), ((IValue)($elem47)))); + + } else { + continue $SCOMP46_GEN3944_GEN3960_GEN3977; + } + + } else { + continue $SCOMP46_GEN3944_GEN3960_GEN3977; + } + } + continue $SCOMP46_GEN3944_GEN3960; + + } else { + continue $SCOMP46_GEN3944_GEN3960; + } + } + continue $SCOMP46_GEN3944; + + } else { + continue $SCOMP46_GEN3944; + } + } + + final ISet $result50 = ((ISet)($setwriter45.done())); + if($T38.instantiate($typeBindings) != $TF.voidType() && $isSubtypeOf($result50.getType(),$T38)){ + return ((ISet)($result50)); + + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Relation.rsc|(4019,193,<151,0>,<154,1>) + public ISet Relation_complement$1dc10ce8d46ef909(ISet R_0){ + + + HashMap $typeBindings = new HashMap<>(); + if($T18.match(R_0.getType(), $typeBindings)){ + if(true){ + final ISetWriter $setwriter51 = (ISetWriter)$RVF.setWriter(); + ; + $SCOMP52_GEN4119: + for(IValue $elem56_for : ((ISet)($arel_field_project((ISet)((ISet)R_0), ((IInteger)$constants.get(0)/*0*/))))){ + IValue $elem56 = (IValue) $elem56_for; + if($isSubtypeOf($elem56.getType(),$T35.instantiate($typeBindings))){ + IValue V0_1 = null; + $SCOMP52_GEN4119_GEN4135: + for(IValue $elem55_for : ((ISet)($arel_field_project((ISet)((ISet)R_0), ((IInteger)$constants.get(1)/*1*/))))){ + IValue $elem55 = (IValue) $elem55_for; + if($isSubtypeOf($elem55.getType(),$T36.instantiate($typeBindings))){ + IValue V1_2 = null; + $SCOMP52_GEN4119_GEN4135_GEN4152: + for(IValue $elem54_for : ((ISet)($arel_field_project((ISet)((ISet)R_0), ((IInteger)$constants.get(2)/*2*/))))){ + IValue $elem54 = (IValue) $elem54_for; + if($isSubtypeOf($elem54.getType(),$T37.instantiate($typeBindings))){ + IValue V2_3 = null; + $SCOMP52_GEN4119_GEN4135_GEN4152_GEN4168: + for(IValue $elem53_for : ((ISet)($arel_field_project((ISet)((ISet)R_0), ((IInteger)$constants.get(3)/*3*/))))){ + IValue $elem53 = (IValue) $elem53_for; + if($isSubtypeOf($elem53.getType(),$T39.instantiate($typeBindings))){ + IValue V3_4 = null; + if((((IBool)($RVF.bool(!(((ISet)R_0)).contains(((ITuple)($RVF.tuple(((IValue)($elem56)), ((IValue)($elem55)), ((IValue)($elem54)), ((IValue)($elem53)))))))))).getValue()){ + $setwriter51.insert($RVF.tuple(((IValue)($elem56)), ((IValue)($elem55)), ((IValue)($elem54)), ((IValue)($elem53)))); + + } else { + continue $SCOMP52_GEN4119_GEN4135_GEN4152_GEN4168; + } + + } else { + continue $SCOMP52_GEN4119_GEN4135_GEN4152_GEN4168; + } + } + continue $SCOMP52_GEN4119_GEN4135_GEN4152; + + } else { + continue $SCOMP52_GEN4119_GEN4135_GEN4152; + } + } + continue $SCOMP52_GEN4119_GEN4135; + + } else { + continue $SCOMP52_GEN4119_GEN4135; + } + } + continue $SCOMP52_GEN4119; + + } else { + continue $SCOMP52_GEN4119; + } + } + + final ISet $result57 = ((ISet)($setwriter51.done())); + if($T40.instantiate($typeBindings) != $TF.voidType() && $isSubtypeOf($result57.getType(),$T40)){ + return ((ISet)($result57)); + + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Relation.rsc|(4214,261,<156,0>,<160,1>) + public ISet Relation_complement$56d58cd1d8429e72(ISet R_0){ + + + HashMap $typeBindings = new HashMap<>(); + if($T10.match(R_0.getType(), $typeBindings)){ + if(true){ + final ISetWriter $setwriter58 = (ISetWriter)$RVF.setWriter(); + ; + $SCOMP59_GEN4328: + for(IValue $elem64_for : ((ISet)($arel_field_project((ISet)((ISet)R_0), ((IInteger)$constants.get(0)/*0*/))))){ + IValue $elem64 = (IValue) $elem64_for; + if($isSubtypeOf($elem64.getType(),$T35.instantiate($typeBindings))){ + IValue V0_1 = null; + $SCOMP59_GEN4328_GEN4344: + for(IValue $elem63_for : ((ISet)($arel_field_project((ISet)((ISet)R_0), ((IInteger)$constants.get(1)/*1*/))))){ + IValue $elem63 = (IValue) $elem63_for; + if($isSubtypeOf($elem63.getType(),$T36.instantiate($typeBindings))){ + IValue V1_2 = null; + $SCOMP59_GEN4328_GEN4344_GEN4361: + for(IValue $elem62_for : ((ISet)($arel_field_project((ISet)((ISet)R_0), ((IInteger)$constants.get(2)/*2*/))))){ + IValue $elem62 = (IValue) $elem62_for; + if($isSubtypeOf($elem62.getType(),$T37.instantiate($typeBindings))){ + IValue V2_3 = null; + $SCOMP59_GEN4328_GEN4344_GEN4361_GEN4377: + for(IValue $elem61_for : ((ISet)($arel_field_project((ISet)((ISet)R_0), ((IInteger)$constants.get(3)/*3*/))))){ + IValue $elem61 = (IValue) $elem61_for; + if($isSubtypeOf($elem61.getType(),$T39.instantiate($typeBindings))){ + IValue V3_4 = null; + $SCOMP59_GEN4328_GEN4344_GEN4361_GEN4377_GEN4427: + for(IValue $elem60_for : ((ISet)($arel_field_project((ISet)((ISet)R_0), ((IInteger)$constants.get(4)/*4*/))))){ + IValue $elem60 = (IValue) $elem60_for; + if($isSubtypeOf($elem60.getType(),$T41.instantiate($typeBindings))){ + IValue V4_5 = null; + if((((IBool)($RVF.bool(!(((ISet)R_0)).contains(((ITuple)($RVF.tuple(((IValue)($elem64)), ((IValue)($elem63)), ((IValue)($elem62)), ((IValue)($elem61)), ((IValue)($elem60)))))))))).getValue()){ + $setwriter58.insert($RVF.tuple(((IValue)($elem64)), ((IValue)($elem63)), ((IValue)($elem62)), ((IValue)($elem61)), ((IValue)($elem60)))); + + } else { + continue $SCOMP59_GEN4328_GEN4344_GEN4361_GEN4377_GEN4427; + } + + } else { + continue $SCOMP59_GEN4328_GEN4344_GEN4361_GEN4377_GEN4427; + } + } + continue $SCOMP59_GEN4328_GEN4344_GEN4361_GEN4377; + + } else { + continue $SCOMP59_GEN4328_GEN4344_GEN4361_GEN4377; + } + } + continue $SCOMP59_GEN4328_GEN4344_GEN4361; + + } else { + continue $SCOMP59_GEN4328_GEN4344_GEN4361; + } + } + continue $SCOMP59_GEN4328_GEN4344; + + } else { + continue $SCOMP59_GEN4328_GEN4344; + } + } + continue $SCOMP59_GEN4328; + + } else { + continue $SCOMP59_GEN4328; + } + } + + final ISet $result65 = ((ISet)($setwriter58.done())); + if($T42.instantiate($typeBindings) != $TF.voidType() && $isSubtypeOf($result65.getType(),$T42)){ + return ((ISet)($result65)); + + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Relation.rsc|(4478,255,<163,0>,<174,1>) + public ISet Relation_domain$82c6d674586e8686(ISet R_0){ + + + HashMap $typeBindings = new HashMap<>(); + if($T16.match(R_0.getType(), $typeBindings)){ + final ISet $result66 = ((ISet)($arel_field_project((ISet)((ISet)R_0), ((IInteger)$constants.get(0)/*0*/)))); + if($T43.instantiate($typeBindings) != $TF.voidType() && $isSubtypeOf($result66.getType(),$T43)){ + return ((ISet)($result66)); + + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Relation.rsc|(4735,64,<176,0>,<179,3>) + public ISet Relation_domain$2a41e81f2232a510(ISet R_0){ + + + HashMap $typeBindings = new HashMap<>(); + if($T17.match(R_0.getType(), $typeBindings)){ + final ISet $result67 = ((ISet)($arel_field_project((ISet)((ISet)R_0), ((IInteger)$constants.get(0)/*0*/)))); + if($T43.instantiate($typeBindings) != $TF.voidType() && $isSubtypeOf($result67.getType(),$T43)){ + return ((ISet)($result67)); + + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Relation.rsc|(4801,66,<181,0>,<184,1>) + public ISet Relation_domain$ceb529b2fc10d7d4(ISet R_0){ + + + HashMap $typeBindings = new HashMap<>(); + if($T18.match(R_0.getType(), $typeBindings)){ + final ISet $result68 = ((ISet)($arel_field_project((ISet)((ISet)R_0), ((IInteger)$constants.get(0)/*0*/)))); + if($T43.instantiate($typeBindings) != $TF.voidType() && $isSubtypeOf($result68.getType(),$T43)){ + return ((ISet)($result68)); + + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Relation.rsc|(4869,70,<186,0>,<189,1>) + public ISet Relation_domain$7e7cc8be3201741e(ISet R_0){ + + + HashMap $typeBindings = new HashMap<>(); + if($T10.match(R_0.getType(), $typeBindings)){ + final ISet $result69 = ((ISet)($arel_field_project((ISet)((ISet)R_0), ((IInteger)$constants.get(0)/*0*/)))); + if($T43.instantiate($typeBindings) != $TF.voidType() && $isSubtypeOf($result69.getType(),$T43)){ + return ((ISet)($result69)); + + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Relation.rsc|(4942,351,<192,0>,<205,1>) + public ISet Relation_domainR$6df70016a64d6b6b(ISet R_0, ISet S_1){ + + + HashMap $typeBindings = new HashMap<>(); + if($T16.match(R_0.getType(), $typeBindings)){ + if(true){ + if($T19.match(S_1.getType(), $typeBindings)){ + if(true){ + final ISetWriter $setwriter70 = (ISetWriter)$RVF.setWriter(); + ; + $SCOMP71_GEN5258: + for(IValue $elem72_for : ((ISet)R_0)){ + IValue $elem72 = (IValue) $elem72_for; + final IValue $tuple_subject73 = ((IValue)($elem72)); + if($tuple_subject73 instanceof ITuple && ((ITuple)$tuple_subject73).arity() == 2){ + /*muExists*/$SCOMP71_GEN5258_TUPLE: + do { + if(true){ + IValue V0_2 = null; + if(true){ + IValue V1_3 = null; + if((((IBool)($RVF.bool(((ISet)S_1).contains(((IValue)($subscript_int(((IValue)($tuple_subject73)),0)))))))).getValue()){ + $setwriter70.insert($RVF.tuple(((IValue)($subscript_int(((IValue)($tuple_subject73)),0))), ((IValue)($subscript_int(((IValue)($tuple_subject73)),1))))); + + } else { + continue $SCOMP71_GEN5258_TUPLE; + } + + } else { + continue $SCOMP71_GEN5258_TUPLE;/*computeFail*/ + } + } else { + continue $SCOMP71_GEN5258; + } + } while(false); + + } else { + continue $SCOMP71_GEN5258; + } + } + + final ISet $result74 = ((ISet)($setwriter70.done())); + if($T34.instantiate($typeBindings) != $TF.voidType() && $isSubtypeOf($result74.getType(),$T34)){ + return ((ISet)($result74)); + + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Relation.rsc|(5295,89,<207,0>,<208,37>) + public ISet Relation_domainR$c52c9514cb94dac5(ISet R_0, TypedFunctionInstance1 accept_1){ + + + HashMap $typeBindings = new HashMap<>(); + if($T20.match(R_0.getType(), $typeBindings)){ + if(true){ + if($T22.match(accept_1.getType(), $typeBindings)){ + if(true){ + final ISetWriter $setwriter75 = (ISetWriter)$RVF.setWriter(); + ; + $SCOMP76_GEN5361: + for(IValue $elem77_for : ((ISet)R_0)){ + IValue $elem77 = (IValue) $elem77_for; + final IValue $tuple_subject78 = ((IValue)($elem77)); + if($tuple_subject78 instanceof ITuple && ((ITuple)$tuple_subject78).arity() == 2){ + /*muExists*/$SCOMP76_GEN5361_TUPLE: + do { + IValue t_2 = null; + IValue u_3 = null; + if((((IBool)(((TypedFunctionInstance1)accept_1).typedCall(((IValue)($subscript_int(((IValue)($tuple_subject78)),0))))))).getValue()){ + $setwriter75.insert($RVF.tuple(((IValue)($subscript_int(((IValue)($tuple_subject78)),0))), ((IValue)($subscript_int(((IValue)($tuple_subject78)),1))))); + + } else { + continue $SCOMP76_GEN5361_TUPLE; + } + + } while(false); + + } else { + continue $SCOMP76_GEN5361; + } + } + + final ISet $result79 = ((ISet)($setwriter75.done())); + if($T44.instantiate($typeBindings) != $TF.voidType() && $isSubtypeOf($result79.getType(),$T44)){ + return ((ISet)($result79)); + + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Relation.rsc|(5386,136,<210,0>,<213,1>) + public ISet Relation_domainR$acdf919373377fa5(ISet R_0, ISet S_1){ + + + HashMap $typeBindings = new HashMap<>(); + if($T17.match(R_0.getType(), $typeBindings)){ + if(true){ + if($T19.match(S_1.getType(), $typeBindings)){ + if(true){ + final ISetWriter $setwriter80 = (ISetWriter)$RVF.setWriter(); + ; + $SCOMP81_GEN5479: + for(IValue $elem82_for : ((ISet)R_0)){ + IValue $elem82 = (IValue) $elem82_for; + final IValue $tuple_subject83 = ((IValue)($elem82)); + if($tuple_subject83 instanceof ITuple && ((ITuple)$tuple_subject83).arity() == 3){ + /*muExists*/$SCOMP81_GEN5479_TUPLE: + do { + if(true){ + IValue V0_2 = null; + if(true){ + IValue V1_3 = null; + if(true){ + IValue V2_4 = null; + if((((IBool)($RVF.bool(((ISet)S_1).contains(((IValue)($subscript_int(((IValue)($tuple_subject83)),0)))))))).getValue()){ + $setwriter80.insert($RVF.tuple(((IValue)($subscript_int(((IValue)($tuple_subject83)),0))), ((IValue)($subscript_int(((IValue)($tuple_subject83)),1))), ((IValue)($subscript_int(((IValue)($tuple_subject83)),2))))); + + } else { + continue $SCOMP81_GEN5479_TUPLE; + } + + } else { + continue $SCOMP81_GEN5479_TUPLE;/*computeFail*/ + } + } else { + continue $SCOMP81_GEN5479_TUPLE;/*computeFail*/ + } + } else { + continue $SCOMP81_GEN5479; + } + } while(false); + + } else { + continue $SCOMP81_GEN5479; + } + } + + final ISet $result84 = ((ISet)($setwriter80.done())); + if($T38.instantiate($typeBindings) != $TF.voidType() && $isSubtypeOf($result84.getType(),$T38)){ + return ((ISet)($result84)); + + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Relation.rsc|(5524,156,<215,0>,<218,1>) + public ISet Relation_domainR$4e560a92f3102f3a(ISet R_0, ISet S_1){ + + + HashMap $typeBindings = new HashMap<>(); + if($T18.match(R_0.getType(), $typeBindings)){ + if(true){ + if($T19.match(S_1.getType(), $typeBindings)){ + if(true){ + final ISetWriter $setwriter85 = (ISetWriter)$RVF.setWriter(); + ; + $SCOMP86_GEN5629: + for(IValue $elem87_for : ((ISet)R_0)){ + IValue $elem87 = (IValue) $elem87_for; + final IValue $tuple_subject88 = ((IValue)($elem87)); + if($tuple_subject88 instanceof ITuple && ((ITuple)$tuple_subject88).arity() == 4){ + /*muExists*/$SCOMP86_GEN5629_TUPLE: + do { + if(true){ + IValue V0_2 = null; + if(true){ + IValue V1_3 = null; + if(true){ + IValue V2_4 = null; + if(true){ + IValue V3_5 = null; + if((((IBool)($RVF.bool(((ISet)S_1).contains(((IValue)($subscript_int(((IValue)($tuple_subject88)),0)))))))).getValue()){ + $setwriter85.insert($RVF.tuple(((IValue)($subscript_int(((IValue)($tuple_subject88)),0))), ((IValue)($subscript_int(((IValue)($tuple_subject88)),1))), ((IValue)($subscript_int(((IValue)($tuple_subject88)),2))), ((IValue)($subscript_int(((IValue)($tuple_subject88)),3))))); + + } else { + continue $SCOMP86_GEN5629_TUPLE; + } + + } else { + continue $SCOMP86_GEN5629_TUPLE;/*computeFail*/ + } + } else { + continue $SCOMP86_GEN5629_TUPLE;/*computeFail*/ + } + } else { + continue $SCOMP86_GEN5629_TUPLE;/*computeFail*/ + } + } else { + continue $SCOMP86_GEN5629; + } + } while(false); + + } else { + continue $SCOMP86_GEN5629; + } + } + + final ISet $result89 = ((ISet)($setwriter85.done())); + if($T40.instantiate($typeBindings) != $TF.voidType() && $isSubtypeOf($result89.getType(),$T40)){ + return ((ISet)($result89)); + + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Relation.rsc|(5682,176,<220,0>,<223,1>) + public ISet Relation_domainR$c0b08c3c279262a0(ISet R_0, ISet S_1){ + + + HashMap $typeBindings = new HashMap<>(); + if($T10.match(R_0.getType(), $typeBindings)){ + if(true){ + if($T19.match(S_1.getType(), $typeBindings)){ + if(true){ + final ISetWriter $setwriter90 = (ISetWriter)$RVF.setWriter(); + ; + $SCOMP91_GEN5799: + for(IValue $elem92_for : ((ISet)R_0)){ + IValue $elem92 = (IValue) $elem92_for; + final IValue $tuple_subject93 = ((IValue)($elem92)); + if($tuple_subject93 instanceof ITuple && ((ITuple)$tuple_subject93).arity() == 5){ + /*muExists*/$SCOMP91_GEN5799_TUPLE: + do { + if(true){ + IValue V0_2 = null; + if(true){ + IValue V1_3 = null; + if(true){ + IValue V2_4 = null; + if(true){ + IValue V3_5 = null; + if(true){ + IValue V4_6 = null; + if((((IBool)($RVF.bool(((ISet)S_1).contains(((IValue)($subscript_int(((IValue)($tuple_subject93)),0)))))))).getValue()){ + $setwriter90.insert($RVF.tuple(((IValue)($subscript_int(((IValue)($tuple_subject93)),0))), ((IValue)($subscript_int(((IValue)($tuple_subject93)),1))), ((IValue)($subscript_int(((IValue)($tuple_subject93)),2))), ((IValue)($subscript_int(((IValue)($tuple_subject93)),3))), ((IValue)($subscript_int(((IValue)($tuple_subject93)),4))))); + + } else { + continue $SCOMP91_GEN5799_TUPLE; + } + + } else { + continue $SCOMP91_GEN5799_TUPLE;/*computeFail*/ + } + } else { + continue $SCOMP91_GEN5799_TUPLE;/*computeFail*/ + } + } else { + continue $SCOMP91_GEN5799_TUPLE;/*computeFail*/ + } + } else { + continue $SCOMP91_GEN5799_TUPLE;/*computeFail*/ + } + } else { + continue $SCOMP91_GEN5799; + } + } while(false); + + } else { + continue $SCOMP91_GEN5799; + } + } + + final ISet $result94 = ((ISet)($setwriter90.done())); + if($T42.instantiate($typeBindings) != $TF.voidType() && $isSubtypeOf($result94.getType(),$T42)){ + return ((ISet)($result94)); + + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Relation.rsc|(5861,337,<226,0>,<239,1>) + public ISet Relation_domainX$227b267edf852d93(ISet R_0, ISet S_1){ + + + HashMap $typeBindings = new HashMap<>(); + if($T16.match(R_0.getType(), $typeBindings)){ + if(true){ + if($T19.match(S_1.getType(), $typeBindings)){ + if(true){ + final ISetWriter $setwriter95 = (ISetWriter)$RVF.setWriter(); + ; + $SCOMP96_GEN6160: + for(IValue $elem97_for : ((ISet)R_0)){ + IValue $elem97 = (IValue) $elem97_for; + final IValue $tuple_subject98 = ((IValue)($elem97)); + if($tuple_subject98 instanceof ITuple && ((ITuple)$tuple_subject98).arity() == 2){ + /*muExists*/$SCOMP96_GEN6160_TUPLE: + do { + if(true){ + IValue V0_2 = null; + if(true){ + IValue V1_3 = null; + if((((IBool)($RVF.bool(!(((ISet)S_1)).contains(((IValue)($subscript_int(((IValue)($tuple_subject98)),0)))))))).getValue()){ + $setwriter95.insert($RVF.tuple(((IValue)($subscript_int(((IValue)($tuple_subject98)),0))), ((IValue)($subscript_int(((IValue)($tuple_subject98)),1))))); + + } else { + continue $SCOMP96_GEN6160_TUPLE; + } + + } else { + continue $SCOMP96_GEN6160_TUPLE;/*computeFail*/ + } + } else { + continue $SCOMP96_GEN6160; + } + } while(false); + + } else { + continue $SCOMP96_GEN6160; + } + } + + final ISet $result99 = ((ISet)($setwriter95.done())); + if($T34.instantiate($typeBindings) != $TF.voidType() && $isSubtypeOf($result99.getType(),$T34)){ + return ((ISet)($result99)); + + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Relation.rsc|(6200,139,<241,0>,<244,1>) + public ISet Relation_domainX$3378efc5bc069d9d(ISet R_0, ISet S_1){ + + + HashMap $typeBindings = new HashMap<>(); + if($T17.match(R_0.getType(), $typeBindings)){ + if(true){ + if($T19.match(S_1.getType(), $typeBindings)){ + if(true){ + final ISetWriter $setwriter100 = (ISetWriter)$RVF.setWriter(); + ; + $SCOMP101_GEN6293: + for(IValue $elem102_for : ((ISet)R_0)){ + IValue $elem102 = (IValue) $elem102_for; + final IValue $tuple_subject103 = ((IValue)($elem102)); + if($tuple_subject103 instanceof ITuple && ((ITuple)$tuple_subject103).arity() == 3){ + /*muExists*/$SCOMP101_GEN6293_TUPLE: + do { + if(true){ + IValue V0_2 = null; + if(true){ + IValue V1_3 = null; + if(true){ + IValue V2_4 = null; + if((((IBool)($RVF.bool(!(((ISet)S_1)).contains(((IValue)($subscript_int(((IValue)($tuple_subject103)),0)))))))).getValue()){ + $setwriter100.insert($RVF.tuple(((IValue)($subscript_int(((IValue)($tuple_subject103)),0))), ((IValue)($subscript_int(((IValue)($tuple_subject103)),1))), ((IValue)($subscript_int(((IValue)($tuple_subject103)),2))))); + + } else { + continue $SCOMP101_GEN6293_TUPLE; + } + + } else { + continue $SCOMP101_GEN6293_TUPLE;/*computeFail*/ + } + } else { + continue $SCOMP101_GEN6293_TUPLE;/*computeFail*/ + } + } else { + continue $SCOMP101_GEN6293; + } + } while(false); + + } else { + continue $SCOMP101_GEN6293; + } + } + + final ISet $result104 = ((ISet)($setwriter100.done())); + if($T38.instantiate($typeBindings) != $TF.voidType() && $isSubtypeOf($result104.getType(),$T38)){ + return ((ISet)($result104)); + + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Relation.rsc|(6341,159,<246,0>,<249,1>) + public ISet Relation_domainX$7ed378a6babc8601(ISet R_0, ISet S_1){ + + + HashMap $typeBindings = new HashMap<>(); + if($T18.match(R_0.getType(), $typeBindings)){ + if(true){ + if($T19.match(S_1.getType(), $typeBindings)){ + if(true){ + final ISetWriter $setwriter105 = (ISetWriter)$RVF.setWriter(); + ; + $SCOMP106_GEN6446: + for(IValue $elem107_for : ((ISet)R_0)){ + IValue $elem107 = (IValue) $elem107_for; + final IValue $tuple_subject108 = ((IValue)($elem107)); + if($tuple_subject108 instanceof ITuple && ((ITuple)$tuple_subject108).arity() == 4){ + /*muExists*/$SCOMP106_GEN6446_TUPLE: + do { + if(true){ + IValue V0_2 = null; + if(true){ + IValue V1_3 = null; + if(true){ + IValue V2_4 = null; + if(true){ + IValue V3_5 = null; + if((((IBool)($RVF.bool(!(((ISet)S_1)).contains(((IValue)($subscript_int(((IValue)($tuple_subject108)),0)))))))).getValue()){ + $setwriter105.insert($RVF.tuple(((IValue)($subscript_int(((IValue)($tuple_subject108)),0))), ((IValue)($subscript_int(((IValue)($tuple_subject108)),1))), ((IValue)($subscript_int(((IValue)($tuple_subject108)),2))), ((IValue)($subscript_int(((IValue)($tuple_subject108)),3))))); + + } else { + continue $SCOMP106_GEN6446_TUPLE; + } + + } else { + continue $SCOMP106_GEN6446_TUPLE;/*computeFail*/ + } + } else { + continue $SCOMP106_GEN6446_TUPLE;/*computeFail*/ + } + } else { + continue $SCOMP106_GEN6446_TUPLE;/*computeFail*/ + } + } else { + continue $SCOMP106_GEN6446; + } + } while(false); + + } else { + continue $SCOMP106_GEN6446; + } + } + + final ISet $result109 = ((ISet)($setwriter105.done())); + if($T40.instantiate($typeBindings) != $TF.voidType() && $isSubtypeOf($result109.getType(),$T40)){ + return ((ISet)($result109)); + + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Relation.rsc|(6502,179,<251,0>,<254,1>) + public ISet Relation_domainX$b4c31366bacacc90(ISet R_0, ISet S_1){ + + + HashMap $typeBindings = new HashMap<>(); + if($T10.match(R_0.getType(), $typeBindings)){ + if(true){ + if($T19.match(S_1.getType(), $typeBindings)){ + if(true){ + final ISetWriter $setwriter110 = (ISetWriter)$RVF.setWriter(); + ; + $SCOMP111_GEN6619: + for(IValue $elem112_for : ((ISet)R_0)){ + IValue $elem112 = (IValue) $elem112_for; + final IValue $tuple_subject113 = ((IValue)($elem112)); + if($tuple_subject113 instanceof ITuple && ((ITuple)$tuple_subject113).arity() == 5){ + /*muExists*/$SCOMP111_GEN6619_TUPLE: + do { + if(true){ + IValue V0_2 = null; + if(true){ + IValue V1_3 = null; + if(true){ + IValue V2_4 = null; + if(true){ + IValue V3_5 = null; + if(true){ + IValue V4_6 = null; + if((((IBool)($RVF.bool(!(((ISet)S_1)).contains(((IValue)($subscript_int(((IValue)($tuple_subject113)),0)))))))).getValue()){ + $setwriter110.insert($RVF.tuple(((IValue)($subscript_int(((IValue)($tuple_subject113)),0))), ((IValue)($subscript_int(((IValue)($tuple_subject113)),1))), ((IValue)($subscript_int(((IValue)($tuple_subject113)),2))), ((IValue)($subscript_int(((IValue)($tuple_subject113)),3))), ((IValue)($subscript_int(((IValue)($tuple_subject113)),4))))); + + } else { + continue $SCOMP111_GEN6619_TUPLE; + } + + } else { + continue $SCOMP111_GEN6619_TUPLE;/*computeFail*/ + } + } else { + continue $SCOMP111_GEN6619_TUPLE;/*computeFail*/ + } + } else { + continue $SCOMP111_GEN6619_TUPLE;/*computeFail*/ + } + } else { + continue $SCOMP111_GEN6619_TUPLE;/*computeFail*/ + } + } else { + continue $SCOMP111_GEN6619; + } + } while(false); + + } else { + continue $SCOMP111_GEN6619; + } + } + + final ISet $result114 = ((ISet)($setwriter110.done())); + if($T42.instantiate($typeBindings) != $TF.voidType() && $isSubtypeOf($result114.getType(),$T42)){ + return ((ISet)($result114)); + + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Relation.rsc|(6684,407,<257,0>,<267,1>) + public ISet Relation_groupDomainByRange$327972fc187fd972(ISet input_0){ + + + HashMap $typeBindings = new HashMap<>(); + if($T7.match(input_0.getType(), $typeBindings)){ + final IMapWriter $mapwriter115 = (IMapWriter)$RVF.mapWriter(); + $MCOMP116_GEN7069: + for(IValue $elem117_for : ((ISet)($arel_field_project((ISet)((ISet)input_0), ((IInteger)$constants.get(1)/*1*/))))){ + IValue $elem117 = (IValue) $elem117_for; + IValue i_1 = null; + $mapwriter115.insert($RVF.tuple($elem117, $arel_subscript1_noset(((ISet)($arel_field_project((ISet)((ISet)input_0), ((IInteger)$constants.get(1)/*1*/), ((IInteger)$constants.get(0)/*0*/)))),((IValue)($elem117))))); + + } + + final ISet $result118 = ((ISet)($amap_field_project((IMap)((IMap)($mapwriter115.done())), ((IInteger)$constants.get(1)/*1*/)))); + if($T46.instantiate($typeBindings) != $TF.voidType() && $isSubtypeOf($result118.getType(),$T46)){ + return ((ISet)($result118)); + + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Relation.rsc|(7094,454,<270,0>,<280,1>) + public ISet Relation_groupRangeByDomain$bc2bb3150125fdcf(ISet input_0){ + + + HashMap $typeBindings = new HashMap<>(); + if($T7.match(input_0.getType(), $typeBindings)){ + final IMapWriter $mapwriter119 = (IMapWriter)$RVF.mapWriter(); + $MCOMP120_GEN7526: + for(IValue $elem121_for : ((ISet)($arel_field_project((ISet)((ISet)input_0), ((IInteger)$constants.get(0)/*0*/))))){ + IValue $elem121 = (IValue) $elem121_for; + IValue i_1 = null; + $mapwriter119.insert($RVF.tuple($elem121, $arel_subscript1_noset(((ISet)input_0),((IValue)($elem121))))); + + } + + final ISet $result122 = ((ISet)($amap_field_project((IMap)((IMap)($mapwriter119.done())), ((IInteger)$constants.get(1)/*1*/)))); + if($T48.instantiate($typeBindings) != $TF.voidType() && $isSubtypeOf($result122.getType(),$T48)){ + return ((ISet)($result122)); + + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Relation.rsc|(7551,233,<283,0>,<296,1>) + public ISet Relation_ident$5a8fd748b3a21c74(ISet S_0){ + + + HashMap $typeBindings = new HashMap<>(); + if($T3.match(S_0.getType(), $typeBindings)){ + final ISetWriter $setwriter123 = (ISetWriter)$RVF.setWriter(); + ; + $SCOMP124_GEN7774: + for(IValue $elem125_for : ((ISet)S_0)){ + IValue $elem125 = (IValue) $elem125_for; + IValue V_1 = null; + $setwriter123.insert($RVF.tuple(((IValue)($elem125)), ((IValue)($elem125)))); + + } + + final ISet $result126 = ((ISet)($setwriter123.done())); + if($T30.instantiate($typeBindings) != $TF.voidType() && $isSubtypeOf($result126.getType(),$T30)){ + return ((ISet)($result126)); + + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Relation.rsc|(7787,187,<299,0>,<309,1>) + public ISet Relation_invert$ab51fefa560e8d82(ISet R_0){ + + + HashMap $typeBindings = new HashMap<>(); + if($T16.match(R_0.getType(), $typeBindings)){ + final ISet $result127 = ((ISet)($arel_field_project((ISet)((ISet)R_0), ((IInteger)$constants.get(1)/*1*/), ((IInteger)$constants.get(0)/*0*/)))); + if($T49.instantiate($typeBindings) != $TF.voidType() && $isSubtypeOf($result127.getType(),$T49)){ + return ((ISet)($result127)); + + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Relation.rsc|(7976,80,<311,0>,<314,1>) + public ISet Relation_invert$02b31d4ba203e6f2(ISet R_0){ + + + HashMap $typeBindings = new HashMap<>(); + if($T17.match(R_0.getType(), $typeBindings)){ + final ISet $result128 = ((ISet)($arel_field_project((ISet)((ISet)R_0), ((IInteger)$constants.get(2)/*2*/), ((IInteger)$constants.get(1)/*1*/), ((IInteger)$constants.get(0)/*0*/)))); + if($T50.instantiate($typeBindings) != $TF.voidType() && $isSubtypeOf($result128.getType(),$T50)){ + return ((ISet)($result128)); + + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Relation.rsc|(8058,93,<316,0>,<319,1>) + public ISet Relation_invert$23c95694a74f9dc2(ISet R_0){ + + + HashMap $typeBindings = new HashMap<>(); + if($T18.match(R_0.getType(), $typeBindings)){ + final ISet $result129 = ((ISet)($arel_field_project((ISet)((ISet)R_0), ((IInteger)$constants.get(3)/*3*/), ((IInteger)$constants.get(2)/*2*/), ((IInteger)$constants.get(1)/*1*/), ((IInteger)$constants.get(0)/*0*/)))); + if($T51.instantiate($typeBindings) != $TF.voidType() && $isSubtypeOf($result129.getType(),$T51)){ + return ((ISet)($result129)); + + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Relation.rsc|(8153,106,<321,0>,<324,1>) + public ISet Relation_invert$7bfa0a46912a50e5(ISet R_0){ + + + HashMap $typeBindings = new HashMap<>(); + if($T10.match(R_0.getType(), $typeBindings)){ + final ISet $result130 = ((ISet)($arel_field_project((ISet)((ISet)R_0), ((IInteger)$constants.get(4)/*4*/), ((IInteger)$constants.get(3)/*3*/), ((IInteger)$constants.get(2)/*2*/), ((IInteger)$constants.get(1)/*1*/), ((IInteger)$constants.get(0)/*0*/)))); + if($T52.instantiate($typeBindings) != $TF.voidType() && $isSubtypeOf($result130.getType(),$T52)){ + return ((ISet)($result130)); + + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Relation.rsc|(8262,249,<327,0>,<338,1>) + public ISet Relation_range$2db5a57a784252a8(ISet R_0){ + + + HashMap $typeBindings = new HashMap<>(); + if($T16.match(R_0.getType(), $typeBindings)){ + final ISet $result131 = ((ISet)($arel_field_project((ISet)((ISet)R_0), ((IInteger)$constants.get(1)/*1*/)))); + if($T53.instantiate($typeBindings) != $TF.voidType() && $isSubtypeOf($result131.getType(),$T53)){ + return ((ISet)($result131)); + + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Relation.rsc|(8513,68,<340,0>,<343,1>) + public ISet Relation_range$86a90cd62434b56a(ISet R_0){ + + + HashMap $typeBindings = new HashMap<>(); + if($T17.match(R_0.getType(), $typeBindings)){ + final ISet $result132 = ((ISet)($arel_field_project((ISet)((ISet)R_0), ((IInteger)$constants.get(1)/*1*/), ((IInteger)$constants.get(2)/*2*/)))); + if($T54.instantiate($typeBindings) != $TF.voidType() && $isSubtypeOf($result132.getType(),$T54)){ + return ((ISet)($result132)); + + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Relation.rsc|(8583,77,<345,0>,<348,1>) + public ISet Relation_range$3bab8d1f24ba88b1(ISet R_0){ + + + HashMap $typeBindings = new HashMap<>(); + if($T18.match(R_0.getType(), $typeBindings)){ + final ISet $result133 = ((ISet)($arel_field_project((ISet)((ISet)R_0), ((IInteger)$constants.get(1)/*1*/), ((IInteger)$constants.get(2)/*2*/), ((IInteger)$constants.get(3)/*3*/)))); + if($T55.instantiate($typeBindings) != $TF.voidType() && $isSubtypeOf($result133.getType(),$T55)){ + return ((ISet)($result133)); + + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Relation.rsc|(8662,87,<350,0>,<353,1>) + public ISet Relation_range$22ad49e0807b0b4b(ISet R_0){ + + + HashMap $typeBindings = new HashMap<>(); + if($T10.match(R_0.getType(), $typeBindings)){ + final ISet $result134 = ((ISet)($arel_field_project((ISet)((ISet)R_0), ((IInteger)$constants.get(1)/*1*/), ((IInteger)$constants.get(2)/*2*/), ((IInteger)$constants.get(3)/*3*/), ((IInteger)$constants.get(4)/*4*/)))); + if($T56.instantiate($typeBindings) != $TF.voidType() && $isSubtypeOf($result134.getType(),$T56)){ + return ((ISet)($result134)); + + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Relation.rsc|(8752,358,<356,0>,<369,1>) + public ISet Relation_rangeR$442c89d533c8dd3c(ISet R_0, ISet S_1){ + + + HashMap $typeBindings = new HashMap<>(); + if($T16.match(R_0.getType(), $typeBindings)){ + if(true){ + if($T27.match(S_1.getType(), $typeBindings)){ + if(true){ + final ISetWriter $setwriter135 = (ISetWriter)$RVF.setWriter(); + ; + $SCOMP136_GEN9075: + for(IValue $elem137_for : ((ISet)R_0)){ + IValue $elem137 = (IValue) $elem137_for; + final IValue $tuple_subject138 = ((IValue)($elem137)); + if($tuple_subject138 instanceof ITuple && ((ITuple)$tuple_subject138).arity() == 2){ + /*muExists*/$SCOMP136_GEN9075_TUPLE: + do { + if(true){ + IValue V0_2 = null; + if(true){ + IValue V1_3 = null; + if((((IBool)($RVF.bool(((ISet)S_1).contains(((IValue)($subscript_int(((IValue)($tuple_subject138)),1)))))))).getValue()){ + $setwriter135.insert($RVF.tuple(((IValue)($subscript_int(((IValue)($tuple_subject138)),0))), ((IValue)($subscript_int(((IValue)($tuple_subject138)),1))))); + + } else { + continue $SCOMP136_GEN9075_TUPLE; + } + + } else { + continue $SCOMP136_GEN9075_TUPLE;/*computeFail*/ + } + } else { + continue $SCOMP136_GEN9075; + } + } while(false); + + } else { + continue $SCOMP136_GEN9075; + } + } + + final ISet $result139 = ((ISet)($setwriter135.done())); + if($T34.instantiate($typeBindings) != $TF.voidType() && $isSubtypeOf($result139.getType(),$T34)){ + return ((ISet)($result139)); + + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Relation.rsc|(9113,361,<372,0>,<385,1>) + public ISet Relation_rangeX$2ca0c43b311ef4db(ISet R_0, ISet S_1){ + + + HashMap $typeBindings = new HashMap<>(); + if($T16.match(R_0.getType(), $typeBindings)){ + if(true){ + if($T27.match(S_1.getType(), $typeBindings)){ + if(true){ + final ISetWriter $setwriter140 = (ISetWriter)$RVF.setWriter(); + ; + $SCOMP141_GEN9436: + for(IValue $elem142_for : ((ISet)R_0)){ + IValue $elem142 = (IValue) $elem142_for; + final IValue $tuple_subject143 = ((IValue)($elem142)); + if($tuple_subject143 instanceof ITuple && ((ITuple)$tuple_subject143).arity() == 2){ + /*muExists*/$SCOMP141_GEN9436_TUPLE: + do { + if(true){ + IValue V0_2 = null; + if(true){ + IValue V1_3 = null; + if((((IBool)($RVF.bool(!(((ISet)S_1)).contains(((IValue)($subscript_int(((IValue)($tuple_subject143)),1)))))))).getValue()){ + $setwriter140.insert($RVF.tuple(((IValue)($subscript_int(((IValue)($tuple_subject143)),0))), ((IValue)($subscript_int(((IValue)($tuple_subject143)),1))))); + + } else { + continue $SCOMP141_GEN9436_TUPLE; + } + + } else { + continue $SCOMP141_GEN9436_TUPLE;/*computeFail*/ + } + } else { + continue $SCOMP141_GEN9436; + } + } while(false); + + } else { + continue $SCOMP141_GEN9436; + } + } + + final ISet $result144 = ((ISet)($setwriter140.done())); + if($T34.instantiate($typeBindings) != $TF.voidType() && $isSubtypeOf($result144.getType(),$T34)){ + return ((ISet)($result144)); + + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Relation.rsc|(9477,319,<388,0>,<399,50>) + public IMap Relation_index$d81a1657f0d245c9(ISet R_0){ + + + HashMap $typeBindings = new HashMap<>(); + if($T24.match(R_0.getType(), $typeBindings)){ + final IMap $result145 = ((IMap)((IMap)$Prelude.index(R_0))); + if($T57.instantiate($typeBindings) != $TF.voidType() && $isSubtypeOf($result145.getType(),$T57)){ + return ((IMap)($result145)); + + } else { + return null; + } + } else { + return null; + } + } + + + public static void main(String[] args) { + throw new RuntimeException("No function `main` found in Rascal module `Relation`"); + } +} \ No newline at end of file diff --git a/src/rascal/$Relation.tpl b/src/rascal/$Relation.tpl new file mode 100644 index 00000000000..7abcd879d3e Binary files /dev/null and b/src/rascal/$Relation.tpl differ diff --git a/src/rascal/$Relation_$I.java b/src/rascal/$Relation_$I.java new file mode 100644 index 00000000000..31237413ff0 --- /dev/null +++ b/src/rascal/$Relation_$I.java @@ -0,0 +1,22 @@ +package rascal; +import io.usethesource.vallang.*; +import org.rascalmpl.runtime.function.*; + +@SuppressWarnings("unused") +public interface $Relation_$I { + IValue carrier(IValue $0); + IValue carrierR(IValue $0, IValue $1); + IValue carrierX(IValue $0, IValue $1); + IValue complement(IValue $0); + IValue domain(IValue $0); + IValue domainR(IValue $0, IValue $1); + IValue domainX(IValue $0, IValue $1); + IValue groupDomainByRange(IValue $0); + IValue groupRangeByDomain(IValue $0); + IValue ident(IValue $0); + IValue index(IValue $0); + IValue invert(IValue $0); + IValue range(IValue $0); + IValue rangeR(IValue $0, IValue $1); + IValue rangeX(IValue $0, IValue $1); +} \ No newline at end of file diff --git a/src/rascal/$Set.constants b/src/rascal/$Set.constants new file mode 100644 index 00000000000..e231c90b500 Binary files /dev/null and b/src/rascal/$Set.constants differ diff --git a/src/rascal/$Set.java b/src/rascal/$Set.java new file mode 100644 index 00000000000..42065bd19b3 --- /dev/null +++ b/src/rascal/$Set.java @@ -0,0 +1,1462 @@ +package rascal; +import java.io.PrintWriter; +import java.io.StringWriter; +import java.io.InputStreamReader; +import java.io.PrintWriter; +import java.util.*; +import java.util.regex.Matcher; +import io.usethesource.vallang.*; +import io.usethesource.vallang.type.*; +import org.rascalmpl.runtime.*; +import org.rascalmpl.runtime.RascalExecutionContext; +import org.rascalmpl.runtime.function.*; +import org.rascalmpl.runtime.traverse.*; +import org.rascalmpl.runtime.utils.*; +import org.rascalmpl.exceptions.RuntimeExceptionFactory; +import org.rascalmpl.exceptions.Throw; +import org.rascalmpl.runtime.RascalExecutionContext; +import org.rascalmpl.interpreter.control_exceptions.Filtered; +import org.rascalmpl.types.NonTerminalType; +import org.rascalmpl.types.RascalTypeFactory; +import org.rascalmpl.util.ExpiringFunctionResultCache; +import org.rascalmpl.values.RascalValueFactory; +import org.rascalmpl.values.ValueFactoryFactory; +import org.rascalmpl.values.parsetrees.ITree; +import org.rascalmpl.values.parsetrees.TreeAdapter; + + + +@SuppressWarnings({"unused","unchecked","deprecation"}) +public class $Set + extends + org.rascalmpl.runtime.$RascalModule + implements + rascal.$Set_$I { + + private final $Set_$I $me; + private final IList $constants; + + + public final rascal.util.$Math M_util_Math; + public final rascal.$Exception M_Exception; + public final rascal.$List M_List; + + + final org.rascalmpl.library.Prelude $Prelude; // TODO: asBaseClassName will generate name collisions if there are more of the same name in different packages + + + public final io.usethesource.vallang.type.Type $T1; /*avalue()*/ + public final io.usethesource.vallang.type.Type $T31; /*aparameter("K",avalue(),closed=true)*/ + public final io.usethesource.vallang.type.Type $T2; /*aparameter("T",avalue(),closed=false)*/ + public final io.usethesource.vallang.type.Type $T10; /*aparameter("B",avalue(),closed=false)*/ + public final io.usethesource.vallang.type.Type $T28; /*aint()*/ + public final io.usethesource.vallang.type.Type $T46; /*aparameter("A",avalue(),closed=true)*/ + public final io.usethesource.vallang.type.Type $T21; /*anum()*/ + public final io.usethesource.vallang.type.Type $T22; /*aparameter("T",anum(),closed=false)*/ + public final io.usethesource.vallang.type.Type $T42; /*aparameter("T",anum(),closed=true)*/ + public final io.usethesource.vallang.type.Type $T9; /*aparameter("A",avalue(),closed=false)*/ + public final io.usethesource.vallang.type.Type $T37; /*aparameter("T",avalue(),closed=true)*/ + public final io.usethesource.vallang.type.Type $T17; /*aparameter("K",avalue(),closed=false)*/ + public final io.usethesource.vallang.type.Type $T19; /*aparameter("T",avalue(),closed=false,alabel="f")*/ + public final io.usethesource.vallang.type.Type $T7; /*aparameter("T",avalue(),closed=false,alabel="b")*/ + public final io.usethesource.vallang.type.Type $T50; /*astr()*/ + public final io.usethesource.vallang.type.Type $T6; /*aparameter("T",avalue(),closed=false,alabel="a")*/ + public final io.usethesource.vallang.type.Type $T24; /*aparameter("T",anum(),closed=false,alabel="e")*/ + public final io.usethesource.vallang.type.Type $T41; /*aparameter("U",avalue(),closed=true)*/ + public final io.usethesource.vallang.type.Type $T15; /*aparameter("V",avalue(),closed=false)*/ + public final io.usethesource.vallang.type.Type $T47; /*aparameter("B",avalue(),closed=true)*/ + public final io.usethesource.vallang.type.Type $T13; /*aparameter("U",avalue(),closed=false)*/ + public final io.usethesource.vallang.type.Type $T32; /*aparameter("V",avalue(),closed=true)*/ + public final io.usethesource.vallang.type.Type $T38; /*aset(aparameter("T",avalue(),closed=true))*/ + public final io.usethesource.vallang.type.Type ADT_RuntimeException; /*aadt("RuntimeException",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type $T5; /*abool()*/ + public final io.usethesource.vallang.type.Type $T4; /*afunc(abool(),[aparameter("T",avalue(),closed=false,alabel="a"),aparameter("T",avalue(),closed=false,alabel="b")],[])*/ + public final io.usethesource.vallang.type.Type $T11; /*alrel(atypeList([aparameter("A",avalue(),closed=false),aparameter("B",avalue(),closed=false)]))*/ + public final io.usethesource.vallang.type.Type $T23; /*aset(aparameter("T",anum(),closed=false,alabel="e"))*/ + public final io.usethesource.vallang.type.Type $T27; /*aset(aparameter("T",avalue(),closed=false,alabel="f"))*/ + public final io.usethesource.vallang.type.Type $T14; /*aset(aparameter("V",avalue(),closed=false))*/ + public final io.usethesource.vallang.type.Type $T49; /*amap(aparameter("A",avalue(),closed=true),aparameter("B",avalue(),closed=true))*/ + public final io.usethesource.vallang.type.Type $T3; /*aset(aparameter("T",avalue(),closed=false))*/ + public final io.usethesource.vallang.type.Type $T0; /*alist(aparameter("T",avalue(),closed=false))*/ + public final io.usethesource.vallang.type.Type $T20; /*aset(aparameter("T",anum(),closed=false))*/ + public final io.usethesource.vallang.type.Type $T29; /*aset(avalue())*/ + public final io.usethesource.vallang.type.Type $T16; /*afunc(aparameter("K",avalue(),closed=false),[aparameter("V",avalue(),closed=false)],[])*/ + public final io.usethesource.vallang.type.Type $T48; /*aset(aparameter("B",avalue(),closed=true))*/ + public final io.usethesource.vallang.type.Type $T45; /*amap(aparameter("A",avalue(),closed=true),aset(aparameter("B",avalue(),closed=true)))*/ + public final io.usethesource.vallang.type.Type $T12; /*afunc(aparameter("U",avalue(),closed=false),[aparameter("T",avalue(),closed=false)],[])*/ + public final io.usethesource.vallang.type.Type $T36; /*aset(aset(aparameter("T",avalue(),closed=true)))*/ + public final io.usethesource.vallang.type.Type $T43; /*atuple(atypeList([aparameter("T",avalue(),closed=true),aset(aparameter("T",avalue(),closed=true))]))*/ + public final io.usethesource.vallang.type.Type $T33; /*aset(aparameter("V",avalue(),closed=true))*/ + public final io.usethesource.vallang.type.Type $T44; /*alist(aparameter("T",avalue(),closed=true))*/ + public final io.usethesource.vallang.type.Type $T18; /*alist(aparameter("T",avalue(),closed=false,alabel="f"))*/ + public final io.usethesource.vallang.type.Type $T35; /*afunc(abool(),[aparameter("T",avalue(),closed=false,alabel="a")],[],returnsViaAllPath=true)*/ + public final io.usethesource.vallang.type.Type $T8; /*arel(atypeList([aparameter("A",avalue(),closed=false),aparameter("B",avalue(),closed=false)]))*/ + public final io.usethesource.vallang.type.Type $T40; /*aset(aparameter("U",avalue(),closed=true))*/ + public final io.usethesource.vallang.type.Type $T34; /*afunc(abool(),[aparameter("T",avalue(),closed=false,alabel="a"),aparameter("T",avalue(),closed=false,alabel="b")],[],returnsViaAllPath=true)*/ + public final io.usethesource.vallang.type.Type $T39; /*amap(aparameter("T",avalue(),closed=true),aint())*/ + public final io.usethesource.vallang.type.Type $T26; /*aset(aset(aparameter("T",avalue(),closed=false)))*/ + public final io.usethesource.vallang.type.Type $T30; /*amap(aparameter("K",avalue(),closed=true),aset(aparameter("V",avalue(),closed=true)))*/ + public final io.usethesource.vallang.type.Type $T25; /*afunc(aparameter("T",avalue(),closed=false),[aparameter("T",avalue(),closed=false),aparameter("T",avalue(),closed=false)],[])*/ + + public $Set(RascalExecutionContext rex){ + this(rex, null); + } + + public $Set(RascalExecutionContext rex, Object extended){ + super(rex); + this.$me = extended == null ? this : ($Set_$I)extended; + ModuleStore mstore = rex.getModuleStore(); + mstore.put(rascal.$Set.class, this); + + mstore.importModule(rascal.util.$Math.class, rex, rascal.util.$Math::new); + mstore.importModule(rascal.$Exception.class, rex, rascal.$Exception::new); + mstore.importModule(rascal.$List.class, rex, rascal.$List::new); + + M_util_Math = mstore.getModule(rascal.util.$Math.class); + M_Exception = mstore.getModule(rascal.$Exception.class); + M_List = mstore.getModule(rascal.$List.class); + + + + $TS.importStore(M_util_Math.$TS); + $TS.importStore(M_Exception.$TS); + $TS.importStore(M_List.$TS); + + $Prelude = $initLibrary("org.rascalmpl.library.Prelude"); + + $constants = readBinaryConstantsFile(this.getClass(), "rascal/$Set.constants", 8, "d2a3ee989602c1579cddb092162c57bf"); + ADT_RuntimeException = $adt("RuntimeException"); + $T1 = $TF.valueType(); + $T31 = $TF.parameterType("K", $T1); + $T2 = $TF.parameterType("T", $T1); + $T10 = $TF.parameterType("B", $T1); + $T28 = $TF.integerType(); + $T46 = $TF.parameterType("A", $T1); + $T21 = $TF.numberType(); + $T22 = $TF.parameterType("T", $T21); + $T42 = $TF.parameterType("T", $T21); + $T9 = $TF.parameterType("A", $T1); + $T37 = $TF.parameterType("T", $T1); + $T17 = $TF.parameterType("K", $T1); + $T19 = $TF.parameterType("T", $T1); + $T7 = $TF.parameterType("T", $T1); + $T50 = $TF.stringType(); + $T6 = $TF.parameterType("T", $T1); + $T24 = $TF.parameterType("T", $T21); + $T41 = $TF.parameterType("U", $T1); + $T15 = $TF.parameterType("V", $T1); + $T47 = $TF.parameterType("B", $T1); + $T13 = $TF.parameterType("U", $T1); + $T32 = $TF.parameterType("V", $T1); + $T38 = $TF.setType($T37); + $T5 = $TF.boolType(); + $T4 = $TF.functionType($T5, $TF.tupleType($T6, "a", $T7, "b"), $TF.tupleEmpty()); + $T11 = $TF.listType($TF.tupleType($T9, $T10)); + $T23 = $TF.setType($T24); + $T27 = $TF.setType($T19); + $T14 = $TF.setType($T15); + $T49 = $TF.mapType($T46,$T47); + $T3 = $TF.setType($T2); + $T0 = $TF.listType($T2); + $T20 = $TF.setType($T22); + $T29 = $TF.setType($T1); + $T16 = $TF.functionType($T17, $TF.tupleType($T15), $TF.tupleEmpty()); + $T48 = $TF.setType($T47); + $T45 = $TF.mapType($T46,$T48); + $T12 = $TF.functionType($T13, $TF.tupleType($T2), $TF.tupleEmpty()); + $T36 = $TF.setType($T38); + $T43 = $TF.tupleType($T37, $T38); + $T33 = $TF.setType($T32); + $T44 = $TF.listType($T37); + $T18 = $TF.listType($T19); + $T35 = $TF.functionType($T5, $TF.tupleType($T6, "a"), $TF.tupleEmpty()); + $T8 = $TF.setType($TF.tupleType($T9, $T10)); + $T40 = $TF.setType($T41); + $T34 = $TF.functionType($T5, $TF.tupleType($T6, "a", $T7, "b"), $TF.tupleEmpty()); + $T39 = $TF.mapType($T37,$T28); + $T26 = $TF.setType($T3); + $T30 = $TF.mapType($T31,$T33); + $T25 = $TF.functionType($T2, $TF.tupleType($T2, $T2), $TF.tupleEmpty()); + + + + } + public IBool isEmpty(IValue $P0){ // Generated by Resolver + IBool $result = null; + Type $P0Type = $P0.getType(); + if($isSubtypeOf($P0Type,$T0)){ + $result = (IBool)M_List.List_isEmpty$fdfe8b76f8afe83f((IList) $P0); + if($result != null) return $result; + } + if($isSubtypeOf($P0Type,$T3)){ + $result = (IBool)Set_isEmpty$42ff0d21e8590723((ISet) $P0); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0)); + } + public IList toList(IValue $P0){ // Generated by Resolver + IList $result = null; + Type $P0Type = $P0.getType(); + if($isSubtypeOf($P0Type,$T3)){ + $result = (IList)Set_toList$c29313189aeae08a((ISet) $P0); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0)); + } + public IValue getOneFrom(IValue $P0){ // Generated by Resolver + IValue $result = null; + Type $P0Type = $P0.getType(); + if($isSubtypeOf($P0Type,$T3)){ + $result = (IValue)Set_getOneFrom$385242ba381fd613((ISet) $P0); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0)); + } + public IList sort(IValue $P0){ // Generated by Resolver + IList $result = null; + Type $P0Type = $P0.getType(); + if($isSubtypeOf($P0Type,$T0)){ + $result = (IList)M_List.List_sort$1fe4426c8c8039da((IList) $P0); + if($result != null) return $result; + } + if($isSubtypeOf($P0Type,$T3)){ + $result = (IList)Set_sort$2d7ce904b21febd4((ISet) $P0); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0)); + } + public IList sort(IValue $P0, IValue $P1){ // Generated by Resolver + IList $result = null; + Type $P0Type = $P0.getType(); + Type $P1Type = $P1.getType(); + if($isSubtypeOf($P0Type,$T0) && $isSubtypeOf($P1Type,$T4)){ + $result = (IList)M_List.List_sort$a9bbc6fca4e60d0a((IList) $P0, (TypedFunctionInstance2) $P1); + if($result != null) return $result; + } + if($isSubtypeOf($P0Type,$T3) && $isSubtypeOf($P1Type,$T4)){ + $result = (IList)Set_sort$4b3ff1abd5c398df((ISet) $P0, (TypedFunctionInstance2) $P1); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0, $P1)); + } + public IValue head(IValue $P0){ // Generated by Resolver + return (IValue) M_List.head($P0); + } + public IList head(IValue $P0, IValue $P1){ // Generated by Resolver + return (IList) M_List.head($P0, $P1); + } + public IInteger size(IValue $P0){ // Generated by Resolver + IInteger $result = null; + Type $P0Type = $P0.getType(); + if($isSubtypeOf($P0Type,$T3)){ + $result = (IInteger)Set_size$215788d71e8b2455((ISet) $P0); + if($result != null) return $result; + } + if($isSubtypeOf($P0Type,$T0)){ + $result = (IInteger)M_List.List_size$ba7443328d8b4a27((IList) $P0); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0)); + } + public IMap toMap(IValue $P0){ // Generated by Resolver + IMap $result = null; + Type $P0Type = $P0.getType(); + if($isSubtypeOf($P0Type,$T8)){ + $result = (IMap)Set_toMap$5f7d7ee44cb2e11d((ISet) $P0); + if($result != null) return $result; + } + if($isSubtypeOf($P0Type,$T11)){ + $result = (IMap)M_List.List_toMap$795bdddf805b0c4b((IList) $P0); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0)); + } + public ISet mapper(IValue $P0, IValue $P1){ // Generated by Resolver + ISet $result = null; + Type $P0Type = $P0.getType(); + Type $P1Type = $P1.getType(); + if($isSubtypeOf($P0Type,$T3) && $isSubtypeOf($P1Type,$T12)){ + $result = (ISet)Set_mapper$24f74ceda05f6c34((ISet) $P0, (TypedFunctionInstance1) $P1); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0, $P1)); + } + public IValue max(IValue $P0){ // Generated by Resolver + IValue $result = null; + Type $P0Type = $P0.getType(); + if($isSubtypeOf($P0Type,$T3)){ + $result = (IValue)Set_max$a286307ecf1dce32((ISet) $P0); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0)); + } + public IMap classify(IValue $P0, IValue $P1){ // Generated by Resolver + IMap $result = null; + Type $P0Type = $P0.getType(); + Type $P1Type = $P1.getType(); + if($isSubtypeOf($P0Type,$T14) && $isSubtypeOf($P1Type,$T16)){ + $result = (IMap)Set_classify$495ec1221140dd2f((ISet) $P0, (TypedFunctionInstance1) $P1); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0, $P1)); + } + public IValue getFirstFrom(IValue $P0){ // Generated by Resolver + IValue $result = null; + Type $P0Type = $P0.getType(); + if($isSubtypeOf($P0Type,$T18)){ + $result = (IValue)M_List.List_getFirstFrom$8b59769acd262783((IList) $P0); + if($result != null) return $result; + } + if($isSubtypeOf($P0Type,$T0)){ + $result = (IValue)M_List.List_getFirstFrom$ecaac22228d5233c((IList) $P0); + if($result != null) return $result; + } + if($isSubtypeOf($P0Type,$T3)){ + $result = (IValue)Set_getFirstFrom$f7e01cd92c21a6cb((ISet) $P0); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0)); + } + public ISet power(IValue $P0){ // Generated by Resolver + ISet $result = null; + Type $P0Type = $P0.getType(); + if($isSubtypeOf($P0Type,$T3)){ + $result = (ISet)Set_power$91b962acd7a7701a((ISet) $P0); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0)); + } + public IValue getSingleFrom(IValue $P0){ // Generated by Resolver + IValue $result = null; + Type $P0Type = $P0.getType(); + if($isSubtypeOf($P0Type,$T3)){ + $result = (IValue)Set_getSingleFrom$42d5ad5d40a25ab7((ISet) $P0); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0)); + } + public ITuple takeOneFrom(IValue $P0){ // Generated by Resolver + ITuple $result = null; + Type $P0Type = $P0.getType(); + if($isSubtypeOf($P0Type,$T3)){ + $result = (ITuple)Set_takeOneFrom$291ddec83a7e9a61((ISet) $P0); + if($result != null) return $result; + } + if($isSubtypeOf($P0Type,$T0)){ + $result = (ITuple)M_List.List_takeOneFrom$48bb3b6062ea97b1((IList) $P0); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0)); + } + public INumber sum(IValue $P0){ // Generated by Resolver + INumber $result = null; + Type $P0Type = $P0.getType(); + if($isSubtypeOf($P0Type,$T20)){ + $result = (INumber)Set_sum$059718d9ca35d7b7((ISet) $P0); + if($result != null) return $result; + } + if($isSubtypeOf($P0Type,$T23)){ + $result = (INumber)Set_sum$2faf8190d541068a((ISet) $P0); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0)); + } + public IString toString(IValue $P0){ // Generated by Resolver + IString $result = null; + Type $P0Type = $P0.getType(); + if($isSubtypeOf($P0Type,$T3)){ + $result = (IString)Set_toString$2266fa6e4b318c58((ISet) $P0); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0)); + } + public ISet power1(IValue $P0){ // Generated by Resolver + ISet $result = null; + Type $P0Type = $P0.getType(); + if($isSubtypeOf($P0Type,$T3)){ + $result = (ISet)Set_power1$28a82373d451a91c((ISet) $P0); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0)); + } + public IValue reducer(IValue $P0){ // Generated by Resolver + IValue $result = null; + Type $P0Type = $P0.getType(); + if($isSubtypeOf($P0Type,$T3)){ + $result = (IValue)Set_reducer$3562adf6c81d1f9f((ISet) $P0); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0)); + } + public IValue reducer(IValue $P0, IValue $P1, IValue $P2){ // Generated by Resolver + IValue $result = null; + Type $P0Type = $P0.getType(); + Type $P1Type = $P1.getType(); + Type $P2Type = $P2.getType(); + if($isSubtypeOf($P0Type,$T3) && $isSubtypeOf($P1Type,$T25) && $isSubtypeOf($P2Type,$T2)){ + $result = (IValue)Set_reducer$549b0aa4c7a77384((ISet) $P0, (TypedFunctionInstance2) $P1, (IValue) $P2); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0, $P1, $P2)); + } + public ISet union(IValue $P0){ // Generated by Resolver + ISet $result = null; + Type $P0Type = $P0.getType(); + if($isSubtypeOf($P0Type,$T26)){ + $result = (ISet)Set_union$356d5959884f94d7((ISet) $P0); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0)); + } + public ITuple headTail(IValue $P0){ // Generated by Resolver + return (ITuple) M_List.headTail($P0); + } + public IList tail(IValue $P0){ // Generated by Resolver + return (IList) M_List.tail($P0); + } + public IList tail(IValue $P0, IValue $P1){ // Generated by Resolver + return (IList) M_List.tail($P0, $P1); + } + public IMap toMapUnique(IValue $P0){ // Generated by Resolver + IMap $result = null; + Type $P0Type = $P0.getType(); + if($isSubtypeOf($P0Type,$T8)){ + $result = (IMap)Set_toMapUnique$fca205feb507456a((ISet) $P0); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0)); + } + public IValue index(IValue $P0){ // Generated by Resolver + IValue $result = null; + Type $P0Type = $P0.getType(); + if($isSubtypeOf($P0Type,$T3)){ + $result = (IValue)Set_index$31fadea181d3071e((ISet) $P0); + if($result != null) return $result; + } + if($isSubtypeOf($P0Type,$T0)){ + $result = (IValue)M_List.List_index$90228c781d131b76((IList) $P0); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0)); + } + public IValue min(IValue $P0){ // Generated by Resolver + IValue $result = null; + Type $P0Type = $P0.getType(); + if($isSubtypeOf($P0Type,$T3)){ + $result = (IValue)Set_min$68b6ebc4d32e8c20((ISet) $P0); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0)); + } + public ITuple takeFirstFrom(IValue $P0){ // Generated by Resolver + ITuple $result = null; + Type $P0Type = $P0.getType(); + if($isSubtypeOf($P0Type,$T27)){ + $result = (ITuple)Set_takeFirstFrom$b4e24a7c33f584da((ISet) $P0); + if($result != null) return $result; + } + if($isSubtypeOf($P0Type,$T3)){ + $result = (ITuple)Set_takeFirstFrom$dc2a600de1d8389f((ISet) $P0); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0)); + } + public IString itoString(IValue $P0){ // Generated by Resolver + IString $result = null; + Type $P0Type = $P0.getType(); + if($isSubtypeOf($P0Type,$T3)){ + $result = (IString)Set_itoString$d920014271a23230((ISet) $P0); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0)); + } + public IValue top(IValue $P0){ // Generated by Resolver + return (IValue) M_List.top($P0); + } + public IList top(IValue $P0, IValue $P1, IValue $P2){ // Generated by Resolver + IList $result = null; + Type $P0Type = $P0.getType(); + Type $P1Type = $P1.getType(); + Type $P2Type = $P2.getType(); + if($isSubtypeOf($P0Type,$T28) && $isSubtypeOf($P1Type,$T3) && $isSubtypeOf($P2Type,$T4)){ + $result = (IList)Set_top$cbec7e0e8e8db73b((IInteger) $P0, (ISet) $P1, (TypedFunctionInstance2) $P2); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0, $P1, $P2)); + } + public IList top(IValue $P0, IValue $P1){ // Generated by Resolver + IList $result = null; + Type $P0Type = $P0.getType(); + Type $P1Type = $P1.getType(); + if($isSubtypeOf($P0Type,$T28) && $isSubtypeOf($P1Type,$T3)){ + $result = (IList)Set_top$3a2a3e2325787ee4((IInteger) $P0, (ISet) $P1); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0, $P1)); + } + public IReal pow(IValue $P0, IValue $P1){ // Generated by Resolver + return (IReal) M_util_Math.pow($P0, $P1); + } + public IReal jaccard(IValue $P0, IValue $P1){ // Generated by Resolver + IReal $result = null; + Type $P0Type = $P0.getType(); + Type $P1Type = $P1.getType(); + if($isSubtypeOf($P0Type,$T29) && $isSubtypeOf($P1Type,$T29)){ + $result = (IReal)Set_jaccard$6b63114dcc758902((ISet) $P0, (ISet) $P1); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0, $P1)); + } + public ISet group(IValue $P0, IValue $P1){ // Generated by Resolver + ISet $result = null; + Type $P0Type = $P0.getType(); + Type $P1Type = $P1.getType(); + if($isSubtypeOf($P0Type,$T3) && $isSubtypeOf($P1Type,$T4)){ + $result = (ISet)Set_group$8f9750fd06d83138((ISet) $P0, (TypedFunctionInstance2) $P1); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0, $P1)); + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Set.rsc|(649,757,<27,0>,<48,105>) + public IMap Set_classify$495ec1221140dd2f(ISet input_0, TypedFunctionInstance1 getClass_1){ + + + HashMap $typeBindings = new HashMap<>(); + if($T14.match(input_0.getType(), $typeBindings)){ + if($T16.match(getClass_1.getType(), $typeBindings)){ + final ISetWriter $setwriter0 = (ISetWriter)$RVF.setWriter(); + ; + $SCOMP1_GEN1393: + for(IValue $elem2_for : ((ISet)input_0)){ + IValue $elem2 = (IValue) $elem2_for; + IValue e_2 = null; + $setwriter0.insert($RVF.tuple(((IValue)(((TypedFunctionInstance1)getClass_1).typedCall(((IValue)($elem2))))), ((IValue)($elem2)))); + + } + + final IMap $result3 = ((IMap)($me.toMap(((ISet)($setwriter0.done()))))); + if($T30.instantiate($typeBindings) != $TF.voidType() && $isSubtypeOf($result3.getType(),$T30)){ + return ((IMap)($result3)); + + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Set.rsc|(2255,59,<77,23>,<77,82>) + public IBool $CLOSURE_0(IValue a_0, IValue b_1, ValueRef> similar_1){ + + + HashMap $typeBindings = new HashMap<>(); + if($T6.match(a_0.getType(), $typeBindings)){ + if($T7.match(b_1.getType(), $typeBindings)){ + if((((IBool)(((TypedFunctionInstance2)similar_1.getValue()).typedCall(((IValue)a_0), ((IValue)b_1))))).getValue()){ + final IBool $result5 = ((IBool)$constants.get(0)/*false*/); + if($T5.instantiate($typeBindings) != $TF.voidType() && $isSubtypeOf($result5.getType(),$T5)){ + return ((IBool)($result5)); + + } else { + return ((IBool)$constants.get(0)/*false*/); + + } + } else { + final IBool $result5 = ((IBool)($less(((IValue)a_0),((IValue)b_1)))); + if($T5.instantiate($typeBindings) != $TF.voidType() && $isSubtypeOf($result5.getType(),$T5)){ + return ((IBool)($result5)); + + } else { + return ((IBool)$constants.get(0)/*false*/); + + } + } + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Set.rsc|(2414,36,<80,38>,<80,74>) + public IBool $CLOSURE_1(IValue a_0, ValueRef h_4, ValueRef> similar_1){ + + + HashMap $typeBindings = new HashMap<>(); + if($T6.match(a_0.getType(), $typeBindings)){ + final IBool $result6 = ((IBool)(((TypedFunctionInstance2)similar_1.getValue()).typedCall(((IValue)a_0), h_4.getValue()))); + if($T5.instantiate($typeBindings) != $TF.voidType() && $isSubtypeOf($result6.getType(),$T5)){ + return ((IBool)($result6)); + + } else { + return ((IBool)$constants.get(0)/*false*/); + + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Set.rsc|(1411,1125,<53,0>,<85,1>) + public ISet Set_group$8f9750fd06d83138(ISet input_0, TypedFunctionInstance2 $aux_similar_1){ + ValueRef> similar_1 = new ValueRef>("similar_1", $aux_similar_1); + + + HashMap $typeBindings = new HashMap<>(); + if($T3.match(input_0.getType(), $typeBindings)){ + if($T4.match(similar_1.getValue().getType(), $typeBindings)){ + IList sinput_2 = ((IList)($me.sort(((ISet)input_0), new TypedFunctionInstance2(($2255_0, $2255_1) -> { return $CLOSURE_0((IValue)$2255_0, (IValue)$2255_1, similar_1); }, $T34)))); + final IListWriter listwriter_WHILE0 = (IListWriter)$RVF.listWriter(); + /*muExists*/WHILE0_BT: + do { + WHILE0: + while((((IBool)((((IBool)(M_List.isEmpty(((IList)sinput_2))))).not()))).getValue()){ + final ValueRef h_4 = new ValueRef("h", ((IValue)(M_List.head(((IList)sinput_2))))); + IList sim_5 = ((IList)($elm_add_alist(h_4.getValue(),((IList)(M_List.takeWhile(((IList)(M_List.tail(((IList)sinput_2)))), new TypedFunctionInstance1(($2414_0) -> { return $CLOSURE_1((IValue)$2414_0, h_4, similar_1); }, $T35))))))); + listwriter_WHILE0.append(M_List.toSet(((IList)sim_5))); + sinput_2 = ((IList)(M_List.drop(((IInteger)(M_List.size(((IList)sim_5)))), ((IList)sinput_2)))); + + } + + } while(false); + IList lres_3 = ((IList)(listwriter_WHILE0.done())); + final ISet $result7 = ((ISet)(M_List.toSet(((IList)lres_3)))); + if($T36.instantiate($typeBindings) != $TF.voidType() && $isSubtypeOf($result7.getType(),$T36)){ + return ((ISet)($result7)); + + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Set.rsc|(2539,226,<88,0>,<98,1>) + public IMap Set_index$31fadea181d3071e(ISet s_0){ + + + HashMap $typeBindings = new HashMap<>(); + if($T3.match(s_0.getType(), $typeBindings)){ + IList sl_1 = ((IList)($me.toList(((ISet)s_0)))); + final IMapWriter $mapwriter8 = (IMapWriter)$RVF.mapWriter(); + $MCOMP9_GEN2747: + for(IValue $elem10_for : ((IList)(M_List.index(((IList)sl_1))))){ + IInteger $elem10 = (IInteger) $elem10_for; + IInteger i_2 = null; + $mapwriter8.insert($RVF.tuple($alist_subscript_int(((IList)sl_1),((IInteger)($elem10)).intValue()), $elem10)); + + } + + final IMap $result11 = ((IMap)($mapwriter8.done())); + if($T39.instantiate($typeBindings) != $TF.voidType() && $isSubtypeOf($result11.getType(),$T39)){ + return ((IMap)($result11)); + + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Set.rsc|(2772,267,<105,0>,<117,37>) + public IBool Set_isEmpty$42ff0d21e8590723(ISet st_0){ + + + HashMap $typeBindings = new HashMap<>(); + if($T3.match(st_0.getType(), $typeBindings)){ + final IBool $result12 = ((IBool)((IBool)$Prelude.isEmpty(st_0))); + if($T5.instantiate($typeBindings) != $TF.voidType() && $isSubtypeOf($result12.getType(),$T5)){ + return ((IBool)($result12)); + + } else { + return ((IBool)$constants.get(0)/*false*/); + + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Set.rsc|(3042,358,<120,0>,<134,1>) + public ISet Set_mapper$24f74ceda05f6c34(ISet st_0, TypedFunctionInstance1 fn_1){ + + + HashMap $typeBindings = new HashMap<>(); + if($T3.match(st_0.getType(), $typeBindings)){ + if(true){ + if($T12.match(fn_1.getType(), $typeBindings)){ + if(true){ + final ISetWriter $setwriter13 = (ISetWriter)$RVF.setWriter(); + ; + $SCOMP14_GEN3384: + for(IValue $elem15_for : ((ISet)st_0)){ + IValue $elem15 = (IValue) $elem15_for; + if($isSubtypeOf($elem15.getType(),$T37.instantiate($typeBindings))){ + IValue elm_2 = null; + $setwriter13.insert(((TypedFunctionInstance1)fn_1).typedCall(((IValue)($elem15)))); + + } else { + continue $SCOMP14_GEN3384; + } + } + + final ISet $result16 = ((ISet)($setwriter13.done())); + if($T40.instantiate($typeBindings) != $TF.voidType() && $isSubtypeOf($result16.getType(),$T40)){ + return ((ISet)($result16)); + + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Set.rsc|(3403,250,<137,0>,<148,1>) + public IValue Set_max$a286307ecf1dce32(ISet st_0){ + + + HashMap $typeBindings = new HashMap<>(); + if($T3.match(st_0.getType(), $typeBindings)){ + ITuple $TMP17 = (ITuple)($me.takeOneFrom(((ISet)st_0))); + IValue h_1 = ((IValue)($atuple_subscript_int(((ITuple)($TMP17)),0))); + ISet t_2 = ((ISet)($atuple_subscript_int(((ITuple)($TMP17)),1))); + IValue $reducer19 = (IValue)(h_1); + $REDUCER18_GEN3643: + for(IValue $elem21_for : ((ISet)t_2)){ + IValue $elem21 = (IValue) $elem21_for; + IValue e_4 = null; + if((((IBool)($lessequal(((IValue)($elem21)),((IValue)($reducer19))).not()))).getValue()){ + $reducer19 = ((IValue)($elem21)); + + } else { + $reducer19 = ((IValue)($reducer19)); + + } + } + + final IValue $result22 = ((IValue)($reducer19)); + if($T37.instantiate($typeBindings) != $TF.voidType() && $isSubtypeOf($result22.getType(),$T37)){ + return ((IValue)($result22)); + + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Set.rsc|(3656,357,<151,0>,<170,1>) + public IValue Set_min$68b6ebc4d32e8c20(ISet st_0){ + + + HashMap $typeBindings = new HashMap<>(); + if($T3.match(st_0.getType(), $typeBindings)){ + ITuple $TMP23 = (ITuple)($me.takeOneFrom(((ISet)st_0))); + IValue h_1 = ((IValue)($atuple_subscript_int(((ITuple)($TMP23)),0))); + ISet t_2 = ((ISet)($atuple_subscript_int(((ITuple)($TMP23)),1))); + IValue $reducer25 = (IValue)(h_1); + $REDUCER24_GEN4003: + for(IValue $elem27_for : ((ISet)t_2)){ + IValue $elem27 = (IValue) $elem27_for; + IValue e_4 = null; + if((((IBool)($less(((IValue)($elem27)),((IValue)($reducer25)))))).getValue()){ + $reducer25 = ((IValue)($elem27)); + + } else { + $reducer25 = ((IValue)($reducer25)); + + } + } + + final IValue $result28 = ((IValue)($reducer25)); + if($T37.instantiate($typeBindings) != $TF.voidType() && $isSubtypeOf($result28.getType(),$T37)){ + return ((IValue)($result28)); + + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Set.rsc|(4016,644,<173,0>,<206,1>) + public ISet Set_power$91b962acd7a7701a(ISet st_0){ + + + HashMap $typeBindings = new HashMap<>(); + if($T3.match(st_0.getType(), $typeBindings)){ + final IListWriter $writer29 = (IListWriter)$RVF.listWriter(); + $listwriter_splice($writer29,st_0); + IList stl_1 = ((IList)($writer29.done())); + IInteger i_2 = ((IInteger)$constants.get(1)/*0*/); + final IListWriter listwriter_WHILE1 = (IListWriter)$RVF.listWriter(); + /*muExists*/WHILE1_BT: + do { + WHILE1: + while((((IBool)($aint_less_areal(((IInteger)i_2),((IReal)(M_util_Math.pow(((IInteger)$constants.get(2)/*2*/), ((IInteger)($me.size(((ISet)st_0))))))))))).getValue()){ + IInteger j_4 = ((IInteger)i_2); + IInteger elIndex_5 = ((IInteger)$constants.get(1)/*0*/); + final IListWriter listwriter_WHILE2 = (IListWriter)$RVF.listWriter(); + /*muExists*/WHILE2_BT: + do { + WHILE2: + while((((IBool)($aint_lessequal_aint(((IInteger)j_4),((IInteger)$constants.get(1)/*0*/)).not()))).getValue()){ + if((((IBool)($equal(((IInteger)(((IInteger)j_4).mod(((IInteger)$constants.get(2)/*2*/)))), ((IInteger)$constants.get(3)/*1*/))))).getValue()){ + listwriter_WHILE2.append($alist_subscript_int(((IList)stl_1),((IInteger)elIndex_5).intValue())); + + } + elIndex_5 = ((IInteger)($aint_add_aint(((IInteger)elIndex_5),((IInteger)$constants.get(3)/*1*/)))); + j_4 = ((IInteger)($aint_divide_aint(((IInteger)j_4),((IInteger)$constants.get(2)/*2*/)))); + + } + + } while(false); + IList sub_6 = ((IList)(listwriter_WHILE2.done())); + final ISetWriter $writer30 = (ISetWriter)$RVF.setWriter(); + ; + $setwriter_splice($writer30,sub_6); + listwriter_WHILE1.append($writer30.done()); + i_2 = ((IInteger)($aint_add_aint(((IInteger)i_2),((IInteger)$constants.get(3)/*1*/)))); + + } + + } while(false); + IList res_3 = ((IList)(listwriter_WHILE1.done())); + final ISetWriter $writer31 = (ISetWriter)$RVF.setWriter(); + ; + $setwriter_splice($writer31,res_3); + final ISet $result32 = ((ISet)($writer31.done())); + if($T36.instantiate($typeBindings) != $TF.voidType() && $isSubtypeOf($result32.getType(),$T36)){ + return ((ISet)($result32)); + + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Set.rsc|(4663,258,<209,0>,<219,58>) + public ISet Set_power1$28a82373d451a91c(ISet st_0){ + + + HashMap $typeBindings = new HashMap<>(); + if($T3.match(st_0.getType(), $typeBindings)){ + final ISet $result33 = ((ISet)(((ISet)($me.power(((ISet)st_0)))).subtract(((ISet)$constants.get(4)/*{{}}*/)))); + if($T36.instantiate($typeBindings) != $TF.voidType() && $isSubtypeOf($result33.getType(),$T36)){ + return ((ISet)($result33)); + + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Set.rsc|(4923,477,<221,0>,<234,33>) + public IValue Set_reducer$549b0aa4c7a77384(ISet st_0, TypedFunctionInstance2 fn_1, IValue unit_2){ + + + HashMap $typeBindings = new HashMap<>(); + if($T3.match(st_0.getType(), $typeBindings)){ + if($T25.match(fn_1.getType(), $typeBindings)){ + if($T2.match(unit_2.getType(), $typeBindings)){ + IValue $reducer35 = (IValue)(unit_2); + $REDUCER34_GEN5389: + for(IValue $elem36_for : ((ISet)st_0)){ + IValue $elem36 = (IValue) $elem36_for; + IValue elm_4 = null; + $reducer35 = ((IValue)(((TypedFunctionInstance2)fn_1).typedCall(((IValue)($reducer35)), ((IValue)($elem36))))); + + } + + final IValue $result37 = ((IValue)($reducer35)); + if($T37.instantiate($typeBindings) != $TF.voidType() && $isSubtypeOf($result37.getType(),$T37)){ + return ((IValue)($result37)); + + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Set.rsc|(5402,53,<236,0>,<236,53>) + public IValue Set_reducer$3562adf6c81d1f9f(ISet $__0){ + + + HashMap $typeBindings = new HashMap<>(); + /*muExists*/reducer: + do { + if($T3.match($__0.getType(), $typeBindings)){ + if($__0.equals(((ISet)$constants.get(5)/*{}*/))){ + throw new Throw($RVF.constructor(M_Exception.RuntimeException_EmptySet_, new IValue[]{})); + } else { + return null; + } + } else { + return null; + } + } while(false); + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Set.rsc|(5458,239,<239,0>,<249,33>) + public IInteger Set_size$215788d71e8b2455(ISet st_0){ + + + HashMap $typeBindings = new HashMap<>(); + if($T3.match(st_0.getType(), $typeBindings)){ + final IInteger $result38 = ((IInteger)((IInteger)$Prelude.size(st_0))); + if($T28.instantiate($typeBindings) != $TF.voidType() && $isSubtypeOf($result38.getType(),$T28)){ + return ((IInteger)($result38)); + + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Set.rsc|(5700,355,<252,0>,<258,1>) + public INumber Set_sum$059718d9ca35d7b7(ISet $__0){ + + + HashMap $typeBindings = new HashMap<>(); + /*muExists*/sum: + do { + if($T20.match($__0.getType(), $typeBindings)){ + if($__0.equals(((ISet)$constants.get(5)/*{}*/))){ + throw new Throw($RVF.constructor(M_Exception.RuntimeException_ArithmeticException_str, new IValue[]{((IString)$constants.get(6)/*"For the emtpy set it is not possible to decide the correct precision to return. + + If you want to call ..."*/)})); + } else { + return null; + } + } else { + return null; + } + } while(false); + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Set.rsc|(6057,211,<260,0>,<269,25>) + public INumber Set_sum$2faf8190d541068a(ISet $0){ + + + HashMap $typeBindings = new HashMap<>(); + /*muExists*/sum: + do { + if($T23.match($0.getType(), $typeBindings)){ + ISet $subject43 = (ISet)($0); + if(((ISet)($subject43)).size() >= 1){ + sum_SET_VARe: + for(IValue $elem48_for : ((ISet)($subject43))){ + INumber $elem48 = (INumber) $elem48_for; + INumber e_0 = ((INumber)($elem48)); + final ISet $subject45 = ((ISet)(((ISet)($subject43)).delete(((INumber)e_0)))); + sum_SET_VARe_MVARr: + for(IValue $elem47_for : new SubSetGenerator(((ISet)($subject45)))){ + ISet $elem47 = (ISet) $elem47_for; + ISet r_1 = ((ISet)($elem47)); + final ISet $subject46 = ((ISet)(((ISet)($subject45)).subtract(((ISet)($elem47))))); + if(((ISet)($subject46)).size() == 0){ + INumber $reducer40 = (INumber)(e_0); + $REDUCER39_GEN6260: + for(IValue $elem41_for : ((ISet)r_1)){ + INumber $elem41 = (INumber) $elem41_for; + INumber i_3 = null; + $reducer40 = ((INumber)($anum_add_anum(((INumber)($reducer40)),((INumber)($elem41))))); + + } + + final INumber $result42 = ((INumber)($reducer40)); + if($T42.instantiate($typeBindings) != $TF.voidType() && $isSubtypeOf($result42.getType(),$T42)){ + return ((INumber)($result42)); + + } else { + return null; + } + } else { + continue sum_SET_VARe_MVARr;/*set pat3*/ + } + } + continue sum_SET_VARe;/*set pat4*/ + + } + return null; + + } else { + return null; + } + } else { + return null; + } + } while(false); + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Set.rsc|(6272,1208,<273,0>,<303,38>) + public IValue Set_getOneFrom$385242ba381fd613(ISet st_0){ + + + HashMap $typeBindings = new HashMap<>(); + if($T3.match(st_0.getType(), $typeBindings)){ + final IValue $result49 = ((IValue)((IValue)$Prelude.getOneFrom(st_0))); + if($T37.instantiate($typeBindings) != $TF.voidType() && $isSubtypeOf($result49.getType(),$T37)){ + return ((IValue)($result49)); + + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Set.rsc|(7483,1333,<306,0>,<330,40>) + public IValue Set_getFirstFrom$f7e01cd92c21a6cb(ISet st_0){ + + + HashMap $typeBindings = new HashMap<>(); + if($T3.match(st_0.getType(), $typeBindings)){ + final IValue $result50 = ((IValue)((IValue)$Prelude.getFirstFrom(st_0))); + if($T37.instantiate($typeBindings) != $TF.voidType() && $isSubtypeOf($result50.getType(),$T37)){ + return ((IValue)($result50)); + + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Set.rsc|(8818,995,<332,0>,<346,74>) + public IValue Set_getSingleFrom$42d5ad5d40a25ab7(ISet st_0){ + + + HashMap $typeBindings = new HashMap<>(); + if($T3.match(st_0.getType(), $typeBindings)){ + if((((IBool)($equal(((IInteger)($me.size(((ISet)st_0)))), ((IInteger)$constants.get(3)/*1*/))))).getValue()){ + final IValue $result51 = ((IValue)($me.getFirstFrom(((ISet)st_0)))); + if($T37.instantiate($typeBindings) != $TF.voidType() && $isSubtypeOf($result51.getType(),$T37)){ + return ((IValue)($result51)); + + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Set.rsc|(9995,490,<353,0>,<367,55>) + public ITuple Set_takeOneFrom$291ddec83a7e9a61(ISet st_0){ + + + HashMap $typeBindings = new HashMap<>(); + if($T3.match(st_0.getType(), $typeBindings)){ + final ITuple $result52 = ((ITuple)((ITuple)$Prelude.takeOneFrom(st_0))); + if($T43.instantiate($typeBindings) != $TF.voidType() && $isSubtypeOf($result52.getType(),$T43)){ + return ((ITuple)($result52)); + + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Set.rsc|(10489,196,<370,0>,<374,64>) + public ITuple Set_takeFirstFrom$b4e24a7c33f584da(ISet $0){ + + + HashMap $typeBindings = new HashMap<>(); + /*muExists*/takeFirstFrom: + do { + if($T27.match($0.getType(), $typeBindings)){ + ISet $subject54 = (ISet)($0); + if(((ISet)($subject54)).size() >= 1){ + takeFirstFrom_SET_VARf: + for(IValue $elem59_for : ((ISet)($subject54))){ + IValue $elem59 = (IValue) $elem59_for; + IValue f_0 = ((IValue)($elem59)); + final ISet $subject56 = ((ISet)(((ISet)($subject54)).delete(((IValue)f_0)))); + takeFirstFrom_SET_VARf_MVARr: + for(IValue $elem58_for : new SubSetGenerator(((ISet)($subject56)))){ + ISet $elem58 = (ISet) $elem58_for; + ISet r_1 = ((ISet)($elem58)); + final ISet $subject57 = ((ISet)(((ISet)($subject56)).subtract(((ISet)($elem58))))); + if(((ISet)($subject57)).size() == 0){ + final ITuple $result53 = ((ITuple)($RVF.tuple(((IValue)f_0), ((ISet)r_1)))); + if($T43.instantiate($typeBindings) != $TF.voidType() && $isSubtypeOf($result53.getType(),$T43)){ + return ((ITuple)($result53)); + + } else { + return null; + } + } else { + continue takeFirstFrom_SET_VARf_MVARr;/*set pat3*/ + } + } + continue takeFirstFrom_SET_VARf;/*set pat4*/ + + } + return null; + + } else { + return null; + } + } else { + return null; + } + } while(false); + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Set.rsc|(10688,75,<375,0>,<375,75>) + public ITuple Set_takeFirstFrom$dc2a600de1d8389f(ISet $__0){ + + + HashMap $typeBindings = new HashMap<>(); + /*muExists*/takeFirstFrom: + do { + if($T3.match($__0.getType(), $typeBindings)){ + if($__0.equals(((ISet)$constants.get(5)/*{}*/))){ + throw new Throw($RVF.constructor(M_Exception.RuntimeException_EmptySet_, new IValue[]{})); + } else { + return null; + } + } else { + return null; + } + } while(false); + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Set.rsc|(10769,460,<378,0>,<394,43>) + public IList Set_toList$c29313189aeae08a(ISet st_0){ + + + HashMap $typeBindings = new HashMap<>(); + if($T3.match(st_0.getType(), $typeBindings)){ + final IListWriter $writer60 = (IListWriter)$RVF.listWriter(); + $listwriter_splice($writer60,st_0); + final IList $result61 = ((IList)($writer60.done())); + if($T44.instantiate($typeBindings) != $TF.voidType() && $isSubtypeOf($result61.getType(),$T44)){ + return ((IList)($result61)); + + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Set.rsc|(11232,447,<397,0>,<409,50>) + public IMap Set_toMap$5f7d7ee44cb2e11d(ISet st_0){ + + + HashMap $typeBindings = new HashMap<>(); + if($T8.match(st_0.getType(), $typeBindings)){ + final IMap $result62 = ((IMap)((IMap)$Prelude.toMap(st_0))); + if($T45.instantiate($typeBindings) != $TF.voidType() && $isSubtypeOf($result62.getType(),$T45)){ + return ((IMap)($result62)); + + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Set.rsc|(11682,520,<412,0>,<427,70>) + public IMap Set_toMapUnique$fca205feb507456a(ISet st_0){ + + + HashMap $typeBindings = new HashMap<>(); + if($T8.match(st_0.getType(), $typeBindings)){ + final IMap $result63 = ((IMap)((IMap)$Prelude.toMapUnique(st_0))); + if($T49.instantiate($typeBindings) != $TF.voidType() && $isSubtypeOf($result63.getType(),$T49)){ + return ((IMap)($result63)); + + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Set.rsc|(12205,389,<430,0>,<442,37>) + public IString Set_toString$2266fa6e4b318c58(ISet st_0){ + + + HashMap $typeBindings = new HashMap<>(); + if($T3.match(st_0.getType(), $typeBindings)){ + final IString $result64 = ((IString)((IString)$Prelude.toString(st_0))); + if($T50.instantiate($typeBindings) != $TF.voidType() && $isSubtypeOf($result64.getType(),$T50)){ + return ((IString)($result64)); + + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Set.rsc|(12597,400,<445,0>,<457,38>) + public IString Set_itoString$d920014271a23230(ISet st_0){ + + + HashMap $typeBindings = new HashMap<>(); + if($T3.match(st_0.getType(), $typeBindings)){ + final IString $result65 = ((IString)((IString)$Prelude.itoString(st_0))); + if($T50.instantiate($typeBindings) != $TF.voidType() && $isSubtypeOf($result65.getType(),$T50)){ + return ((IString)($result65)); + + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Set.rsc|(13759,34,<484,9>,<484,43>) + public IBool $CLOSURE_2(IValue a_0, IValue b_1){ + + + HashMap $typeBindings = new HashMap<>(); + if($T6.match(a_0.getType(), $typeBindings)){ + if($T7.match(b_1.getType(), $typeBindings)){ + final IBool $result66 = ((IBool)($less(((IValue)a_0),((IValue)b_1)))); + if($T5.instantiate($typeBindings) != $TF.voidType() && $isSubtypeOf($result66.getType(),$T5)){ + return ((IBool)($result66)); + + } else { + return ((IBool)$constants.get(0)/*false*/); + + } + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Set.rsc|(13001,795,<461,0>,<484,46>) + public IList Set_sort$2d7ce904b21febd4(ISet s_0){ + + + HashMap $typeBindings = new HashMap<>(); + if($T3.match(s_0.getType(), $typeBindings)){ + final IList $result67 = ((IList)($me.sort(((ISet)s_0), new TypedFunctionInstance2(($13759_0, $13759_1) -> { return $CLOSURE_2((IValue)$13759_0, (IValue)$13759_1); }, $T34)))); + if($T44.instantiate($typeBindings) != $TF.voidType() && $isSubtypeOf($result67.getType(),$T44)){ + return ((IList)($result67)); + + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Set.rsc|(13799,104,<486,0>,<487,62>) + public IList Set_sort$4b3ff1abd5c398df(ISet l_0, TypedFunctionInstance2 less_1){ + + + HashMap $typeBindings = new HashMap<>(); + if($T3.match(l_0.getType(), $typeBindings)){ + if($T4.match(less_1.getType(), $typeBindings)){ + final IList $result68 = ((IList)((IList)$Prelude.sort(l_0, less_1))); + if($T44.instantiate($typeBindings) != $TF.voidType() && $isSubtypeOf($result68.getType(),$T44)){ + return ((IList)($result68)); + + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Set.rsc|(13906,676,<490,0>,<501,68>) + public IList Set_top$cbec7e0e8e8db73b(IInteger k_0, ISet l_1, TypedFunctionInstance2 less_2){ + + + HashMap $typeBindings = new HashMap<>(); + if($T3.match(l_1.getType(), $typeBindings)){ + if($T4.match(less_2.getType(), $typeBindings)){ + final IList $result69 = ((IList)((IList)$Prelude.top(k_0, l_1, less_2))); + if($T44.instantiate($typeBindings) != $TF.voidType() && $isSubtypeOf($result69.getType(),$T44)){ + return ((IList)($result69)); + + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Set.rsc|(14634,35,<503,50>,<503,85>) + public IBool $CLOSURE_3(IValue a_0, IValue b_1){ + + + HashMap $typeBindings = new HashMap<>(); + if($T6.match(a_0.getType(), $typeBindings)){ + if($T7.match(b_1.getType(), $typeBindings)){ + final IBool $result70 = ((IBool)($less(((IValue)a_0),((IValue)b_1)))); + if($T5.instantiate($typeBindings) != $TF.voidType() && $isSubtypeOf($result70.getType(),$T5)){ + return ((IBool)($result70)); + + } else { + return ((IBool)$constants.get(0)/*false*/); + + } + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Set.rsc|(14584,87,<503,0>,<503,87>) + public IList Set_top$3a2a3e2325787ee4(IInteger k_0, ISet l_1){ + + + HashMap $typeBindings = new HashMap<>(); + if($T3.match(l_1.getType(), $typeBindings)){ + final IList $result71 = ((IList)($me.top(((IInteger)k_0), ((ISet)l_1), new TypedFunctionInstance2(($14634_0, $14634_1) -> { return $CLOSURE_3((IValue)$14634_0, (IValue)$14634_1); }, $T34)))); + if($T44.instantiate($typeBindings) != $TF.voidType() && $isSubtypeOf($result71.getType(),$T44)){ + return ((IList)($result71)); + + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Set.rsc|(14674,111,<506,0>,<507,59>) + public ISet Set_union$356d5959884f94d7(ISet sets_0){ + + + HashMap $typeBindings = new HashMap<>(); + if($T26.match(sets_0.getType(), $typeBindings)){ + final ISetWriter $setwriter72 = (ISetWriter)$RVF.setWriter(); + ; + $SCOMP73_GEN14774: + for(IValue $elem74_for : ((ISet)sets_0)){ + ISet $elem74 = (ISet) $elem74_for; + ISet s_1 = null; + $setwriter_splice($setwriter72,$elem74); + + } + + final ISet $result75 = ((ISet)($setwriter72.done())); + if($T38.instantiate($typeBindings) != $TF.voidType() && $isSubtypeOf($result75.getType(),$T38)){ + return ((ISet)($result75)); + + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Set.rsc|(14788,136,<510,0>,<511,76>) + public IReal Set_jaccard$6b63114dcc758902(ISet x_0, ISet y_1){ + + + return ((IReal)($areal_divide_aint(((IReal)($areal_product_aint(((IReal)$constants.get(7)/*1.*/),((IInteger)($me.size(((ISet)(((ISet)x_0).intersect(((ISet)y_1)))))))))),((IInteger)($me.size(((ISet)($aset_add_aset(((ISet)x_0),((ISet)y_1)))))))))); + + } + + + public static void main(String[] args) { + throw new RuntimeException("No function `main` found in Rascal module `Set`"); + } +} \ No newline at end of file diff --git a/src/rascal/$Set.tpl b/src/rascal/$Set.tpl new file mode 100644 index 00000000000..0b2f0c0c6b1 Binary files /dev/null and b/src/rascal/$Set.tpl differ diff --git a/src/rascal/$Set_$I.java b/src/rascal/$Set_$I.java new file mode 100644 index 00000000000..db5b2d38222 --- /dev/null +++ b/src/rascal/$Set_$I.java @@ -0,0 +1,36 @@ +package rascal; +import io.usethesource.vallang.*; +import org.rascalmpl.runtime.function.*; + +@SuppressWarnings("unused") +public interface $Set_$I { + IValue classify(IValue $0, IValue $1); + IValue getFirstFrom(IValue $0); + IValue getOneFrom(IValue $0); + IValue getSingleFrom(IValue $0); + IValue group(IValue $0, IValue $1); + IValue index(IValue $0); + IValue isEmpty(IValue $0); + IValue itoString(IValue $0); + IValue jaccard(IValue $0, IValue $1); + IValue mapper(IValue $0, IValue $1); + IValue max(IValue $0); + IValue min(IValue $0); + IValue power(IValue $0); + IValue power1(IValue $0); + IValue reducer(IValue $0, IValue $1, IValue $2); + IValue reducer(IValue $0); + IValue size(IValue $0); + IValue sort(IValue $0); + IValue sort(IValue $0, IValue $1); + IValue sum(IValue $0); + IValue takeFirstFrom(IValue $0); + IValue takeOneFrom(IValue $0); + IValue toList(IValue $0); + IValue toMap(IValue $0); + IValue toMapUnique(IValue $0); + IValue toString(IValue $0); + IValue top(IValue $0, IValue $1); + IValue top(IValue $0, IValue $1, IValue $2); + IValue union(IValue $0); +} \ No newline at end of file diff --git a/src/rascal/$String.constants b/src/rascal/$String.constants new file mode 100644 index 00000000000..f307219d08b Binary files /dev/null and b/src/rascal/$String.constants differ diff --git a/src/rascal/$String.java b/src/rascal/$String.java new file mode 100644 index 00000000000..73b34e2b7b8 --- /dev/null +++ b/src/rascal/$String.java @@ -0,0 +1,1589 @@ +package rascal; +import java.io.PrintWriter; +import java.io.StringWriter; +import java.io.InputStreamReader; +import java.io.PrintWriter; +import java.util.*; +import java.util.regex.Matcher; +import io.usethesource.vallang.*; +import io.usethesource.vallang.type.*; +import org.rascalmpl.runtime.*; +import org.rascalmpl.runtime.RascalExecutionContext; +import org.rascalmpl.runtime.function.*; +import org.rascalmpl.runtime.traverse.*; +import org.rascalmpl.runtime.utils.*; +import org.rascalmpl.exceptions.RuntimeExceptionFactory; +import org.rascalmpl.exceptions.Throw; +import org.rascalmpl.runtime.RascalExecutionContext; +import org.rascalmpl.interpreter.control_exceptions.Filtered; +import org.rascalmpl.types.NonTerminalType; +import org.rascalmpl.types.RascalTypeFactory; +import org.rascalmpl.util.ExpiringFunctionResultCache; +import org.rascalmpl.values.RascalValueFactory; +import org.rascalmpl.values.ValueFactoryFactory; +import org.rascalmpl.values.parsetrees.ITree; +import org.rascalmpl.values.parsetrees.TreeAdapter; + + + +@SuppressWarnings({"unused","unchecked","deprecation"}) +public class $String + extends + org.rascalmpl.runtime.$RascalModule + implements + rascal.$Exception_$I, + rascal.$String_$I { + + private final $String_$I $me; + private final IList $constants; + + + public final rascal.$Message M_Message; + public final rascal.$Exception M_Exception; + public final rascal.$ParseTree M_ParseTree; + public final rascal.$Type M_Type; + public final rascal.$List M_List; + + + final org.rascalmpl.library.Prelude $Prelude; // TODO: asBaseClassName will generate name collisions if there are more of the same name in different packages + + + public IString DEFAULT_CHARSET; + public final io.usethesource.vallang.type.Type $T15; /*aloc(alabel="a")*/ + public final io.usethesource.vallang.type.Type $T9; /*aloc()*/ + public final io.usethesource.vallang.type.Type $T0; /*astr()*/ + public final io.usethesource.vallang.type.Type $T5; /*aint()*/ + public final io.usethesource.vallang.type.Type $T2; /*avalue()*/ + public final io.usethesource.vallang.type.Type $T16; /*aloc(alabel="b")*/ + public final io.usethesource.vallang.type.Type $T12; /*aparameter("CharClass",avalue(),closed=true)*/ + public final io.usethesource.vallang.type.Type $T3; /*aparameter("T",avalue(),closed=false)*/ + public final io.usethesource.vallang.type.Type $T7; /*aparameter("CharClass",avalue(),closed=false)*/ + public final io.usethesource.vallang.type.Type $T14; /*abool()*/ + public final io.usethesource.vallang.type.Type ADT_LocationType; /*aadt("LocationType",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type $T13; /*afunc(abool(),[aloc(alabel="a"),aloc(alabel="b")],[],returnsViaAllPath=true)*/ + public final io.usethesource.vallang.type.Type ADT_IOCapability; /*aadt("IOCapability",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Tree; /*aadt("Tree",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Symbol; /*aadt("Symbol",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Exception; /*aadt("Exception",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type $T4; /*amap(astr(),astr())*/ + public final io.usethesource.vallang.type.Type $T8; /*alist(aint())*/ + public final io.usethesource.vallang.type.Type ADT_RuntimeException; /*aadt("RuntimeException",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Attr; /*aadt("Attr",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type $T10; /*amap(aloc(),astr())*/ + public final io.usethesource.vallang.type.Type $T11; /*aparameter("T",aadt("Tree",[],dataSyntax()),closed=true)*/ + public final io.usethesource.vallang.type.Type ADT_TreeSearchResult_1; /*aadt("TreeSearchResult",[aparameter("T",aadt("Tree",[],dataSyntax()),closed=true)],dataSyntax())*/ + public final io.usethesource.vallang.type.Type $T6; /*areified(aparameter("CharClass",avalue(),closed=false))*/ + public final io.usethesource.vallang.type.Type ADT_LocationChangeType; /*aadt("LocationChangeType",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Production; /*aadt("Production",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Associativity; /*aadt("Associativity",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_CharRange; /*aadt("CharRange",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type $T1; /*alist(aparameter("T",avalue(),closed=false))*/ + public final io.usethesource.vallang.type.Type ADT_LocationChangeEvent; /*aadt("LocationChangeEvent",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Message; /*aadt("Message",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Condition; /*aadt("Condition",[],dataSyntax())*/ + + public $String(RascalExecutionContext rex){ + this(rex, null); + } + + public $String(RascalExecutionContext rex, Object extended){ + super(rex); + this.$me = extended == null ? this : ($String_$I)extended; + ModuleStore mstore = rex.getModuleStore(); + mstore.put(rascal.$String.class, this); + + mstore.importModule(rascal.$Message.class, rex, rascal.$Message::new); + mstore.importModule(rascal.$ParseTree.class, rex, rascal.$ParseTree::new); + mstore.importModule(rascal.$Type.class, rex, rascal.$Type::new); + mstore.importModule(rascal.$List.class, rex, rascal.$List::new); + + M_Message = mstore.getModule(rascal.$Message.class); + M_ParseTree = mstore.getModule(rascal.$ParseTree.class); + M_Type = mstore.getModule(rascal.$Type.class); + M_List = mstore.getModule(rascal.$List.class); + + M_Exception = mstore.extendModule(rascal.$Exception.class, rex, rascal.$Exception::new, $me); + + + $TS.importStore(M_Message.$TS); + $TS.importStore(M_Exception.$TS); + $TS.importStore(M_ParseTree.$TS); + $TS.importStore(M_Type.$TS); + $TS.importStore(M_List.$TS); + + $Prelude = $initLibrary("org.rascalmpl.library.Prelude"); + + $constants = readBinaryConstantsFile(this.getClass(), "rascal/$String.constants", 17, "806c95ef22aa243d4485be9aa38ae20f"); + ADT_LocationType = $adt("LocationType"); + ADT_IOCapability = $adt("IOCapability"); + ADT_Tree = $adt("Tree"); + ADT_Symbol = $adt("Symbol"); + ADT_Exception = $adt("Exception"); + ADT_RuntimeException = $adt("RuntimeException"); + ADT_Attr = $adt("Attr"); + ADT_LocationChangeType = $adt("LocationChangeType"); + ADT_Production = $adt("Production"); + ADT_Associativity = $adt("Associativity"); + ADT_CharRange = $adt("CharRange"); + ADT_LocationChangeEvent = $adt("LocationChangeEvent"); + ADT_Message = $adt("Message"); + ADT_Condition = $adt("Condition"); + $T15 = $TF.sourceLocationType(); + $T9 = $TF.sourceLocationType(); + $T0 = $TF.stringType(); + $T5 = $TF.integerType(); + $T2 = $TF.valueType(); + $T16 = $TF.sourceLocationType(); + $T12 = $TF.parameterType("CharClass", $T2); + $T3 = $TF.parameterType("T", $T2); + $T7 = $TF.parameterType("CharClass", $T2); + $T14 = $TF.boolType(); + $T13 = $TF.functionType($T14, $TF.tupleType($T15, "a", $T16, "b"), $TF.tupleEmpty()); + $T4 = $TF.mapType($T0,$T0); + $T8 = $TF.listType($T5); + $T10 = $TF.mapType($T9,$T0); + $T11 = $TF.parameterType("T", ADT_Tree); + ADT_TreeSearchResult_1 = $parameterizedAdt("TreeSearchResult", new Type[] { $T11 }); + $T6 = $RTF.reifiedType($T7); + $T1 = $TF.listType($T3); + + DEFAULT_CHARSET = ((IString)$constants.get(16)/*"UTF-8"*/); + + + } + public IList addLabels(IValue $P0, IValue $P1){ // Generated by Resolver + return (IList) M_Type.addLabels($P0, $P1); + } + public IBool sameType(IValue $P0, IValue $P1){ // Generated by Resolver + return (IBool) M_ParseTree.sameType($P0, $P1); + } + public IValue head(IValue $P0){ // Generated by Resolver + return (IValue) M_List.head($P0); + } + public IBool isAliasType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isAliasType($P0); + } + public IInteger size(IValue $P0){ // Generated by Resolver + IInteger $result = null; + Type $P0Type = $P0.getType(); + if($isSubtypeOf($P0Type,$T0)){ + $result = (IInteger)String_size$4611676944e933d5((IString) $P0); + if($result != null) return $result; + } + if($isSubtypeOf($P0Type,$T1)){ + $result = (IInteger)M_List.List_size$ba7443328d8b4a27((IList) $P0); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0)); + } + public IConstructor choice(IValue $P0, IValue $P1){ // Generated by Resolver + return (IConstructor) M_Type.choice($P0, $P1); + } + public IBool isValueType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isValueType($P0); + } + public IBool isADTType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isADTType($P0); + } + public IString escape(IValue $P0, IValue $P1){ // Generated by Resolver + IString $result = null; + Type $P0Type = $P0.getType(); + Type $P1Type = $P1.getType(); + if($isSubtypeOf($P0Type,$T0) && $isSubtypeOf($P1Type,$T4)){ + $result = (IString)String_escape$7fa23c31a411d9dc((IString) $P0, (IMap) $P1); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0, $P1)); + } + public IBool isStrType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isStrType($P0); + } + public IString trim(IValue $P0){ // Generated by Resolver + IString $result = null; + Type $P0Type = $P0.getType(); + if($isSubtypeOf($P0Type,$T0)){ + $result = (IString)String_trim$8faad6373d3f1827((IString) $P0); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0)); + } + public IBool isRealType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isRealType($P0); + } + public IString arbString(IValue $P0){ // Generated by Resolver + IString $result = null; + Type $P0Type = $P0.getType(); + if($isSubtypeOf($P0Type,$T5)){ + $result = (IString)String_arbString$bfea25a11df8dffa((IInteger) $P0); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0)); + } + public IString squeeze(IValue $P0, IValue $P1){ // Generated by Resolver + IString $result = null; + Type $P0Type = $P0.getType(); + Type $P1Type = $P1.getType(); + if($isSubtypeOf($P0Type,$T0) && $isSubtypeOf($P1Type,$T0)){ + $result = (IString)String_squeeze$d1d8b81dff6f8420((IString) $P0, (IString) $P1); + if($result != null) return $result; + } + if($isSubtypeOf($P0Type,$T0) && $isSubtypeOf($P1Type,$T6)){ + $result = (IString)String_squeeze$6e2735f43e585785((IString) $P0, (IConstructor) $P1); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0, $P1)); + } + public IBool isListType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isListType($P0); + } + public IString deescape(IValue $P0){ // Generated by Resolver + IString $result = null; + Type $P0Type = $P0.getType(); + if($isSubtypeOf($P0Type,$T0)){ + $result = (IString)String_deescape$463da4cc9241a765((IString) $P0); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0)); + } + public IString reverse(IValue $P0){ // Generated by Resolver + IString $result = null; + Type $P0Type = $P0.getType(); + if($isSubtypeOf($P0Type,$T0)){ + $result = (IString)String_reverse$5c483498523ba125((IString) $P0); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0)); + } + public IBool isTypeVar(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isTypeVar($P0); + } + public IBool isEmpty(IValue $P0){ // Generated by Resolver + IBool $result = null; + Type $P0Type = $P0.getType(); + if($isSubtypeOf($P0Type,$T0)){ + $result = (IBool)String_isEmpty$0288736cc2315249((IString) $P0); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0)); + } + public IConstructor priority(IValue $P0, IValue $P1){ // Generated by Resolver + return (IConstructor) M_ParseTree.priority($P0, $P1); + } + public IString uncapitalize(IValue $P0){ // Generated by Resolver + IString $result = null; + Type $P0Type = $P0.getType(); + if($isSubtypeOf($P0Type,$T0)){ + $result = (IString)String_uncapitalize$5a860f2aab2710e3((IString) $P0); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0)); + } + public IBool isNodeType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isNodeType($P0); + } + public IString stringChar(IValue $P0){ // Generated by Resolver + IString $result = null; + Type $P0Type = $P0.getType(); + if($isSubtypeOf($P0Type,$T5)){ + $result = (IString)String_stringChar$29485394ec702339((IInteger) $P0); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0)); + } + public IString left(IValue $P0, IValue $P1, IValue $P2){ // Generated by Resolver + IString $result = null; + Type $P0Type = $P0.getType(); + Type $P1Type = $P1.getType(); + Type $P2Type = $P2.getType(); + if($isSubtypeOf($P0Type,$T0) && $isSubtypeOf($P1Type,$T5) && $isSubtypeOf($P2Type,$T0)){ + $result = (IString)String_left$b5982a84598a5a87((IString) $P0, (IInteger) $P1, (IString) $P2); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0, $P1, $P2)); + } + public IString left(IValue $P0, IValue $P1){ // Generated by Resolver + IString $result = null; + Type $P0Type = $P0.getType(); + Type $P1Type = $P1.getType(); + if($isSubtypeOf($P0Type,$T0) && $isSubtypeOf($P1Type,$T5)){ + $result = (IString)String_left$ea4ca9949ebc690b((IString) $P0, (IInteger) $P1); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0, $P1)); + } + public IList findAll(IValue $P0, IValue $P1){ // Generated by Resolver + IList $result = null; + Type $P0Type = $P0.getType(); + Type $P1Type = $P1.getType(); + if($isSubtypeOf($P0Type,$T0) && $isSubtypeOf($P1Type,$T0)){ + $result = (IList)String_findAll$bd53b9d00cf0465e((IString) $P0, (IString) $P1); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0, $P1)); + } + public IBool isReifiedType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isReifiedType($P0); + } + public IInteger charAt(IValue $P0, IValue $P1){ // Generated by Resolver + IInteger $result = null; + Type $P0Type = $P0.getType(); + Type $P1Type = $P1.getType(); + if($isSubtypeOf($P0Type,$T0) && $isSubtypeOf($P1Type,$T5)){ + $result = (IInteger)String_charAt$c43d01db8f754016((IString) $P0, (IInteger) $P1); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0, $P1)); + } + public IBool isRelType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isRelType($P0); + } + public IString wrap(IValue $P0, IValue $P1){ // Generated by Resolver + IString $result = null; + Type $P0Type = $P0.getType(); + Type $P1Type = $P1.getType(); + if($isSubtypeOf($P0Type,$T0) && $isSubtypeOf($P1Type,$T5)){ + $result = (IString)String_wrap$c21d49e5b8cae059((IString) $P0, (IInteger) $P1); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0, $P1)); + } + public IString replaceLast(IValue $P0, IValue $P1, IValue $P2){ // Generated by Resolver + IString $result = null; + Type $P0Type = $P0.getType(); + Type $P1Type = $P1.getType(); + Type $P2Type = $P2.getType(); + if($isSubtypeOf($P0Type,$T0) && $isSubtypeOf($P1Type,$T0) && $isSubtypeOf($P2Type,$T0)){ + $result = (IString)String_replaceLast$e73336ea981874fc((IString) $P0, (IString) $P1, (IString) $P2); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0, $P1, $P2)); + } + public IBool isConstructorType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isConstructorType($P0); + } + public IString toBase64(IValue $P0, java.util.Map $kwpActuals){ // Generated by Resolver + IString $result = null; + Type $P0Type = $P0.getType(); + if($isSubtypeOf($P0Type,$T0)){ + $result = (IString)String_toBase64$e60dafecaa2ee56e((IString) $P0, $kwpActuals); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0)); + } + public IBool isListRelType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isListRelType($P0); + } + public IList addParamLabels(IValue $P0, IValue $P1){ // Generated by Resolver + return (IList) M_Type.addParamLabels($P0, $P1); + } + public IString toBase32(IValue $P0, java.util.Map $kwpActuals){ // Generated by Resolver + IString $result = null; + Type $P0Type = $P0.getType(); + if($isSubtypeOf($P0Type,$T0)){ + $result = (IString)String_toBase32$49dc832874fb11d9((IString) $P0, $kwpActuals); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0)); + } + public IBool isMapType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isMapType($P0); + } + public IString stringChars(IValue $P0){ // Generated by Resolver + IString $result = null; + Type $P0Type = $P0.getType(); + if($isSubtypeOf($P0Type,$T8)){ + $result = (IString)String_stringChars$990634670d003421((IList) $P0); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0)); + } + public IString capitalize(IValue $P0){ // Generated by Resolver + IString $result = null; + Type $P0Type = $P0.getType(); + if($isSubtypeOf($P0Type,$T0)){ + $result = (IString)String_capitalize$241c1cc358b38921((IString) $P0); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0)); + } + public IString replaceAll(IValue $P0, IValue $P1, IValue $P2){ // Generated by Resolver + IString $result = null; + Type $P0Type = $P0.getType(); + Type $P1Type = $P1.getType(); + Type $P2Type = $P2.getType(); + if($isSubtypeOf($P0Type,$T0) && $isSubtypeOf($P1Type,$T0) && $isSubtypeOf($P2Type,$T0)){ + $result = (IString)String_replaceAll$40dfb6273a17a7ab((IString) $P0, (IString) $P1, (IString) $P2); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0, $P1, $P2)); + } + public IBool isBoolType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isBoolType($P0); + } + public IInteger findLast(IValue $P0, IValue $P1){ // Generated by Resolver + IInteger $result = null; + Type $P0Type = $P0.getType(); + Type $P1Type = $P1.getType(); + if($isSubtypeOf($P0Type,$T0) && $isSubtypeOf($P1Type,$T0)){ + $result = (IInteger)String_findLast$e5f4379f5988beac((IString) $P0, (IString) $P1); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0, $P1)); + } + public IList tail(IValue $P0){ // Generated by Resolver + return (IList) M_List.tail($P0); + } + public IBool isLocType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isLocType($P0); + } + public ISourceLocation toLocation(IValue $P0){ // Generated by Resolver + ISourceLocation $result = null; + Type $P0Type = $P0.getType(); + if($isSubtypeOf($P0Type,$T0)){ + $result = (ISourceLocation)String_toLocation$347a629c083bfdf1((IString) $P0); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0)); + } + public IString String_substitute$a969725dc1004f33_subst1(IValue $P0, IValue $P1, IValue $P2, ValueRef shift_2){ // Generated by Resolver + IString $result = null; + Type $P0Type = $P0.getType(); + Type $P1Type = $P1.getType(); + Type $P2Type = $P2.getType(); + if($isSubtypeOf($P0Type,$T0) && $isSubtypeOf($P1Type,$T9) && $isSubtypeOf($P2Type,$T0)){ + $result = (IString)String_subst1$0127b165869021ec((IString) $P0, (ISourceLocation) $P1, (IString) $P2, shift_2); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0, $P1, $P2)); + } + public ITuple headTail(IValue $P0){ // Generated by Resolver + return (ITuple) M_List.headTail($P0); + } + public IString substring(IValue $P0, IValue $P1, IValue $P2){ // Generated by Resolver + IString $result = null; + Type $P0Type = $P0.getType(); + Type $P1Type = $P1.getType(); + Type $P2Type = $P2.getType(); + if($isSubtypeOf($P0Type,$T0) && $isSubtypeOf($P1Type,$T5) && $isSubtypeOf($P2Type,$T5)){ + $result = (IString)String_substring$77404656fd06e485((IString) $P0, (IInteger) $P1, (IInteger) $P2); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0, $P1, $P2)); + } + public IString substring(IValue $P0, IValue $P1){ // Generated by Resolver + IString $result = null; + Type $P0Type = $P0.getType(); + Type $P1Type = $P1.getType(); + if($isSubtypeOf($P0Type,$T0) && $isSubtypeOf($P1Type,$T5)){ + $result = (IString)String_substring$1516e7be77c7268c((IString) $P0, (IInteger) $P1); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0, $P1)); + } + public IConstructor treeAt(IValue $P0, IValue $P1, IValue $P2){ // Generated by Resolver + return (IConstructor) M_ParseTree.treeAt($P0, $P1, $P2); + } + public IBool isSetType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isSetType($P0); + } + public IInteger toInt(IValue $P0){ // Generated by Resolver + IInteger $result = null; + Type $P0Type = $P0.getType(); + if($isSubtypeOf($P0Type,$T0)){ + $result = (IInteger)String_toInt$8c1572a980336ee2((IString) $P0); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0)); + } + public IInteger toInt(IValue $P0, IValue $P1){ // Generated by Resolver + IInteger $result = null; + Type $P0Type = $P0.getType(); + Type $P1Type = $P1.getType(); + if($isSubtypeOf($P0Type,$T0) && $isSubtypeOf($P1Type,$T5)){ + $result = (IInteger)String_toInt$f408c9e5b956da4b((IString) $P0, (IInteger) $P1); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0, $P1)); + } + public IBool isRatType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isRatType($P0); + } + public IString center(IValue $P0, IValue $P1, IValue $P2){ // Generated by Resolver + IString $result = null; + Type $P0Type = $P0.getType(); + Type $P1Type = $P1.getType(); + Type $P2Type = $P2.getType(); + if($isSubtypeOf($P0Type,$T0) && $isSubtypeOf($P1Type,$T5) && $isSubtypeOf($P2Type,$T0)){ + $result = (IString)String_center$e854b35d975f4ec8((IString) $P0, (IInteger) $P1, (IString) $P2); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0, $P1, $P2)); + } + public IString center(IValue $P0, IValue $P1){ // Generated by Resolver + IString $result = null; + Type $P0Type = $P0.getType(); + Type $P1Type = $P1.getType(); + if($isSubtypeOf($P0Type,$T0) && $isSubtypeOf($P1Type,$T5)){ + $result = (IString)String_center$244f457ebb47db3f((IString) $P0, (IInteger) $P1); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0, $P1)); + } + public IString toLowerCase(IValue $P0){ // Generated by Resolver + IString $result = null; + Type $P0Type = $P0.getType(); + if($isSubtypeOf($P0Type,$T0)){ + $result = (IString)String_toLowerCase$aa30e5ee71d42d20((IString) $P0); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0)); + } + public IBool isNumType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isNumType($P0); + } + public IInteger findFirst(IValue $P0, IValue $P1){ // Generated by Resolver + IInteger $result = null; + Type $P0Type = $P0.getType(); + Type $P1Type = $P1.getType(); + if($isSubtypeOf($P0Type,$T0) && $isSubtypeOf($P1Type,$T0)){ + $result = (IInteger)String_findFirst$d5769aac4911388a((IString) $P0, (IString) $P1); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0, $P1)); + } + public IBool startsWith(IValue $P0, IValue $P1){ // Generated by Resolver + IBool $result = null; + Type $P0Type = $P0.getType(); + Type $P1Type = $P1.getType(); + if($isSubtypeOf($P0Type,$T0) && $isSubtypeOf($P1Type,$T0)){ + $result = (IBool)String_startsWith$cac4396a9880251b((IString) $P0, (IString) $P1); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0, $P1)); + } + public IBool isValidCharacter(IValue $P0){ // Generated by Resolver + IBool $result = null; + Type $P0Type = $P0.getType(); + if($isSubtypeOf($P0Type,$T5)){ + $result = (IBool)String_isValidCharacter$e3998b941251ff24((IInteger) $P0); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0)); + } + public IString toUpperCase(IValue $P0){ // Generated by Resolver + IString $result = null; + Type $P0Type = $P0.getType(); + if($isSubtypeOf($P0Type,$T0)){ + $result = (IString)String_toUpperCase$52fd8e341a749153((IString) $P0); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0)); + } + public IString format(IValue $P0, IValue $P1, IValue $P2, IValue $P3){ // Generated by Resolver + IString $result = null; + Type $P0Type = $P0.getType(); + Type $P1Type = $P1.getType(); + Type $P2Type = $P2.getType(); + Type $P3Type = $P3.getType(); + if($isSubtypeOf($P0Type,$T0) && $isSubtypeOf($P1Type,$T0) && $isSubtypeOf($P2Type,$T5) && $isSubtypeOf($P3Type,$T0)){ + $result = (IString)String_format$695b8ae2ac4bdb0c((IString) $P0, (IString) $P1, (IInteger) $P2, (IString) $P3); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0, $P1, $P2, $P3)); + } + public IBool isTupleType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isTupleType($P0); + } + public IBool isBagType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isBagType($P0); + } + public IBool isVoidType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isVoidType($P0); + } + public IBool isNonTerminalType(IValue $P0){ // Generated by Resolver + return (IBool) M_ParseTree.isNonTerminalType($P0); + } + public IString fromBase64(IValue $P0, java.util.Map $kwpActuals){ // Generated by Resolver + IString $result = null; + Type $P0Type = $P0.getType(); + if($isSubtypeOf($P0Type,$T0)){ + $result = (IString)String_fromBase64$843832a7f2134466((IString) $P0, $kwpActuals); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0)); + } + public IReal toReal(IValue $P0){ // Generated by Resolver + IReal $result = null; + Type $P0Type = $P0.getType(); + if($isSubtypeOf($P0Type,$T0)){ + $result = (IReal)String_toReal$7ebfa25a05356a51((IString) $P0); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0)); + } + public IValue lub(IValue $P0, IValue $P1){ // Generated by Resolver + return (IValue) M_Type.lub($P0, $P1); + } + public IBool rexpMatch(IValue $P0, IValue $P1){ // Generated by Resolver + IBool $result = null; + Type $P0Type = $P0.getType(); + Type $P1Type = $P1.getType(); + if($isSubtypeOf($P0Type,$T0) && $isSubtypeOf($P1Type,$T0)){ + $result = (IBool)String_rexpMatch$ce341cfb7d30e780((IString) $P0, (IString) $P1); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0, $P1)); + } + public IString substitute(IValue $P0, IValue $P1){ // Generated by Resolver + IString $result = null; + Type $P0Type = $P0.getType(); + Type $P1Type = $P1.getType(); + if($isSubtypeOf($P0Type,$T0) && $isSubtypeOf($P1Type,$T10)){ + $result = (IString)String_substitute$a969725dc1004f33((IString) $P0, (IMap) $P1); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0, $P1)); + } + public IString fromBase32(IValue $P0, java.util.Map $kwpActuals){ // Generated by Resolver + IString $result = null; + Type $P0Type = $P0.getType(); + if($isSubtypeOf($P0Type,$T0)){ + $result = (IString)String_fromBase32$17f4bf9042e6dd8c((IString) $P0, $kwpActuals); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0)); + } + public IBool subtype(IValue $P0, IValue $P1){ // Generated by Resolver + return (IBool) M_Type.subtype($P0, $P1); + } + public IConstructor associativity(IValue $P0, IValue $P1, IValue $P2){ // Generated by Resolver + return (IConstructor) M_ParseTree.associativity($P0, $P1, $P2); + } + public IList split(IValue $P0, IValue $P1){ // Generated by Resolver + IList $result = null; + Type $P0Type = $P0.getType(); + Type $P1Type = $P1.getType(); + if($isSubtypeOf($P0Type,$T0) && $isSubtypeOf($P1Type,$T0)){ + $result = (IList)String_split$01009c87f3d82e4c((IString) $P0, (IString) $P1); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0, $P1)); + } + public IString replaceFirst(IValue $P0, IValue $P1, IValue $P2){ // Generated by Resolver + IString $result = null; + Type $P0Type = $P0.getType(); + Type $P1Type = $P1.getType(); + Type $P2Type = $P2.getType(); + if($isSubtypeOf($P0Type,$T0) && $isSubtypeOf($P1Type,$T0) && $isSubtypeOf($P2Type,$T0)){ + $result = (IString)String_replaceFirst$57c02d183940731e((IString) $P0, (IString) $P1, (IString) $P2); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0, $P1, $P2)); + } + public IString right(IValue $P0, IValue $P1, IValue $P2){ // Generated by Resolver + IString $result = null; + Type $P0Type = $P0.getType(); + Type $P1Type = $P1.getType(); + Type $P2Type = $P2.getType(); + if($isSubtypeOf($P0Type,$T0) && $isSubtypeOf($P1Type,$T5) && $isSubtypeOf($P2Type,$T0)){ + $result = (IString)String_right$7b00c29ca5a570ed((IString) $P0, (IInteger) $P1, (IString) $P2); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0, $P1, $P2)); + } + public IString right(IValue $P0, IValue $P1){ // Generated by Resolver + IString $result = null; + Type $P0Type = $P0.getType(); + Type $P1Type = $P1.getType(); + if($isSubtypeOf($P0Type,$T0) && $isSubtypeOf($P1Type,$T5)){ + $result = (IString)String_right$546d0f195fc78d79((IString) $P0, (IInteger) $P1); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0, $P1)); + } + public IBool isFunctionType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isFunctionType($P0); + } + public IValue glb(IValue $P0, IValue $P1){ // Generated by Resolver + return (IValue) M_Type.glb($P0, $P1); + } + public IList chars(IValue $P0){ // Generated by Resolver + IList $result = null; + Type $P0Type = $P0.getType(); + if($isSubtypeOf($P0Type,$T0)){ + $result = (IList)String_chars$92da80ccae0c69cc((IString) $P0); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0)); + } + public IBool endsWith(IValue $P0, IValue $P1){ // Generated by Resolver + IBool $result = null; + Type $P0Type = $P0.getType(); + Type $P1Type = $P1.getType(); + if($isSubtypeOf($P0Type,$T0) && $isSubtypeOf($P1Type,$T0)){ + $result = (IBool)String_endsWith$ecb90a76ab31d048((IString) $P0, (IString) $P1); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0, $P1)); + } + public IValue sort(IValue $P0){ // Generated by Resolver + IValue $result = null; + Type $P0Type = $P0.getType(); + if($isSubtypeOf($P0Type,$T1)){ + $result = (IValue)M_List.List_sort$1fe4426c8c8039da((IList) $P0); + if($result != null) return $result; + } + if($isSubtypeOf($P0Type,$T0)){ + return $RVF.constructor(M_ParseTree.Symbol_sort_str, new IValue[]{(IString) $P0}); + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0)); + } + public IList sort(IValue $P0, IValue $P1){ // Generated by Resolver + return (IList) M_List.sort($P0, $P1); + } + public IBool isIntType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isIntType($P0); + } + public IBool isDateTimeType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isDateTimeType($P0); + } + public IBool contains(IValue $P0, IValue $P1){ // Generated by Resolver + IBool $result = null; + Type $P0Type = $P0.getType(); + Type $P1Type = $P1.getType(); + if($isSubtypeOf($P0Type,$T0) && $isSubtypeOf($P1Type,$T0)){ + $result = (IBool)String_contains$91af143d76f59783((IString) $P0, (IString) $P1); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0, $P1)); + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/String.rsc|(893,362,<28,0>,<44,1>) + public IString String_center$244f457ebb47db3f(IString s_0, IInteger n_1){ + + + return ((IString)($me.format(((IString)s_0), ((IString)$constants.get(0)/*"center"*/), ((IInteger)n_1), ((IString)$constants.get(1)/*" "*/)))); + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/String.rsc|(1257,82,<46,0>,<49,1>) + public IString String_center$e854b35d975f4ec8(IString s_0, IInteger n_1, IString pad_2){ + + + return ((IString)($me.format(((IString)s_0), ((IString)$constants.get(0)/*"center"*/), ((IInteger)n_1), ((IString)pad_2)))); + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/String.rsc|(1342,433,<52,0>,<65,61>) + public IInteger String_charAt$c43d01db8f754016(IString s_0, IInteger i_1){ + + + return ((IInteger)((IInteger)$Prelude.charAt(s_0, i_1))); + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/String.rsc|(1778,368,<68,0>,<80,67>) + public IList String_chars$92da80ccae0c69cc(IString s_0){ + + + final IListWriter $listwriter0 = (IListWriter)$RVF.listWriter(); + final IInteger $lst2 = ((IInteger)($me.size(((IString)s_0)))); + final boolean $dir3 = ((IInteger)$constants.get(2)/*0*/).less($lst2).getValue(); + + $LCOMP1_GEN2127: + for(IInteger $elem2 = ((IInteger)$constants.get(2)/*0*/); $dir3 ? $aint_less_aint($elem2,$lst2).getValue() + : $aint_lessequal_aint($elem2,$lst2).not().getValue(); $elem2 = $aint_add_aint($elem2,$dir3 ? ((IInteger)$constants.get(3)/*1*/) : ((IInteger)$constants.get(4)/*-1*/))){ + IInteger i_1 = ((IInteger)($elem2)); + $listwriter0.append($me.charAt(((IString)s_0), ((IInteger)i_1))); + } + + return ((IList)($listwriter0.done())); + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/String.rsc|(2149,348,<83,0>,<95,47>) + public IBool String_contains$91af143d76f59783(IString input_0, IString find_1){ + + + return ((IBool)((IBool)$Prelude.contains(input_0, find_1))); + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/String.rsc|(2500,636,<98,0>,<111,1>) + public IString String_deescape$463da4cc9241a765(IString s_0){ + + + try { + IString res_1 = ((IString)($TRAVERSE.traverse(DIRECTION.BottomUp, PROGRESS.Continuing, FIXEDPOINT.No, REBUILD.Yes, + new DescendantDescriptor(new io.usethesource.vallang.type.Type[]{$TF.stringType()}, + new io.usethesource.vallang.IConstructor[]{}, + $RVF.bool(false)), + s_0, + (IVisitFunction) (IValue $VISIT0_subject, TraversalState $traversalState) -> { + VISIT0:switch(Fingerprint.getFingerprint($VISIT0_subject)){ + + case 0: + + + default: + if($isSubtypeOf($VISIT0_subject.getType(),$T0)){ + /*muExists*/CASE_0_0: + do { + final Matcher $matcher4 = (Matcher)$regExpCompile("^\\\\([\" \' \\< \\> \\\\])", ((IString)($VISIT0_subject)).getValue()); + boolean $found5 = true; + + while($found5){ + $found5 = $matcher4.find(); + if($found5){ + IString c_2 = ((IString)($RVF.string($matcher4.group(1)))); + $traversalState.setBegin($matcher4.start()); + $traversalState.setEnd($matcher4.end()); + IString $replacement3 = (IString)(c_2); + if($isSubtypeOf($replacement3.getType(),$VISIT0_subject.getType())){ + $traversalState.setMatchedAndChanged(true, true); + return $replacement3; + + } else { + break VISIT0;// switch + + } + } + + } + + } while(false); + + } + if($isSubtypeOf($VISIT0_subject.getType(),$T0)){ + /*muExists*/CASE_0_1: + do { + final Matcher $matcher7 = (Matcher)$regExpCompile("^\\\\t", ((IString)($VISIT0_subject)).getValue()); + boolean $found8 = true; + + while($found8){ + $found8 = $matcher7.find(); + if($found8){ + $traversalState.setBegin($matcher7.start()); + $traversalState.setEnd($matcher7.end()); + IString $replacement6 = (IString)(((IString)$constants.get(5)/*" "*/)); + if($isSubtypeOf($replacement6.getType(),$VISIT0_subject.getType())){ + $traversalState.setMatchedAndChanged(true, true); + return $replacement6; + + } else { + break VISIT0;// switch + + } + } + + } + + } while(false); + + } + if($isSubtypeOf($VISIT0_subject.getType(),$T0)){ + /*muExists*/CASE_0_2: + do { + final Matcher $matcher10 = (Matcher)$regExpCompile("^\\\\n", ((IString)($VISIT0_subject)).getValue()); + boolean $found11 = true; + + while($found11){ + $found11 = $matcher10.find(); + if($found11){ + $traversalState.setBegin($matcher10.start()); + $traversalState.setEnd($matcher10.end()); + IString $replacement9 = (IString)(((IString)$constants.get(6)/*" + "*/)); + if($isSubtypeOf($replacement9.getType(),$VISIT0_subject.getType())){ + $traversalState.setMatchedAndChanged(true, true); + return $replacement9; + + } else { + break VISIT0;// switch + + } + } + + } + + } while(false); + + } + if($isSubtypeOf($VISIT0_subject.getType(),$T0)){ + /*muExists*/CASE_0_3: + do { + final Matcher $matcher13 = (Matcher)$regExpCompile("^\\\\f", ((IString)($VISIT0_subject)).getValue()); + boolean $found14 = true; + + while($found14){ + $found14 = $matcher13.find(); + if($found14){ + $traversalState.setBegin($matcher13.start()); + $traversalState.setEnd($matcher13.end()); + IString $replacement12 = (IString)(((IString)$constants.get(7)/*" "*/)); + if($isSubtypeOf($replacement12.getType(),$VISIT0_subject.getType())){ + $traversalState.setMatchedAndChanged(true, true); + return $replacement12; + + } else { + break VISIT0;// switch + + } + } + + } + + } while(false); + + } + if($isSubtypeOf($VISIT0_subject.getType(),$T0)){ + /*muExists*/CASE_0_4: + do { + final Matcher $matcher16 = (Matcher)$regExpCompile("^\\\\b", ((IString)($VISIT0_subject)).getValue()); + boolean $found17 = true; + + while($found17){ + $found17 = $matcher16.find(); + if($found17){ + $traversalState.setBegin($matcher16.start()); + $traversalState.setEnd($matcher16.end()); + IString $replacement15 = (IString)(((IString)$constants.get(8)/*""*/)); + if($isSubtypeOf($replacement15.getType(),$VISIT0_subject.getType())){ + $traversalState.setMatchedAndChanged(true, true); + return $replacement15; + + } else { + break VISIT0;// switch + + } + } + + } + + } while(false); + + } + if($isSubtypeOf($VISIT0_subject.getType(),$T0)){ + /*muExists*/CASE_0_5: + do { + final Matcher $matcher20 = (Matcher)$regExpCompile("^\\\\u([0-9a-fA-F][0-9a-fA-F][0-9a-fA-F][0-9a-fA-F])", ((IString)($VISIT0_subject)).getValue()); + boolean $found21 = true; + + while($found21){ + $found21 = $matcher20.find(); + if($found21){ + IString hex_3 = ((IString)($RVF.string($matcher20.group(1)))); + $traversalState.setBegin($matcher20.start()); + $traversalState.setEnd($matcher20.end()); + final Template $template19 = (Template)new Template($RVF, "0x"); + $template19.beginIndent(" "); + $template19.addStr(((IString)hex_3).getValue()); + $template19.endIndent(" "); + IString $replacement18 = (IString)($me.stringChar(((IInteger)($me.toInt(((IString)($template19.close()))))))); + if($isSubtypeOf($replacement18.getType(),$VISIT0_subject.getType())){ + $traversalState.setMatchedAndChanged(true, true); + return $replacement18; + + } else { + break VISIT0;// switch + + } + } + + } + + } while(false); + + } + if($isSubtypeOf($VISIT0_subject.getType(),$T0)){ + /*muExists*/CASE_0_6: + do { + final Matcher $matcher24 = (Matcher)$regExpCompile("^\\\\U([0-9a-fA-F][0-9a-fA-F][0-9a-fA-F][0-9a-fA-F][0-9a-fA-F][0-9a-fA-F])", ((IString)($VISIT0_subject)).getValue()); + boolean $found25 = true; + + while($found25){ + $found25 = $matcher24.find(); + if($found25){ + IString hex_4 = ((IString)($RVF.string($matcher24.group(1)))); + $traversalState.setBegin($matcher24.start()); + $traversalState.setEnd($matcher24.end()); + final Template $template23 = (Template)new Template($RVF, "0x"); + $template23.beginIndent(" "); + $template23.addStr(((IString)hex_4).getValue()); + $template23.endIndent(" "); + IString $replacement22 = (IString)($me.stringChar(((IInteger)($me.toInt(((IString)($template23.close()))))))); + if($isSubtypeOf($replacement22.getType(),$VISIT0_subject.getType())){ + $traversalState.setMatchedAndChanged(true, true); + return $replacement22; + + } else { + break VISIT0;// switch + + } + } + + } + + } while(false); + + } + if($isSubtypeOf($VISIT0_subject.getType(),$T0)){ + /*muExists*/CASE_0_7: + do { + final Matcher $matcher28 = (Matcher)$regExpCompile("^\\\\a([0-7][0-9a-fA-F])", ((IString)($VISIT0_subject)).getValue()); + boolean $found29 = true; + + while($found29){ + $found29 = $matcher28.find(); + if($found29){ + IString hex_5 = ((IString)($RVF.string($matcher28.group(1)))); + $traversalState.setBegin($matcher28.start()); + $traversalState.setEnd($matcher28.end()); + final Template $template27 = (Template)new Template($RVF, "0x"); + $template27.beginIndent(" "); + $template27.addStr(((IString)hex_5).getValue()); + $template27.endIndent(" "); + IString $replacement26 = (IString)($me.stringChar(((IInteger)($me.toInt(((IString)($template27.close()))))))); + if($isSubtypeOf($replacement26.getType(),$VISIT0_subject.getType())){ + $traversalState.setMatchedAndChanged(true, true); + return $replacement26; + + } else { + break VISIT0;// switch + + } + } + + } + + } while(false); + + } + + } + return $VISIT0_subject; + }))); + return ((IString)res_1); + + } catch (ReturnFromTraversalException e) { + return (IString) e.getValue(); + } + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/String.rsc|(3139,316,<114,0>,<125,51>) + public IBool String_endsWith$ecb90a76ab31d048(IString subject_0, IString suffix_1){ + + + return ((IBool)((IBool)$Prelude.endsWith(subject_0, suffix_1))); + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/String.rsc|(3458,463,<128,0>,<143,58>) + public IString String_escape$7fa23c31a411d9dc(IString subject_0, IMap mapping_1){ + + + return ((IString)((IString)$Prelude.escape(subject_0, mapping_1))); + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/String.rsc|(3925,485,<147,0>,<163,53>) + public IList String_findAll$bd53b9d00cf0465e(IString subject_0, IString find_1){ + + + return ((IList)((IList)$Prelude.findAll(subject_0, find_1))); + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/String.rsc|(4413,501,<166,0>,<182,49>) + public IInteger String_findFirst$d5769aac4911388a(IString subject_0, IString find_1){ + + + return ((IInteger)((IInteger)$Prelude.findFirst(subject_0, find_1))); + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/String.rsc|(4917,496,<185,0>,<201,48>) + public IInteger String_findLast$e5f4379f5988beac(IString subject_0, IString find_1){ + + + return ((IInteger)((IInteger)$Prelude.findLast(subject_0, find_1))); + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/String.rsc|(5416,250,<204,0>,<216,32>) + public IBool String_isEmpty$0288736cc2315249(IString s_0){ + + + return ((IBool)((IBool)$Prelude.isEmpty(s_0))); + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/String.rsc|(5669,275,<219,0>,<231,33>) + public IString String_arbString$bfea25a11df8dffa(IInteger n_0){ + + + return ((IString)((IString)$Prelude.arbString(n_0))); + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/String.rsc|(5947,366,<234,0>,<249,1>) + public IString String_left$ea4ca9949ebc690b(IString s_0, IInteger n_1){ + + + return ((IString)($me.format(((IString)s_0), ((IString)$constants.get(9)/*"left"*/), ((IInteger)n_1), ((IString)$constants.get(1)/*" "*/)))); + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/String.rsc|(6315,78,<251,0>,<254,1>) + public IString String_left$b5982a84598a5a87(IString s_0, IInteger n_1, IString pad_2){ + + + return ((IString)($me.format(((IString)s_0), ((IString)$constants.get(9)/*"left"*/), ((IInteger)n_1), ((IString)pad_2)))); + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/String.rsc|(6396,616,<257,0>,<274,67>) + public IString String_replaceAll$40dfb6273a17a7ab(IString subject_0, IString find_1, IString replacement_2){ + + + return ((IString)((IString)$Prelude.replaceAll(subject_0, find_1, replacement_2))); + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/String.rsc|(7015,637,<277,0>,<294,69>) + public IString String_replaceFirst$57c02d183940731e(IString subject_0, IString find_1, IString replacement_2){ + + + return ((IString)((IString)$Prelude.replaceFirst(subject_0, find_1, replacement_2))); + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/String.rsc|(7655,633,<297,0>,<314,68>) + public IString String_replaceLast$e73336ea981874fc(IString subject_0, IString find_1, IString replacement_2){ + + + return ((IString)((IString)$Prelude.replaceLast(subject_0, find_1, replacement_2))); + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/String.rsc|(8291,285,<317,0>,<328,31>) + public IString String_reverse$5c483498523ba125(IString s_0){ + + + return ((IString)((IString)$Prelude.reverse(s_0))); + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/String.rsc|(8580,533,<332,0>,<356,1>) + public IString String_right$546d0f195fc78d79(IString s_0, IInteger n_1){ + + + return ((IString)($me.format(((IString)s_0), ((IString)$constants.get(10)/*"right"*/), ((IInteger)n_1), ((IString)$constants.get(1)/*" "*/)))); + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/String.rsc|(9115,80,<358,0>,<361,1>) + public IString String_right$7b00c29ca5a570ed(IString s_0, IInteger n_1, IString pad_2){ + + + return ((IString)($me.format(((IString)s_0), ((IString)$constants.get(10)/*"right"*/), ((IInteger)n_1), ((IString)pad_2)))); + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/String.rsc|(9199,261,<365,0>,<377,28>) + public IInteger String_size$4611676944e933d5(IString s_0){ + + + return ((IInteger)((IInteger)$Prelude.size(s_0))); + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/String.rsc|(9463,321,<380,0>,<391,53>) + public IBool String_startsWith$cac4396a9880251b(IString subject_0, IString prefix_1){ + + + return ((IBool)((IBool)$Prelude.startsWith(subject_0, prefix_1))); + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/String.rsc|(9788,153,<395,0>,<397,60>) + public IString String_stringChar$29485394ec702339(IInteger $char_0){ + + + return ((IString)((IString)$Prelude.stringChar($char_0))); + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/String.rsc|(9944,170,<400,0>,<402,68>) + public IString String_stringChars$990634670d003421(IList chars_0){ + + + return ((IString)((IString)$Prelude.stringChars(chars_0))); + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/String.rsc|(10117,159,<405,0>,<407,42>) + public IBool String_isValidCharacter$e3998b941251ff24(IInteger ch_0){ + + + return ((IBool)((IBool)$Prelude.isValidCharacter(ch_0))); + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/String.rsc|(10279,421,<410,0>,<423,44>) + public IString String_substring$1516e7be77c7268c(IString s_0, IInteger begin_1){ + + + return ((IString)((IString)$Prelude.substring(s_0, begin_1))); + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/String.rsc|(10702,95,<425,0>,<426,53>) + public IString String_substring$77404656fd06e485(IString s_0, IInteger begin_1, IInteger end_2){ + + + return ((IString)((IString)$Prelude.substring(s_0, begin_1, end_2))); + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/String.rsc|(10801,456,<430,0>,<450,52>) + public IInteger String_toInt$8c1572a980336ee2(IString s_0){ + + + return ((IInteger)((IInteger)$Prelude.toInt(s_0))); + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/String.rsc|(11259,101,<452,0>,<453,59>) + public IInteger String_toInt$f408c9e5b956da4b(IString s_0, IInteger r_1){ + + + return ((IInteger)((IInteger)$Prelude.toInt(s_0, r_1))); + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/String.rsc|(11363,311,<456,0>,<467,35>) + public IString String_toLowerCase$aa30e5ee71d42d20(IString s_0){ + + + return ((IString)((IString)$Prelude.toLowerCase(s_0))); + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/String.rsc|(11678,320,<471,0>,<484,31>) + public IReal String_toReal$7ebfa25a05356a51(IString s_0){ + + + return ((IReal)((IReal)$Prelude.toReal(s_0))); + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/String.rsc|(12001,314,<487,0>,<500,35>) + public IString String_toUpperCase$52fd8e341a749153(IString s_0){ + + + return ((IString)((IString)$Prelude.toUpperCase(s_0))); + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/String.rsc|(12318,215,<503,0>,<512,28>) + public IString String_trim$8faad6373d3f1827(IString s_0){ + + + return ((IString)((IString)$Prelude.trim(s_0))); + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/String.rsc|(12536,660,<515,0>,<531,46>) + public IString String_squeeze$d1d8b81dff6f8420(IString src_0, IString charSet_1){ + + + return ((IString)((IString)$Prelude.squeeze(src_0, charSet_1))); + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/String.rsc|(13198,1219,<533,0>,<564,2>) + public IString String_squeeze$6e2735f43e585785(IString src_0, IConstructor $__1){ + + + try { + HashMap $typeBindings = new HashMap<>(); + if($T6.match($__1.getType(), $typeBindings)){ + final IString $result34 = ((IString)($TRAVERSE.traverse(DIRECTION.BottomUp, PROGRESS.Continuing, FIXEDPOINT.No, REBUILD.Yes, + new DescendantDescriptor(new io.usethesource.vallang.type.Type[]{$TF.stringType()}, + new io.usethesource.vallang.IConstructor[]{}, + $RVF.bool(false)), + src_0, + (IVisitFunction) (IValue $VISIT9_subject, TraversalState $traversalState) -> { + VISIT9:switch(Fingerprint.getFingerprint($VISIT9_subject)){ + + case 0: + + + default: + if($isSubtypeOf($VISIT9_subject.getType(),$T0)){ + /*muExists*/CASE_0_0: + do { + final Matcher $matcher32 = (Matcher)$regExpCompile("(.)\\1+", ((IString)($VISIT9_subject)).getValue()); + boolean $found33 = true; + + while($found33){ + $found33 = $matcher32.find(); + if($found33){ + IString c_1 = ((IString)($RVF.string($matcher32.group(1)))); + $traversalState.setBegin($matcher32.start()); + $traversalState.setEnd($matcher32.end()); + final ITree $subject_val31 = ((ITree)($RVF.constructor(M_ParseTree.Tree_char_int, new IValue[]{((IInteger)($me.charAt(((IString)c_1), ((IInteger)$constants.get(2)/*0*/))))}))); + if($isSubtypeOf($subject_val31.getType(),$T12.instantiate($typeBindings))){ + IString $replacement30 = (IString)(c_1); + if($isSubtypeOf($replacement30.getType(),$VISIT9_subject.getType())){ + $traversalState.setMatchedAndChanged(true, true); + return $replacement30; + + } else { + break VISIT9;// switch + + } + } + + } + + } + + } while(false); + + } + + } + return $VISIT9_subject; + }))); + if($T0.instantiate($typeBindings) != $TF.voidType() && $isSubtypeOf($result34.getType(),$T0)){ + return ((IString)($result34)); + + } else { + return null; + } + } else { + return null; + } + } catch (ReturnFromTraversalException e) { + return (IString) e.getValue(); + } + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/String.rsc|(14420,167,<567,0>,<569,46>) + public IList String_split$01009c87f3d82e4c(IString sep_0, IString src_1){ + + + return ((IList)((IList)$Prelude.split(sep_0, src_1))); + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/String.rsc|(14589,78,<571,0>,<572,36>) + public IString String_capitalize$241c1cc358b38921(IString src_0){ + + + return ((IString)((IString)$Prelude.capitalize(src_0))); + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/String.rsc|(14669,80,<574,0>,<575,38>) + public IString String_uncapitalize$5a860f2aab2710e3(IString src_0){ + + + return ((IString)((IString)$Prelude.uncapitalize(src_0))); + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/String.rsc|(14751,395,<577,0>,<583,89>) + public IString String_toBase64$e60dafecaa2ee56e(IString src_0, java.util.Map $kwpActuals){ + + java.util.Map $kwpDefaults = Util.kwpMap(); + IString $kwpDefault_charset = ((IString)DEFAULT_CHARSET); + $kwpDefaults.put("charset", $kwpDefault_charset);IBool $kwpDefault_includePadding = ((IBool)$constants.get(11)/*true*/); + $kwpDefaults.put("includePadding", $kwpDefault_includePadding); + return ((IString)((IString)$Prelude.toBase64(src_0, (IString)($kwpActuals.containsKey("charset") ? $kwpActuals.get("charset") : $kwpDefaults.get("charset")), (IBool)($kwpActuals.containsKey("includePadding") ? $kwpActuals.get("includePadding") : $kwpDefaults.get("includePadding"))))); + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/String.rsc|(15148,378,<585,0>,<591,65>) + public IString String_fromBase64$843832a7f2134466(IString src_0, java.util.Map $kwpActuals){ + + java.util.Map $kwpDefaults = Util.kwpMap(); + IString $kwpDefault_charset = ((IString)DEFAULT_CHARSET); + $kwpDefaults.put("charset", $kwpDefault_charset); + return ((IString)((IString)$Prelude.fromBase64(src_0, (IString)($kwpActuals.containsKey("charset") ? $kwpActuals.get("charset") : $kwpDefaults.get("charset"))))); + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/String.rsc|(15528,395,<593,0>,<599,89>) + public IString String_toBase32$49dc832874fb11d9(IString src_0, java.util.Map $kwpActuals){ + + java.util.Map $kwpDefaults = Util.kwpMap(); + IString $kwpDefault_charset = ((IString)DEFAULT_CHARSET); + $kwpDefaults.put("charset", $kwpDefault_charset);IBool $kwpDefault_includePadding = ((IBool)$constants.get(11)/*true*/); + $kwpDefaults.put("includePadding", $kwpDefault_includePadding); + return ((IString)((IString)$Prelude.toBase32(src_0, (IString)($kwpActuals.containsKey("charset") ? $kwpActuals.get("charset") : $kwpDefaults.get("charset")), (IBool)($kwpActuals.containsKey("includePadding") ? $kwpActuals.get("includePadding") : $kwpDefaults.get("includePadding"))))); + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/String.rsc|(15925,378,<601,0>,<607,65>) + public IString String_fromBase32$17f4bf9042e6dd8c(IString src_0, java.util.Map $kwpActuals){ + + java.util.Map $kwpDefaults = Util.kwpMap(); + IString $kwpDefault_charset = ((IString)DEFAULT_CHARSET); + $kwpDefaults.put("charset", $kwpDefault_charset); + return ((IString)((IString)$Prelude.fromBase32(src_0, (IString)($kwpActuals.containsKey("charset") ? $kwpActuals.get("charset") : $kwpDefaults.get("charset"))))); + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/String.rsc|(16306,269,<610,0>,<615,46>) + public IString String_wrap$c21d49e5b8cae059(IString src_0, IInteger wrapLength_1){ + + + return ((IString)((IString)$Prelude.wrap(src_0, wrapLength_1))); + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/String.rsc|(16740,98,<622,0>,<623,56>) + public IString String_format$695b8ae2ac4bdb0c(IString s_0, IString dir_1, IInteger n_2, IString pad_3){ + + + return ((IString)((IString)$Prelude.format(s_0, dir_1, n_2, pad_3))); + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/String.rsc|(16841,208,<626,0>,<631,42>) + public IBool String_rexpMatch$ce341cfb7d30e780(IString s_0, IString re_1){ + + + return ((IBool)((IBool)$Prelude.rexpMatch(s_0, re_1))); + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/String.rsc|(17052,522,<634,0>,<647,96>) + public ISourceLocation String_toLocation$347a629c083bfdf1(IString s_0){ + + + final Matcher $matcher36 = (Matcher)$regExpCompile("(.*)\\://(.*)", ((IString)s_0).getValue()); + boolean $found37 = true; + + while($found37){ + $found37 = $matcher36.find(); + if($found37){ + IString car_1 = ((IString)($RVF.string($matcher36.group(1)))); + IString cdr_2 = ((IString)($RVF.string($matcher36.group(2)))); + return ((ISourceLocation)($create_aloc(((IString)($astr_add_astr(((IString)($astr_add_astr(((IString)$constants.get(12)/*""*/),$astr_add_astr(((IString)car_1),((IString)$constants.get(13)/*"://"*/))))),((IString)($astr_add_astr(((IString)$constants.get(12)/*""*/),$astr_add_astr(((IString)cdr_2),((IString)$constants.get(12)/*""*/))))))))))); + + } else { + return ((ISourceLocation)($create_aloc(((IString)($astr_add_astr(((IString)$constants.get(14)/*"cwd://"*/),((IString)($astr_add_astr(((IString)$constants.get(15)/*"/"*/),$astr_add_astr(((IString)s_0),((IString)$constants.get(12)/*""*/))))))))))); + + } + } + return null; + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/String.rsc|(17832,197,<659,4>,<664,5>) + public IString String_subst1$0127b165869021ec(IString src_0, ISourceLocation x_1, IString y_2, ValueRef shift_2){ + + + IInteger delta_3 = ((IInteger)(((IInteger) ((IInteger)($me.size(((IString)y_2)))).subtract(((IInteger)(((IInteger)($aloc_get_field(((ISourceLocation)x_1), "length"))))))))); + src_0 = ((IString)($astr_add_astr(((IString)($astr_add_astr(((IString)($astr_slice(((IString)(src_0)), 0, null, ((IInteger)($aint_add_aint(((IInteger)(((IInteger)($aloc_get_field(((ISourceLocation)x_1), "offset"))))),shift_2.getValue()))).intValue()))),((IString)y_2)))),((IString)($astr_slice(((IString)(src_0)), ((IInteger)($aint_add_aint(((IInteger)($aint_add_aint(((IInteger)(((IInteger)($aloc_get_field(((ISourceLocation)x_1), "offset"))))),((IInteger)(((IInteger)($aloc_get_field(((ISourceLocation)x_1), "length")))))))),shift_2.getValue()))).intValue(), null, null)))))); + IInteger $aux_1 = ((IInteger)delta_3); + shift_2.setValue($aint_add_aint(shift_2.getValue(),$aux_1)); + return ((IString)src_0); + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/String.rsc|(18063,50,<665,33>,<665,83>) + public IBool $CLOSURE_0(ISourceLocation a_0, ISourceLocation b_1){ + + + return ((IBool)($aint_less_aint(((IInteger)(((IInteger)($aloc_get_field(((ISourceLocation)a_0), "offset"))))),((IInteger)(((IInteger)($aloc_get_field(((ISourceLocation)b_1), "offset")))))))); + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/String.rsc|(17577,595,<650,0>,<667,1>) + public IString String_substitute$a969725dc1004f33(IString src_0, IMap s_1){ + + + final ValueRef shift_2 = new ValueRef("shift", ((IInteger)$constants.get(2)/*0*/)); + final IListWriter $listwriter38 = (IListWriter)$RVF.listWriter(); + $LCOMP39_GEN18053: + for(IValue $elem40_for : ((IMap)s_1)){ + ISourceLocation $elem40 = (ISourceLocation) $elem40_for; + ISourceLocation k_4 = null; + $listwriter38.append($elem40); + + } + + IList order_3 = ((IList)(M_List.sort(((IList)($listwriter38.done())), new TypedFunctionInstance2(($18063_0, $18063_1) -> { return $CLOSURE_0((ISourceLocation)$18063_0, (ISourceLocation)$18063_1); }, $T13)))); + IString $reducer42 = (IString)(src_0); + $REDUCER41_GEN18157: + for(IValue $elem43_for : ((IList)order_3)){ + ISourceLocation $elem43 = (ISourceLocation) $elem43_for; + ISourceLocation x_6 = ((ISourceLocation)($elem43)); + $reducer42 = ((IString)(String_substitute$a969725dc1004f33_subst1(((IString)($reducer42)), ((ISourceLocation)x_6), ((IString)($amap_subscript(((IMap)s_1),((ISourceLocation)x_6)))), shift_2))); + + } + + return ((IString)($reducer42)); + + } + + + public static void main(String[] args) { + throw new RuntimeException("No function `main` found in Rascal module `String`"); + } +} \ No newline at end of file diff --git a/src/rascal/$String.tpl b/src/rascal/$String.tpl new file mode 100644 index 00000000000..d1d988c6f9b Binary files /dev/null and b/src/rascal/$String.tpl differ diff --git a/src/rascal/$String_$I.java b/src/rascal/$String_$I.java new file mode 100644 index 00000000000..f753bf7fdb8 --- /dev/null +++ b/src/rascal/$String_$I.java @@ -0,0 +1,54 @@ +package rascal; +import io.usethesource.vallang.*; +import org.rascalmpl.runtime.function.*; + +@SuppressWarnings("unused") +public interface $String_$I { + IValue arbString(IValue $0); + IValue capitalize(IValue $0); + IValue center(IValue $0, IValue $1); + IValue center(IValue $0, IValue $1, IValue $2); + IValue charAt(IValue $0, IValue $1); + IValue chars(IValue $0); + IValue contains(IValue $0, IValue $1); + IValue deescape(IValue $0); + IValue endsWith(IValue $0, IValue $1); + IValue escape(IValue $0, IValue $1); + IValue findAll(IValue $0, IValue $1); + IValue findFirst(IValue $0, IValue $1); + IValue findLast(IValue $0, IValue $1); + IValue format(IValue $0, IValue $1, IValue $2, IValue $3); + IValue fromBase32(IValue $0, java.util.Map $kwpActuals); + IValue fromBase64(IValue $0, java.util.Map $kwpActuals); + IValue isEmpty(IValue $0); + IValue isValidCharacter(IValue $0); + IValue left(IValue $0, IValue $1); + IValue left(IValue $0, IValue $1, IValue $2); + IValue replaceAll(IValue $0, IValue $1, IValue $2); + IValue replaceFirst(IValue $0, IValue $1, IValue $2); + IValue replaceLast(IValue $0, IValue $1, IValue $2); + IValue reverse(IValue $0); + IValue rexpMatch(IValue $0, IValue $1); + IValue right(IValue $0, IValue $1); + IValue right(IValue $0, IValue $1, IValue $2); + IValue size(IValue $0); + IValue split(IValue $0, IValue $1); + IValue squeeze(IValue $0, IValue $1); + IValue startsWith(IValue $0, IValue $1); + IValue stringChar(IValue $0); + IValue stringChars(IValue $0); + IValue substitute(IValue $0, IValue $1); + IValue substring(IValue $0, IValue $1); + IValue substring(IValue $0, IValue $1, IValue $2); + IValue toBase32(IValue $0, java.util.Map $kwpActuals); + IValue toBase64(IValue $0, java.util.Map $kwpActuals); + IValue toInt(IValue $0); + IValue toInt(IValue $0, IValue $1); + IValue toLocation(IValue $0); + IValue toLowerCase(IValue $0); + IValue toReal(IValue $0); + IValue toUpperCase(IValue $0); + IValue trim(IValue $0); + IValue uncapitalize(IValue $0); + IValue wrap(IValue $0, IValue $1); +} \ No newline at end of file diff --git a/src/rascal/$Type.constants b/src/rascal/$Type.constants new file mode 100644 index 00000000000..b1a6e191534 Binary files /dev/null and b/src/rascal/$Type.constants differ diff --git a/src/rascal/$Type.java b/src/rascal/$Type.java new file mode 100644 index 00000000000..9fec14f0c35 --- /dev/null +++ b/src/rascal/$Type.java @@ -0,0 +1,10796 @@ +package rascal; +import java.io.PrintWriter; +import java.io.StringWriter; +import java.io.InputStreamReader; +import java.io.PrintWriter; +import java.util.*; +import java.util.regex.Matcher; +import io.usethesource.vallang.*; +import io.usethesource.vallang.type.*; +import org.rascalmpl.runtime.*; +import org.rascalmpl.runtime.RascalExecutionContext; +import org.rascalmpl.runtime.function.*; +import org.rascalmpl.runtime.traverse.*; +import org.rascalmpl.runtime.utils.*; +import org.rascalmpl.exceptions.RuntimeExceptionFactory; +import org.rascalmpl.exceptions.Throw; +import org.rascalmpl.runtime.RascalExecutionContext; +import org.rascalmpl.interpreter.control_exceptions.Filtered; +import org.rascalmpl.types.NonTerminalType; +import org.rascalmpl.types.RascalTypeFactory; +import org.rascalmpl.util.ExpiringFunctionResultCache; +import org.rascalmpl.values.RascalValueFactory; +import org.rascalmpl.values.ValueFactoryFactory; +import org.rascalmpl.values.parsetrees.ITree; +import org.rascalmpl.values.parsetrees.TreeAdapter; + + + +@SuppressWarnings({"unused","unchecked","deprecation"}) +public class $Type + extends + org.rascalmpl.runtime.$RascalModule + implements + rascal.$Type_$I { + + private final $Type_$I $me; + private final IList $constants; + + + public final rascal.$List M_List; + + + final org.rascalmpl.library.Type $Type; // TODO: asBaseClassName will generate name collisions if there are more of the same name in different packages + + + public final io.usethesource.vallang.type.Type $T11; /*avalue(alabel="tag")*/ + public final io.usethesource.vallang.type.Type $T2; /*astr()*/ + public final io.usethesource.vallang.type.Type $T4; /*avalue()*/ + public final io.usethesource.vallang.type.Type $T10; /*aparameter("U",avalue(),closed=false)*/ + public final io.usethesource.vallang.type.Type $T21; /*aparameter("T",avalue(),closed=true)*/ + public final io.usethesource.vallang.type.Type $T6; /*aparameter("T",avalue(),closed=false)*/ + public final io.usethesource.vallang.type.Type $T13; /*astr(alabel="name")*/ + public final io.usethesource.vallang.type.Type ADT_Symbol; /*aadt("Symbol",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type Symbol_node_; /*acons(aadt("Symbol",[],dataSyntax()),[],[],alabel="node")*/ + public final io.usethesource.vallang.type.Type Symbol_bag_Symbol; /*acons(aadt("Symbol",[],dataSyntax()),[aadt("Symbol",[],dataSyntax(),alabel="symbol")],[],alabel="bag")*/ + public final io.usethesource.vallang.type.Type Symbol_label_str_Symbol; /*acons(aadt("Symbol",[],dataSyntax()),[astr(alabel="name"),aadt("Symbol",[],dataSyntax(),alabel="symbol")],[],alabel="label")*/ + public final io.usethesource.vallang.type.Type ADT_RuntimeException; /*aadt("RuntimeException",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type $T14; /*alist(aadt("Symbol",[],dataSyntax()),alabel="parameters")*/ + public final io.usethesource.vallang.type.Type Symbol_adt_str_list_Symbol; /*acons(aadt("Symbol",[],dataSyntax()),[astr(alabel="name"),alist(aadt("Symbol",[],dataSyntax()),alabel="parameters")],[],alabel="adt")*/ + public final io.usethesource.vallang.type.Type Symbol_var_func_Symbol_list_Symbol_Symbol; /*acons(aadt("Symbol",[],dataSyntax()),[aadt("Symbol",[],dataSyntax(),alabel="ret"),alist(aadt("Symbol",[],dataSyntax()),alabel="parameters"),aadt("Symbol",[],dataSyntax(),alabel="varArg")],[],alabel="var-func")*/ + public final io.usethesource.vallang.type.Type Symbol_cons_Symbol_str_list_Symbol; /*acons(aadt("Symbol",[],dataSyntax()),[aadt("Symbol",[],dataSyntax(),alabel="adt"),astr(alabel="name"),alist(aadt("Symbol",[],dataSyntax()),alabel="parameters")],[],alabel="cons")*/ + public final io.usethesource.vallang.type.Type Symbol_rat_; /*acons(aadt("Symbol",[],dataSyntax()),[],[],alabel="rat")*/ + public final io.usethesource.vallang.type.Type $T17; /*alist(aadt("Symbol",[],dataSyntax()),alabel="kwTypes")*/ + public final io.usethesource.vallang.type.Type Symbol_func_Symbol_list_Symbol_list_Symbol; /*acons(aadt("Symbol",[],dataSyntax()),[aadt("Symbol",[],dataSyntax(),alabel="ret"),alist(aadt("Symbol",[],dataSyntax()),alabel="parameters"),alist(aadt("Symbol",[],dataSyntax()),alabel="kwTypes")],[],alabel="func")*/ + public final io.usethesource.vallang.type.Type ADT_Attr; /*aadt("Attr",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type $T19; /*aset(aadt("Attr",[],dataSyntax()),alabel="attributes")*/ + public final io.usethesource.vallang.type.Type $T12; /*alist(aadt("Symbol",[],dataSyntax()),alabel="symbols")*/ + public final io.usethesource.vallang.type.Type Symbol_lrel_list_Symbol; /*acons(aadt("Symbol",[],dataSyntax()),[alist(aadt("Symbol",[],dataSyntax()),alabel="symbols")],[],alabel="lrel")*/ + public final io.usethesource.vallang.type.Type Symbol_real_; /*acons(aadt("Symbol",[],dataSyntax()),[],[],alabel="real")*/ + public final io.usethesource.vallang.type.Type $T7; /*alist(avalue())*/ + public final io.usethesource.vallang.type.Type Symbol_set_Symbol; /*acons(aadt("Symbol",[],dataSyntax()),[aadt("Symbol",[],dataSyntax(),alabel="symbol")],[],alabel="set")*/ + public final io.usethesource.vallang.type.Type Symbol_void_; /*acons(aadt("Symbol",[],dataSyntax()),[],[],alabel="void")*/ + public final io.usethesource.vallang.type.Type ADT_Production; /*aadt("Production",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type Symbol_tuple_list_Symbol; /*acons(aadt("Symbol",[],dataSyntax()),[alist(aadt("Symbol",[],dataSyntax()),alabel="symbols")],[],alabel="tuple")*/ + public final io.usethesource.vallang.type.Type Production_cons_Symbol_list_Symbol_list_Symbol_set_Attr; /*acons(aadt("Production",[],dataSyntax()),[aadt("Symbol",[],dataSyntax(),alabel="def"),alist(aadt("Symbol",[],dataSyntax()),alabel="symbols"),alist(aadt("Symbol",[],dataSyntax()),alabel="kwTypes"),aset(aadt("Attr",[],dataSyntax()),alabel="attributes")],[],alabel="cons")*/ + public final io.usethesource.vallang.type.Type Symbol_loc_; /*acons(aadt("Symbol",[],dataSyntax()),[],[],alabel="loc")*/ + public final io.usethesource.vallang.type.Type $T16; /*areified(avalue(),alabel="to")*/ + public final io.usethesource.vallang.type.Type $T8; /*amap(astr(),avalue())*/ + public final io.usethesource.vallang.type.Type $T1; /*alist(astr())*/ + public final io.usethesource.vallang.type.Type Symbol_bool_; /*acons(aadt("Symbol",[],dataSyntax()),[],[],alabel="bool")*/ + public final io.usethesource.vallang.type.Type Production_composition_Production_Production; /*acons(aadt("Production",[],dataSyntax()),[aadt("Production",[],dataSyntax(),alabel="lhs"),aadt("Production",[],dataSyntax(),alabel="rhs")],[],alabel="composition")*/ + public final io.usethesource.vallang.type.Type $T0; /*alist(aadt("Symbol",[],dataSyntax()))*/ + public final io.usethesource.vallang.type.Type Attr_tag_value; /*acons(aadt("Attr",[],dataSyntax()),[avalue(alabel="tag")],[],alabel="tag")*/ + public final io.usethesource.vallang.type.Type Symbol_value_; /*acons(aadt("Symbol",[],dataSyntax()),[],[],alabel="value")*/ + public final io.usethesource.vallang.type.Type Symbol_str_; /*acons(aadt("Symbol",[],dataSyntax()),[],[],alabel="str")*/ + public final io.usethesource.vallang.type.Type Symbol_datetime_; /*acons(aadt("Symbol",[],dataSyntax()),[],[],alabel="datetime")*/ + public final io.usethesource.vallang.type.Type Symbol_num_; /*acons(aadt("Symbol",[],dataSyntax()),[],[],alabel="num")*/ + public final io.usethesource.vallang.type.Type $T15; /*aset(aadt("Symbol",[],dataSyntax()),alabel="alternatives")*/ + public final io.usethesource.vallang.type.Type Symbol_overloaded_set_Symbol; /*acons(aadt("Symbol",[],dataSyntax()),[aset(aadt("Symbol",[],dataSyntax()),alabel="alternatives")],[],alabel="overloaded")*/ + public final io.usethesource.vallang.type.Type $T5; /*areified(aparameter("T",avalue(),closed=false))*/ + public final io.usethesource.vallang.type.Type Symbol_reified_Symbol; /*acons(aadt("Symbol",[],dataSyntax()),[aadt("Symbol",[],dataSyntax(),alabel="symbol")],[],alabel="reified")*/ + public final io.usethesource.vallang.type.Type Symbol_alias_str_list_Symbol_Symbol; /*acons(aadt("Symbol",[],dataSyntax()),[astr(alabel="name"),alist(aadt("Symbol",[],dataSyntax()),alabel="parameters"),aadt("Symbol",[],dataSyntax(),alabel="aliased")],[],alabel="alias")*/ + public final io.usethesource.vallang.type.Type $T3; /*aset(aadt("Production",[],dataSyntax()))*/ + public final io.usethesource.vallang.type.Type Symbol_parameter_str_Symbol; /*acons(aadt("Symbol",[],dataSyntax()),[astr(alabel="name"),aadt("Symbol",[],dataSyntax(),alabel="bound")],[],alabel="parameter")*/ + public final io.usethesource.vallang.type.Type $T9; /*areified(aparameter("U",avalue(),closed=false))*/ + public final io.usethesource.vallang.type.Type ADT_Exception; /*aadt("Exception",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type Symbol_map_Symbol_Symbol; /*acons(aadt("Symbol",[],dataSyntax()),[aadt("Symbol",[],dataSyntax(),alabel="from"),aadt("Symbol",[],dataSyntax(),alabel="to")],[],alabel="map")*/ + public final io.usethesource.vallang.type.Type $T18; /*aset(aadt("Production",[],dataSyntax()),alabel="alternatives")*/ + public final io.usethesource.vallang.type.Type Production_choice_Symbol_set_Production; /*acons(aadt("Production",[],dataSyntax()),[aadt("Symbol",[],dataSyntax(),alabel="def"),aset(aadt("Production",[],dataSyntax()),alabel="alternatives")],[],alabel="choice")*/ + public final io.usethesource.vallang.type.Type Symbol_rel_list_Symbol; /*acons(aadt("Symbol",[],dataSyntax()),[alist(aadt("Symbol",[],dataSyntax()),alabel="symbols")],[],alabel="rel")*/ + public final io.usethesource.vallang.type.Type $T20; /*abool()*/ + public final io.usethesource.vallang.type.Type Exception_typeCastException_Symbol_reified_value; /*acons(aadt("Exception",[],dataSyntax()),[aadt("Symbol",[],dataSyntax(),alabel="from"),areified(avalue(),alabel="to")],[],alabel="typeCastException")*/ + public final io.usethesource.vallang.type.Type Symbol_int_; /*acons(aadt("Symbol",[],dataSyntax()),[],[],alabel="int")*/ + public final io.usethesource.vallang.type.Type Symbol_list_Symbol; /*acons(aadt("Symbol",[],dataSyntax()),[aadt("Symbol",[],dataSyntax(),alabel="symbol")],[],alabel="list")*/ + + public $Type(RascalExecutionContext rex){ + this(rex, null); + } + + public $Type(RascalExecutionContext rex, Object extended){ + super(rex); + this.$me = extended == null ? this : ($Type_$I)extended; + ModuleStore mstore = rex.getModuleStore(); + mstore.put(rascal.$Type.class, this); + + mstore.importModule(rascal.$List.class, rex, rascal.$List::new); + + M_List = mstore.getModule(rascal.$List.class); + + + + $TS.importStore(M_List.$TS); + + $Type = $initLibrary("org.rascalmpl.library.Type"); + + $constants = readBinaryConstantsFile(this.getClass(), "rascal/$Type.constants", 11, "657c830a85ece57cf5a3525f7fd4d29d"); + ADT_Symbol = $adt("Symbol"); + ADT_RuntimeException = $adt("RuntimeException"); + ADT_Attr = $adt("Attr"); + ADT_Production = $adt("Production"); + ADT_Exception = $adt("Exception"); + $T11 = $TF.valueType(); + $T2 = $TF.stringType(); + $T4 = $TF.valueType(); + $T10 = $TF.parameterType("U", $T4); + $T21 = $TF.parameterType("T", $T4); + $T6 = $TF.parameterType("T", $T4); + $T13 = $TF.stringType(); + $T14 = $TF.listType(ADT_Symbol); + $T17 = $TF.listType(ADT_Symbol); + $T19 = $TF.setType(ADT_Attr); + $T12 = $TF.listType(ADT_Symbol); + $T7 = $TF.listType($T4); + $T16 = $RTF.reifiedType($T4); + $T8 = $TF.mapType($T2,$T4); + $T1 = $TF.listType($T2); + $T0 = $TF.listType(ADT_Symbol); + $T15 = $TF.setType(ADT_Symbol); + $T5 = $RTF.reifiedType($T6); + $T3 = $TF.setType(ADT_Production); + $T9 = $RTF.reifiedType($T10); + $T18 = $TF.setType(ADT_Production); + $T20 = $TF.boolType(); + Symbol_node_ = $TF.constructor($TS, ADT_Symbol, "node"); + Symbol_bag_Symbol = $TF.constructor($TS, ADT_Symbol, "bag", ADT_Symbol, "symbol"); + Symbol_label_str_Symbol = $TF.constructor($TS, ADT_Symbol, "label", $TF.stringType(), "name", ADT_Symbol, "symbol"); + Symbol_adt_str_list_Symbol = $TF.constructor($TS, ADT_Symbol, "adt", $TF.stringType(), "name", $TF.listType(ADT_Symbol), "parameters"); + Symbol_var_func_Symbol_list_Symbol_Symbol = $TF.constructor($TS, ADT_Symbol, "var-func", ADT_Symbol, "ret", $TF.listType(ADT_Symbol), "parameters", ADT_Symbol, "varArg"); + Symbol_cons_Symbol_str_list_Symbol = $TF.constructor($TS, ADT_Symbol, "cons", ADT_Symbol, "adt", $TF.stringType(), "name", $TF.listType(ADT_Symbol), "parameters"); + Symbol_rat_ = $TF.constructor($TS, ADT_Symbol, "rat"); + Symbol_func_Symbol_list_Symbol_list_Symbol = $TF.constructor($TS, ADT_Symbol, "func", ADT_Symbol, "ret", $TF.listType(ADT_Symbol), "parameters", $TF.listType(ADT_Symbol), "kwTypes"); + Symbol_lrel_list_Symbol = $TF.constructor($TS, ADT_Symbol, "lrel", $TF.listType(ADT_Symbol), "symbols"); + Symbol_real_ = $TF.constructor($TS, ADT_Symbol, "real"); + Symbol_set_Symbol = $TF.constructor($TS, ADT_Symbol, "set", ADT_Symbol, "symbol"); + Symbol_void_ = $TF.constructor($TS, ADT_Symbol, "void"); + Symbol_tuple_list_Symbol = $TF.constructor($TS, ADT_Symbol, "tuple", $TF.listType(ADT_Symbol), "symbols"); + Production_cons_Symbol_list_Symbol_list_Symbol_set_Attr = $TF.constructor($TS, ADT_Production, "cons", ADT_Symbol, "def", $TF.listType(ADT_Symbol), "symbols", $TF.listType(ADT_Symbol), "kwTypes", $TF.setType(ADT_Attr), "attributes"); + Symbol_loc_ = $TF.constructor($TS, ADT_Symbol, "loc"); + Symbol_bool_ = $TF.constructor($TS, ADT_Symbol, "bool"); + Production_composition_Production_Production = $TF.constructor($TS, ADT_Production, "composition", ADT_Production, "lhs", ADT_Production, "rhs"); + Attr_tag_value = $TF.constructor($TS, ADT_Attr, "tag", $TF.valueType(), "tag"); + Symbol_value_ = $TF.constructor($TS, ADT_Symbol, "value"); + Symbol_str_ = $TF.constructor($TS, ADT_Symbol, "str"); + Symbol_datetime_ = $TF.constructor($TS, ADT_Symbol, "datetime"); + Symbol_num_ = $TF.constructor($TS, ADT_Symbol, "num"); + Symbol_overloaded_set_Symbol = $TF.constructor($TS, ADT_Symbol, "overloaded", $TF.setType(ADT_Symbol), "alternatives"); + Symbol_reified_Symbol = $TF.constructor($TS, ADT_Symbol, "reified", ADT_Symbol, "symbol"); + Symbol_alias_str_list_Symbol_Symbol = $TF.constructor($TS, ADT_Symbol, "alias", $TF.stringType(), "name", $TF.listType(ADT_Symbol), "parameters", ADT_Symbol, "aliased"); + Symbol_parameter_str_Symbol = $TF.constructor($TS, ADT_Symbol, "parameter", $TF.stringType(), "name", ADT_Symbol, "bound"); + Symbol_map_Symbol_Symbol = $TF.constructor($TS, ADT_Symbol, "map", ADT_Symbol, "from", ADT_Symbol, "to"); + Production_choice_Symbol_set_Production = $TF.constructor($TS, ADT_Production, "choice", ADT_Symbol, "def", $TF.setType(ADT_Production), "alternatives"); + Symbol_rel_list_Symbol = $TF.constructor($TS, ADT_Symbol, "rel", $TF.listType(ADT_Symbol), "symbols"); + Exception_typeCastException_Symbol_reified_value = $TF.constructor($TS, ADT_Exception, "typeCastException", ADT_Symbol, "from", $RTF.reifiedType($T4), "to"); + Symbol_int_ = $TF.constructor($TS, ADT_Symbol, "int"); + Symbol_list_Symbol = $TF.constructor($TS, ADT_Symbol, "list", ADT_Symbol, "symbol"); + + + + } + public IBool isTypeVar(IValue $P0){ // Generated by Resolver + IBool $result = null; + Type $P0Type = $P0.getType(); + switch(Fingerprint.getFingerprint($P0)){ + + case 1643638592: + if($isSubtypeOf($P0Type, ADT_Symbol)){ + $result = (IBool)Type_isTypeVar$78fc26e12b32aede((IConstructor) $P0); + if($result != null) return $result; + } + break; + case 1206598288: + if($isSubtypeOf($P0Type, ADT_Symbol)){ + $result = (IBool)Type_isTypeVar$301a952e924ee4a8((IConstructor) $P0); + if($result != null) return $result; + } + break; + case -1322071552: + if($isSubtypeOf($P0Type, ADT_Symbol)){ + $result = (IBool)Type_isTypeVar$b0dd3673fa06bcfe((IConstructor) $P0); + if($result != null) return $result; + } + break; + } + if($isSubtypeOf($P0Type, ADT_Symbol)){ + $result = (IBool)Type_isTypeVar$7fdb3c6deae5e954((IConstructor) $P0); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0)); + } + public IValue glb(IValue $P0, IValue $P1){ // Generated by Resolver + IValue $result = null; + Type $P0Type = $P0.getType(); + Type $P1Type = $P1.getType(); + switch(Fingerprint.getFingerprint($P0)){ + + case 1643638592: + if($isSubtypeOf($P0Type, ADT_Symbol) && $isSubtypeOf($P1Type, ADT_Symbol)){ + $result = (IValue)Type_glb$34d371f0513c1ec9((IConstructor) $P0, (IConstructor) $P1); + if($result != null) return $result; + } + break; + case 26576112: + if($isSubtypeOf($P0Type, ADT_Symbol) && $isSubtypeOf($P1Type, ADT_Symbol)){ + $result = (IValue)Type_glb$4b91e5fe473aa816((IConstructor) $P0, (IConstructor) $P1); + if($result != null) return $result; + $result = (IValue)Type_glb$563c14f02706f88a((IConstructor) $P0, (IConstructor) $P1); + if($result != null) return $result; + } + break; + case 1725888: + if($isSubtypeOf($P0Type, ADT_Symbol) && $isSubtypeOf($P1Type, ADT_Symbol)){ + $result = (IValue)Type_glb$17ed4c750a842e8b((IConstructor) $P0, (IConstructor) $P1); + if($result != null) return $result; + $result = (IValue)Type_glb$a9afab04303a8d6a((IConstructor) $P0, (IConstructor) $P1); + if($result != null) return $result; + $result = (IValue)Type_glb$4c151198f5c36983((IConstructor) $P0, (IConstructor) $P1); + if($result != null) return $result; + $result = (IValue)Type_glb$c70f2ec5079b5d5a((IConstructor) $P0, (IConstructor) $P1); + if($result != null) return $result; + $result = (IValue)Type_glb$a5f417161c5ea6ff((IConstructor) $P0, (IConstructor) $P1); + if($result != null) return $result; + } + break; + case 1206598288: + if($isSubtypeOf($P0Type, ADT_Symbol) && $isSubtypeOf($P1Type, ADT_Symbol)){ + $result = (IValue)Type_glb$9ee1fb0fc2528775((IConstructor) $P0, (IConstructor) $P1); + if($result != null) return $result; + } + break; + case 97904160: + if($isSubtypeOf($P0Type, ADT_Symbol) && $isSubtypeOf($P1Type, ADT_Symbol)){ + $result = (IValue)Type_glb$cad5f842cc182e58((IConstructor) $P0, (IConstructor) $P1); + if($result != null) return $result; + $result = (IValue)Type_glb$b25c5c3f39fc09b1((IConstructor) $P0, (IConstructor) $P1); + if($result != null) return $result; + $result = (IValue)Type_glb$cd7b70aadcf0e6f7((IConstructor) $P0, (IConstructor) $P1); + if($result != null) return $result; + } + break; + case 910096: + if($isSubtypeOf($P0Type, ADT_Symbol) && $isSubtypeOf($P1Type, ADT_Symbol)){ + $result = (IValue)Type_glb$ccebb93560b76f62((IConstructor) $P0, (IConstructor) $P1); + if($result != null) return $result; + $result = (IValue)Type_glb$a731272cac728f82((IConstructor) $P0, (IConstructor) $P1); + if($result != null) return $result; + } + break; + case 902344: + if($isSubtypeOf($P0Type, ADT_Symbol) && $isSubtypeOf($P1Type, ADT_Symbol)){ + $result = (IValue)Type_glb$a786ee037405dc5c((IConstructor) $P0, (IConstructor) $P1); + if($result != null) return $result; + $result = (IValue)Type_glb$525503476d5dd0c9((IConstructor) $P0, (IConstructor) $P1); + if($result != null) return $result; + $result = (IValue)Type_glb$3f1318612901961d((IConstructor) $P0, (IConstructor) $P1); + if($result != null) return $result; + $result = (IValue)Type_glb$1d00df4abea8627d((IConstructor) $P0, (IConstructor) $P1); + if($result != null) return $result; + $result = (IValue)Type_glb$22a77fe40bb560cb((IConstructor) $P0, (IConstructor) $P1); + if($result != null) return $result; + $result = (IValue)Type_glb$9665334317df7954((IConstructor) $P0, (IConstructor) $P1); + if($result != null) return $result; + $result = (IValue)Type_glb$fedc2ca18d852381((IConstructor) $P0, (IConstructor) $P1); + if($result != null) return $result; + } + break; + case -1322071552: + if($isSubtypeOf($P0Type, ADT_Symbol) && $isSubtypeOf($P1Type, ADT_Symbol)){ + $result = (IValue)Type_glb$6917d863f1e00280((IConstructor) $P0, (IConstructor) $P1); + if($result != null) return $result; + } + break; + case 26641768: + if($isSubtypeOf($P0Type, ADT_Symbol) && $isSubtypeOf($P1Type, ADT_Symbol)){ + $result = (IValue)Type_glb$0f0ddb52abd0ac6a((IConstructor) $P0, (IConstructor) $P1); + if($result != null) return $result; + $result = (IValue)Type_glb$fc31ec41aa84d7a9((IConstructor) $P0, (IConstructor) $P1); + if($result != null) return $result; + $result = (IValue)Type_glb$c86a7a40892f2e13((IConstructor) $P0, (IConstructor) $P1); + if($result != null) return $result; + $result = (IValue)Type_glb$a57301fdb26a70d4((IConstructor) $P0, (IConstructor) $P1); + if($result != null) return $result; + $result = (IValue)Type_glb$3b40dfcfaf8346f5((IConstructor) $P0, (IConstructor) $P1); + if($result != null) return $result; + $result = (IValue)Type_glb$b721378e469ce285((IConstructor) $P0, (IConstructor) $P1); + if($result != null) return $result; + $result = (IValue)Type_glb$fcc8ca1603beb4a9((IConstructor) $P0, (IConstructor) $P1); + if($result != null) return $result; + } + break; + case 778304: + if($isSubtypeOf($P0Type, ADT_Symbol) && $isSubtypeOf($P1Type, ADT_Symbol)){ + $result = (IValue)Type_glb$5aaa99890ed611bb((IConstructor) $P0, (IConstructor) $P1); + if($result != null) return $result; + } + break; + case 100948096: + if($isSubtypeOf($P0Type, ADT_Symbol) && $isSubtypeOf($P1Type, ADT_Symbol)){ + $result = (IValue)Type_glb$69c036b2f7ba2c93((IConstructor) $P0, (IConstructor) $P1); + if($result != null) return $result; + } + break; + case 112955840: + if($isSubtypeOf($P0Type, ADT_Symbol) && $isSubtypeOf($P1Type, ADT_Symbol)){ + $result = (IValue)Type_glb$265e93665a676ba9((IConstructor) $P0, (IConstructor) $P1); + if($result != null) return $result; + $result = (IValue)Type_glb$6a5d82307ef38ff1((IConstructor) $P0, (IConstructor) $P1); + if($result != null) return $result; + } + break; + case 1542928: + if($isSubtypeOf($P0Type, ADT_Symbol) && $isSubtypeOf($P1Type, ADT_Symbol)){ + $result = (IValue)Type_glb$e59f6ec3e8ac7cf8((IConstructor) $P0, (IConstructor) $P1); + if($result != null) return $result; + $result = (IValue)Type_glb$0b0dd3255cd61470((IConstructor) $P0, (IConstructor) $P1); + if($result != null) return $result; + $result = (IValue)Type_glb$e2846391aba6c513((IConstructor) $P0, (IConstructor) $P1); + if($result != null) return $result; + $result = (IValue)Type_glb$fcb766b6fadeffe6((IConstructor) $P0, (IConstructor) $P1); + if($result != null) return $result; + $result = (IValue)Type_glb$57382441fa985d45((IConstructor) $P0, (IConstructor) $P1); + if($result != null) return $result; + } + break; + case 885800512: + if($isSubtypeOf($P0Type, ADT_Symbol) && $isSubtypeOf($P1Type, ADT_Symbol)){ + $result = (IValue)Type_glb$9e7e1f5985f9f398((IConstructor) $P0, (IConstructor) $P1); + if($result != null) return $result; + $result = (IValue)Type_glb$a04284ca9b91ca7f((IConstructor) $P0, (IConstructor) $P1); + if($result != null) return $result; + $result = (IValue)Type_glb$48b8563e75023e27((IConstructor) $P0, (IConstructor) $P1); + if($result != null) return $result; + $result = (IValue)Type_glb$69e769596d4bd481((IConstructor) $P0, (IConstructor) $P1); + if($result != null) return $result; + $result = (IValue)Type_glb$ba92934d6828a4fc((IConstructor) $P0, (IConstructor) $P1); + if($result != null) return $result; + } + break; + } + if($isSubtypeOf($P0Type,$T0) && $isSubtypeOf($P1Type,$T0)){ + $result = (IValue)Type_glb$588ab965903d12a1((IList) $P0, (IList) $P1); + if($result != null) return $result; + } + if($isSubtypeOf($P0Type, ADT_Symbol) && $isSubtypeOf($P1Type, ADT_Symbol)){ + $result = (IValue)Type_glb$c33fe84981451d5d((IConstructor) $P0, (IConstructor) $P1); + if($result != null) return $result; + $result = (IValue)Type_glb$bb211af2491da9e9((IConstructor) $P0, (IConstructor) $P1); + if($result != null) return $result; + $result = (IValue)Type_glb$4c1d7a7db4cf16ca((IConstructor) $P0, (IConstructor) $P1); + if($result != null) return $result; + $result = (IValue)Type_glb$c62adde378db5726((IConstructor) $P0, (IConstructor) $P1); + if($result != null) return $result; + $result = (IValue)Type_glb$44d70430e3ea2351((IConstructor) $P0, (IConstructor) $P1); + if($result != null) return $result; + $result = (IValue)Type_glb$2a7a0f345df74609((IConstructor) $P0, (IConstructor) $P1); + if($result != null) return $result; + $result = (IValue)Type_glb$1e653208ecb5fb70((IConstructor) $P0, (IConstructor) $P1); + if($result != null) return $result; + $result = (IValue)Type_glb$f4d1e05744c88722((IConstructor) $P0, (IConstructor) $P1); + if($result != null) return $result; + $result = (IValue)Type_glb$e78099bd23f8b441((IConstructor) $P0, (IConstructor) $P1); + if($result != null) return $result; + $result = (IValue)Type_glb$5a78c895f775bd16((IConstructor) $P0, (IConstructor) $P1); + if($result != null) return $result; + $result = (IValue)Type_glb$60eb504a9ebf23b3((IConstructor) $P0, (IConstructor) $P1); + if($result != null) return $result; + $result = (IValue)Type_glb$13f9a897070bdb41((IConstructor) $P0, (IConstructor) $P1); + if($result != null) return $result; + $result = (IValue)Type_glb$f5f3963b9ac36b44((IConstructor) $P0, (IConstructor) $P1); + if($result != null) return $result; + $result = (IValue)Type_glb$748cc45995ed4ab6((IConstructor) $P0, (IConstructor) $P1); + if($result != null) return $result; + $result = (IValue)Type_glb$062f850b66975974((IConstructor) $P0, (IConstructor) $P1); + if($result != null) return $result; + $result = (IValue)Type_glb$c7e9058fa842d39e((IConstructor) $P0, (IConstructor) $P1); + if($result != null) return $result; + } + if($isSubtypeOf($P0Type,$T0) && $isSubtypeOf($P1Type,$T0)){ + $result = (IValue)Type_glb$c557bcbeba468980((IList) $P0, (IList) $P1); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0, $P1)); + } + public IList addLabels(IValue $P0, IValue $P1){ // Generated by Resolver + IList $result = null; + Type $P0Type = $P0.getType(); + Type $P1Type = $P1.getType(); + if($isSubtypeOf($P0Type,$T0) && $isSubtypeOf($P1Type,$T1)){ + $result = (IList)Type_addLabels$981aeb1962053f6d((IList) $P0, (IList) $P1); + if($result != null) return $result; + $result = (IList)Type_addLabels$c61a5cc3caa0d718((IList) $P0, (IList) $P1); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0, $P1)); + } + public IValue head(IValue $P0){ // Generated by Resolver + return (IValue) M_List.head($P0); + } + public IBool isAliasType(IValue $P0){ // Generated by Resolver + IBool $result = null; + Type $P0Type = $P0.getType(); + switch(Fingerprint.getFingerprint($P0)){ + + case 1643638592: + if($isSubtypeOf($P0Type, ADT_Symbol)){ + $result = (IBool)Type_isAliasType$53ed17cc6d4d56d5((IConstructor) $P0); + if($result != null) return $result; + } + break; + case 1206598288: + if($isSubtypeOf($P0Type, ADT_Symbol)){ + $result = (IBool)Type_isAliasType$36bb377f97e90786((IConstructor) $P0); + if($result != null) return $result; + } + break; + case -1322071552: + if($isSubtypeOf($P0Type, ADT_Symbol)){ + $result = (IBool)Type_isAliasType$be7b4838d41f7750((IConstructor) $P0); + if($result != null) return $result; + } + break; + } + if($isSubtypeOf($P0Type, ADT_Symbol)){ + $result = (IBool)Type_isAliasType$a82f2a52c32629d2((IConstructor) $P0); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0)); + } + public IBool isStrType(IValue $P0){ // Generated by Resolver + IBool $result = null; + Type $P0Type = $P0.getType(); + switch(Fingerprint.getFingerprint($P0)){ + + case 1643638592: + if($isSubtypeOf($P0Type, ADT_Symbol)){ + $result = (IBool)Type_isStrType$7c6935fdcbba3a91((IConstructor) $P0); + if($result != null) return $result; + } + break; + case 1206598288: + if($isSubtypeOf($P0Type, ADT_Symbol)){ + $result = (IBool)Type_isStrType$f001e5ed63b40aa7((IConstructor) $P0); + if($result != null) return $result; + } + break; + case -1322071552: + if($isSubtypeOf($P0Type, ADT_Symbol)){ + $result = (IBool)Type_isStrType$f6b0f7a14a810d8f((IConstructor) $P0); + if($result != null) return $result; + } + break; + } + if($isSubtypeOf($P0Type, ADT_Symbol)){ + $result = (IBool)Type_isStrType$9ae2419b08ae933c((IConstructor) $P0); + if($result != null) return $result; + $result = (IBool)Type_isStrType$f3e2471bbdc6578c((IConstructor) $P0); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0)); + } + public IConstructor choice(IValue $P0, IValue $P1){ // Generated by Resolver + IConstructor $result = null; + Type $P0Type = $P0.getType(); + Type $P1Type = $P1.getType(); + if($isSubtypeOf($P0Type, ADT_Symbol) && $isSubtypeOf($P1Type,$T3)){ + $result = (IConstructor)Type_choice$1fd88c645dec3500((IConstructor) $P0, (ISet) $P1); + if($result != null) return $result; + return $RVF.constructor(Production_choice_Symbol_set_Production, new IValue[]{(IConstructor) $P0, (ISet) $P1}); + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0, $P1)); + } + public IBool isValueType(IValue $P0){ // Generated by Resolver + IBool $result = null; + Type $P0Type = $P0.getType(); + switch(Fingerprint.getFingerprint($P0)){ + + case 1643638592: + if($isSubtypeOf($P0Type, ADT_Symbol)){ + $result = (IBool)Type_isValueType$dca7aa346bf90886((IConstructor) $P0); + if($result != null) return $result; + } + break; + case 1206598288: + if($isSubtypeOf($P0Type, ADT_Symbol)){ + $result = (IBool)Type_isValueType$b9ffdec5c297602d((IConstructor) $P0); + if($result != null) return $result; + } + break; + case -1322071552: + if($isSubtypeOf($P0Type, ADT_Symbol)){ + $result = (IBool)Type_isValueType$e0359cce2680806c((IConstructor) $P0); + if($result != null) return $result; + } + break; + } + if($isSubtypeOf($P0Type, ADT_Symbol)){ + $result = (IBool)Type_isValueType$667072f59b8f8f70((IConstructor) $P0); + if($result != null) return $result; + $result = (IBool)Type_isValueType$e6f62b5b7d9c7817((IConstructor) $P0); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0)); + } + public IBool isADTType(IValue $P0){ // Generated by Resolver + IBool $result = null; + Type $P0Type = $P0.getType(); + switch(Fingerprint.getFingerprint($P0)){ + + case 1643638592: + if($isSubtypeOf($P0Type, ADT_Symbol)){ + $result = (IBool)Type_isADTType$c9e59ac203bf16c6((IConstructor) $P0); + if($result != null) return $result; + } + break; + case 1206598288: + if($isSubtypeOf($P0Type, ADT_Symbol)){ + $result = (IBool)Type_isADTType$eec08a18faad2421((IConstructor) $P0); + if($result != null) return $result; + } + break; + case -1322071552: + if($isSubtypeOf($P0Type, ADT_Symbol)){ + $result = (IBool)Type_isADTType$75f588280052e41a((IConstructor) $P0); + if($result != null) return $result; + } + break; + case 1542928: + if($isSubtypeOf($P0Type, ADT_Symbol)){ + $result = (IBool)Type_isADTType$06ad40947bb0990a((IConstructor) $P0); + if($result != null) return $result; + } + break; + case 112955840: + if($isSubtypeOf($P0Type, ADT_Symbol)){ + $result = (IBool)Type_isADTType$55f1893a25b5971e((IConstructor) $P0); + if($result != null) return $result; + } + break; + } + if($isSubtypeOf($P0Type, ADT_Symbol)){ + $result = (IBool)Type_isADTType$4079510b224fe1ba((IConstructor) $P0); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0)); + } + public IBool isListType(IValue $P0){ // Generated by Resolver + IBool $result = null; + Type $P0Type = $P0.getType(); + switch(Fingerprint.getFingerprint($P0)){ + + case 1643638592: + if($isSubtypeOf($P0Type, ADT_Symbol)){ + $result = (IBool)Type_isListType$f9325150bcff8f64((IConstructor) $P0); + if($result != null) return $result; + } + break; + case 26576112: + if($isSubtypeOf($P0Type, ADT_Symbol)){ + $result = (IBool)Type_isListType$e2050780d70f05ef((IConstructor) $P0); + if($result != null) return $result; + } + break; + case 1206598288: + if($isSubtypeOf($P0Type, ADT_Symbol)){ + $result = (IBool)Type_isListType$2cd097e45f390e11((IConstructor) $P0); + if($result != null) return $result; + } + break; + case -1322071552: + if($isSubtypeOf($P0Type, ADT_Symbol)){ + $result = (IBool)Type_isListType$5cb20471614ceb14((IConstructor) $P0); + if($result != null) return $result; + } + break; + case 26641768: + if($isSubtypeOf($P0Type, ADT_Symbol)){ + $result = (IBool)Type_isListType$67c1630c1e94e46f((IConstructor) $P0); + if($result != null) return $result; + } + break; + } + if($isSubtypeOf($P0Type, ADT_Symbol)){ + $result = (IBool)Type_isListType$a5f9e5ebaadf5ccd((IConstructor) $P0); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0)); + } + public IBool isRealType(IValue $P0){ // Generated by Resolver + IBool $result = null; + Type $P0Type = $P0.getType(); + switch(Fingerprint.getFingerprint($P0)){ + + case 1643638592: + if($isSubtypeOf($P0Type, ADT_Symbol)){ + $result = (IBool)Type_isRealType$bf4dadc558e2bc2a((IConstructor) $P0); + if($result != null) return $result; + } + break; + case 1206598288: + if($isSubtypeOf($P0Type, ADT_Symbol)){ + $result = (IBool)Type_isRealType$5af787b150624afb((IConstructor) $P0); + if($result != null) return $result; + } + break; + case -1322071552: + if($isSubtypeOf($P0Type, ADT_Symbol)){ + $result = (IBool)Type_isRealType$4d3ef284eba47817((IConstructor) $P0); + if($result != null) return $result; + } + break; + } + if($isSubtypeOf($P0Type, ADT_Symbol)){ + $result = (IBool)Type_isRealType$f338a01b49d8b0d2((IConstructor) $P0); + if($result != null) return $result; + $result = (IBool)Type_isRealType$ccca7a2c3ee9a4fb((IConstructor) $P0); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0)); + } + public IBool isNodeType(IValue $P0){ // Generated by Resolver + IBool $result = null; + Type $P0Type = $P0.getType(); + switch(Fingerprint.getFingerprint($P0)){ + + case 1643638592: + if($isSubtypeOf($P0Type, ADT_Symbol)){ + $result = (IBool)Type_isNodeType$753d652f78ce3ee8((IConstructor) $P0); + if($result != null) return $result; + } + break; + case 1206598288: + if($isSubtypeOf($P0Type, ADT_Symbol)){ + $result = (IBool)Type_isNodeType$fe2d6187af7e20d8((IConstructor) $P0); + if($result != null) return $result; + } + break; + case -1322071552: + if($isSubtypeOf($P0Type, ADT_Symbol)){ + $result = (IBool)Type_isNodeType$cd583a32160e7d2e((IConstructor) $P0); + if($result != null) return $result; + } + break; + case 1542928: + if($isSubtypeOf($P0Type, ADT_Symbol)){ + $result = (IBool)Type_isNodeType$70b01dc65abe027f((IConstructor) $P0); + if($result != null) return $result; + } + break; + } + if($isSubtypeOf($P0Type, ADT_Symbol)){ + $result = (IBool)Type_isNodeType$4f701f28416ac047((IConstructor) $P0); + if($result != null) return $result; + $result = (IBool)Type_isNodeType$b82b31bdf0843130((IConstructor) $P0); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0)); + } + public IBool isReifiedType(IValue $P0){ // Generated by Resolver + IBool $result = null; + Type $P0Type = $P0.getType(); + switch(Fingerprint.getFingerprint($P0)){ + + case 1643638592: + if($isSubtypeOf($P0Type, ADT_Symbol)){ + $result = (IBool)Type_isReifiedType$6fed314f55ec225d((IConstructor) $P0); + if($result != null) return $result; + } + break; + case 1206598288: + if($isSubtypeOf($P0Type, ADT_Symbol)){ + $result = (IBool)Type_isReifiedType$2398657586b47cef((IConstructor) $P0); + if($result != null) return $result; + } + break; + case -1322071552: + if($isSubtypeOf($P0Type, ADT_Symbol)){ + $result = (IBool)Type_isReifiedType$afaab65144832e90((IConstructor) $P0); + if($result != null) return $result; + } + break; + case 112955840: + if($isSubtypeOf($P0Type, ADT_Symbol)){ + $result = (IBool)Type_isReifiedType$a8d50b8b608f8ee7((IConstructor) $P0); + if($result != null) return $result; + } + break; + } + if($isSubtypeOf($P0Type, ADT_Symbol)){ + $result = (IBool)Type_isReifiedType$f758db94422c9072((IConstructor) $P0); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0)); + } + public IBool isRelType(IValue $P0){ // Generated by Resolver + IBool $result = null; + Type $P0Type = $P0.getType(); + switch(Fingerprint.getFingerprint($P0)){ + + case 1643638592: + if($isSubtypeOf($P0Type, ADT_Symbol)){ + $result = (IBool)Type_isRelType$58345a7801d3f289((IConstructor) $P0); + if($result != null) return $result; + } + break; + case 1206598288: + if($isSubtypeOf($P0Type, ADT_Symbol)){ + $result = (IBool)Type_isRelType$dfe2996f326788f1((IConstructor) $P0); + if($result != null) return $result; + } + break; + case 910096: + if($isSubtypeOf($P0Type, ADT_Symbol)){ + $result = (IBool)Type_isRelType$e684041f960d6150((IConstructor) $P0); + if($result != null) return $result; + } + break; + case 902344: + if($isSubtypeOf($P0Type, ADT_Symbol)){ + $result = (IBool)Type_isRelType$1cd229b6628898e4((IConstructor) $P0); + if($result != null) return $result; + } + break; + case -1322071552: + if($isSubtypeOf($P0Type, ADT_Symbol)){ + $result = (IBool)Type_isRelType$619927ec85f3de3a((IConstructor) $P0); + if($result != null) return $result; + } + break; + } + if($isSubtypeOf($P0Type, ADT_Symbol)){ + $result = (IBool)Type_isRelType$4451272f25c97a41((IConstructor) $P0); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0)); + } + public IBool isConstructorType(IValue $P0){ // Generated by Resolver + IBool $result = null; + Type $P0Type = $P0.getType(); + switch(Fingerprint.getFingerprint($P0)){ + + case 1643638592: + if($isSubtypeOf($P0Type, ADT_Symbol)){ + $result = (IBool)Type_isConstructorType$bfafd605f17a2265((IConstructor) $P0); + if($result != null) return $result; + } + break; + case 1206598288: + if($isSubtypeOf($P0Type, ADT_Symbol)){ + $result = (IBool)Type_isConstructorType$76715e3a6e16c474((IConstructor) $P0); + if($result != null) return $result; + } + break; + case 97904160: + if($isSubtypeOf($P0Type, ADT_Symbol)){ + $result = (IBool)Type_isConstructorType$5f7682c23fcd1429((IConstructor) $P0); + if($result != null) return $result; + } + break; + case -1322071552: + if($isSubtypeOf($P0Type, ADT_Symbol)){ + $result = (IBool)Type_isConstructorType$03b6fed0e3f2a6ac((IConstructor) $P0); + if($result != null) return $result; + } + break; + } + if($isSubtypeOf($P0Type, ADT_Symbol)){ + $result = (IBool)Type_isConstructorType$7c73a110d1ea5afa((IConstructor) $P0); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0)); + } + public IConstructor var_func(IValue $P0, IValue $P1, IValue $P2){ // Generated by Resolver + IConstructor $result = null; + Type $P0Type = $P0.getType(); + Type $P1Type = $P1.getType(); + Type $P2Type = $P2.getType(); + if($isSubtypeOf($P0Type, ADT_Symbol) && $isSubtypeOf($P1Type,$T0) && $isSubtypeOf($P2Type, ADT_Symbol)){ + $result = (IConstructor)Type_var_func$33d788c08f15290a((IConstructor) $P0, (IList) $P1, (IConstructor) $P2); + if($result != null) return $result; + return $RVF.constructor(Symbol_var_func_Symbol_list_Symbol_Symbol, new IValue[]{(IConstructor) $P0, (IList) $P1, (IConstructor) $P2}); + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0, $P1, $P2)); + } + public IBool equivalent(IValue $P0, IValue $P1){ // Generated by Resolver + IBool $result = null; + Type $P0Type = $P0.getType(); + Type $P1Type = $P1.getType(); + if($isSubtypeOf($P0Type, ADT_Symbol) && $isSubtypeOf($P1Type, ADT_Symbol)){ + $result = (IBool)Type_equivalent$da65f34f54cbbcfd((IConstructor) $P0, (IConstructor) $P1); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0, $P1)); + } + public IList addParamLabels(IValue $P0, IValue $P1){ // Generated by Resolver + IList $result = null; + Type $P0Type = $P0.getType(); + Type $P1Type = $P1.getType(); + if($isSubtypeOf($P0Type,$T0) && $isSubtypeOf($P1Type,$T1)){ + $result = (IList)Type_addParamLabels$9a2fcec6caf1a7af((IList) $P0, (IList) $P1); + if($result != null) return $result; + $result = (IList)Type_addParamLabels$237a32acd91d3f4b((IList) $P0, (IList) $P1); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0, $P1)); + } + public IBool keepParams(IValue $P0, IValue $P1){ // Generated by Resolver + IBool $result = null; + Type $P0Type = $P0.getType(); + Type $P1Type = $P1.getType(); + if($isSubtypeOf($P0Type, ADT_Symbol) && $isSubtypeOf($P1Type, ADT_Symbol)){ + $result = (IBool)Type_keepParams$932e8cdb74f21297((IConstructor) $P0, (IConstructor) $P1); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0, $P1)); + } + public IBool isListRelType(IValue $P0){ // Generated by Resolver + IBool $result = null; + Type $P0Type = $P0.getType(); + switch(Fingerprint.getFingerprint($P0)){ + + case 1643638592: + if($isSubtypeOf($P0Type, ADT_Symbol)){ + $result = (IBool)Type_isListRelType$8e3e16055e697805((IConstructor) $P0); + if($result != null) return $result; + } + break; + case 26576112: + if($isSubtypeOf($P0Type, ADT_Symbol)){ + $result = (IBool)Type_isListRelType$41e9de5fc098b33d((IConstructor) $P0); + if($result != null) return $result; + } + break; + case 1206598288: + if($isSubtypeOf($P0Type, ADT_Symbol)){ + $result = (IBool)Type_isListRelType$4fa364f56f01bd93((IConstructor) $P0); + if($result != null) return $result; + } + break; + case -1322071552: + if($isSubtypeOf($P0Type, ADT_Symbol)){ + $result = (IBool)Type_isListRelType$fc572333d7ccc035((IConstructor) $P0); + if($result != null) return $result; + } + break; + case 26641768: + if($isSubtypeOf($P0Type, ADT_Symbol)){ + $result = (IBool)Type_isListRelType$521530780a74b452((IConstructor) $P0); + if($result != null) return $result; + } + break; + } + if($isSubtypeOf($P0Type, ADT_Symbol)){ + $result = (IBool)Type_isListRelType$fe978cfc20935991((IConstructor) $P0); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0)); + } + public IBool eq(IValue $P0, IValue $P1){ // Generated by Resolver + IBool $result = null; + Type $P0Type = $P0.getType(); + Type $P1Type = $P1.getType(); + if($isSubtypeOf($P0Type,$T4) && $isSubtypeOf($P1Type,$T4)){ + $result = (IBool)Type_eq$3b65029c0d5a1b77((IValue) $P0, (IValue) $P1); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0, $P1)); + } + public IBool isMapType(IValue $P0){ // Generated by Resolver + IBool $result = null; + Type $P0Type = $P0.getType(); + switch(Fingerprint.getFingerprint($P0)){ + + case 1643638592: + if($isSubtypeOf($P0Type, ADT_Symbol)){ + $result = (IBool)Type_isMapType$023e4a504202eeef((IConstructor) $P0); + if($result != null) return $result; + } + break; + case 1725888: + if($isSubtypeOf($P0Type, ADT_Symbol)){ + $result = (IBool)Type_isMapType$12f2aa85890447c6((IConstructor) $P0); + if($result != null) return $result; + } + break; + case 1206598288: + if($isSubtypeOf($P0Type, ADT_Symbol)){ + $result = (IBool)Type_isMapType$aa695167615ea00a((IConstructor) $P0); + if($result != null) return $result; + } + break; + case -1322071552: + if($isSubtypeOf($P0Type, ADT_Symbol)){ + $result = (IBool)Type_isMapType$dd63ec350694a9b0((IConstructor) $P0); + if($result != null) return $result; + } + break; + } + if($isSubtypeOf($P0Type, ADT_Symbol)){ + $result = (IBool)Type_isMapType$67db2d90e02d2133((IConstructor) $P0); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0)); + } + public IBool isBoolType(IValue $P0){ // Generated by Resolver + IBool $result = null; + Type $P0Type = $P0.getType(); + switch(Fingerprint.getFingerprint($P0)){ + + case 1643638592: + if($isSubtypeOf($P0Type, ADT_Symbol)){ + $result = (IBool)Type_isBoolType$82e078ed93f04711((IConstructor) $P0); + if($result != null) return $result; + } + break; + case 1206598288: + if($isSubtypeOf($P0Type, ADT_Symbol)){ + $result = (IBool)Type_isBoolType$8cefc437e5ae4c94((IConstructor) $P0); + if($result != null) return $result; + } + break; + case -1322071552: + if($isSubtypeOf($P0Type, ADT_Symbol)){ + $result = (IBool)Type_isBoolType$37ece13e0d5add6a((IConstructor) $P0); + if($result != null) return $result; + } + break; + } + if($isSubtypeOf($P0Type, ADT_Symbol)){ + $result = (IBool)Type_isBoolType$0e05363bfd11b324((IConstructor) $P0); + if($result != null) return $result; + $result = (IBool)Type_isBoolType$07e3c834d8dd35ef((IConstructor) $P0); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0)); + } + public IValue make(IValue $P0, IValue $P1, IValue $P2){ // Generated by Resolver + IValue $result = null; + Type $P0Type = $P0.getType(); + Type $P1Type = $P1.getType(); + Type $P2Type = $P2.getType(); + if($isSubtypeOf($P0Type,$T5) && $isSubtypeOf($P1Type,$T2) && $isSubtypeOf($P2Type,$T7)){ + $result = (IValue)Type_make$c03dd112cd83002d((IConstructor) $P0, (IString) $P1, (IList) $P2); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0, $P1, $P2)); + } + public IValue make(IValue $P0, IValue $P1, IValue $P2, IValue $P3){ // Generated by Resolver + IValue $result = null; + Type $P0Type = $P0.getType(); + Type $P1Type = $P1.getType(); + Type $P2Type = $P2.getType(); + Type $P3Type = $P3.getType(); + if($isSubtypeOf($P0Type,$T5) && $isSubtypeOf($P1Type,$T2) && $isSubtypeOf($P2Type,$T7) && $isSubtypeOf($P3Type,$T8)){ + $result = (IValue)Type_make$ed639cfbd11999e2((IConstructor) $P0, (IString) $P1, (IList) $P2, (IMap) $P3); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0, $P1, $P2, $P3)); + } + public IList tail(IValue $P0){ // Generated by Resolver + return (IList) M_List.tail($P0); + } + public IBool isLocType(IValue $P0){ // Generated by Resolver + IBool $result = null; + Type $P0Type = $P0.getType(); + switch(Fingerprint.getFingerprint($P0)){ + + case 1643638592: + if($isSubtypeOf($P0Type, ADT_Symbol)){ + $result = (IBool)Type_isLocType$9f0441d4fb931246((IConstructor) $P0); + if($result != null) return $result; + } + break; + case 1206598288: + if($isSubtypeOf($P0Type, ADT_Symbol)){ + $result = (IBool)Type_isLocType$aee7bcb7f5d15058((IConstructor) $P0); + if($result != null) return $result; + } + break; + case -1322071552: + if($isSubtypeOf($P0Type, ADT_Symbol)){ + $result = (IBool)Type_isLocType$59ad589102bf053b((IConstructor) $P0); + if($result != null) return $result; + } + break; + } + if($isSubtypeOf($P0Type, ADT_Symbol)){ + $result = (IBool)Type_isLocType$3b8aa102e65cda31((IConstructor) $P0); + if($result != null) return $result; + $result = (IBool)Type_isLocType$7df812781da274e3((IConstructor) $P0); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0)); + } + public ITuple headTail(IValue $P0){ // Generated by Resolver + return (ITuple) M_List.headTail($P0); + } + public IConstructor typeOf(IValue $P0){ // Generated by Resolver + IConstructor $result = null; + Type $P0Type = $P0.getType(); + if($isSubtypeOf($P0Type,$T4)){ + $result = (IConstructor)Type_typeOf$6061dcc1215fd746((IValue) $P0); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0)); + } + public IBool allLabeled(IValue $P0){ // Generated by Resolver + IBool $result = null; + Type $P0Type = $P0.getType(); + if($isSubtypeOf($P0Type,$T0)){ + $result = (IBool)Type_allLabeled$448fbafcf2280718((IList) $P0); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0)); + } + public IBool isSetType(IValue $P0){ // Generated by Resolver + IBool $result = null; + Type $P0Type = $P0.getType(); + switch(Fingerprint.getFingerprint($P0)){ + + case 1643638592: + if($isSubtypeOf($P0Type, ADT_Symbol)){ + $result = (IBool)Type_isSetType$5b2f15b95451429d((IConstructor) $P0); + if($result != null) return $result; + } + break; + case 1206598288: + if($isSubtypeOf($P0Type, ADT_Symbol)){ + $result = (IBool)Type_isSetType$691733c8181a3052((IConstructor) $P0); + if($result != null) return $result; + } + break; + case 910096: + if($isSubtypeOf($P0Type, ADT_Symbol)){ + $result = (IBool)Type_isSetType$5940dec4cf1357e7((IConstructor) $P0); + if($result != null) return $result; + } + break; + case 902344: + if($isSubtypeOf($P0Type, ADT_Symbol)){ + $result = (IBool)Type_isSetType$6dbbe5f1ad04e52d((IConstructor) $P0); + if($result != null) return $result; + } + break; + case -1322071552: + if($isSubtypeOf($P0Type, ADT_Symbol)){ + $result = (IBool)Type_isSetType$af2b3a70c68fa026((IConstructor) $P0); + if($result != null) return $result; + } + break; + } + if($isSubtypeOf($P0Type, ADT_Symbol)){ + $result = (IBool)Type_isSetType$0a6211803a6f3b37((IConstructor) $P0); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0)); + } + public IBool isRatType(IValue $P0){ // Generated by Resolver + IBool $result = null; + Type $P0Type = $P0.getType(); + switch(Fingerprint.getFingerprint($P0)){ + + case 1643638592: + if($isSubtypeOf($P0Type, ADT_Symbol)){ + $result = (IBool)Type_isRatType$dcf2381b59098cd9((IConstructor) $P0); + if($result != null) return $result; + } + break; + case 1206598288: + if($isSubtypeOf($P0Type, ADT_Symbol)){ + $result = (IBool)Type_isRatType$b9693bea2192ed8c((IConstructor) $P0); + if($result != null) return $result; + } + break; + case -1322071552: + if($isSubtypeOf($P0Type, ADT_Symbol)){ + $result = (IBool)Type_isRatType$8af97bb6a2786bed((IConstructor) $P0); + if($result != null) return $result; + } + break; + } + if($isSubtypeOf($P0Type, ADT_Symbol)){ + $result = (IBool)Type_isRatType$45bbf043839d3d63((IConstructor) $P0); + if($result != null) return $result; + $result = (IBool)Type_isRatType$3364a9bd0fe98d3a((IConstructor) $P0); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0)); + } + public IList getLabels(IValue $P0){ // Generated by Resolver + IList $result = null; + Type $P0Type = $P0.getType(); + if($isSubtypeOf($P0Type,$T0)){ + $result = (IList)Type_getLabels$75df4fafda7b0225((IList) $P0); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0)); + } + public IList getParamLabels(IValue $P0){ // Generated by Resolver + IList $result = null; + Type $P0Type = $P0.getType(); + if($isSubtypeOf($P0Type,$T0)){ + $result = (IList)Type_getParamLabels$d148bd4a03929246((IList) $P0); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0)); + } + public IBool isNumType(IValue $P0){ // Generated by Resolver + IBool $result = null; + Type $P0Type = $P0.getType(); + switch(Fingerprint.getFingerprint($P0)){ + + case 1643638592: + if($isSubtypeOf($P0Type, ADT_Symbol)){ + $result = (IBool)Type_isNumType$5f826fd8c150a884((IConstructor) $P0); + if($result != null) return $result; + } + break; + case 1206598288: + if($isSubtypeOf($P0Type, ADT_Symbol)){ + $result = (IBool)Type_isNumType$8f39481fe207a2d9((IConstructor) $P0); + if($result != null) return $result; + } + break; + case -1322071552: + if($isSubtypeOf($P0Type, ADT_Symbol)){ + $result = (IBool)Type_isNumType$cebed1c4e2f4e0c1((IConstructor) $P0); + if($result != null) return $result; + } + break; + } + if($isSubtypeOf($P0Type, ADT_Symbol)){ + $result = (IBool)Type_isNumType$f905e6a61b4f9fe9((IConstructor) $P0); + if($result != null) return $result; + $result = (IBool)Type_isNumType$4a01c31ce8d55ae6((IConstructor) $P0); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0)); + } + public IList stripLabels(IValue $P0){ // Generated by Resolver + IList $result = null; + Type $P0Type = $P0.getType(); + if($isSubtypeOf($P0Type,$T0)){ + $result = (IList)Type_stripLabels$476c8af6f8a4ff77((IList) $P0); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0)); + } + public IBool isTupleType(IValue $P0){ // Generated by Resolver + IBool $result = null; + Type $P0Type = $P0.getType(); + switch(Fingerprint.getFingerprint($P0)){ + + case 1643638592: + if($isSubtypeOf($P0Type, ADT_Symbol)){ + $result = (IBool)Type_isTupleType$af04c969df138641((IConstructor) $P0); + if($result != null) return $result; + } + break; + case 1206598288: + if($isSubtypeOf($P0Type, ADT_Symbol)){ + $result = (IBool)Type_isTupleType$d75f7f1755750be1((IConstructor) $P0); + if($result != null) return $result; + } + break; + case -1322071552: + if($isSubtypeOf($P0Type, ADT_Symbol)){ + $result = (IBool)Type_isTupleType$027f2dd0a4d10869((IConstructor) $P0); + if($result != null) return $result; + } + break; + case 885800512: + if($isSubtypeOf($P0Type, ADT_Symbol)){ + $result = (IBool)Type_isTupleType$529699f52c598fc9((IConstructor) $P0); + if($result != null) return $result; + } + break; + } + if($isSubtypeOf($P0Type, ADT_Symbol)){ + $result = (IBool)Type_isTupleType$670c18b105a6fd46((IConstructor) $P0); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0)); + } + public IBool isBagType(IValue $P0){ // Generated by Resolver + IBool $result = null; + Type $P0Type = $P0.getType(); + switch(Fingerprint.getFingerprint($P0)){ + + case 1643638592: + if($isSubtypeOf($P0Type, ADT_Symbol)){ + $result = (IBool)Type_isBagType$5bfea3bad135ca42((IConstructor) $P0); + if($result != null) return $result; + } + break; + case 1206598288: + if($isSubtypeOf($P0Type, ADT_Symbol)){ + $result = (IBool)Type_isBagType$978835a2e17706d0((IConstructor) $P0); + if($result != null) return $result; + } + break; + case -1322071552: + if($isSubtypeOf($P0Type, ADT_Symbol)){ + $result = (IBool)Type_isBagType$b98ae82cf86bb221((IConstructor) $P0); + if($result != null) return $result; + } + break; + case 778304: + if($isSubtypeOf($P0Type, ADT_Symbol)){ + $result = (IBool)Type_isBagType$16ada3424c9263d8((IConstructor) $P0); + if($result != null) return $result; + } + break; + } + if($isSubtypeOf($P0Type, ADT_Symbol)){ + $result = (IBool)Type_isBagType$78a6a76069464291((IConstructor) $P0); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0)); + } + public IBool isVoidType(IValue $P0){ // Generated by Resolver + IBool $result = null; + Type $P0Type = $P0.getType(); + switch(Fingerprint.getFingerprint($P0)){ + + case 1643638592: + if($isSubtypeOf($P0Type, ADT_Symbol)){ + $result = (IBool)Type_isVoidType$2ed30c48114cc0fc((IConstructor) $P0); + if($result != null) return $result; + } + break; + case 1206598288: + if($isSubtypeOf($P0Type, ADT_Symbol)){ + $result = (IBool)Type_isVoidType$7407b4b3f99d147a((IConstructor) $P0); + if($result != null) return $result; + } + break; + case -1322071552: + if($isSubtypeOf($P0Type, ADT_Symbol)){ + $result = (IBool)Type_isVoidType$baba77517aa47f53((IConstructor) $P0); + if($result != null) return $result; + } + break; + } + if($isSubtypeOf($P0Type, ADT_Symbol)){ + $result = (IBool)Type_isVoidType$c37d3d034ac8acb0((IConstructor) $P0); + if($result != null) return $result; + $result = (IBool)Type_isVoidType$c29ea295639835d3((IConstructor) $P0); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0)); + } + public IValue typeCast(IValue $P0, IValue $P1){ // Generated by Resolver + IValue $result = null; + Type $P0Type = $P0.getType(); + Type $P1Type = $P1.getType(); + if($isSubtypeOf($P0Type,$T5) && $isSubtypeOf($P1Type,$T4)){ + $result = (IValue)Type_typeCast$0e794e9add95c83b((IConstructor) $P0, (IValue) $P1); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0, $P1)); + } + public IValue lub(IValue $P0, IValue $P1){ // Generated by Resolver + IValue $result = null; + Type $P0Type = $P0.getType(); + Type $P1Type = $P1.getType(); + switch(Fingerprint.getFingerprint($P0)){ + + case 1643638592: + if($isSubtypeOf($P0Type, ADT_Symbol) && $isSubtypeOf($P1Type, ADT_Symbol)){ + $result = (IValue)Type_lub$9915f83b2e9ee2f9((IConstructor) $P0, (IConstructor) $P1); + if($result != null) return $result; + } + break; + case 26576112: + if($isSubtypeOf($P0Type, ADT_Symbol) && $isSubtypeOf($P1Type, ADT_Symbol)){ + $result = (IValue)Type_lub$be05e62f5f33e70a((IConstructor) $P0, (IConstructor) $P1); + if($result != null) return $result; + $result = (IValue)Type_lub$42beb0d51d9c47f2((IConstructor) $P0, (IConstructor) $P1); + if($result != null) return $result; + } + break; + case 1725888: + if($isSubtypeOf($P0Type, ADT_Symbol) && $isSubtypeOf($P1Type, ADT_Symbol)){ + $result = (IValue)Type_lub$525d494ef32e780f((IConstructor) $P0, (IConstructor) $P1); + if($result != null) return $result; + $result = (IValue)Type_lub$3f4d0193ec654be4((IConstructor) $P0, (IConstructor) $P1); + if($result != null) return $result; + $result = (IValue)Type_lub$79c1b7694ffd9fd8((IConstructor) $P0, (IConstructor) $P1); + if($result != null) return $result; + $result = (IValue)Type_lub$89bef2ae42badcac((IConstructor) $P0, (IConstructor) $P1); + if($result != null) return $result; + $result = (IValue)Type_lub$8e262d13a8e22e5b((IConstructor) $P0, (IConstructor) $P1); + if($result != null) return $result; + } + break; + case 1206598288: + if($isSubtypeOf($P0Type, ADT_Symbol) && $isSubtypeOf($P1Type, ADT_Symbol)){ + $result = (IValue)Type_lub$dbf1dfef76adf321((IConstructor) $P0, (IConstructor) $P1); + if($result != null) return $result; + $result = (IValue)Type_lub$e8aaf393ebf72b9b((IConstructor) $P0, (IConstructor) $P1); + if($result != null) return $result; + $result = (IValue)Type_lub$11e6e64c52d2b7bc((IConstructor) $P0, (IConstructor) $P1); + if($result != null) return $result; + } + break; + case 97904160: + if($isSubtypeOf($P0Type, ADT_Symbol) && $isSubtypeOf($P1Type, ADT_Symbol)){ + $result = (IValue)Type_lub$9c3d6ec5108762e5((IConstructor) $P0, (IConstructor) $P1); + if($result != null) return $result; + $result = (IValue)Type_lub$db14cac8db6fcb97((IConstructor) $P0, (IConstructor) $P1); + if($result != null) return $result; + $result = (IValue)Type_lub$ce98626caf2b01c0((IConstructor) $P0, (IConstructor) $P1); + if($result != null) return $result; + } + break; + case 910096: + if($isSubtypeOf($P0Type, ADT_Symbol) && $isSubtypeOf($P1Type, ADT_Symbol)){ + $result = (IValue)Type_lub$4cd4964d29fd898b((IConstructor) $P0, (IConstructor) $P1); + if($result != null) return $result; + $result = (IValue)Type_lub$9f0bb9bd89ef79f4((IConstructor) $P0, (IConstructor) $P1); + if($result != null) return $result; + } + break; + case 902344: + if($isSubtypeOf($P0Type, ADT_Symbol) && $isSubtypeOf($P1Type, ADT_Symbol)){ + $result = (IValue)Type_lub$0dbf401cac8b4535((IConstructor) $P0, (IConstructor) $P1); + if($result != null) return $result; + $result = (IValue)Type_lub$ec1dccaf2da25afa((IConstructor) $P0, (IConstructor) $P1); + if($result != null) return $result; + $result = (IValue)Type_lub$734046054ee464ba((IConstructor) $P0, (IConstructor) $P1); + if($result != null) return $result; + $result = (IValue)Type_lub$4b68476103d104fd((IConstructor) $P0, (IConstructor) $P1); + if($result != null) return $result; + $result = (IValue)Type_lub$111a6137b422fe0a((IConstructor) $P0, (IConstructor) $P1); + if($result != null) return $result; + $result = (IValue)Type_lub$458a19628ff06574((IConstructor) $P0, (IConstructor) $P1); + if($result != null) return $result; + $result = (IValue)Type_lub$286a95d36c4d9271((IConstructor) $P0, (IConstructor) $P1); + if($result != null) return $result; + } + break; + case -1322071552: + if($isSubtypeOf($P0Type, ADT_Symbol) && $isSubtypeOf($P1Type, ADT_Symbol)){ + $result = (IValue)Type_lub$2bf17a517ba3b924((IConstructor) $P0, (IConstructor) $P1); + if($result != null) return $result; + } + break; + case 26641768: + if($isSubtypeOf($P0Type, ADT_Symbol) && $isSubtypeOf($P1Type, ADT_Symbol)){ + $result = (IValue)Type_lub$7a4636c028a0a06c((IConstructor) $P0, (IConstructor) $P1); + if($result != null) return $result; + $result = (IValue)Type_lub$cdf48c3a28135a1b((IConstructor) $P0, (IConstructor) $P1); + if($result != null) return $result; + $result = (IValue)Type_lub$89bf39f91d0c3172((IConstructor) $P0, (IConstructor) $P1); + if($result != null) return $result; + $result = (IValue)Type_lub$363046ae837d0ed7((IConstructor) $P0, (IConstructor) $P1); + if($result != null) return $result; + $result = (IValue)Type_lub$57f39e76485c88cd((IConstructor) $P0, (IConstructor) $P1); + if($result != null) return $result; + $result = (IValue)Type_lub$ea0cf15c1bb98cd7((IConstructor) $P0, (IConstructor) $P1); + if($result != null) return $result; + $result = (IValue)Type_lub$1ce55522faa742da((IConstructor) $P0, (IConstructor) $P1); + if($result != null) return $result; + } + break; + case 778304: + if($isSubtypeOf($P0Type, ADT_Symbol) && $isSubtypeOf($P1Type, ADT_Symbol)){ + $result = (IValue)Type_lub$fdf7de38b8e6e752((IConstructor) $P0, (IConstructor) $P1); + if($result != null) return $result; + } + break; + case 100948096: + if($isSubtypeOf($P0Type, ADT_Symbol) && $isSubtypeOf($P1Type, ADT_Symbol)){ + $result = (IValue)Type_lub$21fcb18b79a5d185((IConstructor) $P0, (IConstructor) $P1); + if($result != null) return $result; + } + break; + case 112955840: + if($isSubtypeOf($P0Type, ADT_Symbol) && $isSubtypeOf($P1Type, ADT_Symbol)){ + $result = (IValue)Type_lub$4c51769afaf2977a((IConstructor) $P0, (IConstructor) $P1); + if($result != null) return $result; + $result = (IValue)Type_lub$ba70259261126d74((IConstructor) $P0, (IConstructor) $P1); + if($result != null) return $result; + } + break; + case 1542928: + if($isSubtypeOf($P0Type, ADT_Symbol) && $isSubtypeOf($P1Type, ADT_Symbol)){ + $result = (IValue)Type_lub$9f97945a73fdc528((IConstructor) $P0, (IConstructor) $P1); + if($result != null) return $result; + $result = (IValue)Type_lub$a720eedc169409ce((IConstructor) $P0, (IConstructor) $P1); + if($result != null) return $result; + $result = (IValue)Type_lub$771c2324f17afc4f((IConstructor) $P0, (IConstructor) $P1); + if($result != null) return $result; + $result = (IValue)Type_lub$03e04b7cfdcf0b97((IConstructor) $P0, (IConstructor) $P1); + if($result != null) return $result; + $result = (IValue)Type_lub$4d768567dbe9a5cf((IConstructor) $P0, (IConstructor) $P1); + if($result != null) return $result; + } + break; + case 885800512: + if($isSubtypeOf($P0Type, ADT_Symbol) && $isSubtypeOf($P1Type, ADT_Symbol)){ + $result = (IValue)Type_lub$24cbcbc48e7f84f7((IConstructor) $P0, (IConstructor) $P1); + if($result != null) return $result; + $result = (IValue)Type_lub$c4a2a53eec0c75c1((IConstructor) $P0, (IConstructor) $P1); + if($result != null) return $result; + $result = (IValue)Type_lub$3cb3aedf8aed5365((IConstructor) $P0, (IConstructor) $P1); + if($result != null) return $result; + $result = (IValue)Type_lub$a95613250b5d7982((IConstructor) $P0, (IConstructor) $P1); + if($result != null) return $result; + $result = (IValue)Type_lub$645ef43b093722bb((IConstructor) $P0, (IConstructor) $P1); + if($result != null) return $result; + } + break; + } + if($isSubtypeOf($P0Type, ADT_Symbol) && $isSubtypeOf($P1Type, ADT_Symbol)){ + $result = (IValue)Type_lub$f7177db64f5afb02((IConstructor) $P0, (IConstructor) $P1); + if($result != null) return $result; + $result = (IValue)Type_lub$8b44730d15ad9495((IConstructor) $P0, (IConstructor) $P1); + if($result != null) return $result; + $result = (IValue)Type_lub$02594451bbb24254((IConstructor) $P0, (IConstructor) $P1); + if($result != null) return $result; + $result = (IValue)Type_lub$bc35bf8a90c0c581((IConstructor) $P0, (IConstructor) $P1); + if($result != null) return $result; + $result = (IValue)Type_lub$ce2d305ea2a296ea((IConstructor) $P0, (IConstructor) $P1); + if($result != null) return $result; + $result = (IValue)Type_lub$5cff2f0984f8ab98((IConstructor) $P0, (IConstructor) $P1); + if($result != null) return $result; + $result = (IValue)Type_lub$7399cb4ee7561f75((IConstructor) $P0, (IConstructor) $P1); + if($result != null) return $result; + $result = (IValue)Type_lub$126762fa2597c906((IConstructor) $P0, (IConstructor) $P1); + if($result != null) return $result; + $result = (IValue)Type_lub$7dfd4aaa3c2fb078((IConstructor) $P0, (IConstructor) $P1); + if($result != null) return $result; + $result = (IValue)Type_lub$e906ecba7e33c9ab((IConstructor) $P0, (IConstructor) $P1); + if($result != null) return $result; + $result = (IValue)Type_lub$3baf3045e8079ba6((IConstructor) $P0, (IConstructor) $P1); + if($result != null) return $result; + $result = (IValue)Type_lub$1f474fa5fa994fad((IConstructor) $P0, (IConstructor) $P1); + if($result != null) return $result; + $result = (IValue)Type_lub$28f89ecd1e2960ee((IConstructor) $P0, (IConstructor) $P1); + if($result != null) return $result; + $result = (IValue)Type_lub$578d8f8156ab8f3c((IConstructor) $P0, (IConstructor) $P1); + if($result != null) return $result; + $result = (IValue)Type_lub$fe83795f0144eb99((IConstructor) $P0, (IConstructor) $P1); + if($result != null) return $result; + $result = (IValue)Type_lub$d06daffd5ad013e1((IConstructor) $P0, (IConstructor) $P1); + if($result != null) return $result; + $result = (IValue)Type_lub$2cd9a56d59418ef9((IConstructor) $P0, (IConstructor) $P1); + if($result != null) return $result; + $result = (IValue)Type_lub$3503ff016335f16b((IConstructor) $P0, (IConstructor) $P1); + if($result != null) return $result; + $result = (IValue)Type_lub$df08b24dcf17ae58((IConstructor) $P0, (IConstructor) $P1); + if($result != null) return $result; + $result = (IValue)Type_lub$afcfe5adb1fb93eb((IConstructor) $P0, (IConstructor) $P1); + if($result != null) return $result; + $result = (IValue)Type_lub$d3a3e906a73734c7((IConstructor) $P0, (IConstructor) $P1); + if($result != null) return $result; + } + if($isSubtypeOf($P0Type,$T0) && $isSubtypeOf($P1Type,$T0)){ + $result = (IValue)Type_lub$b4ef79728aa03e7e((IList) $P0, (IList) $P1); + if($result != null) return $result; + } + if($isSubtypeOf($P0Type, ADT_Symbol) && $isSubtypeOf($P1Type, ADT_Symbol)){ + $result = (IValue)Type_lub$f318ce489488a1e6((IConstructor) $P0, (IConstructor) $P1); + if($result != null) return $result; + } + if($isSubtypeOf($P0Type,$T0) && $isSubtypeOf($P1Type,$T0)){ + $result = (IValue)Type_lub$2ad0993f943ef630((IList) $P0, (IList) $P1); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0, $P1)); + } + public IBool comparable(IValue $P0, IValue $P1){ // Generated by Resolver + IBool $result = null; + Type $P0Type = $P0.getType(); + Type $P1Type = $P1.getType(); + if($isSubtypeOf($P0Type, ADT_Symbol) && $isSubtypeOf($P1Type, ADT_Symbol)){ + $result = (IBool)Type_comparable$f7b7abd45db5e5d1((IConstructor) $P0, (IConstructor) $P1); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0, $P1)); + } + public IBool subtype(IValue $P0, IValue $P1){ // Generated by Resolver + IBool $result = null; + Type $P0Type = $P0.getType(); + Type $P1Type = $P1.getType(); + switch(Fingerprint.getFingerprint($P0)){ + + case 1643638592: + if($isSubtypeOf($P0Type, ADT_Symbol) && $isSubtypeOf($P1Type, ADT_Symbol)){ + $result = (IBool)Type_subtype$162da85a0f5a9f0d((IConstructor) $P0, (IConstructor) $P1); + if($result != null) return $result; + } + break; + case 26576112: + if($isSubtypeOf($P0Type, ADT_Symbol) && $isSubtypeOf($P1Type, ADT_Symbol)){ + $result = (IBool)Type_subtype$258479665eae36af((IConstructor) $P0, (IConstructor) $P1); + if($result != null) return $result; + $result = (IBool)Type_subtype$0462d461bde80a82((IConstructor) $P0, (IConstructor) $P1); + if($result != null) return $result; + } + break; + case 1725888: + if($isSubtypeOf($P0Type, ADT_Symbol) && $isSubtypeOf($P1Type, ADT_Symbol)){ + $result = (IBool)Type_subtype$f6957636a33615ae((IConstructor) $P0, (IConstructor) $P1); + if($result != null) return $result; + } + break; + case 1206598288: + if($isSubtypeOf($P0Type, ADT_Symbol) && $isSubtypeOf($P1Type, ADT_Symbol)){ + $result = (IBool)Type_subtype$b674428cffef84bc((IConstructor) $P0, (IConstructor) $P1); + if($result != null) return $result; + } + break; + case 97904160: + if($isSubtypeOf($P0Type, ADT_Symbol) && $isSubtypeOf($P1Type, ADT_Symbol)){ + $result = (IBool)Type_subtype$98167e340333c9a5((IConstructor) $P0, (IConstructor) $P1); + if($result != null) return $result; + $result = (IBool)Type_subtype$4fe5b133e2ee1de9((IConstructor) $P0, (IConstructor) $P1); + if($result != null) return $result; + } + break; + case 910096: + if($isSubtypeOf($P0Type, ADT_Symbol) && $isSubtypeOf($P1Type, ADT_Symbol)){ + $result = (IBool)Type_subtype$ca59d9bf5276e15d((IConstructor) $P0, (IConstructor) $P1); + if($result != null) return $result; + $result = (IBool)Type_subtype$e77633ea9a4ac6a5((IConstructor) $P0, (IConstructor) $P1); + if($result != null) return $result; + } + break; + case 902344: + if($isSubtypeOf($P0Type, ADT_Symbol) && $isSubtypeOf($P1Type, ADT_Symbol)){ + $result = (IBool)Type_subtype$21c6b8b775030d1d((IConstructor) $P0, (IConstructor) $P1); + if($result != null) return $result; + $result = (IBool)Type_subtype$98e19b11a09faf67((IConstructor) $P0, (IConstructor) $P1); + if($result != null) return $result; + } + break; + case -1322071552: + if($isSubtypeOf($P0Type, ADT_Symbol) && $isSubtypeOf($P1Type, ADT_Symbol)){ + $result = (IBool)Type_subtype$0862159b9fa78cf9((IConstructor) $P0, (IConstructor) $P1); + if($result != null) return $result; + } + break; + case 26641768: + if($isSubtypeOf($P0Type, ADT_Symbol) && $isSubtypeOf($P1Type, ADT_Symbol)){ + $result = (IBool)Type_subtype$ab363c241c416a71((IConstructor) $P0, (IConstructor) $P1); + if($result != null) return $result; + $result = (IBool)Type_subtype$4de9a977591be6e5((IConstructor) $P0, (IConstructor) $P1); + if($result != null) return $result; + } + break; + case 778304: + if($isSubtypeOf($P0Type, ADT_Symbol) && $isSubtypeOf($P1Type, ADT_Symbol)){ + $result = (IBool)Type_subtype$23f59dc1171dc69d((IConstructor) $P0, (IConstructor) $P1); + if($result != null) return $result; + } + break; + case 100948096: + if($isSubtypeOf($P0Type, ADT_Symbol) && $isSubtypeOf($P1Type, ADT_Symbol)){ + $result = (IBool)Type_subtype$ddf53e134f4d5416((IConstructor) $P0, (IConstructor) $P1); + if($result != null) return $result; + } + break; + case 112955840: + if($isSubtypeOf($P0Type, ADT_Symbol) && $isSubtypeOf($P1Type, ADT_Symbol)){ + $result = (IBool)Type_subtype$bc5943e83a6df899((IConstructor) $P0, (IConstructor) $P1); + if($result != null) return $result; + $result = (IBool)Type_subtype$282ad33dd55efdcc((IConstructor) $P0, (IConstructor) $P1); + if($result != null) return $result; + } + break; + case 1542928: + if($isSubtypeOf($P0Type, ADT_Symbol) && $isSubtypeOf($P1Type, ADT_Symbol)){ + $result = (IBool)Type_subtype$5f5250bbf1aff423((IConstructor) $P0, (IConstructor) $P1); + if($result != null) return $result; + $result = (IBool)Type_subtype$15cedff9916fdbee((IConstructor) $P0, (IConstructor) $P1); + if($result != null) return $result; + } + break; + case 885800512: + if($isSubtypeOf($P0Type, ADT_Symbol) && $isSubtypeOf($P1Type, ADT_Symbol)){ + $result = (IBool)Type_subtype$44422dfea95218a8((IConstructor) $P0, (IConstructor) $P1); + if($result != null) return $result; + } + break; + } + if($isSubtypeOf($P0Type,$T0) && $isSubtypeOf($P1Type,$T0)){ + $result = (IBool)Type_subtype$e6962df5576407da((IList) $P0, (IList) $P1); + if($result != null) return $result; + } + if($isSubtypeOf($P0Type, ADT_Symbol) && $isSubtypeOf($P1Type, ADT_Symbol)){ + $result = (IBool)Type_subtype$cfecefb3bc3fa773((IConstructor) $P0, (IConstructor) $P1); + if($result != null) return $result; + $result = (IBool)Type_subtype$53c4de769757bddc((IConstructor) $P0, (IConstructor) $P1); + if($result != null) return $result; + $result = (IBool)Type_subtype$2750c116f0b05084((IConstructor) $P0, (IConstructor) $P1); + if($result != null) return $result; + $result = (IBool)Type_subtype$39fbab80e9db10e1((IConstructor) $P0, (IConstructor) $P1); + if($result != null) return $result; + $result = (IBool)Type_subtype$3eada106dbc66d2d((IConstructor) $P0, (IConstructor) $P1); + if($result != null) return $result; + $result = (IBool)Type_subtype$30215aaed6c33fd7((IConstructor) $P0, (IConstructor) $P1); + if($result != null) return $result; + $result = (IBool)Type_subtype$1b2387a35f10c1e0((IConstructor) $P0, (IConstructor) $P1); + if($result != null) return $result; + $result = (IBool)Type_subtype$80633493313ebd18((IConstructor) $P0, (IConstructor) $P1); + if($result != null) return $result; + $result = (IBool)Type_subtype$3aa09e73e41fcf84((IConstructor) $P0, (IConstructor) $P1); + if($result != null) return $result; + } + if($isSubtypeOf($P0Type,$T5) && $isSubtypeOf($P1Type,$T9)){ + $result = (IBool)Type_subtype$7b9c005ac35dd586((IConstructor) $P0, (IConstructor) $P1); + if($result != null) return $result; + } + if($isSubtypeOf($P0Type, ADT_Symbol) && $isSubtypeOf($P1Type, ADT_Symbol)){ + $result = (IBool)Type_subtype$06d2c71d010480ef((IConstructor) $P0, (IConstructor) $P1); + if($result != null) return $result; + } + if($isSubtypeOf($P0Type,$T0) && $isSubtypeOf($P1Type,$T0)){ + $result = (IBool)Type_subtype$812a7f34ff841fdb((IList) $P0, (IList) $P1); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0, $P1)); + } + public IBool noneLabeled(IValue $P0){ // Generated by Resolver + IBool $result = null; + Type $P0Type = $P0.getType(); + if($isSubtypeOf($P0Type,$T0)){ + $result = (IBool)Type_noneLabeled$59f0d0b15364377f((IList) $P0); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0)); + } + public IBool isFunctionType(IValue $P0){ // Generated by Resolver + IBool $result = null; + Type $P0Type = $P0.getType(); + switch(Fingerprint.getFingerprint($P0)){ + + case 1643638592: + if($isSubtypeOf($P0Type, ADT_Symbol)){ + $result = (IBool)Type_isFunctionType$25cdd570591a3b3f((IConstructor) $P0); + if($result != null) return $result; + } + break; + case 1206598288: + if($isSubtypeOf($P0Type, ADT_Symbol)){ + $result = (IBool)Type_isFunctionType$d383dd66853ee549((IConstructor) $P0); + if($result != null) return $result; + } + break; + case -1322071552: + if($isSubtypeOf($P0Type, ADT_Symbol)){ + $result = (IBool)Type_isFunctionType$cdb5ce9942d16bd2((IConstructor) $P0); + if($result != null) return $result; + } + break; + case 100948096: + if($isSubtypeOf($P0Type, ADT_Symbol)){ + $result = (IBool)Type_isFunctionType$670ad7351fb38cc0((IConstructor) $P0); + if($result != null) return $result; + } + break; + } + if($isSubtypeOf($P0Type, ADT_Symbol)){ + $result = (IBool)Type_isFunctionType$50a9927a87b4bf31((IConstructor) $P0); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0)); + } + public IBool isIntType(IValue $P0){ // Generated by Resolver + IBool $result = null; + Type $P0Type = $P0.getType(); + switch(Fingerprint.getFingerprint($P0)){ + + case 1643638592: + if($isSubtypeOf($P0Type, ADT_Symbol)){ + $result = (IBool)Type_isIntType$8b21ce695f297291((IConstructor) $P0); + if($result != null) return $result; + } + break; + case 1206598288: + if($isSubtypeOf($P0Type, ADT_Symbol)){ + $result = (IBool)Type_isIntType$bad3a4974e63bce6((IConstructor) $P0); + if($result != null) return $result; + } + break; + case -1322071552: + if($isSubtypeOf($P0Type, ADT_Symbol)){ + $result = (IBool)Type_isIntType$609e2442e96ec30b((IConstructor) $P0); + if($result != null) return $result; + } + break; + } + if($isSubtypeOf($P0Type, ADT_Symbol)){ + $result = (IBool)Type_isIntType$ea27a84c58784f0e((IConstructor) $P0); + if($result != null) return $result; + $result = (IBool)Type_isIntType$51bf141928a07cf0((IConstructor) $P0); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0)); + } + public IBool isDateTimeType(IValue $P0){ // Generated by Resolver + IBool $result = null; + Type $P0Type = $P0.getType(); + switch(Fingerprint.getFingerprint($P0)){ + + case 1643638592: + if($isSubtypeOf($P0Type, ADT_Symbol)){ + $result = (IBool)Type_isDateTimeType$db79d83909345377((IConstructor) $P0); + if($result != null) return $result; + } + break; + case 1206598288: + if($isSubtypeOf($P0Type, ADT_Symbol)){ + $result = (IBool)Type_isDateTimeType$5e2f6f86adbeae05((IConstructor) $P0); + if($result != null) return $result; + } + break; + case -1322071552: + if($isSubtypeOf($P0Type, ADT_Symbol)){ + $result = (IBool)Type_isDateTimeType$8f25f84f6afb443d((IConstructor) $P0); + if($result != null) return $result; + } + break; + } + if($isSubtypeOf($P0Type, ADT_Symbol)){ + $result = (IBool)Type_isDateTimeType$bb2c79987fe265e6((IConstructor) $P0); + if($result != null) return $result; + $result = (IBool)Type_isDateTimeType$af85ab799baee4b4((IConstructor) $P0); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0)); + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Type.rsc|(3902,231,<119,0>,<121,57>) + public IConstructor Type_var_func$33d788c08f15290a(IConstructor ret_0, IList parameters_1, IConstructor varArg_2){ + + + return ((IConstructor)($RVF.constructor(Symbol_func_Symbol_list_Symbol_list_Symbol, new IValue[]{((IConstructor)ret_0), ((IList)($alist_add_elm(((IList)parameters_1),((IConstructor)($RVF.constructor(Symbol_list_Symbol, new IValue[]{((IConstructor)varArg_2)})))))), ((IList)$constants.get(0)/*[]*/)}))); + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Type.rsc|(4137,995,<125,0>,<154,1>) + public IConstructor Type_choice$1fd88c645dec3500(IConstructor s_0, ISet choices_1){ + + + /*muExists*/IF3: + do { + IBool $done3 = (IBool)(((IBool)$constants.get(1)/*true*/)); + /*muExists*/$ANY4_GEN4422_CONS_choice: + do { + $ANY4_GEN4422: + for(IValue $elem5_for : ((ISet)choices_1)){ + IConstructor $elem5 = (IConstructor) $elem5_for; + if($has_type_and_arity($elem5, Production_choice_Symbol_set_Production, 2)){ + IValue $arg0_7 = (IValue)($aadt_subscript_int(((IConstructor)($elem5)),0)); + if($isComparable($arg0_7.getType(), ADT_Symbol)){ + IValue $arg1_6 = (IValue)($aadt_subscript_int(((IConstructor)($elem5)),1)); + if($isComparable($arg1_6.getType(), $T3)){ + $done3 = ((IBool)$constants.get(2)/*false*/); + break $ANY4_GEN4422_CONS_choice; // muSucceed + } else { + continue $ANY4_GEN4422; + } + } else { + continue $ANY4_GEN4422; + } + } else { + continue $ANY4_GEN4422; + } + } + + + } while(false); + if((((IBool)($done3))).getValue()){ + return null; + } + + } while(false); + IBool changed_2 = ((IBool)$constants.get(2)/*false*/); + ISet new_choices_3 = ((ISet)$constants.get(3)/*{}*/); + /*muExists*/FOR0: + do { + FOR0_GEN4799: + for(IValue $elem2_for : ((ISet)choices_1)){ + IConstructor $elem2 = (IConstructor) $elem2_for; + IConstructor ch_4 = null; + if($has_type_and_arity($elem2, Production_choice_Symbol_set_Production, 2)){ + IValue $arg0_1 = (IValue)($aadt_subscript_int(((IConstructor)($elem2)),0)); + if($isComparable($arg0_1.getType(), ADT_Symbol)){ + IValue $arg1_0 = (IValue)($aadt_subscript_int(((IConstructor)($elem2)),1)); + if($isComparable($arg1_0.getType(), $T3)){ + ISet b_5 = null; + changed_2 = ((IBool)$constants.get(1)/*true*/); + new_choices_3 = ((ISet)($aset_add_aset(((ISet)new_choices_3),((ISet)($arg1_0))))); + + } else { + new_choices_3 = ((ISet)($aset_add_elm(((ISet)new_choices_3),((IConstructor)($elem2))))); + + } + } else { + new_choices_3 = ((ISet)($aset_add_elm(((ISet)new_choices_3),((IConstructor)($elem2))))); + + } + } else { + new_choices_3 = ((ISet)($aset_add_elm(((ISet)new_choices_3),((IConstructor)($elem2))))); + + } + } + continue FOR0; + + } while(false); + /* void: muCon([]) */if((((IBool)changed_2)).getValue()){ + return ((IConstructor)($me.choice(((IConstructor)s_0), ((ISet)new_choices_3)))); + + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Type.rsc|(5353,482,<162,0>,<168,74>) + public IBool Type_subtype$7b9c005ac35dd586(IConstructor t_0, IConstructor u_1){ + + + HashMap $typeBindings = new HashMap<>(); + if($T5.match(t_0.getType(), $typeBindings)){ + if($T9.match(u_1.getType(), $typeBindings)){ + final IBool $result8 = ((IBool)($me.subtype(((IValue)(((IConstructor)($areified_get_field(t_0, "symbol"))))), ((IValue)(((IConstructor)($areified_get_field(u_1, "symbol")))))))); + if($T20.instantiate($typeBindings) != $TF.voidType() && $isSubtypeOf($result8.getType(),$T20)){ + return ((IBool)($result8)); + + } else { + return ((IBool)$constants.get(2)/*false*/); + + } + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Type.rsc|(5837,136,<170,0>,<171,40>) + public IBool Type_subtype$cfecefb3bc3fa773(IConstructor s_0, IConstructor s){ + + + if((s_0 != null)){ + if(s_0.match(s)){ + return ((IBool)$constants.get(1)/*true*/); + + } else { + return null; + } + } else { + s_0 = ((IConstructor)s); + return ((IBool)$constants.get(1)/*true*/); + + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Type.rsc|(5974,56,<172,0>,<172,56>) + public IBool Type_subtype$06d2c71d010480ef(IConstructor s_0, IConstructor t_1){ + + + return ((IBool)$constants.get(2)/*false*/); + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Type.rsc|(6032,55,<174,0>,<174,55>) + public IBool Type_subtype$53c4de769757bddc(IConstructor $__0, IConstructor $1){ + + + if($has_type_and_arity($1, Symbol_value_, 0)){ + return ((IBool)$constants.get(1)/*true*/); + + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Type.rsc|(6088,54,<175,0>,<175,54>) + public IBool Type_subtype$2750c116f0b05084(IConstructor $0, IConstructor $__1){ + + + if($has_type_and_arity($0, Symbol_void_, 0)){ + return ((IBool)$constants.get(1)/*true*/); + + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Type.rsc|(6143,74,<176,0>,<176,74>) + public IBool Type_subtype$98167e340333c9a5(IConstructor $0, IConstructor a){ + + + if($has_type_and_arity($0, Symbol_cons_Symbol_str_list_Symbol, 3)){ + IValue $arg0_11 = (IValue)($aadt_subscript_int(((IConstructor)$0),0)); + if($isComparable($arg0_11.getType(), ADT_Symbol)){ + IConstructor a_0 = null; + IValue $arg1_10 = (IValue)($aadt_subscript_int(((IConstructor)$0),1)); + if($isComparable($arg1_10.getType(), $T4)){ + IValue $arg2_9 = (IValue)($aadt_subscript_int(((IConstructor)$0),2)); + if($isComparable($arg2_9.getType(), $T0)){ + if(($arg0_11 != null)){ + if($arg0_11.match($arg0_11)){ + return ((IBool)$constants.get(1)/*true*/); + + } else { + return null; + } + } else { + $arg0_11 = ((IValue)($arg0_11)); + return ((IBool)$constants.get(1)/*true*/); + + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Type.rsc|(6218,128,<177,0>,<177,128>) + public IBool Type_subtype$4fe5b133e2ee1de9(IConstructor $0, IConstructor $1){ + + + if($has_type_and_arity($0, Symbol_cons_Symbol_str_list_Symbol, 3)){ + IValue $arg0_17 = (IValue)($aadt_subscript_int(((IConstructor)$0),0)); + if($isComparable($arg0_17.getType(), ADT_Symbol)){ + IConstructor a_0 = null; + IValue $arg1_16 = (IValue)($aadt_subscript_int(((IConstructor)$0),1)); + if($isComparable($arg1_16.getType(), $T13)){ + IString name_1 = null; + IValue $arg2_15 = (IValue)($aadt_subscript_int(((IConstructor)$0),2)); + if($isComparable($arg2_15.getType(), $T0)){ + IList ap_2 = null; + if($has_type_and_arity($1, Symbol_cons_Symbol_str_list_Symbol, 3)){ + IValue $arg0_14 = (IValue)($aadt_subscript_int(((IConstructor)$1),0)); + if($isComparable($arg0_14.getType(), ADT_Symbol)){ + if(($arg0_17 != null)){ + if($arg0_17.match($arg0_14)){ + IValue $arg1_13 = (IValue)($aadt_subscript_int(((IConstructor)$1),1)); + if($isComparable($arg1_13.getType(), $T13)){ + if(($arg1_16 != null)){ + if($arg1_16.match($arg1_13)){ + IValue $arg2_12 = (IValue)($aadt_subscript_int(((IConstructor)$1),2)); + if($isComparable($arg2_12.getType(), $T0)){ + IList bp_3 = null; + return ((IBool)($me.subtype(((IValue)($arg2_15)), ((IValue)($arg2_12))))); + + } else { + return null; + } + } else { + return null; + } + } else { + $arg1_16 = ((IValue)($arg1_13)); + IValue $arg2_12 = (IValue)($aadt_subscript_int(((IConstructor)$1),2)); + if($isComparable($arg2_12.getType(), $T0)){ + IList bp_3 = null; + return ((IBool)($me.subtype(((IValue)($arg2_15)), ((IValue)($arg2_12))))); + + } else { + return null; + } + } + } else { + return null; + } + } else { + return null; + } + } else { + $arg0_17 = ((IValue)($arg0_14)); + IValue $arg1_13 = (IValue)($aadt_subscript_int(((IConstructor)$1),1)); + if($isComparable($arg1_13.getType(), $T13)){ + if(($arg1_16 != null)){ + if($arg1_16.match($arg1_13)){ + IValue $arg2_12 = (IValue)($aadt_subscript_int(((IConstructor)$1),2)); + if($isComparable($arg2_12.getType(), $T0)){ + IList bp_3 = null; + return ((IBool)($me.subtype(((IValue)($arg2_15)), ((IValue)($arg2_12))))); + + } else { + return null; + } + } else { + return null; + } + } else { + $arg1_16 = ((IValue)($arg1_13)); + IValue $arg2_12 = (IValue)($aadt_subscript_int(((IConstructor)$1),2)); + if($isComparable($arg2_12.getType(), $T0)){ + IList bp_3 = null; + return ((IBool)($me.subtype(((IValue)($arg2_15)), ((IValue)($arg2_12))))); + + } else { + return null; + } + } + } else { + return null; + } + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Type.rsc|(6347,81,<178,0>,<178,81>) + public IBool Type_subtype$5f5250bbf1aff423(IConstructor $0, IConstructor $1){ + + + if($has_type_and_arity($0, Symbol_adt_str_list_Symbol, 2)){ + IValue $arg0_19 = (IValue)($aadt_subscript_int(((IConstructor)$0),0)); + if($isComparable($arg0_19.getType(), $T2)){ + IValue $arg1_18 = (IValue)($aadt_subscript_int(((IConstructor)$0),1)); + if($isComparable($arg1_18.getType(), $T0)){ + if($has_type_and_arity($1, Symbol_node_, 0)){ + return ((IBool)$constants.get(1)/*true*/); + + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Type.rsc|(6429,106,<179,0>,<179,106>) + public IBool Type_subtype$15cedff9916fdbee(IConstructor $0, IConstructor $1){ + + + if($has_type_and_arity($0, Symbol_adt_str_list_Symbol, 2)){ + IValue $arg0_23 = (IValue)($aadt_subscript_int(((IConstructor)$0),0)); + if($isComparable($arg0_23.getType(), $T2)){ + IString n_0 = null; + IValue $arg1_22 = (IValue)($aadt_subscript_int(((IConstructor)$0),1)); + if($isComparable($arg1_22.getType(), $T0)){ + IList l_1 = null; + if($has_type_and_arity($1, Symbol_adt_str_list_Symbol, 2)){ + IValue $arg0_21 = (IValue)($aadt_subscript_int(((IConstructor)$1),0)); + if($isComparable($arg0_21.getType(), $T2)){ + if(($arg0_23 != null)){ + if($arg0_23.match($arg0_21)){ + IValue $arg1_20 = (IValue)($aadt_subscript_int(((IConstructor)$1),1)); + if($isComparable($arg1_20.getType(), $T0)){ + IList r_2 = null; + return ((IBool)($me.subtype(((IValue)($arg1_22)), ((IValue)($arg1_20))))); + + } else { + return null; + } + } else { + return null; + } + } else { + $arg0_23 = ((IValue)($arg0_21)); + IValue $arg1_20 = (IValue)($aadt_subscript_int(((IConstructor)$1),1)); + if($isComparable($arg1_20.getType(), $T0)){ + IList r_2 = null; + return ((IBool)($me.subtype(((IValue)($arg1_22)), ((IValue)($arg1_20))))); + + } else { + return null; + } + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Type.rsc|(6536,107,<180,0>,<180,107>) + public IBool Type_subtype$0862159b9fa78cf9(IConstructor $0, IConstructor r_1){ + + + if($has_type_and_arity($0, Symbol_alias_str_list_Symbol_Symbol, 3)){ + IValue $arg0_26 = (IValue)($aadt_subscript_int(((IConstructor)$0),0)); + if($isComparable($arg0_26.getType(), $T2)){ + IValue $arg1_25 = (IValue)($aadt_subscript_int(((IConstructor)$0),1)); + if($isComparable($arg1_25.getType(), $T0)){ + IValue $arg2_24 = (IValue)($aadt_subscript_int(((IConstructor)$0),2)); + if($isComparable($arg2_24.getType(), ADT_Symbol)){ + IConstructor aliased_0 = null; + return ((IBool)($me.subtype(((IValue)($arg2_24)), ((IValue)r_1)))); + + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Type.rsc|(6644,99,<181,0>,<181,99>) + public IBool Type_subtype$39fbab80e9db10e1(IConstructor l_0, IConstructor $1){ + + + if($has_type_and_arity($1, Symbol_alias_str_list_Symbol_Symbol, 3)){ + IValue $arg0_29 = (IValue)($aadt_subscript_int(((IConstructor)$1),0)); + if($isComparable($arg0_29.getType(), $T2)){ + IValue $arg1_28 = (IValue)($aadt_subscript_int(((IConstructor)$1),1)); + if($isComparable($arg1_28.getType(), $T0)){ + IValue $arg2_27 = (IValue)($aadt_subscript_int(((IConstructor)$1),2)); + if($isComparable($arg2_27.getType(), ADT_Symbol)){ + IConstructor aliased_1 = null; + return ((IBool)($me.subtype(((IValue)l_0), ((IValue)($arg2_27))))); + + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Type.rsc|(6744,59,<182,0>,<182,59>) + public IBool Type_subtype$3eada106dbc66d2d(IConstructor $0, IConstructor $1){ + + + if($has_type_and_arity($0, Symbol_int_, 0)){ + if($has_type_and_arity($1, Symbol_num_, 0)){ + return ((IBool)$constants.get(1)/*true*/); + + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Type.rsc|(6804,59,<183,0>,<183,59>) + public IBool Type_subtype$30215aaed6c33fd7(IConstructor $0, IConstructor $1){ + + + if($has_type_and_arity($0, Symbol_rat_, 0)){ + if($has_type_and_arity($1, Symbol_num_, 0)){ + return ((IBool)$constants.get(1)/*true*/); + + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Type.rsc|(6864,60,<184,0>,<184,60>) + public IBool Type_subtype$1b2387a35f10c1e0(IConstructor $0, IConstructor $1){ + + + if($has_type_and_arity($0, Symbol_real_, 0)){ + if($has_type_and_arity($1, Symbol_num_, 0)){ + return ((IBool)$constants.get(1)/*true*/); + + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Type.rsc|(6925,92,<185,0>,<185,92>) + public IBool Type_subtype$44422dfea95218a8(IConstructor $0, IConstructor $1){ + + + if($has_type_and_arity($0, Symbol_tuple_list_Symbol, 1)){ + IValue $arg0_31 = (IValue)($aadt_subscript_int(((IConstructor)$0),0)); + if($isComparable($arg0_31.getType(), $T0)){ + IList l_0 = null; + if($has_type_and_arity($1, Symbol_tuple_list_Symbol, 1)){ + IValue $arg0_30 = (IValue)($aadt_subscript_int(((IConstructor)$1),0)); + if($isComparable($arg0_30.getType(), $T0)){ + IList r_1 = null; + return ((IBool)($me.subtype(((IValue)($arg0_31)), ((IValue)($arg0_30))))); + + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Type.rsc|(7036,86,<188,0>,<188,86>) + public IBool Type_subtype$258479665eae36af(IConstructor $0, IConstructor $1){ + + + if($has_type_and_arity($0, Symbol_list_Symbol, 1)){ + IValue $arg0_33 = (IValue)($aadt_subscript_int(((IConstructor)$0),0)); + if($isComparable($arg0_33.getType(), ADT_Symbol)){ + IConstructor s_0 = null; + if($has_type_and_arity($1, Symbol_list_Symbol, 1)){ + IValue $arg0_32 = (IValue)($aadt_subscript_int(((IConstructor)$1),0)); + if($isComparable($arg0_32.getType(), ADT_Symbol)){ + IConstructor t_1 = null; + return ((IBool)($me.subtype(((IValue)($arg0_33)), ((IValue)($arg0_32))))); + + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Type.rsc|(7124,98,<189,0>,<189,98>) + public IBool Type_subtype$ab363c241c416a71(IConstructor $0, IConstructor $1){ + + + if($has_type_and_arity($0, Symbol_lrel_list_Symbol, 1)){ + IValue $arg0_35 = (IValue)($aadt_subscript_int(((IConstructor)$0),0)); + if($isComparable($arg0_35.getType(), $T0)){ + IList l_0 = null; + if($has_type_and_arity($1, Symbol_lrel_list_Symbol, 1)){ + IValue $arg0_34 = (IValue)($aadt_subscript_int(((IConstructor)$1),0)); + if($isComparable($arg0_34.getType(), $T0)){ + IList r_1 = null; + return ((IBool)($me.subtype(((IValue)($arg0_35)), ((IValue)($arg0_34))))); + + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Type.rsc|(7479,108,<195,0>,<195,108>) + public IBool Type_subtype$0462d461bde80a82(IConstructor $0, IConstructor $1){ + + + if($has_type_and_arity($0, Symbol_list_Symbol, 1)){ + IValue $arg0_37 = (IValue)($aadt_subscript_int(((IConstructor)$0),0)); + if($isComparable($arg0_37.getType(), ADT_Symbol)){ + IConstructor s_0 = null; + if($has_type_and_arity($1, Symbol_lrel_list_Symbol, 1)){ + IValue $arg0_36 = (IValue)($aadt_subscript_int(((IConstructor)$1),0)); + if($isComparable($arg0_36.getType(), $T0)){ + IList r_1 = null; + return ((IBool)($me.subtype(((IValue)($arg0_37)), ((IValue)($RVF.constructor(Symbol_tuple_list_Symbol, new IValue[]{((IList)($arg0_36))})))))); + + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Type.rsc|(7588,100,<196,0>,<196,100>) + public IBool Type_subtype$4de9a977591be6e5(IConstructor $0, IConstructor $1){ + + + if($has_type_and_arity($0, Symbol_lrel_list_Symbol, 1)){ + IValue $arg0_39 = (IValue)($aadt_subscript_int(((IConstructor)$0),0)); + if($isComparable($arg0_39.getType(), $T0)){ + IList l_0 = null; + if($has_type_and_arity($1, Symbol_list_Symbol, 1)){ + IValue $arg0_38 = (IValue)($aadt_subscript_int(((IConstructor)$1),0)); + if($isComparable($arg0_38.getType(), ADT_Symbol)){ + IConstructor r_1 = null; + return ((IBool)($me.subtype(((IValue)($RVF.constructor(Symbol_tuple_list_Symbol, new IValue[]{((IList)($arg0_39))}))), ((IValue)($arg0_38))))); + + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Type.rsc|(7705,84,<199,0>,<199,84>) + public IBool Type_subtype$ca59d9bf5276e15d(IConstructor $0, IConstructor $1){ + + + if($has_type_and_arity($0, Symbol_set_Symbol, 1)){ + IValue $arg0_41 = (IValue)($aadt_subscript_int(((IConstructor)$0),0)); + if($isComparable($arg0_41.getType(), ADT_Symbol)){ + IConstructor s_0 = null; + if($has_type_and_arity($1, Symbol_set_Symbol, 1)){ + IValue $arg0_40 = (IValue)($aadt_subscript_int(((IConstructor)$1),0)); + if($isComparable($arg0_40.getType(), ADT_Symbol)){ + IConstructor t_1 = null; + return ((IBool)($me.subtype(((IValue)($arg0_41)), ((IValue)($arg0_40))))); + + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Type.rsc|(7790,96,<200,0>,<200,96>) + public IBool Type_subtype$21c6b8b775030d1d(IConstructor $0, IConstructor $1){ + + + if($has_type_and_arity($0, Symbol_rel_list_Symbol, 1)){ + IValue $arg0_43 = (IValue)($aadt_subscript_int(((IConstructor)$0),0)); + if($isComparable($arg0_43.getType(), $T0)){ + IList l_0 = null; + if($has_type_and_arity($1, Symbol_rel_list_Symbol, 1)){ + IValue $arg0_42 = (IValue)($aadt_subscript_int(((IConstructor)$1),0)); + if($isComparable($arg0_42.getType(), $T0)){ + IList r_1 = null; + return ((IBool)($me.subtype(((IValue)($arg0_43)), ((IValue)($arg0_42))))); + + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Type.rsc|(8138,106,<206,0>,<206,106>) + public IBool Type_subtype$e77633ea9a4ac6a5(IConstructor $0, IConstructor $1){ + + + if($has_type_and_arity($0, Symbol_set_Symbol, 1)){ + IValue $arg0_45 = (IValue)($aadt_subscript_int(((IConstructor)$0),0)); + if($isComparable($arg0_45.getType(), ADT_Symbol)){ + IConstructor s_0 = null; + if($has_type_and_arity($1, Symbol_rel_list_Symbol, 1)){ + IValue $arg0_44 = (IValue)($aadt_subscript_int(((IConstructor)$1),0)); + if($isComparable($arg0_44.getType(), $T0)){ + IList r_1 = null; + return ((IBool)($me.subtype(((IValue)($arg0_45)), ((IValue)($RVF.constructor(Symbol_tuple_list_Symbol, new IValue[]{((IList)($arg0_44))})))))); + + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Type.rsc|(8245,106,<207,0>,<207,106>) + public IBool Type_subtype$98e19b11a09faf67(IConstructor $0, IConstructor $1){ + + + if($has_type_and_arity($0, Symbol_rel_list_Symbol, 1)){ + IValue $arg0_47 = (IValue)($aadt_subscript_int(((IConstructor)$0),0)); + if($isComparable($arg0_47.getType(), $T0)){ + IList l_0 = null; + if($has_type_and_arity($1, Symbol_set_Symbol, 1)){ + IValue $arg0_46 = (IValue)($aadt_subscript_int(((IConstructor)$1),0)); + if($isComparable($arg0_46.getType(), ADT_Symbol)){ + IConstructor r_1 = null; + return ((IBool)($me.subtype(((IValue)($RVF.constructor(Symbol_tuple_list_Symbol, new IValue[]{((IList)($arg0_47))}))), ((IValue)($arg0_46))))); + + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Type.rsc|(8353,84,<209,0>,<209,84>) + public IBool Type_subtype$23f59dc1171dc69d(IConstructor $0, IConstructor $1){ + + + if($has_type_and_arity($0, Symbol_bag_Symbol, 1)){ + IValue $arg0_49 = (IValue)($aadt_subscript_int(((IConstructor)$0),0)); + if($isComparable($arg0_49.getType(), ADT_Symbol)){ + IConstructor s_0 = null; + if($has_type_and_arity($1, Symbol_bag_Symbol, 1)){ + IValue $arg0_48 = (IValue)($aadt_subscript_int(((IConstructor)$1),0)); + if($isComparable($arg0_48.getType(), ADT_Symbol)){ + IConstructor t_1 = null; + return ((IBool)($me.subtype(((IValue)($arg0_49)), ((IValue)($arg0_48))))); + + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Type.rsc|(8440,145,<210,0>,<210,145>) + public IBool Type_subtype$f6957636a33615ae(IConstructor $0, IConstructor $1){ + + + if($has_type_and_arity($0, Symbol_map_Symbol_Symbol, 2)){ + IValue $arg0_54 = (IValue)($aadt_subscript_int(((IConstructor)$0),0)); + if($isComparable($arg0_54.getType(), ADT_Symbol)){ + IConstructor from1_0 = null; + IValue $arg1_53 = (IValue)($aadt_subscript_int(((IConstructor)$0),1)); + if($isComparable($arg1_53.getType(), ADT_Symbol)){ + IConstructor to1_1 = null; + if($has_type_and_arity($1, Symbol_map_Symbol_Symbol, 2)){ + IValue $arg0_52 = (IValue)($aadt_subscript_int(((IConstructor)$1),0)); + if($isComparable($arg0_52.getType(), ADT_Symbol)){ + IConstructor from2_2 = null; + IValue $arg1_51 = (IValue)($aadt_subscript_int(((IConstructor)$1),1)); + if($isComparable($arg1_51.getType(), ADT_Symbol)){ + IConstructor to2_3 = null; + if((((IBool)($me.subtype(((IValue)($arg0_54)), ((IValue)($arg0_52)))))).getValue()){ + return ((IBool)($me.subtype(((IValue)($arg1_53)), ((IValue)($arg1_51))))); + + } else { + return ((IBool)$constants.get(2)/*false*/); + + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Type.rsc|(8674,179,<212,0>,<212,179>) + public IBool Type_subtype$ddf53e134f4d5416(IConstructor $0, IConstructor $1){ + + + if($has_type_and_arity($0, Symbol_func_Symbol_list_Symbol_list_Symbol, 3)){ + IValue $arg0_61 = (IValue)($aadt_subscript_int(((IConstructor)$0),0)); + if($isComparable($arg0_61.getType(), ADT_Symbol)){ + IConstructor r1_0 = null; + IValue $arg1_60 = (IValue)($aadt_subscript_int(((IConstructor)$0),1)); + if($isComparable($arg1_60.getType(), $T0)){ + IList p1_1 = null; + IValue $arg2_59 = (IValue)($aadt_subscript_int(((IConstructor)$0),2)); + if($isComparable($arg2_59.getType(), $T0)){ + IList kw1_2 = null; + if($has_type_and_arity($1, Symbol_func_Symbol_list_Symbol_list_Symbol, 3)){ + IValue $arg0_58 = (IValue)($aadt_subscript_int(((IConstructor)$1),0)); + if($isComparable($arg0_58.getType(), ADT_Symbol)){ + IConstructor r2_3 = null; + IValue $arg1_57 = (IValue)($aadt_subscript_int(((IConstructor)$1),1)); + if($isComparable($arg1_57.getType(), $T0)){ + IList p2_4 = null; + IValue $arg2_56 = (IValue)($aadt_subscript_int(((IConstructor)$1),2)); + if($isComparable($arg2_56.getType(), $T0)){ + IList kw2_5 = null; + if((((IBool)($me.subtype(((IValue)($arg0_61)), ((IValue)($arg0_58)))))).getValue()){ + return ((IBool)($me.subtype(((IValue)($arg1_57)), ((IValue)($arg1_60))))); + + } else { + return ((IBool)$constants.get(2)/*false*/); + + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Type.rsc|(8855,91,<213,0>,<213,91>) + public IBool Type_subtype$b674428cffef84bc(IConstructor $0, IConstructor r_1){ + + + if($has_type_and_arity($0, Symbol_parameter_str_Symbol, 2)){ + IValue $arg0_63 = (IValue)($aadt_subscript_int(((IConstructor)$0),0)); + if($isComparable($arg0_63.getType(), $T2)){ + IValue $arg1_62 = (IValue)($aadt_subscript_int(((IConstructor)$0),1)); + if($isComparable($arg1_62.getType(), ADT_Symbol)){ + IConstructor bound_0 = null; + return ((IBool)($me.subtype(((IValue)($arg1_62)), ((IValue)r_1)))); + + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Type.rsc|(8947,91,<214,0>,<214,91>) + public IBool Type_subtype$80633493313ebd18(IConstructor l_0, IConstructor $1){ + + + if($has_type_and_arity($1, Symbol_parameter_str_Symbol, 2)){ + IValue $arg0_65 = (IValue)($aadt_subscript_int(((IConstructor)$1),0)); + if($isComparable($arg0_65.getType(), $T2)){ + IValue $arg1_64 = (IValue)($aadt_subscript_int(((IConstructor)$1),1)); + if($isComparable($arg1_64.getType(), ADT_Symbol)){ + IConstructor bound_1 = null; + return ((IBool)($me.subtype(((IValue)l_0), ((IValue)($arg1_64))))); + + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Type.rsc|(9039,78,<215,0>,<215,78>) + public IBool Type_subtype$162da85a0f5a9f0d(IConstructor $0, IConstructor t_1){ + + + if($has_type_and_arity($0, Symbol_label_str_Symbol, 2)){ + IValue $arg0_67 = (IValue)($aadt_subscript_int(((IConstructor)$0),0)); + if($isComparable($arg0_67.getType(), $T2)){ + IValue $arg1_66 = (IValue)($aadt_subscript_int(((IConstructor)$0),1)); + if($isComparable($arg1_66.getType(), ADT_Symbol)){ + IConstructor s_0 = null; + return ((IBool)($me.subtype(((IValue)($arg1_66)), ((IValue)t_1)))); + + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Type.rsc|(9118,78,<216,0>,<216,78>) + public IBool Type_subtype$3aa09e73e41fcf84(IConstructor s_0, IConstructor $1){ + + + if($has_type_and_arity($1, Symbol_label_str_Symbol, 2)){ + IValue $arg0_69 = (IValue)($aadt_subscript_int(((IConstructor)$1),0)); + if($isComparable($arg0_69.getType(), $T2)){ + IValue $arg1_68 = (IValue)($aadt_subscript_int(((IConstructor)$1),1)); + if($isComparable($arg1_68.getType(), ADT_Symbol)){ + IConstructor t_1 = null; + return ((IBool)($me.subtype(((IValue)s_0), ((IValue)($arg1_68))))); + + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Type.rsc|(9197,91,<217,0>,<217,91>) + public IBool Type_subtype$bc5943e83a6df899(IConstructor $0, IConstructor $1){ + + + if($has_type_and_arity($0, Symbol_reified_Symbol, 1)){ + IValue $arg0_71 = (IValue)($aadt_subscript_int(((IConstructor)$0),0)); + if($isComparable($arg0_71.getType(), ADT_Symbol)){ + IConstructor s_0 = null; + if($has_type_and_arity($1, Symbol_reified_Symbol, 1)){ + IValue $arg0_70 = (IValue)($aadt_subscript_int(((IConstructor)$1),0)); + if($isComparable($arg0_70.getType(), ADT_Symbol)){ + IConstructor t_1 = null; + return ((IBool)($me.subtype(((IValue)($arg0_71)), ((IValue)($arg0_70))))); + + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Type.rsc|(9289,72,<218,0>,<218,72>) + public IBool Type_subtype$282ad33dd55efdcc(IConstructor $0, IConstructor $1){ + + + if($has_type_and_arity($0, Symbol_reified_Symbol, 1)){ + IValue $arg0_72 = (IValue)($aadt_subscript_int(((IConstructor)$0),0)); + if($isComparable($arg0_72.getType(), ADT_Symbol)){ + IConstructor s_0 = null; + if($has_type_and_arity($1, Symbol_node_, 0)){ + return ((IBool)$constants.get(1)/*true*/); + + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Type.rsc|(9362,133,<219,0>,<219,133>) + public IBool Type_subtype$e6962df5576407da(IList l_0, IList r_1){ + + + if((((IBool)($equal(((IInteger)(M_List.size(((IList)l_0)))), ((IInteger)(M_List.size(((IList)r_1)))))))).getValue()){ + if((((IBool)($aint_lessequal_aint(((IInteger)(M_List.size(((IList)l_0)))),((IInteger)$constants.get(4)/*0*/)).not()))).getValue()){ + IBool $done74 = (IBool)(((IBool)$constants.get(1)/*true*/)); + $ALL75_GEN9420: + for(IValue $elem76_for : ((IList)(M_List.index(((IList)l_0))))){ + IInteger $elem76 = (IInteger) $elem76_for; + IInteger i_2 = null; + if((((IBool)($me.subtype(((IValue)($alist_subscript_int(((IList)l_0),((IInteger)($elem76)).intValue()))), ((IValue)($alist_subscript_int(((IList)r_1),((IInteger)($elem76)).intValue()))))))).getValue()){ + continue $ALL75_GEN9420; + + } else { + $done74 = ((IBool)$constants.get(2)/*false*/); + break $ALL75_GEN9420; // muBreak + + } + + } + + return ((IBool)($done74)); + + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Type.rsc|(9496,91,<220,0>,<220,91>) + public IBool Type_subtype$812a7f34ff841fdb(IList l_0, IList r_1){ + + + if((((IBool)($equal(((IInteger)(M_List.size(((IList)l_0)))), ((IInteger)$constants.get(4)/*0*/))))).getValue()){ + return ((IBool)($equal(((IInteger)(M_List.size(((IList)r_1)))), ((IInteger)$constants.get(4)/*0*/)))); + + } else { + return ((IBool)$constants.get(2)/*false*/); + + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Type.rsc|(11180,171,<256,0>,<257,74>) + public IBool Type_comparable$f7b7abd45db5e5d1(IConstructor s_0, IConstructor t_1){ + + + if((((IBool)($me.subtype(((IValue)s_0), ((IValue)t_1))))).getValue()){ + return ((IBool)$constants.get(1)/*true*/); + + } else { + return ((IBool)($me.subtype(((IValue)t_1), ((IValue)s_0)))); + + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Type.rsc|(11354,163,<259,0>,<260,74>) + public IBool Type_equivalent$da65f34f54cbbcfd(IConstructor s_0, IConstructor t_1){ + + + if((((IBool)($me.subtype(((IValue)s_0), ((IValue)t_1))))).getValue()){ + return ((IBool)($me.subtype(((IValue)t_1), ((IValue)s_0)))); + + } else { + return ((IBool)$constants.get(2)/*false*/); + + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Type.rsc|(11520,558,<263,0>,<279,38>) + public IBool Type_eq$3b65029c0d5a1b77(IValue x_0, IValue y_1){ + + + return ((IBool)((IBool)$Type.eq(x_0, y_1))); + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Type.rsc|(12080,243,<281,0>,<285,35>) + public IConstructor Type_lub$f7177db64f5afb02(IConstructor s_0, IConstructor s){ + + + if((s_0 != null)){ + if(s_0.match(s)){ + return ((IConstructor)s_0); + + } else { + return null; + } + } else { + s_0 = ((IConstructor)s); + return ((IConstructor)s_0); + + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Type.rsc|(12324,57,<286,0>,<286,57>) + public IConstructor Type_lub$f318ce489488a1e6(IConstructor s_0, IConstructor t_1){ + + + return ((IConstructor)$constants.get(5)/*value()*/); + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Type.rsc|(12383,65,<288,0>,<288,65>) + public IConstructor Type_lub$8b44730d15ad9495(IConstructor $0, IConstructor t_0){ + + + if($has_type_and_arity($0, Symbol_value_, 0)){ + return ((IConstructor)($RVF.constructor(Symbol_value_, new IValue[]{}))); + + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Type.rsc|(12449,65,<289,0>,<289,65>) + public IConstructor Type_lub$02594451bbb24254(IConstructor s_0, IConstructor $1){ + + + if($has_type_and_arity($1, Symbol_value_, 0)){ + return ((IConstructor)($RVF.constructor(Symbol_value_, new IValue[]{}))); + + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Type.rsc|(12515,49,<290,0>,<290,49>) + public IConstructor Type_lub$bc35bf8a90c0c581(IConstructor $0, IConstructor t_0){ + + + if($has_type_and_arity($0, Symbol_void_, 0)){ + return ((IConstructor)t_0); + + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Type.rsc|(12565,49,<291,0>,<291,49>) + public IConstructor Type_lub$ce2d305ea2a296ea(IConstructor s_0, IConstructor $1){ + + + if($has_type_and_arity($1, Symbol_void_, 0)){ + return ((IConstructor)s_0); + + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Type.rsc|(12615,67,<292,0>,<292,67>) + public IConstructor Type_lub$5cff2f0984f8ab98(IConstructor $0, IConstructor $1){ + + + if($has_type_and_arity($0, Symbol_int_, 0)){ + if($has_type_and_arity($1, Symbol_num_, 0)){ + return ((IConstructor)($RVF.constructor(Symbol_num_, new IValue[]{}))); + + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Type.rsc|(12683,68,<293,0>,<293,68>) + public IConstructor Type_lub$7399cb4ee7561f75(IConstructor $0, IConstructor $1){ + + + if($has_type_and_arity($0, Symbol_int_, 0)){ + if($has_type_and_arity($1, Symbol_real_, 0)){ + return ((IConstructor)($RVF.constructor(Symbol_num_, new IValue[]{}))); + + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Type.rsc|(12752,67,<294,0>,<294,67>) + public IConstructor Type_lub$126762fa2597c906(IConstructor $0, IConstructor $1){ + + + if($has_type_and_arity($0, Symbol_int_, 0)){ + if($has_type_and_arity($1, Symbol_rat_, 0)){ + return ((IConstructor)($RVF.constructor(Symbol_num_, new IValue[]{}))); + + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Type.rsc|(12820,67,<295,0>,<295,67>) + public IConstructor Type_lub$7dfd4aaa3c2fb078(IConstructor $0, IConstructor $1){ + + + if($has_type_and_arity($0, Symbol_rat_, 0)){ + if($has_type_and_arity($1, Symbol_num_, 0)){ + return ((IConstructor)($RVF.constructor(Symbol_num_, new IValue[]{}))); + + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Type.rsc|(12888,68,<296,0>,<296,68>) + public IConstructor Type_lub$e906ecba7e33c9ab(IConstructor $0, IConstructor $1){ + + + if($has_type_and_arity($0, Symbol_rat_, 0)){ + if($has_type_and_arity($1, Symbol_real_, 0)){ + return ((IConstructor)($RVF.constructor(Symbol_num_, new IValue[]{}))); + + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Type.rsc|(12957,67,<297,0>,<297,67>) + public IConstructor Type_lub$3baf3045e8079ba6(IConstructor $0, IConstructor $1){ + + + if($has_type_and_arity($0, Symbol_rat_, 0)){ + if($has_type_and_arity($1, Symbol_int_, 0)){ + return ((IConstructor)($RVF.constructor(Symbol_num_, new IValue[]{}))); + + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Type.rsc|(13025,68,<298,0>,<298,68>) + public IConstructor Type_lub$1f474fa5fa994fad(IConstructor $0, IConstructor $1){ + + + if($has_type_and_arity($0, Symbol_real_, 0)){ + if($has_type_and_arity($1, Symbol_num_, 0)){ + return ((IConstructor)($RVF.constructor(Symbol_num_, new IValue[]{}))); + + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Type.rsc|(13094,68,<299,0>,<299,68>) + public IConstructor Type_lub$28f89ecd1e2960ee(IConstructor $0, IConstructor $1){ + + + if($has_type_and_arity($0, Symbol_real_, 0)){ + if($has_type_and_arity($1, Symbol_int_, 0)){ + return ((IConstructor)($RVF.constructor(Symbol_num_, new IValue[]{}))); + + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Type.rsc|(13163,68,<300,0>,<300,68>) + public IConstructor Type_lub$578d8f8156ab8f3c(IConstructor $0, IConstructor $1){ + + + if($has_type_and_arity($0, Symbol_real_, 0)){ + if($has_type_and_arity($1, Symbol_rat_, 0)){ + return ((IConstructor)($RVF.constructor(Symbol_num_, new IValue[]{}))); + + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Type.rsc|(13232,67,<301,0>,<301,67>) + public IConstructor Type_lub$fe83795f0144eb99(IConstructor $0, IConstructor $1){ + + + if($has_type_and_arity($0, Symbol_num_, 0)){ + if($has_type_and_arity($1, Symbol_int_, 0)){ + return ((IConstructor)($RVF.constructor(Symbol_num_, new IValue[]{}))); + + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Type.rsc|(13300,68,<302,0>,<302,68>) + public IConstructor Type_lub$d06daffd5ad013e1(IConstructor $0, IConstructor $1){ + + + if($has_type_and_arity($0, Symbol_num_, 0)){ + if($has_type_and_arity($1, Symbol_real_, 0)){ + return ((IConstructor)($RVF.constructor(Symbol_num_, new IValue[]{}))); + + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Type.rsc|(13369,67,<303,0>,<303,67>) + public IConstructor Type_lub$2cd9a56d59418ef9(IConstructor $0, IConstructor $1){ + + + if($has_type_and_arity($0, Symbol_num_, 0)){ + if($has_type_and_arity($1, Symbol_rat_, 0)){ + return ((IConstructor)($RVF.constructor(Symbol_num_, new IValue[]{}))); + + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Type.rsc|(13438,92,<305,0>,<305,92>) + public IConstructor Type_lub$4cd4964d29fd898b(IConstructor $0, IConstructor $1){ + + + if($has_type_and_arity($0, Symbol_set_Symbol, 1)){ + IValue $arg0_81 = (IValue)($aadt_subscript_int(((IConstructor)$0),0)); + if($isComparable($arg0_81.getType(), ADT_Symbol)){ + IConstructor s_0 = null; + if($has_type_and_arity($1, Symbol_set_Symbol, 1)){ + IValue $arg0_80 = (IValue)($aadt_subscript_int(((IConstructor)$1),0)); + if($isComparable($arg0_80.getType(), ADT_Symbol)){ + IConstructor t_1 = null; + return ((IConstructor)($RVF.constructor(Symbol_set_Symbol, new IValue[]{((IConstructor)($me.lub(((IConstructor)($arg0_81)), ((IConstructor)($arg0_80)))))}))); + + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Type.rsc|(13533,115,<306,0>,<306,115>) + public IConstructor Type_lub$9f0bb9bd89ef79f4(IConstructor $0, IConstructor $1){ + + + if($has_type_and_arity($0, Symbol_set_Symbol, 1)){ + IValue $arg0_83 = (IValue)($aadt_subscript_int(((IConstructor)$0),0)); + if($isComparable($arg0_83.getType(), ADT_Symbol)){ + IConstructor s_0 = null; + if($has_type_and_arity($1, Symbol_rel_list_Symbol, 1)){ + IValue $arg0_82 = (IValue)($aadt_subscript_int(((IConstructor)$1),0)); + if($isComparable($arg0_82.getType(), $T0)){ + IList ts_1 = null; + return ((IConstructor)($RVF.constructor(Symbol_set_Symbol, new IValue[]{((IConstructor)($me.lub(((IConstructor)($arg0_83)), ((IConstructor)($RVF.constructor(Symbol_tuple_list_Symbol, new IValue[]{((IList)($arg0_82))}))))))}))); + + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Type.rsc|(13651,115,<307,0>,<307,115>) + public IConstructor Type_lub$0dbf401cac8b4535(IConstructor $0, IConstructor $1){ + + + if($has_type_and_arity($0, Symbol_rel_list_Symbol, 1)){ + IValue $arg0_85 = (IValue)($aadt_subscript_int(((IConstructor)$0),0)); + if($isComparable($arg0_85.getType(), $T0)){ + IList ts_0 = null; + if($has_type_and_arity($1, Symbol_set_Symbol, 1)){ + IValue $arg0_84 = (IValue)($aadt_subscript_int(((IConstructor)$1),0)); + if($isComparable($arg0_84.getType(), ADT_Symbol)){ + IConstructor s_1 = null; + return ((IConstructor)($RVF.constructor(Symbol_set_Symbol, new IValue[]{((IConstructor)($me.lub(((IConstructor)($arg0_84)), ((IConstructor)($RVF.constructor(Symbol_tuple_list_Symbol, new IValue[]{((IList)($arg0_85))}))))))}))); + + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Type.rsc|(13768,244,<309,0>,<309,244>) + public IConstructor Type_lub$ec1dccaf2da25afa(IConstructor $0, IConstructor $1){ + + + if($has_type_and_arity($0, Symbol_rel_list_Symbol, 1)){ + IValue $arg0_87 = (IValue)($aadt_subscript_int(((IConstructor)$0),0)); + if($isComparable($arg0_87.getType(), $T0)){ + IList l_0 = ((IList)($arg0_87)); + if($has_type_and_arity($1, Symbol_rel_list_Symbol, 1)){ + IValue $arg0_86 = (IValue)($aadt_subscript_int(((IConstructor)$1),0)); + if($isComparable($arg0_86.getType(), $T0)){ + IList r_1 = ((IList)($arg0_86)); + if((((IBool)($equal(((IInteger)(M_List.size(((IList)($arg0_87))))), ((IInteger)(M_List.size(((IList)($arg0_86))))))))).getValue()){ + if((((IBool)($me.allLabeled(((IList)($arg0_87)))))).getValue()){ + if((((IBool)($me.allLabeled(((IList)($arg0_86)))))).getValue()){ + if((((IBool)($equal(((IList)($me.getLabels(((IList)($arg0_87))))), ((IList)($me.getLabels(((IList)($arg0_86))))))))).getValue()){ + return ((IConstructor)($RVF.constructor(Symbol_rel_list_Symbol, new IValue[]{((IList)($me.addLabels(((IList)($me.lub(((IList)($me.stripLabels(((IList)($arg0_87))))), ((IList)($me.stripLabels(((IList)($arg0_86)))))))), ((IList)($me.getLabels(((IList)($arg0_87))))))))}))); + + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Type.rsc|(14013,220,<310,0>,<310,220>) + public IConstructor Type_lub$734046054ee464ba(IConstructor $0, IConstructor $1){ + + + if($has_type_and_arity($0, Symbol_rel_list_Symbol, 1)){ + IValue $arg0_89 = (IValue)($aadt_subscript_int(((IConstructor)$0),0)); + if($isComparable($arg0_89.getType(), $T0)){ + IList l_0 = ((IList)($arg0_89)); + if($has_type_and_arity($1, Symbol_rel_list_Symbol, 1)){ + IValue $arg0_88 = (IValue)($aadt_subscript_int(((IConstructor)$1),0)); + if($isComparable($arg0_88.getType(), $T0)){ + IList r_1 = ((IList)($arg0_88)); + if((((IBool)($equal(((IInteger)(M_List.size(((IList)($arg0_89))))), ((IInteger)(M_List.size(((IList)($arg0_88))))))))).getValue()){ + if((((IBool)($me.allLabeled(((IList)($arg0_89)))))).getValue()){ + if((((IBool)($me.allLabeled(((IList)($arg0_88)))))).getValue()){ + if((((IBool)($equal(((IList)($me.getLabels(((IList)($arg0_89))))),((IList)($me.getLabels(((IList)($arg0_88)))))).not()))).getValue()){ + return ((IConstructor)($RVF.constructor(Symbol_rel_list_Symbol, new IValue[]{((IList)($me.lub(((IList)($me.stripLabels(((IList)($arg0_89))))), ((IList)($me.stripLabels(((IList)($arg0_88))))))))}))); + + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Type.rsc|(14234,213,<311,0>,<311,213>) + public IConstructor Type_lub$4b68476103d104fd(IConstructor $0, IConstructor $1){ + + + if($has_type_and_arity($0, Symbol_rel_list_Symbol, 1)){ + IValue $arg0_91 = (IValue)($aadt_subscript_int(((IConstructor)$0),0)); + if($isComparable($arg0_91.getType(), $T0)){ + IList l_0 = ((IList)($arg0_91)); + if($has_type_and_arity($1, Symbol_rel_list_Symbol, 1)){ + IValue $arg0_90 = (IValue)($aadt_subscript_int(((IConstructor)$1),0)); + if($isComparable($arg0_90.getType(), $T0)){ + IList r_1 = ((IList)($arg0_90)); + if((((IBool)($equal(((IInteger)(M_List.size(((IList)($arg0_91))))), ((IInteger)(M_List.size(((IList)($arg0_90))))))))).getValue()){ + if((((IBool)($me.allLabeled(((IList)($arg0_91)))))).getValue()){ + if((((IBool)($me.noneLabeled(((IList)($arg0_90)))))).getValue()){ + return ((IConstructor)($RVF.constructor(Symbol_rel_list_Symbol, new IValue[]{((IList)($me.addLabels(((IList)($me.lub(((IList)($me.stripLabels(((IList)($arg0_91))))), ((IList)($me.stripLabels(((IList)($arg0_90)))))))), ((IList)($me.getLabels(((IList)($arg0_91))))))))}))); + + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Type.rsc|(14448,213,<312,0>,<312,213>) + public IConstructor Type_lub$111a6137b422fe0a(IConstructor $0, IConstructor $1){ + + + if($has_type_and_arity($0, Symbol_rel_list_Symbol, 1)){ + IValue $arg0_93 = (IValue)($aadt_subscript_int(((IConstructor)$0),0)); + if($isComparable($arg0_93.getType(), $T0)){ + IList l_0 = ((IList)($arg0_93)); + if($has_type_and_arity($1, Symbol_rel_list_Symbol, 1)){ + IValue $arg0_92 = (IValue)($aadt_subscript_int(((IConstructor)$1),0)); + if($isComparable($arg0_92.getType(), $T0)){ + IList r_1 = ((IList)($arg0_92)); + if((((IBool)($equal(((IInteger)(M_List.size(((IList)($arg0_93))))), ((IInteger)(M_List.size(((IList)($arg0_92))))))))).getValue()){ + if((((IBool)($me.noneLabeled(((IList)($arg0_93)))))).getValue()){ + if((((IBool)($me.allLabeled(((IList)($arg0_92)))))).getValue()){ + return ((IConstructor)($RVF.constructor(Symbol_rel_list_Symbol, new IValue[]{((IList)($me.addLabels(((IList)($me.lub(((IList)($me.stripLabels(((IList)($arg0_93))))), ((IList)($me.stripLabels(((IList)($arg0_92)))))))), ((IList)($me.getLabels(((IList)($arg0_92))))))))}))); + + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Type.rsc|(14662,190,<313,0>,<313,190>) + public IConstructor Type_lub$458a19628ff06574(IConstructor $0, IConstructor $1){ + + + if($has_type_and_arity($0, Symbol_rel_list_Symbol, 1)){ + IValue $arg0_95 = (IValue)($aadt_subscript_int(((IConstructor)$0),0)); + if($isComparable($arg0_95.getType(), $T0)){ + IList l_0 = ((IList)($arg0_95)); + if($has_type_and_arity($1, Symbol_rel_list_Symbol, 1)){ + IValue $arg0_94 = (IValue)($aadt_subscript_int(((IConstructor)$1),0)); + if($isComparable($arg0_94.getType(), $T0)){ + IList r_1 = ((IList)($arg0_94)); + if((((IBool)($equal(((IInteger)(M_List.size(((IList)($arg0_95))))), ((IInteger)(M_List.size(((IList)($arg0_94))))))))).getValue()){ + if((((IBool)($me.allLabeled(((IList)($arg0_95)))))).getValue()){ + return null; + } else { + if((((IBool)($me.allLabeled(((IList)($arg0_94)))))).getValue()){ + return null; + } else { + return ((IConstructor)($RVF.constructor(Symbol_rel_list_Symbol, new IValue[]{((IList)($me.lub(((IList)($me.stripLabels(((IList)($arg0_95))))), ((IList)($me.stripLabels(((IList)($arg0_94))))))))}))); + + } + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Type.rsc|(14853,119,<314,0>,<314,119>) + public IConstructor Type_lub$286a95d36c4d9271(IConstructor $0, IConstructor $1){ + + + if($has_type_and_arity($0, Symbol_rel_list_Symbol, 1)){ + IValue $arg0_97 = (IValue)($aadt_subscript_int(((IConstructor)$0),0)); + if($isComparable($arg0_97.getType(), $T0)){ + IList l_0 = ((IList)($arg0_97)); + if($has_type_and_arity($1, Symbol_rel_list_Symbol, 1)){ + IValue $arg0_96 = (IValue)($aadt_subscript_int(((IConstructor)$1),0)); + if($isComparable($arg0_96.getType(), $T0)){ + IList r_1 = ((IList)($arg0_96)); + if((((IBool)($equal(((IInteger)(M_List.size(((IList)($arg0_97))))),((IInteger)(M_List.size(((IList)($arg0_96)))))).not()))).getValue()){ + return ((IConstructor)$constants.get(6)/*set(value())*/); + + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Type.rsc|(14974,95,<316,0>,<316,95>) + public IConstructor Type_lub$be05e62f5f33e70a(IConstructor $0, IConstructor $1){ + + + if($has_type_and_arity($0, Symbol_list_Symbol, 1)){ + IValue $arg0_99 = (IValue)($aadt_subscript_int(((IConstructor)$0),0)); + if($isComparable($arg0_99.getType(), ADT_Symbol)){ + IConstructor s_0 = null; + if($has_type_and_arity($1, Symbol_list_Symbol, 1)){ + IValue $arg0_98 = (IValue)($aadt_subscript_int(((IConstructor)$1),0)); + if($isComparable($arg0_98.getType(), ADT_Symbol)){ + IConstructor t_1 = null; + return ((IConstructor)($RVF.constructor(Symbol_list_Symbol, new IValue[]{((IConstructor)($me.lub(((IConstructor)($arg0_99)), ((IConstructor)($arg0_98)))))}))); + + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Type.rsc|(15072,102,<317,0>,<317,102>) + public IConstructor Type_lub$42beb0d51d9c47f2(IConstructor $0, IConstructor $1){ + + + if($has_type_and_arity($0, Symbol_list_Symbol, 1)){ + IValue $arg0_101 = (IValue)($aadt_subscript_int(((IConstructor)$0),0)); + if($isComparable($arg0_101.getType(), ADT_Symbol)){ + IConstructor s_0 = null; + if($has_type_and_arity($1, Symbol_lrel_list_Symbol, 1)){ + IValue $arg0_100 = (IValue)($aadt_subscript_int(((IConstructor)$1),0)); + if($isComparable($arg0_100.getType(), $T0)){ + IList ts_1 = null; + return ((IConstructor)($RVF.constructor(Symbol_list_Symbol, new IValue[]{((IConstructor)($me.lub(((IConstructor)($arg0_101)), ((IConstructor)($RVF.constructor(Symbol_tuple_list_Symbol, new IValue[]{((IList)($arg0_100))}))))))}))); + + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Type.rsc|(15177,110,<318,0>,<318,110>) + public IConstructor Type_lub$7a4636c028a0a06c(IConstructor $0, IConstructor $1){ + + + if($has_type_and_arity($0, Symbol_lrel_list_Symbol, 1)){ + IValue $arg0_103 = (IValue)($aadt_subscript_int(((IConstructor)$0),0)); + if($isComparable($arg0_103.getType(), $T0)){ + IList ts_0 = null; + if($has_type_and_arity($1, Symbol_list_Symbol, 1)){ + IValue $arg0_102 = (IValue)($aadt_subscript_int(((IConstructor)$1),0)); + if($isComparable($arg0_102.getType(), ADT_Symbol)){ + IConstructor s_1 = null; + return ((IConstructor)($RVF.constructor(Symbol_list_Symbol, new IValue[]{((IConstructor)($me.lub(((IConstructor)($arg0_102)), ((IConstructor)($RVF.constructor(Symbol_tuple_list_Symbol, new IValue[]{((IList)($arg0_103))}))))))}))); + + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Type.rsc|(15289,247,<320,0>,<320,247>) + public IConstructor Type_lub$89bf39f91d0c3172(IConstructor $0, IConstructor $1){ + + + if($has_type_and_arity($0, Symbol_lrel_list_Symbol, 1)){ + IValue $arg0_105 = (IValue)($aadt_subscript_int(((IConstructor)$0),0)); + if($isComparable($arg0_105.getType(), $T0)){ + IList l_0 = ((IList)($arg0_105)); + if($has_type_and_arity($1, Symbol_lrel_list_Symbol, 1)){ + IValue $arg0_104 = (IValue)($aadt_subscript_int(((IConstructor)$1),0)); + if($isComparable($arg0_104.getType(), $T0)){ + IList r_1 = ((IList)($arg0_104)); + if((((IBool)($equal(((IInteger)(M_List.size(((IList)($arg0_105))))), ((IInteger)(M_List.size(((IList)($arg0_104))))))))).getValue()){ + if((((IBool)($me.allLabeled(((IList)($arg0_105)))))).getValue()){ + if((((IBool)($me.allLabeled(((IList)($arg0_104)))))).getValue()){ + if((((IBool)($equal(((IList)($me.getLabels(((IList)($arg0_105))))), ((IList)($me.getLabels(((IList)($arg0_104))))))))).getValue()){ + return ((IConstructor)($RVF.constructor(Symbol_lrel_list_Symbol, new IValue[]{((IList)($me.addLabels(((IList)($me.lub(((IList)($me.stripLabels(((IList)($arg0_105))))), ((IList)($me.stripLabels(((IList)($arg0_104)))))))), ((IList)($me.getLabels(((IList)($arg0_105))))))))}))); + + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Type.rsc|(15537,223,<321,0>,<321,223>) + public IConstructor Type_lub$cdf48c3a28135a1b(IConstructor $0, IConstructor $1){ + + + if($has_type_and_arity($0, Symbol_lrel_list_Symbol, 1)){ + IValue $arg0_107 = (IValue)($aadt_subscript_int(((IConstructor)$0),0)); + if($isComparable($arg0_107.getType(), $T0)){ + IList l_0 = ((IList)($arg0_107)); + if($has_type_and_arity($1, Symbol_lrel_list_Symbol, 1)){ + IValue $arg0_106 = (IValue)($aadt_subscript_int(((IConstructor)$1),0)); + if($isComparable($arg0_106.getType(), $T0)){ + IList r_1 = ((IList)($arg0_106)); + if((((IBool)($equal(((IInteger)(M_List.size(((IList)($arg0_107))))), ((IInteger)(M_List.size(((IList)($arg0_106))))))))).getValue()){ + if((((IBool)($me.allLabeled(((IList)($arg0_107)))))).getValue()){ + if((((IBool)($me.allLabeled(((IList)($arg0_106)))))).getValue()){ + if((((IBool)($equal(((IList)($me.getLabels(((IList)($arg0_107))))),((IList)($me.getLabels(((IList)($arg0_106)))))).not()))).getValue()){ + return ((IConstructor)($RVF.constructor(Symbol_lrel_list_Symbol, new IValue[]{((IList)($me.lub(((IList)($me.stripLabels(((IList)($arg0_107))))), ((IList)($me.stripLabels(((IList)($arg0_106))))))))}))); + + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Type.rsc|(15761,216,<322,0>,<322,216>) + public IConstructor Type_lub$363046ae837d0ed7(IConstructor $0, IConstructor $1){ + + + if($has_type_and_arity($0, Symbol_lrel_list_Symbol, 1)){ + IValue $arg0_109 = (IValue)($aadt_subscript_int(((IConstructor)$0),0)); + if($isComparable($arg0_109.getType(), $T0)){ + IList l_0 = ((IList)($arg0_109)); + if($has_type_and_arity($1, Symbol_lrel_list_Symbol, 1)){ + IValue $arg0_108 = (IValue)($aadt_subscript_int(((IConstructor)$1),0)); + if($isComparable($arg0_108.getType(), $T0)){ + IList r_1 = ((IList)($arg0_108)); + if((((IBool)($equal(((IInteger)(M_List.size(((IList)($arg0_109))))), ((IInteger)(M_List.size(((IList)($arg0_108))))))))).getValue()){ + if((((IBool)($me.allLabeled(((IList)($arg0_109)))))).getValue()){ + if((((IBool)($me.noneLabeled(((IList)($arg0_108)))))).getValue()){ + return ((IConstructor)($RVF.constructor(Symbol_lrel_list_Symbol, new IValue[]{((IList)($me.addLabels(((IList)($me.lub(((IList)($me.stripLabels(((IList)($arg0_109))))), ((IList)($me.stripLabels(((IList)($arg0_108)))))))), ((IList)($me.getLabels(((IList)($arg0_109))))))))}))); + + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Type.rsc|(15978,216,<323,0>,<323,216>) + public IConstructor Type_lub$57f39e76485c88cd(IConstructor $0, IConstructor $1){ + + + if($has_type_and_arity($0, Symbol_lrel_list_Symbol, 1)){ + IValue $arg0_111 = (IValue)($aadt_subscript_int(((IConstructor)$0),0)); + if($isComparable($arg0_111.getType(), $T0)){ + IList l_0 = ((IList)($arg0_111)); + if($has_type_and_arity($1, Symbol_lrel_list_Symbol, 1)){ + IValue $arg0_110 = (IValue)($aadt_subscript_int(((IConstructor)$1),0)); + if($isComparable($arg0_110.getType(), $T0)){ + IList r_1 = ((IList)($arg0_110)); + if((((IBool)($equal(((IInteger)(M_List.size(((IList)($arg0_111))))), ((IInteger)(M_List.size(((IList)($arg0_110))))))))).getValue()){ + if((((IBool)($me.noneLabeled(((IList)($arg0_111)))))).getValue()){ + if((((IBool)($me.allLabeled(((IList)($arg0_110)))))).getValue()){ + return ((IConstructor)($RVF.constructor(Symbol_lrel_list_Symbol, new IValue[]{((IList)($me.addLabels(((IList)($me.lub(((IList)($me.stripLabels(((IList)($arg0_111))))), ((IList)($me.stripLabels(((IList)($arg0_110)))))))), ((IList)($me.getLabels(((IList)($arg0_110))))))))}))); + + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Type.rsc|(16195,193,<324,0>,<324,193>) + public IConstructor Type_lub$ea0cf15c1bb98cd7(IConstructor $0, IConstructor $1){ + + + if($has_type_and_arity($0, Symbol_lrel_list_Symbol, 1)){ + IValue $arg0_113 = (IValue)($aadt_subscript_int(((IConstructor)$0),0)); + if($isComparable($arg0_113.getType(), $T0)){ + IList l_0 = ((IList)($arg0_113)); + if($has_type_and_arity($1, Symbol_lrel_list_Symbol, 1)){ + IValue $arg0_112 = (IValue)($aadt_subscript_int(((IConstructor)$1),0)); + if($isComparable($arg0_112.getType(), $T0)){ + IList r_1 = ((IList)($arg0_112)); + if((((IBool)($equal(((IInteger)(M_List.size(((IList)($arg0_113))))), ((IInteger)(M_List.size(((IList)($arg0_112))))))))).getValue()){ + if((((IBool)($me.allLabeled(((IList)($arg0_113)))))).getValue()){ + return null; + } else { + if((((IBool)($me.allLabeled(((IList)($arg0_112)))))).getValue()){ + return null; + } else { + return ((IConstructor)($RVF.constructor(Symbol_lrel_list_Symbol, new IValue[]{((IList)($me.lub(((IList)($me.stripLabels(((IList)($arg0_113))))), ((IList)($me.stripLabels(((IList)($arg0_112))))))))}))); + + } + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Type.rsc|(16389,130,<325,0>,<325,130>) + public IConstructor Type_lub$1ce55522faa742da(IConstructor $0, IConstructor $1){ + + + if($has_type_and_arity($0, Symbol_lrel_list_Symbol, 1)){ + IValue $arg0_115 = (IValue)($aadt_subscript_int(((IConstructor)$0),0)); + if($isComparable($arg0_115.getType(), $T0)){ + IList l_0 = ((IList)($arg0_115)); + if($has_type_and_arity($1, Symbol_lrel_list_Symbol, 1)){ + IValue $arg0_114 = (IValue)($aadt_subscript_int(((IConstructor)$1),0)); + if($isComparable($arg0_114.getType(), $T0)){ + IList r_1 = ((IList)($arg0_114)); + if((((IBool)($equal(((IInteger)(M_List.size(((IList)($arg0_115))))),((IInteger)(M_List.size(((IList)($arg0_114)))))).not()))).getValue()){ + return ((IConstructor)($RVF.constructor(Symbol_list_Symbol, new IValue[]{((IConstructor)$constants.get(5)/*value()*/)}))); + + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Type.rsc|(16521,250,<327,0>,<327,250>) + public IConstructor Type_lub$24cbcbc48e7f84f7(IConstructor $0, IConstructor $1){ + + + if($has_type_and_arity($0, Symbol_tuple_list_Symbol, 1)){ + IValue $arg0_117 = (IValue)($aadt_subscript_int(((IConstructor)$0),0)); + if($isComparable($arg0_117.getType(), $T0)){ + IList l_0 = ((IList)($arg0_117)); + if($has_type_and_arity($1, Symbol_tuple_list_Symbol, 1)){ + IValue $arg0_116 = (IValue)($aadt_subscript_int(((IConstructor)$1),0)); + if($isComparable($arg0_116.getType(), $T0)){ + IList r_1 = ((IList)($arg0_116)); + if((((IBool)($equal(((IInteger)(M_List.size(((IList)($arg0_117))))), ((IInteger)(M_List.size(((IList)($arg0_116))))))))).getValue()){ + if((((IBool)($me.allLabeled(((IList)($arg0_117)))))).getValue()){ + if((((IBool)($me.allLabeled(((IList)($arg0_116)))))).getValue()){ + if((((IBool)($equal(((IList)($me.getLabels(((IList)($arg0_117))))), ((IList)($me.getLabels(((IList)($arg0_116))))))))).getValue()){ + return ((IConstructor)($RVF.constructor(Symbol_tuple_list_Symbol, new IValue[]{((IList)($me.addLabels(((IList)($me.lub(((IList)($me.stripLabels(((IList)($arg0_117))))), ((IList)($me.stripLabels(((IList)($arg0_116)))))))), ((IList)($me.getLabels(((IList)($arg0_117))))))))}))); + + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Type.rsc|(16772,226,<328,0>,<328,226>) + public IConstructor Type_lub$c4a2a53eec0c75c1(IConstructor $0, IConstructor $1){ + + + if($has_type_and_arity($0, Symbol_tuple_list_Symbol, 1)){ + IValue $arg0_119 = (IValue)($aadt_subscript_int(((IConstructor)$0),0)); + if($isComparable($arg0_119.getType(), $T0)){ + IList l_0 = ((IList)($arg0_119)); + if($has_type_and_arity($1, Symbol_tuple_list_Symbol, 1)){ + IValue $arg0_118 = (IValue)($aadt_subscript_int(((IConstructor)$1),0)); + if($isComparable($arg0_118.getType(), $T0)){ + IList r_1 = ((IList)($arg0_118)); + if((((IBool)($equal(((IInteger)(M_List.size(((IList)($arg0_119))))), ((IInteger)(M_List.size(((IList)($arg0_118))))))))).getValue()){ + if((((IBool)($me.allLabeled(((IList)($arg0_119)))))).getValue()){ + if((((IBool)($me.allLabeled(((IList)($arg0_118)))))).getValue()){ + if((((IBool)($equal(((IList)($me.getLabels(((IList)($arg0_119))))),((IList)($me.getLabels(((IList)($arg0_118)))))).not()))).getValue()){ + return ((IConstructor)($RVF.constructor(Symbol_tuple_list_Symbol, new IValue[]{((IList)($me.lub(((IList)($me.stripLabels(((IList)($arg0_119))))), ((IList)($me.stripLabels(((IList)($arg0_118))))))))}))); + + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Type.rsc|(16999,219,<329,0>,<329,219>) + public IConstructor Type_lub$3cb3aedf8aed5365(IConstructor $0, IConstructor $1){ + + + if($has_type_and_arity($0, Symbol_tuple_list_Symbol, 1)){ + IValue $arg0_121 = (IValue)($aadt_subscript_int(((IConstructor)$0),0)); + if($isComparable($arg0_121.getType(), $T0)){ + IList l_0 = ((IList)($arg0_121)); + if($has_type_and_arity($1, Symbol_tuple_list_Symbol, 1)){ + IValue $arg0_120 = (IValue)($aadt_subscript_int(((IConstructor)$1),0)); + if($isComparable($arg0_120.getType(), $T0)){ + IList r_1 = ((IList)($arg0_120)); + if((((IBool)($equal(((IInteger)(M_List.size(((IList)($arg0_121))))), ((IInteger)(M_List.size(((IList)($arg0_120))))))))).getValue()){ + if((((IBool)($me.allLabeled(((IList)($arg0_121)))))).getValue()){ + if((((IBool)($me.noneLabeled(((IList)($arg0_120)))))).getValue()){ + return ((IConstructor)($RVF.constructor(Symbol_tuple_list_Symbol, new IValue[]{((IList)($me.addLabels(((IList)($me.lub(((IList)($me.stripLabels(((IList)($arg0_121))))), ((IList)($me.stripLabels(((IList)($arg0_120)))))))), ((IList)($me.getLabels(((IList)($arg0_121))))))))}))); + + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Type.rsc|(17219,219,<330,0>,<330,219>) + public IConstructor Type_lub$a95613250b5d7982(IConstructor $0, IConstructor $1){ + + + if($has_type_and_arity($0, Symbol_tuple_list_Symbol, 1)){ + IValue $arg0_123 = (IValue)($aadt_subscript_int(((IConstructor)$0),0)); + if($isComparable($arg0_123.getType(), $T0)){ + IList l_0 = ((IList)($arg0_123)); + if($has_type_and_arity($1, Symbol_tuple_list_Symbol, 1)){ + IValue $arg0_122 = (IValue)($aadt_subscript_int(((IConstructor)$1),0)); + if($isComparable($arg0_122.getType(), $T0)){ + IList r_1 = ((IList)($arg0_122)); + if((((IBool)($equal(((IInteger)(M_List.size(((IList)($arg0_123))))), ((IInteger)(M_List.size(((IList)($arg0_122))))))))).getValue()){ + if((((IBool)($me.noneLabeled(((IList)($arg0_123)))))).getValue()){ + if((((IBool)($me.allLabeled(((IList)($arg0_122)))))).getValue()){ + return ((IConstructor)($RVF.constructor(Symbol_tuple_list_Symbol, new IValue[]{((IList)($me.addLabels(((IList)($me.lub(((IList)($me.stripLabels(((IList)($arg0_123))))), ((IList)($me.stripLabels(((IList)($arg0_122)))))))), ((IList)($me.getLabels(((IList)($arg0_122))))))))}))); + + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Type.rsc|(17439,275,<331,0>,<331,275>) + public IConstructor Type_lub$645ef43b093722bb(IConstructor $0, IConstructor $1){ + + + if($has_type_and_arity($0, Symbol_tuple_list_Symbol, 1)){ + IValue $arg0_130 = (IValue)($aadt_subscript_int(((IConstructor)$0),0)); + if($isComparable($arg0_130.getType(), $T0)){ + IList l_0 = ((IList)($arg0_130)); + if($has_type_and_arity($1, Symbol_tuple_list_Symbol, 1)){ + IValue $arg0_129 = (IValue)($aadt_subscript_int(((IConstructor)$1),0)); + if($isComparable($arg0_129.getType(), $T0)){ + IList r_1 = ((IList)($arg0_129)); + if((((IBool)($equal(((IInteger)(M_List.size(((IList)($arg0_130))))), ((IInteger)(M_List.size(((IList)($arg0_129))))))))).getValue()){ + if((((IBool)($me.allLabeled(((IList)($arg0_130)))))).getValue()){ + if((((IBool)($me.allLabeled(((IList)($arg0_129)))))).getValue()){ + return null; + } else { + if((((IBool)($me.allLabeled(((IList)($arg0_130)))))).getValue()){ + if((((IBool)($me.noneLabeled(((IList)($arg0_129)))))).getValue()){ + return null; + } else { + if((((IBool)($me.noneLabeled(((IList)($arg0_130)))))).getValue()){ + if((((IBool)($me.allLabeled(((IList)($arg0_129)))))).getValue()){ + return null; + } else { + return ((IConstructor)($RVF.constructor(Symbol_tuple_list_Symbol, new IValue[]{((IList)($me.lub(((IList)($me.stripLabels(((IList)($arg0_130))))), ((IList)($me.stripLabels(((IList)($arg0_129))))))))}))); + + } + } else { + return ((IConstructor)($RVF.constructor(Symbol_tuple_list_Symbol, new IValue[]{((IList)($me.lub(((IList)($me.stripLabels(((IList)($arg0_130))))), ((IList)($me.stripLabels(((IList)($arg0_129))))))))}))); + + } + } + } else { + if((((IBool)($me.noneLabeled(((IList)($arg0_130)))))).getValue()){ + if((((IBool)($me.allLabeled(((IList)($arg0_129)))))).getValue()){ + return null; + } else { + return ((IConstructor)($RVF.constructor(Symbol_tuple_list_Symbol, new IValue[]{((IList)($me.lub(((IList)($me.stripLabels(((IList)($arg0_130))))), ((IList)($me.stripLabels(((IList)($arg0_129))))))))}))); + + } + } else { + return ((IConstructor)($RVF.constructor(Symbol_tuple_list_Symbol, new IValue[]{((IList)($me.lub(((IList)($me.stripLabels(((IList)($arg0_130))))), ((IList)($me.stripLabels(((IList)($arg0_129))))))))}))); + + } + } + } + } else { + if((((IBool)($me.allLabeled(((IList)($arg0_130)))))).getValue()){ + if((((IBool)($me.noneLabeled(((IList)($arg0_129)))))).getValue()){ + return null; + } else { + if((((IBool)($me.noneLabeled(((IList)($arg0_130)))))).getValue()){ + if((((IBool)($me.allLabeled(((IList)($arg0_129)))))).getValue()){ + return null; + } else { + return ((IConstructor)($RVF.constructor(Symbol_tuple_list_Symbol, new IValue[]{((IList)($me.lub(((IList)($me.stripLabels(((IList)($arg0_130))))), ((IList)($me.stripLabels(((IList)($arg0_129))))))))}))); + + } + } else { + return ((IConstructor)($RVF.constructor(Symbol_tuple_list_Symbol, new IValue[]{((IList)($me.lub(((IList)($me.stripLabels(((IList)($arg0_130))))), ((IList)($me.stripLabels(((IList)($arg0_129))))))))}))); + + } + } + } else { + if((((IBool)($me.noneLabeled(((IList)($arg0_130)))))).getValue()){ + if((((IBool)($me.allLabeled(((IList)($arg0_129)))))).getValue()){ + return null; + } else { + return ((IConstructor)($RVF.constructor(Symbol_tuple_list_Symbol, new IValue[]{((IList)($me.lub(((IList)($me.stripLabels(((IList)($arg0_130))))), ((IList)($me.stripLabels(((IList)($arg0_129))))))))}))); + + } + } else { + return ((IConstructor)($RVF.constructor(Symbol_tuple_list_Symbol, new IValue[]{((IList)($me.lub(((IList)($me.stripLabels(((IList)($arg0_130))))), ((IList)($me.stripLabels(((IList)($arg0_129))))))))}))); + + } + } + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Type.rsc|(17716,253,<333,0>,<333,253>) + public IConstructor Type_lub$525d494ef32e780f(IConstructor $0, IConstructor $1){ + + + if($has_type_and_arity($0, Symbol_map_Symbol_Symbol, 2)){ + IValue $arg0_140 = (IValue)($aadt_subscript_int(((IConstructor)$0),0)); + if($isComparable($arg0_140.getType(), ADT_Symbol)){ + if($has_type_and_arity($arg0_140, Symbol_label_str_Symbol, 2)){ + IValue $arg0_142 = (IValue)($aadt_subscript_int(((IConstructor)($arg0_140)),0)); + if($isComparable($arg0_142.getType(), $T2)){ + IString lfl_0 = null; + IValue $arg1_141 = (IValue)($aadt_subscript_int(((IConstructor)($arg0_140)),1)); + if($isComparable($arg1_141.getType(), ADT_Symbol)){ + IConstructor lf_1 = null; + IValue $arg1_137 = (IValue)($aadt_subscript_int(((IConstructor)$0),1)); + if($isComparable($arg1_137.getType(), ADT_Symbol)){ + if($has_type_and_arity($arg1_137, Symbol_label_str_Symbol, 2)){ + IValue $arg0_139 = (IValue)($aadt_subscript_int(((IConstructor)($arg1_137)),0)); + if($isComparable($arg0_139.getType(), $T2)){ + IString ltl_2 = null; + IValue $arg1_138 = (IValue)($aadt_subscript_int(((IConstructor)($arg1_137)),1)); + if($isComparable($arg1_138.getType(), ADT_Symbol)){ + IConstructor lt_3 = null; + if($has_type_and_arity($1, Symbol_map_Symbol_Symbol, 2)){ + IValue $arg0_134 = (IValue)($aadt_subscript_int(((IConstructor)$1),0)); + if($isComparable($arg0_134.getType(), ADT_Symbol)){ + if($has_type_and_arity($arg0_134, Symbol_label_str_Symbol, 2)){ + IValue $arg0_136 = (IValue)($aadt_subscript_int(((IConstructor)($arg0_134)),0)); + if($isComparable($arg0_136.getType(), $T2)){ + IString rfl_4 = null; + IValue $arg1_135 = (IValue)($aadt_subscript_int(((IConstructor)($arg0_134)),1)); + if($isComparable($arg1_135.getType(), ADT_Symbol)){ + IConstructor rf_5 = null; + IValue $arg1_131 = (IValue)($aadt_subscript_int(((IConstructor)$1),1)); + if($isComparable($arg1_131.getType(), ADT_Symbol)){ + if($has_type_and_arity($arg1_131, Symbol_label_str_Symbol, 2)){ + IValue $arg0_133 = (IValue)($aadt_subscript_int(((IConstructor)($arg1_131)),0)); + if($isComparable($arg0_133.getType(), $T2)){ + IString rtl_6 = null; + IValue $arg1_132 = (IValue)($aadt_subscript_int(((IConstructor)($arg1_131)),1)); + if($isComparable($arg1_132.getType(), ADT_Symbol)){ + IConstructor rt_7 = null; + if((((IBool)($equal(((IString)($arg0_142)), ((IString)($arg0_136)))))).getValue()){ + if((((IBool)($equal(((IString)($arg0_139)), ((IString)($arg0_133)))))).getValue()){ + return ((IConstructor)($RVF.constructor(Symbol_map_Symbol_Symbol, new IValue[]{((IConstructor)($RVF.constructor(Symbol_label_str_Symbol, new IValue[]{((IString)($arg0_142)), ((IConstructor)($me.lub(((IConstructor)($arg1_141)), ((IConstructor)($arg1_135)))))}))), ((IConstructor)($RVF.constructor(Symbol_label_str_Symbol, new IValue[]{((IString)($arg0_139)), ((IConstructor)($me.lub(((IConstructor)($arg1_138)), ((IConstructor)($arg1_132)))))})))}))); + + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Type.rsc|(17970,227,<334,0>,<334,227>) + public IConstructor Type_lub$3f4d0193ec654be4(IConstructor $0, IConstructor $1){ + + + if($has_type_and_arity($0, Symbol_map_Symbol_Symbol, 2)){ + IValue $arg0_152 = (IValue)($aadt_subscript_int(((IConstructor)$0),0)); + if($isComparable($arg0_152.getType(), ADT_Symbol)){ + if($has_type_and_arity($arg0_152, Symbol_label_str_Symbol, 2)){ + IValue $arg0_154 = (IValue)($aadt_subscript_int(((IConstructor)($arg0_152)),0)); + if($isComparable($arg0_154.getType(), $T2)){ + IString lfl_0 = null; + IValue $arg1_153 = (IValue)($aadt_subscript_int(((IConstructor)($arg0_152)),1)); + if($isComparable($arg1_153.getType(), ADT_Symbol)){ + IConstructor lf_1 = null; + IValue $arg1_149 = (IValue)($aadt_subscript_int(((IConstructor)$0),1)); + if($isComparable($arg1_149.getType(), ADT_Symbol)){ + if($has_type_and_arity($arg1_149, Symbol_label_str_Symbol, 2)){ + IValue $arg0_151 = (IValue)($aadt_subscript_int(((IConstructor)($arg1_149)),0)); + if($isComparable($arg0_151.getType(), $T2)){ + IString ltl_2 = null; + IValue $arg1_150 = (IValue)($aadt_subscript_int(((IConstructor)($arg1_149)),1)); + if($isComparable($arg1_150.getType(), ADT_Symbol)){ + IConstructor lt_3 = null; + if($has_type_and_arity($1, Symbol_map_Symbol_Symbol, 2)){ + IValue $arg0_146 = (IValue)($aadt_subscript_int(((IConstructor)$1),0)); + if($isComparable($arg0_146.getType(), ADT_Symbol)){ + if($has_type_and_arity($arg0_146, Symbol_label_str_Symbol, 2)){ + IValue $arg0_148 = (IValue)($aadt_subscript_int(((IConstructor)($arg0_146)),0)); + if($isComparable($arg0_148.getType(), $T2)){ + IString rfl_4 = null; + IValue $arg1_147 = (IValue)($aadt_subscript_int(((IConstructor)($arg0_146)),1)); + if($isComparable($arg1_147.getType(), ADT_Symbol)){ + IConstructor rf_5 = null; + IValue $arg1_143 = (IValue)($aadt_subscript_int(((IConstructor)$1),1)); + if($isComparable($arg1_143.getType(), ADT_Symbol)){ + if($has_type_and_arity($arg1_143, Symbol_label_str_Symbol, 2)){ + IValue $arg0_145 = (IValue)($aadt_subscript_int(((IConstructor)($arg1_143)),0)); + if($isComparable($arg0_145.getType(), $T2)){ + IString rtl_6 = null; + IValue $arg1_144 = (IValue)($aadt_subscript_int(((IConstructor)($arg1_143)),1)); + if($isComparable($arg1_144.getType(), ADT_Symbol)){ + IConstructor rt_7 = null; + if((((IBool)($equal(((IString)($arg0_154)),((IString)($arg0_148))).not()))).getValue()){ + return ((IConstructor)($RVF.constructor(Symbol_map_Symbol_Symbol, new IValue[]{((IConstructor)($me.lub(((IConstructor)($arg1_153)), ((IConstructor)($arg1_147))))), ((IConstructor)($me.lub(((IConstructor)($arg1_150)), ((IConstructor)($arg1_144)))))}))); + + } else { + if((((IBool)($equal(((IString)($arg0_151)),((IString)($arg0_145))).not()))).getValue()){ + return ((IConstructor)($RVF.constructor(Symbol_map_Symbol_Symbol, new IValue[]{((IConstructor)($me.lub(((IConstructor)($arg1_153)), ((IConstructor)($arg1_147))))), ((IConstructor)($me.lub(((IConstructor)($arg1_150)), ((IConstructor)($arg1_144)))))}))); + + } else { + return null; + } + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Type.rsc|(18198,236,<335,0>,<335,236>) + public IConstructor Type_lub$79c1b7694ffd9fd8(IConstructor $0, IConstructor $1){ + + + if($has_type_and_arity($0, Symbol_map_Symbol_Symbol, 2)){ + IValue $arg0_167 = (IValue)($aadt_subscript_int(((IConstructor)$0),0)); + if($isComparable($arg0_167.getType(), ADT_Symbol)){ + if($has_type_and_arity($arg0_167, Symbol_label_str_Symbol, 2)){ + IValue $arg0_169 = (IValue)($aadt_subscript_int(((IConstructor)($arg0_167)),0)); + if($isComparable($arg0_169.getType(), $T2)){ + if(true){ + IString lfl_0 = null; + IValue $arg1_168 = (IValue)($aadt_subscript_int(((IConstructor)($arg0_167)),1)); + if($isComparable($arg1_168.getType(), ADT_Symbol)){ + if(true){ + IConstructor lf_1 = null; + IValue $arg1_164 = (IValue)($aadt_subscript_int(((IConstructor)$0),1)); + if($isComparable($arg1_164.getType(), ADT_Symbol)){ + if($has_type_and_arity($arg1_164, Symbol_label_str_Symbol, 2)){ + IValue $arg0_166 = (IValue)($aadt_subscript_int(((IConstructor)($arg1_164)),0)); + if($isComparable($arg0_166.getType(), $T2)){ + if(true){ + IString ltl_2 = null; + IValue $arg1_165 = (IValue)($aadt_subscript_int(((IConstructor)($arg1_164)),1)); + if($isComparable($arg1_165.getType(), ADT_Symbol)){ + if(true){ + IConstructor lt_3 = null; + if($has_type_and_arity($1, Symbol_map_Symbol_Symbol, 2)){ + IValue $arg0_163 = (IValue)($aadt_subscript_int(((IConstructor)$1),0)); + if($isComparable($arg0_163.getType(), ADT_Symbol)){ + if(true){ + IConstructor rf_4 = null; + IValue $arg1_162 = (IValue)($aadt_subscript_int(((IConstructor)$1),1)); + if($isComparable($arg1_162.getType(), ADT_Symbol)){ + if(true){ + IConstructor rt_5 = null; + IBool $aux0 = (IBool)(((IBool)$constants.get(2)/*false*/)); + $aux0 = ((IBool)$constants.get(2)/*false*/); + /*muExists*/$EXP156: + do { + if($has_type_and_arity($arg0_163, Symbol_label_str_Symbol, 2)){ + IValue $arg0_158 = (IValue)($aadt_subscript_int(((IConstructor)($arg0_163)),0)); + if($isComparable($arg0_158.getType(), $T4)){ + IValue $arg1_157 = (IValue)($aadt_subscript_int(((IConstructor)($arg0_163)),1)); + if($isComparable($arg1_157.getType(), $T4)){ + $aux0 = ((IBool)$constants.get(1)/*true*/); + break $EXP156; // muSucceed + } else { + $aux0 = ((IBool)$constants.get(2)/*false*/); + continue $EXP156; + } + } else { + $aux0 = ((IBool)$constants.get(2)/*false*/); + continue $EXP156; + } + } else { + $aux0 = ((IBool)$constants.get(2)/*false*/); + continue $EXP156; + } + } while(false); + if((((IBool)($aux0))).getValue()){ + return null; + } else { + IBool $aux1 = (IBool)(((IBool)$constants.get(2)/*false*/)); + $aux1 = ((IBool)$constants.get(2)/*false*/); + /*muExists*/$EXP159: + do { + if($has_type_and_arity($arg1_162, Symbol_label_str_Symbol, 2)){ + IValue $arg0_161 = (IValue)($aadt_subscript_int(((IConstructor)($arg1_162)),0)); + if($isComparable($arg0_161.getType(), $T4)){ + IValue $arg1_160 = (IValue)($aadt_subscript_int(((IConstructor)($arg1_162)),1)); + if($isComparable($arg1_160.getType(), $T4)){ + $aux1 = ((IBool)$constants.get(1)/*true*/); + break $EXP159; // muSucceed + } else { + $aux1 = ((IBool)$constants.get(2)/*false*/); + continue $EXP159; + } + } else { + $aux1 = ((IBool)$constants.get(2)/*false*/); + continue $EXP159; + } + } else { + $aux1 = ((IBool)$constants.get(2)/*false*/); + continue $EXP159; + } + } while(false); + if((((IBool)($aux1))).getValue()){ + return null; + } else { + return ((IConstructor)($RVF.constructor(Symbol_map_Symbol_Symbol, new IValue[]{((IConstructor)($RVF.constructor(Symbol_label_str_Symbol, new IValue[]{((IString)($arg0_169)), ((IConstructor)($me.lub(((IConstructor)($arg1_168)), ((IConstructor)($arg0_163)))))}))), ((IConstructor)($RVF.constructor(Symbol_label_str_Symbol, new IValue[]{((IString)($arg0_166)), ((IConstructor)($me.lub(((IConstructor)($arg1_165)), ((IConstructor)($arg1_162)))))})))}))); + + } + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Type.rsc|(18435,236,<336,0>,<336,236>) + public IConstructor Type_lub$89bef2ae42badcac(IConstructor $0, IConstructor $1){ + + + if($has_type_and_arity($0, Symbol_map_Symbol_Symbol, 2)){ + IValue $arg0_184 = (IValue)($aadt_subscript_int(((IConstructor)$0),0)); + if($isComparable($arg0_184.getType(), ADT_Symbol)){ + if(true){ + IConstructor lf_0 = null; + IValue $arg1_183 = (IValue)($aadt_subscript_int(((IConstructor)$0),1)); + if($isComparable($arg1_183.getType(), ADT_Symbol)){ + if(true){ + IConstructor lt_1 = null; + if($has_type_and_arity($1, Symbol_map_Symbol_Symbol, 2)){ + IValue $arg0_180 = (IValue)($aadt_subscript_int(((IConstructor)$1),0)); + if($isComparable($arg0_180.getType(), ADT_Symbol)){ + if($has_type_and_arity($arg0_180, Symbol_label_str_Symbol, 2)){ + IValue $arg0_182 = (IValue)($aadt_subscript_int(((IConstructor)($arg0_180)),0)); + if($isComparable($arg0_182.getType(), $T2)){ + if(true){ + IString rfl_2 = null; + IValue $arg1_181 = (IValue)($aadt_subscript_int(((IConstructor)($arg0_180)),1)); + if($isComparable($arg1_181.getType(), ADT_Symbol)){ + if(true){ + IConstructor rf_3 = null; + IValue $arg1_177 = (IValue)($aadt_subscript_int(((IConstructor)$1),1)); + if($isComparable($arg1_177.getType(), ADT_Symbol)){ + if($has_type_and_arity($arg1_177, Symbol_label_str_Symbol, 2)){ + IValue $arg0_179 = (IValue)($aadt_subscript_int(((IConstructor)($arg1_177)),0)); + if($isComparable($arg0_179.getType(), $T2)){ + if(true){ + IString rtl_4 = null; + IValue $arg1_178 = (IValue)($aadt_subscript_int(((IConstructor)($arg1_177)),1)); + if($isComparable($arg1_178.getType(), ADT_Symbol)){ + if(true){ + IConstructor rt_5 = null; + IBool $aux2 = (IBool)(((IBool)$constants.get(2)/*false*/)); + $aux2 = ((IBool)$constants.get(2)/*false*/); + /*muExists*/$EXP171: + do { + if($has_type_and_arity($arg0_184, Symbol_label_str_Symbol, 2)){ + IValue $arg0_173 = (IValue)($aadt_subscript_int(((IConstructor)($arg0_184)),0)); + if($isComparable($arg0_173.getType(), $T4)){ + IValue $arg1_172 = (IValue)($aadt_subscript_int(((IConstructor)($arg0_184)),1)); + if($isComparable($arg1_172.getType(), $T4)){ + $aux2 = ((IBool)$constants.get(1)/*true*/); + break $EXP171; // muSucceed + } else { + $aux2 = ((IBool)$constants.get(2)/*false*/); + continue $EXP171; + } + } else { + $aux2 = ((IBool)$constants.get(2)/*false*/); + continue $EXP171; + } + } else { + $aux2 = ((IBool)$constants.get(2)/*false*/); + continue $EXP171; + } + } while(false); + if((((IBool)($aux2))).getValue()){ + return null; + } else { + IBool $aux3 = (IBool)(((IBool)$constants.get(2)/*false*/)); + $aux3 = ((IBool)$constants.get(2)/*false*/); + /*muExists*/$EXP174: + do { + if($has_type_and_arity($arg1_183, Symbol_label_str_Symbol, 2)){ + IValue $arg0_176 = (IValue)($aadt_subscript_int(((IConstructor)($arg1_183)),0)); + if($isComparable($arg0_176.getType(), $T4)){ + IValue $arg1_175 = (IValue)($aadt_subscript_int(((IConstructor)($arg1_183)),1)); + if($isComparable($arg1_175.getType(), $T4)){ + $aux3 = ((IBool)$constants.get(1)/*true*/); + break $EXP174; // muSucceed + } else { + $aux3 = ((IBool)$constants.get(2)/*false*/); + continue $EXP174; + } + } else { + $aux3 = ((IBool)$constants.get(2)/*false*/); + continue $EXP174; + } + } else { + $aux3 = ((IBool)$constants.get(2)/*false*/); + continue $EXP174; + } + } while(false); + if((((IBool)($aux3))).getValue()){ + return null; + } else { + return ((IConstructor)($RVF.constructor(Symbol_map_Symbol_Symbol, new IValue[]{((IConstructor)($RVF.constructor(Symbol_label_str_Symbol, new IValue[]{((IString)($arg0_182)), ((IConstructor)($me.lub(((IConstructor)($arg0_184)), ((IConstructor)($arg1_181)))))}))), ((IConstructor)($RVF.constructor(Symbol_label_str_Symbol, new IValue[]{((IString)($arg0_179)), ((IConstructor)($me.lub(((IConstructor)($arg1_183)), ((IConstructor)($arg1_178)))))})))}))); + + } + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Type.rsc|(18672,218,<337,0>,<337,218>) + public IConstructor Type_lub$8e262d13a8e22e5b(IConstructor $0, IConstructor $1){ + + + if($has_type_and_arity($0, Symbol_map_Symbol_Symbol, 2)){ + IValue $arg0_203 = (IValue)($aadt_subscript_int(((IConstructor)$0),0)); + if($isComparable($arg0_203.getType(), ADT_Symbol)){ + if(true){ + IConstructor lf_0 = null; + IValue $arg1_202 = (IValue)($aadt_subscript_int(((IConstructor)$0),1)); + if($isComparable($arg1_202.getType(), ADT_Symbol)){ + if(true){ + IConstructor lt_1 = null; + if($has_type_and_arity($1, Symbol_map_Symbol_Symbol, 2)){ + IValue $arg0_201 = (IValue)($aadt_subscript_int(((IConstructor)$1),0)); + if($isComparable($arg0_201.getType(), ADT_Symbol)){ + if(true){ + IConstructor rf_2 = null; + IValue $arg1_200 = (IValue)($aadt_subscript_int(((IConstructor)$1),1)); + if($isComparable($arg1_200.getType(), ADT_Symbol)){ + if(true){ + IConstructor rt_3 = null; + IBool $aux4 = (IBool)(((IBool)$constants.get(2)/*false*/)); + $aux4 = ((IBool)$constants.get(2)/*false*/); + /*muExists*/$EXP188: + do { + if($has_type_and_arity($arg0_203, Symbol_label_str_Symbol, 2)){ + IValue $arg0_190 = (IValue)($aadt_subscript_int(((IConstructor)($arg0_203)),0)); + if($isComparable($arg0_190.getType(), $T4)){ + IValue $arg1_189 = (IValue)($aadt_subscript_int(((IConstructor)($arg0_203)),1)); + if($isComparable($arg1_189.getType(), $T4)){ + $aux4 = ((IBool)$constants.get(1)/*true*/); + break $EXP188; // muSucceed + } else { + $aux4 = ((IBool)$constants.get(2)/*false*/); + continue $EXP188; + } + } else { + $aux4 = ((IBool)$constants.get(2)/*false*/); + continue $EXP188; + } + } else { + $aux4 = ((IBool)$constants.get(2)/*false*/); + continue $EXP188; + } + } while(false); + if((((IBool)($aux4))).getValue()){ + return null; + } else { + IBool $aux5 = (IBool)(((IBool)$constants.get(2)/*false*/)); + $aux5 = ((IBool)$constants.get(2)/*false*/); + /*muExists*/$EXP191: + do { + if($has_type_and_arity($arg1_202, Symbol_label_str_Symbol, 2)){ + IValue $arg0_193 = (IValue)($aadt_subscript_int(((IConstructor)($arg1_202)),0)); + if($isComparable($arg0_193.getType(), $T4)){ + IValue $arg1_192 = (IValue)($aadt_subscript_int(((IConstructor)($arg1_202)),1)); + if($isComparable($arg1_192.getType(), $T4)){ + $aux5 = ((IBool)$constants.get(1)/*true*/); + break $EXP191; // muSucceed + } else { + $aux5 = ((IBool)$constants.get(2)/*false*/); + continue $EXP191; + } + } else { + $aux5 = ((IBool)$constants.get(2)/*false*/); + continue $EXP191; + } + } else { + $aux5 = ((IBool)$constants.get(2)/*false*/); + continue $EXP191; + } + } while(false); + if((((IBool)($aux5))).getValue()){ + return null; + } else { + IBool $aux6 = (IBool)(((IBool)$constants.get(2)/*false*/)); + $aux6 = ((IBool)$constants.get(2)/*false*/); + /*muExists*/$EXP194: + do { + if($has_type_and_arity($arg0_201, Symbol_label_str_Symbol, 2)){ + IValue $arg0_196 = (IValue)($aadt_subscript_int(((IConstructor)($arg0_201)),0)); + if($isComparable($arg0_196.getType(), $T4)){ + IValue $arg1_195 = (IValue)($aadt_subscript_int(((IConstructor)($arg0_201)),1)); + if($isComparable($arg1_195.getType(), $T4)){ + $aux6 = ((IBool)$constants.get(1)/*true*/); + break $EXP194; // muSucceed + } else { + $aux6 = ((IBool)$constants.get(2)/*false*/); + continue $EXP194; + } + } else { + $aux6 = ((IBool)$constants.get(2)/*false*/); + continue $EXP194; + } + } else { + $aux6 = ((IBool)$constants.get(2)/*false*/); + continue $EXP194; + } + } while(false); + if((((IBool)($aux6))).getValue()){ + return null; + } else { + IBool $aux7 = (IBool)(((IBool)$constants.get(2)/*false*/)); + $aux7 = ((IBool)$constants.get(2)/*false*/); + /*muExists*/$EXP197: + do { + if($has_type_and_arity($arg1_200, Symbol_label_str_Symbol, 2)){ + IValue $arg0_199 = (IValue)($aadt_subscript_int(((IConstructor)($arg1_200)),0)); + if($isComparable($arg0_199.getType(), $T4)){ + IValue $arg1_198 = (IValue)($aadt_subscript_int(((IConstructor)($arg1_200)),1)); + if($isComparable($arg1_198.getType(), $T4)){ + $aux7 = ((IBool)$constants.get(1)/*true*/); + break $EXP197; // muSucceed + } else { + $aux7 = ((IBool)$constants.get(2)/*false*/); + continue $EXP197; + } + } else { + $aux7 = ((IBool)$constants.get(2)/*false*/); + continue $EXP197; + } + } else { + $aux7 = ((IBool)$constants.get(2)/*false*/); + continue $EXP197; + } + } while(false); + if((((IBool)($aux7))).getValue()){ + return null; + } else { + return ((IConstructor)($RVF.constructor(Symbol_map_Symbol_Symbol, new IValue[]{((IConstructor)($me.lub(((IConstructor)($arg0_203)), ((IConstructor)($arg0_201))))), ((IConstructor)($me.lub(((IConstructor)($arg1_202)), ((IConstructor)($arg1_200)))))}))); + + } + } + } + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Type.rsc|(18892,92,<339,0>,<339,92>) + public IConstructor Type_lub$fdf7de38b8e6e752(IConstructor $0, IConstructor $1){ + + + if($has_type_and_arity($0, Symbol_bag_Symbol, 1)){ + IValue $arg0_205 = (IValue)($aadt_subscript_int(((IConstructor)$0),0)); + if($isComparable($arg0_205.getType(), ADT_Symbol)){ + IConstructor s_0 = null; + if($has_type_and_arity($1, Symbol_bag_Symbol, 1)){ + IValue $arg0_204 = (IValue)($aadt_subscript_int(((IConstructor)$1),0)); + if($isComparable($arg0_204.getType(), ADT_Symbol)){ + IConstructor t_1 = null; + return ((IConstructor)($RVF.constructor(Symbol_bag_Symbol, new IValue[]{((IConstructor)($me.lub(((IConstructor)($arg0_205)), ((IConstructor)($arg0_204)))))}))); + + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Type.rsc|(18985,90,<340,0>,<340,90>) + public IConstructor Type_lub$9f97945a73fdc528(IConstructor $0, IConstructor $1){ + + + if($has_type_and_arity($0, Symbol_adt_str_list_Symbol, 2)){ + IValue $arg0_207 = (IValue)($aadt_subscript_int(((IConstructor)$0),0)); + if($isComparable($arg0_207.getType(), $T2)){ + IString n_0 = null; + IValue $arg1_206 = (IValue)($aadt_subscript_int(((IConstructor)$0),1)); + if($isComparable($arg1_206.getType(), $T0)){ + if($has_type_and_arity($1, Symbol_node_, 0)){ + return ((IConstructor)($RVF.constructor(Symbol_node_, new IValue[]{}))); + + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Type.rsc|(19076,82,<341,0>,<341,82>) + public IConstructor Type_lub$3503ff016335f16b(IConstructor $0, IConstructor $1){ + + + if($has_type_and_arity($0, Symbol_node_, 0)){ + if($has_type_and_arity($1, Symbol_adt_str_list_Symbol, 2)){ + IValue $arg0_209 = (IValue)($aadt_subscript_int(((IConstructor)$1),0)); + if($isComparable($arg0_209.getType(), $T2)){ + IString n_0 = null; + IValue $arg1_208 = (IValue)($aadt_subscript_int(((IConstructor)$1),1)); + if($isComparable($arg1_208.getType(), $T0)){ + return ((IConstructor)($RVF.constructor(Symbol_node_, new IValue[]{}))); + + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Type.rsc|(19159,257,<342,0>,<342,257>) + public IConstructor Type_lub$a720eedc169409ce(IConstructor $0, IConstructor $1){ + + + if($has_type_and_arity($0, Symbol_adt_str_list_Symbol, 2)){ + IValue $arg0_213 = (IValue)($aadt_subscript_int(((IConstructor)$0),0)); + if($isComparable($arg0_213.getType(), $T2)){ + IString n_0 = ((IString)($arg0_213)); + IValue $arg1_212 = (IValue)($aadt_subscript_int(((IConstructor)$0),1)); + if($isComparable($arg1_212.getType(), $T0)){ + IList lp_1 = ((IList)($arg1_212)); + if($has_type_and_arity($1, Symbol_adt_str_list_Symbol, 2)){ + IValue $arg0_211 = (IValue)($aadt_subscript_int(((IConstructor)$1),0)); + if($isComparable($arg0_211.getType(), $T2)){ + if(($arg0_213 != null)){ + if($arg0_213.match($arg0_211)){ + IValue $arg1_210 = (IValue)($aadt_subscript_int(((IConstructor)$1),1)); + if($isComparable($arg1_210.getType(), $T0)){ + IList rp_2 = ((IList)($arg1_210)); + if((((IBool)($equal(((IInteger)(M_List.size(((IList)($arg1_212))))), ((IInteger)(M_List.size(((IList)($arg1_210))))))))).getValue()){ + if((((IBool)($equal(((IList)($me.getParamLabels(((IList)($arg1_212))))), ((IList)($me.getParamLabels(((IList)($arg1_210))))))))).getValue()){ + if((((IBool)($aint_lessequal_aint(((IInteger)(M_List.size(((IList)($me.getParamLabels(((IList)($arg1_212)))))))),((IInteger)$constants.get(4)/*0*/)).not()))).getValue()){ + return ((IConstructor)($RVF.constructor(Symbol_adt_str_list_Symbol, new IValue[]{((IString)($arg0_211)), ((IList)($me.addParamLabels(((IList)($me.lub(((IList)($arg1_212)), ((IList)($arg1_210))))), ((IList)($me.getParamLabels(((IList)($arg1_212))))))))}))); + + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + $arg0_213 = ((IValue)($arg0_211)); + IValue $arg1_210 = (IValue)($aadt_subscript_int(((IConstructor)$1),1)); + if($isComparable($arg1_210.getType(), $T0)){ + IList rp_2 = ((IList)($arg1_210)); + if((((IBool)($equal(((IInteger)(M_List.size(((IList)($arg1_212))))), ((IInteger)(M_List.size(((IList)($arg1_210))))))))).getValue()){ + if((((IBool)($equal(((IList)($me.getParamLabels(((IList)($arg1_212))))), ((IList)($me.getParamLabels(((IList)($arg1_210))))))))).getValue()){ + if((((IBool)($aint_lessequal_aint(((IInteger)(M_List.size(((IList)($me.getParamLabels(((IList)($arg1_212)))))))),((IInteger)$constants.get(4)/*0*/)).not()))).getValue()){ + return ((IConstructor)($RVF.constructor(Symbol_adt_str_list_Symbol, new IValue[]{((IString)($arg0_211)), ((IList)($me.addParamLabels(((IList)($me.lub(((IList)($arg1_212)), ((IList)($arg1_210))))), ((IList)($me.getParamLabels(((IList)($arg1_212))))))))}))); + + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Type.rsc|(19417,179,<343,0>,<343,179>) + public IConstructor Type_lub$771c2324f17afc4f(IConstructor $0, IConstructor $1){ + + + if($has_type_and_arity($0, Symbol_adt_str_list_Symbol, 2)){ + IValue $arg0_217 = (IValue)($aadt_subscript_int(((IConstructor)$0),0)); + if($isComparable($arg0_217.getType(), $T2)){ + IString n_0 = ((IString)($arg0_217)); + IValue $arg1_216 = (IValue)($aadt_subscript_int(((IConstructor)$0),1)); + if($isComparable($arg1_216.getType(), $T0)){ + IList lp_1 = ((IList)($arg1_216)); + if($has_type_and_arity($1, Symbol_adt_str_list_Symbol, 2)){ + IValue $arg0_215 = (IValue)($aadt_subscript_int(((IConstructor)$1),0)); + if($isComparable($arg0_215.getType(), $T2)){ + if(($arg0_217 != null)){ + if($arg0_217.match($arg0_215)){ + IValue $arg1_214 = (IValue)($aadt_subscript_int(((IConstructor)$1),1)); + if($isComparable($arg1_214.getType(), $T0)){ + IList rp_2 = ((IList)($arg1_214)); + if((((IBool)($equal(((IInteger)(M_List.size(((IList)($arg1_216))))), ((IInteger)(M_List.size(((IList)($arg1_214))))))))).getValue()){ + if((((IBool)($equal(((IInteger)(M_List.size(((IList)($me.getParamLabels(((IList)($arg1_216)))))))), ((IInteger)$constants.get(4)/*0*/))))).getValue()){ + return ((IConstructor)($RVF.constructor(Symbol_adt_str_list_Symbol, new IValue[]{((IString)($arg0_215)), ((IList)($me.lub(((IList)($arg1_216)), ((IList)($arg1_214)))))}))); + + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + $arg0_217 = ((IValue)($arg0_215)); + IValue $arg1_214 = (IValue)($aadt_subscript_int(((IConstructor)$1),1)); + if($isComparable($arg1_214.getType(), $T0)){ + IList rp_2 = ((IList)($arg1_214)); + if((((IBool)($equal(((IInteger)(M_List.size(((IList)($arg1_216))))), ((IInteger)(M_List.size(((IList)($arg1_214))))))))).getValue()){ + if((((IBool)($equal(((IInteger)(M_List.size(((IList)($me.getParamLabels(((IList)($arg1_216)))))))), ((IInteger)$constants.get(4)/*0*/))))).getValue()){ + return ((IConstructor)($RVF.constructor(Symbol_adt_str_list_Symbol, new IValue[]{((IString)($arg0_215)), ((IList)($me.lub(((IList)($arg1_216)), ((IList)($arg1_214)))))}))); + + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Type.rsc|(19597,124,<344,0>,<344,124>) + public IConstructor Type_lub$03e04b7cfdcf0b97(IConstructor $0, IConstructor $1){ + + + if($has_type_and_arity($0, Symbol_adt_str_list_Symbol, 2)){ + IValue $arg0_221 = (IValue)($aadt_subscript_int(((IConstructor)$0),0)); + if($isComparable($arg0_221.getType(), $T2)){ + IString n_0 = null; + IValue $arg1_220 = (IValue)($aadt_subscript_int(((IConstructor)$0),1)); + if($isComparable($arg1_220.getType(), $T0)){ + IList lp_1 = null; + if($has_type_and_arity($1, Symbol_adt_str_list_Symbol, 2)){ + IValue $arg0_219 = (IValue)($aadt_subscript_int(((IConstructor)$1),0)); + if($isComparable($arg0_219.getType(), $T2)){ + IString m_2 = null; + IValue $arg1_218 = (IValue)($aadt_subscript_int(((IConstructor)$1),1)); + if($isComparable($arg1_218.getType(), $T0)){ + IList rp_3 = null; + if((((IBool)($equal(((IString)($arg0_221)),((IString)($arg0_219))).not()))).getValue()){ + return ((IConstructor)($RVF.constructor(Symbol_node_, new IValue[]{}))); + + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Type.rsc|(19722,130,<345,0>,<345,130>) + public IConstructor Type_lub$4d768567dbe9a5cf(IConstructor $0, IConstructor $1){ + + + if($has_type_and_arity($0, Symbol_adt_str_list_Symbol, 2)){ + IValue $arg0_226 = (IValue)($aadt_subscript_int(((IConstructor)$0),0)); + if($isComparable($arg0_226.getType(), $T2)){ + IString ln_0 = null; + IValue $arg1_225 = (IValue)($aadt_subscript_int(((IConstructor)$0),1)); + if($isComparable($arg1_225.getType(), $T0)){ + IList lp_1 = null; + if($has_type_and_arity($1, Symbol_cons_Symbol_str_list_Symbol, 3)){ + IValue $arg0_224 = (IValue)($aadt_subscript_int(((IConstructor)$1),0)); + if($isComparable($arg0_224.getType(), ADT_Symbol)){ + IConstructor b_2 = null; + IValue $arg1_223 = (IValue)($aadt_subscript_int(((IConstructor)$1),1)); + if($isComparable($arg1_223.getType(), $T4)){ + IValue $arg2_222 = (IValue)($aadt_subscript_int(((IConstructor)$1),2)); + if($isComparable($arg2_222.getType(), $T0)){ + return ((IConstructor)($me.lub(((IConstructor)($RVF.constructor(Symbol_adt_str_list_Symbol, new IValue[]{((IString)($arg0_226)), ((IList)($arg1_225))}))), ((IConstructor)($arg0_224))))); + + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Type.rsc|(19854,121,<347,0>,<347,121>) + public IConstructor Type_lub$9c3d6ec5108762e5(IConstructor $0, IConstructor $1){ + + + if($has_type_and_arity($0, Symbol_cons_Symbol_str_list_Symbol, 3)){ + IValue $arg0_232 = (IValue)($aadt_subscript_int(((IConstructor)$0),0)); + if($isComparable($arg0_232.getType(), ADT_Symbol)){ + IConstructor la_0 = null; + IValue $arg1_231 = (IValue)($aadt_subscript_int(((IConstructor)$0),1)); + if($isComparable($arg1_231.getType(), $T4)){ + IValue $arg2_230 = (IValue)($aadt_subscript_int(((IConstructor)$0),2)); + if($isComparable($arg2_230.getType(), $T0)){ + if($has_type_and_arity($1, Symbol_cons_Symbol_str_list_Symbol, 3)){ + IValue $arg0_229 = (IValue)($aadt_subscript_int(((IConstructor)$1),0)); + if($isComparable($arg0_229.getType(), ADT_Symbol)){ + IConstructor ra_1 = null; + IValue $arg1_228 = (IValue)($aadt_subscript_int(((IConstructor)$1),1)); + if($isComparable($arg1_228.getType(), $T4)){ + IValue $arg2_227 = (IValue)($aadt_subscript_int(((IConstructor)$1),2)); + if($isComparable($arg2_227.getType(), $T0)){ + return ((IConstructor)($me.lub(((IConstructor)($arg0_232)), ((IConstructor)($arg0_229))))); + + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Type.rsc|(19976,129,<348,0>,<348,129>) + public IConstructor Type_lub$db14cac8db6fcb97(IConstructor $0, IConstructor $1){ + + + if($has_type_and_arity($0, Symbol_cons_Symbol_str_list_Symbol, 3)){ + IValue $arg0_237 = (IValue)($aadt_subscript_int(((IConstructor)$0),0)); + if($isComparable($arg0_237.getType(), ADT_Symbol)){ + IConstructor a_0 = null; + IValue $arg1_236 = (IValue)($aadt_subscript_int(((IConstructor)$0),1)); + if($isComparable($arg1_236.getType(), $T4)){ + IValue $arg2_235 = (IValue)($aadt_subscript_int(((IConstructor)$0),2)); + if($isComparable($arg2_235.getType(), $T0)){ + IList lp_1 = null; + if($has_type_and_arity($1, Symbol_adt_str_list_Symbol, 2)){ + IValue $arg0_234 = (IValue)($aadt_subscript_int(((IConstructor)$1),0)); + if($isComparable($arg0_234.getType(), $T2)){ + IString n_2 = null; + IValue $arg1_233 = (IValue)($aadt_subscript_int(((IConstructor)$1),1)); + if($isComparable($arg1_233.getType(), $T0)){ + IList rp_3 = null; + return ((IConstructor)($me.lub(((IConstructor)($arg0_237)), ((IConstructor)($RVF.constructor(Symbol_adt_str_list_Symbol, new IValue[]{((IString)($arg0_234)), ((IList)($arg1_233))})))))); + + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Type.rsc|(20106,97,<349,0>,<349,97>) + public IConstructor Type_lub$ce98626caf2b01c0(IConstructor $0, IConstructor $1){ + + + if($has_type_and_arity($0, Symbol_cons_Symbol_str_list_Symbol, 3)){ + IValue $arg0_240 = (IValue)($aadt_subscript_int(((IConstructor)$0),0)); + if($isComparable($arg0_240.getType(), ADT_Symbol)){ + IValue $arg1_239 = (IValue)($aadt_subscript_int(((IConstructor)$0),1)); + if($isComparable($arg1_239.getType(), $T4)){ + IValue $arg2_238 = (IValue)($aadt_subscript_int(((IConstructor)$0),2)); + if($isComparable($arg2_238.getType(), $T0)){ + if($has_type_and_arity($1, Symbol_node_, 0)){ + return ((IConstructor)($RVF.constructor(Symbol_node_, new IValue[]{}))); + + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Type.rsc|(20205,101,<351,0>,<351,101>) + public IConstructor Type_lub$2bf17a517ba3b924(IConstructor $0, IConstructor r_1){ + + + if($has_type_and_arity($0, Symbol_alias_str_list_Symbol_Symbol, 3)){ + IValue $arg0_243 = (IValue)($aadt_subscript_int(((IConstructor)$0),0)); + if($isComparable($arg0_243.getType(), $T2)){ + IValue $arg1_242 = (IValue)($aadt_subscript_int(((IConstructor)$0),1)); + if($isComparable($arg1_242.getType(), $T0)){ + IValue $arg2_241 = (IValue)($aadt_subscript_int(((IConstructor)$0),2)); + if($isComparable($arg2_241.getType(), ADT_Symbol)){ + IConstructor aliased_0 = null; + return ((IConstructor)($me.lub(((IConstructor)($arg2_241)), ((IConstructor)r_1)))); + + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Type.rsc|(20307,93,<352,0>,<352,93>) + public IConstructor Type_lub$df08b24dcf17ae58(IConstructor l_0, IConstructor $1){ + + + if($has_type_and_arity($1, Symbol_alias_str_list_Symbol_Symbol, 3)){ + IValue $arg0_246 = (IValue)($aadt_subscript_int(((IConstructor)$1),0)); + if($isComparable($arg0_246.getType(), $T2)){ + IValue $arg1_245 = (IValue)($aadt_subscript_int(((IConstructor)$1),1)); + if($isComparable($arg1_245.getType(), $T0)){ + IValue $arg2_244 = (IValue)($aadt_subscript_int(((IConstructor)$1),2)); + if($isComparable($arg2_244.getType(), ADT_Symbol)){ + IConstructor aliased_1 = null; + return ((IConstructor)($me.lub(((IConstructor)l_0), ((IConstructor)($arg2_244))))); + + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Type.rsc|(20402,149,<354,0>,<354,149>) + public IBool Type_keepParams$932e8cdb74f21297(IConstructor $0, IConstructor $1){ + + + if($has_type_and_arity($0, Symbol_parameter_str_Symbol, 2)){ + IValue $arg0_251 = (IValue)($aadt_subscript_int(((IConstructor)$0),0)); + if($isComparable($arg0_251.getType(), $T2)){ + IString s1_0 = ((IString)($arg0_251)); + IValue $arg1_250 = (IValue)($aadt_subscript_int(((IConstructor)$0),1)); + if($isComparable($arg1_250.getType(), ADT_Symbol)){ + IConstructor bound1_1 = ((IConstructor)($arg1_250)); + if($has_type_and_arity($1, Symbol_parameter_str_Symbol, 2)){ + IValue $arg0_249 = (IValue)($aadt_subscript_int(((IConstructor)$1),0)); + if($isComparable($arg0_249.getType(), $T2)){ + IString s2_2 = ((IString)($arg0_249)); + IValue $arg1_248 = (IValue)($aadt_subscript_int(((IConstructor)$1),1)); + if($isComparable($arg1_248.getType(), ADT_Symbol)){ + IConstructor bound2_3 = ((IConstructor)($arg1_248)); + if((((IBool)($equal(((IString)($arg0_251)), ((IString)($arg0_249)))))).getValue()){ + return ((IBool)($me.equivalent(((IConstructor)($arg1_250)), ((IConstructor)($arg1_248))))); + + } else { + return ((IBool)$constants.get(2)/*false*/); + + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Type.rsc|(20553,147,<356,0>,<356,147>) + public IConstructor Type_lub$dbf1dfef76adf321(IConstructor l_0, IConstructor r_3){ + + + if($has_type_and_arity(l_0, Symbol_parameter_str_Symbol, 2)){ + IValue $arg0_255 = (IValue)($aadt_subscript_int(((IConstructor)l_0),0)); + if($isComparable($arg0_255.getType(), $T2)){ + IString s1_1 = ((IString)($arg0_255)); + IValue $arg1_254 = (IValue)($aadt_subscript_int(((IConstructor)l_0),1)); + if($isComparable($arg1_254.getType(), ADT_Symbol)){ + IConstructor bound1_2 = ((IConstructor)($arg1_254)); + if($has_type_and_arity(r_3, Symbol_parameter_str_Symbol, 2)){ + IValue $arg0_253 = (IValue)($aadt_subscript_int(((IConstructor)r_3),0)); + if($isComparable($arg0_253.getType(), $T2)){ + IString s2_4 = ((IString)($arg0_253)); + IValue $arg1_252 = (IValue)($aadt_subscript_int(((IConstructor)r_3),1)); + if($isComparable($arg1_252.getType(), ADT_Symbol)){ + IConstructor bound2_5 = ((IConstructor)($arg1_252)); + if((((IBool)($me.keepParams(((IConstructor)l_0), ((IConstructor)r_3))))).getValue()){ + return ((IConstructor)l_0); + + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Type.rsc|(20701,165,<357,0>,<357,165>) + public IConstructor Type_lub$e8aaf393ebf72b9b(IConstructor l_0, IConstructor r_3){ + + + if($has_type_and_arity(l_0, Symbol_parameter_str_Symbol, 2)){ + IValue $arg0_259 = (IValue)($aadt_subscript_int(((IConstructor)l_0),0)); + if($isComparable($arg0_259.getType(), $T2)){ + IString s1_1 = ((IString)($arg0_259)); + IValue $arg1_258 = (IValue)($aadt_subscript_int(((IConstructor)l_0),1)); + if($isComparable($arg1_258.getType(), ADT_Symbol)){ + IConstructor bound1_2 = ((IConstructor)($arg1_258)); + if($has_type_and_arity(r_3, Symbol_parameter_str_Symbol, 2)){ + IValue $arg0_257 = (IValue)($aadt_subscript_int(((IConstructor)r_3),0)); + if($isComparable($arg0_257.getType(), $T2)){ + IString s2_4 = ((IString)($arg0_257)); + IValue $arg1_256 = (IValue)($aadt_subscript_int(((IConstructor)r_3),1)); + if($isComparable($arg1_256.getType(), ADT_Symbol)){ + IConstructor bound2_5 = ((IConstructor)($arg1_256)); + if((((IBool)($me.keepParams(((IConstructor)l_0), ((IConstructor)r_3))))).getValue()){ + return null; + } else { + return ((IConstructor)($me.lub(((IConstructor)($arg1_258)), ((IConstructor)($arg1_256))))); + + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Type.rsc|(20867,106,<358,0>,<358,106>) + public IConstructor Type_lub$11e6e64c52d2b7bc(IConstructor $0, IConstructor r_1){ + + + if($has_type_and_arity($0, Symbol_parameter_str_Symbol, 2)){ + IValue $arg0_261 = (IValue)($aadt_subscript_int(((IConstructor)$0),0)); + if($isComparable($arg0_261.getType(), $T2)){ + IValue $arg1_260 = (IValue)($aadt_subscript_int(((IConstructor)$0),1)); + if($isComparable($arg1_260.getType(), ADT_Symbol)){ + IConstructor bound_0 = null; + if((((IBool)($me.isTypeVar(((IConstructor)r_1))))).getValue()){ + return null; + } else { + return ((IConstructor)($me.lub(((IConstructor)($arg1_260)), ((IConstructor)r_1)))); + + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Type.rsc|(20974,106,<359,0>,<359,106>) + public IConstructor Type_lub$afcfe5adb1fb93eb(IConstructor l_0, IConstructor $1){ + + + if($has_type_and_arity($1, Symbol_parameter_str_Symbol, 2)){ + IValue $arg0_263 = (IValue)($aadt_subscript_int(((IConstructor)$1),0)); + if($isComparable($arg0_263.getType(), $T2)){ + IValue $arg1_262 = (IValue)($aadt_subscript_int(((IConstructor)$1),1)); + if($isComparable($arg1_262.getType(), ADT_Symbol)){ + IConstructor bound_1 = null; + if((((IBool)($me.isTypeVar(((IConstructor)l_0))))).getValue()){ + return null; + } else { + return ((IConstructor)($me.lub(((IConstructor)l_0), ((IConstructor)($arg1_262))))); + + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Type.rsc|(21082,103,<361,0>,<361,103>) + public IConstructor Type_lub$4c51769afaf2977a(IConstructor $0, IConstructor $1){ + + + if($has_type_and_arity($0, Symbol_reified_Symbol, 1)){ + IValue $arg0_265 = (IValue)($aadt_subscript_int(((IConstructor)$0),0)); + if($isComparable($arg0_265.getType(), ADT_Symbol)){ + IConstructor l_0 = null; + if($has_type_and_arity($1, Symbol_reified_Symbol, 1)){ + IValue $arg0_264 = (IValue)($aadt_subscript_int(((IConstructor)$1),0)); + if($isComparable($arg0_264.getType(), ADT_Symbol)){ + IConstructor r_1 = null; + return ((IConstructor)($RVF.constructor(Symbol_reified_Symbol, new IValue[]{((IConstructor)($me.lub(((IConstructor)($arg0_265)), ((IConstructor)($arg0_264)))))}))); + + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Type.rsc|(21186,81,<362,0>,<362,81>) + public IConstructor Type_lub$ba70259261126d74(IConstructor $0, IConstructor $1){ + + + if($has_type_and_arity($0, Symbol_reified_Symbol, 1)){ + IValue $arg0_266 = (IValue)($aadt_subscript_int(((IConstructor)$0),0)); + if($isComparable($arg0_266.getType(), ADT_Symbol)){ + IConstructor l_0 = null; + if($has_type_and_arity($1, Symbol_node_, 0)){ + return ((IConstructor)($RVF.constructor(Symbol_node_, new IValue[]{}))); + + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Type.rsc|(21269,406,<364,0>,<373,1>) + public IConstructor Type_lub$21fcb18b79a5d185(IConstructor $0, IConstructor $1){ + + + if($has_type_and_arity($0, Symbol_func_Symbol_list_Symbol_list_Symbol, 3)){ + IValue $arg0_273 = (IValue)($aadt_subscript_int(((IConstructor)$0),0)); + if($isComparable($arg0_273.getType(), ADT_Symbol)){ + IConstructor lr_0 = null; + IValue $arg1_272 = (IValue)($aadt_subscript_int(((IConstructor)$0),1)); + if($isComparable($arg1_272.getType(), $T0)){ + IList lp_1 = null; + IValue $arg2_271 = (IValue)($aadt_subscript_int(((IConstructor)$0),2)); + if($isComparable($arg2_271.getType(), $T0)){ + IList lkw_2 = null; + if($has_type_and_arity($1, Symbol_func_Symbol_list_Symbol_list_Symbol, 3)){ + IValue $arg0_270 = (IValue)($aadt_subscript_int(((IConstructor)$1),0)); + if($isComparable($arg0_270.getType(), ADT_Symbol)){ + IConstructor rr_3 = null; + IValue $arg1_269 = (IValue)($aadt_subscript_int(((IConstructor)$1),1)); + if($isComparable($arg1_269.getType(), $T0)){ + IList rp_4 = null; + IValue $arg2_268 = (IValue)($aadt_subscript_int(((IConstructor)$1),2)); + if($isComparable($arg2_268.getType(), $T0)){ + IList rkw_5 = null; + IConstructor lubReturn_6 = ((IConstructor)($me.lub(((IConstructor)($arg0_273)), ((IConstructor)($arg0_270))))); + IConstructor lubParams_7 = ((IConstructor)($me.glb(((IConstructor)($RVF.constructor(Symbol_tuple_list_Symbol, new IValue[]{((IList)($arg1_272))}))), ((IConstructor)($RVF.constructor(Symbol_tuple_list_Symbol, new IValue[]{((IList)($arg1_269))})))))); + if((((IBool)($me.isTupleType(((IConstructor)lubParams_7))))).getValue()){ + return ((IConstructor)($RVF.constructor(Symbol_func_Symbol_list_Symbol_list_Symbol, new IValue[]{((IConstructor)lubReturn_6), ((IList)(((IList)($aadt_get_field(((IConstructor)lubParams_7), "symbols"))))), ((IList)(((((IBool)($equal(((IList)($arg2_271)), ((IList)($arg2_268)))))).getValue() ? $arg2_271 : ((IList)$constants.get(0)/*[]*/))))}))); + + } else { + return ((IConstructor)($RVF.constructor(Symbol_value_, new IValue[]{}))); + + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Type.rsc|(21677,67,<375,0>,<375,67>) + public IConstructor Type_lub$9915f83b2e9ee2f9(IConstructor $0, IConstructor r_1){ + + + if($has_type_and_arity($0, Symbol_label_str_Symbol, 2)){ + IValue $arg0_275 = (IValue)($aadt_subscript_int(((IConstructor)$0),0)); + if($isComparable($arg0_275.getType(), $T4)){ + IValue $arg1_274 = (IValue)($aadt_subscript_int(((IConstructor)$0),1)); + if($isComparable($arg1_274.getType(), ADT_Symbol)){ + IConstructor l_0 = null; + return ((IConstructor)($me.lub(((IConstructor)($arg1_274)), ((IConstructor)r_1)))); + + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Type.rsc|(21745,67,<376,0>,<376,67>) + public IConstructor Type_lub$d3a3e906a73734c7(IConstructor l_0, IConstructor $1){ + + + if($has_type_and_arity($1, Symbol_label_str_Symbol, 2)){ + IValue $arg0_277 = (IValue)($aadt_subscript_int(((IConstructor)$1),0)); + if($isComparable($arg0_277.getType(), $T4)){ + IValue $arg1_276 = (IValue)($aadt_subscript_int(((IConstructor)$1),1)); + if($isComparable($arg1_276.getType(), ADT_Symbol)){ + IConstructor r_1 = null; + return ((IConstructor)($me.lub(((IConstructor)l_0), ((IConstructor)($arg1_276))))); + + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Type.rsc|(21814,121,<378,0>,<378,121>) + public IList Type_lub$b4ef79728aa03e7e(IList l_0, IList r_1){ + + + if((((IBool)($equal(((IInteger)(M_List.size(((IList)l_0)))), ((IInteger)(M_List.size(((IList)r_1)))))))).getValue()){ + final IListWriter $listwriter278 = (IListWriter)$RVF.listWriter(); + $LCOMP279_GEN21894: + for(IValue $elem280_for : ((IList)(M_List.index(((IList)l_0))))){ + IInteger $elem280 = (IInteger) $elem280_for; + IInteger idx_2 = null; + $listwriter278.append($me.lub(((IConstructor)($alist_subscript_int(((IList)l_0),((IInteger)($elem280)).intValue()))), ((IConstructor)($alist_subscript_int(((IList)r_1),((IInteger)($elem280)).intValue()))))); + + } + + return ((IList)($listwriter278.done())); + + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Type.rsc|(21937,77,<379,0>,<379,77>) + public IList Type_lub$2ad0993f943ef630(IList l_0, IList r_1){ + + + return ((IList)$constants.get(7)/*[value()]*/); + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Type.rsc|(22017,82,<381,0>,<381,82>) + public IBool Type_allLabeled$448fbafcf2280718(IList l_0){ + + + IBool $done282 = (IBool)(((IBool)$constants.get(1)/*true*/)); + $ALL283_GEN22063: + for(IValue $elem286_for : ((IList)l_0)){ + IConstructor $elem286 = (IConstructor) $elem286_for; + IConstructor li_1 = null; + if($has_type_and_arity($elem286, Symbol_label_str_Symbol, 2)){ + IValue $arg0_285 = (IValue)($aadt_subscript_int(((IConstructor)($elem286)),0)); + if($isComparable($arg0_285.getType(), $T4)){ + IValue $arg1_284 = (IValue)($aadt_subscript_int(((IConstructor)($elem286)),1)); + if($isComparable($arg1_284.getType(), $T4)){ + continue $ALL283_GEN22063; + + } else { + $done282 = ((IBool)$constants.get(2)/*false*/); + break $ALL283_GEN22063; // muBreak + + } + } else { + $done282 = ((IBool)$constants.get(2)/*false*/); + break $ALL283_GEN22063; // muBreak + + } + } else { + $done282 = ((IBool)$constants.get(2)/*false*/); + break $ALL283_GEN22063; // muBreak + + } + } + + return ((IBool)($done282)); + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Type.rsc|(22100,84,<382,0>,<382,84>) + public IBool Type_noneLabeled$59f0d0b15364377f(IList l_0){ + + + IBool $done288 = (IBool)(((IBool)$constants.get(1)/*true*/)); + $ALL289_GEN22147: + for(IValue $elem292_for : ((IList)l_0)){ + IConstructor $elem292 = (IConstructor) $elem292_for; + IConstructor li_1 = null; + if($has_type_and_arity($elem292, Symbol_label_str_Symbol, 2)){ + IValue $arg0_291 = (IValue)($aadt_subscript_int(((IConstructor)($elem292)),0)); + if($isComparable($arg0_291.getType(), $T4)){ + IValue $arg1_290 = (IValue)($aadt_subscript_int(((IConstructor)($elem292)),1)); + if($isComparable($arg1_290.getType(), $T4)){ + $done288 = ((IBool)$constants.get(2)/*false*/); + break $ALL289_GEN22147; // muBreak + + } else { + continue $ALL289_GEN22147; + + } + } else { + $done288 = ((IBool)$constants.get(2)/*false*/); + break $ALL289_GEN22147; // muBreak + + } + } else { + $done288 = ((IBool)$constants.get(2)/*false*/); + break $ALL289_GEN22147; // muBreak + + } + } + + return ((IBool)($done288)); + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Type.rsc|(22185,89,<383,0>,<383,89>) + public IList Type_getLabels$75df4fafda7b0225(IList l_0){ + + + final IListWriter $listwriter293 = (IListWriter)$RVF.listWriter(); + $LCOMP294_GEN22237: + for(IValue $elem297_for : ((IList)l_0)){ + IConstructor $elem297 = (IConstructor) $elem297_for; + IConstructor li_1 = null; + if($has_type_and_arity($elem297, Symbol_label_str_Symbol, 2)){ + IValue $arg0_296 = (IValue)($aadt_subscript_int(((IConstructor)($elem297)),0)); + if($isComparable($arg0_296.getType(), $T2)){ + IString s_2 = null; + IValue $arg1_295 = (IValue)($aadt_subscript_int(((IConstructor)($elem297)),1)); + if($isComparable($arg1_295.getType(), $T4)){ + $listwriter293.append($arg0_296); + + } else { + continue $LCOMP294_GEN22237; + } + } else { + continue $LCOMP294_GEN22237; + } + } else { + continue $LCOMP294_GEN22237; + } + } + + return ((IList)($listwriter293.done())); + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Type.rsc|(22275,138,<384,0>,<384,138>) + public IList Type_addLabels$981aeb1962053f6d(IList l_0, IList s_1){ + + + if((((IBool)($equal(((IInteger)(M_List.size(((IList)l_0)))), ((IInteger)(M_List.size(((IList)s_1)))))))).getValue()){ + final IListWriter $listwriter298 = (IListWriter)$RVF.listWriter(); + $LCOMP299_GEN22371: + for(IValue $elem300_for : ((IList)(M_List.index(((IList)l_0))))){ + IInteger $elem300 = (IInteger) $elem300_for; + IInteger idx_2 = null; + $listwriter298.append($RVF.constructor(Symbol_label_str_Symbol, new IValue[]{((IString)($alist_subscript_int(((IList)s_1),((IInteger)($elem300)).intValue()))), ((IConstructor)($alist_subscript_int(((IList)l_0),((IInteger)($elem300)).intValue())))})); + + } + + return ((IList)($listwriter298.done())); + + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Type.rsc|(22414,136,<385,0>,<385,136>) + public IList Type_addLabels$c61a5cc3caa0d718(IList l_0, IList s_1){ + + + final Template $template301 = (Template)new Template($RVF, "Length of symbol list "); + $template301.beginIndent(" "); + $template301.addVal(l_0); + $template301.endIndent(" "); + $template301.addStr(" and label list "); + $template301.beginIndent(" "); + $template301.addVal(s_1); + $template301.endIndent(" "); + $template301.addStr(" much match"); + throw new Throw($template301.close()); + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Type.rsc|(22551,102,<386,0>,<386,102>) + public IList Type_stripLabels$476c8af6f8a4ff77(IList l_0){ + + + final IListWriter $listwriter302 = (IListWriter)$RVF.listWriter(); + $LCOMP303_GEN22643: + for(IValue $elem307_for : ((IList)l_0)){ + IConstructor $elem307 = (IConstructor) $elem307_for; + IConstructor li_2 = null; + IValue $arg0_306 = (IValue)($aadt_subscript_int(((IConstructor)($elem307)),0)); + IValue $arg1_305 = (IValue)($aadt_subscript_int(((IConstructor)($elem307)),1)); + IConstructor v_1 = null; + $listwriter302.append(($has_type_and_arity($elem307, Symbol_label_str_Symbol, 2) ? ($isComparable($arg0_306.getType(), $T4) ? ($isComparable($arg1_305.getType(), ADT_Symbol) ? $arg1_305 : $elem307) : $elem307) : $elem307)); + + } + + return ((IList)($listwriter302.done())); + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Type.rsc|(22656,98,<388,0>,<388,98>) + public IList Type_getParamLabels$d148bd4a03929246(IList l_0){ + + + final IListWriter $listwriter308 = (IListWriter)$RVF.listWriter(); + $LCOMP309_GEN22713: + for(IValue $elem312_for : ((IList)l_0)){ + IConstructor $elem312 = (IConstructor) $elem312_for; + IConstructor li_1 = null; + if($has_type_and_arity($elem312, Symbol_parameter_str_Symbol, 2)){ + IValue $arg0_311 = (IValue)($aadt_subscript_int(((IConstructor)($elem312)),0)); + if($isComparable($arg0_311.getType(), $T2)){ + IString s_2 = null; + IValue $arg1_310 = (IValue)($aadt_subscript_int(((IConstructor)($elem312)),1)); + if($isComparable($arg1_310.getType(), $T4)){ + $listwriter308.append($arg0_311); + + } else { + continue $LCOMP309_GEN22713; + } + } else { + continue $LCOMP309_GEN22713; + } + } else { + continue $LCOMP309_GEN22713; + } + } + + return ((IList)($listwriter308.done())); + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Type.rsc|(22755,147,<389,0>,<389,147>) + public IList Type_addParamLabels$9a2fcec6caf1a7af(IList l_0, IList s_1){ + + + if((((IBool)($equal(((IInteger)(M_List.size(((IList)l_0)))), ((IInteger)(M_List.size(((IList)s_1)))))))).getValue()){ + final IListWriter $listwriter313 = (IListWriter)$RVF.listWriter(); + $LCOMP314_GEN22860: + for(IValue $elem315_for : ((IList)(M_List.index(((IList)l_0))))){ + IInteger $elem315 = (IInteger) $elem315_for; + IInteger idx_2 = null; + $listwriter313.append($RVF.constructor(Symbol_parameter_str_Symbol, new IValue[]{((IString)($alist_subscript_int(((IList)s_1),((IInteger)($elem315)).intValue()))), ((IConstructor)($alist_subscript_int(((IList)l_0),((IInteger)($elem315)).intValue())))})); + + } + + return ((IList)($listwriter313.done())); + + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Type.rsc|(22903,133,<390,0>,<390,133>) + public IList Type_addParamLabels$237a32acd91d3f4b(IList l_0, IList s_1){ + + + throw new Throw(((IString)$constants.get(8)/*"Length of symbol list and label list much match"*/)); + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Type.rsc|(23039,265,<392,0>,<396,35>) + public IConstructor Type_glb$c33fe84981451d5d(IConstructor s_0, IConstructor s){ + + + if((s_0 != null)){ + if(s_0.match(s)){ + return ((IConstructor)s_0); + + } else { + return null; + } + } else { + s_0 = ((IConstructor)s); + return ((IConstructor)s_0); + + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Type.rsc|(23305,56,<397,0>,<397,56>) + public IConstructor Type_glb$c7e9058fa842d39e(IConstructor s_0, IConstructor t_1){ + + + return ((IConstructor)$constants.get(9)/*void()*/); + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Type.rsc|(23363,63,<399,0>,<399,63>) + public IConstructor Type_glb$bb211af2491da9e9(IConstructor $0, IConstructor t_0){ + + + if($has_type_and_arity($0, Symbol_void_, 0)){ + return ((IConstructor)($RVF.constructor(Symbol_void_, new IValue[]{}))); + + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Type.rsc|(23427,63,<400,0>,<400,63>) + public IConstructor Type_glb$4c1d7a7db4cf16ca(IConstructor s_0, IConstructor $1){ + + + if($has_type_and_arity($1, Symbol_void_, 0)){ + return ((IConstructor)($RVF.constructor(Symbol_void_, new IValue[]{}))); + + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Type.rsc|(23491,50,<401,0>,<401,50>) + public IConstructor Type_glb$c62adde378db5726(IConstructor $0, IConstructor t_0){ + + + if($has_type_and_arity($0, Symbol_value_, 0)){ + return ((IConstructor)t_0); + + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Type.rsc|(23542,50,<402,0>,<402,50>) + public IConstructor Type_glb$44d70430e3ea2351(IConstructor s_0, IConstructor $1){ + + + if($has_type_and_arity($1, Symbol_value_, 0)){ + return ((IConstructor)s_0); + + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Type.rsc|(23594,67,<404,0>,<404,67>) + public IConstructor Type_glb$2a7a0f345df74609(IConstructor $0, IConstructor $1){ + + + if($has_type_and_arity($0, Symbol_int_, 0)){ + if($has_type_and_arity($1, Symbol_num_, 0)){ + return ((IConstructor)($RVF.constructor(Symbol_int_, new IValue[]{}))); + + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Type.rsc|(23662,67,<405,0>,<405,67>) + public IConstructor Type_glb$1e653208ecb5fb70(IConstructor $0, IConstructor $1){ + + + if($has_type_and_arity($0, Symbol_num_, 0)){ + if($has_type_and_arity($1, Symbol_int_, 0)){ + return ((IConstructor)($RVF.constructor(Symbol_int_, new IValue[]{}))); + + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Type.rsc|(23730,66,<406,0>,<406,66>) + public IConstructor Type_glb$f4d1e05744c88722(IConstructor $0, IConstructor $1){ + + + if($has_type_and_arity($0, Symbol_rat_, 0)){ + if($has_type_and_arity($1, Symbol_num_, 0)){ + return ((IConstructor)($RVF.constructor(Symbol_rat_, new IValue[]{}))); + + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Type.rsc|(23797,67,<407,0>,<407,67>) + public IConstructor Type_glb$e78099bd23f8b441(IConstructor $0, IConstructor $1){ + + + if($has_type_and_arity($0, Symbol_num_, 0)){ + if($has_type_and_arity($1, Symbol_rat_, 0)){ + return ((IConstructor)($RVF.constructor(Symbol_rat_, new IValue[]{}))); + + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Type.rsc|(23865,69,<408,0>,<408,69>) + public IConstructor Type_glb$5a78c895f775bd16(IConstructor $0, IConstructor $1){ + + + if($has_type_and_arity($0, Symbol_real_, 0)){ + if($has_type_and_arity($1, Symbol_num_, 0)){ + return ((IConstructor)($RVF.constructor(Symbol_real_, new IValue[]{}))); + + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Type.rsc|(23935,69,<409,0>,<409,69>) + public IConstructor Type_glb$60eb504a9ebf23b3(IConstructor $0, IConstructor $1){ + + + if($has_type_and_arity($0, Symbol_num_, 0)){ + if($has_type_and_arity($1, Symbol_real_, 0)){ + return ((IConstructor)($RVF.constructor(Symbol_real_, new IValue[]{}))); + + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Type.rsc|(24006,92,<411,0>,<411,92>) + public IConstructor Type_glb$ccebb93560b76f62(IConstructor $0, IConstructor $1){ + + + if($has_type_and_arity($0, Symbol_set_Symbol, 1)){ + IValue $arg0_317 = (IValue)($aadt_subscript_int(((IConstructor)$0),0)); + if($isComparable($arg0_317.getType(), ADT_Symbol)){ + IConstructor s_0 = null; + if($has_type_and_arity($1, Symbol_set_Symbol, 1)){ + IValue $arg0_316 = (IValue)($aadt_subscript_int(((IConstructor)$1),0)); + if($isComparable($arg0_316.getType(), ADT_Symbol)){ + IConstructor t_1 = null; + return ((IConstructor)($RVF.constructor(Symbol_set_Symbol, new IValue[]{((IConstructor)($me.glb(((IConstructor)($arg0_317)), ((IConstructor)($arg0_316)))))}))); + + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Type.rsc|(24101,115,<412,0>,<412,115>) + public IConstructor Type_glb$a731272cac728f82(IConstructor $0, IConstructor $1){ + + + if($has_type_and_arity($0, Symbol_set_Symbol, 1)){ + IValue $arg0_319 = (IValue)($aadt_subscript_int(((IConstructor)$0),0)); + if($isComparable($arg0_319.getType(), ADT_Symbol)){ + IConstructor s_0 = null; + if($has_type_and_arity($1, Symbol_rel_list_Symbol, 1)){ + IValue $arg0_318 = (IValue)($aadt_subscript_int(((IConstructor)$1),0)); + if($isComparable($arg0_318.getType(), $T0)){ + IList ts_1 = null; + return ((IConstructor)($RVF.constructor(Symbol_set_Symbol, new IValue[]{((IConstructor)($me.glb(((IConstructor)($arg0_319)), ((IConstructor)($RVF.constructor(Symbol_tuple_list_Symbol, new IValue[]{((IList)($arg0_318))}))))))}))); + + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Type.rsc|(24219,107,<413,0>,<413,107>) + public IConstructor Type_glb$a786ee037405dc5c(IConstructor $0, IConstructor $1){ + + + if($has_type_and_arity($0, Symbol_rel_list_Symbol, 1)){ + IValue $arg0_321 = (IValue)($aadt_subscript_int(((IConstructor)$0),0)); + if($isComparable($arg0_321.getType(), $T0)){ + IList ts_0 = null; + if($has_type_and_arity($1, Symbol_set_Symbol, 1)){ + IValue $arg0_320 = (IValue)($aadt_subscript_int(((IConstructor)$1),0)); + if($isComparable($arg0_320.getType(), ADT_Symbol)){ + IConstructor s_1 = null; + return ((IConstructor)($RVF.constructor(Symbol_set_Symbol, new IValue[]{((IConstructor)($me.glb(((IConstructor)($arg0_320)), ((IConstructor)($RVF.constructor(Symbol_tuple_list_Symbol, new IValue[]{((IList)($arg0_321))}))))))}))); + + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Type.rsc|(24328,244,<415,0>,<415,244>) + public IConstructor Type_glb$525503476d5dd0c9(IConstructor $0, IConstructor $1){ + + + if($has_type_and_arity($0, Symbol_rel_list_Symbol, 1)){ + IValue $arg0_323 = (IValue)($aadt_subscript_int(((IConstructor)$0),0)); + if($isComparable($arg0_323.getType(), $T0)){ + IList l_0 = ((IList)($arg0_323)); + if($has_type_and_arity($1, Symbol_rel_list_Symbol, 1)){ + IValue $arg0_322 = (IValue)($aadt_subscript_int(((IConstructor)$1),0)); + if($isComparable($arg0_322.getType(), $T0)){ + IList r_1 = ((IList)($arg0_322)); + if((((IBool)($equal(((IInteger)(M_List.size(((IList)($arg0_323))))), ((IInteger)(M_List.size(((IList)($arg0_322))))))))).getValue()){ + if((((IBool)($me.allLabeled(((IList)($arg0_323)))))).getValue()){ + if((((IBool)($me.allLabeled(((IList)($arg0_322)))))).getValue()){ + if((((IBool)($equal(((IList)($me.getLabels(((IList)($arg0_323))))), ((IList)($me.getLabels(((IList)($arg0_322))))))))).getValue()){ + return ((IConstructor)($RVF.constructor(Symbol_rel_list_Symbol, new IValue[]{((IList)($me.addLabels(((IList)($me.glb(((IList)($me.stripLabels(((IList)($arg0_323))))), ((IList)($me.stripLabels(((IList)($arg0_322)))))))), ((IList)($me.getLabels(((IList)($arg0_323))))))))}))); + + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Type.rsc|(24573,220,<416,0>,<416,220>) + public IConstructor Type_glb$3f1318612901961d(IConstructor $0, IConstructor $1){ + + + if($has_type_and_arity($0, Symbol_rel_list_Symbol, 1)){ + IValue $arg0_325 = (IValue)($aadt_subscript_int(((IConstructor)$0),0)); + if($isComparable($arg0_325.getType(), $T0)){ + IList l_0 = ((IList)($arg0_325)); + if($has_type_and_arity($1, Symbol_rel_list_Symbol, 1)){ + IValue $arg0_324 = (IValue)($aadt_subscript_int(((IConstructor)$1),0)); + if($isComparable($arg0_324.getType(), $T0)){ + IList r_1 = ((IList)($arg0_324)); + if((((IBool)($equal(((IInteger)(M_List.size(((IList)($arg0_325))))), ((IInteger)(M_List.size(((IList)($arg0_324))))))))).getValue()){ + if((((IBool)($me.allLabeled(((IList)($arg0_325)))))).getValue()){ + if((((IBool)($me.allLabeled(((IList)($arg0_324)))))).getValue()){ + if((((IBool)($equal(((IList)($me.getLabels(((IList)($arg0_325))))),((IList)($me.getLabels(((IList)($arg0_324)))))).not()))).getValue()){ + return ((IConstructor)($RVF.constructor(Symbol_rel_list_Symbol, new IValue[]{((IList)($me.glb(((IList)($me.stripLabels(((IList)($arg0_325))))), ((IList)($me.stripLabels(((IList)($arg0_324))))))))}))); + + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Type.rsc|(24794,213,<417,0>,<417,213>) + public IConstructor Type_glb$1d00df4abea8627d(IConstructor $0, IConstructor $1){ + + + if($has_type_and_arity($0, Symbol_rel_list_Symbol, 1)){ + IValue $arg0_327 = (IValue)($aadt_subscript_int(((IConstructor)$0),0)); + if($isComparable($arg0_327.getType(), $T0)){ + IList l_0 = ((IList)($arg0_327)); + if($has_type_and_arity($1, Symbol_rel_list_Symbol, 1)){ + IValue $arg0_326 = (IValue)($aadt_subscript_int(((IConstructor)$1),0)); + if($isComparable($arg0_326.getType(), $T0)){ + IList r_1 = ((IList)($arg0_326)); + if((((IBool)($equal(((IInteger)(M_List.size(((IList)($arg0_327))))), ((IInteger)(M_List.size(((IList)($arg0_326))))))))).getValue()){ + if((((IBool)($me.allLabeled(((IList)($arg0_327)))))).getValue()){ + if((((IBool)($me.noneLabeled(((IList)($arg0_326)))))).getValue()){ + return ((IConstructor)($RVF.constructor(Symbol_rel_list_Symbol, new IValue[]{((IList)($me.addLabels(((IList)($me.glb(((IList)($me.stripLabels(((IList)($arg0_327))))), ((IList)($me.stripLabels(((IList)($arg0_326)))))))), ((IList)($me.getLabels(((IList)($arg0_327))))))))}))); + + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Type.rsc|(25008,213,<418,0>,<418,213>) + public IConstructor Type_glb$22a77fe40bb560cb(IConstructor $0, IConstructor $1){ + + + if($has_type_and_arity($0, Symbol_rel_list_Symbol, 1)){ + IValue $arg0_329 = (IValue)($aadt_subscript_int(((IConstructor)$0),0)); + if($isComparable($arg0_329.getType(), $T0)){ + IList l_0 = ((IList)($arg0_329)); + if($has_type_and_arity($1, Symbol_rel_list_Symbol, 1)){ + IValue $arg0_328 = (IValue)($aadt_subscript_int(((IConstructor)$1),0)); + if($isComparable($arg0_328.getType(), $T0)){ + IList r_1 = ((IList)($arg0_328)); + if((((IBool)($equal(((IInteger)(M_List.size(((IList)($arg0_329))))), ((IInteger)(M_List.size(((IList)($arg0_328))))))))).getValue()){ + if((((IBool)($me.noneLabeled(((IList)($arg0_329)))))).getValue()){ + if((((IBool)($me.allLabeled(((IList)($arg0_328)))))).getValue()){ + return ((IConstructor)($RVF.constructor(Symbol_rel_list_Symbol, new IValue[]{((IList)($me.addLabels(((IList)($me.glb(((IList)($me.stripLabels(((IList)($arg0_329))))), ((IList)($me.stripLabels(((IList)($arg0_328)))))))), ((IList)($me.getLabels(((IList)($arg0_328))))))))}))); + + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Type.rsc|(25222,190,<419,0>,<419,190>) + public IConstructor Type_glb$9665334317df7954(IConstructor $0, IConstructor $1){ + + + if($has_type_and_arity($0, Symbol_rel_list_Symbol, 1)){ + IValue $arg0_331 = (IValue)($aadt_subscript_int(((IConstructor)$0),0)); + if($isComparable($arg0_331.getType(), $T0)){ + IList l_0 = ((IList)($arg0_331)); + if($has_type_and_arity($1, Symbol_rel_list_Symbol, 1)){ + IValue $arg0_330 = (IValue)($aadt_subscript_int(((IConstructor)$1),0)); + if($isComparable($arg0_330.getType(), $T0)){ + IList r_1 = ((IList)($arg0_330)); + if((((IBool)($equal(((IInteger)(M_List.size(((IList)($arg0_331))))), ((IInteger)(M_List.size(((IList)($arg0_330))))))))).getValue()){ + if((((IBool)($me.allLabeled(((IList)($arg0_331)))))).getValue()){ + return null; + } else { + if((((IBool)($me.allLabeled(((IList)($arg0_330)))))).getValue()){ + return null; + } else { + return ((IConstructor)($RVF.constructor(Symbol_rel_list_Symbol, new IValue[]{((IList)($me.glb(((IList)($me.stripLabels(((IList)($arg0_331))))), ((IList)($me.stripLabels(((IList)($arg0_330))))))))}))); + + } + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Type.rsc|(25413,119,<420,0>,<420,119>) + public IConstructor Type_glb$fedc2ca18d852381(IConstructor $0, IConstructor $1){ + + + if($has_type_and_arity($0, Symbol_rel_list_Symbol, 1)){ + IValue $arg0_333 = (IValue)($aadt_subscript_int(((IConstructor)$0),0)); + if($isComparable($arg0_333.getType(), $T0)){ + IList l_0 = ((IList)($arg0_333)); + if($has_type_and_arity($1, Symbol_rel_list_Symbol, 1)){ + IValue $arg0_332 = (IValue)($aadt_subscript_int(((IConstructor)$1),0)); + if($isComparable($arg0_332.getType(), $T0)){ + IList r_1 = ((IList)($arg0_332)); + if((((IBool)($equal(((IInteger)(M_List.size(((IList)($arg0_333))))),((IInteger)(M_List.size(((IList)($arg0_332)))))).not()))).getValue()){ + return ((IConstructor)$constants.get(6)/*set(value())*/); + + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Type.rsc|(25534,95,<422,0>,<422,95>) + public IConstructor Type_glb$4b91e5fe473aa816(IConstructor $0, IConstructor $1){ + + + if($has_type_and_arity($0, Symbol_list_Symbol, 1)){ + IValue $arg0_335 = (IValue)($aadt_subscript_int(((IConstructor)$0),0)); + if($isComparable($arg0_335.getType(), ADT_Symbol)){ + IConstructor s_0 = null; + if($has_type_and_arity($1, Symbol_list_Symbol, 1)){ + IValue $arg0_334 = (IValue)($aadt_subscript_int(((IConstructor)$1),0)); + if($isComparable($arg0_334.getType(), ADT_Symbol)){ + IConstructor t_1 = null; + return ((IConstructor)($RVF.constructor(Symbol_list_Symbol, new IValue[]{((IConstructor)($me.glb(((IConstructor)($arg0_335)), ((IConstructor)($arg0_334)))))}))); + + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Type.rsc|(25632,118,<423,0>,<423,118>) + public IConstructor Type_glb$563c14f02706f88a(IConstructor $0, IConstructor $1){ + + + if($has_type_and_arity($0, Symbol_list_Symbol, 1)){ + IValue $arg0_337 = (IValue)($aadt_subscript_int(((IConstructor)$0),0)); + if($isComparable($arg0_337.getType(), ADT_Symbol)){ + IConstructor s_0 = null; + if($has_type_and_arity($1, Symbol_lrel_list_Symbol, 1)){ + IValue $arg0_336 = (IValue)($aadt_subscript_int(((IConstructor)$1),0)); + if($isComparable($arg0_336.getType(), $T0)){ + IList ts_1 = null; + return ((IConstructor)($RVF.constructor(Symbol_list_Symbol, new IValue[]{((IConstructor)($me.glb(((IConstructor)($arg0_337)), ((IConstructor)($RVF.constructor(Symbol_tuple_list_Symbol, new IValue[]{((IList)($arg0_336))}))))))}))); + + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Type.rsc|(25753,118,<424,0>,<424,118>) + public IConstructor Type_glb$0f0ddb52abd0ac6a(IConstructor $0, IConstructor $1){ + + + if($has_type_and_arity($0, Symbol_lrel_list_Symbol, 1)){ + IValue $arg0_339 = (IValue)($aadt_subscript_int(((IConstructor)$0),0)); + if($isComparable($arg0_339.getType(), $T0)){ + IList ts_0 = null; + if($has_type_and_arity($1, Symbol_list_Symbol, 1)){ + IValue $arg0_338 = (IValue)($aadt_subscript_int(((IConstructor)$1),0)); + if($isComparable($arg0_338.getType(), ADT_Symbol)){ + IConstructor s_1 = null; + return ((IConstructor)($RVF.constructor(Symbol_list_Symbol, new IValue[]{((IConstructor)($me.glb(((IConstructor)($arg0_338)), ((IConstructor)($RVF.constructor(Symbol_tuple_list_Symbol, new IValue[]{((IList)($arg0_339))}))))))}))); + + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Type.rsc|(25873,247,<426,0>,<426,247>) + public IConstructor Type_glb$fc31ec41aa84d7a9(IConstructor $0, IConstructor $1){ + + + if($has_type_and_arity($0, Symbol_lrel_list_Symbol, 1)){ + IValue $arg0_341 = (IValue)($aadt_subscript_int(((IConstructor)$0),0)); + if($isComparable($arg0_341.getType(), $T0)){ + IList l_0 = ((IList)($arg0_341)); + if($has_type_and_arity($1, Symbol_lrel_list_Symbol, 1)){ + IValue $arg0_340 = (IValue)($aadt_subscript_int(((IConstructor)$1),0)); + if($isComparable($arg0_340.getType(), $T0)){ + IList r_1 = ((IList)($arg0_340)); + if((((IBool)($equal(((IInteger)(M_List.size(((IList)($arg0_341))))), ((IInteger)(M_List.size(((IList)($arg0_340))))))))).getValue()){ + if((((IBool)($me.allLabeled(((IList)($arg0_341)))))).getValue()){ + if((((IBool)($me.allLabeled(((IList)($arg0_340)))))).getValue()){ + if((((IBool)($equal(((IList)($me.getLabels(((IList)($arg0_341))))), ((IList)($me.getLabels(((IList)($arg0_340))))))))).getValue()){ + return ((IConstructor)($RVF.constructor(Symbol_lrel_list_Symbol, new IValue[]{((IList)($me.addLabels(((IList)($me.glb(((IList)($me.stripLabels(((IList)($arg0_341))))), ((IList)($me.stripLabels(((IList)($arg0_340)))))))), ((IList)($me.getLabels(((IList)($arg0_341))))))))}))); + + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Type.rsc|(26121,223,<427,0>,<427,223>) + public IConstructor Type_glb$c86a7a40892f2e13(IConstructor $0, IConstructor $1){ + + + if($has_type_and_arity($0, Symbol_lrel_list_Symbol, 1)){ + IValue $arg0_343 = (IValue)($aadt_subscript_int(((IConstructor)$0),0)); + if($isComparable($arg0_343.getType(), $T0)){ + IList l_0 = ((IList)($arg0_343)); + if($has_type_and_arity($1, Symbol_lrel_list_Symbol, 1)){ + IValue $arg0_342 = (IValue)($aadt_subscript_int(((IConstructor)$1),0)); + if($isComparable($arg0_342.getType(), $T0)){ + IList r_1 = ((IList)($arg0_342)); + if((((IBool)($equal(((IInteger)(M_List.size(((IList)($arg0_343))))), ((IInteger)(M_List.size(((IList)($arg0_342))))))))).getValue()){ + if((((IBool)($me.allLabeled(((IList)($arg0_343)))))).getValue()){ + if((((IBool)($me.allLabeled(((IList)($arg0_342)))))).getValue()){ + if((((IBool)($equal(((IList)($me.getLabels(((IList)($arg0_343))))),((IList)($me.getLabels(((IList)($arg0_342)))))).not()))).getValue()){ + return ((IConstructor)($RVF.constructor(Symbol_lrel_list_Symbol, new IValue[]{((IList)($me.glb(((IList)($me.stripLabels(((IList)($arg0_343))))), ((IList)($me.stripLabels(((IList)($arg0_342))))))))}))); + + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Type.rsc|(26345,216,<428,0>,<428,216>) + public IConstructor Type_glb$a57301fdb26a70d4(IConstructor $0, IConstructor $1){ + + + if($has_type_and_arity($0, Symbol_lrel_list_Symbol, 1)){ + IValue $arg0_345 = (IValue)($aadt_subscript_int(((IConstructor)$0),0)); + if($isComparable($arg0_345.getType(), $T0)){ + IList l_0 = ((IList)($arg0_345)); + if($has_type_and_arity($1, Symbol_lrel_list_Symbol, 1)){ + IValue $arg0_344 = (IValue)($aadt_subscript_int(((IConstructor)$1),0)); + if($isComparable($arg0_344.getType(), $T0)){ + IList r_1 = ((IList)($arg0_344)); + if((((IBool)($equal(((IInteger)(M_List.size(((IList)($arg0_345))))), ((IInteger)(M_List.size(((IList)($arg0_344))))))))).getValue()){ + if((((IBool)($me.allLabeled(((IList)($arg0_345)))))).getValue()){ + if((((IBool)($me.noneLabeled(((IList)($arg0_344)))))).getValue()){ + return ((IConstructor)($RVF.constructor(Symbol_lrel_list_Symbol, new IValue[]{((IList)($me.addLabels(((IList)($me.glb(((IList)($me.stripLabels(((IList)($arg0_345))))), ((IList)($me.stripLabels(((IList)($arg0_344)))))))), ((IList)($me.getLabels(((IList)($arg0_345))))))))}))); + + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Type.rsc|(26562,216,<429,0>,<429,216>) + public IConstructor Type_glb$3b40dfcfaf8346f5(IConstructor $0, IConstructor $1){ + + + if($has_type_and_arity($0, Symbol_lrel_list_Symbol, 1)){ + IValue $arg0_347 = (IValue)($aadt_subscript_int(((IConstructor)$0),0)); + if($isComparable($arg0_347.getType(), $T0)){ + IList l_0 = ((IList)($arg0_347)); + if($has_type_and_arity($1, Symbol_lrel_list_Symbol, 1)){ + IValue $arg0_346 = (IValue)($aadt_subscript_int(((IConstructor)$1),0)); + if($isComparable($arg0_346.getType(), $T0)){ + IList r_1 = ((IList)($arg0_346)); + if((((IBool)($equal(((IInteger)(M_List.size(((IList)($arg0_347))))), ((IInteger)(M_List.size(((IList)($arg0_346))))))))).getValue()){ + if((((IBool)($me.noneLabeled(((IList)($arg0_347)))))).getValue()){ + if((((IBool)($me.allLabeled(((IList)($arg0_346)))))).getValue()){ + return ((IConstructor)($RVF.constructor(Symbol_lrel_list_Symbol, new IValue[]{((IList)($me.addLabels(((IList)($me.glb(((IList)($me.stripLabels(((IList)($arg0_347))))), ((IList)($me.stripLabels(((IList)($arg0_346)))))))), ((IList)($me.getLabels(((IList)($arg0_346))))))))}))); + + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Type.rsc|(26779,193,<430,0>,<430,193>) + public IConstructor Type_glb$b721378e469ce285(IConstructor $0, IConstructor $1){ + + + if($has_type_and_arity($0, Symbol_lrel_list_Symbol, 1)){ + IValue $arg0_349 = (IValue)($aadt_subscript_int(((IConstructor)$0),0)); + if($isComparable($arg0_349.getType(), $T0)){ + IList l_0 = ((IList)($arg0_349)); + if($has_type_and_arity($1, Symbol_lrel_list_Symbol, 1)){ + IValue $arg0_348 = (IValue)($aadt_subscript_int(((IConstructor)$1),0)); + if($isComparable($arg0_348.getType(), $T0)){ + IList r_1 = ((IList)($arg0_348)); + if((((IBool)($equal(((IInteger)(M_List.size(((IList)($arg0_349))))), ((IInteger)(M_List.size(((IList)($arg0_348))))))))).getValue()){ + if((((IBool)($me.allLabeled(((IList)($arg0_349)))))).getValue()){ + return null; + } else { + if((((IBool)($me.allLabeled(((IList)($arg0_348)))))).getValue()){ + return null; + } else { + return ((IConstructor)($RVF.constructor(Symbol_lrel_list_Symbol, new IValue[]{((IList)($me.glb(((IList)($me.stripLabels(((IList)($arg0_349))))), ((IList)($me.stripLabels(((IList)($arg0_348))))))))}))); + + } + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Type.rsc|(26973,130,<431,0>,<431,130>) + public IConstructor Type_glb$fcc8ca1603beb4a9(IConstructor $0, IConstructor $1){ + + + if($has_type_and_arity($0, Symbol_lrel_list_Symbol, 1)){ + IValue $arg0_351 = (IValue)($aadt_subscript_int(((IConstructor)$0),0)); + if($isComparable($arg0_351.getType(), $T0)){ + IList l_0 = ((IList)($arg0_351)); + if($has_type_and_arity($1, Symbol_lrel_list_Symbol, 1)){ + IValue $arg0_350 = (IValue)($aadt_subscript_int(((IConstructor)$1),0)); + if($isComparable($arg0_350.getType(), $T0)){ + IList r_1 = ((IList)($arg0_350)); + if((((IBool)($equal(((IInteger)(M_List.size(((IList)($arg0_351))))),((IInteger)(M_List.size(((IList)($arg0_350)))))).not()))).getValue()){ + return ((IConstructor)($RVF.constructor(Symbol_list_Symbol, new IValue[]{((IConstructor)$constants.get(5)/*value()*/)}))); + + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Type.rsc|(27105,250,<433,0>,<433,250>) + public IConstructor Type_glb$9e7e1f5985f9f398(IConstructor $0, IConstructor $1){ + + + if($has_type_and_arity($0, Symbol_tuple_list_Symbol, 1)){ + IValue $arg0_353 = (IValue)($aadt_subscript_int(((IConstructor)$0),0)); + if($isComparable($arg0_353.getType(), $T0)){ + IList l_0 = ((IList)($arg0_353)); + if($has_type_and_arity($1, Symbol_tuple_list_Symbol, 1)){ + IValue $arg0_352 = (IValue)($aadt_subscript_int(((IConstructor)$1),0)); + if($isComparable($arg0_352.getType(), $T0)){ + IList r_1 = ((IList)($arg0_352)); + if((((IBool)($equal(((IInteger)(M_List.size(((IList)($arg0_353))))), ((IInteger)(M_List.size(((IList)($arg0_352))))))))).getValue()){ + if((((IBool)($me.allLabeled(((IList)($arg0_353)))))).getValue()){ + if((((IBool)($me.allLabeled(((IList)($arg0_352)))))).getValue()){ + if((((IBool)($equal(((IList)($me.getLabels(((IList)($arg0_353))))), ((IList)($me.getLabels(((IList)($arg0_352))))))))).getValue()){ + return ((IConstructor)($RVF.constructor(Symbol_tuple_list_Symbol, new IValue[]{((IList)($me.addLabels(((IList)($me.glb(((IList)($me.stripLabels(((IList)($arg0_353))))), ((IList)($me.stripLabels(((IList)($arg0_352)))))))), ((IList)($me.getLabels(((IList)($arg0_353))))))))}))); + + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Type.rsc|(27356,226,<434,0>,<434,226>) + public IConstructor Type_glb$a04284ca9b91ca7f(IConstructor $0, IConstructor $1){ + + + if($has_type_and_arity($0, Symbol_tuple_list_Symbol, 1)){ + IValue $arg0_355 = (IValue)($aadt_subscript_int(((IConstructor)$0),0)); + if($isComparable($arg0_355.getType(), $T0)){ + IList l_0 = ((IList)($arg0_355)); + if($has_type_and_arity($1, Symbol_tuple_list_Symbol, 1)){ + IValue $arg0_354 = (IValue)($aadt_subscript_int(((IConstructor)$1),0)); + if($isComparable($arg0_354.getType(), $T0)){ + IList r_1 = ((IList)($arg0_354)); + if((((IBool)($equal(((IInteger)(M_List.size(((IList)($arg0_355))))), ((IInteger)(M_List.size(((IList)($arg0_354))))))))).getValue()){ + if((((IBool)($me.allLabeled(((IList)($arg0_355)))))).getValue()){ + if((((IBool)($me.allLabeled(((IList)($arg0_354)))))).getValue()){ + if((((IBool)($equal(((IList)($me.getLabels(((IList)($arg0_355))))),((IList)($me.getLabels(((IList)($arg0_354)))))).not()))).getValue()){ + return ((IConstructor)($RVF.constructor(Symbol_tuple_list_Symbol, new IValue[]{((IList)($me.glb(((IList)($me.stripLabels(((IList)($arg0_355))))), ((IList)($me.stripLabels(((IList)($arg0_354))))))))}))); + + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Type.rsc|(27583,219,<435,0>,<435,219>) + public IConstructor Type_glb$48b8563e75023e27(IConstructor $0, IConstructor $1){ + + + if($has_type_and_arity($0, Symbol_tuple_list_Symbol, 1)){ + IValue $arg0_357 = (IValue)($aadt_subscript_int(((IConstructor)$0),0)); + if($isComparable($arg0_357.getType(), $T0)){ + IList l_0 = ((IList)($arg0_357)); + if($has_type_and_arity($1, Symbol_tuple_list_Symbol, 1)){ + IValue $arg0_356 = (IValue)($aadt_subscript_int(((IConstructor)$1),0)); + if($isComparable($arg0_356.getType(), $T0)){ + IList r_1 = ((IList)($arg0_356)); + if((((IBool)($equal(((IInteger)(M_List.size(((IList)($arg0_357))))), ((IInteger)(M_List.size(((IList)($arg0_356))))))))).getValue()){ + if((((IBool)($me.allLabeled(((IList)($arg0_357)))))).getValue()){ + if((((IBool)($me.noneLabeled(((IList)($arg0_356)))))).getValue()){ + return ((IConstructor)($RVF.constructor(Symbol_tuple_list_Symbol, new IValue[]{((IList)($me.addLabels(((IList)($me.glb(((IList)($me.stripLabels(((IList)($arg0_357))))), ((IList)($me.stripLabels(((IList)($arg0_356)))))))), ((IList)($me.getLabels(((IList)($arg0_357))))))))}))); + + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Type.rsc|(27803,219,<436,0>,<436,219>) + public IConstructor Type_glb$69e769596d4bd481(IConstructor $0, IConstructor $1){ + + + if($has_type_and_arity($0, Symbol_tuple_list_Symbol, 1)){ + IValue $arg0_359 = (IValue)($aadt_subscript_int(((IConstructor)$0),0)); + if($isComparable($arg0_359.getType(), $T0)){ + IList l_0 = ((IList)($arg0_359)); + if($has_type_and_arity($1, Symbol_tuple_list_Symbol, 1)){ + IValue $arg0_358 = (IValue)($aadt_subscript_int(((IConstructor)$1),0)); + if($isComparable($arg0_358.getType(), $T0)){ + IList r_1 = ((IList)($arg0_358)); + if((((IBool)($equal(((IInteger)(M_List.size(((IList)($arg0_359))))), ((IInteger)(M_List.size(((IList)($arg0_358))))))))).getValue()){ + if((((IBool)($me.noneLabeled(((IList)($arg0_359)))))).getValue()){ + if((((IBool)($me.allLabeled(((IList)($arg0_358)))))).getValue()){ + return ((IConstructor)($RVF.constructor(Symbol_tuple_list_Symbol, new IValue[]{((IList)($me.addLabels(((IList)($me.glb(((IList)($me.stripLabels(((IList)($arg0_359))))), ((IList)($me.stripLabels(((IList)($arg0_358)))))))), ((IList)($me.getLabels(((IList)($arg0_358))))))))}))); + + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Type.rsc|(28023,196,<437,0>,<437,196>) + public IConstructor Type_glb$ba92934d6828a4fc(IConstructor $0, IConstructor $1){ + + + if($has_type_and_arity($0, Symbol_tuple_list_Symbol, 1)){ + IValue $arg0_361 = (IValue)($aadt_subscript_int(((IConstructor)$0),0)); + if($isComparable($arg0_361.getType(), $T0)){ + IList l_0 = ((IList)($arg0_361)); + if($has_type_and_arity($1, Symbol_tuple_list_Symbol, 1)){ + IValue $arg0_360 = (IValue)($aadt_subscript_int(((IConstructor)$1),0)); + if($isComparable($arg0_360.getType(), $T0)){ + IList r_1 = ((IList)($arg0_360)); + if((((IBool)($equal(((IInteger)(M_List.size(((IList)($arg0_361))))), ((IInteger)(M_List.size(((IList)($arg0_360))))))))).getValue()){ + if((((IBool)($me.allLabeled(((IList)($arg0_361)))))).getValue()){ + return null; + } else { + if((((IBool)($me.allLabeled(((IList)($arg0_360)))))).getValue()){ + return null; + } else { + return ((IConstructor)($RVF.constructor(Symbol_tuple_list_Symbol, new IValue[]{((IList)($me.glb(((IList)($me.stripLabels(((IList)($arg0_361))))), ((IList)($me.stripLabels(((IList)($arg0_360))))))))}))); + + } + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Type.rsc|(28221,253,<439,0>,<439,253>) + public IConstructor Type_glb$17ed4c750a842e8b(IConstructor $0, IConstructor $1){ + + + if($has_type_and_arity($0, Symbol_map_Symbol_Symbol, 2)){ + IValue $arg0_371 = (IValue)($aadt_subscript_int(((IConstructor)$0),0)); + if($isComparable($arg0_371.getType(), ADT_Symbol)){ + if($has_type_and_arity($arg0_371, Symbol_label_str_Symbol, 2)){ + IValue $arg0_373 = (IValue)($aadt_subscript_int(((IConstructor)($arg0_371)),0)); + if($isComparable($arg0_373.getType(), $T2)){ + IString lfl_0 = null; + IValue $arg1_372 = (IValue)($aadt_subscript_int(((IConstructor)($arg0_371)),1)); + if($isComparable($arg1_372.getType(), ADT_Symbol)){ + IConstructor lf_1 = null; + IValue $arg1_368 = (IValue)($aadt_subscript_int(((IConstructor)$0),1)); + if($isComparable($arg1_368.getType(), ADT_Symbol)){ + if($has_type_and_arity($arg1_368, Symbol_label_str_Symbol, 2)){ + IValue $arg0_370 = (IValue)($aadt_subscript_int(((IConstructor)($arg1_368)),0)); + if($isComparable($arg0_370.getType(), $T2)){ + IString ltl_2 = null; + IValue $arg1_369 = (IValue)($aadt_subscript_int(((IConstructor)($arg1_368)),1)); + if($isComparable($arg1_369.getType(), ADT_Symbol)){ + IConstructor lt_3 = null; + if($has_type_and_arity($1, Symbol_map_Symbol_Symbol, 2)){ + IValue $arg0_365 = (IValue)($aadt_subscript_int(((IConstructor)$1),0)); + if($isComparable($arg0_365.getType(), ADT_Symbol)){ + if($has_type_and_arity($arg0_365, Symbol_label_str_Symbol, 2)){ + IValue $arg0_367 = (IValue)($aadt_subscript_int(((IConstructor)($arg0_365)),0)); + if($isComparable($arg0_367.getType(), $T2)){ + IString rfl_4 = null; + IValue $arg1_366 = (IValue)($aadt_subscript_int(((IConstructor)($arg0_365)),1)); + if($isComparable($arg1_366.getType(), ADT_Symbol)){ + IConstructor rf_5 = null; + IValue $arg1_362 = (IValue)($aadt_subscript_int(((IConstructor)$1),1)); + if($isComparable($arg1_362.getType(), ADT_Symbol)){ + if($has_type_and_arity($arg1_362, Symbol_label_str_Symbol, 2)){ + IValue $arg0_364 = (IValue)($aadt_subscript_int(((IConstructor)($arg1_362)),0)); + if($isComparable($arg0_364.getType(), $T2)){ + IString rtl_6 = null; + IValue $arg1_363 = (IValue)($aadt_subscript_int(((IConstructor)($arg1_362)),1)); + if($isComparable($arg1_363.getType(), ADT_Symbol)){ + IConstructor rt_7 = null; + if((((IBool)($equal(((IString)($arg0_373)), ((IString)($arg0_367)))))).getValue()){ + if((((IBool)($equal(((IString)($arg0_370)), ((IString)($arg0_364)))))).getValue()){ + return ((IConstructor)($RVF.constructor(Symbol_map_Symbol_Symbol, new IValue[]{((IConstructor)($RVF.constructor(Symbol_label_str_Symbol, new IValue[]{((IString)($arg0_373)), ((IConstructor)($me.glb(((IConstructor)($arg1_372)), ((IConstructor)($arg1_366)))))}))), ((IConstructor)($RVF.constructor(Symbol_label_str_Symbol, new IValue[]{((IString)($arg0_370)), ((IConstructor)($me.glb(((IConstructor)($arg1_369)), ((IConstructor)($arg1_363)))))})))}))); + + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Type.rsc|(28475,227,<440,0>,<440,227>) + public IConstructor Type_glb$a9afab04303a8d6a(IConstructor $0, IConstructor $1){ + + + if($has_type_and_arity($0, Symbol_map_Symbol_Symbol, 2)){ + IValue $arg0_383 = (IValue)($aadt_subscript_int(((IConstructor)$0),0)); + if($isComparable($arg0_383.getType(), ADT_Symbol)){ + if($has_type_and_arity($arg0_383, Symbol_label_str_Symbol, 2)){ + IValue $arg0_385 = (IValue)($aadt_subscript_int(((IConstructor)($arg0_383)),0)); + if($isComparable($arg0_385.getType(), $T2)){ + IString lfl_0 = null; + IValue $arg1_384 = (IValue)($aadt_subscript_int(((IConstructor)($arg0_383)),1)); + if($isComparable($arg1_384.getType(), ADT_Symbol)){ + IConstructor lf_1 = null; + IValue $arg1_380 = (IValue)($aadt_subscript_int(((IConstructor)$0),1)); + if($isComparable($arg1_380.getType(), ADT_Symbol)){ + if($has_type_and_arity($arg1_380, Symbol_label_str_Symbol, 2)){ + IValue $arg0_382 = (IValue)($aadt_subscript_int(((IConstructor)($arg1_380)),0)); + if($isComparable($arg0_382.getType(), $T2)){ + IString ltl_2 = null; + IValue $arg1_381 = (IValue)($aadt_subscript_int(((IConstructor)($arg1_380)),1)); + if($isComparable($arg1_381.getType(), ADT_Symbol)){ + IConstructor lt_3 = null; + if($has_type_and_arity($1, Symbol_map_Symbol_Symbol, 2)){ + IValue $arg0_377 = (IValue)($aadt_subscript_int(((IConstructor)$1),0)); + if($isComparable($arg0_377.getType(), ADT_Symbol)){ + if($has_type_and_arity($arg0_377, Symbol_label_str_Symbol, 2)){ + IValue $arg0_379 = (IValue)($aadt_subscript_int(((IConstructor)($arg0_377)),0)); + if($isComparable($arg0_379.getType(), $T2)){ + IString rfl_4 = null; + IValue $arg1_378 = (IValue)($aadt_subscript_int(((IConstructor)($arg0_377)),1)); + if($isComparable($arg1_378.getType(), ADT_Symbol)){ + IConstructor rf_5 = null; + IValue $arg1_374 = (IValue)($aadt_subscript_int(((IConstructor)$1),1)); + if($isComparable($arg1_374.getType(), ADT_Symbol)){ + if($has_type_and_arity($arg1_374, Symbol_label_str_Symbol, 2)){ + IValue $arg0_376 = (IValue)($aadt_subscript_int(((IConstructor)($arg1_374)),0)); + if($isComparable($arg0_376.getType(), $T2)){ + IString rtl_6 = null; + IValue $arg1_375 = (IValue)($aadt_subscript_int(((IConstructor)($arg1_374)),1)); + if($isComparable($arg1_375.getType(), ADT_Symbol)){ + IConstructor rt_7 = null; + if((((IBool)($equal(((IString)($arg0_385)),((IString)($arg0_379))).not()))).getValue()){ + return ((IConstructor)($RVF.constructor(Symbol_map_Symbol_Symbol, new IValue[]{((IConstructor)($me.glb(((IConstructor)($arg1_384)), ((IConstructor)($arg1_378))))), ((IConstructor)($me.glb(((IConstructor)($arg1_381)), ((IConstructor)($arg1_375)))))}))); + + } else { + if((((IBool)($equal(((IString)($arg0_382)),((IString)($arg0_376))).not()))).getValue()){ + return ((IConstructor)($RVF.constructor(Symbol_map_Symbol_Symbol, new IValue[]{((IConstructor)($me.glb(((IConstructor)($arg1_384)), ((IConstructor)($arg1_378))))), ((IConstructor)($me.glb(((IConstructor)($arg1_381)), ((IConstructor)($arg1_375)))))}))); + + } else { + return null; + } + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Type.rsc|(28703,236,<441,0>,<441,236>) + public IConstructor Type_glb$4c151198f5c36983(IConstructor $0, IConstructor $1){ + + + if($has_type_and_arity($0, Symbol_map_Symbol_Symbol, 2)){ + IValue $arg0_398 = (IValue)($aadt_subscript_int(((IConstructor)$0),0)); + if($isComparable($arg0_398.getType(), ADT_Symbol)){ + if($has_type_and_arity($arg0_398, Symbol_label_str_Symbol, 2)){ + IValue $arg0_400 = (IValue)($aadt_subscript_int(((IConstructor)($arg0_398)),0)); + if($isComparable($arg0_400.getType(), $T2)){ + if(true){ + IString lfl_0 = null; + IValue $arg1_399 = (IValue)($aadt_subscript_int(((IConstructor)($arg0_398)),1)); + if($isComparable($arg1_399.getType(), ADT_Symbol)){ + if(true){ + IConstructor lf_1 = null; + IValue $arg1_395 = (IValue)($aadt_subscript_int(((IConstructor)$0),1)); + if($isComparable($arg1_395.getType(), ADT_Symbol)){ + if($has_type_and_arity($arg1_395, Symbol_label_str_Symbol, 2)){ + IValue $arg0_397 = (IValue)($aadt_subscript_int(((IConstructor)($arg1_395)),0)); + if($isComparable($arg0_397.getType(), $T2)){ + if(true){ + IString ltl_2 = null; + IValue $arg1_396 = (IValue)($aadt_subscript_int(((IConstructor)($arg1_395)),1)); + if($isComparable($arg1_396.getType(), ADT_Symbol)){ + if(true){ + IConstructor lt_3 = null; + if($has_type_and_arity($1, Symbol_map_Symbol_Symbol, 2)){ + IValue $arg0_394 = (IValue)($aadt_subscript_int(((IConstructor)$1),0)); + if($isComparable($arg0_394.getType(), ADT_Symbol)){ + if(true){ + IConstructor rf_4 = null; + IValue $arg1_393 = (IValue)($aadt_subscript_int(((IConstructor)$1),1)); + if($isComparable($arg1_393.getType(), ADT_Symbol)){ + if(true){ + IConstructor rt_5 = null; + IBool $aux8 = (IBool)(((IBool)$constants.get(2)/*false*/)); + $aux8 = ((IBool)$constants.get(2)/*false*/); + /*muExists*/$EXP387: + do { + if($has_type_and_arity($arg0_394, Symbol_label_str_Symbol, 2)){ + IValue $arg0_389 = (IValue)($aadt_subscript_int(((IConstructor)($arg0_394)),0)); + if($isComparable($arg0_389.getType(), $T4)){ + IValue $arg1_388 = (IValue)($aadt_subscript_int(((IConstructor)($arg0_394)),1)); + if($isComparable($arg1_388.getType(), $T4)){ + $aux8 = ((IBool)$constants.get(1)/*true*/); + break $EXP387; // muSucceed + } else { + $aux8 = ((IBool)$constants.get(2)/*false*/); + continue $EXP387; + } + } else { + $aux8 = ((IBool)$constants.get(2)/*false*/); + continue $EXP387; + } + } else { + $aux8 = ((IBool)$constants.get(2)/*false*/); + continue $EXP387; + } + } while(false); + if((((IBool)($aux8))).getValue()){ + return null; + } else { + IBool $aux9 = (IBool)(((IBool)$constants.get(2)/*false*/)); + $aux9 = ((IBool)$constants.get(2)/*false*/); + /*muExists*/$EXP390: + do { + if($has_type_and_arity($arg1_393, Symbol_label_str_Symbol, 2)){ + IValue $arg0_392 = (IValue)($aadt_subscript_int(((IConstructor)($arg1_393)),0)); + if($isComparable($arg0_392.getType(), $T4)){ + IValue $arg1_391 = (IValue)($aadt_subscript_int(((IConstructor)($arg1_393)),1)); + if($isComparable($arg1_391.getType(), $T4)){ + $aux9 = ((IBool)$constants.get(1)/*true*/); + break $EXP390; // muSucceed + } else { + $aux9 = ((IBool)$constants.get(2)/*false*/); + continue $EXP390; + } + } else { + $aux9 = ((IBool)$constants.get(2)/*false*/); + continue $EXP390; + } + } else { + $aux9 = ((IBool)$constants.get(2)/*false*/); + continue $EXP390; + } + } while(false); + if((((IBool)($aux9))).getValue()){ + return null; + } else { + return ((IConstructor)($RVF.constructor(Symbol_map_Symbol_Symbol, new IValue[]{((IConstructor)($RVF.constructor(Symbol_label_str_Symbol, new IValue[]{((IString)($arg0_400)), ((IConstructor)($me.glb(((IConstructor)($arg1_399)), ((IConstructor)($arg0_394)))))}))), ((IConstructor)($RVF.constructor(Symbol_label_str_Symbol, new IValue[]{((IString)($arg0_397)), ((IConstructor)($me.glb(((IConstructor)($arg1_396)), ((IConstructor)($arg1_393)))))})))}))); + + } + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Type.rsc|(28940,236,<442,0>,<442,236>) + public IConstructor Type_glb$c70f2ec5079b5d5a(IConstructor $0, IConstructor $1){ + + + if($has_type_and_arity($0, Symbol_map_Symbol_Symbol, 2)){ + IValue $arg0_415 = (IValue)($aadt_subscript_int(((IConstructor)$0),0)); + if($isComparable($arg0_415.getType(), ADT_Symbol)){ + if(true){ + IConstructor lf_0 = null; + IValue $arg1_414 = (IValue)($aadt_subscript_int(((IConstructor)$0),1)); + if($isComparable($arg1_414.getType(), ADT_Symbol)){ + if(true){ + IConstructor lt_1 = null; + if($has_type_and_arity($1, Symbol_map_Symbol_Symbol, 2)){ + IValue $arg0_411 = (IValue)($aadt_subscript_int(((IConstructor)$1),0)); + if($isComparable($arg0_411.getType(), ADT_Symbol)){ + if($has_type_and_arity($arg0_411, Symbol_label_str_Symbol, 2)){ + IValue $arg0_413 = (IValue)($aadt_subscript_int(((IConstructor)($arg0_411)),0)); + if($isComparable($arg0_413.getType(), $T2)){ + if(true){ + IString rfl_2 = null; + IValue $arg1_412 = (IValue)($aadt_subscript_int(((IConstructor)($arg0_411)),1)); + if($isComparable($arg1_412.getType(), ADT_Symbol)){ + if(true){ + IConstructor rf_3 = null; + IValue $arg1_408 = (IValue)($aadt_subscript_int(((IConstructor)$1),1)); + if($isComparable($arg1_408.getType(), ADT_Symbol)){ + if($has_type_and_arity($arg1_408, Symbol_label_str_Symbol, 2)){ + IValue $arg0_410 = (IValue)($aadt_subscript_int(((IConstructor)($arg1_408)),0)); + if($isComparable($arg0_410.getType(), $T2)){ + if(true){ + IString rtl_4 = null; + IValue $arg1_409 = (IValue)($aadt_subscript_int(((IConstructor)($arg1_408)),1)); + if($isComparable($arg1_409.getType(), ADT_Symbol)){ + if(true){ + IConstructor rt_5 = null; + IBool $aux10 = (IBool)(((IBool)$constants.get(2)/*false*/)); + $aux10 = ((IBool)$constants.get(2)/*false*/); + /*muExists*/$EXP402: + do { + if($has_type_and_arity($arg0_415, Symbol_label_str_Symbol, 2)){ + IValue $arg0_404 = (IValue)($aadt_subscript_int(((IConstructor)($arg0_415)),0)); + if($isComparable($arg0_404.getType(), $T4)){ + IValue $arg1_403 = (IValue)($aadt_subscript_int(((IConstructor)($arg0_415)),1)); + if($isComparable($arg1_403.getType(), $T4)){ + $aux10 = ((IBool)$constants.get(1)/*true*/); + break $EXP402; // muSucceed + } else { + $aux10 = ((IBool)$constants.get(2)/*false*/); + continue $EXP402; + } + } else { + $aux10 = ((IBool)$constants.get(2)/*false*/); + continue $EXP402; + } + } else { + $aux10 = ((IBool)$constants.get(2)/*false*/); + continue $EXP402; + } + } while(false); + if((((IBool)($aux10))).getValue()){ + return null; + } else { + IBool $aux11 = (IBool)(((IBool)$constants.get(2)/*false*/)); + $aux11 = ((IBool)$constants.get(2)/*false*/); + /*muExists*/$EXP405: + do { + if($has_type_and_arity($arg1_414, Symbol_label_str_Symbol, 2)){ + IValue $arg0_407 = (IValue)($aadt_subscript_int(((IConstructor)($arg1_414)),0)); + if($isComparable($arg0_407.getType(), $T4)){ + IValue $arg1_406 = (IValue)($aadt_subscript_int(((IConstructor)($arg1_414)),1)); + if($isComparable($arg1_406.getType(), $T4)){ + $aux11 = ((IBool)$constants.get(1)/*true*/); + break $EXP405; // muSucceed + } else { + $aux11 = ((IBool)$constants.get(2)/*false*/); + continue $EXP405; + } + } else { + $aux11 = ((IBool)$constants.get(2)/*false*/); + continue $EXP405; + } + } else { + $aux11 = ((IBool)$constants.get(2)/*false*/); + continue $EXP405; + } + } while(false); + if((((IBool)($aux11))).getValue()){ + return null; + } else { + return ((IConstructor)($RVF.constructor(Symbol_map_Symbol_Symbol, new IValue[]{((IConstructor)($RVF.constructor(Symbol_label_str_Symbol, new IValue[]{((IString)($arg0_413)), ((IConstructor)($me.glb(((IConstructor)($arg0_415)), ((IConstructor)($arg1_412)))))}))), ((IConstructor)($RVF.constructor(Symbol_label_str_Symbol, new IValue[]{((IString)($arg0_410)), ((IConstructor)($me.glb(((IConstructor)($arg1_414)), ((IConstructor)($arg1_409)))))})))}))); + + } + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Type.rsc|(29177,218,<443,0>,<443,218>) + public IConstructor Type_glb$a5f417161c5ea6ff(IConstructor $0, IConstructor $1){ + + + if($has_type_and_arity($0, Symbol_map_Symbol_Symbol, 2)){ + IValue $arg0_434 = (IValue)($aadt_subscript_int(((IConstructor)$0),0)); + if($isComparable($arg0_434.getType(), ADT_Symbol)){ + if(true){ + IConstructor lf_0 = null; + IValue $arg1_433 = (IValue)($aadt_subscript_int(((IConstructor)$0),1)); + if($isComparable($arg1_433.getType(), ADT_Symbol)){ + if(true){ + IConstructor lt_1 = null; + if($has_type_and_arity($1, Symbol_map_Symbol_Symbol, 2)){ + IValue $arg0_432 = (IValue)($aadt_subscript_int(((IConstructor)$1),0)); + if($isComparable($arg0_432.getType(), ADT_Symbol)){ + if(true){ + IConstructor rf_2 = null; + IValue $arg1_431 = (IValue)($aadt_subscript_int(((IConstructor)$1),1)); + if($isComparable($arg1_431.getType(), ADT_Symbol)){ + if(true){ + IConstructor rt_3 = null; + IBool $aux12 = (IBool)(((IBool)$constants.get(2)/*false*/)); + $aux12 = ((IBool)$constants.get(2)/*false*/); + /*muExists*/$EXP419: + do { + if($has_type_and_arity($arg0_434, Symbol_label_str_Symbol, 2)){ + IValue $arg0_421 = (IValue)($aadt_subscript_int(((IConstructor)($arg0_434)),0)); + if($isComparable($arg0_421.getType(), $T4)){ + IValue $arg1_420 = (IValue)($aadt_subscript_int(((IConstructor)($arg0_434)),1)); + if($isComparable($arg1_420.getType(), $T4)){ + $aux12 = ((IBool)$constants.get(1)/*true*/); + break $EXP419; // muSucceed + } else { + $aux12 = ((IBool)$constants.get(2)/*false*/); + continue $EXP419; + } + } else { + $aux12 = ((IBool)$constants.get(2)/*false*/); + continue $EXP419; + } + } else { + $aux12 = ((IBool)$constants.get(2)/*false*/); + continue $EXP419; + } + } while(false); + if((((IBool)($aux12))).getValue()){ + return null; + } else { + IBool $aux13 = (IBool)(((IBool)$constants.get(2)/*false*/)); + $aux13 = ((IBool)$constants.get(2)/*false*/); + /*muExists*/$EXP422: + do { + if($has_type_and_arity($arg1_433, Symbol_label_str_Symbol, 2)){ + IValue $arg0_424 = (IValue)($aadt_subscript_int(((IConstructor)($arg1_433)),0)); + if($isComparable($arg0_424.getType(), $T4)){ + IValue $arg1_423 = (IValue)($aadt_subscript_int(((IConstructor)($arg1_433)),1)); + if($isComparable($arg1_423.getType(), $T4)){ + $aux13 = ((IBool)$constants.get(1)/*true*/); + break $EXP422; // muSucceed + } else { + $aux13 = ((IBool)$constants.get(2)/*false*/); + continue $EXP422; + } + } else { + $aux13 = ((IBool)$constants.get(2)/*false*/); + continue $EXP422; + } + } else { + $aux13 = ((IBool)$constants.get(2)/*false*/); + continue $EXP422; + } + } while(false); + if((((IBool)($aux13))).getValue()){ + return null; + } else { + IBool $aux14 = (IBool)(((IBool)$constants.get(2)/*false*/)); + $aux14 = ((IBool)$constants.get(2)/*false*/); + /*muExists*/$EXP425: + do { + if($has_type_and_arity($arg0_432, Symbol_label_str_Symbol, 2)){ + IValue $arg0_427 = (IValue)($aadt_subscript_int(((IConstructor)($arg0_432)),0)); + if($isComparable($arg0_427.getType(), $T4)){ + IValue $arg1_426 = (IValue)($aadt_subscript_int(((IConstructor)($arg0_432)),1)); + if($isComparable($arg1_426.getType(), $T4)){ + $aux14 = ((IBool)$constants.get(1)/*true*/); + break $EXP425; // muSucceed + } else { + $aux14 = ((IBool)$constants.get(2)/*false*/); + continue $EXP425; + } + } else { + $aux14 = ((IBool)$constants.get(2)/*false*/); + continue $EXP425; + } + } else { + $aux14 = ((IBool)$constants.get(2)/*false*/); + continue $EXP425; + } + } while(false); + if((((IBool)($aux14))).getValue()){ + return null; + } else { + IBool $aux15 = (IBool)(((IBool)$constants.get(2)/*false*/)); + $aux15 = ((IBool)$constants.get(2)/*false*/); + /*muExists*/$EXP428: + do { + if($has_type_and_arity($arg1_431, Symbol_label_str_Symbol, 2)){ + IValue $arg0_430 = (IValue)($aadt_subscript_int(((IConstructor)($arg1_431)),0)); + if($isComparable($arg0_430.getType(), $T4)){ + IValue $arg1_429 = (IValue)($aadt_subscript_int(((IConstructor)($arg1_431)),1)); + if($isComparable($arg1_429.getType(), $T4)){ + $aux15 = ((IBool)$constants.get(1)/*true*/); + break $EXP428; // muSucceed + } else { + $aux15 = ((IBool)$constants.get(2)/*false*/); + continue $EXP428; + } + } else { + $aux15 = ((IBool)$constants.get(2)/*false*/); + continue $EXP428; + } + } else { + $aux15 = ((IBool)$constants.get(2)/*false*/); + continue $EXP428; + } + } while(false); + if((((IBool)($aux15))).getValue()){ + return null; + } else { + return ((IConstructor)($RVF.constructor(Symbol_map_Symbol_Symbol, new IValue[]{((IConstructor)($me.glb(((IConstructor)($arg0_434)), ((IConstructor)($arg0_432))))), ((IConstructor)($me.glb(((IConstructor)($arg1_433)), ((IConstructor)($arg1_431)))))}))); + + } + } + } + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Type.rsc|(29397,92,<445,0>,<445,92>) + public IConstructor Type_glb$5aaa99890ed611bb(IConstructor $0, IConstructor $1){ + + + if($has_type_and_arity($0, Symbol_bag_Symbol, 1)){ + IValue $arg0_436 = (IValue)($aadt_subscript_int(((IConstructor)$0),0)); + if($isComparable($arg0_436.getType(), ADT_Symbol)){ + IConstructor s_0 = null; + if($has_type_and_arity($1, Symbol_bag_Symbol, 1)){ + IValue $arg0_435 = (IValue)($aadt_subscript_int(((IConstructor)$1),0)); + if($isComparable($arg0_435.getType(), ADT_Symbol)){ + IConstructor t_1 = null; + return ((IConstructor)($RVF.constructor(Symbol_bag_Symbol, new IValue[]{((IConstructor)($me.glb(((IConstructor)($arg0_436)), ((IConstructor)($arg0_435)))))}))); + + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Type.rsc|(29490,90,<446,0>,<446,90>) + public IConstructor Type_glb$e59f6ec3e8ac7cf8(IConstructor $0, IConstructor $1){ + + + if($has_type_and_arity($0, Symbol_adt_str_list_Symbol, 2)){ + IValue $arg0_438 = (IValue)($aadt_subscript_int(((IConstructor)$0),0)); + if($isComparable($arg0_438.getType(), $T2)){ + IString n_0 = null; + IValue $arg1_437 = (IValue)($aadt_subscript_int(((IConstructor)$0),1)); + if($isComparable($arg1_437.getType(), $T0)){ + if($has_type_and_arity($1, Symbol_node_, 0)){ + return ((IConstructor)($RVF.constructor(Symbol_node_, new IValue[]{}))); + + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Type.rsc|(29581,82,<447,0>,<447,82>) + public IConstructor Type_glb$13f9a897070bdb41(IConstructor $0, IConstructor $1){ + + + if($has_type_and_arity($0, Symbol_node_, 0)){ + if($has_type_and_arity($1, Symbol_adt_str_list_Symbol, 2)){ + IValue $arg0_440 = (IValue)($aadt_subscript_int(((IConstructor)$1),0)); + if($isComparable($arg0_440.getType(), $T2)){ + IString n_0 = null; + IValue $arg1_439 = (IValue)($aadt_subscript_int(((IConstructor)$1),1)); + if($isComparable($arg1_439.getType(), $T0)){ + return ((IConstructor)($RVF.constructor(Symbol_node_, new IValue[]{}))); + + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Type.rsc|(29664,257,<448,0>,<448,257>) + public IConstructor Type_glb$0b0dd3255cd61470(IConstructor $0, IConstructor $1){ + + + if($has_type_and_arity($0, Symbol_adt_str_list_Symbol, 2)){ + IValue $arg0_444 = (IValue)($aadt_subscript_int(((IConstructor)$0),0)); + if($isComparable($arg0_444.getType(), $T2)){ + IString n_0 = ((IString)($arg0_444)); + IValue $arg1_443 = (IValue)($aadt_subscript_int(((IConstructor)$0),1)); + if($isComparable($arg1_443.getType(), $T0)){ + IList lp_1 = ((IList)($arg1_443)); + if($has_type_and_arity($1, Symbol_adt_str_list_Symbol, 2)){ + IValue $arg0_442 = (IValue)($aadt_subscript_int(((IConstructor)$1),0)); + if($isComparable($arg0_442.getType(), $T2)){ + if(($arg0_444 != null)){ + if($arg0_444.match($arg0_442)){ + IValue $arg1_441 = (IValue)($aadt_subscript_int(((IConstructor)$1),1)); + if($isComparable($arg1_441.getType(), $T0)){ + IList rp_2 = ((IList)($arg1_441)); + if((((IBool)($equal(((IInteger)(M_List.size(((IList)($arg1_443))))), ((IInteger)(M_List.size(((IList)($arg1_441))))))))).getValue()){ + if((((IBool)($equal(((IList)($me.getParamLabels(((IList)($arg1_443))))), ((IList)($me.getParamLabels(((IList)($arg1_441))))))))).getValue()){ + if((((IBool)($aint_lessequal_aint(((IInteger)(M_List.size(((IList)($me.getParamLabels(((IList)($arg1_443)))))))),((IInteger)$constants.get(4)/*0*/)).not()))).getValue()){ + return ((IConstructor)($RVF.constructor(Symbol_adt_str_list_Symbol, new IValue[]{((IString)($arg0_442)), ((IList)($me.addParamLabels(((IList)($me.glb(((IList)($arg1_443)), ((IList)($arg1_441))))), ((IList)($me.getParamLabels(((IList)($arg1_443))))))))}))); + + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + $arg0_444 = ((IValue)($arg0_442)); + IValue $arg1_441 = (IValue)($aadt_subscript_int(((IConstructor)$1),1)); + if($isComparable($arg1_441.getType(), $T0)){ + IList rp_2 = ((IList)($arg1_441)); + if((((IBool)($equal(((IInteger)(M_List.size(((IList)($arg1_443))))), ((IInteger)(M_List.size(((IList)($arg1_441))))))))).getValue()){ + if((((IBool)($equal(((IList)($me.getParamLabels(((IList)($arg1_443))))), ((IList)($me.getParamLabels(((IList)($arg1_441))))))))).getValue()){ + if((((IBool)($aint_lessequal_aint(((IInteger)(M_List.size(((IList)($me.getParamLabels(((IList)($arg1_443)))))))),((IInteger)$constants.get(4)/*0*/)).not()))).getValue()){ + return ((IConstructor)($RVF.constructor(Symbol_adt_str_list_Symbol, new IValue[]{((IString)($arg0_442)), ((IList)($me.addParamLabels(((IList)($me.glb(((IList)($arg1_443)), ((IList)($arg1_441))))), ((IList)($me.getParamLabels(((IList)($arg1_443))))))))}))); + + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Type.rsc|(29922,179,<449,0>,<449,179>) + public IConstructor Type_glb$e2846391aba6c513(IConstructor $0, IConstructor $1){ + + + if($has_type_and_arity($0, Symbol_adt_str_list_Symbol, 2)){ + IValue $arg0_448 = (IValue)($aadt_subscript_int(((IConstructor)$0),0)); + if($isComparable($arg0_448.getType(), $T2)){ + IString n_0 = ((IString)($arg0_448)); + IValue $arg1_447 = (IValue)($aadt_subscript_int(((IConstructor)$0),1)); + if($isComparable($arg1_447.getType(), $T0)){ + IList lp_1 = ((IList)($arg1_447)); + if($has_type_and_arity($1, Symbol_adt_str_list_Symbol, 2)){ + IValue $arg0_446 = (IValue)($aadt_subscript_int(((IConstructor)$1),0)); + if($isComparable($arg0_446.getType(), $T2)){ + if(($arg0_448 != null)){ + if($arg0_448.match($arg0_446)){ + IValue $arg1_445 = (IValue)($aadt_subscript_int(((IConstructor)$1),1)); + if($isComparable($arg1_445.getType(), $T0)){ + IList rp_2 = ((IList)($arg1_445)); + if((((IBool)($equal(((IInteger)(M_List.size(((IList)($arg1_447))))), ((IInteger)(M_List.size(((IList)($arg1_445))))))))).getValue()){ + if((((IBool)($equal(((IInteger)(M_List.size(((IList)($me.getParamLabels(((IList)($arg1_447)))))))), ((IInteger)$constants.get(4)/*0*/))))).getValue()){ + return ((IConstructor)($RVF.constructor(Symbol_adt_str_list_Symbol, new IValue[]{((IString)($arg0_446)), ((IList)($me.glb(((IList)($arg1_447)), ((IList)($arg1_445)))))}))); + + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + $arg0_448 = ((IValue)($arg0_446)); + IValue $arg1_445 = (IValue)($aadt_subscript_int(((IConstructor)$1),1)); + if($isComparable($arg1_445.getType(), $T0)){ + IList rp_2 = ((IList)($arg1_445)); + if((((IBool)($equal(((IInteger)(M_List.size(((IList)($arg1_447))))), ((IInteger)(M_List.size(((IList)($arg1_445))))))))).getValue()){ + if((((IBool)($equal(((IInteger)(M_List.size(((IList)($me.getParamLabels(((IList)($arg1_447)))))))), ((IInteger)$constants.get(4)/*0*/))))).getValue()){ + return ((IConstructor)($RVF.constructor(Symbol_adt_str_list_Symbol, new IValue[]{((IString)($arg0_446)), ((IList)($me.glb(((IList)($arg1_447)), ((IList)($arg1_445)))))}))); + + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Type.rsc|(30102,124,<450,0>,<450,124>) + public IConstructor Type_glb$fcb766b6fadeffe6(IConstructor $0, IConstructor $1){ + + + if($has_type_and_arity($0, Symbol_adt_str_list_Symbol, 2)){ + IValue $arg0_452 = (IValue)($aadt_subscript_int(((IConstructor)$0),0)); + if($isComparable($arg0_452.getType(), $T2)){ + IString n_0 = null; + IValue $arg1_451 = (IValue)($aadt_subscript_int(((IConstructor)$0),1)); + if($isComparable($arg1_451.getType(), $T0)){ + IList lp_1 = null; + if($has_type_and_arity($1, Symbol_adt_str_list_Symbol, 2)){ + IValue $arg0_450 = (IValue)($aadt_subscript_int(((IConstructor)$1),0)); + if($isComparable($arg0_450.getType(), $T2)){ + IString m_2 = null; + IValue $arg1_449 = (IValue)($aadt_subscript_int(((IConstructor)$1),1)); + if($isComparable($arg1_449.getType(), $T0)){ + IList rp_3 = null; + if((((IBool)($equal(((IString)($arg0_452)),((IString)($arg0_450))).not()))).getValue()){ + return ((IConstructor)($RVF.constructor(Symbol_node_, new IValue[]{}))); + + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Type.rsc|(30227,130,<451,0>,<451,130>) + public IConstructor Type_glb$57382441fa985d45(IConstructor $0, IConstructor $1){ + + + if($has_type_and_arity($0, Symbol_adt_str_list_Symbol, 2)){ + IValue $arg0_457 = (IValue)($aadt_subscript_int(((IConstructor)$0),0)); + if($isComparable($arg0_457.getType(), $T2)){ + IString ln_0 = null; + IValue $arg1_456 = (IValue)($aadt_subscript_int(((IConstructor)$0),1)); + if($isComparable($arg1_456.getType(), $T0)){ + IList lp_1 = null; + if($has_type_and_arity($1, Symbol_cons_Symbol_str_list_Symbol, 3)){ + IValue $arg0_455 = (IValue)($aadt_subscript_int(((IConstructor)$1),0)); + if($isComparable($arg0_455.getType(), ADT_Symbol)){ + IConstructor b_2 = null; + IValue $arg1_454 = (IValue)($aadt_subscript_int(((IConstructor)$1),1)); + if($isComparable($arg1_454.getType(), $T4)){ + IValue $arg2_453 = (IValue)($aadt_subscript_int(((IConstructor)$1),2)); + if($isComparable($arg2_453.getType(), $T0)){ + return ((IConstructor)($me.glb(((IConstructor)($RVF.constructor(Symbol_adt_str_list_Symbol, new IValue[]{((IString)($arg0_457)), ((IList)($arg1_456))}))), ((IConstructor)($arg0_455))))); + + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Type.rsc|(30359,121,<453,0>,<453,121>) + public IConstructor Type_glb$cad5f842cc182e58(IConstructor $0, IConstructor $1){ + + + if($has_type_and_arity($0, Symbol_cons_Symbol_str_list_Symbol, 3)){ + IValue $arg0_463 = (IValue)($aadt_subscript_int(((IConstructor)$0),0)); + if($isComparable($arg0_463.getType(), ADT_Symbol)){ + IConstructor la_0 = null; + IValue $arg1_462 = (IValue)($aadt_subscript_int(((IConstructor)$0),1)); + if($isComparable($arg1_462.getType(), $T4)){ + IValue $arg2_461 = (IValue)($aadt_subscript_int(((IConstructor)$0),2)); + if($isComparable($arg2_461.getType(), $T0)){ + if($has_type_and_arity($1, Symbol_cons_Symbol_str_list_Symbol, 3)){ + IValue $arg0_460 = (IValue)($aadt_subscript_int(((IConstructor)$1),0)); + if($isComparable($arg0_460.getType(), ADT_Symbol)){ + IConstructor ra_1 = null; + IValue $arg1_459 = (IValue)($aadt_subscript_int(((IConstructor)$1),1)); + if($isComparable($arg1_459.getType(), $T4)){ + IValue $arg2_458 = (IValue)($aadt_subscript_int(((IConstructor)$1),2)); + if($isComparable($arg2_458.getType(), $T0)){ + return ((IConstructor)($me.glb(((IConstructor)($arg0_463)), ((IConstructor)($arg0_460))))); + + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Type.rsc|(30481,129,<454,0>,<454,129>) + public IConstructor Type_glb$b25c5c3f39fc09b1(IConstructor $0, IConstructor $1){ + + + if($has_type_and_arity($0, Symbol_cons_Symbol_str_list_Symbol, 3)){ + IValue $arg0_468 = (IValue)($aadt_subscript_int(((IConstructor)$0),0)); + if($isComparable($arg0_468.getType(), ADT_Symbol)){ + IConstructor a_0 = null; + IValue $arg1_467 = (IValue)($aadt_subscript_int(((IConstructor)$0),1)); + if($isComparable($arg1_467.getType(), $T4)){ + IValue $arg2_466 = (IValue)($aadt_subscript_int(((IConstructor)$0),2)); + if($isComparable($arg2_466.getType(), $T0)){ + IList lp_1 = null; + if($has_type_and_arity($1, Symbol_adt_str_list_Symbol, 2)){ + IValue $arg0_465 = (IValue)($aadt_subscript_int(((IConstructor)$1),0)); + if($isComparable($arg0_465.getType(), $T2)){ + IString n_2 = null; + IValue $arg1_464 = (IValue)($aadt_subscript_int(((IConstructor)$1),1)); + if($isComparable($arg1_464.getType(), $T0)){ + IList rp_3 = null; + return ((IConstructor)($me.glb(((IConstructor)($arg0_468)), ((IConstructor)($RVF.constructor(Symbol_adt_str_list_Symbol, new IValue[]{((IString)($arg0_465)), ((IList)($arg1_464))})))))); + + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Type.rsc|(30611,81,<455,0>,<455,81>) + public IConstructor Type_glb$cd7b70aadcf0e6f7(IConstructor $0, IConstructor $1){ + + + if($has_type_and_arity($0, Symbol_cons_Symbol_str_list_Symbol, 3)){ + IValue $arg0_471 = (IValue)($aadt_subscript_int(((IConstructor)$0),0)); + if($isComparable($arg0_471.getType(), ADT_Symbol)){ + IValue $arg1_470 = (IValue)($aadt_subscript_int(((IConstructor)$0),1)); + if($isComparable($arg1_470.getType(), $T4)){ + IValue $arg2_469 = (IValue)($aadt_subscript_int(((IConstructor)$0),2)); + if($isComparable($arg2_469.getType(), $T0)){ + if($has_type_and_arity($1, Symbol_node_, 0)){ + return ((IConstructor)$constants.get(10)/*node()*/); + + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Type.rsc|(30694,101,<457,0>,<457,101>) + public IConstructor Type_glb$6917d863f1e00280(IConstructor $0, IConstructor r_1){ + + + if($has_type_and_arity($0, Symbol_alias_str_list_Symbol_Symbol, 3)){ + IValue $arg0_474 = (IValue)($aadt_subscript_int(((IConstructor)$0),0)); + if($isComparable($arg0_474.getType(), $T2)){ + IValue $arg1_473 = (IValue)($aadt_subscript_int(((IConstructor)$0),1)); + if($isComparable($arg1_473.getType(), $T0)){ + IValue $arg2_472 = (IValue)($aadt_subscript_int(((IConstructor)$0),2)); + if($isComparable($arg2_472.getType(), ADT_Symbol)){ + IConstructor aliased_0 = null; + return ((IConstructor)($me.glb(((IConstructor)($arg2_472)), ((IConstructor)r_1)))); + + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Type.rsc|(30796,101,<458,0>,<458,101>) + public IConstructor Type_glb$748cc45995ed4ab6(IConstructor l_0, IConstructor $1){ + + + if($has_type_and_arity($1, Symbol_alias_str_list_Symbol_Symbol, 3)){ + IValue $arg0_477 = (IValue)($aadt_subscript_int(((IConstructor)$1),0)); + if($isComparable($arg0_477.getType(), $T2)){ + IValue $arg1_476 = (IValue)($aadt_subscript_int(((IConstructor)$1),1)); + if($isComparable($arg1_476.getType(), $T0)){ + IValue $arg2_475 = (IValue)($aadt_subscript_int(((IConstructor)$1),2)); + if($isComparable($arg2_475.getType(), ADT_Symbol)){ + IConstructor aliased_1 = null; + return ((IConstructor)($me.glb(((IConstructor)l_0), ((IConstructor)($arg2_475))))); + + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Type.rsc|(30899,85,<460,0>,<460,85>) + public IConstructor Type_glb$9ee1fb0fc2528775(IConstructor $0, IConstructor r_1){ + + + if($has_type_and_arity($0, Symbol_parameter_str_Symbol, 2)){ + IValue $arg0_479 = (IValue)($aadt_subscript_int(((IConstructor)$0),0)); + if($isComparable($arg0_479.getType(), $T2)){ + IValue $arg1_478 = (IValue)($aadt_subscript_int(((IConstructor)$0),1)); + if($isComparable($arg1_478.getType(), ADT_Symbol)){ + IConstructor bound_0 = null; + return ((IConstructor)($me.glb(((IConstructor)($arg1_478)), ((IConstructor)r_1)))); + + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Type.rsc|(30985,85,<461,0>,<461,85>) + public IConstructor Type_glb$f5f3963b9ac36b44(IConstructor l_0, IConstructor $1){ + + + if($has_type_and_arity($1, Symbol_parameter_str_Symbol, 2)){ + IValue $arg0_481 = (IValue)($aadt_subscript_int(((IConstructor)$1),0)); + if($isComparable($arg0_481.getType(), $T2)){ + IValue $arg1_480 = (IValue)($aadt_subscript_int(((IConstructor)$1),1)); + if($isComparable($arg1_480.getType(), ADT_Symbol)){ + IConstructor bound_1 = null; + return ((IConstructor)($me.glb(((IConstructor)l_0), ((IConstructor)($arg1_480))))); + + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Type.rsc|(31072,103,<463,0>,<463,103>) + public IConstructor Type_glb$265e93665a676ba9(IConstructor $0, IConstructor $1){ + + + if($has_type_and_arity($0, Symbol_reified_Symbol, 1)){ + IValue $arg0_483 = (IValue)($aadt_subscript_int(((IConstructor)$0),0)); + if($isComparable($arg0_483.getType(), ADT_Symbol)){ + IConstructor l_0 = null; + if($has_type_and_arity($1, Symbol_reified_Symbol, 1)){ + IValue $arg0_482 = (IValue)($aadt_subscript_int(((IConstructor)$1),0)); + if($isComparable($arg0_482.getType(), ADT_Symbol)){ + IConstructor r_1 = null; + return ((IConstructor)($RVF.constructor(Symbol_reified_Symbol, new IValue[]{((IConstructor)($me.glb(((IConstructor)($arg0_483)), ((IConstructor)($arg0_482)))))}))); + + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Type.rsc|(31176,81,<464,0>,<464,81>) + public IConstructor Type_glb$6a5d82307ef38ff1(IConstructor $0, IConstructor $1){ + + + if($has_type_and_arity($0, Symbol_reified_Symbol, 1)){ + IValue $arg0_484 = (IValue)($aadt_subscript_int(((IConstructor)$0),0)); + if($isComparable($arg0_484.getType(), ADT_Symbol)){ + IConstructor l_0 = null; + if($has_type_and_arity($1, Symbol_node_, 0)){ + return ((IConstructor)($RVF.constructor(Symbol_node_, new IValue[]{}))); + + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Type.rsc|(31259,356,<466,0>,<473,1>) + public IConstructor Type_glb$69c036b2f7ba2c93(IConstructor $0, IConstructor $1){ + + + if($has_type_and_arity($0, Symbol_func_Symbol_list_Symbol_list_Symbol, 3)){ + IValue $arg0_491 = (IValue)($aadt_subscript_int(((IConstructor)$0),0)); + if($isComparable($arg0_491.getType(), ADT_Symbol)){ + IConstructor lr_0 = null; + IValue $arg1_490 = (IValue)($aadt_subscript_int(((IConstructor)$0),1)); + if($isComparable($arg1_490.getType(), $T0)){ + IList lp_1 = null; + IValue $arg2_489 = (IValue)($aadt_subscript_int(((IConstructor)$0),2)); + if($isComparable($arg2_489.getType(), $T0)){ + IList kwl_2 = null; + if($has_type_and_arity($1, Symbol_func_Symbol_list_Symbol_list_Symbol, 3)){ + IValue $arg0_488 = (IValue)($aadt_subscript_int(((IConstructor)$1),0)); + if($isComparable($arg0_488.getType(), ADT_Symbol)){ + IConstructor rr_3 = null; + IValue $arg1_487 = (IValue)($aadt_subscript_int(((IConstructor)$1),1)); + if($isComparable($arg1_487.getType(), $T0)){ + IList rp_4 = null; + IValue $arg2_486 = (IValue)($aadt_subscript_int(((IConstructor)$1),2)); + if($isComparable($arg2_486.getType(), $T0)){ + IList kwr_5 = null; + IConstructor glbReturn_6 = ((IConstructor)($me.glb(((IConstructor)($arg0_491)), ((IConstructor)($arg0_488))))); + IConstructor glbParams_7 = ((IConstructor)($me.lub(((IConstructor)($RVF.constructor(Symbol_tuple_list_Symbol, new IValue[]{((IList)($arg1_490))}))), ((IConstructor)($RVF.constructor(Symbol_tuple_list_Symbol, new IValue[]{((IList)($arg1_487))})))))); + if((((IBool)($me.isTupleType(((IConstructor)glbParams_7))))).getValue()){ + return ((IConstructor)($RVF.constructor(Symbol_func_Symbol_list_Symbol_list_Symbol, new IValue[]{((IConstructor)glbReturn_6), ((IList)(((IList)($aadt_get_field(((IConstructor)glbParams_7), "symbols"))))), ((IList)(((((IBool)($equal(((IList)($arg2_489)), ((IList)($arg2_486)))))).getValue() ? $arg2_489 : ((IList)$constants.get(0)/*[]*/))))}))); + + } else { + return ((IConstructor)($RVF.constructor(Symbol_value_, new IValue[]{}))); + + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Type.rsc|(31617,67,<475,0>,<475,67>) + public IConstructor Type_glb$34d371f0513c1ec9(IConstructor $0, IConstructor r_1){ + + + if($has_type_and_arity($0, Symbol_label_str_Symbol, 2)){ + IValue $arg0_493 = (IValue)($aadt_subscript_int(((IConstructor)$0),0)); + if($isComparable($arg0_493.getType(), $T4)){ + IValue $arg1_492 = (IValue)($aadt_subscript_int(((IConstructor)$0),1)); + if($isComparable($arg1_492.getType(), ADT_Symbol)){ + IConstructor l_0 = null; + return ((IConstructor)($me.glb(((IConstructor)($arg1_492)), ((IConstructor)r_1)))); + + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Type.rsc|(31685,67,<476,0>,<476,67>) + public IConstructor Type_glb$062f850b66975974(IConstructor l_0, IConstructor $1){ + + + if($has_type_and_arity($1, Symbol_label_str_Symbol, 2)){ + IValue $arg0_495 = (IValue)($aadt_subscript_int(((IConstructor)$1),0)); + if($isComparable($arg0_495.getType(), $T4)){ + IValue $arg1_494 = (IValue)($aadt_subscript_int(((IConstructor)$1),1)); + if($isComparable($arg1_494.getType(), ADT_Symbol)){ + IConstructor r_1 = null; + return ((IConstructor)($me.glb(((IConstructor)l_0), ((IConstructor)($arg1_494))))); + + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Type.rsc|(31754,121,<478,0>,<478,121>) + public IList Type_glb$588ab965903d12a1(IList l_0, IList r_1){ + + + if((((IBool)($equal(((IInteger)(M_List.size(((IList)l_0)))), ((IInteger)(M_List.size(((IList)r_1)))))))).getValue()){ + final IListWriter $listwriter496 = (IListWriter)$RVF.listWriter(); + $LCOMP497_GEN31834: + for(IValue $elem498_for : ((IList)(M_List.index(((IList)l_0))))){ + IInteger $elem498 = (IInteger) $elem498_for; + IInteger idx_2 = null; + $listwriter496.append($me.glb(((IConstructor)($alist_subscript_int(((IList)l_0),((IInteger)($elem498)).intValue()))), ((IConstructor)($alist_subscript_int(((IList)r_1),((IInteger)($elem498)).intValue()))))); + + } + + return ((IList)($listwriter496.done())); + + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Type.rsc|(31877,77,<479,0>,<479,77>) + public IList Type_glb$c557bcbeba468980(IList l_0, IList r_1){ + + + return ((IList)$constants.get(7)/*[value()]*/); + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Type.rsc|(32030,119,<485,0>,<489,1>) + public IValue Type_typeCast$0e794e9add95c83b(IConstructor typ_0, IValue v_1){ + + + HashMap $typeBindings = new HashMap<>(); + if($T5.match(typ_0.getType(), $typeBindings)){ + if($isSubtypeOf(v_1.getType(),$T21.instantiate($typeBindings))){ + IValue x_2 = null; + final IValue $result499 = ((IValue)v_1); + if($T21.instantiate($typeBindings) != $TF.voidType() && $isSubtypeOf($result499.getType(),$T21)){ + return ((IValue)($result499)); + + } else { + return null; + } + } + throw new Throw($RVF.constructor(Exception_typeCastException_Symbol_reified_value, new IValue[]{((IConstructor)($me.typeOf(((IValue)v_1)))), ((IConstructor)typ_0)})); + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Type.rsc|(32151,500,<491,0>,<498,62>) + public IValue Type_make$c03dd112cd83002d(IConstructor typ_0, IString name_1, IList args_2){ + + + HashMap $typeBindings = new HashMap<>(); + if($T5.match(typ_0.getType(), $typeBindings)){ + final IValue $result500 = ((IValue)((IValue)$Type.make(typ_0, name_1, args_2))); + if($T21.instantiate($typeBindings) != $TF.voidType() && $isSubtypeOf($result500.getType(),$T21)){ + return ((IValue)($result500)); + + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Type.rsc|(32654,129,<500,0>,<501,90>) + public IValue Type_make$ed639cfbd11999e2(IConstructor typ_0, IString name_1, IList args_2, IMap keywordArgs_3){ + + + HashMap $typeBindings = new HashMap<>(); + if($T5.match(typ_0.getType(), $typeBindings)){ + final IValue $result501 = ((IValue)((IValue)$Type.make(typ_0, name_1, args_2, keywordArgs_3))); + if($T21.instantiate($typeBindings) != $TF.voidType() && $isSubtypeOf($result501.getType(),$T21)){ + return ((IValue)($result501)); + + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Type.rsc|(32786,686,<503,0>,<526,35>) + public IConstructor Type_typeOf$6061dcc1215fd746(IValue v_0){ + + + return ((IConstructor)((IConstructor)$Type.typeOf(v_0))); + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Type.rsc|(33474,119,<528,0>,<529,69>) + public IBool Type_isIntType$609e2442e96ec30b(IConstructor $0){ + + + if($has_type_and_arity($0, Symbol_alias_str_list_Symbol_Symbol, 3)){ + IValue $arg0_504 = (IValue)($aadt_subscript_int(((IConstructor)$0),0)); + if($isComparable($arg0_504.getType(), $T4)){ + IValue $arg1_503 = (IValue)($aadt_subscript_int(((IConstructor)$0),1)); + if($isComparable($arg1_503.getType(), $T4)){ + IValue $arg2_502 = (IValue)($aadt_subscript_int(((IConstructor)$0),2)); + if($isComparable($arg2_502.getType(), ADT_Symbol)){ + IConstructor at_0 = null; + return ((IBool)($me.isIntType(((IConstructor)($arg2_502))))); + + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Type.rsc|(33594,73,<530,0>,<530,73>) + public IBool Type_isIntType$bad3a4974e63bce6(IConstructor $0){ + + + if($has_type_and_arity($0, Symbol_parameter_str_Symbol, 2)){ + IValue $arg0_506 = (IValue)($aadt_subscript_int(((IConstructor)$0),0)); + if($isComparable($arg0_506.getType(), $T4)){ + IValue $arg1_505 = (IValue)($aadt_subscript_int(((IConstructor)$0),1)); + if($isComparable($arg1_505.getType(), ADT_Symbol)){ + IConstructor tvb_0 = null; + return ((IBool)($me.isIntType(((IConstructor)($arg1_505))))); + + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Type.rsc|(33668,67,<531,0>,<531,67>) + public IBool Type_isIntType$8b21ce695f297291(IConstructor $0){ + + + if($has_type_and_arity($0, Symbol_label_str_Symbol, 2)){ + IValue $arg0_508 = (IValue)($aadt_subscript_int(((IConstructor)$0),0)); + if($isComparable($arg0_508.getType(), $T4)){ + IValue $arg1_507 = (IValue)($aadt_subscript_int(((IConstructor)$0),1)); + if($isComparable($arg1_507.getType(), ADT_Symbol)){ + IConstructor lt_0 = null; + return ((IBool)($me.isIntType(((IConstructor)($arg1_507))))); + + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Type.rsc|(33736,45,<532,0>,<532,45>) + public IBool Type_isIntType$ea27a84c58784f0e(IConstructor $0){ + + + if($has_type_and_arity($0, Symbol_int_, 0)){ + return ((IBool)$constants.get(1)/*true*/); + + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Type.rsc|(33782,48,<533,0>,<533,48>) + public IBool Type_isIntType$51bf141928a07cf0(IConstructor $__0){ + + + return ((IBool)$constants.get(2)/*false*/); + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Type.rsc|(33832,122,<535,0>,<536,71>) + public IBool Type_isBoolType$37ece13e0d5add6a(IConstructor $0){ + + + if($has_type_and_arity($0, Symbol_alias_str_list_Symbol_Symbol, 3)){ + IValue $arg0_511 = (IValue)($aadt_subscript_int(((IConstructor)$0),0)); + if($isComparable($arg0_511.getType(), $T4)){ + IValue $arg1_510 = (IValue)($aadt_subscript_int(((IConstructor)$0),1)); + if($isComparable($arg1_510.getType(), $T4)){ + IValue $arg2_509 = (IValue)($aadt_subscript_int(((IConstructor)$0),2)); + if($isComparable($arg2_509.getType(), ADT_Symbol)){ + IConstructor at_0 = null; + return ((IBool)($me.isBoolType(((IConstructor)($arg2_509))))); + + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Type.rsc|(33955,75,<537,0>,<537,75>) + public IBool Type_isBoolType$8cefc437e5ae4c94(IConstructor $0){ + + + if($has_type_and_arity($0, Symbol_parameter_str_Symbol, 2)){ + IValue $arg0_513 = (IValue)($aadt_subscript_int(((IConstructor)$0),0)); + if($isComparable($arg0_513.getType(), $T4)){ + IValue $arg1_512 = (IValue)($aadt_subscript_int(((IConstructor)$0),1)); + if($isComparable($arg1_512.getType(), ADT_Symbol)){ + IConstructor tvb_0 = null; + return ((IBool)($me.isBoolType(((IConstructor)($arg1_512))))); + + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Type.rsc|(34031,69,<538,0>,<538,69>) + public IBool Type_isBoolType$82e078ed93f04711(IConstructor $0){ + + + if($has_type_and_arity($0, Symbol_label_str_Symbol, 2)){ + IValue $arg0_515 = (IValue)($aadt_subscript_int(((IConstructor)$0),0)); + if($isComparable($arg0_515.getType(), $T4)){ + IValue $arg1_514 = (IValue)($aadt_subscript_int(((IConstructor)$0),1)); + if($isComparable($arg1_514.getType(), ADT_Symbol)){ + IConstructor lt_0 = null; + return ((IBool)($me.isBoolType(((IConstructor)($arg1_514))))); + + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Type.rsc|(34101,47,<539,0>,<539,47>) + public IBool Type_isBoolType$0e05363bfd11b324(IConstructor $0){ + + + if($has_type_and_arity($0, Symbol_bool_, 0)){ + return ((IBool)$constants.get(1)/*true*/); + + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Type.rsc|(34149,49,<540,0>,<540,49>) + public IBool Type_isBoolType$07e3c834d8dd35ef(IConstructor $__0){ + + + return ((IBool)$constants.get(2)/*false*/); + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Type.rsc|(34200,122,<542,0>,<543,71>) + public IBool Type_isRealType$4d3ef284eba47817(IConstructor $0){ + + + if($has_type_and_arity($0, Symbol_alias_str_list_Symbol_Symbol, 3)){ + IValue $arg0_518 = (IValue)($aadt_subscript_int(((IConstructor)$0),0)); + if($isComparable($arg0_518.getType(), $T4)){ + IValue $arg1_517 = (IValue)($aadt_subscript_int(((IConstructor)$0),1)); + if($isComparable($arg1_517.getType(), $T4)){ + IValue $arg2_516 = (IValue)($aadt_subscript_int(((IConstructor)$0),2)); + if($isComparable($arg2_516.getType(), ADT_Symbol)){ + IConstructor at_0 = null; + return ((IBool)($me.isRealType(((IConstructor)($arg2_516))))); + + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Type.rsc|(34323,75,<544,0>,<544,75>) + public IBool Type_isRealType$5af787b150624afb(IConstructor $0){ + + + if($has_type_and_arity($0, Symbol_parameter_str_Symbol, 2)){ + IValue $arg0_520 = (IValue)($aadt_subscript_int(((IConstructor)$0),0)); + if($isComparable($arg0_520.getType(), $T4)){ + IValue $arg1_519 = (IValue)($aadt_subscript_int(((IConstructor)$0),1)); + if($isComparable($arg1_519.getType(), ADT_Symbol)){ + IConstructor tvb_0 = null; + return ((IBool)($me.isRealType(((IConstructor)($arg1_519))))); + + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Type.rsc|(34399,69,<545,0>,<545,69>) + public IBool Type_isRealType$bf4dadc558e2bc2a(IConstructor $0){ + + + if($has_type_and_arity($0, Symbol_label_str_Symbol, 2)){ + IValue $arg0_522 = (IValue)($aadt_subscript_int(((IConstructor)$0),0)); + if($isComparable($arg0_522.getType(), $T4)){ + IValue $arg1_521 = (IValue)($aadt_subscript_int(((IConstructor)$0),1)); + if($isComparable($arg1_521.getType(), ADT_Symbol)){ + IConstructor lt_0 = null; + return ((IBool)($me.isRealType(((IConstructor)($arg1_521))))); + + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Type.rsc|(34469,47,<546,0>,<546,47>) + public IBool Type_isRealType$f338a01b49d8b0d2(IConstructor $0){ + + + if($has_type_and_arity($0, Symbol_real_, 0)){ + return ((IBool)$constants.get(1)/*true*/); + + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Type.rsc|(34517,49,<547,0>,<547,49>) + public IBool Type_isRealType$ccca7a2c3ee9a4fb(IConstructor $__0){ + + + return ((IBool)$constants.get(2)/*false*/); + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Type.rsc|(34568,119,<549,0>,<550,69>) + public IBool Type_isRatType$8af97bb6a2786bed(IConstructor $0){ + + + if($has_type_and_arity($0, Symbol_alias_str_list_Symbol_Symbol, 3)){ + IValue $arg0_525 = (IValue)($aadt_subscript_int(((IConstructor)$0),0)); + if($isComparable($arg0_525.getType(), $T4)){ + IValue $arg1_524 = (IValue)($aadt_subscript_int(((IConstructor)$0),1)); + if($isComparable($arg1_524.getType(), $T4)){ + IValue $arg2_523 = (IValue)($aadt_subscript_int(((IConstructor)$0),2)); + if($isComparable($arg2_523.getType(), ADT_Symbol)){ + IConstructor at_0 = null; + return ((IBool)($me.isRatType(((IConstructor)($arg2_523))))); + + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Type.rsc|(34688,73,<551,0>,<551,73>) + public IBool Type_isRatType$b9693bea2192ed8c(IConstructor $0){ + + + if($has_type_and_arity($0, Symbol_parameter_str_Symbol, 2)){ + IValue $arg0_527 = (IValue)($aadt_subscript_int(((IConstructor)$0),0)); + if($isComparable($arg0_527.getType(), $T4)){ + IValue $arg1_526 = (IValue)($aadt_subscript_int(((IConstructor)$0),1)); + if($isComparable($arg1_526.getType(), ADT_Symbol)){ + IConstructor tvb_0 = null; + return ((IBool)($me.isRatType(((IConstructor)($arg1_526))))); + + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Type.rsc|(34762,67,<552,0>,<552,67>) + public IBool Type_isRatType$dcf2381b59098cd9(IConstructor $0){ + + + if($has_type_and_arity($0, Symbol_label_str_Symbol, 2)){ + IValue $arg0_529 = (IValue)($aadt_subscript_int(((IConstructor)$0),0)); + if($isComparable($arg0_529.getType(), $T4)){ + IValue $arg1_528 = (IValue)($aadt_subscript_int(((IConstructor)$0),1)); + if($isComparable($arg1_528.getType(), ADT_Symbol)){ + IConstructor lt_0 = null; + return ((IBool)($me.isRatType(((IConstructor)($arg1_528))))); + + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Type.rsc|(34830,45,<553,0>,<553,45>) + public IBool Type_isRatType$45bbf043839d3d63(IConstructor $0){ + + + if($has_type_and_arity($0, Symbol_rat_, 0)){ + return ((IBool)$constants.get(1)/*true*/); + + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Type.rsc|(34876,48,<554,0>,<554,48>) + public IBool Type_isRatType$3364a9bd0fe98d3a(IConstructor $__0){ + + + return ((IBool)$constants.get(2)/*false*/); + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Type.rsc|(34926,119,<556,0>,<557,69>) + public IBool Type_isStrType$f6b0f7a14a810d8f(IConstructor $0){ + + + if($has_type_and_arity($0, Symbol_alias_str_list_Symbol_Symbol, 3)){ + IValue $arg0_532 = (IValue)($aadt_subscript_int(((IConstructor)$0),0)); + if($isComparable($arg0_532.getType(), $T4)){ + IValue $arg1_531 = (IValue)($aadt_subscript_int(((IConstructor)$0),1)); + if($isComparable($arg1_531.getType(), $T4)){ + IValue $arg2_530 = (IValue)($aadt_subscript_int(((IConstructor)$0),2)); + if($isComparable($arg2_530.getType(), ADT_Symbol)){ + IConstructor at_0 = null; + return ((IBool)($me.isStrType(((IConstructor)($arg2_530))))); + + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Type.rsc|(35046,73,<558,0>,<558,73>) + public IBool Type_isStrType$f001e5ed63b40aa7(IConstructor $0){ + + + if($has_type_and_arity($0, Symbol_parameter_str_Symbol, 2)){ + IValue $arg0_534 = (IValue)($aadt_subscript_int(((IConstructor)$0),0)); + if($isComparable($arg0_534.getType(), $T4)){ + IValue $arg1_533 = (IValue)($aadt_subscript_int(((IConstructor)$0),1)); + if($isComparable($arg1_533.getType(), ADT_Symbol)){ + IConstructor tvb_0 = null; + return ((IBool)($me.isStrType(((IConstructor)($arg1_533))))); + + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Type.rsc|(35120,67,<559,0>,<559,67>) + public IBool Type_isStrType$7c6935fdcbba3a91(IConstructor $0){ + + + if($has_type_and_arity($0, Symbol_label_str_Symbol, 2)){ + IValue $arg0_536 = (IValue)($aadt_subscript_int(((IConstructor)$0),0)); + if($isComparable($arg0_536.getType(), $T4)){ + IValue $arg1_535 = (IValue)($aadt_subscript_int(((IConstructor)$0),1)); + if($isComparable($arg1_535.getType(), ADT_Symbol)){ + IConstructor lt_0 = null; + return ((IBool)($me.isStrType(((IConstructor)($arg1_535))))); + + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Type.rsc|(35188,45,<560,0>,<560,45>) + public IBool Type_isStrType$9ae2419b08ae933c(IConstructor $0){ + + + if($has_type_and_arity($0, Symbol_str_, 0)){ + return ((IBool)$constants.get(1)/*true*/); + + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Type.rsc|(35234,48,<561,0>,<561,48>) + public IBool Type_isStrType$f3e2471bbdc6578c(IConstructor $__0){ + + + return ((IBool)$constants.get(2)/*false*/); + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Type.rsc|(35284,119,<563,0>,<564,69>) + public IBool Type_isNumType$cebed1c4e2f4e0c1(IConstructor $0){ + + + if($has_type_and_arity($0, Symbol_alias_str_list_Symbol_Symbol, 3)){ + IValue $arg0_539 = (IValue)($aadt_subscript_int(((IConstructor)$0),0)); + if($isComparable($arg0_539.getType(), $T4)){ + IValue $arg1_538 = (IValue)($aadt_subscript_int(((IConstructor)$0),1)); + if($isComparable($arg1_538.getType(), $T4)){ + IValue $arg2_537 = (IValue)($aadt_subscript_int(((IConstructor)$0),2)); + if($isComparable($arg2_537.getType(), ADT_Symbol)){ + IConstructor at_0 = null; + return ((IBool)($me.isNumType(((IConstructor)($arg2_537))))); + + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Type.rsc|(35404,73,<565,0>,<565,73>) + public IBool Type_isNumType$8f39481fe207a2d9(IConstructor $0){ + + + if($has_type_and_arity($0, Symbol_parameter_str_Symbol, 2)){ + IValue $arg0_541 = (IValue)($aadt_subscript_int(((IConstructor)$0),0)); + if($isComparable($arg0_541.getType(), $T4)){ + IValue $arg1_540 = (IValue)($aadt_subscript_int(((IConstructor)$0),1)); + if($isComparable($arg1_540.getType(), ADT_Symbol)){ + IConstructor tvb_0 = null; + return ((IBool)($me.isNumType(((IConstructor)($arg1_540))))); + + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Type.rsc|(35478,67,<566,0>,<566,67>) + public IBool Type_isNumType$5f826fd8c150a884(IConstructor $0){ + + + if($has_type_and_arity($0, Symbol_label_str_Symbol, 2)){ + IValue $arg0_543 = (IValue)($aadt_subscript_int(((IConstructor)$0),0)); + if($isComparable($arg0_543.getType(), $T4)){ + IValue $arg1_542 = (IValue)($aadt_subscript_int(((IConstructor)$0),1)); + if($isComparable($arg1_542.getType(), ADT_Symbol)){ + IConstructor lt_0 = null; + return ((IBool)($me.isNumType(((IConstructor)($arg1_542))))); + + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Type.rsc|(35546,45,<567,0>,<567,45>) + public IBool Type_isNumType$f905e6a61b4f9fe9(IConstructor $0){ + + + if($has_type_and_arity($0, Symbol_num_, 0)){ + return ((IBool)$constants.get(1)/*true*/); + + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Type.rsc|(35592,48,<568,0>,<568,48>) + public IBool Type_isNumType$4a01c31ce8d55ae6(IConstructor $__0){ + + + return ((IBool)$constants.get(2)/*false*/); + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Type.rsc|(35642,122,<570,0>,<571,71>) + public IBool Type_isNodeType$cd583a32160e7d2e(IConstructor $0){ + + + if($has_type_and_arity($0, Symbol_alias_str_list_Symbol_Symbol, 3)){ + IValue $arg0_546 = (IValue)($aadt_subscript_int(((IConstructor)$0),0)); + if($isComparable($arg0_546.getType(), $T4)){ + IValue $arg1_545 = (IValue)($aadt_subscript_int(((IConstructor)$0),1)); + if($isComparable($arg1_545.getType(), $T4)){ + IValue $arg2_544 = (IValue)($aadt_subscript_int(((IConstructor)$0),2)); + if($isComparable($arg2_544.getType(), ADT_Symbol)){ + IConstructor at_0 = null; + return ((IBool)($me.isNodeType(((IConstructor)($arg2_544))))); + + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Type.rsc|(35765,75,<572,0>,<572,75>) + public IBool Type_isNodeType$fe2d6187af7e20d8(IConstructor $0){ + + + if($has_type_and_arity($0, Symbol_parameter_str_Symbol, 2)){ + IValue $arg0_548 = (IValue)($aadt_subscript_int(((IConstructor)$0),0)); + if($isComparable($arg0_548.getType(), $T4)){ + IValue $arg1_547 = (IValue)($aadt_subscript_int(((IConstructor)$0),1)); + if($isComparable($arg1_547.getType(), ADT_Symbol)){ + IConstructor tvb_0 = null; + return ((IBool)($me.isNodeType(((IConstructor)($arg1_547))))); + + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Type.rsc|(35841,69,<573,0>,<573,69>) + public IBool Type_isNodeType$753d652f78ce3ee8(IConstructor $0){ + + + if($has_type_and_arity($0, Symbol_label_str_Symbol, 2)){ + IValue $arg0_550 = (IValue)($aadt_subscript_int(((IConstructor)$0),0)); + if($isComparable($arg0_550.getType(), $T4)){ + IValue $arg1_549 = (IValue)($aadt_subscript_int(((IConstructor)$0),1)); + if($isComparable($arg1_549.getType(), ADT_Symbol)){ + IConstructor lt_0 = null; + return ((IBool)($me.isNodeType(((IConstructor)($arg1_549))))); + + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Type.rsc|(35911,47,<574,0>,<574,47>) + public IBool Type_isNodeType$4f701f28416ac047(IConstructor $0){ + + + if($has_type_and_arity($0, Symbol_node_, 0)){ + return ((IBool)$constants.get(1)/*true*/); + + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Type.rsc|(35959,49,<575,0>,<575,49>) + public IBool Type_isNodeType$70b01dc65abe027f(IConstructor $0){ + + + if($has_type_and_arity($0, Symbol_adt_str_list_Symbol, 2)){ + IValue $arg0_552 = (IValue)($aadt_subscript_int(((IConstructor)$0),0)); + if($isComparable($arg0_552.getType(), $T4)){ + IValue $arg1_551 = (IValue)($aadt_subscript_int(((IConstructor)$0),1)); + if($isComparable($arg1_551.getType(), $T4)){ + return ((IBool)$constants.get(1)/*true*/); + + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Type.rsc|(36009,49,<576,0>,<576,49>) + public IBool Type_isNodeType$b82b31bdf0843130(IConstructor $__0){ + + + return ((IBool)$constants.get(2)/*false*/); + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Type.rsc|(36060,122,<578,0>,<579,71>) + public IBool Type_isVoidType$baba77517aa47f53(IConstructor $0){ + + + if($has_type_and_arity($0, Symbol_alias_str_list_Symbol_Symbol, 3)){ + IValue $arg0_555 = (IValue)($aadt_subscript_int(((IConstructor)$0),0)); + if($isComparable($arg0_555.getType(), $T4)){ + IValue $arg1_554 = (IValue)($aadt_subscript_int(((IConstructor)$0),1)); + if($isComparable($arg1_554.getType(), $T4)){ + IValue $arg2_553 = (IValue)($aadt_subscript_int(((IConstructor)$0),2)); + if($isComparable($arg2_553.getType(), ADT_Symbol)){ + IConstructor at_0 = null; + return ((IBool)($me.isVoidType(((IConstructor)($arg2_553))))); + + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Type.rsc|(36183,75,<580,0>,<580,75>) + public IBool Type_isVoidType$7407b4b3f99d147a(IConstructor $0){ + + + if($has_type_and_arity($0, Symbol_parameter_str_Symbol, 2)){ + IValue $arg0_557 = (IValue)($aadt_subscript_int(((IConstructor)$0),0)); + if($isComparable($arg0_557.getType(), $T4)){ + IValue $arg1_556 = (IValue)($aadt_subscript_int(((IConstructor)$0),1)); + if($isComparable($arg1_556.getType(), ADT_Symbol)){ + IConstructor tvb_0 = null; + return ((IBool)($me.isVoidType(((IConstructor)($arg1_556))))); + + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Type.rsc|(36259,69,<581,0>,<581,69>) + public IBool Type_isVoidType$2ed30c48114cc0fc(IConstructor $0){ + + + if($has_type_and_arity($0, Symbol_label_str_Symbol, 2)){ + IValue $arg0_559 = (IValue)($aadt_subscript_int(((IConstructor)$0),0)); + if($isComparable($arg0_559.getType(), $T4)){ + IValue $arg1_558 = (IValue)($aadt_subscript_int(((IConstructor)$0),1)); + if($isComparable($arg1_558.getType(), ADT_Symbol)){ + IConstructor lt_0 = null; + return ((IBool)($me.isVoidType(((IConstructor)($arg1_558))))); + + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Type.rsc|(36329,47,<582,0>,<582,47>) + public IBool Type_isVoidType$c37d3d034ac8acb0(IConstructor $0){ + + + if($has_type_and_arity($0, Symbol_void_, 0)){ + return ((IBool)$constants.get(1)/*true*/); + + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Type.rsc|(36377,49,<583,0>,<583,49>) + public IBool Type_isVoidType$c29ea295639835d3(IConstructor $__0){ + + + return ((IBool)$constants.get(2)/*false*/); + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Type.rsc|(36428,124,<585,0>,<586,73>) + public IBool Type_isValueType$e0359cce2680806c(IConstructor $0){ + + + if($has_type_and_arity($0, Symbol_alias_str_list_Symbol_Symbol, 3)){ + IValue $arg0_562 = (IValue)($aadt_subscript_int(((IConstructor)$0),0)); + if($isComparable($arg0_562.getType(), $T4)){ + IValue $arg1_561 = (IValue)($aadt_subscript_int(((IConstructor)$0),1)); + if($isComparable($arg1_561.getType(), $T4)){ + IValue $arg2_560 = (IValue)($aadt_subscript_int(((IConstructor)$0),2)); + if($isComparable($arg2_560.getType(), ADT_Symbol)){ + IConstructor at_0 = null; + return ((IBool)($me.isValueType(((IConstructor)($arg2_560))))); + + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Type.rsc|(36553,77,<587,0>,<587,77>) + public IBool Type_isValueType$b9ffdec5c297602d(IConstructor $0){ + + + if($has_type_and_arity($0, Symbol_parameter_str_Symbol, 2)){ + IValue $arg0_564 = (IValue)($aadt_subscript_int(((IConstructor)$0),0)); + if($isComparable($arg0_564.getType(), $T4)){ + IValue $arg1_563 = (IValue)($aadt_subscript_int(((IConstructor)$0),1)); + if($isComparable($arg1_563.getType(), ADT_Symbol)){ + IConstructor tvb_0 = null; + return ((IBool)($me.isValueType(((IConstructor)($arg1_563))))); + + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Type.rsc|(36631,71,<588,0>,<588,71>) + public IBool Type_isValueType$dca7aa346bf90886(IConstructor $0){ + + + if($has_type_and_arity($0, Symbol_label_str_Symbol, 2)){ + IValue $arg0_566 = (IValue)($aadt_subscript_int(((IConstructor)$0),0)); + if($isComparable($arg0_566.getType(), $T4)){ + IValue $arg1_565 = (IValue)($aadt_subscript_int(((IConstructor)$0),1)); + if($isComparable($arg1_565.getType(), ADT_Symbol)){ + IConstructor lt_0 = null; + return ((IBool)($me.isValueType(((IConstructor)($arg1_565))))); + + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Type.rsc|(36703,49,<589,0>,<589,49>) + public IBool Type_isValueType$667072f59b8f8f70(IConstructor $0){ + + + if($has_type_and_arity($0, Symbol_value_, 0)){ + return ((IBool)$constants.get(1)/*true*/); + + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Type.rsc|(36753,50,<590,0>,<590,50>) + public IBool Type_isValueType$e6f62b5b7d9c7817(IConstructor $__0){ + + + return ((IBool)$constants.get(2)/*false*/); + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Type.rsc|(36805,119,<592,0>,<593,69>) + public IBool Type_isLocType$59ad589102bf053b(IConstructor $0){ + + + if($has_type_and_arity($0, Symbol_alias_str_list_Symbol_Symbol, 3)){ + IValue $arg0_569 = (IValue)($aadt_subscript_int(((IConstructor)$0),0)); + if($isComparable($arg0_569.getType(), $T4)){ + IValue $arg1_568 = (IValue)($aadt_subscript_int(((IConstructor)$0),1)); + if($isComparable($arg1_568.getType(), $T4)){ + IValue $arg2_567 = (IValue)($aadt_subscript_int(((IConstructor)$0),2)); + if($isComparable($arg2_567.getType(), ADT_Symbol)){ + IConstructor at_0 = null; + return ((IBool)($me.isLocType(((IConstructor)($arg2_567))))); + + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Type.rsc|(36925,73,<594,0>,<594,73>) + public IBool Type_isLocType$aee7bcb7f5d15058(IConstructor $0){ + + + if($has_type_and_arity($0, Symbol_parameter_str_Symbol, 2)){ + IValue $arg0_571 = (IValue)($aadt_subscript_int(((IConstructor)$0),0)); + if($isComparable($arg0_571.getType(), $T4)){ + IValue $arg1_570 = (IValue)($aadt_subscript_int(((IConstructor)$0),1)); + if($isComparable($arg1_570.getType(), ADT_Symbol)){ + IConstructor tvb_0 = null; + return ((IBool)($me.isLocType(((IConstructor)($arg1_570))))); + + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Type.rsc|(36999,67,<595,0>,<595,67>) + public IBool Type_isLocType$9f0441d4fb931246(IConstructor $0){ + + + if($has_type_and_arity($0, Symbol_label_str_Symbol, 2)){ + IValue $arg0_573 = (IValue)($aadt_subscript_int(((IConstructor)$0),0)); + if($isComparable($arg0_573.getType(), $T4)){ + IValue $arg1_572 = (IValue)($aadt_subscript_int(((IConstructor)$0),1)); + if($isComparable($arg1_572.getType(), ADT_Symbol)){ + IConstructor lt_0 = null; + return ((IBool)($me.isLocType(((IConstructor)($arg1_572))))); + + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Type.rsc|(37067,45,<596,0>,<596,45>) + public IBool Type_isLocType$3b8aa102e65cda31(IConstructor $0){ + + + if($has_type_and_arity($0, Symbol_loc_, 0)){ + return ((IBool)$constants.get(1)/*true*/); + + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Type.rsc|(37113,48,<597,0>,<597,48>) + public IBool Type_isLocType$7df812781da274e3(IConstructor $__0){ + + + return ((IBool)$constants.get(2)/*false*/); + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Type.rsc|(37163,134,<599,0>,<600,79>) + public IBool Type_isDateTimeType$8f25f84f6afb443d(IConstructor $0){ + + + if($has_type_and_arity($0, Symbol_alias_str_list_Symbol_Symbol, 3)){ + IValue $arg0_576 = (IValue)($aadt_subscript_int(((IConstructor)$0),0)); + if($isComparable($arg0_576.getType(), $T4)){ + IValue $arg1_575 = (IValue)($aadt_subscript_int(((IConstructor)$0),1)); + if($isComparable($arg1_575.getType(), $T4)){ + IValue $arg2_574 = (IValue)($aadt_subscript_int(((IConstructor)$0),2)); + if($isComparable($arg2_574.getType(), ADT_Symbol)){ + IConstructor at_0 = null; + return ((IBool)($me.isDateTimeType(((IConstructor)($arg2_574))))); + + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Type.rsc|(37298,83,<601,0>,<601,83>) + public IBool Type_isDateTimeType$5e2f6f86adbeae05(IConstructor $0){ + + + if($has_type_and_arity($0, Symbol_parameter_str_Symbol, 2)){ + IValue $arg0_578 = (IValue)($aadt_subscript_int(((IConstructor)$0),0)); + if($isComparable($arg0_578.getType(), $T4)){ + IValue $arg1_577 = (IValue)($aadt_subscript_int(((IConstructor)$0),1)); + if($isComparable($arg1_577.getType(), ADT_Symbol)){ + IConstructor tvb_0 = null; + return ((IBool)($me.isDateTimeType(((IConstructor)($arg1_577))))); + + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Type.rsc|(37382,77,<602,0>,<602,77>) + public IBool Type_isDateTimeType$db79d83909345377(IConstructor $0){ + + + if($has_type_and_arity($0, Symbol_label_str_Symbol, 2)){ + IValue $arg0_580 = (IValue)($aadt_subscript_int(((IConstructor)$0),0)); + if($isComparable($arg0_580.getType(), $T4)){ + IValue $arg1_579 = (IValue)($aadt_subscript_int(((IConstructor)$0),1)); + if($isComparable($arg1_579.getType(), ADT_Symbol)){ + IConstructor lt_0 = null; + return ((IBool)($me.isDateTimeType(((IConstructor)($arg1_579))))); + + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Type.rsc|(37460,55,<603,0>,<603,55>) + public IBool Type_isDateTimeType$bb2c79987fe265e6(IConstructor $0){ + + + if($has_type_and_arity($0, Symbol_datetime_, 0)){ + return ((IBool)$constants.get(1)/*true*/); + + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Type.rsc|(37516,53,<604,0>,<604,53>) + public IBool Type_isDateTimeType$af85ab799baee4b4(IConstructor $__0){ + + + return ((IBool)$constants.get(2)/*false*/); + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Type.rsc|(37571,119,<606,0>,<607,69>) + public IBool Type_isSetType$af2b3a70c68fa026(IConstructor $0){ + + + if($has_type_and_arity($0, Symbol_alias_str_list_Symbol_Symbol, 3)){ + IValue $arg0_583 = (IValue)($aadt_subscript_int(((IConstructor)$0),0)); + if($isComparable($arg0_583.getType(), $T4)){ + IValue $arg1_582 = (IValue)($aadt_subscript_int(((IConstructor)$0),1)); + if($isComparable($arg1_582.getType(), $T4)){ + IValue $arg2_581 = (IValue)($aadt_subscript_int(((IConstructor)$0),2)); + if($isComparable($arg2_581.getType(), ADT_Symbol)){ + IConstructor at_0 = null; + return ((IBool)($me.isSetType(((IConstructor)($arg2_581))))); + + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Type.rsc|(37691,73,<608,0>,<608,73>) + public IBool Type_isSetType$691733c8181a3052(IConstructor $0){ + + + if($has_type_and_arity($0, Symbol_parameter_str_Symbol, 2)){ + IValue $arg0_585 = (IValue)($aadt_subscript_int(((IConstructor)$0),0)); + if($isComparable($arg0_585.getType(), $T4)){ + IValue $arg1_584 = (IValue)($aadt_subscript_int(((IConstructor)$0),1)); + if($isComparable($arg1_584.getType(), ADT_Symbol)){ + IConstructor tvb_0 = null; + return ((IBool)($me.isSetType(((IConstructor)($arg1_584))))); + + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Type.rsc|(37765,67,<609,0>,<609,67>) + public IBool Type_isSetType$5b2f15b95451429d(IConstructor $0){ + + + if($has_type_and_arity($0, Symbol_label_str_Symbol, 2)){ + IValue $arg0_587 = (IValue)($aadt_subscript_int(((IConstructor)$0),0)); + if($isComparable($arg0_587.getType(), $T4)){ + IValue $arg1_586 = (IValue)($aadt_subscript_int(((IConstructor)$0),1)); + if($isComparable($arg1_586.getType(), ADT_Symbol)){ + IConstructor lt_0 = null; + return ((IBool)($me.isSetType(((IConstructor)($arg1_586))))); + + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Type.rsc|(37833,46,<610,0>,<610,46>) + public IBool Type_isSetType$5940dec4cf1357e7(IConstructor $0){ + + + if($has_type_and_arity($0, Symbol_set_Symbol, 1)){ + IValue $arg0_588 = (IValue)($aadt_subscript_int(((IConstructor)$0),0)); + if($isComparable($arg0_588.getType(), $T4)){ + return ((IBool)$constants.get(1)/*true*/); + + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Type.rsc|(37880,46,<611,0>,<611,46>) + public IBool Type_isSetType$6dbbe5f1ad04e52d(IConstructor $0){ + + + if($has_type_and_arity($0, Symbol_rel_list_Symbol, 1)){ + IValue $arg0_589 = (IValue)($aadt_subscript_int(((IConstructor)$0),0)); + if($isComparable($arg0_589.getType(), $T4)){ + return ((IBool)$constants.get(1)/*true*/); + + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Type.rsc|(37927,48,<612,0>,<612,48>) + public IBool Type_isSetType$0a6211803a6f3b37(IConstructor $__0){ + + + return ((IBool)$constants.get(2)/*false*/); + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Type.rsc|(37977,119,<614,0>,<615,69>) + public IBool Type_isRelType$619927ec85f3de3a(IConstructor $0){ + + + if($has_type_and_arity($0, Symbol_alias_str_list_Symbol_Symbol, 3)){ + IValue $arg0_592 = (IValue)($aadt_subscript_int(((IConstructor)$0),0)); + if($isComparable($arg0_592.getType(), $T4)){ + IValue $arg1_591 = (IValue)($aadt_subscript_int(((IConstructor)$0),1)); + if($isComparable($arg1_591.getType(), $T4)){ + IValue $arg2_590 = (IValue)($aadt_subscript_int(((IConstructor)$0),2)); + if($isComparable($arg2_590.getType(), ADT_Symbol)){ + IConstructor at_0 = null; + return ((IBool)($me.isRelType(((IConstructor)($arg2_590))))); + + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Type.rsc|(38097,73,<616,0>,<616,73>) + public IBool Type_isRelType$dfe2996f326788f1(IConstructor $0){ + + + if($has_type_and_arity($0, Symbol_parameter_str_Symbol, 2)){ + IValue $arg0_594 = (IValue)($aadt_subscript_int(((IConstructor)$0),0)); + if($isComparable($arg0_594.getType(), $T4)){ + IValue $arg1_593 = (IValue)($aadt_subscript_int(((IConstructor)$0),1)); + if($isComparable($arg1_593.getType(), ADT_Symbol)){ + IConstructor tvb_0 = null; + return ((IBool)($me.isRelType(((IConstructor)($arg1_593))))); + + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Type.rsc|(38171,67,<617,0>,<617,67>) + public IBool Type_isRelType$58345a7801d3f289(IConstructor $0){ + + + if($has_type_and_arity($0, Symbol_label_str_Symbol, 2)){ + IValue $arg0_596 = (IValue)($aadt_subscript_int(((IConstructor)$0),0)); + if($isComparable($arg0_596.getType(), $T4)){ + IValue $arg1_595 = (IValue)($aadt_subscript_int(((IConstructor)$0),1)); + if($isComparable($arg1_595.getType(), ADT_Symbol)){ + IConstructor lt_0 = null; + return ((IBool)($me.isRelType(((IConstructor)($arg1_595))))); + + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Type.rsc|(38239,46,<618,0>,<618,46>) + public IBool Type_isRelType$1cd229b6628898e4(IConstructor $0){ + + + if($has_type_and_arity($0, Symbol_rel_list_Symbol, 1)){ + IValue $arg0_597 = (IValue)($aadt_subscript_int(((IConstructor)$0),0)); + if($isComparable($arg0_597.getType(), $T4)){ + return ((IBool)$constants.get(1)/*true*/); + + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Type.rsc|(38286,75,<619,0>,<619,75>) + public IBool Type_isRelType$e684041f960d6150(IConstructor $0){ + + + if($has_type_and_arity($0, Symbol_set_Symbol, 1)){ + IValue $arg0_598 = (IValue)($aadt_subscript_int(((IConstructor)$0),0)); + if($isComparable($arg0_598.getType(), ADT_Symbol)){ + IConstructor tp_0 = null; + if((((IBool)($me.isTupleType(((IConstructor)($arg0_598)))))).getValue()){ + return ((IBool)$constants.get(1)/*true*/); + + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Type.rsc|(38362,48,<620,0>,<620,48>) + public IBool Type_isRelType$4451272f25c97a41(IConstructor $__0){ + + + return ((IBool)$constants.get(2)/*false*/); + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Type.rsc|(38412,128,<622,0>,<623,77>) + public IBool Type_isListRelType$fc572333d7ccc035(IConstructor $0){ + + + if($has_type_and_arity($0, Symbol_alias_str_list_Symbol_Symbol, 3)){ + IValue $arg0_601 = (IValue)($aadt_subscript_int(((IConstructor)$0),0)); + if($isComparable($arg0_601.getType(), $T4)){ + IValue $arg1_600 = (IValue)($aadt_subscript_int(((IConstructor)$0),1)); + if($isComparable($arg1_600.getType(), $T4)){ + IValue $arg2_599 = (IValue)($aadt_subscript_int(((IConstructor)$0),2)); + if($isComparable($arg2_599.getType(), ADT_Symbol)){ + IConstructor at_0 = null; + return ((IBool)($me.isListRelType(((IConstructor)($arg2_599))))); + + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Type.rsc|(38541,81,<624,0>,<624,81>) + public IBool Type_isListRelType$4fa364f56f01bd93(IConstructor $0){ + + + if($has_type_and_arity($0, Symbol_parameter_str_Symbol, 2)){ + IValue $arg0_603 = (IValue)($aadt_subscript_int(((IConstructor)$0),0)); + if($isComparable($arg0_603.getType(), $T4)){ + IValue $arg1_602 = (IValue)($aadt_subscript_int(((IConstructor)$0),1)); + if($isComparable($arg1_602.getType(), ADT_Symbol)){ + IConstructor tvb_0 = null; + return ((IBool)($me.isListRelType(((IConstructor)($arg1_602))))); + + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Type.rsc|(38623,75,<625,0>,<625,75>) + public IBool Type_isListRelType$8e3e16055e697805(IConstructor $0){ + + + if($has_type_and_arity($0, Symbol_label_str_Symbol, 2)){ + IValue $arg0_605 = (IValue)($aadt_subscript_int(((IConstructor)$0),0)); + if($isComparable($arg0_605.getType(), $T4)){ + IValue $arg1_604 = (IValue)($aadt_subscript_int(((IConstructor)$0),1)); + if($isComparable($arg1_604.getType(), ADT_Symbol)){ + IConstructor lt_0 = null; + return ((IBool)($me.isListRelType(((IConstructor)($arg1_604))))); + + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Type.rsc|(38699,51,<626,0>,<626,51>) + public IBool Type_isListRelType$521530780a74b452(IConstructor $0){ + + + if($has_type_and_arity($0, Symbol_lrel_list_Symbol, 1)){ + IValue $arg0_606 = (IValue)($aadt_subscript_int(((IConstructor)$0),0)); + if($isComparable($arg0_606.getType(), $T4)){ + return ((IBool)$constants.get(1)/*true*/); + + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Type.rsc|(38751,80,<627,0>,<627,80>) + public IBool Type_isListRelType$41e9de5fc098b33d(IConstructor $0){ + + + if($has_type_and_arity($0, Symbol_list_Symbol, 1)){ + IValue $arg0_607 = (IValue)($aadt_subscript_int(((IConstructor)$0),0)); + if($isComparable($arg0_607.getType(), ADT_Symbol)){ + IConstructor tp_0 = null; + if((((IBool)($me.isTupleType(((IConstructor)($arg0_607)))))).getValue()){ + return ((IBool)$constants.get(1)/*true*/); + + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Type.rsc|(38832,52,<628,0>,<628,52>) + public IBool Type_isListRelType$fe978cfc20935991(IConstructor $__0){ + + + return ((IBool)$constants.get(2)/*false*/); + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Type.rsc|(38886,125,<630,0>,<631,73>) + public IBool Type_isTupleType$027f2dd0a4d10869(IConstructor $0){ + + + if($has_type_and_arity($0, Symbol_alias_str_list_Symbol_Symbol, 3)){ + IValue $arg0_610 = (IValue)($aadt_subscript_int(((IConstructor)$0),0)); + if($isComparable($arg0_610.getType(), $T4)){ + IValue $arg1_609 = (IValue)($aadt_subscript_int(((IConstructor)$0),1)); + if($isComparable($arg1_609.getType(), $T4)){ + IValue $arg2_608 = (IValue)($aadt_subscript_int(((IConstructor)$0),2)); + if($isComparable($arg2_608.getType(), ADT_Symbol)){ + IConstructor at_0 = null; + return ((IBool)($me.isTupleType(((IConstructor)($arg2_608))))); + + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Type.rsc|(39012,77,<632,0>,<632,77>) + public IBool Type_isTupleType$d75f7f1755750be1(IConstructor $0){ + + + if($has_type_and_arity($0, Symbol_parameter_str_Symbol, 2)){ + IValue $arg0_612 = (IValue)($aadt_subscript_int(((IConstructor)$0),0)); + if($isComparable($arg0_612.getType(), $T4)){ + IValue $arg1_611 = (IValue)($aadt_subscript_int(((IConstructor)$0),1)); + if($isComparable($arg1_611.getType(), ADT_Symbol)){ + IConstructor tvb_0 = null; + return ((IBool)($me.isTupleType(((IConstructor)($arg1_611))))); + + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Type.rsc|(39090,71,<633,0>,<633,71>) + public IBool Type_isTupleType$af04c969df138641(IConstructor $0){ + + + if($has_type_and_arity($0, Symbol_label_str_Symbol, 2)){ + IValue $arg0_614 = (IValue)($aadt_subscript_int(((IConstructor)$0),0)); + if($isComparable($arg0_614.getType(), $T4)){ + IValue $arg1_613 = (IValue)($aadt_subscript_int(((IConstructor)$0),1)); + if($isComparable($arg1_613.getType(), ADT_Symbol)){ + IConstructor lt_0 = null; + return ((IBool)($me.isTupleType(((IConstructor)($arg1_613))))); + + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Type.rsc|(39162,50,<634,0>,<634,50>) + public IBool Type_isTupleType$529699f52c598fc9(IConstructor $0){ + + + if($has_type_and_arity($0, Symbol_tuple_list_Symbol, 1)){ + IValue $arg0_615 = (IValue)($aadt_subscript_int(((IConstructor)$0),0)); + if($isComparable($arg0_615.getType(), $T4)){ + return ((IBool)$constants.get(1)/*true*/); + + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Type.rsc|(39213,50,<635,0>,<635,50>) + public IBool Type_isTupleType$670c18b105a6fd46(IConstructor $__0){ + + + return ((IBool)$constants.get(2)/*false*/); + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Type.rsc|(39265,121,<637,0>,<638,71>) + public IBool Type_isListType$5cb20471614ceb14(IConstructor $0){ + + + if($has_type_and_arity($0, Symbol_alias_str_list_Symbol_Symbol, 3)){ + IValue $arg0_618 = (IValue)($aadt_subscript_int(((IConstructor)$0),0)); + if($isComparable($arg0_618.getType(), $T4)){ + IValue $arg1_617 = (IValue)($aadt_subscript_int(((IConstructor)$0),1)); + if($isComparable($arg1_617.getType(), $T4)){ + IValue $arg2_616 = (IValue)($aadt_subscript_int(((IConstructor)$0),2)); + if($isComparable($arg2_616.getType(), ADT_Symbol)){ + IConstructor at_0 = null; + return ((IBool)($me.isListType(((IConstructor)($arg2_616))))); + + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Type.rsc|(39387,75,<639,0>,<639,75>) + public IBool Type_isListType$2cd097e45f390e11(IConstructor $0){ + + + if($has_type_and_arity($0, Symbol_parameter_str_Symbol, 2)){ + IValue $arg0_620 = (IValue)($aadt_subscript_int(((IConstructor)$0),0)); + if($isComparable($arg0_620.getType(), $T4)){ + IValue $arg1_619 = (IValue)($aadt_subscript_int(((IConstructor)$0),1)); + if($isComparable($arg1_619.getType(), ADT_Symbol)){ + IConstructor tvb_0 = null; + return ((IBool)($me.isListType(((IConstructor)($arg1_619))))); + + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Type.rsc|(39463,69,<640,0>,<640,69>) + public IBool Type_isListType$f9325150bcff8f64(IConstructor $0){ + + + if($has_type_and_arity($0, Symbol_label_str_Symbol, 2)){ + IValue $arg0_622 = (IValue)($aadt_subscript_int(((IConstructor)$0),0)); + if($isComparable($arg0_622.getType(), $T4)){ + IValue $arg1_621 = (IValue)($aadt_subscript_int(((IConstructor)$0),1)); + if($isComparable($arg1_621.getType(), ADT_Symbol)){ + IConstructor lt_0 = null; + return ((IBool)($me.isListType(((IConstructor)($arg1_621))))); + + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Type.rsc|(39533,48,<641,0>,<641,48>) + public IBool Type_isListType$e2050780d70f05ef(IConstructor $0){ + + + if($has_type_and_arity($0, Symbol_list_Symbol, 1)){ + IValue $arg0_623 = (IValue)($aadt_subscript_int(((IConstructor)$0),0)); + if($isComparable($arg0_623.getType(), $T4)){ + return ((IBool)$constants.get(1)/*true*/); + + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Type.rsc|(39582,48,<642,0>,<642,48>) + public IBool Type_isListType$67c1630c1e94e46f(IConstructor $0){ + + + if($has_type_and_arity($0, Symbol_lrel_list_Symbol, 1)){ + IValue $arg0_624 = (IValue)($aadt_subscript_int(((IConstructor)$0),0)); + if($isComparable($arg0_624.getType(), $T4)){ + return ((IBool)$constants.get(1)/*true*/); + + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Type.rsc|(39631,49,<643,0>,<643,49>) + public IBool Type_isListType$a5f9e5ebaadf5ccd(IConstructor $__0){ + + + return ((IBool)$constants.get(2)/*false*/); + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Type.rsc|(39682,119,<645,0>,<646,69>) + public IBool Type_isMapType$dd63ec350694a9b0(IConstructor $0){ + + + if($has_type_and_arity($0, Symbol_alias_str_list_Symbol_Symbol, 3)){ + IValue $arg0_627 = (IValue)($aadt_subscript_int(((IConstructor)$0),0)); + if($isComparable($arg0_627.getType(), $T4)){ + IValue $arg1_626 = (IValue)($aadt_subscript_int(((IConstructor)$0),1)); + if($isComparable($arg1_626.getType(), $T4)){ + IValue $arg2_625 = (IValue)($aadt_subscript_int(((IConstructor)$0),2)); + if($isComparable($arg2_625.getType(), ADT_Symbol)){ + IConstructor at_0 = null; + return ((IBool)($me.isMapType(((IConstructor)($arg2_625))))); + + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Type.rsc|(39802,73,<647,0>,<647,73>) + public IBool Type_isMapType$aa695167615ea00a(IConstructor $0){ + + + if($has_type_and_arity($0, Symbol_parameter_str_Symbol, 2)){ + IValue $arg0_629 = (IValue)($aadt_subscript_int(((IConstructor)$0),0)); + if($isComparable($arg0_629.getType(), $T4)){ + IValue $arg1_628 = (IValue)($aadt_subscript_int(((IConstructor)$0),1)); + if($isComparable($arg1_628.getType(), ADT_Symbol)){ + IConstructor tvb_0 = null; + return ((IBool)($me.isMapType(((IConstructor)($arg1_628))))); + + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Type.rsc|(39876,67,<648,0>,<648,67>) + public IBool Type_isMapType$023e4a504202eeef(IConstructor $0){ + + + if($has_type_and_arity($0, Symbol_label_str_Symbol, 2)){ + IValue $arg0_631 = (IValue)($aadt_subscript_int(((IConstructor)$0),0)); + if($isComparable($arg0_631.getType(), $T4)){ + IValue $arg1_630 = (IValue)($aadt_subscript_int(((IConstructor)$0),1)); + if($isComparable($arg1_630.getType(), ADT_Symbol)){ + IConstructor lt_0 = null; + return ((IBool)($me.isMapType(((IConstructor)($arg1_630))))); + + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Type.rsc|(39944,48,<649,0>,<649,48>) + public IBool Type_isMapType$12f2aa85890447c6(IConstructor $0){ + + + if($has_type_and_arity($0, Symbol_map_Symbol_Symbol, 2)){ + IValue $arg0_633 = (IValue)($aadt_subscript_int(((IConstructor)$0),0)); + if($isComparable($arg0_633.getType(), $T4)){ + IValue $arg1_632 = (IValue)($aadt_subscript_int(((IConstructor)$0),1)); + if($isComparable($arg1_632.getType(), $T4)){ + return ((IBool)$constants.get(1)/*true*/); + + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Type.rsc|(39993,48,<650,0>,<650,48>) + public IBool Type_isMapType$67db2d90e02d2133(IConstructor $__0){ + + + return ((IBool)$constants.get(2)/*false*/); + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Type.rsc|(40043,119,<652,0>,<653,69>) + public IBool Type_isBagType$b98ae82cf86bb221(IConstructor $0){ + + + if($has_type_and_arity($0, Symbol_alias_str_list_Symbol_Symbol, 3)){ + IValue $arg0_636 = (IValue)($aadt_subscript_int(((IConstructor)$0),0)); + if($isComparable($arg0_636.getType(), $T4)){ + IValue $arg1_635 = (IValue)($aadt_subscript_int(((IConstructor)$0),1)); + if($isComparable($arg1_635.getType(), $T4)){ + IValue $arg2_634 = (IValue)($aadt_subscript_int(((IConstructor)$0),2)); + if($isComparable($arg2_634.getType(), ADT_Symbol)){ + IConstructor at_0 = null; + return ((IBool)($me.isBagType(((IConstructor)($arg2_634))))); + + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Type.rsc|(40163,73,<654,0>,<654,73>) + public IBool Type_isBagType$978835a2e17706d0(IConstructor $0){ + + + if($has_type_and_arity($0, Symbol_parameter_str_Symbol, 2)){ + IValue $arg0_638 = (IValue)($aadt_subscript_int(((IConstructor)$0),0)); + if($isComparable($arg0_638.getType(), $T4)){ + IValue $arg1_637 = (IValue)($aadt_subscript_int(((IConstructor)$0),1)); + if($isComparable($arg1_637.getType(), ADT_Symbol)){ + IConstructor tvb_0 = null; + return ((IBool)($me.isBagType(((IConstructor)($arg1_637))))); + + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Type.rsc|(40237,67,<655,0>,<655,67>) + public IBool Type_isBagType$5bfea3bad135ca42(IConstructor $0){ + + + if($has_type_and_arity($0, Symbol_label_str_Symbol, 2)){ + IValue $arg0_640 = (IValue)($aadt_subscript_int(((IConstructor)$0),0)); + if($isComparable($arg0_640.getType(), $T4)){ + IValue $arg1_639 = (IValue)($aadt_subscript_int(((IConstructor)$0),1)); + if($isComparable($arg1_639.getType(), ADT_Symbol)){ + IConstructor lt_0 = null; + return ((IBool)($me.isBagType(((IConstructor)($arg1_639))))); + + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Type.rsc|(40305,46,<656,0>,<656,46>) + public IBool Type_isBagType$16ada3424c9263d8(IConstructor $0){ + + + if($has_type_and_arity($0, Symbol_bag_Symbol, 1)){ + IValue $arg0_641 = (IValue)($aadt_subscript_int(((IConstructor)$0),0)); + if($isComparable($arg0_641.getType(), $T4)){ + return ((IBool)$constants.get(1)/*true*/); + + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Type.rsc|(40352,48,<657,0>,<657,48>) + public IBool Type_isBagType$78a6a76069464291(IConstructor $__0){ + + + return ((IBool)$constants.get(2)/*false*/); + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Type.rsc|(40402,119,<659,0>,<660,69>) + public IBool Type_isADTType$75f588280052e41a(IConstructor $0){ + + + if($has_type_and_arity($0, Symbol_alias_str_list_Symbol_Symbol, 3)){ + IValue $arg0_644 = (IValue)($aadt_subscript_int(((IConstructor)$0),0)); + if($isComparable($arg0_644.getType(), $T4)){ + IValue $arg1_643 = (IValue)($aadt_subscript_int(((IConstructor)$0),1)); + if($isComparable($arg1_643.getType(), $T4)){ + IValue $arg2_642 = (IValue)($aadt_subscript_int(((IConstructor)$0),2)); + if($isComparable($arg2_642.getType(), ADT_Symbol)){ + IConstructor at_0 = null; + return ((IBool)($me.isADTType(((IConstructor)($arg2_642))))); + + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Type.rsc|(40522,73,<661,0>,<661,73>) + public IBool Type_isADTType$eec08a18faad2421(IConstructor $0){ + + + if($has_type_and_arity($0, Symbol_parameter_str_Symbol, 2)){ + IValue $arg0_646 = (IValue)($aadt_subscript_int(((IConstructor)$0),0)); + if($isComparable($arg0_646.getType(), $T4)){ + IValue $arg1_645 = (IValue)($aadt_subscript_int(((IConstructor)$0),1)); + if($isComparable($arg1_645.getType(), ADT_Symbol)){ + IConstructor tvb_0 = null; + return ((IBool)($me.isADTType(((IConstructor)($arg1_645))))); + + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Type.rsc|(40596,67,<662,0>,<662,67>) + public IBool Type_isADTType$c9e59ac203bf16c6(IConstructor $0){ + + + if($has_type_and_arity($0, Symbol_label_str_Symbol, 2)){ + IValue $arg0_648 = (IValue)($aadt_subscript_int(((IConstructor)$0),0)); + if($isComparable($arg0_648.getType(), $T4)){ + IValue $arg1_647 = (IValue)($aadt_subscript_int(((IConstructor)$0),1)); + if($isComparable($arg1_647.getType(), ADT_Symbol)){ + IConstructor lt_0 = null; + return ((IBool)($me.isADTType(((IConstructor)($arg1_647))))); + + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Type.rsc|(40664,48,<663,0>,<663,48>) + public IBool Type_isADTType$06ad40947bb0990a(IConstructor $0){ + + + if($has_type_and_arity($0, Symbol_adt_str_list_Symbol, 2)){ + IValue $arg0_650 = (IValue)($aadt_subscript_int(((IConstructor)$0),0)); + if($isComparable($arg0_650.getType(), $T4)){ + IValue $arg1_649 = (IValue)($aadt_subscript_int(((IConstructor)$0),1)); + if($isComparable($arg1_649.getType(), $T4)){ + return ((IBool)$constants.get(1)/*true*/); + + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Type.rsc|(40713,50,<664,0>,<664,50>) + public IBool Type_isADTType$55f1893a25b5971e(IConstructor $0){ + + + if($has_type_and_arity($0, Symbol_reified_Symbol, 1)){ + IValue $arg0_651 = (IValue)($aadt_subscript_int(((IConstructor)$0),0)); + if($isComparable($arg0_651.getType(), $T4)){ + return ((IBool)$constants.get(1)/*true*/); + + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Type.rsc|(40764,48,<665,0>,<665,48>) + public IBool Type_isADTType$4079510b224fe1ba(IConstructor $__0){ + + + return ((IBool)$constants.get(2)/*false*/); + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Type.rsc|(40814,143,<667,0>,<668,85>) + public IBool Type_isConstructorType$03b6fed0e3f2a6ac(IConstructor $0){ + + + if($has_type_and_arity($0, Symbol_alias_str_list_Symbol_Symbol, 3)){ + IValue $arg0_654 = (IValue)($aadt_subscript_int(((IConstructor)$0),0)); + if($isComparable($arg0_654.getType(), $T4)){ + IValue $arg1_653 = (IValue)($aadt_subscript_int(((IConstructor)$0),1)); + if($isComparable($arg1_653.getType(), $T4)){ + IValue $arg2_652 = (IValue)($aadt_subscript_int(((IConstructor)$0),2)); + if($isComparable($arg2_652.getType(), ADT_Symbol)){ + IConstructor at_0 = null; + return ((IBool)($me.isConstructorType(((IConstructor)($arg2_652))))); + + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Type.rsc|(40958,89,<669,0>,<669,89>) + public IBool Type_isConstructorType$76715e3a6e16c474(IConstructor $0){ + + + if($has_type_and_arity($0, Symbol_parameter_str_Symbol, 2)){ + IValue $arg0_656 = (IValue)($aadt_subscript_int(((IConstructor)$0),0)); + if($isComparable($arg0_656.getType(), $T4)){ + IValue $arg1_655 = (IValue)($aadt_subscript_int(((IConstructor)$0),1)); + if($isComparable($arg1_655.getType(), ADT_Symbol)){ + IConstructor tvb_0 = null; + return ((IBool)($me.isConstructorType(((IConstructor)($arg1_655))))); + + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Type.rsc|(41048,83,<670,0>,<670,83>) + public IBool Type_isConstructorType$bfafd605f17a2265(IConstructor $0){ + + + if($has_type_and_arity($0, Symbol_label_str_Symbol, 2)){ + IValue $arg0_658 = (IValue)($aadt_subscript_int(((IConstructor)$0),0)); + if($isComparable($arg0_658.getType(), $T4)){ + IValue $arg1_657 = (IValue)($aadt_subscript_int(((IConstructor)$0),1)); + if($isComparable($arg1_657.getType(), ADT_Symbol)){ + IConstructor lt_0 = null; + return ((IBool)($me.isConstructorType(((IConstructor)($arg1_657))))); + + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Type.rsc|(41132,83,<671,0>,<671,83>) + public IBool Type_isConstructorType$5f7682c23fcd1429(IConstructor $0){ + + + if($has_type_and_arity($0, Symbol_cons_Symbol_str_list_Symbol, 3)){ + IValue $arg0_661 = (IValue)($aadt_subscript_int(((IConstructor)$0),0)); + if($isComparable($arg0_661.getType(), ADT_Symbol)){ + IValue $arg1_660 = (IValue)($aadt_subscript_int(((IConstructor)$0),1)); + if($isComparable($arg1_660.getType(), $T2)){ + IValue $arg2_659 = (IValue)($aadt_subscript_int(((IConstructor)$0),2)); + if($isComparable($arg2_659.getType(), $T0)){ + return ((IBool)$constants.get(1)/*true*/); + + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Type.rsc|(41216,56,<672,0>,<672,56>) + public IBool Type_isConstructorType$7c73a110d1ea5afa(IConstructor $__0){ + + + return ((IBool)$constants.get(2)/*false*/); + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Type.rsc|(41274,106,<674,0>,<675,54>) + public IBool Type_isAliasType$be7b4838d41f7750(IConstructor $0){ + + + if($has_type_and_arity($0, Symbol_alias_str_list_Symbol_Symbol, 3)){ + IValue $arg0_664 = (IValue)($aadt_subscript_int(((IConstructor)$0),0)); + if($isComparable($arg0_664.getType(), $T4)){ + IValue $arg1_663 = (IValue)($aadt_subscript_int(((IConstructor)$0),1)); + if($isComparable($arg1_663.getType(), $T4)){ + IValue $arg2_662 = (IValue)($aadt_subscript_int(((IConstructor)$0),2)); + if($isComparable($arg2_662.getType(), $T4)){ + return ((IBool)$constants.get(1)/*true*/); + + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Type.rsc|(41381,77,<676,0>,<676,77>) + public IBool Type_isAliasType$36bb377f97e90786(IConstructor $0){ + + + if($has_type_and_arity($0, Symbol_parameter_str_Symbol, 2)){ + IValue $arg0_666 = (IValue)($aadt_subscript_int(((IConstructor)$0),0)); + if($isComparable($arg0_666.getType(), $T4)){ + IValue $arg1_665 = (IValue)($aadt_subscript_int(((IConstructor)$0),1)); + if($isComparable($arg1_665.getType(), ADT_Symbol)){ + IConstructor tvb_0 = null; + return ((IBool)($me.isAliasType(((IConstructor)($arg1_665))))); + + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Type.rsc|(41459,71,<677,0>,<677,71>) + public IBool Type_isAliasType$53ed17cc6d4d56d5(IConstructor $0){ + + + if($has_type_and_arity($0, Symbol_label_str_Symbol, 2)){ + IValue $arg0_668 = (IValue)($aadt_subscript_int(((IConstructor)$0),0)); + if($isComparable($arg0_668.getType(), $T4)){ + IValue $arg1_667 = (IValue)($aadt_subscript_int(((IConstructor)$0),1)); + if($isComparable($arg1_667.getType(), ADT_Symbol)){ + IConstructor lt_0 = null; + return ((IBool)($me.isAliasType(((IConstructor)($arg1_667))))); + + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Type.rsc|(41531,50,<678,0>,<678,50>) + public IBool Type_isAliasType$a82f2a52c32629d2(IConstructor $__0){ + + + return ((IBool)$constants.get(2)/*false*/); + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Type.rsc|(41583,134,<680,0>,<681,79>) + public IBool Type_isFunctionType$cdb5ce9942d16bd2(IConstructor $0){ + + + if($has_type_and_arity($0, Symbol_alias_str_list_Symbol_Symbol, 3)){ + IValue $arg0_671 = (IValue)($aadt_subscript_int(((IConstructor)$0),0)); + if($isComparable($arg0_671.getType(), $T4)){ + IValue $arg1_670 = (IValue)($aadt_subscript_int(((IConstructor)$0),1)); + if($isComparable($arg1_670.getType(), $T4)){ + IValue $arg2_669 = (IValue)($aadt_subscript_int(((IConstructor)$0),2)); + if($isComparable($arg2_669.getType(), ADT_Symbol)){ + IConstructor at_0 = null; + return ((IBool)($me.isFunctionType(((IConstructor)($arg2_669))))); + + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Type.rsc|(41718,83,<682,0>,<682,83>) + public IBool Type_isFunctionType$d383dd66853ee549(IConstructor $0){ + + + if($has_type_and_arity($0, Symbol_parameter_str_Symbol, 2)){ + IValue $arg0_673 = (IValue)($aadt_subscript_int(((IConstructor)$0),0)); + if($isComparable($arg0_673.getType(), $T4)){ + IValue $arg1_672 = (IValue)($aadt_subscript_int(((IConstructor)$0),1)); + if($isComparable($arg1_672.getType(), ADT_Symbol)){ + IConstructor tvb_0 = null; + return ((IBool)($me.isFunctionType(((IConstructor)($arg1_672))))); + + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Type.rsc|(41802,77,<683,0>,<683,77>) + public IBool Type_isFunctionType$25cdd570591a3b3f(IConstructor $0){ + + + if($has_type_and_arity($0, Symbol_label_str_Symbol, 2)){ + IValue $arg0_675 = (IValue)($aadt_subscript_int(((IConstructor)$0),0)); + if($isComparable($arg0_675.getType(), $T4)){ + IValue $arg1_674 = (IValue)($aadt_subscript_int(((IConstructor)$0),1)); + if($isComparable($arg1_674.getType(), ADT_Symbol)){ + IConstructor lt_0 = null; + return ((IBool)($me.isFunctionType(((IConstructor)($arg1_674))))); + + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Type.rsc|(41880,56,<684,0>,<684,56>) + public IBool Type_isFunctionType$670ad7351fb38cc0(IConstructor $0){ + + + if($has_type_and_arity($0, Symbol_func_Symbol_list_Symbol_list_Symbol, 3)){ + IValue $arg0_678 = (IValue)($aadt_subscript_int(((IConstructor)$0),0)); + if($isComparable($arg0_678.getType(), $T4)){ + IValue $arg1_677 = (IValue)($aadt_subscript_int(((IConstructor)$0),1)); + if($isComparable($arg1_677.getType(), $T4)){ + IValue $arg2_676 = (IValue)($aadt_subscript_int(((IConstructor)$0),2)); + if($isComparable($arg2_676.getType(), $T4)){ + return ((IBool)$constants.get(1)/*true*/); + + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Type.rsc|(41937,53,<685,0>,<685,53>) + public IBool Type_isFunctionType$50a9927a87b4bf31(IConstructor $__0){ + + + return ((IBool)$constants.get(2)/*false*/); + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Type.rsc|(41992,131,<687,0>,<688,77>) + public IBool Type_isReifiedType$afaab65144832e90(IConstructor $0){ + + + if($has_type_and_arity($0, Symbol_alias_str_list_Symbol_Symbol, 3)){ + IValue $arg0_681 = (IValue)($aadt_subscript_int(((IConstructor)$0),0)); + if($isComparable($arg0_681.getType(), $T4)){ + IValue $arg1_680 = (IValue)($aadt_subscript_int(((IConstructor)$0),1)); + if($isComparable($arg1_680.getType(), $T4)){ + IValue $arg2_679 = (IValue)($aadt_subscript_int(((IConstructor)$0),2)); + if($isComparable($arg2_679.getType(), ADT_Symbol)){ + IConstructor at_0 = null; + return ((IBool)($me.isReifiedType(((IConstructor)($arg2_679))))); + + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Type.rsc|(42124,81,<689,0>,<689,81>) + public IBool Type_isReifiedType$2398657586b47cef(IConstructor $0){ + + + if($has_type_and_arity($0, Symbol_parameter_str_Symbol, 2)){ + IValue $arg0_683 = (IValue)($aadt_subscript_int(((IConstructor)$0),0)); + if($isComparable($arg0_683.getType(), $T4)){ + IValue $arg1_682 = (IValue)($aadt_subscript_int(((IConstructor)$0),1)); + if($isComparable($arg1_682.getType(), ADT_Symbol)){ + IConstructor tvb_0 = null; + return ((IBool)($me.isReifiedType(((IConstructor)($arg1_682))))); + + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Type.rsc|(42206,75,<690,0>,<690,75>) + public IBool Type_isReifiedType$6fed314f55ec225d(IConstructor $0){ + + + if($has_type_and_arity($0, Symbol_label_str_Symbol, 2)){ + IValue $arg0_685 = (IValue)($aadt_subscript_int(((IConstructor)$0),0)); + if($isComparable($arg0_685.getType(), $T4)){ + IValue $arg1_684 = (IValue)($aadt_subscript_int(((IConstructor)$0),1)); + if($isComparable($arg1_684.getType(), ADT_Symbol)){ + IConstructor lt_0 = null; + return ((IBool)($me.isReifiedType(((IConstructor)($arg1_684))))); + + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Type.rsc|(42282,54,<691,0>,<691,54>) + public IBool Type_isReifiedType$a8d50b8b608f8ee7(IConstructor $0){ + + + if($has_type_and_arity($0, Symbol_reified_Symbol, 1)){ + IValue $arg0_686 = (IValue)($aadt_subscript_int(((IConstructor)$0),0)); + if($isComparable($arg0_686.getType(), $T4)){ + return ((IBool)$constants.get(1)/*true*/); + + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Type.rsc|(42337,52,<692,0>,<692,52>) + public IBool Type_isReifiedType$f758db94422c9072(IConstructor $__0){ + + + return ((IBool)$constants.get(2)/*false*/); + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Type.rsc|(42391,115,<694,0>,<695,54>) + public IBool Type_isTypeVar$301a952e924ee4a8(IConstructor $0){ + + + if($has_type_and_arity($0, Symbol_parameter_str_Symbol, 2)){ + IValue $arg0_688 = (IValue)($aadt_subscript_int(((IConstructor)$0),0)); + if($isComparable($arg0_688.getType(), $T4)){ + IValue $arg1_687 = (IValue)($aadt_subscript_int(((IConstructor)$0),1)); + if($isComparable($arg1_687.getType(), $T4)){ + return ((IBool)$constants.get(1)/*true*/); + + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Type.rsc|(42507,69,<696,0>,<696,69>) + public IBool Type_isTypeVar$b0dd3673fa06bcfe(IConstructor $0){ + + + if($has_type_and_arity($0, Symbol_alias_str_list_Symbol_Symbol, 3)){ + IValue $arg0_691 = (IValue)($aadt_subscript_int(((IConstructor)$0),0)); + if($isComparable($arg0_691.getType(), $T4)){ + IValue $arg1_690 = (IValue)($aadt_subscript_int(((IConstructor)$0),1)); + if($isComparable($arg1_690.getType(), $T4)){ + IValue $arg2_689 = (IValue)($aadt_subscript_int(((IConstructor)$0),2)); + if($isComparable($arg2_689.getType(), ADT_Symbol)){ + IConstructor at_0 = null; + return ((IBool)($me.isTypeVar(((IConstructor)($arg2_689))))); + + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Type.rsc|(42577,67,<697,0>,<697,67>) + public IBool Type_isTypeVar$78fc26e12b32aede(IConstructor $0){ + + + if($has_type_and_arity($0, Symbol_label_str_Symbol, 2)){ + IValue $arg0_693 = (IValue)($aadt_subscript_int(((IConstructor)$0),0)); + if($isComparable($arg0_693.getType(), $T4)){ + IValue $arg1_692 = (IValue)($aadt_subscript_int(((IConstructor)$0),1)); + if($isComparable($arg1_692.getType(), ADT_Symbol)){ + IConstructor lt_0 = null; + return ((IBool)($me.isTypeVar(((IConstructor)($arg1_692))))); + + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/Type.rsc|(42645,48,<698,0>,<698,48>) + public IBool Type_isTypeVar$7fdb3c6deae5e954(IConstructor $__0){ + + + return ((IBool)$constants.get(2)/*false*/); + + } + + + public static void main(String[] args) { + throw new RuntimeException("No function `main` found in Rascal module `Type`"); + } +} \ No newline at end of file diff --git a/src/rascal/$Type.tpl b/src/rascal/$Type.tpl new file mode 100644 index 00000000000..e580bd460b5 Binary files /dev/null and b/src/rascal/$Type.tpl differ diff --git a/src/rascal/$Type_$I.java b/src/rascal/$Type_$I.java new file mode 100644 index 00000000000..d15567e2908 --- /dev/null +++ b/src/rascal/$Type_$I.java @@ -0,0 +1,51 @@ +package rascal; +import io.usethesource.vallang.*; +import org.rascalmpl.runtime.function.*; + +@SuppressWarnings("unused") +public interface $Type_$I { + IValue addLabels(IValue $0, IValue $1); + IValue addParamLabels(IValue $0, IValue $1); + IValue allLabeled(IValue $0); + IValue choice(IValue $0, IValue $1); + IValue comparable(IValue $0, IValue $1); + IValue eq(IValue $0, IValue $1); + IValue equivalent(IValue $0, IValue $1); + IValue getLabels(IValue $0); + IValue getParamLabels(IValue $0); + IValue glb(IValue $0, IValue $1); + IValue isADTType(IValue $0); + IValue isAliasType(IValue $0); + IValue isBagType(IValue $0); + IValue isBoolType(IValue $0); + IValue isConstructorType(IValue $0); + IValue isDateTimeType(IValue $0); + IValue isFunctionType(IValue $0); + IValue isIntType(IValue $0); + IValue isListRelType(IValue $0); + IValue isListType(IValue $0); + IValue isLocType(IValue $0); + IValue isMapType(IValue $0); + IValue isNodeType(IValue $0); + IValue isNumType(IValue $0); + IValue isRatType(IValue $0); + IValue isRealType(IValue $0); + IValue isReifiedType(IValue $0); + IValue isRelType(IValue $0); + IValue isSetType(IValue $0); + IValue isStrType(IValue $0); + IValue isTupleType(IValue $0); + IValue isTypeVar(IValue $0); + IValue isValueType(IValue $0); + IValue isVoidType(IValue $0); + IValue keepParams(IValue $0, IValue $1); + IValue lub(IValue $0, IValue $1); + IValue make(IValue $0, IValue $1, IValue $2); + IValue make(IValue $0, IValue $1, IValue $2, IValue $3); + IValue noneLabeled(IValue $0); + IValue stripLabels(IValue $0); + IValue subtype(IValue $0, IValue $1); + IValue typeCast(IValue $0, IValue $1); + IValue typeOf(IValue $0); + IValue var_func(IValue $0, IValue $1, IValue $2); +} \ No newline at end of file diff --git a/src/rascal/$ValueIO.constants b/src/rascal/$ValueIO.constants new file mode 100644 index 00000000000..8171eb8e426 Binary files /dev/null and b/src/rascal/$ValueIO.constants differ diff --git a/src/rascal/$ValueIO.java b/src/rascal/$ValueIO.java new file mode 100644 index 00000000000..c3f4c697ac4 --- /dev/null +++ b/src/rascal/$ValueIO.java @@ -0,0 +1,442 @@ +package rascal; +import java.io.PrintWriter; +import java.io.StringWriter; +import java.io.InputStreamReader; +import java.io.PrintWriter; +import java.util.*; +import java.util.regex.Matcher; +import io.usethesource.vallang.*; +import io.usethesource.vallang.type.*; +import org.rascalmpl.runtime.*; +import org.rascalmpl.runtime.RascalExecutionContext; +import org.rascalmpl.runtime.function.*; +import org.rascalmpl.runtime.traverse.*; +import org.rascalmpl.runtime.utils.*; +import org.rascalmpl.exceptions.RuntimeExceptionFactory; +import org.rascalmpl.exceptions.Throw; +import org.rascalmpl.runtime.RascalExecutionContext; +import org.rascalmpl.interpreter.control_exceptions.Filtered; +import org.rascalmpl.types.NonTerminalType; +import org.rascalmpl.types.RascalTypeFactory; +import org.rascalmpl.util.ExpiringFunctionResultCache; +import org.rascalmpl.values.RascalValueFactory; +import org.rascalmpl.values.ValueFactoryFactory; +import org.rascalmpl.values.parsetrees.ITree; +import org.rascalmpl.values.parsetrees.TreeAdapter; + + + +@SuppressWarnings({"unused","unchecked","deprecation"}) +public class $ValueIO + extends + org.rascalmpl.runtime.$RascalModule + implements + rascal.$ValueIO_$I { + + private final $ValueIO_$I $me; + private final IList $constants; + final java.util.Map $kwpDefaults_ValueIO_writeBinaryValueFile$54f312ebb70160dd; + + + public final rascal.$Type M_Type; + + + final org.rascalmpl.library.Prelude $Prelude; // TODO: asBaseClassName will generate name collisions if there are more of the same name in different packages + + + public final io.usethesource.vallang.type.Type $T4; /*astr()*/ + public final io.usethesource.vallang.type.Type $T1; /*avalue()*/ + public final io.usethesource.vallang.type.Type $T0; /*aloc()*/ + public final io.usethesource.vallang.type.Type $T3; /*aparameter("T",avalue(),closed=false)*/ + public final io.usethesource.vallang.type.Type $T5; /*aparameter("T",avalue(),closed=true)*/ + public final io.usethesource.vallang.type.Type ADT_Production; /*aadt("Production",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Exception; /*aadt("Exception",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type $T2; /*areified(aparameter("T",avalue(),closed=false))*/ + public final io.usethesource.vallang.type.Type ADT_Symbol; /*aadt("Symbol",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Attr; /*aadt("Attr",[],dataSyntax())*/ + public final IConstructor $R1; /*adt("Symbol",[])*/ + public final IConstructor $R2; /*adt("Production",[])*/ + public final IConstructor $R0; /*value()*/ + + public $ValueIO(RascalExecutionContext rex){ + this(rex, null); + } + + public $ValueIO(RascalExecutionContext rex, Object extended){ + super(rex); + this.$me = extended == null ? this : ($ValueIO_$I)extended; + ModuleStore mstore = rex.getModuleStore(); + mstore.put(rascal.$ValueIO.class, this); + + mstore.importModule(rascal.$Type.class, rex, rascal.$Type::new); + + M_Type = mstore.getModule(rascal.$Type.class); + + + + $TS.importStore(M_Type.$TS); + + $Prelude = $initLibrary("org.rascalmpl.library.Prelude"); + + $constants = readBinaryConstantsFile(this.getClass(), "rascal/$ValueIO.constants", 92, "63764b732e7b657e1f23fc5b01a5a6b0"); + ADT_Production = $adt("Production"); + ADT_Exception = $adt("Exception"); + ADT_Symbol = $adt("Symbol"); + ADT_Attr = $adt("Attr"); + $T4 = $TF.stringType(); + $T1 = $TF.valueType(); + $T0 = $TF.sourceLocationType(); + $T3 = $TF.parameterType("T", $T1); + $T5 = $TF.parameterType("T", $T1); + $T2 = $RTF.reifiedType($T3); + $R1 = $RVF.reifiedType(((IConstructor)$constants.get(2)/*adt("Symbol",[])*/), ((IMap)$constants.get(3)/*(adt("Symbol",[]):choice(adt("Symbol",[]),{cons(label("datetime",adt("Symbol",[])),[],[],{}),cons(la ...*/)); + $R2 = $RVF.reifiedType(((IConstructor)$constants.get(74)/*adt("Production",[])*/), ((IMap)$constants.get(75)/*(adt("Production",[]):choice(adt("Production",[]),{cons(label("cons",adt("Production",[])),[label("d ...*/)); + $R0 = $RVF.reifiedType(((IConstructor)$constants.get(0)/*value()*/), ((IMap)$constants.get(1)/*()*/)); + + + $kwpDefaults_ValueIO_writeBinaryValueFile$54f312ebb70160dd = Util.kwpMap("compression", ((IBool)$constants.get(91)/*true*/)); + + } + public IBool isTypeVar(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isTypeVar($P0); + } + public IBool isMapType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isMapType($P0); + } + public IBool isBoolType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isBoolType($P0); + } + public IBool isSetType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isSetType($P0); + } + public IBool isRatType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isRatType($P0); + } + public IValue readValueFile(IValue $P0){ // Generated by Resolver + IValue $result = null; + Type $P0Type = $P0.getType(); + if($isSubtypeOf($P0Type,$T0)){ + $result = (IValue)ValueIO_readValueFile$ea309a030fc08f08((ISourceLocation) $P0); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0)); + } + public IValue glb(IValue $P0, IValue $P1){ // Generated by Resolver + return (IValue) M_Type.glb($P0, $P1); + } + public IList addLabels(IValue $P0, IValue $P1){ // Generated by Resolver + return (IList) M_Type.addLabels($P0, $P1); + } + public IBool isAliasType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isAliasType($P0); + } + public IBool isStrType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isStrType($P0); + } + public IConstructor choice(IValue $P0, IValue $P1){ // Generated by Resolver + return (IConstructor) M_Type.choice($P0, $P1); + } + public IBool isADTType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isADTType($P0); + } + public void writeTextValueFile(IValue $P0, IValue $P1){ // Generated by Resolver + Type $P0Type = $P0.getType(); + Type $P1Type = $P1.getType(); + if($isSubtypeOf($P0Type,$T0) && $isSubtypeOf($P1Type,$T1)){ + try { ValueIO_writeTextValueFile$c43c732407724c55((ISourceLocation) $P0, (IValue) $P1); return; } catch (FailReturnFromVoidException e){}; + + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0, $P1)); + } + public IBool isValueType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isValueType($P0); + } + public IBool isListType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isListType($P0); + } + public IBool isRealType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isRealType($P0); + } + public IBool isNodeType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isNodeType($P0); + } + public IBool isReifiedType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isReifiedType($P0); + } + public IBool isRelType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isRelType($P0); + } + public IBool isConstructorType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isConstructorType($P0); + } + public IValue readTextValueFile(IValue $P0){ // Generated by Resolver + IValue $result = null; + Type $P0Type = $P0.getType(); + if($isSubtypeOf($P0Type,$T0)){ + $result = (IValue)ValueIO_readTextValueFile$299cac6baeeea723((ISourceLocation) $P0); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0)); + } + public IValue readTextValueFile(IValue $P0, IValue $P1){ // Generated by Resolver + IValue $result = null; + Type $P0Type = $P0.getType(); + Type $P1Type = $P1.getType(); + if($isSubtypeOf($P0Type,$T2) && $isSubtypeOf($P1Type,$T0)){ + $result = (IValue)ValueIO_readTextValueFile$30ae6fc8c0910f54((IConstructor) $P0, (ISourceLocation) $P1); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0, $P1)); + } + public IBool isListRelType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isListRelType($P0); + } + public IList addParamLabels(IValue $P0, IValue $P1){ // Generated by Resolver + return (IList) M_Type.addParamLabels($P0, $P1); + } + public void writeBinaryValueFile(IValue $P0, IValue $P1, java.util.Map $kwpActuals){ // Generated by Resolver + Type $P0Type = $P0.getType(); + Type $P1Type = $P1.getType(); + if($isSubtypeOf($P0Type,$T0) && $isSubtypeOf($P1Type,$T1)){ + try { ValueIO_writeBinaryValueFile$54f312ebb70160dd((ISourceLocation) $P0, (IValue) $P1, $kwpActuals); return; } catch (FailReturnFromVoidException e){}; + + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0, $P1)); + } + public IBool isLocType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isLocType($P0); + } + public IBool isNumType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isNumType($P0); + } + public IValue readBinaryValueFile(IValue $P0){ // Generated by Resolver + IValue $result = null; + Type $P0Type = $P0.getType(); + if($isSubtypeOf($P0Type,$T0)){ + $result = (IValue)ValueIO_readBinaryValueFile$1b30fe51945a51e9((ISourceLocation) $P0); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0)); + } + public IValue readBinaryValueFile(IValue $P0, IValue $P1){ // Generated by Resolver + IValue $result = null; + Type $P0Type = $P0.getType(); + Type $P1Type = $P1.getType(); + if($isSubtypeOf($P0Type,$T2) && $isSubtypeOf($P1Type,$T0)){ + $result = (IValue)ValueIO_readBinaryValueFile$654d9d02462c8a2e((IConstructor) $P0, (ISourceLocation) $P1); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0, $P1)); + } + public IBool isTupleType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isTupleType($P0); + } + public IBool isBagType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isBagType($P0); + } + public IInteger getFileLength(IValue $P0){ // Generated by Resolver + IInteger $result = null; + Type $P0Type = $P0.getType(); + if($isSubtypeOf($P0Type,$T0)){ + $result = (IInteger)ValueIO_getFileLength$2a69625057bd6abb((ISourceLocation) $P0); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0)); + } + public IBool isVoidType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isVoidType($P0); + } + public IValue lub(IValue $P0, IValue $P1){ // Generated by Resolver + return (IValue) M_Type.lub($P0, $P1); + } + public IBool subtype(IValue $P0, IValue $P1){ // Generated by Resolver + return (IBool) M_Type.subtype($P0, $P1); + } + public IBool isFunctionType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isFunctionType($P0); + } + public IValue readTextValueFileWithEmbeddedTypes(IValue $P0, IValue $P1){ // Generated by Resolver + IValue $result = null; + Type $P0Type = $P0.getType(); + Type $P1Type = $P1.getType(); + if($isSubtypeOf($P0Type,$T2) && $isSubtypeOf($P1Type,$T0)){ + $result = (IValue)ValueIO_readTextValueFileWithEmbeddedTypes$eb2dc9cf7e58ab2a((IConstructor) $P0, (ISourceLocation) $P1); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0, $P1)); + } + public IBool isIntType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isIntType($P0); + } + public IBool isDateTimeType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isDateTimeType($P0); + } + public IValue readTextValueString(IValue $P0){ // Generated by Resolver + IValue $result = null; + Type $P0Type = $P0.getType(); + if($isSubtypeOf($P0Type,$T4)){ + $result = (IValue)ValueIO_readTextValueString$ca7c08a51b726474((IString) $P0); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0)); + } + public IValue readTextValueString(IValue $P0, IValue $P1){ // Generated by Resolver + IValue $result = null; + Type $P0Type = $P0.getType(); + Type $P1Type = $P1.getType(); + if($isSubtypeOf($P0Type,$T2) && $isSubtypeOf($P1Type,$T4)){ + $result = (IValue)ValueIO_readTextValueString$ddb9fd6afef8f2d6((IConstructor) $P0, (IString) $P1); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0, $P1)); + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/ValueIO.rsc|(568,143,<18,0>,<21,1>) + public IValue ValueIO_readValueFile$ea309a030fc08f08(ISourceLocation file_0){ + + + return ((IValue)($me.readBinaryValueFile(((IConstructor)($R0)), ((ISourceLocation)file_0)))); + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/ValueIO.rsc|(714,134,<24,0>,<26,40>) + public IInteger ValueIO_getFileLength$2a69625057bd6abb(ISourceLocation file_0){ + + + return ((IInteger)((IInteger)$Prelude.getFileLength(file_0))); + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/ValueIO.rsc|(851,154,<29,0>,<31,62>) + public IValue ValueIO_readBinaryValueFile$654d9d02462c8a2e(IConstructor result_0, ISourceLocation file_1){ + + + HashMap $typeBindings = new HashMap<>(); + if($T2.match(result_0.getType(), $typeBindings)){ + final IValue $result0 = ((IValue)((IValue)$Prelude.readBinaryValueFile(result_0, file_1))); + if($T5.instantiate($typeBindings) != $TF.voidType() && $isSubtypeOf($result0.getType(),$T5)){ + return ((IValue)($result0)); + + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/ValueIO.rsc|(1007,90,<33,0>,<35,1>) + public IValue ValueIO_readBinaryValueFile$1b30fe51945a51e9(ISourceLocation file_0){ + + + return ((IValue)($me.readBinaryValueFile(((IConstructor)($R0)), ((ISourceLocation)file_0)))); + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/ValueIO.rsc|(1100,150,<38,0>,<40,60>) + public IValue ValueIO_readTextValueFile$30ae6fc8c0910f54(IConstructor result_0, ISourceLocation file_1){ + + + HashMap $typeBindings = new HashMap<>(); + if($T2.match(result_0.getType(), $typeBindings)){ + final IValue $result1 = ((IValue)((IValue)$Prelude.readTextValueFile(result_0, file_1))); + if($T5.instantiate($typeBindings) != $TF.voidType() && $isSubtypeOf($result1.getType(),$T5)){ + return ((IValue)($result1)); + + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/ValueIO.rsc|(1252,86,<42,0>,<44,1>) + public IValue ValueIO_readTextValueFile$299cac6baeeea723(ISourceLocation file_0){ + + + return ((IValue)($me.readTextValueFile(((IConstructor)($R0)), ((ISourceLocation)file_0)))); + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/ValueIO.rsc|(1341,314,<47,0>,<51,1>) + public IValue ValueIO_readTextValueFileWithEmbeddedTypes$eb2dc9cf7e58ab2a(IConstructor result_0, ISourceLocation file_1){ + + + HashMap $typeBindings = new HashMap<>(); + if($T2.match(result_0.getType(), $typeBindings)){ + final IValue $result2 = ((IValue)($me.readTextValueFile(((IConstructor)($reifiedAType((IConstructor) ((IConstructor)($areified_get_field(result_0, "symbol"))), $amap_add_amap(((IMap)($amap_add_amap(((IMap)(((IMap)($areified_get_field(result_0, "definitions"))))),((IMap)(((IMap)($areified_get_field($R1, "definitions")))))))),((IMap)(((IMap)($areified_get_field($R2, "definitions"))))))))), ((ISourceLocation)file_1)))); + if($T5.instantiate($typeBindings) != $TF.voidType() && $isSubtypeOf($result2.getType(),$T5)){ + return ((IValue)($result2)); + + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/ValueIO.rsc|(1658,153,<54,0>,<57,1>) + public IValue ValueIO_readTextValueString$ca7c08a51b726474(IString input_0){ + + + return ((IValue)($me.readTextValueString(((IConstructor)($R0)), ((IString)input_0)))); + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/ValueIO.rsc|(1814,205,<60,0>,<62,63>) + public IValue ValueIO_readTextValueString$ddb9fd6afef8f2d6(IConstructor result_0, IString input_1){ + + + HashMap $typeBindings = new HashMap<>(); + if($T2.match(result_0.getType(), $typeBindings)){ + final IValue $result3 = ((IValue)((IValue)$Prelude.readTextValueString(result_0, input_1))); + if($T5.instantiate($typeBindings) != $TF.voidType() && $isSubtypeOf($result3.getType(),$T5)){ + return ((IValue)($result3)); + + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/ValueIO.rsc|(2023,200,<65,0>,<67,84>) + public void ValueIO_writeBinaryValueFile$54f312ebb70160dd(ISourceLocation file_0, IValue val_1, java.util.Map $kwpActuals){ + + java.util.Map $kwpDefaults = $kwpDefaults_ValueIO_writeBinaryValueFile$54f312ebb70160dd; + + $Prelude.writeBinaryValueFile(file_0, val_1, (IBool)($kwpActuals.containsKey("compression") ? $kwpActuals.get("compression") : $kwpDefaults.get("compression"))); + return; + + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/ValueIO.rsc|(2227,163,<70,0>,<72,57>) + public void ValueIO_writeTextValueFile$c43c732407724c55(ISourceLocation file_0, IValue val_1){ + + + $Prelude.writeTextValueFile(file_0, val_1); + return; + + + } + + + public static void main(String[] args) { + throw new RuntimeException("No function `main` found in Rascal module `ValueIO`"); + } +} \ No newline at end of file diff --git a/src/rascal/$ValueIO.tpl b/src/rascal/$ValueIO.tpl new file mode 100644 index 00000000000..c76aac43ace Binary files /dev/null and b/src/rascal/$ValueIO.tpl differ diff --git a/src/rascal/$ValueIO_$I.java b/src/rascal/$ValueIO_$I.java new file mode 100644 index 00000000000..dc8d3389a81 --- /dev/null +++ b/src/rascal/$ValueIO_$I.java @@ -0,0 +1,18 @@ +package rascal; +import io.usethesource.vallang.*; +import org.rascalmpl.runtime.function.*; + +@SuppressWarnings("unused") +public interface $ValueIO_$I { + IValue getFileLength(IValue $0); + IValue readBinaryValueFile(IValue $0, IValue $1); + IValue readBinaryValueFile(IValue $0); + IValue readTextValueFile(IValue $0, IValue $1); + IValue readTextValueFile(IValue $0); + IValue readTextValueFileWithEmbeddedTypes(IValue $0, IValue $1); + IValue readTextValueString(IValue $0, IValue $1); + IValue readTextValueString(IValue $0); + IValue readValueFile(IValue $0); + void writeBinaryValueFile(IValue $0, IValue $1, java.util.Map $kwpActuals); + void writeTextValueFile(IValue $0, IValue $1); +} \ No newline at end of file diff --git a/src/rascal/analysis/grammars/$Dependency.constants b/src/rascal/analysis/grammars/$Dependency.constants new file mode 100644 index 00000000000..2132170dcea Binary files /dev/null and b/src/rascal/analysis/grammars/$Dependency.constants differ diff --git a/src/rascal/analysis/grammars/$Dependency.java b/src/rascal/analysis/grammars/$Dependency.java new file mode 100644 index 00000000000..d0e29a46af4 --- /dev/null +++ b/src/rascal/analysis/grammars/$Dependency.java @@ -0,0 +1,504 @@ +package rascal.analysis.grammars; +import java.io.PrintWriter; +import java.io.StringWriter; +import java.io.InputStreamReader; +import java.io.PrintWriter; +import java.util.*; +import java.util.regex.Matcher; +import io.usethesource.vallang.*; +import io.usethesource.vallang.type.*; +import org.rascalmpl.runtime.*; +import org.rascalmpl.runtime.RascalExecutionContext; +import org.rascalmpl.runtime.function.*; +import org.rascalmpl.runtime.traverse.*; +import org.rascalmpl.runtime.utils.*; +import org.rascalmpl.exceptions.RuntimeExceptionFactory; +import org.rascalmpl.exceptions.Throw; +import org.rascalmpl.runtime.RascalExecutionContext; +import org.rascalmpl.interpreter.control_exceptions.Filtered; +import org.rascalmpl.types.NonTerminalType; +import org.rascalmpl.types.RascalTypeFactory; +import org.rascalmpl.util.ExpiringFunctionResultCache; +import org.rascalmpl.values.RascalValueFactory; +import org.rascalmpl.values.ValueFactoryFactory; +import org.rascalmpl.values.parsetrees.ITree; +import org.rascalmpl.values.parsetrees.TreeAdapter; + + + +@SuppressWarnings({"unused","unchecked","deprecation"}) +public class $Dependency + extends + org.rascalmpl.runtime.$RascalModule + implements + rascal.analysis.grammars.$Dependency_$I { + + private final $Dependency_$I $me; + private final IList $constants; + + + public final rascal.analysis.graphs.$Graph M_analysis_graphs_Graph; + public final rascal.$ParseTree M_ParseTree; + public final rascal.$Type M_Type; + public final rascal.$List M_List; + public final rascal.$Grammar M_Grammar; + public final rascal.$Message M_Message; + + + + public final io.usethesource.vallang.type.Type $T2; /*avalue()*/ + public final io.usethesource.vallang.type.Type ADT_Exception; /*aadt("Exception",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Item; /*aadt("Item",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Grammar; /*aadt("Grammar",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_LocationType; /*aadt("LocationType",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Associativity; /*aadt("Associativity",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_GrammarDefinition; /*aadt("GrammarDefinition",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_IOCapability; /*aadt("IOCapability",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_GrammarModule; /*aadt("GrammarModule",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Tree; /*aadt("Tree",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_CharRange; /*aadt("CharRange",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Attr; /*aadt("Attr",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_LocationChangeType; /*aadt("LocationChangeType",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_LocationChangeEvent; /*aadt("LocationChangeEvent",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type $T0; /*aparameter("T",aadt("Tree",[],dataSyntax()),closed=true)*/ + public final io.usethesource.vallang.type.Type ADT_RuntimeException; /*aadt("RuntimeException",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Symbol; /*aadt("Symbol",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Message; /*aadt("Message",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Production; /*aadt("Production",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_TreeSearchResult_1; /*aadt("TreeSearchResult",[aparameter("T",aadt("Tree",[],dataSyntax()),closed=true)],dataSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Condition; /*aadt("Condition",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type $T1; /*alist(aadt("Symbol",[],dataSyntax()))*/ + + public $Dependency(RascalExecutionContext rex){ + this(rex, null); + } + + public $Dependency(RascalExecutionContext rex, Object extended){ + super(rex); + this.$me = extended == null ? this : ($Dependency_$I)extended; + ModuleStore mstore = rex.getModuleStore(); + mstore.put(rascal.analysis.grammars.$Dependency.class, this); + + mstore.importModule(rascal.analysis.graphs.$Graph.class, rex, rascal.analysis.graphs.$Graph::new); + mstore.importModule(rascal.$ParseTree.class, rex, rascal.$ParseTree::new); + mstore.importModule(rascal.$Type.class, rex, rascal.$Type::new); + mstore.importModule(rascal.$List.class, rex, rascal.$List::new); + mstore.importModule(rascal.$Grammar.class, rex, rascal.$Grammar::new); + mstore.importModule(rascal.$Message.class, rex, rascal.$Message::new); + + M_analysis_graphs_Graph = mstore.getModule(rascal.analysis.graphs.$Graph.class); + M_ParseTree = mstore.getModule(rascal.$ParseTree.class); + M_Type = mstore.getModule(rascal.$Type.class); + M_List = mstore.getModule(rascal.$List.class); + M_Grammar = mstore.getModule(rascal.$Grammar.class); + M_Message = mstore.getModule(rascal.$Message.class); + + + + $TS.importStore(M_analysis_graphs_Graph.$TS); + $TS.importStore(M_ParseTree.$TS); + $TS.importStore(M_Type.$TS); + $TS.importStore(M_List.$TS); + $TS.importStore(M_Grammar.$TS); + $TS.importStore(M_Message.$TS); + + $constants = readBinaryConstantsFile(this.getClass(), "rascal/analysis/grammars/$Dependency.constants", 3, "2d6609f5b74a13fd7dd7606ef7eded19"); + ADT_Exception = $adt("Exception"); + ADT_Item = $adt("Item"); + ADT_Grammar = $adt("Grammar"); + ADT_LocationType = $adt("LocationType"); + ADT_Associativity = $adt("Associativity"); + ADT_GrammarDefinition = $adt("GrammarDefinition"); + ADT_IOCapability = $adt("IOCapability"); + ADT_GrammarModule = $adt("GrammarModule"); + ADT_Tree = $adt("Tree"); + ADT_CharRange = $adt("CharRange"); + ADT_Attr = $adt("Attr"); + ADT_LocationChangeType = $adt("LocationChangeType"); + ADT_LocationChangeEvent = $adt("LocationChangeEvent"); + ADT_RuntimeException = $adt("RuntimeException"); + ADT_Symbol = $adt("Symbol"); + ADT_Message = $adt("Message"); + ADT_Production = $adt("Production"); + ADT_Condition = $adt("Condition"); + $T2 = $TF.valueType(); + $T0 = $TF.parameterType("T", ADT_Tree); + ADT_TreeSearchResult_1 = $parameterizedAdt("TreeSearchResult", new Type[] { $T0 }); + $T1 = $TF.listType(ADT_Symbol); + + + + } + public IBool isTypeVar(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isTypeVar($P0); + } + public IList addLabels(IValue $P0, IValue $P1){ // Generated by Resolver + return (IList) M_Type.addLabels($P0, $P1); + } + public IBool sameType(IValue $P0, IValue $P1){ // Generated by Resolver + return (IBool) M_ParseTree.sameType($P0, $P1); + } + public IValue head(IValue $P0){ // Generated by Resolver + return (IValue) M_List.head($P0); + } + public IBool isAliasType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isAliasType($P0); + } + public IBool isStrType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isStrType($P0); + } + public IConstructor choice(IValue $P0, IValue $P1){ // Generated by Resolver + return (IConstructor) M_Type.choice($P0, $P1); + } + public IBool isValueType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isValueType($P0); + } + public ISet symbolDependencies(IValue $P0){ // Generated by Resolver + ISet $result = null; + Type $P0Type = $P0.getType(); + if($isSubtypeOf($P0Type, M_Grammar.ADT_GrammarDefinition)){ + $result = (ISet)analysis_grammars_Dependency_symbolDependencies$593b66cc107be4d0((IConstructor) $P0); + if($result != null) return $result; + } + if($isSubtypeOf($P0Type, M_Grammar.ADT_Grammar)){ + $result = (ISet)analysis_grammars_Dependency_symbolDependencies$4423bb0246bba137((IConstructor) $P0); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0)); + } + public IBool isADTType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isADTType($P0); + } + public IBool isListType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isListType($P0); + } + public IBool isRealType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isRealType($P0); + } + public IConstructor priority(IValue $P0, IValue $P1){ // Generated by Resolver + return (IConstructor) M_ParseTree.priority($P0, $P1); + } + public IBool isNodeType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isNodeType($P0); + } + public IBool isReifiedType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isReifiedType($P0); + } + public IBool isRelType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isRelType($P0); + } + public IBool isConstructorType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isConstructorType($P0); + } + public IBool isListRelType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isListRelType($P0); + } + public IList addParamLabels(IValue $P0, IValue $P1){ // Generated by Resolver + return (IList) M_Type.addParamLabels($P0, $P1); + } + public IBool isMapType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isMapType($P0); + } + public IBool isBoolType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isBoolType($P0); + } + public IList tail(IValue $P0){ // Generated by Resolver + return (IList) M_List.tail($P0); + } + public IBool isLocType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isLocType($P0); + } + public ITuple headTail(IValue $P0){ // Generated by Resolver + return (ITuple) M_List.headTail($P0); + } + public IConstructor treeAt(IValue $P0, IValue $P1, IValue $P2){ // Generated by Resolver + return (IConstructor) M_ParseTree.treeAt($P0, $P1, $P2); + } + public IBool isSetType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isSetType($P0); + } + public IConstructor delabel(IValue $P0){ // Generated by Resolver + IConstructor $result = null; + Type $P0Type = $P0.getType(); + if($isSubtypeOf($P0Type, M_ParseTree.ADT_Symbol)){ + $result = (IConstructor)analysis_grammars_Dependency_delabel$b2d06636a5fe2e59((IConstructor) $P0); + if($result != null) return $result; + } + if($isSubtypeOf($P0Type, M_ParseTree.ADT_Symbol)){ + $result = (IConstructor)analysis_grammars_Dependency_delabel$a3a594b13cfc4d55((IConstructor) $P0); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0)); + } + public IBool isRatType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isRatType($P0); + } + public IBool isNumType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isNumType($P0); + } + public IBool isTupleType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isTupleType($P0); + } + public IBool isBagType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isBagType($P0); + } + public IBool isVoidType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isVoidType($P0); + } + public IBool isNonTerminalType(IValue $P0){ // Generated by Resolver + return (IBool) M_ParseTree.isNonTerminalType($P0); + } + public IValue lub(IValue $P0, IValue $P1){ // Generated by Resolver + return (IValue) M_Type.lub($P0, $P1); + } + public IBool subtype(IValue $P0, IValue $P1){ // Generated by Resolver + return (IBool) M_Type.subtype($P0, $P1); + } + public IConstructor associativity(IValue $P0, IValue $P1, IValue $P2){ // Generated by Resolver + return (IConstructor) M_ParseTree.associativity($P0, $P1, $P2); + } + public IBool isFunctionType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isFunctionType($P0); + } + public IValue glb(IValue $P0, IValue $P1){ // Generated by Resolver + return (IValue) M_Type.glb($P0, $P1); + } + public IBool isIntType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isIntType($P0); + } + public IBool isDateTimeType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isDateTimeType($P0); + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/analysis/grammars/Dependency.rsc|(448,402,<15,0>,<19,221>) + public ISet analysis_grammars_Dependency_symbolDependencies$4423bb0246bba137(IConstructor g_0){ + + + final ISetWriter $setwriter0 = (ISetWriter)$RVF.setWriter(); + ; + /*muExists*/$SCOMP1: + do { + $SCOMP1_DESC645: + for(IValue $elem8 : new DescendantMatchIterator(g_0, + new DescendantDescriptorAlwaysTrue($RVF.bool(false)))){ + if($isComparable($elem8.getType(), M_ParseTree.ADT_Production)){ + if($has_type_and_arity($elem8, M_ParseTree.Production_prod_Symbol_list_Symbol_set_Attr, 3)){ + IValue $arg0_14 = (IValue)($subscript_int(((IValue)($elem8)),0)); + if($isComparable($arg0_14.getType(), M_ParseTree.ADT_Symbol)){ + if(true){ + IConstructor s_1 = null; + IValue $arg1_10 = (IValue)($subscript_int(((IValue)($elem8)),1)); + if($isComparable($arg1_10.getType(), $T1)){ + final IList $subject11 = ((IList)($arg1_10)); + int $subject11_cursor = 0; + if($isSubtypeOf($subject11.getType(),$T1)){ + final int $subject11_len = (int)((IList)($subject11)).length(); + if($subject11_len >= 1){ + final int $__113_start = (int)$subject11_cursor; + $SCOMP1_DESC645_CONS_prod_LIST_MVAR$_2: + + for(int $__113_len = 0; $__113_len <= $subject11_len - $__113_start - 1; $__113_len += 1){ + $subject11_cursor = $__113_start + $__113_len; + if($subject11_cursor < $subject11_len){ + IConstructor elem_2 = ((IConstructor)($alist_subscript_int(((IList)($subject11)),$subject11_cursor))); + $subject11_cursor += 1; + final int $__112_start = (int)$subject11_cursor; + final int $__112_len = (int)$subject11_len - $__112_start - 0; + $subject11_cursor = $__112_start + $__112_len; + /*muExists*/$SCOMP1_DESC645_CONS_prod_LIST_MVAR$_2_VARelem_MVAR$_3: + do { + if($subject11_cursor == $subject11_len){ + IValue $arg2_9 = (IValue)($subscript_int(((IValue)($elem8)),2)); + if($isComparable($arg2_9.getType(), $T2)){ + final IConstructor $subject_val7 = ((IConstructor)($me.delabel(((IConstructor)($arg0_14))))); + if(true){ + IConstructor from_3 = null; + $SCOMP1_DESC716: + for(IValue $elem6 : new DescendantMatchIterator(elem_2, + new DescendantDescriptor(new io.usethesource.vallang.type.Type[]{$TF.listType(ADT_Symbol), M_Type.ADT_Exception, $TF.setType(ADT_Symbol), $TF.setType(ADT_Condition), M_ParseTree.ADT_Tree, M_ParseTree.ADT_TreeSearchResult_1, M_ParseTree.ADT_Condition, M_ParseTree.ADT_Production, M_ParseTree.ADT_Symbol, M_Grammar.ADT_Grammar, M_ParseTree.ADT_CharRange, M_Grammar.ADT_Item, M_Grammar.ADT_GrammarModule, $TF.listType(ADT_CharRange), M_Grammar.ADT_GrammarDefinition}, + new io.usethesource.vallang.IConstructor[]{}, + $RVF.bool(false)))){ + if($isComparable($elem6.getType(), M_ParseTree.ADT_Symbol)){ + if($isSubtypeOf($elem6.getType(),M_ParseTree.ADT_Symbol)){ + IConstructor to_4 = null; + if($is(((IConstructor)($elem6)),((IString)$constants.get(0)/*"sort"*/))){ + if($is(((IConstructor)($subject_val7)),((IString)$constants.get(0)/*"sort"*/))){ + $setwriter0.insert($RVF.tuple(((IConstructor)($subject_val7)), ((IConstructor)($elem6)))); + + } else { + if($is(((IConstructor)($subject_val7)),((IString)$constants.get(1)/*"lex"*/))){ + $setwriter0.insert($RVF.tuple(((IConstructor)($subject_val7)), ((IConstructor)($elem6)))); + + } else { + if($is(((IConstructor)($subject_val7)),((IString)$constants.get(2)/*"parameterized-sort"*/))){ + $setwriter0.insert($RVF.tuple(((IConstructor)($subject_val7)), ((IConstructor)($elem6)))); + + } else { + continue $SCOMP1_DESC716; + } + + } + + } + + } else { + if($is(((IConstructor)($elem6)),((IString)$constants.get(1)/*"lex"*/))){ + if($is(((IConstructor)($subject_val7)),((IString)$constants.get(0)/*"sort"*/))){ + $setwriter0.insert($RVF.tuple(((IConstructor)($subject_val7)), ((IConstructor)($elem6)))); + + } else { + if($is(((IConstructor)($subject_val7)),((IString)$constants.get(1)/*"lex"*/))){ + $setwriter0.insert($RVF.tuple(((IConstructor)($subject_val7)), ((IConstructor)($elem6)))); + + } else { + if($is(((IConstructor)($subject_val7)),((IString)$constants.get(2)/*"parameterized-sort"*/))){ + $setwriter0.insert($RVF.tuple(((IConstructor)($subject_val7)), ((IConstructor)($elem6)))); + + } else { + continue $SCOMP1_DESC716; + } + + } + + } + + } else { + if($is(((IConstructor)($elem6)),((IString)$constants.get(2)/*"parameterized-sort"*/))){ + if($is(((IConstructor)($subject_val7)),((IString)$constants.get(0)/*"sort"*/))){ + $setwriter0.insert($RVF.tuple(((IConstructor)($subject_val7)), ((IConstructor)($elem6)))); + + } else { + if($is(((IConstructor)($subject_val7)),((IString)$constants.get(1)/*"lex"*/))){ + $setwriter0.insert($RVF.tuple(((IConstructor)($subject_val7)), ((IConstructor)($elem6)))); + + } else { + if($is(((IConstructor)($subject_val7)),((IString)$constants.get(2)/*"parameterized-sort"*/))){ + $setwriter0.insert($RVF.tuple(((IConstructor)($subject_val7)), ((IConstructor)($elem6)))); + + } else { + continue $SCOMP1_DESC716; + } + + } + + } + + } else { + continue $SCOMP1_DESC716; + } + + } + + } + + } else { + continue $SCOMP1_DESC716; + } + } else { + continue $SCOMP1_DESC716; + } + } + continue $SCOMP1_DESC645; + + } else { + continue $SCOMP1_DESC645; + } + } else { + continue $SCOMP1_DESC645_CONS_prod_LIST_MVAR$_2_VARelem_MVAR$_3;/*computeFail*/ + } + } else { + continue $SCOMP1_DESC645_CONS_prod_LIST_MVAR$_2_VARelem_MVAR$_3;/*list match1*/ + } + } while(false); + continue $SCOMP1_DESC645_CONS_prod_LIST_MVAR$_2;/*computeFail*/ + } else { + continue $SCOMP1_DESC645_CONS_prod_LIST_MVAR$_2;/*computeFail*/ + } + } + continue $SCOMP1_DESC645; + + } else { + continue $SCOMP1_DESC645; + } + } else { + continue $SCOMP1_DESC645; + } + } else { + continue $SCOMP1_DESC645; + } + } else { + continue $SCOMP1_DESC645; + } + } else { + continue $SCOMP1_DESC645; + } + } else { + continue $SCOMP1_DESC645; + } + } else { + continue $SCOMP1_DESC645; + } + } + + + } while(false); + return ((ISet)($setwriter0.done())); + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/analysis/grammars/Dependency.rsc|(852,121,<21,0>,<22,65>) + public ISet analysis_grammars_Dependency_symbolDependencies$593b66cc107be4d0(IConstructor d_0){ + + + final ISetWriter $setwriter15 = (ISetWriter)$RVF.setWriter(); + ; + $SCOMP16_GEN956: + for(IValue $elem17_for : ((IMap)(((IMap)($aadt_get_field(((IConstructor)d_0), "modules")))))){ + IString $elem17 = (IString) $elem17_for; + IString m_1 = ((IString)($elem17)); + $setwriter_splice($setwriter15,$me.symbolDependencies(((IConstructor)(((IConstructor)($aadt_get_field(((IConstructor)($amap_subscript(((IMap)(((IMap)($aadt_get_field(((IConstructor)d_0), "modules"))))),((IString)m_1)))), "grammar"))))))); + + } + + return ((ISet)($setwriter15.done())); + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/analysis/grammars/Dependency.rsc|(975,47,<24,0>,<24,47>) + public IConstructor analysis_grammars_Dependency_delabel$b2d06636a5fe2e59(IConstructor $0){ + + + if($has_type_and_arity($0, M_Type.Symbol_label_str_Symbol, 2)){ + IValue $arg0_19 = (IValue)($aadt_subscript_int(((IConstructor)$0),0)); + if($isComparable($arg0_19.getType(), $T2)){ + IValue $arg1_18 = (IValue)($aadt_subscript_int(((IConstructor)$0),1)); + if($isComparable($arg1_18.getType(), M_ParseTree.ADT_Symbol)){ + IConstructor t_0 = null; + return ((IConstructor)($arg1_18)); + + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/analysis/grammars/Dependency.rsc|(1023,45,<25,0>,<25,45>) + public IConstructor analysis_grammars_Dependency_delabel$a3a594b13cfc4d55(IConstructor x_0){ + + + return ((IConstructor)x_0); + + } + + + public static void main(String[] args) { + throw new RuntimeException("No function `main` found in Rascal module `analysis::grammars::Dependency`"); + } +} \ No newline at end of file diff --git a/src/rascal/analysis/grammars/$Dependency.tpl b/src/rascal/analysis/grammars/$Dependency.tpl new file mode 100644 index 00000000000..edd0dec5423 Binary files /dev/null and b/src/rascal/analysis/grammars/$Dependency.tpl differ diff --git a/src/rascal/analysis/grammars/$Dependency_$I.java b/src/rascal/analysis/grammars/$Dependency_$I.java new file mode 100644 index 00000000000..968480a25ba --- /dev/null +++ b/src/rascal/analysis/grammars/$Dependency_$I.java @@ -0,0 +1,9 @@ +package rascal.analysis.grammars; +import io.usethesource.vallang.*; +import org.rascalmpl.runtime.function.*; + +@SuppressWarnings("unused") +public interface $Dependency_$I { + IValue delabel(IValue $0); + IValue symbolDependencies(IValue $0); +} \ No newline at end of file diff --git a/src/rascal/analysis/graphs/$Graph.constants b/src/rascal/analysis/graphs/$Graph.constants new file mode 100644 index 00000000000..dec0ea76964 Binary files /dev/null and b/src/rascal/analysis/graphs/$Graph.constants differ diff --git a/src/rascal/analysis/graphs/$Graph.java b/src/rascal/analysis/graphs/$Graph.java new file mode 100644 index 00000000000..3571d7a6678 --- /dev/null +++ b/src/rascal/analysis/graphs/$Graph.java @@ -0,0 +1,773 @@ +package rascal.analysis.graphs; +import java.io.PrintWriter; +import java.io.StringWriter; +import java.io.InputStreamReader; +import java.io.PrintWriter; +import java.util.*; +import java.util.regex.Matcher; +import io.usethesource.vallang.*; +import io.usethesource.vallang.type.*; +import org.rascalmpl.runtime.*; +import org.rascalmpl.runtime.RascalExecutionContext; +import org.rascalmpl.runtime.function.*; +import org.rascalmpl.runtime.traverse.*; +import org.rascalmpl.runtime.utils.*; +import org.rascalmpl.exceptions.RuntimeExceptionFactory; +import org.rascalmpl.exceptions.Throw; +import org.rascalmpl.runtime.RascalExecutionContext; +import org.rascalmpl.interpreter.control_exceptions.Filtered; +import org.rascalmpl.types.NonTerminalType; +import org.rascalmpl.types.RascalTypeFactory; +import org.rascalmpl.util.ExpiringFunctionResultCache; +import org.rascalmpl.values.RascalValueFactory; +import org.rascalmpl.values.ValueFactoryFactory; +import org.rascalmpl.values.parsetrees.ITree; +import org.rascalmpl.values.parsetrees.TreeAdapter; + + + +@SuppressWarnings({"unused","unchecked","deprecation"}) +public class $Graph + extends + org.rascalmpl.runtime.$RascalModule + implements + rascal.analysis.graphs.$Graph_$I { + + private final $Graph_$I $me; + private final IList $constants; + + + public final rascal.$Set M_Set; + public final rascal.util.$Math M_util_Math; + public final rascal.$Relation M_Relation; + public final rascal.$List M_List; + + + final org.rascalmpl.library.Prelude $Prelude; // TODO: asBaseClassName will generate name collisions if there are more of the same name in different packages + + + public final io.usethesource.vallang.type.Type $T1; /*avalue()*/ + public final io.usethesource.vallang.type.Type $T8; /*aparameter("T",avalue(),closed=false,alabel="h")*/ + public final io.usethesource.vallang.type.Type $T15; /*aparameter("T",avalue(),closed=true,alabel="from")*/ + public final io.usethesource.vallang.type.Type $T10; /*aparameter("T",avalue(),closed=true)*/ + public final io.usethesource.vallang.type.Type $T3; /*aparameter("T",avalue(),closed=false,alabel="to")*/ + public final io.usethesource.vallang.type.Type $T2; /*aparameter("T",avalue(),closed=false,alabel="from")*/ + public final io.usethesource.vallang.type.Type $T4; /*aparameter("T",avalue(),closed=false)*/ + public final io.usethesource.vallang.type.Type $T16; /*aparameter("T",avalue(),closed=true,alabel="to")*/ + public final io.usethesource.vallang.type.Type $T9; /*alist(aparameter("T",avalue(),closed=true))*/ + public final io.usethesource.vallang.type.Type ADT_RuntimeException; /*aadt("RuntimeException",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type $T7; /*alist(aparameter("T",avalue(),closed=false,alabel="h"))*/ + public final io.usethesource.vallang.type.Type $T12; /*aset(aparameter("T",avalue(),closed=true))*/ + public final io.usethesource.vallang.type.Type $T11; /*aset(aset(aparameter("T",avalue(),closed=true)))*/ + public final io.usethesource.vallang.type.Type $T6; /*aset(aparameter("T",avalue(),closed=false))*/ + public final io.usethesource.vallang.type.Type $T5; /*alist(aparameter("T",avalue(),closed=false))*/ + public final io.usethesource.vallang.type.Type $T13; /*atuple(atypeList([aset(aset(aparameter("T",avalue(),closed=true))),alist(aparameter("T",avalue(),closed=true))]))*/ + public final io.usethesource.vallang.type.Type $T0; /*arel(atypeList([aparameter("T",avalue(),closed=false,alabel="from"),aparameter("T",avalue(),closed=false,alabel="to")]))*/ + public final io.usethesource.vallang.type.Type $T14; /*arel(atypeList([aparameter("T",avalue(),closed=true,alabel="from"),aparameter("T",avalue(),closed=true,alabel="to")]))*/ + + public $Graph(RascalExecutionContext rex){ + this(rex, null); + } + + public $Graph(RascalExecutionContext rex, Object extended){ + super(rex); + this.$me = extended == null ? this : ($Graph_$I)extended; + ModuleStore mstore = rex.getModuleStore(); + mstore.put(rascal.analysis.graphs.$Graph.class, this); + + mstore.importModule(rascal.$Set.class, rex, rascal.$Set::new); + mstore.importModule(rascal.util.$Math.class, rex, rascal.util.$Math::new); + mstore.importModule(rascal.$Relation.class, rex, rascal.$Relation::new); + mstore.importModule(rascal.$List.class, rex, rascal.$List::new); + + M_Set = mstore.getModule(rascal.$Set.class); + M_util_Math = mstore.getModule(rascal.util.$Math.class); + M_Relation = mstore.getModule(rascal.$Relation.class); + M_List = mstore.getModule(rascal.$List.class); + + + + $TS.importStore(M_Set.$TS); + $TS.importStore(M_util_Math.$TS); + $TS.importStore(M_Relation.$TS); + $TS.importStore(M_List.$TS); + + $Prelude = $initLibrary("org.rascalmpl.library.Prelude"); + + $constants = readBinaryConstantsFile(this.getClass(), "rascal/analysis/graphs/$Graph.constants", 5, "8654b3e6af643cffa02a4a3c7954f751"); + ADT_RuntimeException = $adt("RuntimeException"); + $T1 = $TF.valueType(); + $T8 = $TF.parameterType("T", $T1); + $T15 = $TF.parameterType("T", $T1); + $T10 = $TF.parameterType("T", $T1); + $T3 = $TF.parameterType("T", $T1); + $T2 = $TF.parameterType("T", $T1); + $T4 = $TF.parameterType("T", $T1); + $T16 = $TF.parameterType("T", $T1); + $T9 = $TF.listType($T10); + $T7 = $TF.listType($T8); + $T12 = $TF.setType($T10); + $T11 = $TF.setType($T12); + $T6 = $TF.setType($T4); + $T5 = $TF.listType($T4); + $T13 = $TF.tupleType($T11, $T9); + $T0 = $TF.setType($TF.tupleType($T2, $T3)); + $T14 = $TF.setType($TF.tupleType($T15, $T16)); + + + + } + public ISet domain(IValue $P0){ // Generated by Resolver + return (ISet) M_Relation.domain($P0); + } + public IList shortestPathPair(IValue $P0, IValue $P1, IValue $P2){ // Generated by Resolver + IList $result = null; + Type $P0Type = $P0.getType(); + Type $P1Type = $P1.getType(); + Type $P2Type = $P2.getType(); + if($isSubtypeOf($P0Type,$T0) && $isSubtypeOf($P1Type,$T4) && $isSubtypeOf($P2Type,$T4)){ + $result = (IList)analysis_graphs_Graph_shortestPathPair$773e672f8cbf76b5((ISet) $P0, (IValue) $P1, (IValue) $P2); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0, $P1, $P2)); + } + public ISet invert(IValue $P0){ // Generated by Resolver + return (ISet) M_Relation.invert($P0); + } + public ISet range(IValue $P0){ // Generated by Resolver + return (ISet) M_Relation.range($P0); + } + public ISet carrierX(IValue $P0, IValue $P1){ // Generated by Resolver + return (ISet) M_Relation.carrierX($P0, $P1); + } + public IValue head(IValue $P0){ // Generated by Resolver + return (IValue) M_List.head($P0); + } + public IInteger size(IValue $P0){ // Generated by Resolver + IInteger $result = null; + Type $P0Type = $P0.getType(); + if($isSubtypeOf($P0Type,$T5)){ + $result = (IInteger)M_List.List_size$ba7443328d8b4a27((IList) $P0); + if($result != null) return $result; + } + if($isSubtypeOf($P0Type,$T6)){ + $result = (IInteger)M_Set.Set_size$215788d71e8b2455((ISet) $P0); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0)); + } + public ISet reachX(IValue $P0, IValue $P1, IValue $P2){ // Generated by Resolver + ISet $result = null; + Type $P0Type = $P0.getType(); + Type $P1Type = $P1.getType(); + Type $P2Type = $P2.getType(); + if($isSubtypeOf($P0Type,$T0) && $isSubtypeOf($P1Type,$T6) && $isSubtypeOf($P2Type,$T6)){ + $result = (ISet)analysis_graphs_Graph_reachX$1d2fac1a27bb9545((ISet) $P0, (ISet) $P1, (ISet) $P2); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0, $P1, $P2)); + } + public ISet predecessors(IValue $P0, IValue $P1){ // Generated by Resolver + ISet $result = null; + Type $P0Type = $P0.getType(); + Type $P1Type = $P1.getType(); + if($isSubtypeOf($P0Type,$T0) && $isSubtypeOf($P1Type,$T4)){ + $result = (ISet)analysis_graphs_Graph_predecessors$218db70da35e15a7((ISet) $P0, (IValue) $P1); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0, $P1)); + } + public ISet bottom(IValue $P0){ // Generated by Resolver + ISet $result = null; + Type $P0Type = $P0.getType(); + if($isSubtypeOf($P0Type,$T0)){ + $result = (ISet)analysis_graphs_Graph_bottom$2d93ffaddb042d90((ISet) $P0); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0)); + } + public ISet successors(IValue $P0, IValue $P1){ // Generated by Resolver + ISet $result = null; + Type $P0Type = $P0.getType(); + Type $P1Type = $P1.getType(); + if($isSubtypeOf($P0Type,$T0) && $isSubtypeOf($P1Type,$T4)){ + $result = (ISet)analysis_graphs_Graph_successors$737364d2ad3c3d1b((ISet) $P0, (IValue) $P1); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0, $P1)); + } + public ISet transitiveReduction(IValue $P0){ // Generated by Resolver + ISet $result = null; + Type $P0Type = $P0.getType(); + if($isSubtypeOf($P0Type,$T0)){ + $result = (ISet)analysis_graphs_Graph_transitiveReduction$ae8616f407126c75((ISet) $P0); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0)); + } + public IList order(IValue $P0){ // Generated by Resolver + IList $result = null; + Type $P0Type = $P0.getType(); + if($isSubtypeOf($P0Type,$T0)){ + $result = (IList)analysis_graphs_Graph_order$1da7c6022c76d7e9((ISet) $P0); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0)); + } + public IList tail(IValue $P0){ // Generated by Resolver + return (IList) M_List.tail($P0); + } + public ITuple headTail(IValue $P0){ // Generated by Resolver + return (ITuple) M_List.headTail($P0); + } + public ISet transitiveEdges(IValue $P0){ // Generated by Resolver + ISet $result = null; + Type $P0Type = $P0.getType(); + if($isSubtypeOf($P0Type,$T0)){ + $result = (ISet)analysis_graphs_Graph_transitiveEdges$914789a647e77787((ISet) $P0); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0)); + } + public IValue min(IValue $P0){ // Generated by Resolver + IValue $result = null; + Type $P0Type = $P0.getType(); + if($isSubtypeOf($P0Type,$T7)){ + $result = (IValue)M_List.List_min$86af046c90057650((IList) $P0); + if($result != null) return $result; + } + if($isSubtypeOf($P0Type,$T5)){ + $result = (IValue)M_List.List_min$acb3d58fffd8b2f1((IList) $P0); + if($result != null) return $result; + } + if($isSubtypeOf($P0Type,$T6)){ + $result = (IValue)M_Set.Set_min$68b6ebc4d32e8c20((ISet) $P0); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0)); + } + public INumber min(IValue $P0, IValue $P1){ // Generated by Resolver + return (INumber) M_util_Math.min($P0, $P1); + } + public ISet reach(IValue $P0, IValue $P1){ // Generated by Resolver + ISet $result = null; + Type $P0Type = $P0.getType(); + Type $P1Type = $P1.getType(); + if($isSubtypeOf($P0Type,$T0) && $isSubtypeOf($P1Type,$T6)){ + $result = (ISet)analysis_graphs_Graph_reach$af84e8609ef825bc((ISet) $P0, (ISet) $P1); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0, $P1)); + } + public void analysis_graphs_Graph_stronglyConnectedComponentsAndTopSort$2c9fe920981183dc_strongConnect(IValue $P0, ValueRef components_6, ValueRef g_0, ValueRef index_1, ValueRef indexOf_3, ValueRef low_2, ValueRef onStack_4, ValueRef stack_5, ValueRef topsort_7){ // Generated by Resolver + Type $P0Type = $P0.getType(); + if($isSubtypeOf($P0Type,$T4)){ + try { analysis_graphs_Graph_strongConnect$47ad88cfc57012df((IValue) $P0, components_6, g_0, index_1, indexOf_3, low_2, onStack_4, stack_5, topsort_7); return; } catch (FailReturnFromVoidException e){}; + + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0)); + } + public ISet top(IValue $P0){ // Generated by Resolver + ISet $result = null; + Type $P0Type = $P0.getType(); + if($isSubtypeOf($P0Type,$T0)){ + $result = (ISet)analysis_graphs_Graph_top$970d064db780368e((ISet) $P0); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0)); + } + public ITuple stronglyConnectedComponentsAndTopSort(IValue $P0){ // Generated by Resolver + ITuple $result = null; + Type $P0Type = $P0.getType(); + if($isSubtypeOf($P0Type,$T0)){ + $result = (ITuple)analysis_graphs_Graph_stronglyConnectedComponentsAndTopSort$2c9fe920981183dc((ISet) $P0); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0)); + } + public ISet carrier(IValue $P0){ // Generated by Resolver + return (ISet) M_Relation.carrier($P0); + } + public ISet carrierR(IValue $P0, IValue $P1){ // Generated by Resolver + return (ISet) M_Relation.carrierR($P0, $P1); + } + public IValue getOneFrom(IValue $P0){ // Generated by Resolver + IValue $result = null; + Type $P0Type = $P0.getType(); + if($isSubtypeOf($P0Type,$T5)){ + $result = (IValue)M_List.List_getOneFrom$4d823dc007dd1cd9((IList) $P0); + if($result != null) return $result; + } + if($isSubtypeOf($P0Type,$T6)){ + $result = (IValue)M_Set.Set_getOneFrom$385242ba381fd613((ISet) $P0); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0)); + } + public ISet stronglyConnectedComponents(IValue $P0){ // Generated by Resolver + ISet $result = null; + Type $P0Type = $P0.getType(); + if($isSubtypeOf($P0Type,$T0)){ + $result = (ISet)analysis_graphs_Graph_stronglyConnectedComponents$6c08ede7d5e65e50((ISet) $P0); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0)); + } + public ISet reachR(IValue $P0, IValue $P1, IValue $P2){ // Generated by Resolver + ISet $result = null; + Type $P0Type = $P0.getType(); + Type $P1Type = $P1.getType(); + Type $P2Type = $P2.getType(); + if($isSubtypeOf($P0Type,$T0) && $isSubtypeOf($P1Type,$T6) && $isSubtypeOf($P2Type,$T6)){ + $result = (ISet)analysis_graphs_Graph_reachR$a0f3b3c016b3a6a4((ISet) $P0, (ISet) $P1, (ISet) $P2); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0, $P1, $P2)); + } + public ISet connectedComponents(IValue $P0){ // Generated by Resolver + ISet $result = null; + Type $P0Type = $P0.getType(); + if($isSubtypeOf($P0Type,$T0)){ + $result = (ISet)analysis_graphs_Graph_connectedComponents$339febe6b612a843((ISet) $P0); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0)); + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/analysis/graphs/Graph.rsc|(996,285,<30,0>,<40,1>) + public IList analysis_graphs_Graph_order$1da7c6022c76d7e9(ISet g_0){ + + + HashMap $typeBindings = new HashMap<>(); + if($T0.match(g_0.getType(), $typeBindings)){ + ITuple $TMP0 = (ITuple)($me.stronglyConnectedComponentsAndTopSort(((ISet)g_0))); + ISet components_1 = ((ISet)($atuple_subscript_int(((ITuple)($TMP0)),0))); + IList topsort_2 = ((IList)($atuple_subscript_int(((ITuple)($TMP0)),1))); + final IList $result1 = ((IList)topsort_2); + if($T9.instantiate($typeBindings) != $TF.voidType() && $isSubtypeOf($result1.getType(),$T9)){ + return ((IList)($result1)); + + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/analysis/graphs/Graph.rsc|(1284,379,<43,0>,<53,1>) + public ISet analysis_graphs_Graph_stronglyConnectedComponents$6c08ede7d5e65e50(ISet g_0){ + + + HashMap $typeBindings = new HashMap<>(); + if($T0.match(g_0.getType(), $typeBindings)){ + ITuple $TMP2 = (ITuple)($me.stronglyConnectedComponentsAndTopSort(((ISet)g_0))); + ISet components_1 = ((ISet)($atuple_subscript_int(((ITuple)($TMP2)),0))); + IList topsort_2 = ((IList)($atuple_subscript_int(((ITuple)($TMP2)),1))); + final ISet $result3 = ((ISet)components_1); + if($T11.instantiate($typeBindings) != $TF.voidType() && $isSubtypeOf($result3.getType(),$T11)){ + return ((ISet)($result3)); + + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/analysis/graphs/Graph.rsc|(2686,1216,<73,4>,<107,5>) + public void analysis_graphs_Graph_strongConnect$47ad88cfc57012df(IValue v_0, ValueRef components_6, ValueRef g_0, ValueRef index_1, ValueRef indexOf_3, ValueRef low_2, ValueRef onStack_4, ValueRef stack_5, ValueRef topsort_7){ + + + HashMap $typeBindings = new HashMap<>(); + if($T4.match(v_0.getType(), $typeBindings)){ + if(true){ + indexOf_3.setValue(((IMap)($amap_update(v_0,index_1.getValue(), ((IMap)(indexOf_3.getValue())))))); + low_2.setValue(((IMap)($amap_update(v_0,index_1.getValue(), ((IMap)(low_2.getValue())))))); + index_1.setValue(((IInteger)($aint_add_aint(index_1.getValue(),((IInteger)$constants.get(0)/*1*/))))); + stack_5.setValue(((IList)(M_List.push(((IValue)v_0), stack_5.getValue())))); + ISet $aux_1 = ((ISet)($RVF.set(((IValue)v_0)))); + onStack_4.setValue($aset_add_aset(onStack_4.getValue(),$aux_1)); + /*muExists*/FOR0: + do { + FOR0_GEN2963: + for(IValue $elem4_for : ((ISet)($me.successors(g_0.getValue(), ((IValue)v_0))))){ + IValue $elem4 = (IValue) $elem4_for; + if($isSubtypeOf($elem4.getType(),$T10.instantiate($typeBindings))){ + IValue w_8 = ((IValue)($elem4)); + if($is_defined_value($guarded_map_subscript(indexOf_3.getValue(),((IValue)w_8)))){ + if((((IBool)($RVF.bool(onStack_4.getValue().contains(((IValue)w_8)))))).getValue()){ + low_2.setValue(((IMap)($amap_update(v_0,M_util_Math.min(((INumber)($amap_subscript(low_2.getValue(),((IValue)v_0)))), ((INumber)($amap_subscript(indexOf_3.getValue(),((IValue)w_8))))), ((IMap)(low_2.getValue())))))); + + } + + } else { + analysis_graphs_Graph_stronglyConnectedComponentsAndTopSort$2c9fe920981183dc_strongConnect(((IValue)w_8), components_6, g_0, index_1, indexOf_3, low_2, onStack_4, stack_5, topsort_7); + low_2.setValue(((IMap)($amap_update(v_0,M_util_Math.min(((INumber)($amap_subscript(low_2.getValue(),((IValue)v_0)))), ((INumber)($amap_subscript(low_2.getValue(),((IValue)w_8))))), ((IMap)(low_2.getValue())))))); + + } + } else { + continue FOR0_GEN2963; + } + } + continue FOR0; + + } while(false); + /* void: muCon([]) */if((((IBool)($equal(((IInteger)($amap_subscript(low_2.getValue(),((IValue)v_0)))), ((IInteger)($amap_subscript(indexOf_3.getValue(),((IValue)v_0)))))))).getValue()){ + ISet scc_9 = ((ISet)$constants.get(1)/*{}*/); + IValue w_10 = ((IValue)v_0); + DO4: + do{ + ITuple $TMP5 = (ITuple)(M_List.pop(stack_5.getValue())); + w_10 = ((IValue)($atuple_subscript_int(((ITuple)($TMP5)),0))); + stack_5.setValue(((IList)($atuple_subscript_int(((ITuple)($TMP5)),1)))); + ISet $aux_2 = ((ISet)($RVF.set(((IValue)w_10)))); + onStack_4.setValue(onStack_4.getValue().subtract($aux_2)); + scc_9 = ((ISet)($aset_add_aset(((ISet)scc_9),((ISet)($RVF.set(((IValue)w_10))))))); + topsort_7.setValue(((IList)($alist_add_alist(((IList)($RVF.list(((IValue)w_10)))),topsort_7.getValue())))); + + } while((((IBool)($equal(((IValue)w_10),((IValue)v_0)).not()))).getValue()); + /* void: muCon([]) */ISet $aux_3 = ((ISet)($RVF.set(((ISet)scc_9)))); + components_6.setValue($aset_add_aset(components_6.getValue(),$aux_3)); + + } + return; + + } else { + throw $failReturnFromVoidException; + } + } else { + throw $failReturnFromVoidException; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/analysis/graphs/Graph.rsc|(1665,2381,<55,0>,<116,1>) + public ITuple analysis_graphs_Graph_stronglyConnectedComponentsAndTopSort$2c9fe920981183dc(ISet $aux_g_0){ + ValueRef g_0 = new ValueRef("g_0", $aux_g_0); + + + HashMap $typeBindings = new HashMap<>(); + if($T0.match(g_0.getValue().getType(), $typeBindings)){ + if(true){ + final ValueRef index_1 = new ValueRef("index", ((IInteger)$constants.get(2)/*0*/)); + final ValueRef low_2 = new ValueRef("low", ((IMap)$constants.get(3)/*()*/)); + final ValueRef indexOf_3 = new ValueRef("indexOf", ((IMap)$constants.get(3)/*()*/)); + final ValueRef onStack_4 = new ValueRef("onStack", ((ISet)$constants.get(1)/*{}*/)); + final ValueRef stack_5 = new ValueRef("stack", ((IList)$constants.get(4)/*[]*/)); + final ValueRef components_6 = new ValueRef("components", ((ISet)$constants.get(1)/*{}*/)); + final ValueRef topsort_7 = new ValueRef("topsort", ((IList)$constants.get(4)/*[]*/)); + /*muExists*/FOR5: + do { + FOR5_GEN3916: + for(IValue $elem6_for : ((ISet)(M_Relation.carrier(g_0.getValue())))){ + IValue $elem6 = (IValue) $elem6_for; + IValue v_11 = ((IValue)($elem6)); + if($is_defined_value($guarded_map_subscript(indexOf_3.getValue(),((IValue)v_11)))){ + + } else { + analysis_graphs_Graph_stronglyConnectedComponentsAndTopSort$2c9fe920981183dc_strongConnect(((IValue)v_11), components_6, g_0, index_1, indexOf_3, low_2, onStack_4, stack_5, topsort_7); + + } + } + continue FOR5; + + } while(false); + /* void: muCon([]) */final ITuple $result7 = ((ITuple)($RVF.tuple(components_6.getValue(), topsort_7.getValue()))); + if($T13.instantiate($typeBindings) != $TF.voidType() && $isSubtypeOf($result7.getType(),$T13)){ + return ((ITuple)($result7)); + + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/analysis/graphs/Graph.rsc|(4049,340,<119,0>,<132,1>) + public ISet analysis_graphs_Graph_bottom$2d93ffaddb042d90(ISet G_0){ + + + HashMap $typeBindings = new HashMap<>(); + if($T0.match(G_0.getType(), $typeBindings)){ + final ISet $result8 = ((ISet)(((ISet)(M_Relation.range(((ISet)G_0)))).subtract(((ISet)(M_Relation.domain(((ISet)G_0))))))); + if($T12.instantiate($typeBindings) != $TF.voidType() && $isSubtypeOf($result8.getType(),$T12)){ + return ((ISet)($result8)); + + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/analysis/graphs/Graph.rsc|(4392,352,<135,0>,<149,1>) + public ISet analysis_graphs_Graph_predecessors$218db70da35e15a7(ISet G_0, IValue From_1){ + + + HashMap $typeBindings = new HashMap<>(); + if($T0.match(G_0.getType(), $typeBindings)){ + if($T4.match(From_1.getType(), $typeBindings)){ + final ISet $result9 = ((ISet)($arel_subscript1_noset(((ISet)(M_Relation.invert(((ISet)G_0)))),((IValue)From_1)))); + if($T12.instantiate($typeBindings) != $TF.voidType() && $isSubtypeOf($result9.getType(),$T12)){ + return ((ISet)($result9)); + + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/analysis/graphs/Graph.rsc|(4747,353,<152,0>,<168,1>) + public ISet analysis_graphs_Graph_reach$af84e8609ef825bc(ISet G_0, ISet Start_1){ + + + HashMap $typeBindings = new HashMap<>(); + if($T0.match(G_0.getType(), $typeBindings)){ + if($T6.match(Start_1.getType(), $typeBindings)){ + ISet R_2 = ((ISet)Start_1); + ISet $new_3 = ((ISet)R_2); + /*muExists*/WHILE7_BT: + do { + WHILE7: + while((((IBool)($equal(((ISet)$new_3),((ISet)$constants.get(1)/*{}*/)).not()))).getValue()){ + $new_3 = ((ISet)(((ISet)($arel2_subscript1_aset(((ISet)G_0),((ISet)$new_3)))).subtract(((ISet)R_2)))); + R_2 = ((ISet)($aset_add_aset(((ISet)R_2),((ISet)$new_3)))); + + } + + } while(false); + /* void: muCon([]) */final ISet $result10 = ((ISet)R_2); + if($T12.instantiate($typeBindings) != $TF.voidType() && $isSubtypeOf($result10.getType(),$T12)){ + return ((ISet)($result10)); + + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/analysis/graphs/Graph.rsc|(5103,499,<171,0>,<185,1>) + public ISet analysis_graphs_Graph_reachR$a0f3b3c016b3a6a4(ISet G_0, ISet Start_1, ISet Restr_2){ + + + HashMap $typeBindings = new HashMap<>(); + if($T0.match(G_0.getType(), $typeBindings)){ + if($T6.match(Start_1.getType(), $typeBindings)){ + if($T6.match(Restr_2.getType(), $typeBindings)){ + final ISet $result11 = ((ISet)($arel2_subscript1_aset(((ISet)(((ISet)(M_Relation.carrierR(((ISet)G_0), ((ISet)Restr_2)))).asRelation().closure())),((ISet)Start_1)))); + if($T12.instantiate($typeBindings) != $TF.voidType() && $isSubtypeOf($result11.getType(),$T12)){ + return ((ISet)($result11)); + + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/analysis/graphs/Graph.rsc|(5605,465,<188,0>,<202,1>) + public ISet analysis_graphs_Graph_reachX$1d2fac1a27bb9545(ISet G_0, ISet Start_1, ISet Excl_2){ + + + HashMap $typeBindings = new HashMap<>(); + if($T0.match(G_0.getType(), $typeBindings)){ + if($T6.match(Start_1.getType(), $typeBindings)){ + if($T6.match(Excl_2.getType(), $typeBindings)){ + final ISet $result12 = ((ISet)($arel2_subscript1_aset(((ISet)(((ISet)(M_Relation.carrierX(((ISet)G_0), ((ISet)Excl_2)))).asRelation().closure())),((ISet)Start_1)))); + if($T12.instantiate($typeBindings) != $TF.voidType() && $isSubtypeOf($result12.getType(),$T12)){ + return ((ISet)($result12)); + + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/analysis/graphs/Graph.rsc|(6073,259,<205,0>,<210,67>) + public IList analysis_graphs_Graph_shortestPathPair$773e672f8cbf76b5(ISet G_0, IValue From_1, IValue To_2){ + + + HashMap $typeBindings = new HashMap<>(); + if($T0.match(G_0.getType(), $typeBindings)){ + if($T4.match(From_1.getType(), $typeBindings)){ + if($T4.match(To_2.getType(), $typeBindings)){ + final IList $result13 = ((IList)((IList)$Prelude.shortestPathPair(G_0, From_1, To_2))); + if($T9.instantiate($typeBindings) != $TF.voidType() && $isSubtypeOf($result13.getType(),$T9)){ + return ((IList)($result13)); + + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/analysis/graphs/Graph.rsc|(6335,314,<213,0>,<226,1>) + public ISet analysis_graphs_Graph_successors$737364d2ad3c3d1b(ISet G_0, IValue From_1){ + + + HashMap $typeBindings = new HashMap<>(); + if($T0.match(G_0.getType(), $typeBindings)){ + if($T4.match(From_1.getType(), $typeBindings)){ + final ISet $result14 = ((ISet)($arel_subscript1_noset(((ISet)G_0),((IValue)From_1)))); + if($T12.instantiate($typeBindings) != $TF.voidType() && $isSubtypeOf($result14.getType(),$T12)){ + return ((ISet)($result14)); + + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/analysis/graphs/Graph.rsc|(6652,336,<229,0>,<242,1>) + public ISet analysis_graphs_Graph_top$970d064db780368e(ISet G_0){ + + + HashMap $typeBindings = new HashMap<>(); + if($T0.match(G_0.getType(), $typeBindings)){ + final ISet $result15 = ((ISet)(((ISet)(M_Relation.domain(((ISet)G_0)))).subtract(((ISet)(M_Relation.range(((ISet)G_0))))))); + if($T12.instantiate($typeBindings) != $TF.voidType() && $isSubtypeOf($result15.getType(),$T12)){ + return ((ISet)($result15)); + + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/analysis/graphs/Graph.rsc|(6991,822,<245,0>,<270,1>) + public ISet analysis_graphs_Graph_connectedComponents$339febe6b612a843(ISet G_0){ + + + HashMap $typeBindings = new HashMap<>(); + if($T0.match(G_0.getType(), $typeBindings)){ + ISet components_1 = ((ISet)$constants.get(1)/*{}*/); + ISet undirected_2 = ((ISet)($aset_add_aset(((ISet)G_0),((ISet)(M_Relation.invert(((ISet)G_0))))))); + ISet todo_3 = ((ISet)(M_Relation.domain(((ISet)undirected_2)))); + /*muExists*/WHILE8_BT: + do { + WHILE8: + while((((IBool)($aint_lessequal_aint(((IInteger)(M_Set.size(((ISet)todo_3)))),((IInteger)$constants.get(2)/*0*/)).not()))).getValue()){ + ISet component_4 = ((ISet)($me.reach(((ISet)undirected_2), ((ISet)($RVF.set(((IValue)(M_Set.getOneFrom(((ISet)todo_3)))))))))); + components_1 = ((ISet)($aset_add_aset(((ISet)components_1),((ISet)($RVF.set(((ISet)component_4))))))); + todo_3 = ((ISet)(((ISet)todo_3).subtract(((ISet)component_4)))); + + } + + } while(false); + /* void: muCon([]) */final ISet $result16 = ((ISet)components_1); + if($T11.instantiate($typeBindings) != $TF.voidType() && $isSubtypeOf($result16.getType(),$T11)){ + return ((ISet)($result16)); + + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/analysis/graphs/Graph.rsc|(7815,945,<272,0>,<291,58>) + public ISet analysis_graphs_Graph_transitiveReduction$ae8616f407126c75(ISet g_0){ + + + HashMap $typeBindings = new HashMap<>(); + if($T0.match(g_0.getType(), $typeBindings)){ + final ISet $result17 = ((ISet)(((ISet)g_0).subtract(((ISet)(((ISet)g_0).asRelation().compose(((ISet)(((ISet)g_0).asRelation().closure())).asRelation())))))); + if($T14.instantiate($typeBindings) != $TF.voidType() && $isSubtypeOf($result17.getType(),$T14)){ + return ((ISet)($result17)); + + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/analysis/graphs/Graph.rsc|(8762,146,<293,0>,<294,48>) + public ISet analysis_graphs_Graph_transitiveEdges$914789a647e77787(ISet g_0){ + + + HashMap $typeBindings = new HashMap<>(); + if($T0.match(g_0.getType(), $typeBindings)){ + final ISet $result18 = ((ISet)(((ISet)g_0).asRelation().compose(((ISet)(((ISet)g_0).asRelation().closure())).asRelation()))); + if($T14.instantiate($typeBindings) != $TF.voidType() && $isSubtypeOf($result18.getType(),$T14)){ + return ((ISet)($result18)); + + } else { + return null; + } + } else { + return null; + } + } + + + public static void main(String[] args) { + throw new RuntimeException("No function `main` found in Rascal module `analysis::graphs::Graph`"); + } +} \ No newline at end of file diff --git a/src/rascal/analysis/graphs/$Graph.tpl b/src/rascal/analysis/graphs/$Graph.tpl new file mode 100644 index 00000000000..fbe21dd229b Binary files /dev/null and b/src/rascal/analysis/graphs/$Graph.tpl differ diff --git a/src/rascal/analysis/graphs/$Graph_$I.java b/src/rascal/analysis/graphs/$Graph_$I.java new file mode 100644 index 00000000000..5398c35221d --- /dev/null +++ b/src/rascal/analysis/graphs/$Graph_$I.java @@ -0,0 +1,21 @@ +package rascal.analysis.graphs; +import io.usethesource.vallang.*; +import org.rascalmpl.runtime.function.*; + +@SuppressWarnings("unused") +public interface $Graph_$I { + IValue bottom(IValue $0); + IValue connectedComponents(IValue $0); + IValue order(IValue $0); + IValue predecessors(IValue $0, IValue $1); + IValue reach(IValue $0, IValue $1); + IValue reachR(IValue $0, IValue $1, IValue $2); + IValue reachX(IValue $0, IValue $1, IValue $2); + IValue shortestPathPair(IValue $0, IValue $1, IValue $2); + IValue stronglyConnectedComponents(IValue $0); + IValue stronglyConnectedComponentsAndTopSort(IValue $0); + IValue successors(IValue $0, IValue $1); + IValue top(IValue $0); + IValue transitiveEdges(IValue $0); + IValue transitiveReduction(IValue $0); +} \ No newline at end of file diff --git a/src/rascal/lang/rascal/format/$Escape.constants b/src/rascal/lang/rascal/format/$Escape.constants new file mode 100644 index 00000000000..94aae11ef3a Binary files /dev/null and b/src/rascal/lang/rascal/format/$Escape.constants differ diff --git a/src/rascal/lang/rascal/format/$Escape.java b/src/rascal/lang/rascal/format/$Escape.java new file mode 100644 index 00000000000..f5f7b2bc39c --- /dev/null +++ b/src/rascal/lang/rascal/format/$Escape.java @@ -0,0 +1,449 @@ +package rascal.lang.rascal.format; +import java.io.PrintWriter; +import java.io.StringWriter; +import java.io.InputStreamReader; +import java.io.PrintWriter; +import java.util.*; +import java.util.regex.Matcher; +import io.usethesource.vallang.*; +import io.usethesource.vallang.type.*; +import org.rascalmpl.runtime.*; +import org.rascalmpl.runtime.RascalExecutionContext; +import org.rascalmpl.runtime.function.*; +import org.rascalmpl.runtime.traverse.*; +import org.rascalmpl.runtime.utils.*; +import org.rascalmpl.exceptions.RuntimeExceptionFactory; +import org.rascalmpl.exceptions.Throw; +import org.rascalmpl.runtime.RascalExecutionContext; +import org.rascalmpl.interpreter.control_exceptions.Filtered; +import org.rascalmpl.types.NonTerminalType; +import org.rascalmpl.types.RascalTypeFactory; +import org.rascalmpl.util.ExpiringFunctionResultCache; +import org.rascalmpl.values.RascalValueFactory; +import org.rascalmpl.values.ValueFactoryFactory; +import org.rascalmpl.values.parsetrees.ITree; +import org.rascalmpl.values.parsetrees.TreeAdapter; + + + +@SuppressWarnings({"unused","unchecked","deprecation"}) +public class $Escape + extends + org.rascalmpl.runtime.$RascalModule + implements + rascal.lang.rascal.format.$Escape_$I { + + private final $Escape_$I $me; + private final IList $constants; + + + public final rascal.$Exception M_Exception; + public final rascal.$String M_String; + + + + public IList ascii; + public IList hex; + public final io.usethesource.vallang.type.Type $T0; /*astr()*/ + public final io.usethesource.vallang.type.Type $T1; /*aint()*/ + public final io.usethesource.vallang.type.Type ADT_Symbol; /*aadt("Symbol",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Tree; /*aadt("Tree",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Associativity; /*aadt("Associativity",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_CharRange; /*aadt("CharRange",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type $T2; /*aparameter("T",aadt("Tree",[],dataSyntax()),closed=true)*/ + public final io.usethesource.vallang.type.Type ADT_Production; /*aadt("Production",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_RuntimeException; /*aadt("RuntimeException",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Exception; /*aadt("Exception",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Attr; /*aadt("Attr",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Condition; /*aadt("Condition",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_TreeSearchResult_1; /*aadt("TreeSearchResult",[aparameter("T",aadt("Tree",[],dataSyntax()),closed=true)],dataSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Message; /*aadt("Message",[],dataSyntax())*/ + + public $Escape(RascalExecutionContext rex){ + this(rex, null); + } + + public $Escape(RascalExecutionContext rex, Object extended){ + super(rex); + this.$me = extended == null ? this : ($Escape_$I)extended; + ModuleStore mstore = rex.getModuleStore(); + mstore.put(rascal.lang.rascal.format.$Escape.class, this); + + mstore.importModule(rascal.$Exception.class, rex, rascal.$Exception::new); + mstore.importModule(rascal.$String.class, rex, rascal.$String::new); + + M_Exception = mstore.getModule(rascal.$Exception.class); + M_String = mstore.getModule(rascal.$String.class); + + + + $TS.importStore(M_Exception.$TS); + $TS.importStore(M_String.$TS); + + $constants = readBinaryConstantsFile(this.getClass(), "rascal/lang/rascal/format/$Escape.constants", 30, "e47cdd6650bade5a3fc5118603a838be"); + ADT_Symbol = $adt("Symbol"); + ADT_Tree = $adt("Tree"); + ADT_Associativity = $adt("Associativity"); + ADT_CharRange = $adt("CharRange"); + ADT_Production = $adt("Production"); + ADT_RuntimeException = $adt("RuntimeException"); + ADT_Exception = $adt("Exception"); + ADT_Attr = $adt("Attr"); + ADT_Condition = $adt("Condition"); + ADT_Message = $adt("Message"); + $T0 = $TF.stringType(); + $T1 = $TF.integerType(); + $T2 = $TF.parameterType("T", ADT_Tree); + ADT_TreeSearchResult_1 = $parameterizedAdt("TreeSearchResult", new Type[] { $T2 }); + + ascii = ((IList)$constants.get(28)/*["\\a00","\\a01","\\a02","\\a03","\\a04","\\a05","\\a06","\\a07","\\b","\\t","\\n","\\a0B","\\a0C"," ...*/); + final IListWriter $listwriter1 = (IListWriter)$RVF.listWriter(); + + $LCOMP2_GEN5753: + for(IInteger $elem4 = ((IInteger)$constants.get(25)/*0*/); $aint_less_aint($elem4,((IInteger)$constants.get(16)/*10*/)).getValue(); $elem4 = $aint_add_aint($elem4,((IInteger)$constants.get(26)/*1*/))){ + IInteger i_0 = null; + final Template $template3 = (Template)new Template($RVF, ""); + $template3.addVal($elem4); + $listwriter1.append($template3.close()); + } + + hex = ((IList)($alist_add_alist(((IList)($listwriter1.done())),((IList)$constants.get(29)/*["A","B","C","D","E","F"]*/)))); + + + } + public IString escape(IValue $P0){ // Generated by Resolver + IString $result = null; + Type $P0Type = $P0.getType(); + if($isSubtypeOf($P0Type,$T0)){ + $result = (IString)lang_rascal_format_Escape_escape$1086776b187d3e03((IString) $P0); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0)); + } + public IString escape(IValue $P0, IValue $P1){ // Generated by Resolver + return (IString) M_String.escape($P0, $P1); + } + public IBool testHex(){ // Generated by Resolver + IBool $result = null; + $result = (IBool)lang_rascal_format_Escape_testHex$fd1b8ad4dcbc462b(); + if($result != null) return $result; + throw RuntimeExceptionFactory.callFailed($RVF.list()); + } + public IBool testQuote(){ // Generated by Resolver + IBool $result = null; + $result = (IBool)lang_rascal_format_Escape_testQuote$6d4d4c5923ccb91a(); + if($result != null) return $result; + throw RuntimeExceptionFactory.callFailed($RVF.list()); + } + public IBool testEOF(){ // Generated by Resolver + IBool $result = null; + $result = (IBool)lang_rascal_format_Escape_testEOF$b76e22e4828b55be(); + if($result != null) return $result; + throw RuntimeExceptionFactory.callFailed($RVF.list()); + } + public IString makeCharClassChar(IValue $P0){ // Generated by Resolver + IString $result = null; + Type $P0Type = $P0.getType(); + if($isSubtypeOf($P0Type,$T1)){ + $result = (IString)lang_rascal_format_Escape_makeCharClassChar$af136242216e0eb8((IInteger) $P0); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0)); + } + public IBool testA(){ // Generated by Resolver + IBool $result = null; + $result = (IBool)lang_rascal_format_Escape_testA$5e74e2513d683cc6(); + if($result != null) return $result; + throw RuntimeExceptionFactory.callFailed($RVF.list()); + } + public IBool testNl(){ // Generated by Resolver + IBool $result = null; + $result = (IBool)lang_rascal_format_Escape_testNl$c702cf32d456a861(); + if($result != null) return $result; + throw RuntimeExceptionFactory.callFailed($RVF.list()); + } + public IString makeStringChar(IValue $P0){ // Generated by Resolver + IString $result = null; + Type $P0Type = $P0.getType(); + if($isSubtypeOf($P0Type,$T1)){ + $result = (IString)lang_rascal_format_Escape_makeStringChar$2d8526200f5c166a((IInteger) $P0); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0)); + } + public IString ciquote(IValue $P0){ // Generated by Resolver + IString $result = null; + Type $P0Type = $P0.getType(); + if($isSubtypeOf($P0Type,$T0)){ + $result = (IString)lang_rascal_format_Escape_ciquote$233f8471794b1ec0((IString) $P0); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0)); + } + public IString quote(IValue $P0){ // Generated by Resolver + IString $result = null; + Type $P0Type = $P0.getType(); + if($isSubtypeOf($P0Type,$T0)){ + $result = (IString)lang_rascal_format_Escape_quote$c06370ee310cb7a7((IString) $P0); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0)); + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/lang/rascal/format/Escape.rsc|(5281,437,<151,0>,<162,1>) + public IString lang_rascal_format_Escape_makeCharClassChar$af136242216e0eb8(IInteger ch_0){ + + + final IInteger $switchVal0 = ((IInteger)ch_0); + boolean noCaseMatched_$switchVal0 = true; + SWITCH0: switch(Fingerprint.getFingerprint($switchVal0)){ + + case -1907019488: + if(noCaseMatched_$switchVal0){ + noCaseMatched_$switchVal0 = false; + if($isSubtypeOf($switchVal0.getType(),$T1)){ + /*muExists*/CASE_1907019488_3: + do { + if(((IInteger)$constants.get(0)/*93*/).equals($switchVal0)){ + return ((IString)$constants.get(1)/*"\]"*/); + + } + + } while(false); + + } + + } + + + case -918232909: + if(noCaseMatched_$switchVal0){ + noCaseMatched_$switchVal0 = false; + if($isSubtypeOf($switchVal0.getType(),$T1)){ + /*muExists*/CASE_918232909_0: + do { + if(((IInteger)$constants.get(2)/*32*/).equals($switchVal0)){ + return ((IString)$constants.get(3)/*"\ "*/); + + } + + } while(false); + + } + + } + + + case -591751282: + if(noCaseMatched_$switchVal0){ + noCaseMatched_$switchVal0 = false; + if($isSubtypeOf($switchVal0.getType(),$T1)){ + /*muExists*/CASE_591751282_1: + do { + if(((IInteger)$constants.get(4)/*45*/).equals($switchVal0)){ + return ((IString)$constants.get(5)/*"\-"*/); + + } + + } while(false); + + } + + } + + + case 1173916482: + if(noCaseMatched_$switchVal0){ + noCaseMatched_$switchVal0 = false; + if($isSubtypeOf($switchVal0.getType(),$T1)){ + /*muExists*/CASE_1173916482_4: + do { + if(((IInteger)$constants.get(6)/*95*/).equals($switchVal0)){ + return ((IString)$constants.get(7)/*"_"*/); + + } + + } while(false); + + } + + } + + + case -1254175367: + if(noCaseMatched_$switchVal0){ + noCaseMatched_$switchVal0 = false; + if($isSubtypeOf($switchVal0.getType(),$T1)){ + /*muExists*/CASE_1254175367_2: + do { + if(((IInteger)$constants.get(8)/*91*/).equals($switchVal0)){ + return ((IString)$constants.get(9)/*"\["*/); + + } + + } while(false); + + } + + } + + + default: return ((IString)($me.makeStringChar(((IInteger)ch_0)))); + } + + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/lang/rascal/format/Escape.rsc|(5797,595,<166,0>,<185,1>) + public IString lang_rascal_format_Escape_makeStringChar$2d8526200f5c166a(IInteger ch_0){ + + + if((((IBool)($aint_less_aint(((IInteger)ch_0),((IInteger)$constants.get(10)/*128*/))))).getValue()){ + return ((IString)($alist_subscript_int(((IList)ascii),((IInteger)ch_0).intValue()))); + + } else { + if((((IBool)($aint_less_aint(((IInteger)ch_0),((IInteger)$constants.get(10)/*128*/)).not()))).getValue()){ + if((((IBool)($aint_lessequal_aint(((IInteger)ch_0),((IInteger)$constants.get(11)/*4095*/))))).getValue()){ + IInteger d1_1 = ((IInteger)(((IInteger)ch_0).remainder(((IInteger)$constants.get(12)/*8*/)))); + IInteger r1_2 = ((IInteger)($aint_divide_aint(((IInteger)ch_0),((IInteger)$constants.get(12)/*8*/)))); + IInteger d2_3 = ((IInteger)(((IInteger)r1_2).remainder(((IInteger)$constants.get(12)/*8*/)))); + IInteger r2_4 = ((IInteger)($aint_divide_aint(((IInteger)r1_2),((IInteger)$constants.get(12)/*8*/)))); + IInteger d3_5 = ((IInteger)(((IInteger)r2_4).remainder(((IInteger)$constants.get(12)/*8*/)))); + IInteger r3_6 = ((IInteger)($aint_divide_aint(((IInteger)r2_4),((IInteger)$constants.get(12)/*8*/)))); + IInteger d4_7 = ((IInteger)r3_6); + final Template $template5 = (Template)new Template($RVF, "\\u"); + $template5.beginIndent(" "); + $template5.addVal(d4_7); + $template5.endIndent(" "); + ;$template5.addVal(d3_5); + ;$template5.addVal(d2_3); + ;$template5.addVal(d1_1); + return ((IString)($template5.close())); + + } + + } + + }IInteger d1_8 = ((IInteger)(((IInteger)ch_0).remainder(((IInteger)$constants.get(13)/*16*/)))); + IInteger r1_9 = ((IInteger)($aint_divide_aint(((IInteger)ch_0),((IInteger)$constants.get(13)/*16*/)))); + IInteger d2_10 = ((IInteger)(((IInteger)r1_9).remainder(((IInteger)$constants.get(13)/*16*/)))); + IInteger r2_11 = ((IInteger)($aint_divide_aint(((IInteger)r1_9),((IInteger)$constants.get(13)/*16*/)))); + IInteger d3_12 = ((IInteger)(((IInteger)r2_11).remainder(((IInteger)$constants.get(13)/*16*/)))); + IInteger r3_13 = ((IInteger)($aint_divide_aint(((IInteger)r2_11),((IInteger)$constants.get(13)/*16*/)))); + IInteger d4_14 = ((IInteger)(((IInteger)r3_13).remainder(((IInteger)$constants.get(13)/*16*/)))); + IInteger r4_15 = ((IInteger)($aint_divide_aint(((IInteger)r3_13),((IInteger)$constants.get(13)/*16*/)))); + IInteger d5_16 = ((IInteger)(((IInteger)r4_15).remainder(((IInteger)$constants.get(13)/*16*/)))); + IInteger r5_17 = ((IInteger)($aint_divide_aint(((IInteger)r4_15),((IInteger)$constants.get(13)/*16*/)))); + IInteger d6_18 = ((IInteger)r5_17); + final Template $template6 = (Template)new Template($RVF, "\\U"); + $template6.beginIndent(" "); + $template6.addStr(((IString)($alist_subscript_int(((IList)hex),((IInteger)d6_18).intValue()))).getValue()); + $template6.endIndent(" "); + ;$template6.addStr(((IString)($alist_subscript_int(((IList)hex),((IInteger)d5_16).intValue()))).getValue()); + ;$template6.addStr(((IString)($alist_subscript_int(((IList)hex),((IInteger)d4_14).intValue()))).getValue()); + ;$template6.addStr(((IString)($alist_subscript_int(((IList)hex),((IInteger)d3_12).intValue()))).getValue()); + ;$template6.addStr(((IString)($alist_subscript_int(((IList)hex),((IInteger)d2_10).intValue()))).getValue()); + ;$template6.addStr(((IString)($alist_subscript_int(((IList)hex),((IInteger)d1_8).intValue()))).getValue()); + return ((IString)($template6.close())); + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/lang/rascal/format/Escape.rsc|(6394,47,<187,0>,<187,47>) + public IBool lang_rascal_format_Escape_testA$5e74e2513d683cc6(){ + + + return ((IBool)($equal(((IString)($me.makeStringChar(((IInteger)$constants.get(14)/*97*/)))), ((IString)$constants.get(15)/*"a"*/)))); + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/lang/rascal/format/Escape.rsc|(6442,50,<188,0>,<188,50>) + public IBool lang_rascal_format_Escape_testNl$c702cf32d456a861(){ + + + return ((IBool)($equal(((IString)($me.makeStringChar(((IInteger)$constants.get(16)/*10*/)))), ((IString)$constants.get(17)/*"\n"*/)))); + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/lang/rascal/format/Escape.rsc|(6493,54,<189,0>,<189,54>) + public IBool lang_rascal_format_Escape_testQuote$6d4d4c5923ccb91a(){ + + + return ((IBool)($equal(((IString)($me.makeStringChar(((IInteger)$constants.get(18)/*34*/)))), ((IString)$constants.get(19)/*"\""*/)))); + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/lang/rascal/format/Escape.rsc|(6548,55,<190,0>,<190,55>) + public IBool lang_rascal_format_Escape_testEOF$b76e22e4828b55be(){ + + + return ((IBool)($equal(((IString)($me.makeStringChar(((IInteger)$constants.get(20)/*255*/)))), ((IString)$constants.get(21)/*"\u0377"*/)))); + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/lang/rascal/format/Escape.rsc|(6604,62,<191,0>,<191,62>) + public IBool lang_rascal_format_Escape_testHex$fd1b8ad4dcbc462b(){ + + + return ((IBool)($equal(((IString)($me.makeStringChar(((IInteger)$constants.get(22)/*11259375*/)))), ((IString)$constants.get(23)/*"\UABCDEF"*/)))); + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/lang/rascal/format/Escape.rsc|(6668,215,<193,0>,<197,1>) + public IString lang_rascal_format_Escape_escape$1086776b187d3e03(IString s_0){ + + + if((((IBool)($equal(((IString)s_0), ((IString)$constants.get(24)/*""*/))))).getValue()){ + return ((IString)s_0); + + } + IString $reducer8 = (IString)(((IString)$constants.get(24)/*""*/)); + final IInteger $lst2 = ((IInteger)(M_String.size(((IString)s_0)))); + final boolean $dir3 = ((IInteger)$constants.get(25)/*0*/).less($lst2).getValue(); + + $REDUCER7_GEN6862: + for(IInteger $elem9 = ((IInteger)$constants.get(25)/*0*/); $dir3 ? $aint_less_aint($elem9,$lst2).getValue() + : $aint_lessequal_aint($elem9,$lst2).not().getValue(); $elem9 = $aint_add_aint($elem9,$dir3 ? ((IInteger)$constants.get(26)/*1*/) : ((IInteger)$constants.get(27)/*-1*/))){ + IInteger i_2 = ((IInteger)($elem9)); + $reducer8 = ((IString)($astr_add_astr(((IString)($reducer8)),((IString)($me.makeStringChar(((IInteger)(M_String.charAt(((IString)s_0), ((IInteger)i_2)))))))))); + } + + return ((IString)($reducer8)); + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/lang/rascal/format/Escape.rsc|(6885,176,<199,0>,<203,1>) + public IString lang_rascal_format_Escape_quote$c06370ee310cb7a7(IString s_0){ + + + final Template $template10 = (Template)new Template($RVF, "\""); + $template10.beginIndent(" "); + $template10.addStr(((IString)($me.escape(((IString)s_0)))).getValue()); + $template10.endIndent(" "); + $template10.addStr("\""); + return ((IString)($template10.close())); + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/lang/rascal/format/Escape.rsc|(7063,178,<205,0>,<209,1>) + public IString lang_rascal_format_Escape_ciquote$233f8471794b1ec0(IString s_0){ + + + final Template $template11 = (Template)new Template($RVF, "\'"); + $template11.beginIndent(" "); + $template11.addStr(((IString)($me.escape(((IString)s_0)))).getValue()); + $template11.endIndent(" "); + $template11.addStr("\'"); + return ((IString)($template11.close())); + + } + + + public static void main(String[] args) { + throw new RuntimeException("No function `main` found in Rascal module `lang::rascal::format::Escape`"); + } +} \ No newline at end of file diff --git a/src/rascal/lang/rascal/format/$Escape.tpl b/src/rascal/lang/rascal/format/$Escape.tpl new file mode 100644 index 00000000000..699a17c71ac Binary files /dev/null and b/src/rascal/lang/rascal/format/$Escape.tpl differ diff --git a/src/rascal/lang/rascal/format/$Escape_$I.java b/src/rascal/lang/rascal/format/$Escape_$I.java new file mode 100644 index 00000000000..bafac33de96 --- /dev/null +++ b/src/rascal/lang/rascal/format/$Escape_$I.java @@ -0,0 +1,17 @@ +package rascal.lang.rascal.format; +import io.usethesource.vallang.*; +import org.rascalmpl.runtime.function.*; + +@SuppressWarnings("unused") +public interface $Escape_$I { + IValue ciquote(IValue $0); + IValue escape(IValue $0); + IValue makeCharClassChar(IValue $0); + IValue makeStringChar(IValue $0); + IValue quote(IValue $0); + IValue testA(); + IValue testEOF(); + IValue testHex(); + IValue testNl(); + IValue testQuote(); +} \ No newline at end of file diff --git a/src/rascal/lang/rascal/format/$Grammar.constants b/src/rascal/lang/rascal/format/$Grammar.constants new file mode 100644 index 00000000000..b25857dc015 Binary files /dev/null and b/src/rascal/lang/rascal/format/$Grammar.constants differ diff --git a/src/rascal/lang/rascal/format/$Grammar.java b/src/rascal/lang/rascal/format/$Grammar.java new file mode 100644 index 00000000000..926e9342cdc --- /dev/null +++ b/src/rascal/lang/rascal/format/$Grammar.java @@ -0,0 +1,4105 @@ +package rascal.lang.rascal.format; +import java.io.PrintWriter; +import java.io.StringWriter; +import java.io.InputStreamReader; +import java.io.PrintWriter; +import java.util.*; +import java.util.regex.Matcher; +import io.usethesource.vallang.*; +import io.usethesource.vallang.type.*; +import org.rascalmpl.runtime.*; +import org.rascalmpl.runtime.RascalExecutionContext; +import org.rascalmpl.runtime.function.*; +import org.rascalmpl.runtime.traverse.*; +import org.rascalmpl.runtime.utils.*; +import org.rascalmpl.exceptions.RuntimeExceptionFactory; +import org.rascalmpl.exceptions.Throw; +import org.rascalmpl.runtime.RascalExecutionContext; +import org.rascalmpl.interpreter.control_exceptions.Filtered; +import org.rascalmpl.types.NonTerminalType; +import org.rascalmpl.types.RascalTypeFactory; +import org.rascalmpl.util.ExpiringFunctionResultCache; +import org.rascalmpl.values.RascalValueFactory; +import org.rascalmpl.values.ValueFactoryFactory; +import org.rascalmpl.values.parsetrees.ITree; +import org.rascalmpl.values.parsetrees.TreeAdapter; + + + +@SuppressWarnings({"unused","unchecked","deprecation"}) +public class $Grammar + extends + org.rascalmpl.runtime.$RascalModule + implements + rascal.lang.rascal.format.$Grammar_$I { + + private final $Grammar_$I $me; + private final IList $constants; + final java.util.Map $kwpDefaults_lang_rascal_format_Grammar_alt2r$755f83a423fa71e2; + + + public final rascal.$Set M_Set; + public final rascal.lang.rascal.grammar.definition.$Characters M_lang_rascal_grammar_definition_Characters; + public final rascal.analysis.graphs.$Graph M_analysis_graphs_Graph; + public final rascal.$Exception M_Exception; + public final rascal.lang.rascal.format.$Escape M_lang_rascal_format_Escape; + public final rascal.analysis.grammars.$Dependency M_analysis_grammars_Dependency; + public final rascal.$ValueIO M_ValueIO; + public final rascal.$Type M_Type; + public final rascal.$Relation M_Relation; + public final rascal.$List M_List; + public final rascal.$IO M_IO; + public final rascal.lang.rascal.grammar.definition.$Literals M_lang_rascal_grammar_definition_Literals; + public final rascal.$Grammar M_Grammar; + public final rascal.$Message M_Message; + public final rascal.$String M_String; + public final rascal.$ParseTree M_ParseTree; + + + + public ISet rascalKeywords; + public final io.usethesource.vallang.type.Type $T2; /*avalue()*/ + public final io.usethesource.vallang.type.Type $T8; /*aparameter("T2",avalue(),closed=false)*/ + public final io.usethesource.vallang.type.Type $T12; /*aparameter("T4",avalue(),closed=false)*/ + public final io.usethesource.vallang.type.Type $T10; /*aparameter("T3",avalue(),closed=false)*/ + public final io.usethesource.vallang.type.Type $T3; /*aparameter("T",avalue(),closed=false)*/ + public final io.usethesource.vallang.type.Type $T31; /*aint()*/ + public final io.usethesource.vallang.type.Type $T20; /*aparameter("T",avalue(),closed=false,alabel="b")*/ + public final io.usethesource.vallang.type.Type $T27; /*avoid()*/ + public final io.usethesource.vallang.type.Type $T6; /*aparameter("T0",avalue(),closed=false)*/ + public final io.usethesource.vallang.type.Type $T16; /*aloc()*/ + public final io.usethesource.vallang.type.Type $T7; /*aparameter("T1",avalue(),closed=false)*/ + public final io.usethesource.vallang.type.Type $T0; /*astr()*/ + public final io.usethesource.vallang.type.Type $T19; /*aparameter("T",avalue(),closed=false,alabel="a")*/ + public final io.usethesource.vallang.type.Type ADT_ProtocolChars; /*aadt("ProtocolChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_ProtocolChars; /*aadt("ProtocolChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Replacement; /*aadt("Replacement",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Replacement; /*aadt("Replacement",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Visibility; /*aadt("Visibility",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Visibility; /*aadt("Visibility",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_PostProtocolChars; /*aadt("PostProtocolChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_PostProtocolChars; /*aadt("PostProtocolChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Attr; /*aadt("Attr",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Expression; /*aadt("Expression",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Expression; /*aadt("Expression",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Mapping_Expression; /*aadt("Mapping",[aadt("Expression",[],contextFreeSyntax())],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Mapping_Expression; /*aadt("Mapping",[aadt("Expression",[],contextFreeSyntax())],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Strategy; /*aadt("Strategy",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Strategy; /*aadt("Strategy",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Tree; /*aadt("Tree",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type $T21; /*aparameter("T",aadt("Tree",[],dataSyntax()),closed=true)*/ + public final io.usethesource.vallang.type.Type ADT_KeywordArguments_1; /*aadt("KeywordArguments",[aparameter("T",aadt("Tree",[],dataSyntax()),closed=true)],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_KeywordArguments_1; /*aadt("KeywordArguments",[aparameter("T",aadt("Tree",[],dataSyntax()),closed=true)],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_MidStringChars; /*aadt("MidStringChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_MidStringChars; /*aadt("MidStringChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_TagString; /*aadt("TagString",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_TagString; /*aadt("TagString",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Name; /*aadt("Name",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Name; /*aadt("Name",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_NonterminalLabel; /*aadt("NonterminalLabel",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_NonterminalLabel; /*aadt("NonterminalLabel",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_TypeArg; /*aadt("TypeArg",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_TypeArg; /*aadt("TypeArg",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_IOCapability; /*aadt("IOCapability",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Range; /*aadt("Range",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Range; /*aadt("Range",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Pattern; /*aadt("Pattern",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Pattern; /*aadt("Pattern",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Mapping_Pattern; /*aadt("Mapping",[aadt("Pattern",[],contextFreeSyntax())],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Mapping_Pattern; /*aadt("Mapping",[aadt("Pattern",[],contextFreeSyntax())],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_FunctionType; /*aadt("FunctionType",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_FunctionType; /*aadt("FunctionType",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_LocationChangeType; /*aadt("LocationChangeType",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Variable; /*aadt("Variable",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Variable; /*aadt("Variable",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Concrete; /*aadt("Concrete",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Concrete; /*aadt("Concrete",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Item; /*aadt("Item",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_RationalLiteral; /*aadt("RationalLiteral",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_RationalLiteral; /*aadt("RationalLiteral",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_RegExpLiteral; /*aadt("RegExpLiteral",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_RegExpLiteral; /*aadt("RegExpLiteral",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Declarator; /*aadt("Declarator",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Declarator; /*aadt("Declarator",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_GrammarModule; /*aadt("GrammarModule",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_IntegerLiteral; /*aadt("IntegerLiteral",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_IntegerLiteral; /*aadt("IntegerLiteral",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type $T22; /*aparameter("T",aadt("Tree",[],dataSyntax()),closed=false)*/ + public final io.usethesource.vallang.type.Type ADT_Prod; /*aadt("Prod",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Prod; /*aadt("Prod",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_ModuleParameters; /*aadt("ModuleParameters",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_ModuleParameters; /*aadt("ModuleParameters",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Output; /*aadt("Output",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Output; /*aadt("Output",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_SyntaxDefinition; /*aadt("SyntaxDefinition",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_SyntaxDefinition; /*aadt("SyntaxDefinition",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_ImportedModule; /*aadt("ImportedModule",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_ImportedModule; /*aadt("ImportedModule",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Case; /*aadt("Case",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Case; /*aadt("Case",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_LocalVariableDeclaration; /*aadt("LocalVariableDeclaration",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_LocalVariableDeclaration; /*aadt("LocalVariableDeclaration",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_BooleanLiteral; /*aadt("BooleanLiteral",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_BooleanLiteral; /*aadt("BooleanLiteral",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_LAYOUT; /*aadt("LAYOUT",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_LAYOUT; /*aadt("LAYOUT",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Target; /*aadt("Target",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Target; /*aadt("Target",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_DatePart; /*aadt("DatePart",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_DatePart; /*aadt("DatePart",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_KeywordArguments_Expression; /*aadt("KeywordArguments",[aadt("Expression",[],contextFreeSyntax())],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_KeywordArguments_Expression; /*aadt("KeywordArguments",[aadt("Expression",[],contextFreeSyntax())],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_TimePartNoTZ; /*aadt("TimePartNoTZ",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_TimePartNoTZ; /*aadt("TimePartNoTZ",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type $T11; /*arel(atypeList([aparameter("T0",avalue(),closed=false),aparameter("T1",avalue(),closed=false),aparameter("T2",avalue(),closed=false),aparameter("T3",avalue(),closed=false),aparameter("T4",avalue(),closed=false)]))*/ + public final io.usethesource.vallang.type.Type ADT_KeywordFormals; /*aadt("KeywordFormals",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_KeywordFormals; /*aadt("KeywordFormals",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_DataTarget; /*aadt("DataTarget",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_DataTarget; /*aadt("DataTarget",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Renaming; /*aadt("Renaming",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Renaming; /*aadt("Renaming",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Catch; /*aadt("Catch",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Catch; /*aadt("Catch",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Production; /*aadt("Production",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_OptionalExpression; /*aadt("OptionalExpression",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_OptionalExpression; /*aadt("OptionalExpression",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_GrammarDefinition; /*aadt("GrammarDefinition",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_CharRange; /*aadt("CharRange",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type $T13; /*alist(aadt("CharRange",[],dataSyntax()))*/ + public final io.usethesource.vallang.type.Type ADT_KeywordArgument_1; /*aadt("KeywordArgument",[aparameter("T",aadt("Tree",[],dataSyntax()),closed=true)],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_KeywordArgument_1; /*aadt("KeywordArgument",[aparameter("T",aadt("Tree",[],dataSyntax()),closed=true)],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_PostStringChars; /*aadt("PostStringChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_PostStringChars; /*aadt("PostStringChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Field; /*aadt("Field",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Field; /*aadt("Field",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type $T18; /*abool()*/ + public final io.usethesource.vallang.type.Type $T17; /*afunc(abool(),[aparameter("T",avalue(),closed=false,alabel="a"),aparameter("T",avalue(),closed=false,alabel="b")],[])*/ + public final io.usethesource.vallang.type.Type ADT_LocationLiteral; /*aadt("LocationLiteral",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_LocationLiteral; /*aadt("LocationLiteral",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Tag; /*aadt("Tag",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Tag; /*aadt("Tag",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Type; /*aadt("Type",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Type; /*aadt("Type",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_TimeZonePart; /*aadt("TimeZonePart",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_TimeZonePart; /*aadt("TimeZonePart",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_HexIntegerLiteral; /*aadt("HexIntegerLiteral",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_HexIntegerLiteral; /*aadt("HexIntegerLiteral",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_ShellCommand; /*aadt("ShellCommand",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_ShellCommand; /*aadt("ShellCommand",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_FunctionBody; /*aadt("FunctionBody",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_FunctionBody; /*aadt("FunctionBody",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Declaration; /*aadt("Declaration",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Declaration; /*aadt("Declaration",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Symbol; /*aadt("Symbol",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Nonterminal; /*aadt("Nonterminal",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Nonterminal; /*aadt("Nonterminal",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Message; /*aadt("Message",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_PreStringChars; /*aadt("PreStringChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_PreStringChars; /*aadt("PreStringChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type $T4; /*alist(aparameter("T",avalue(),closed=false))*/ + public final io.usethesource.vallang.type.Type ADT_StringLiteral; /*aadt("StringLiteral",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_StringLiteral; /*aadt("StringLiteral",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type $T14; /*arel(atypeList([aparameter("T0",avalue(),closed=false),aparameter("T1",avalue(),closed=false)]))*/ + public final io.usethesource.vallang.type.Type ADT_Mapping_1; /*aadt("Mapping",[aparameter("T",aadt("Tree",[],dataSyntax()),closed=true)],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Mapping_1; /*aadt("Mapping",[aparameter("T",aadt("Tree",[],dataSyntax()),closed=true)],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_TreeSearchResult_1; /*aadt("TreeSearchResult",[aparameter("T",aadt("Tree",[],dataSyntax()),closed=true)],dataSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_RegExp; /*aadt("RegExp",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_RegExp; /*aadt("RegExp",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Bound; /*aadt("Bound",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Bound; /*aadt("Bound",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_KeywordArguments_Pattern; /*aadt("KeywordArguments",[aadt("Pattern",[],contextFreeSyntax())],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_KeywordArguments_Pattern; /*aadt("KeywordArguments",[aadt("Pattern",[],contextFreeSyntax())],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_PathPart; /*aadt("PathPart",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_PathPart; /*aadt("PathPart",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Class; /*aadt("Class",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Class; /*aadt("Class",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Signature; /*aadt("Signature",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Signature; /*aadt("Signature",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_KeywordFormal; /*aadt("KeywordFormal",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_KeywordFormal; /*aadt("KeywordFormal",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Associativity; /*aadt("Associativity",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Tags; /*aadt("Tags",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Tags; /*aadt("Tags",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_ConcreteHole; /*aadt("ConcreteHole",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_ConcreteHole; /*aadt("ConcreteHole",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_ModuleActuals; /*aadt("ModuleActuals",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_ModuleActuals; /*aadt("ModuleActuals",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Condition; /*aadt("Condition",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_URLChars; /*aadt("URLChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_URLChars; /*aadt("URLChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Renamings; /*aadt("Renamings",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Renamings; /*aadt("Renamings",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type $T23; /*aset(aadt("Production",[],dataSyntax()))*/ + public final io.usethesource.vallang.type.Type ADT_FunctionDeclaration; /*aadt("FunctionDeclaration",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_FunctionDeclaration; /*aadt("FunctionDeclaration",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_TypeVar; /*aadt("TypeVar",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_TypeVar; /*aadt("TypeVar",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_LocationType; /*aadt("LocationType",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_JustDate; /*aadt("JustDate",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_JustDate; /*aadt("JustDate",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Start; /*aadt("Start",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Start; /*aadt("Start",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Body; /*aadt("Body",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Body; /*aadt("Body",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_PrePathChars; /*aadt("PrePathChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_PrePathChars; /*aadt("PrePathChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_StringConstant; /*aadt("StringConstant",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_StringConstant; /*aadt("StringConstant",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_OptionalComma; /*aadt("OptionalComma",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_OptionalComma; /*aadt("OptionalComma",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Header; /*aadt("Header",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Header; /*aadt("Header",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Statement; /*aadt("Statement",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Statement; /*aadt("Statement",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_StringCharacter; /*aadt("StringCharacter",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_StringCharacter; /*aadt("StringCharacter",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Variant; /*aadt("Variant",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Variant; /*aadt("Variant",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_ConcretePart; /*aadt("ConcretePart",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_ConcretePart; /*aadt("ConcretePart",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Literal; /*aadt("Literal",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Literal; /*aadt("Literal",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Exception; /*aadt("Exception",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Assignment; /*aadt("Assignment",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Assignment; /*aadt("Assignment",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type $T29; /*aset(aadt("Symbol",[],dataSyntax()))*/ + public final io.usethesource.vallang.type.Type ADT_Module; /*aadt("Module",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Module; /*aadt("Module",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_PatternWithAction; /*aadt("PatternWithAction",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_PatternWithAction; /*aadt("PatternWithAction",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Toplevel; /*aadt("Toplevel",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Toplevel; /*aadt("Toplevel",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Sym; /*aadt("Sym",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Sym; /*aadt("Sym",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_MidPathChars; /*aadt("MidPathChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_MidPathChars; /*aadt("MidPathChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type $T15; /*alist(aadt("Symbol",[],dataSyntax()))*/ + public final io.usethesource.vallang.type.Type ADT_Import; /*aadt("Import",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Import; /*aadt("Import",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Comprehension; /*aadt("Comprehension",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Comprehension; /*aadt("Comprehension",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type $T25; /*aset(aadt("Attr",[],dataSyntax()))*/ + public final io.usethesource.vallang.type.Type ADT_FunctionModifiers; /*aadt("FunctionModifiers",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_FunctionModifiers; /*aadt("FunctionModifiers",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_QualifiedName; /*aadt("QualifiedName",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_QualifiedName; /*aadt("QualifiedName",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Formals; /*aadt("Formals",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Formals; /*aadt("Formals",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_StringMiddle; /*aadt("StringMiddle",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_StringMiddle; /*aadt("StringMiddle",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Char; /*aadt("Char",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Char; /*aadt("Char",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type $T9; /*arel(atypeList([aparameter("T0",avalue(),closed=false),aparameter("T1",avalue(),closed=false),aparameter("T2",avalue(),closed=false),aparameter("T3",avalue(),closed=false)]))*/ + public final io.usethesource.vallang.type.Type ADT_CaseInsensitiveStringConstant; /*aadt("CaseInsensitiveStringConstant",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_CaseInsensitiveStringConstant; /*aadt("CaseInsensitiveStringConstant",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_LAYOUTLIST; /*aadt("LAYOUTLIST",[],layoutSyntax())*/ + public final io.usethesource.vallang.type.Type $T24; /*alist(aadt("Production",[],dataSyntax()))*/ + public final io.usethesource.vallang.type.Type ADT_RealLiteral; /*aadt("RealLiteral",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_RealLiteral; /*aadt("RealLiteral",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_DateAndTime; /*aadt("DateAndTime",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_DateAndTime; /*aadt("DateAndTime",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_StringTail; /*aadt("StringTail",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_StringTail; /*aadt("StringTail",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Backslash; /*aadt("Backslash",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Backslash; /*aadt("Backslash",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_MidProtocolChars; /*aadt("MidProtocolChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_MidProtocolChars; /*aadt("MidProtocolChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_RascalKeywords; /*aadt("RascalKeywords",[],keywordSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Parameters; /*aadt("Parameters",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Parameters; /*aadt("Parameters",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_PathTail; /*aadt("PathTail",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_PathTail; /*aadt("PathTail",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type $T1; /*aset(aparameter("T",avalue(),closed=false))*/ + public final io.usethesource.vallang.type.Type ADT_StringTemplate; /*aadt("StringTemplate",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_StringTemplate; /*aadt("StringTemplate",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_OctalIntegerLiteral; /*aadt("OctalIntegerLiteral",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_OctalIntegerLiteral; /*aadt("OctalIntegerLiteral",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_ProtocolPart; /*aadt("ProtocolPart",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_ProtocolPart; /*aadt("ProtocolPart",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_NamedBackslash; /*aadt("NamedBackslash",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_NamedBackslash; /*aadt("NamedBackslash",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_PreProtocolChars; /*aadt("PreProtocolChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_PreProtocolChars; /*aadt("PreProtocolChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Label; /*aadt("Label",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Label; /*aadt("Label",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Kind; /*aadt("Kind",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Kind; /*aadt("Kind",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type $T28; /*anode([])*/ + public final io.usethesource.vallang.type.Type ADT_RegExpModifier; /*aadt("RegExpModifier",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_RegExpModifier; /*aadt("RegExpModifier",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_DateTimeLiteral; /*aadt("DateTimeLiteral",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_DateTimeLiteral; /*aadt("DateTimeLiteral",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_RuntimeException; /*aadt("RuntimeException",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_NamedRegExp; /*aadt("NamedRegExp",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_NamedRegExp; /*aadt("NamedRegExp",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Assoc; /*aadt("Assoc",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Assoc; /*aadt("Assoc",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Grammar; /*aadt("Grammar",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_DecimalIntegerLiteral; /*aadt("DecimalIntegerLiteral",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_DecimalIntegerLiteral; /*aadt("DecimalIntegerLiteral",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_LocationChangeEvent; /*aadt("LocationChangeEvent",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_JustTime; /*aadt("JustTime",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_JustTime; /*aadt("JustTime",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_FunctionModifier; /*aadt("FunctionModifier",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_FunctionModifier; /*aadt("FunctionModifier",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_UserType; /*aadt("UserType",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_UserType; /*aadt("UserType",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type $T5; /*arel(atypeList([aparameter("T0",avalue(),closed=false),aparameter("T1",avalue(),closed=false),aparameter("T2",avalue(),closed=false)]))*/ + public final io.usethesource.vallang.type.Type ADT_ProdModifier; /*aadt("ProdModifier",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_ProdModifier; /*aadt("ProdModifier",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_PathChars; /*aadt("PathChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_PathChars; /*aadt("PathChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_DataTypeSelector; /*aadt("DataTypeSelector",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_DataTypeSelector; /*aadt("DataTypeSelector",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type $T30; /*aset(aadt("Condition",[],dataSyntax()))*/ + public final io.usethesource.vallang.type.Type ADT_EvalCommand; /*aadt("EvalCommand",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_EvalCommand; /*aadt("EvalCommand",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_PostPathChars; /*aadt("PostPathChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_PostPathChars; /*aadt("PostPathChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_UnicodeEscape; /*aadt("UnicodeEscape",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_UnicodeEscape; /*aadt("UnicodeEscape",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Comment; /*aadt("Comment",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Comment; /*aadt("Comment",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Commands; /*aadt("Commands",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Commands; /*aadt("Commands",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Visit; /*aadt("Visit",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Visit; /*aadt("Visit",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_StructuredType; /*aadt("StructuredType",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_StructuredType; /*aadt("StructuredType",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type $T26; /*aset(avoid())*/ + public final io.usethesource.vallang.type.Type ADT_Assignable; /*aadt("Assignable",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Assignable; /*aadt("Assignable",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_CommonKeywordParameters; /*aadt("CommonKeywordParameters",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_CommonKeywordParameters; /*aadt("CommonKeywordParameters",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_ProtocolTail; /*aadt("ProtocolTail",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_ProtocolTail; /*aadt("ProtocolTail",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_BasicType; /*aadt("BasicType",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_BasicType; /*aadt("BasicType",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Command; /*aadt("Command",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Command; /*aadt("Command",[],contextFreeSyntax())*/ + + public $Grammar(RascalExecutionContext rex){ + this(rex, null); + } + + public $Grammar(RascalExecutionContext rex, Object extended){ + super(rex); + this.$me = extended == null ? this : ($Grammar_$I)extended; + ModuleStore mstore = rex.getModuleStore(); + mstore.put(rascal.lang.rascal.format.$Grammar.class, this); + + mstore.importModule(rascal.$Set.class, rex, rascal.$Set::new); + mstore.importModule(rascal.lang.rascal.grammar.definition.$Characters.class, rex, rascal.lang.rascal.grammar.definition.$Characters::new); + mstore.importModule(rascal.analysis.graphs.$Graph.class, rex, rascal.analysis.graphs.$Graph::new); + mstore.importModule(rascal.$Exception.class, rex, rascal.$Exception::new); + mstore.importModule(rascal.lang.rascal.format.$Escape.class, rex, rascal.lang.rascal.format.$Escape::new); + mstore.importModule(rascal.analysis.grammars.$Dependency.class, rex, rascal.analysis.grammars.$Dependency::new); + mstore.importModule(rascal.$ValueIO.class, rex, rascal.$ValueIO::new); + mstore.importModule(rascal.$Type.class, rex, rascal.$Type::new); + mstore.importModule(rascal.$Relation.class, rex, rascal.$Relation::new); + mstore.importModule(rascal.$List.class, rex, rascal.$List::new); + mstore.importModule(rascal.$IO.class, rex, rascal.$IO::new); + mstore.importModule(rascal.lang.rascal.grammar.definition.$Literals.class, rex, rascal.lang.rascal.grammar.definition.$Literals::new); + mstore.importModule(rascal.$Grammar.class, rex, rascal.$Grammar::new); + mstore.importModule(rascal.$Message.class, rex, rascal.$Message::new); + mstore.importModule(rascal.$String.class, rex, rascal.$String::new); + mstore.importModule(rascal.$ParseTree.class, rex, rascal.$ParseTree::new); + + M_Set = mstore.getModule(rascal.$Set.class); + M_lang_rascal_grammar_definition_Characters = mstore.getModule(rascal.lang.rascal.grammar.definition.$Characters.class); + M_analysis_graphs_Graph = mstore.getModule(rascal.analysis.graphs.$Graph.class); + M_Exception = mstore.getModule(rascal.$Exception.class); + M_lang_rascal_format_Escape = mstore.getModule(rascal.lang.rascal.format.$Escape.class); + M_analysis_grammars_Dependency = mstore.getModule(rascal.analysis.grammars.$Dependency.class); + M_ValueIO = mstore.getModule(rascal.$ValueIO.class); + M_Type = mstore.getModule(rascal.$Type.class); + M_Relation = mstore.getModule(rascal.$Relation.class); + M_List = mstore.getModule(rascal.$List.class); + M_IO = mstore.getModule(rascal.$IO.class); + M_lang_rascal_grammar_definition_Literals = mstore.getModule(rascal.lang.rascal.grammar.definition.$Literals.class); + M_Grammar = mstore.getModule(rascal.$Grammar.class); + M_Message = mstore.getModule(rascal.$Message.class); + M_String = mstore.getModule(rascal.$String.class); + M_ParseTree = mstore.getModule(rascal.$ParseTree.class); + + + + $TS.importStore(M_Set.$TS); + $TS.importStore(M_lang_rascal_grammar_definition_Characters.$TS); + $TS.importStore(M_analysis_graphs_Graph.$TS); + $TS.importStore(M_Exception.$TS); + $TS.importStore(M_lang_rascal_format_Escape.$TS); + $TS.importStore(M_analysis_grammars_Dependency.$TS); + $TS.importStore(M_ValueIO.$TS); + $TS.importStore(M_Type.$TS); + $TS.importStore(M_Relation.$TS); + $TS.importStore(M_List.$TS); + $TS.importStore(M_IO.$TS); + $TS.importStore(M_lang_rascal_grammar_definition_Literals.$TS); + $TS.importStore(M_Grammar.$TS); + $TS.importStore(M_Message.$TS); + $TS.importStore(M_String.$TS); + $TS.importStore(M_ParseTree.$TS); + + $constants = readBinaryConstantsFile(this.getClass(), "rascal/lang/rascal/format/$Grammar.constants", 57, "47ade45c3a75c5387a0d31ddfc1085d7"); + NT_ProtocolChars = $lex("ProtocolChars"); + ADT_ProtocolChars = $adt("ProtocolChars"); + NT_Replacement = $sort("Replacement"); + ADT_Replacement = $adt("Replacement"); + NT_Visibility = $sort("Visibility"); + ADT_Visibility = $adt("Visibility"); + NT_PostProtocolChars = $lex("PostProtocolChars"); + ADT_PostProtocolChars = $adt("PostProtocolChars"); + ADT_Attr = $adt("Attr"); + NT_Expression = $sort("Expression"); + ADT_Expression = $adt("Expression"); + NT_Strategy = $sort("Strategy"); + ADT_Strategy = $adt("Strategy"); + ADT_Tree = $adt("Tree"); + NT_MidStringChars = $lex("MidStringChars"); + ADT_MidStringChars = $adt("MidStringChars"); + NT_TagString = $lex("TagString"); + ADT_TagString = $adt("TagString"); + NT_Name = $lex("Name"); + ADT_Name = $adt("Name"); + NT_NonterminalLabel = $lex("NonterminalLabel"); + ADT_NonterminalLabel = $adt("NonterminalLabel"); + NT_TypeArg = $sort("TypeArg"); + ADT_TypeArg = $adt("TypeArg"); + ADT_IOCapability = $adt("IOCapability"); + NT_Range = $sort("Range"); + ADT_Range = $adt("Range"); + NT_Pattern = $sort("Pattern"); + ADT_Pattern = $adt("Pattern"); + NT_FunctionType = $sort("FunctionType"); + ADT_FunctionType = $adt("FunctionType"); + ADT_LocationChangeType = $adt("LocationChangeType"); + NT_Variable = $sort("Variable"); + ADT_Variable = $adt("Variable"); + NT_Concrete = $lex("Concrete"); + ADT_Concrete = $adt("Concrete"); + ADT_Item = $adt("Item"); + NT_RationalLiteral = $lex("RationalLiteral"); + ADT_RationalLiteral = $adt("RationalLiteral"); + NT_RegExpLiteral = $lex("RegExpLiteral"); + ADT_RegExpLiteral = $adt("RegExpLiteral"); + NT_Declarator = $sort("Declarator"); + ADT_Declarator = $adt("Declarator"); + ADT_GrammarModule = $adt("GrammarModule"); + NT_IntegerLiteral = $sort("IntegerLiteral"); + ADT_IntegerLiteral = $adt("IntegerLiteral"); + NT_Prod = $sort("Prod"); + ADT_Prod = $adt("Prod"); + NT_ModuleParameters = $sort("ModuleParameters"); + ADT_ModuleParameters = $adt("ModuleParameters"); + NT_Output = $lex("Output"); + ADT_Output = $adt("Output"); + NT_SyntaxDefinition = $sort("SyntaxDefinition"); + ADT_SyntaxDefinition = $adt("SyntaxDefinition"); + NT_ImportedModule = $sort("ImportedModule"); + ADT_ImportedModule = $adt("ImportedModule"); + NT_Case = $sort("Case"); + ADT_Case = $adt("Case"); + NT_LocalVariableDeclaration = $sort("LocalVariableDeclaration"); + ADT_LocalVariableDeclaration = $adt("LocalVariableDeclaration"); + NT_BooleanLiteral = $lex("BooleanLiteral"); + ADT_BooleanLiteral = $adt("BooleanLiteral"); + NT_LAYOUT = $lex("LAYOUT"); + ADT_LAYOUT = $adt("LAYOUT"); + NT_Target = $sort("Target"); + ADT_Target = $adt("Target"); + NT_DatePart = $lex("DatePart"); + ADT_DatePart = $adt("DatePart"); + NT_TimePartNoTZ = $lex("TimePartNoTZ"); + ADT_TimePartNoTZ = $adt("TimePartNoTZ"); + NT_KeywordFormals = $sort("KeywordFormals"); + ADT_KeywordFormals = $adt("KeywordFormals"); + NT_DataTarget = $sort("DataTarget"); + ADT_DataTarget = $adt("DataTarget"); + NT_Renaming = $sort("Renaming"); + ADT_Renaming = $adt("Renaming"); + NT_Catch = $sort("Catch"); + ADT_Catch = $adt("Catch"); + ADT_Production = $adt("Production"); + NT_OptionalExpression = $sort("OptionalExpression"); + ADT_OptionalExpression = $adt("OptionalExpression"); + ADT_GrammarDefinition = $adt("GrammarDefinition"); + ADT_CharRange = $adt("CharRange"); + NT_PostStringChars = $lex("PostStringChars"); + ADT_PostStringChars = $adt("PostStringChars"); + NT_Field = $sort("Field"); + ADT_Field = $adt("Field"); + NT_LocationLiteral = $sort("LocationLiteral"); + ADT_LocationLiteral = $adt("LocationLiteral"); + NT_Tag = $sort("Tag"); + ADT_Tag = $adt("Tag"); + NT_Type = $sort("Type"); + ADT_Type = $adt("Type"); + NT_TimeZonePart = $lex("TimeZonePart"); + ADT_TimeZonePart = $adt("TimeZonePart"); + NT_HexIntegerLiteral = $lex("HexIntegerLiteral"); + ADT_HexIntegerLiteral = $adt("HexIntegerLiteral"); + NT_ShellCommand = $sort("ShellCommand"); + ADT_ShellCommand = $adt("ShellCommand"); + NT_FunctionBody = $sort("FunctionBody"); + ADT_FunctionBody = $adt("FunctionBody"); + NT_Declaration = $sort("Declaration"); + ADT_Declaration = $adt("Declaration"); + ADT_Symbol = $adt("Symbol"); + NT_Nonterminal = $lex("Nonterminal"); + ADT_Nonterminal = $adt("Nonterminal"); + ADT_Message = $adt("Message"); + NT_PreStringChars = $lex("PreStringChars"); + ADT_PreStringChars = $adt("PreStringChars"); + NT_StringLiteral = $sort("StringLiteral"); + ADT_StringLiteral = $adt("StringLiteral"); + NT_RegExp = $lex("RegExp"); + ADT_RegExp = $adt("RegExp"); + NT_Bound = $sort("Bound"); + ADT_Bound = $adt("Bound"); + NT_PathPart = $sort("PathPart"); + ADT_PathPart = $adt("PathPart"); + NT_Class = $sort("Class"); + ADT_Class = $adt("Class"); + NT_Signature = $sort("Signature"); + ADT_Signature = $adt("Signature"); + NT_KeywordFormal = $sort("KeywordFormal"); + ADT_KeywordFormal = $adt("KeywordFormal"); + ADT_Associativity = $adt("Associativity"); + NT_Tags = $sort("Tags"); + ADT_Tags = $adt("Tags"); + NT_ConcreteHole = $sort("ConcreteHole"); + ADT_ConcreteHole = $adt("ConcreteHole"); + NT_ModuleActuals = $sort("ModuleActuals"); + ADT_ModuleActuals = $adt("ModuleActuals"); + ADT_Condition = $adt("Condition"); + NT_URLChars = $lex("URLChars"); + ADT_URLChars = $adt("URLChars"); + NT_Renamings = $sort("Renamings"); + ADT_Renamings = $adt("Renamings"); + NT_FunctionDeclaration = $sort("FunctionDeclaration"); + ADT_FunctionDeclaration = $adt("FunctionDeclaration"); + NT_TypeVar = $sort("TypeVar"); + ADT_TypeVar = $adt("TypeVar"); + ADT_LocationType = $adt("LocationType"); + NT_JustDate = $lex("JustDate"); + ADT_JustDate = $adt("JustDate"); + NT_Start = $sort("Start"); + ADT_Start = $adt("Start"); + NT_Body = $sort("Body"); + ADT_Body = $adt("Body"); + NT_PrePathChars = $lex("PrePathChars"); + ADT_PrePathChars = $adt("PrePathChars"); + NT_StringConstant = $lex("StringConstant"); + ADT_StringConstant = $adt("StringConstant"); + NT_OptionalComma = $lex("OptionalComma"); + ADT_OptionalComma = $adt("OptionalComma"); + NT_Header = $sort("Header"); + ADT_Header = $adt("Header"); + NT_Statement = $sort("Statement"); + ADT_Statement = $adt("Statement"); + NT_StringCharacter = $lex("StringCharacter"); + ADT_StringCharacter = $adt("StringCharacter"); + NT_Variant = $sort("Variant"); + ADT_Variant = $adt("Variant"); + NT_ConcretePart = $lex("ConcretePart"); + ADT_ConcretePart = $adt("ConcretePart"); + NT_Literal = $sort("Literal"); + ADT_Literal = $adt("Literal"); + ADT_Exception = $adt("Exception"); + NT_Assignment = $sort("Assignment"); + ADT_Assignment = $adt("Assignment"); + NT_Module = $sort("Module"); + ADT_Module = $adt("Module"); + NT_PatternWithAction = $sort("PatternWithAction"); + ADT_PatternWithAction = $adt("PatternWithAction"); + NT_Toplevel = $sort("Toplevel"); + ADT_Toplevel = $adt("Toplevel"); + NT_Sym = $sort("Sym"); + ADT_Sym = $adt("Sym"); + NT_MidPathChars = $lex("MidPathChars"); + ADT_MidPathChars = $adt("MidPathChars"); + NT_Import = $sort("Import"); + ADT_Import = $adt("Import"); + NT_Comprehension = $sort("Comprehension"); + ADT_Comprehension = $adt("Comprehension"); + NT_FunctionModifiers = $sort("FunctionModifiers"); + ADT_FunctionModifiers = $adt("FunctionModifiers"); + NT_QualifiedName = $sort("QualifiedName"); + ADT_QualifiedName = $adt("QualifiedName"); + NT_Formals = $sort("Formals"); + ADT_Formals = $adt("Formals"); + NT_StringMiddle = $sort("StringMiddle"); + ADT_StringMiddle = $adt("StringMiddle"); + NT_Char = $lex("Char"); + ADT_Char = $adt("Char"); + NT_CaseInsensitiveStringConstant = $lex("CaseInsensitiveStringConstant"); + ADT_CaseInsensitiveStringConstant = $adt("CaseInsensitiveStringConstant"); + ADT_LAYOUTLIST = $layouts("LAYOUTLIST"); + NT_RealLiteral = $lex("RealLiteral"); + ADT_RealLiteral = $adt("RealLiteral"); + NT_DateAndTime = $lex("DateAndTime"); + ADT_DateAndTime = $adt("DateAndTime"); + NT_StringTail = $sort("StringTail"); + ADT_StringTail = $adt("StringTail"); + NT_Backslash = $lex("Backslash"); + ADT_Backslash = $adt("Backslash"); + NT_MidProtocolChars = $lex("MidProtocolChars"); + ADT_MidProtocolChars = $adt("MidProtocolChars"); + ADT_RascalKeywords = $keywords("RascalKeywords"); + NT_Parameters = $sort("Parameters"); + ADT_Parameters = $adt("Parameters"); + NT_PathTail = $sort("PathTail"); + ADT_PathTail = $adt("PathTail"); + NT_StringTemplate = $sort("StringTemplate"); + ADT_StringTemplate = $adt("StringTemplate"); + NT_OctalIntegerLiteral = $lex("OctalIntegerLiteral"); + ADT_OctalIntegerLiteral = $adt("OctalIntegerLiteral"); + NT_ProtocolPart = $sort("ProtocolPart"); + ADT_ProtocolPart = $adt("ProtocolPart"); + NT_NamedBackslash = $lex("NamedBackslash"); + ADT_NamedBackslash = $adt("NamedBackslash"); + NT_PreProtocolChars = $lex("PreProtocolChars"); + ADT_PreProtocolChars = $adt("PreProtocolChars"); + NT_Label = $sort("Label"); + ADT_Label = $adt("Label"); + NT_Kind = $sort("Kind"); + ADT_Kind = $adt("Kind"); + NT_RegExpModifier = $lex("RegExpModifier"); + ADT_RegExpModifier = $adt("RegExpModifier"); + NT_DateTimeLiteral = $sort("DateTimeLiteral"); + ADT_DateTimeLiteral = $adt("DateTimeLiteral"); + ADT_RuntimeException = $adt("RuntimeException"); + NT_NamedRegExp = $lex("NamedRegExp"); + ADT_NamedRegExp = $adt("NamedRegExp"); + NT_Assoc = $sort("Assoc"); + ADT_Assoc = $adt("Assoc"); + ADT_Grammar = $adt("Grammar"); + NT_DecimalIntegerLiteral = $lex("DecimalIntegerLiteral"); + ADT_DecimalIntegerLiteral = $adt("DecimalIntegerLiteral"); + ADT_LocationChangeEvent = $adt("LocationChangeEvent"); + NT_JustTime = $lex("JustTime"); + ADT_JustTime = $adt("JustTime"); + NT_FunctionModifier = $sort("FunctionModifier"); + ADT_FunctionModifier = $adt("FunctionModifier"); + NT_UserType = $sort("UserType"); + ADT_UserType = $adt("UserType"); + NT_ProdModifier = $sort("ProdModifier"); + ADT_ProdModifier = $adt("ProdModifier"); + NT_PathChars = $lex("PathChars"); + ADT_PathChars = $adt("PathChars"); + NT_DataTypeSelector = $sort("DataTypeSelector"); + ADT_DataTypeSelector = $adt("DataTypeSelector"); + NT_EvalCommand = $sort("EvalCommand"); + ADT_EvalCommand = $adt("EvalCommand"); + NT_PostPathChars = $lex("PostPathChars"); + ADT_PostPathChars = $adt("PostPathChars"); + NT_UnicodeEscape = $lex("UnicodeEscape"); + ADT_UnicodeEscape = $adt("UnicodeEscape"); + NT_Comment = $lex("Comment"); + ADT_Comment = $adt("Comment"); + NT_Commands = $sort("Commands"); + ADT_Commands = $adt("Commands"); + NT_Visit = $sort("Visit"); + ADT_Visit = $adt("Visit"); + NT_StructuredType = $sort("StructuredType"); + ADT_StructuredType = $adt("StructuredType"); + NT_Assignable = $sort("Assignable"); + ADT_Assignable = $adt("Assignable"); + NT_CommonKeywordParameters = $sort("CommonKeywordParameters"); + ADT_CommonKeywordParameters = $adt("CommonKeywordParameters"); + NT_ProtocolTail = $sort("ProtocolTail"); + ADT_ProtocolTail = $adt("ProtocolTail"); + NT_BasicType = $sort("BasicType"); + ADT_BasicType = $adt("BasicType"); + NT_Command = $sort("Command"); + ADT_Command = $adt("Command"); + $T2 = $TF.valueType(); + $T8 = $TF.parameterType("T2", $T2); + $T12 = $TF.parameterType("T4", $T2); + $T10 = $TF.parameterType("T3", $T2); + $T3 = $TF.parameterType("T", $T2); + $T31 = $TF.integerType(); + $T20 = $TF.parameterType("T", $T2); + $T27 = $TF.voidType(); + $T6 = $TF.parameterType("T0", $T2); + $T16 = $TF.sourceLocationType(); + $T7 = $TF.parameterType("T1", $T2); + $T0 = $TF.stringType(); + $T19 = $TF.parameterType("T", $T2); + NT_Mapping_Expression = $parameterizedSort("Mapping", new Type[] { ADT_Expression }, $RVF.list($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Expression")))); + $T21 = $TF.parameterType("T", ADT_Tree); + NT_KeywordArguments_1 = $parameterizedSort("KeywordArguments", new Type[] { $T21 }, $RVF.list($RVF.constructor(RascalValueFactory.Symbol_Parameter, $RVF.string("T"), $RVF.constructor(RascalValueFactory.Symbol_Adt, $RVF.string("Tree"), $RVF.list())))); + NT_Mapping_Pattern = $parameterizedSort("Mapping", new Type[] { ADT_Pattern }, $RVF.list($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Pattern")))); + $T22 = $TF.parameterType("T", ADT_Tree); + NT_KeywordArguments_Expression = $parameterizedSort("KeywordArguments", new Type[] { ADT_Expression }, $RVF.list($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Expression")))); + $T11 = $TF.setType($TF.tupleType($T6, $T7, $T8, $T10, $T12)); + $T13 = $TF.listType(ADT_CharRange); + NT_KeywordArgument_1 = $parameterizedSort("KeywordArgument", new Type[] { $T21 }, $RVF.list($RVF.constructor(RascalValueFactory.Symbol_Parameter, $RVF.string("T"), $RVF.constructor(RascalValueFactory.Symbol_Adt, $RVF.string("Tree"), $RVF.list())))); + $T18 = $TF.boolType(); + $T17 = $TF.functionType($T18, $TF.tupleType($T19, "a", $T20, "b"), $TF.tupleEmpty()); + $T4 = $TF.listType($T3); + $T14 = $TF.setType($TF.tupleType($T6, $T7)); + NT_Mapping_1 = $parameterizedSort("Mapping", new Type[] { $T21 }, $RVF.list($RVF.constructor(RascalValueFactory.Symbol_Parameter, $RVF.string("T"), $RVF.constructor(RascalValueFactory.Symbol_Adt, $RVF.string("Tree"), $RVF.list())))); + ADT_TreeSearchResult_1 = $parameterizedAdt("TreeSearchResult", new Type[] { $T21 }); + NT_KeywordArguments_Pattern = $parameterizedSort("KeywordArguments", new Type[] { ADT_Pattern }, $RVF.list($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Pattern")))); + $T23 = $TF.setType(ADT_Production); + $T29 = $TF.setType(ADT_Symbol); + $T15 = $TF.listType(ADT_Symbol); + $T25 = $TF.setType(ADT_Attr); + $T9 = $TF.setType($TF.tupleType($T6, $T7, $T8, $T10)); + $T24 = $TF.listType(ADT_Production); + $T1 = $TF.setType($T3); + $T28 = $TF.nodeType(); + $T5 = $TF.setType($TF.tupleType($T6, $T7, $T8)); + $T30 = $TF.setType(ADT_Condition); + $T26 = $TF.setType($T27); + ADT_Mapping_Expression = $TF.abstractDataType($TS, "Mapping", new Type[] { ADT_Expression }); + ADT_KeywordArguments_1 = $TF.abstractDataType($TS, "KeywordArguments", new Type[] { $T21 }); + ADT_Mapping_Pattern = $TF.abstractDataType($TS, "Mapping", new Type[] { ADT_Pattern }); + ADT_KeywordArguments_Expression = $TF.abstractDataType($TS, "KeywordArguments", new Type[] { ADT_Expression }); + ADT_KeywordArgument_1 = $TF.abstractDataType($TS, "KeywordArgument", new Type[] { $T21 }); + ADT_Mapping_1 = $TF.abstractDataType($TS, "Mapping", new Type[] { $T21 }); + ADT_KeywordArguments_Pattern = $TF.abstractDataType($TS, "KeywordArguments", new Type[] { ADT_Pattern }); + + rascalKeywords = ((ISet)$constants.get(56)/*{"loc","continue","throws","int","test","map","if","all","default","node","mod","set","start","false ...*/); + + $kwpDefaults_lang_rascal_format_Grammar_alt2r$755f83a423fa71e2 = Util.kwpMap("sep", ((IString)$constants.get(16)/*"="*/)); + + } + public IBool isTypeVar(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isTypeVar($P0); + } + public IList addLabels(IValue $P0, IValue $P1){ // Generated by Resolver + return (IList) M_Type.addLabels($P0, $P1); + } + public IBool CC(){ // Generated by Resolver + IBool $result = null; + $result = (IBool)lang_rascal_format_Grammar_CC$e54e4692db276314(); + if($result != null) return $result; + throw RuntimeExceptionFactory.callFailed($RVF.list()); + } + public IBool sameType(IValue $P0, IValue $P1){ // Generated by Resolver + return (IBool) M_ParseTree.sameType($P0, $P1); + } + public IBool isAliasType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isAliasType($P0); + } + public IValue head(IValue $P0){ // Generated by Resolver + return (IValue) M_List.head($P0); + } + public IList head(IValue $P0, IValue $P1){ // Generated by Resolver + return (IList) M_List.head($P0, $P1); + } + public IInteger size(IValue $P0){ // Generated by Resolver + IInteger $result = null; + Type $P0Type = $P0.getType(); + if($isSubtypeOf($P0Type,$T0)){ + $result = (IInteger)M_String.String_size$4611676944e933d5((IString) $P0); + if($result != null) return $result; + } + if($isSubtypeOf($P0Type,$T1)){ + $result = (IInteger)M_Set.Set_size$215788d71e8b2455((ISet) $P0); + if($result != null) return $result; + } + if($isSubtypeOf($P0Type,$T4)){ + $result = (IInteger)M_List.List_size$ba7443328d8b4a27((IList) $P0); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0)); + } + public IConstructor choice(IValue $P0, IValue $P1){ // Generated by Resolver + return (IConstructor) M_Type.choice($P0, $P1); + } + public IBool isValueType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isValueType($P0); + } + public IBool noAttrs(){ // Generated by Resolver + IBool $result = null; + $result = (IBool)lang_rascal_format_Grammar_noAttrs$5cd43d89bef1f2a4(); + if($result != null) return $result; + throw RuntimeExceptionFactory.callFailed($RVF.list()); + } + public IBool isStrType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isStrType($P0); + } + public IString escape(IValue $P0){ // Generated by Resolver + return (IString) M_lang_rascal_format_Escape.escape($P0); + } + public IString escape(IValue $P0, IValue $P1){ // Generated by Resolver + return (IString) M_String.escape($P0, $P1); + } + public ISet symbolDependencies(IValue $P0){ // Generated by Resolver + return (ISet) M_analysis_grammars_Dependency.symbolDependencies($P0); + } + public IConstructor cleanIdentifiers(IValue $P0){ // Generated by Resolver + IConstructor $result = null; + Type $P0Type = $P0.getType(); + if($isSubtypeOf($P0Type, M_Grammar.ADT_Grammar)){ + $result = (IConstructor)lang_rascal_format_Grammar_cleanIdentifiers$b3714ba292c6e08a((IConstructor) $P0); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0)); + } + public IString attr2mod(IValue $P0){ // Generated by Resolver + IString $result = null; + Type $P0Type = $P0.getType(); + if($isSubtypeOf($P0Type, M_ParseTree.ADT_Attr)){ + $result = (IString)lang_rascal_format_Grammar_attr2mod$2f0363e8223967f1((IConstructor) $P0); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0)); + } + public IBool isADTType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isADTType($P0); + } + public IBool isListType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isListType($P0); + } + public IBool isRealType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isRealType($P0); + } + public IConstructor priority(IValue $P0, IValue $P1){ // Generated by Resolver + return (IConstructor) M_ParseTree.priority($P0, $P1); + } + public IString symbol2rascal(IValue $P0){ // Generated by Resolver + IString $result = null; + Type $P0Type = $P0.getType(); + if($isSubtypeOf($P0Type, M_ParseTree.ADT_Symbol)){ + $result = (IString)lang_rascal_format_Grammar_symbol2rascal$7cd5ea92dc101f32((IConstructor) $P0); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0)); + } + public IString prod2rascal(IValue $P0){ // Generated by Resolver + IString $result = null; + Type $P0Type = $P0.getType(); + if($isSubtypeOf($P0Type, M_ParseTree.ADT_Production)){ + $result = (IString)lang_rascal_format_Grammar_prod2rascal$452015edf458efd4((IConstructor) $P0); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0)); + } + public IBool same(IValue $P0, IValue $P1){ // Generated by Resolver + IBool $result = null; + Type $P0Type = $P0.getType(); + Type $P1Type = $P1.getType(); + if($isSubtypeOf($P0Type, M_ParseTree.ADT_Production) && $isSubtypeOf($P1Type, M_ParseTree.ADT_Production)){ + $result = (IBool)lang_rascal_format_Grammar_same$2f0264ee40551335((IConstructor) $P0, (IConstructor) $P1); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0, $P1)); + } + public IValue complement(IValue $P0){ // Generated by Resolver + IValue $result = null; + Type $P0Type = $P0.getType(); + if($isSubtypeOf($P0Type, M_ParseTree.ADT_Symbol)){ + $result = (IValue)M_lang_rascal_grammar_definition_Characters.lang_rascal_grammar_definition_Characters_complement$b568586ea6930aa8((IConstructor) $P0); + if($result != null) return $result; + } + if($isSubtypeOf($P0Type,$T5)){ + $result = (IValue)M_Relation.Relation_complement$00086bfeeba07066((ISet) $P0); + if($result != null) return $result; + } + if($isSubtypeOf($P0Type,$T9)){ + $result = (IValue)M_Relation.Relation_complement$1dc10ce8d46ef909((ISet) $P0); + if($result != null) return $result; + } + if($isSubtypeOf($P0Type,$T11)){ + $result = (IValue)M_Relation.Relation_complement$56d58cd1d8429e72((ISet) $P0); + if($result != null) return $result; + } + if($isSubtypeOf($P0Type,$T13)){ + $result = (IValue)M_lang_rascal_grammar_definition_Characters.lang_rascal_grammar_definition_Characters_complement$9bb082bbab5b8dd8((IList) $P0); + if($result != null) return $result; + } + if($isSubtypeOf($P0Type,$T14)){ + $result = (IValue)M_Relation.Relation_complement$4bb4b4dc0b4215a5((ISet) $P0); + if($result != null) return $result; + } + if($isSubtypeOf($P0Type, M_ParseTree.ADT_Symbol)){ + $result = (IValue)M_lang_rascal_grammar_definition_Characters.lang_rascal_grammar_definition_Characters_complement$e4978c5ddcaf2671((IConstructor) $P0); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0)); + } + public IBool AttrsAndCons(){ // Generated by Resolver + IBool $result = null; + $result = (IBool)lang_rascal_format_Grammar_AttrsAndCons$189b7fcef1590cf4(); + if($result != null) return $result; + throw RuntimeExceptionFactory.callFailed($RVF.list()); + } + public IBool isNodeType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isNodeType($P0); + } + public IBool Prio(){ // Generated by Resolver + IBool $result = null; + $result = (IBool)lang_rascal_format_Grammar_Prio$3f3ee762d60b2b22(); + if($result != null) return $result; + throw RuntimeExceptionFactory.callFailed($RVF.list()); + } + public IString reserved(IValue $P0){ // Generated by Resolver + IString $result = null; + Type $P0Type = $P0.getType(); + if($isSubtypeOf($P0Type,$T0)){ + $result = (IString)lang_rascal_format_Grammar_reserved$ddb60b559dd45997((IString) $P0); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0)); + } + public IBool isReifiedType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isReifiedType($P0); + } + public ITuple takeOneFrom(IValue $P0){ // Generated by Resolver + ITuple $result = null; + Type $P0Type = $P0.getType(); + if($isSubtypeOf($P0Type,$T4)){ + $result = (ITuple)M_List.List_takeOneFrom$48bb3b6062ea97b1((IList) $P0); + if($result != null) return $result; + } + if($isSubtypeOf($P0Type,$T1)){ + $result = (ITuple)M_Set.Set_takeOneFrom$291ddec83a7e9a61((ISet) $P0); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0)); + } + public IString alt2r(IValue $P0, IValue $P1, java.util.Map $kwpActuals){ // Generated by Resolver + IString $result = null; + Type $P0Type = $P0.getType(); + Type $P1Type = $P1.getType(); + if($isSubtypeOf($P0Type, M_ParseTree.ADT_Symbol) && $isSubtypeOf($P1Type, M_ParseTree.ADT_Production)){ + $result = (IString)lang_rascal_format_Grammar_alt2r$755f83a423fa71e2((IConstructor) $P0, (IConstructor) $P1, $kwpActuals); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0, $P1)); + } + public IBool isRelType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isRelType($P0); + } + public IString definition2rascal(IValue $P0){ // Generated by Resolver + IString $result = null; + Type $P0Type = $P0.getType(); + if($isSubtypeOf($P0Type, M_Grammar.ADT_GrammarDefinition)){ + $result = (IString)lang_rascal_format_Grammar_definition2rascal$c2f97d7f1a79d87c((IConstructor) $P0); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0)); + } + public IConstructor intersection(IValue $P0, IValue $P1){ // Generated by Resolver + return (IConstructor) M_lang_rascal_grammar_definition_Characters.intersection($P0, $P1); + } + public IBool isConstructorType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isConstructorType($P0); + } + public IBool isListRelType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isListRelType($P0); + } + public IList addParamLabels(IValue $P0, IValue $P1){ // Generated by Resolver + return (IList) M_Type.addParamLabels($P0, $P1); + } + public IBool isMapType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isMapType($P0); + } + public IBool isBoolType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isBoolType($P0); + } + public IConstructor union(IValue $P0, IValue $P1){ // Generated by Resolver + return (IConstructor) M_lang_rascal_grammar_definition_Characters.union($P0, $P1); + } + public IString iterseps2rascal(IValue $P0, IValue $P1, IValue $P2){ // Generated by Resolver + IString $result = null; + Type $P0Type = $P0.getType(); + Type $P1Type = $P1.getType(); + Type $P2Type = $P2.getType(); + if($isSubtypeOf($P0Type, M_ParseTree.ADT_Symbol) && $isSubtypeOf($P1Type,$T15) && $isSubtypeOf($P2Type,$T0)){ + $result = (IString)lang_rascal_format_Grammar_iterseps2rascal$fe1027980573bd82((IConstructor) $P0, (IList) $P1, (IString) $P2); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0, $P1, $P2)); + } + public void println(IValue $P0){ // Generated by Resolver + M_IO.println($P0); + } + public void println(){ // Generated by Resolver + M_IO.println(); + } + public IString topProd2rascal(IValue $P0){ // Generated by Resolver + IString $result = null; + Type $P0Type = $P0.getType(); + if($isSubtypeOf($P0Type, M_ParseTree.ADT_Production)){ + $result = (IString)lang_rascal_format_Grammar_topProd2rascal$a02b35d0088dbf93((IConstructor) $P0); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0)); + } + public IBool isLocType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isLocType($P0); + } + public IString module2rascal(IValue $P0){ // Generated by Resolver + IString $result = null; + Type $P0Type = $P0.getType(); + if($isSubtypeOf($P0Type, M_Grammar.ADT_GrammarModule)){ + $result = (IString)lang_rascal_format_Grammar_module2rascal$d9c2b846cb25969f((IConstructor) $P0); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0)); + } + public IList tail(IValue $P0){ // Generated by Resolver + return (IList) M_List.tail($P0); + } + public IList tail(IValue $P0, IValue $P1){ // Generated by Resolver + return (IList) M_List.tail($P0, $P1); + } + public ITuple headTail(IValue $P0){ // Generated by Resolver + return (ITuple) M_List.headTail($P0); + } + public IConstructor treeAt(IValue $P0, IValue $P1, IValue $P2){ // Generated by Resolver + return (IConstructor) M_ParseTree.treeAt($P0, $P1, $P2); + } + public IBool isSetType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isSetType($P0); + } + public IString alt2rascal(IValue $P0){ // Generated by Resolver + IString $result = null; + Type $P0Type = $P0.getType(); + switch(Fingerprint.getFingerprint($P0)){ + + case -2132978880: + if($isSubtypeOf($P0Type, M_ParseTree.ADT_Production)){ + $result = (IString)lang_rascal_format_Grammar_alt2rascal$27f049e7b59c20ec((IConstructor) $P0); + if($result != null) return $result; + } + break; + case 101776608: + if($isSubtypeOf($P0Type, M_ParseTree.ADT_Production)){ + $result = (IString)lang_rascal_format_Grammar_alt2rascal$5a9bf4d6d6c6afd9((IConstructor) $P0); + if($result != null) return $result; + } + break; + case -1467508160: + if($isSubtypeOf($P0Type, M_ParseTree.ADT_Production)){ + $result = (IString)lang_rascal_format_Grammar_alt2rascal$ad6d80d0ee92e40c((IConstructor) $P0); + if($result != null) return $result; + } + break; + case 110389984: + if($isSubtypeOf($P0Type, M_ParseTree.ADT_Production)){ + $result = (IString)lang_rascal_format_Grammar_alt2rascal$6bd6165f23667a28((IConstructor) $P0); + if($result != null) return $result; + } + break; + } + if($isSubtypeOf($P0Type, M_ParseTree.ADT_Production)){ + $result = (IString)lang_rascal_format_Grammar_alt2rascal$39a84c47a7bfe678((IConstructor) $P0); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0)); + } + public IConstructor delabel(IValue $P0){ // Generated by Resolver + return (IConstructor) M_analysis_grammars_Dependency.delabel($P0); + } + public IBool isRatType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isRatType($P0); + } + public IString layoutname(IValue $P0){ // Generated by Resolver + IString $result = null; + Type $P0Type = $P0.getType(); + if($isSubtypeOf($P0Type, M_ParseTree.ADT_Symbol)){ + $result = (IString)lang_rascal_format_Grammar_layoutname$e0986cf68da33e28((IConstructor) $P0); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0)); + } + public IString grammar2rascal(IValue $P0){ // Generated by Resolver + IString $result = null; + Type $P0Type = $P0.getType(); + if($isSubtypeOf($P0Type, M_Grammar.ADT_Grammar)){ + $result = (IString)lang_rascal_format_Grammar_grammar2rascal$18a0bd44045f05d6((IConstructor) $P0); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0)); + } + public IString grammar2rascal(IValue $P0, IValue $P1){ // Generated by Resolver + IString $result = null; + Type $P0Type = $P0.getType(); + Type $P1Type = $P1.getType(); + if($isSubtypeOf($P0Type, M_Grammar.ADT_Grammar) && $isSubtypeOf($P1Type,$T15)){ + $result = (IString)lang_rascal_format_Grammar_grammar2rascal$c79cc807e40e464a((IConstructor) $P0, (IList) $P1); + if($result != null) return $result; + } + if($isSubtypeOf($P0Type, M_Grammar.ADT_Grammar) && $isSubtypeOf($P1Type,$T0)){ + $result = (IString)lang_rascal_format_Grammar_grammar2rascal$bdf0d923d57cb62b((IConstructor) $P0, (IString) $P1); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0, $P1)); + } + public IString params2rascal(IValue $P0){ // Generated by Resolver + IString $result = null; + Type $P0Type = $P0.getType(); + if($isSubtypeOf($P0Type,$T15)){ + $result = (IString)lang_rascal_format_Grammar_params2rascal$f4c1186947f6bb00((IList) $P0); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0)); + } + public IBool isNumType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isNumType($P0); + } + public IBool isTupleType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isTupleType($P0); + } + public IBool isBagType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isBagType($P0); + } + public ISet carrier(IValue $P0){ // Generated by Resolver + return (ISet) M_Relation.carrier($P0); + } + public IBool isVoidType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isVoidType($P0); + } + public IBool isNonTerminalType(IValue $P0){ // Generated by Resolver + return (IBool) M_ParseTree.isNonTerminalType($P0); + } + public IValue lub(IValue $P0, IValue $P1){ // Generated by Resolver + return (IValue) M_Type.lub($P0, $P1); + } + public IBool subtype(IValue $P0, IValue $P1){ // Generated by Resolver + return (IBool) M_Type.subtype($P0, $P1); + } + public IString associativity(IValue $P0){ // Generated by Resolver + IString $result = null; + Type $P0Type = $P0.getType(); + if($isSubtypeOf($P0Type, M_ParseTree.ADT_Associativity)){ + $result = (IString)lang_rascal_format_Grammar_associativity$9acd60ef49279caa((IConstructor) $P0); + if($result != null) return $result; + $result = (IString)lang_rascal_format_Grammar_associativity$271cfecb7fc70442((IConstructor) $P0); + if($result != null) return $result; + $result = (IString)lang_rascal_format_Grammar_associativity$95950f301748ef8c((IConstructor) $P0); + if($result != null) return $result; + $result = (IString)lang_rascal_format_Grammar_associativity$6c4b5afff021251a((IConstructor) $P0); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0)); + } + public IConstructor associativity(IValue $P0, IValue $P1, IValue $P2){ // Generated by Resolver + return (IConstructor) M_ParseTree.associativity($P0, $P1, $P2); + } + public void definition2disk(IValue $P0, IValue $P1){ // Generated by Resolver + Type $P0Type = $P0.getType(); + Type $P1Type = $P1.getType(); + if($isSubtypeOf($P0Type,$T16) && $isSubtypeOf($P1Type, M_Grammar.ADT_GrammarDefinition)){ + try { lang_rascal_format_Grammar_definition2disk$5062e2919e188785((ISourceLocation) $P0, (IConstructor) $P1); return; } catch (FailReturnFromVoidException e){}; + + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0, $P1)); + } + public IString cc2rascal(IValue $P0){ // Generated by Resolver + IString $result = null; + Type $P0Type = $P0.getType(); + if($isSubtypeOf($P0Type,$T13)){ + $result = (IString)lang_rascal_format_Grammar_cc2rascal$0d43214752b1b902((IList) $P0); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0)); + } + public IBool isFunctionType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isFunctionType($P0); + } + public IValue glb(IValue $P0, IValue $P1){ // Generated by Resolver + return (IValue) M_Type.glb($P0, $P1); + } + public IConstructor difference(IValue $P0, IValue $P1){ // Generated by Resolver + return (IConstructor) M_lang_rascal_grammar_definition_Characters.difference($P0, $P1); + } + public ISet range(IValue $P0){ // Generated by Resolver + return (ISet) M_Relation.range($P0); + } + public IValue sort(IValue $P0){ // Generated by Resolver + IValue $result = null; + Type $P0Type = $P0.getType(); + if($isSubtypeOf($P0Type,$T4)){ + $result = (IValue)M_List.List_sort$1fe4426c8c8039da((IList) $P0); + if($result != null) return $result; + } + if($isSubtypeOf($P0Type,$T1)){ + $result = (IValue)M_Set.Set_sort$2d7ce904b21febd4((ISet) $P0); + if($result != null) return $result; + } + if($isSubtypeOf($P0Type,$T0)){ + return $RVF.constructor(M_ParseTree.Symbol_sort_str, new IValue[]{(IString) $P0}); + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0)); + } + public IList sort(IValue $P0, IValue $P1){ // Generated by Resolver + IList $result = null; + Type $P0Type = $P0.getType(); + Type $P1Type = $P1.getType(); + if($isSubtypeOf($P0Type,$T1) && $isSubtypeOf($P1Type,$T17)){ + $result = (IList)M_Set.Set_sort$4b3ff1abd5c398df((ISet) $P0, (TypedFunctionInstance2) $P1); + if($result != null) return $result; + } + if($isSubtypeOf($P0Type,$T4) && $isSubtypeOf($P1Type,$T17)){ + $result = (IList)M_List.List_sort$a9bbc6fca4e60d0a((IList) $P0, (TypedFunctionInstance2) $P1); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0, $P1)); + } + public IBool isIntType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isIntType($P0); + } + public IBool isDateTimeType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isDateTimeType($P0); + } + public IString range2rascal(IValue $P0){ // Generated by Resolver + IString $result = null; + Type $P0Type = $P0.getType(); + if($isSubtypeOf($P0Type, M_ParseTree.ADT_CharRange)){ + $result = (IString)lang_rascal_format_Grammar_range2rascal$07747f28a4b93d11((IConstructor) $P0); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0)); + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/lang/rascal/format/Grammar.rsc|(959,211,<29,0>,<33,1>) + public void lang_rascal_format_Grammar_definition2disk$5062e2919e188785(ISourceLocation prefix_0, IConstructor def_1){ + + + try { + /*muExists*/FOR0: + do { + FOR0_GEN1031: + for(IValue $elem3_for : ((IMap)(((IMap)($aadt_get_field(((IConstructor)def_1), "modules")))))){ + IString $elem3 = (IString) $elem3_for; + IString m_2 = ((IString)($elem3)); + M_IO.writeFile(((ISourceLocation)($aloc_field_update("extension", ((IString)$constants.get(0)/*".rsc"*/), ((ISourceLocation)($aloc_add_astr(((ISourceLocation)($aloc_add_astr(((ISourceLocation)prefix_0),((IString)$constants.get(1)/*"/"*/)))),((IString)($TRAVERSE.traverse(DIRECTION.BottomUp, PROGRESS.Continuing, FIXEDPOINT.No, REBUILD.Yes, + new DescendantDescriptor(new io.usethesource.vallang.type.Type[]{$TF.stringType()}, + new io.usethesource.vallang.IConstructor[]{}, + $RVF.bool(false)), + m_2, + (IVisitFunction) (IValue $VISIT1_subject, TraversalState $traversalState) -> { + VISIT1:switch(Fingerprint.getFingerprint($VISIT1_subject)){ + + case 0: + + + default: + if($isSubtypeOf($VISIT1_subject.getType(),$T0)){ + /*muExists*/CASE_0_0: + do { + final Matcher $matcher1 = (Matcher)$regExpCompile("::", ((IString)($VISIT1_subject)).getValue()); + boolean $found2 = true; + + while($found2){ + $found2 = $matcher1.find(); + if($found2){ + $traversalState.setBegin($matcher1.start()); + $traversalState.setEnd($matcher1.end()); + IString $replacement0 = (IString)(((IString)$constants.get(1)/*"/"*/)); + if($isSubtypeOf($replacement0.getType(),$VISIT1_subject.getType())){ + $traversalState.setMatchedAndChanged(true, true); + return $replacement0; + + } else { + break VISIT1;// switch + + } + } + + } + + } while(false); + + } + + } + return $VISIT1_subject; + }))))))))), $RVF.list($me.module2rascal(((IConstructor)($amap_subscript(((IMap)(((IMap)($aadt_get_field(((IConstructor)def_1), "modules"))))),((IString)m_2)))))), Util.kwpMap()); + + } + continue FOR0; + + } while(false); + /* void: muCon([]) */return; + + } catch (ReturnFromTraversalException e) { + return ; + } + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/lang/rascal/format/Grammar.rsc|(1172,134,<35,0>,<37,1>) + public IString lang_rascal_format_Grammar_definition2rascal$c2f97d7f1a79d87c(IConstructor def_0){ + + + IString $reducer5 = (IString)(((IString)$constants.get(2)/*""*/)); + $REDUCER4_GEN1286: + for(IValue $elem7_for : ((IMap)(((IMap)($aadt_get_field(((IConstructor)def_0), "modules")))))){ + IString $elem7 = (IString) $elem7_for; + IString m_2 = ((IString)($elem7)); + final Template $template6 = (Template)new Template($RVF, "\n\n"); + $template6.beginIndent(" "); + $template6.addStr(((IString)($me.module2rascal(((IConstructor)($amap_subscript(((IMap)(((IMap)($aadt_get_field(((IConstructor)def_0), "modules"))))),((IString)m_2))))))).getValue()); + $template6.endIndent(" "); + $reducer5 = ((IString)($astr_add_astr(((IString)($reducer5)),((IString)($template6.close()))))); + + } + + return ((IString)($reducer5)); + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/lang/rascal/format/Grammar.rsc|(1308,232,<39,0>,<46,1>) + public IString lang_rascal_format_Grammar_module2rascal$d9c2b846cb25969f(IConstructor m_0){ + + + final Template $template8 = (Template)new Template($RVF, "module "); + $template8.beginIndent(" "); + $template8.addStr(((IString)(((IString)($aadt_get_field(((IConstructor)m_0), "name"))))).getValue()); + $template8.endIndent(" "); + $template8.addStr(" \n"); + /*muExists*/LAB3: + do { + LAB3_GEN1395: + for(IValue $elem9_for : ((ISet)(((ISet)($aadt_get_field(((IConstructor)m_0), "imports")))))){ + IString $elem9 = (IString) $elem9_for; + IString i_1 = null; + $template8.addStr("import "); + $template8.beginIndent(" "); + $template8.addStr(((IString)($elem9)).getValue()); + $template8.endIndent(" "); + $template8.addStr(";\n"); + + } + continue LAB3; + + } while(false); + $template8.addStr("\n"); + /*muExists*/LAB4: + do { + LAB4_GEN1455: + for(IValue $elem10_for : ((ISet)(((ISet)($aadt_get_field(((IConstructor)m_0), "extends")))))){ + IString $elem10 = (IString) $elem10_for; + IString i_2 = null; + $template8.addStr("extend "); + $template8.beginIndent(" "); + $template8.addStr(((IString)($elem10)).getValue()); + $template8.endIndent(" "); + $template8.addStr(";\n"); + + } + continue LAB4; + + } while(false); + $template8.addStr("\n"); + $template8.addStr(((IString)($me.grammar2rascal(((IConstructor)(((IConstructor)($aadt_get_field(((IConstructor)m_0), "grammar")))))))).getValue()); + return ((IString)($template8.close())); + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/lang/rascal/format/Grammar.rsc|(1542,96,<48,0>,<50,1>) + public IString lang_rascal_format_Grammar_grammar2rascal$bdf0d923d57cb62b(IConstructor g_0, IString name_1){ + + + final Template $template11 = (Template)new Template($RVF, "module "); + $template11.beginIndent(" "); + $template11.addStr(((IString)name_1).getValue()); + $template11.endIndent(" "); + $template11.addStr(" "); + $template11.beginIndent(" "); + $template11.addStr(((IString)($me.grammar2rascal(((IConstructor)g_0)))).getValue()); + $template11.endIndent(" "); + return ((IString)($template11.close())); + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/lang/rascal/format/Grammar.rsc|(1640,299,<52,0>,<60,1>) + public IString lang_rascal_format_Grammar_grammar2rascal$18a0bd44045f05d6(IConstructor g_0){ + + + g_0 = ((IConstructor)($me.cleanIdentifiers(((IConstructor)g_0)))); + ISet deps_1 = ((ISet)(M_analysis_grammars_Dependency.symbolDependencies(((IConstructor)g_0)))); + IList ordered_2 = ((IList)(M_analysis_graphs_Graph.order(((ISet)deps_1)))); + final IListWriter $listwriter12 = (IListWriter)$RVF.listWriter(); + $LCOMP13_GEN1783: + for(IValue $elem14_for : ((ISet)(((ISet)($amap_field_project((IMap)((IMap)(((IMap)($aadt_get_field(((IConstructor)g_0), "rules"))))), ((IInteger)$constants.get(3)/*0*/)))).subtract(((ISet)(M_Relation.carrier(((ISet)deps_1)))))))){ + IConstructor $elem14 = (IConstructor) $elem14_for; + IConstructor e_4 = null; + $listwriter12.append($elem14); + + } + + IList unordered_3 = ((IList)($listwriter12.done())); + return ((IString)($me.grammar2rascal(((IConstructor)g_0), ((IList)$constants.get(4)/*[]*/)))); + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/lang/rascal/format/Grammar.rsc|(1941,406,<62,0>,<70,1>) + public IConstructor lang_rascal_format_Grammar_cleanIdentifiers$b3714ba292c6e08a(IConstructor g_0){ + + + try { + IValue $visitResult = $TRAVERSE.traverse(DIRECTION.BottomUp, PROGRESS.Continuing, FIXEDPOINT.No, REBUILD.Yes, + new DescendantDescriptorAlwaysTrue($RVF.bool(false)), + g_0, + (IVisitFunction) (IValue $VISIT5_subject, TraversalState $traversalState) -> { + VISIT5:switch(Fingerprint.getFingerprint($VISIT5_subject)){ + + case 1643638592: + if($isSubtypeOf($VISIT5_subject.getType(),M_ParseTree.ADT_Symbol)){ + /*muExists*/CASE_1643638592_4: + do { + if($has_type_and_arity($VISIT5_subject, M_Type.Symbol_label_str_Symbol, 2)){ + IValue $arg0_34 = (IValue)($aadt_subscript_int(((IConstructor)($VISIT5_subject)),0)); + if($isComparable($arg0_34.getType(), $T0)){ + final Matcher $matcher35 = (Matcher)$regExpCompile("(.*)-(.*)", ((IString)($arg0_34)).getValue()); + boolean $found36 = true; + + while($found36){ + $found36 = $matcher35.find(); + if($found36){ + IString pre_5 = ((IString)($RVF.string($matcher35.group(1)))); + IString post_6 = ((IString)($RVF.string($matcher35.group(2)))); + IValue $arg1_33 = (IValue)($aadt_subscript_int(((IConstructor)($VISIT5_subject)),1)); + if($isComparable($arg1_33.getType(), M_ParseTree.ADT_Symbol)){ + ValueRef s_7 = new ValueRef(); + final Template $template32 = (Template)new Template($RVF, "\\"); + $template32.beginIndent(" "); + $template32.addStr(((IString)pre_5).getValue()); + $template32.endIndent(" "); + $template32.addStr("-"); + $template32.beginIndent(" "); + $template32.addStr(((IString)post_6).getValue()); + $template32.endIndent(" "); + IConstructor $replacement31 = (IConstructor)($RVF.constructor(M_Type.Symbol_label_str_Symbol, new IValue[]{((IString)($template32.close())), ((IConstructor)($arg1_33))})); + if($isSubtypeOf($replacement31.getType(),$VISIT5_subject.getType())){ + $traversalState.setMatchedAndChanged(true, true); + return $replacement31; + + } else { + break VISIT5;// switch + + } + } + + } + + } + + } + + } + + } while(false); + + } + + + case -109773488: + if($isSubtypeOf($VISIT5_subject.getType(),M_ParseTree.ADT_Symbol)){ + /*muExists*/CASE_109773488_3: + do { + if($has_type_and_arity($VISIT5_subject, M_ParseTree.Symbol_keywords_str, 1)){ + IValue $arg0_28 = (IValue)($aadt_subscript_int(((IConstructor)($VISIT5_subject)),0)); + if($isComparable($arg0_28.getType(), $T0)){ + final Matcher $matcher29 = (Matcher)$regExpCompile(".*-.*", ((IString)($arg0_28)).getValue()); + boolean $found30 = true; + + while($found30){ + $found30 = $matcher29.find(); + if($found30){ + IConstructor s_4 = ((IConstructor)($VISIT5_subject)); + IConstructor $replacement27 = (IConstructor)($RVF.constructor(M_ParseTree.Symbol_keywords_str, new IValue[]{((IString)(M_String.replaceAll(((IString)(((IString)($aadt_get_field(((IConstructor)s_4), "name"))))), ((IString)$constants.get(5)/*"-"*/), ((IString)$constants.get(6)/*"_"*/))))})); + if($isSubtypeOf($replacement27.getType(),$VISIT5_subject.getType())){ + $traversalState.setMatchedAndChanged(true, true); + return $replacement27; + + } else { + break VISIT5;// switch + + } + } + + } + + } + + } + + } while(false); + + } + + + case 856312: + if($isSubtypeOf($VISIT5_subject.getType(),M_ParseTree.ADT_Symbol)){ + /*muExists*/CASE_856312_2: + do { + if($has_type_and_arity($VISIT5_subject, M_ParseTree.Symbol_lex_str, 1)){ + IValue $arg0_24 = (IValue)($aadt_subscript_int(((IConstructor)($VISIT5_subject)),0)); + if($isComparable($arg0_24.getType(), $T0)){ + final Matcher $matcher25 = (Matcher)$regExpCompile(".*-.*", ((IString)($arg0_24)).getValue()); + boolean $found26 = true; + + while($found26){ + $found26 = $matcher25.find(); + if($found26){ + IConstructor s_3 = ((IConstructor)($VISIT5_subject)); + IConstructor $replacement23 = (IConstructor)($RVF.constructor(M_ParseTree.Symbol_lex_str, new IValue[]{((IString)(M_String.replaceAll(((IString)(((IString)($aadt_get_field(((IConstructor)s_3), "name"))))), ((IString)$constants.get(5)/*"-"*/), ((IString)$constants.get(6)/*"_"*/))))})); + if($isSubtypeOf($replacement23.getType(),$VISIT5_subject.getType())){ + $traversalState.setMatchedAndChanged(true, true); + return $replacement23; + + } else { + break VISIT5;// switch + + } + } + + } + + } + + } + + } while(false); + + } + + + case 28290288: + if($isSubtypeOf($VISIT5_subject.getType(),M_ParseTree.ADT_Symbol)){ + /*muExists*/CASE_28290288_0: + do { + if($has_type_and_arity($VISIT5_subject, M_ParseTree.Symbol_sort_str, 1)){ + IValue $arg0_16 = (IValue)($aadt_subscript_int(((IConstructor)($VISIT5_subject)),0)); + if($isComparable($arg0_16.getType(), $T0)){ + final Matcher $matcher17 = (Matcher)$regExpCompile(".*-.*", ((IString)($arg0_16)).getValue()); + boolean $found18 = true; + + while($found18){ + $found18 = $matcher17.find(); + if($found18){ + IConstructor s_1 = ((IConstructor)($VISIT5_subject)); + IConstructor $replacement15 = (IConstructor)($RVF.constructor(M_ParseTree.Symbol_sort_str, new IValue[]{((IString)(M_String.replaceAll(((IString)(((IString)($aadt_get_field(((IConstructor)s_1), "name"))))), ((IString)$constants.get(5)/*"-"*/), ((IString)$constants.get(6)/*"_"*/))))})); + if($isSubtypeOf($replacement15.getType(),$VISIT5_subject.getType())){ + $traversalState.setMatchedAndChanged(true, true); + return $replacement15; + + } else { + break VISIT5;// switch + + } + } + + } + + } + + } + + } while(false); + + } + + + case -333228984: + if($isSubtypeOf($VISIT5_subject.getType(),M_ParseTree.ADT_Symbol)){ + /*muExists*/CASE_333228984_1: + do { + if($has_type_and_arity($VISIT5_subject, M_ParseTree.Symbol_layouts_str, 1)){ + IValue $arg0_20 = (IValue)($aadt_subscript_int(((IConstructor)($VISIT5_subject)),0)); + if($isComparable($arg0_20.getType(), $T0)){ + final Matcher $matcher21 = (Matcher)$regExpCompile(".*-.*", ((IString)($arg0_20)).getValue()); + boolean $found22 = true; + + while($found22){ + $found22 = $matcher21.find(); + if($found22){ + IConstructor s_2 = ((IConstructor)($VISIT5_subject)); + IConstructor $replacement19 = (IConstructor)($RVF.constructor(M_ParseTree.Symbol_layouts_str, new IValue[]{((IString)(M_String.replaceAll(((IString)(((IString)($aadt_get_field(((IConstructor)s_2), "name"))))), ((IString)$constants.get(5)/*"-"*/), ((IString)$constants.get(6)/*"_"*/))))})); + if($isSubtypeOf($replacement19.getType(),$VISIT5_subject.getType())){ + $traversalState.setMatchedAndChanged(true, true); + return $replacement19; + + } else { + break VISIT5;// switch + + } + } + + } + + } + + } + + } while(false); + + } + + + + } + return $VISIT5_subject; + }); + return (IConstructor)$visitResult; + + } catch (ReturnFromTraversalException e) { + return (IConstructor) e.getValue(); + } + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/lang/rascal/format/Grammar.rsc|(2350,166,<72,0>,<76,1>) + public IString lang_rascal_format_Grammar_grammar2rascal$c79cc807e40e464a(IConstructor g_0, IList $__1){ + + + final Template $template37 = (Template)new Template($RVF, ""); + /*muExists*/LAB11: + do { + LAB11_GEN2437: + for(IValue $elem38_for : ((IMap)(((IMap)($aadt_get_field(((IConstructor)g_0), "rules")))))){ + IConstructor $elem38 = (IConstructor) $elem38_for; + IConstructor nont_1 = ((IConstructor)($elem38)); + $template37.addStr("\n"); + $template37.addStr(((IString)($me.topProd2rascal(((IConstructor)($amap_subscript(((IMap)(((IMap)($aadt_get_field(((IConstructor)g_0), "rules"))))),((IConstructor)nont_1))))))).getValue()); + $template37.addStr("\n"); + + } + continue LAB11; + + } while(false); + return ((IString)($template37.close())); + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/lang/rascal/format/Grammar.rsc|(2518,66,<78,0>,<80,1>) + public IBool lang_rascal_format_Grammar_same$2f0264ee40551335(IConstructor p_0, IConstructor q_1){ + + + return ((IBool)($equal(((IConstructor)(((IConstructor)($aadt_get_field(((IConstructor)p_0), "def"))))), ((IConstructor)(((IConstructor)($aadt_get_field(((IConstructor)q_1), "def")))))))); + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/lang/rascal/format/Grammar.rsc|(2586,655,<82,0>,<105,1>) + public IString lang_rascal_format_Grammar_topProd2rascal$a02b35d0088dbf93(IConstructor p_0){ + + + IBool $aux16 = (IBool)(((IBool)$constants.get(7)/*false*/)); + $aux16 = ((IBool)$constants.get(7)/*false*/); + /*muExists*/$EXP40: + do { + if($has_type_and_arity(p_0, M_ParseTree.Production_regular_Symbol, 1)){ + IValue $arg0_41 = (IValue)($aadt_subscript_int(((IConstructor)p_0),0)); + if($isComparable($arg0_41.getType(), $T2)){ + $aux16 = ((IBool)$constants.get(8)/*true*/); + break $EXP40; // muSucceed + } else { + $aux16 = ((IBool)$constants.get(7)/*false*/); + continue $EXP40; + } + } else { + $aux16 = ((IBool)$constants.get(7)/*false*/); + continue $EXP40; + } + } while(false); + if((((IBool)($aux16))).getValue()){ + return ((IString)$constants.get(2)/*""*/); + + } else { + if((((IBool)($equal(((IConstructor)(((IConstructor)($aadt_get_field(((IConstructor)p_0), "def"))))), ((IConstructor)$constants.get(9)/*empty()*/))))).getValue()){ + return ((IString)$constants.get(2)/*""*/); + + } else { + if((((IBool)($equal(((IConstructor)(((IConstructor)($aadt_get_field(((IConstructor)p_0), "def"))))), ((IConstructor)$constants.get(10)/*layouts("$default$")*/))))).getValue()){ + return ((IString)$constants.get(2)/*""*/); + + } + + } + }/*muExists*/IF13: + do { + if($has_type_and_arity(p_0, M_Type.Production_choice_Symbol_set_Production, 2)){ + IValue $arg0_52 = (IValue)($aadt_subscript_int(((IConstructor)p_0),0)); + if($isComparable($arg0_52.getType(), M_ParseTree.ADT_Symbol)){ + IConstructor nt_1 = ((IConstructor)($arg0_52)); + IValue $arg1_43 = (IValue)($aadt_subscript_int(((IConstructor)p_0),1)); + if($isComparable($arg1_43.getType(), $T23)){ + ISet $subject44 = (ISet)($arg1_43); + IF13_CONS_choice_SET_CONS_priority_NAMED_SET_ELM: + for(IValue $elem49_for : ((ISet)($subject44))){ + IConstructor $elem49 = (IConstructor) $elem49_for; + if($has_type_and_arity($elem49, M_ParseTree.Production_priority_Symbol_list_Production, 2)){ + IValue $arg0_51 = (IValue)($aadt_subscript_int(((IConstructor)($elem49)),0)); + if($isComparable($arg0_51.getType(), $T2)){ + IValue $arg1_50 = (IValue)($aadt_subscript_int(((IConstructor)($elem49)),1)); + if($isComparable($arg1_50.getType(), $T2)){ + IConstructor q_2 = ((IConstructor)($elem49)); + final ISet $subject46 = ((ISet)(((ISet)($subject44)).delete(((IConstructor)($elem49))))); + q_2 = ((IConstructor)($elem49)); + IF13_CONS_choice_SET_CONS_priority_MVARr: + for(IValue $elem48_for : new SubSetGenerator(((ISet)($subject46)))){ + ISet $elem48 = (ISet) $elem48_for; + ISet r_3 = ((ISet)($elem48)); + final ISet $subject47 = ((ISet)(((ISet)($subject46)).subtract(((ISet)($elem48))))); + if(((ISet)($subject47)).size() == 0){ + if((((IBool)($equal(((ISet)r_3),((ISet)$constants.get(11)/*{}*/)).not()))).getValue()){ + final Template $template42 = (Template)new Template($RVF, ""); + $template42.addStr(((IString)($me.topProd2rascal(((IConstructor)(M_Type.choice(((IConstructor)($arg0_52)), ((ISet)r_3))))))).getValue()); + $template42.addStr("\n\n"); + $template42.addStr(((IString)($me.topProd2rascal(((IConstructor)q_2)))).getValue()); + return ((IString)($template42.close())); + + } else { + continue IF13_CONS_choice_SET_CONS_priority_MVARr; + } + } else { + continue IF13_CONS_choice_SET_CONS_priority_MVARr;/*set pat3*/ + } + } + continue IF13;/*set pat4*/ + + } else { + continue IF13_CONS_choice_SET_CONS_priority_NAMED_SET_ELM; + } + } else { + continue IF13_CONS_choice_SET_CONS_priority_NAMED_SET_ELM; + } + } else { + continue IF13_CONS_choice_SET_CONS_priority_NAMED_SET_ELM; + } + } + + + } + + } + + } + + } while(false); + IString kind_4 = ((IString)$constants.get(12)/*"syntax"*/); + /*muExists*/IF16: + do { + final IConstructor $subject_val64 = ((IConstructor)(((IConstructor)($aadt_get_field(((IConstructor)p_0), "def"))))); + IF16_DESC2897: + for(IValue $elem65 : new DescendantMatchIterator($subject_val64, + new DescendantDescriptor(new io.usethesource.vallang.type.Type[]{$TF.listType(ADT_Symbol), M_Type.ADT_Exception, $TF.setType(ADT_Symbol), $TF.setType(ADT_Condition), ADT_KeywordArguments_1, M_ParseTree.ADT_Tree, M_ParseTree.ADT_TreeSearchResult_1, M_ParseTree.ADT_Condition, M_ParseTree.ADT_Production, M_ParseTree.ADT_Symbol, M_Grammar.ADT_Grammar, M_ParseTree.ADT_CharRange, M_Grammar.ADT_Item, M_Grammar.ADT_GrammarModule, $TF.listType(ADT_CharRange), M_Grammar.ADT_GrammarDefinition}, + new io.usethesource.vallang.IConstructor[]{}, + $RVF.bool(false)))){ + if($isComparable($elem65.getType(), M_ParseTree.ADT_Symbol)){ + if($has_type_and_arity($elem65, M_ParseTree.Symbol_layouts_str, 1)){ + IValue $arg0_66 = (IValue)($subscript_int(((IValue)($elem65)),0)); + if($isComparable($arg0_66.getType(), $T0)){ + IString n_5 = null; + final Template $template63 = (Template)new Template($RVF, "layout "); + $template63.beginIndent(" "); + $template63.addStr(((IString)($arg0_66)).getValue()); + $template63.endIndent(" "); + kind_4 = ((IString)($template63.close())); + continue IF16; + } else { + continue IF16_DESC2897; + } + } else { + continue IF16_DESC2897; + } + } else { + continue IF16_DESC2897; + } + } + + + } while(false); + /*muExists*/IF15: + do { + final IConstructor $subject_val60 = ((IConstructor)(((IConstructor)($aadt_get_field(((IConstructor)p_0), "def"))))); + IF15_DESC2955: + for(IValue $elem61 : new DescendantMatchIterator($subject_val60, + new DescendantDescriptor(new io.usethesource.vallang.type.Type[]{$TF.listType(ADT_Symbol), M_Type.ADT_Exception, $TF.setType(ADT_Symbol), $TF.setType(ADT_Condition), ADT_KeywordArguments_1, M_ParseTree.ADT_Tree, M_ParseTree.ADT_TreeSearchResult_1, M_ParseTree.ADT_Condition, M_ParseTree.ADT_Production, M_ParseTree.ADT_Symbol, M_Grammar.ADT_Grammar, M_ParseTree.ADT_CharRange, M_Grammar.ADT_Item, M_Grammar.ADT_GrammarModule, $TF.listType(ADT_CharRange), M_Grammar.ADT_GrammarDefinition}, + new io.usethesource.vallang.IConstructor[]{}, + $RVF.bool(false)))){ + if($isComparable($elem61.getType(), M_ParseTree.ADT_Symbol)){ + if($has_type_and_arity($elem61, M_ParseTree.Symbol_lex_str, 1)){ + IValue $arg0_62 = (IValue)($subscript_int(((IValue)($elem61)),0)); + if($isComparable($arg0_62.getType(), $T2)){ + kind_4 = ((IString)$constants.get(13)/*"lexical"*/); + continue IF15_DESC2955;/*redirected IF15 to IF15_DESC2955; */ + } else { + continue IF15_DESC2955; + } + } else { + continue IF15_DESC2955; + } + } else { + continue IF15_DESC2955; + } + } + final IConstructor $subject_val56 = ((IConstructor)(((IConstructor)($aadt_get_field(((IConstructor)p_0), "def"))))); + IF15_DESC2975: + for(IValue $elem57 : new DescendantMatchIterator($subject_val56, + new DescendantDescriptor(new io.usethesource.vallang.type.Type[]{$TF.listType(ADT_Symbol), M_Type.ADT_Exception, $TF.setType(ADT_Symbol), $TF.setType(ADT_Condition), ADT_KeywordArguments_1, M_ParseTree.ADT_Tree, M_ParseTree.ADT_TreeSearchResult_1, M_ParseTree.ADT_Condition, M_ParseTree.ADT_Production, M_ParseTree.ADT_Symbol, M_Grammar.ADT_Grammar, M_ParseTree.ADT_CharRange, M_Grammar.ADT_Item, M_Grammar.ADT_GrammarModule, $TF.listType(ADT_CharRange), M_Grammar.ADT_GrammarDefinition}, + new io.usethesource.vallang.IConstructor[]{}, + $RVF.bool(false)))){ + if($isComparable($elem57.getType(), M_ParseTree.ADT_Symbol)){ + if($has_type_and_arity($elem57, M_ParseTree.Symbol_parameterized_lex_str_list_Symbol, 2)){ + IValue $arg0_59 = (IValue)($subscript_int(((IValue)($elem57)),0)); + if($isComparable($arg0_59.getType(), $T2)){ + IValue $arg1_58 = (IValue)($subscript_int(((IValue)($elem57)),1)); + if($isComparable($arg1_58.getType(), $T2)){ + kind_4 = ((IString)$constants.get(13)/*"lexical"*/); + continue IF15_DESC2975;/*redirected IF15 to IF15_DESC2975; */ + } else { + continue IF15_DESC2975; + } + } else { + continue IF15_DESC2975; + } + } else { + continue IF15_DESC2975; + } + } else { + continue IF15_DESC2975; + } + } + + + + } while(false); + /*muExists*/IF14: + do { + final IConstructor $subject_val53 = ((IConstructor)(((IConstructor)($aadt_get_field(((IConstructor)p_0), "def"))))); + IF14_DESC3043: + for(IValue $elem54 : new DescendantMatchIterator($subject_val53, + new DescendantDescriptor(new io.usethesource.vallang.type.Type[]{$TF.listType(ADT_Symbol), M_Type.ADT_Exception, $TF.setType(ADT_Symbol), $TF.setType(ADT_Condition), ADT_KeywordArguments_1, M_ParseTree.ADT_Tree, M_ParseTree.ADT_TreeSearchResult_1, M_ParseTree.ADT_Condition, M_ParseTree.ADT_Production, M_ParseTree.ADT_Symbol, M_Grammar.ADT_Grammar, M_ParseTree.ADT_CharRange, M_Grammar.ADT_Item, M_Grammar.ADT_GrammarModule, $TF.listType(ADT_CharRange), M_Grammar.ADT_GrammarDefinition}, + new io.usethesource.vallang.IConstructor[]{}, + $RVF.bool(false)))){ + if($isComparable($elem54.getType(), M_ParseTree.ADT_Symbol)){ + if($has_type_and_arity($elem54, M_ParseTree.Symbol_keywords_str, 1)){ + IValue $arg0_55 = (IValue)($subscript_int(((IValue)($elem54)),0)); + if($isComparable($arg0_55.getType(), $T2)){ + kind_4 = ((IString)$constants.get(14)/*"keyword"*/); + continue IF14; + } else { + continue IF14_DESC3043; + } + } else { + continue IF14_DESC3043; + } + } else { + continue IF14_DESC3043; + } + } + + + } while(false); + final IConstructor $subject_val67 = ((IConstructor)(((IConstructor)($aadt_get_field(((IConstructor)p_0), "def"))))); + if($has_type_and_arity($subject_val67, M_ParseTree.Symbol_start_Symbol, 1)){ + IValue $arg0_68 = (IValue)($aadt_subscript_int(((IConstructor)($subject_val67)),0)); + if($isComparable($arg0_68.getType(), $T2)){ + kind_4 = ((IString)($astr_add_astr(((IString)$constants.get(15)/*"start "*/),((IString)kind_4)))); + + } + + } + final Template $template69 = (Template)new Template($RVF, ""); + $template69.addStr(((IString)kind_4).getValue()); + $template69.addStr(" "); + $template69.beginIndent(" "); + $template69.addStr(((IString)($me.symbol2rascal(((IConstructor)(((IConstructor)($aadt_get_field(((IConstructor)p_0), "def")))))))).getValue()); + $template69.endIndent(" "); + $template69.addStr(" =\n "); + $template69.beginIndent(" "); + $template69.addStr(((IString)($me.prod2rascal(((IConstructor)p_0)))).getValue()); + $template69.endIndent(" "); + $template69.addStr("\n ;"); + return ((IString)($template69.close())); + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/lang/rascal/format/Grammar.rsc|(3243,102,<107,0>,<111,1>) + public IString lang_rascal_format_Grammar_layoutname$e0986cf68da33e28(IConstructor s_0){ + + + if($has_type_and_arity(s_0, M_ParseTree.Symbol_layouts_str, 1)){ + IValue $arg0_70 = (IValue)($aadt_subscript_int(((IConstructor)s_0),0)); + if($isComparable($arg0_70.getType(), $T0)){ + IString name_1 = null; + return ((IString)($arg0_70)); + + } + + } + final Template $template71 = (Template)new Template($RVF, "unexpected "); + $template71.beginIndent(" "); + $template71.addVal(s_0); + $template71.endIndent(" "); + throw new Throw($template71.close()); + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/lang/rascal/format/Grammar.rsc|(3347,144,<113,0>,<113,144>) + public IString lang_rascal_format_Grammar_alt2r$755f83a423fa71e2(IConstructor _def_0, IConstructor p_0, java.util.Map $kwpActuals){ + + java.util.Map $kwpDefaults = $kwpDefaults_lang_rascal_format_Grammar_alt2r$755f83a423fa71e2; + + final Template $template72 = (Template)new Template($RVF, ""); + $template72.addStr(((IString)($me.symbol2rascal(((IConstructor)(($is(((IConstructor)(((IConstructor)($aadt_get_field(((IConstructor)p_0), "def"))))),((IString)$constants.get(17)/*"label"*/)) ? ((IConstructor)($aadt_get_field(((IConstructor)(((IConstructor)($aadt_get_field(((IConstructor)p_0), "def"))))), "symbol"))) : ((IConstructor)($aadt_get_field(((IConstructor)p_0), "def"))))))))).getValue()); + $template72.addStr(" "); + $template72.beginIndent(" "); + $template72.addStr(((IString)(((IString) ($kwpActuals.containsKey("sep") ? $kwpActuals.get("sep") : $kwpDefaults.get("sep"))))).getValue()); + $template72.endIndent(" "); + $template72.addStr(" "); + $template72.beginIndent(" "); + $template72.addStr(((IString)($me.prod2rascal(((IConstructor)p_0)))).getValue()); + $template72.endIndent(" "); + return ((IString)($template72.close())); + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/lang/rascal/format/Grammar.rsc|(3492,66,<114,0>,<114,66>) + public IString lang_rascal_format_Grammar_alt2rascal$6bd6165f23667a28(IConstructor p_0){ + + + if($has_type_and_arity(p_0, M_ParseTree.Production_prod_Symbol_list_Symbol_set_Attr, 3)){ + IValue $arg0_76 = (IValue)($aadt_subscript_int(((IConstructor)p_0),0)); + if($isComparable($arg0_76.getType(), M_ParseTree.ADT_Symbol)){ + IConstructor def_1 = ((IConstructor)($arg0_76)); + IValue $arg1_75 = (IValue)($aadt_subscript_int(((IConstructor)p_0),1)); + if($isComparable($arg1_75.getType(), $T2)){ + IValue $arg2_74 = (IValue)($aadt_subscript_int(((IConstructor)p_0),2)); + if($isComparable($arg2_74.getType(), $T2)){ + return ((IString)($me.alt2r(((IConstructor)($arg0_76)), ((IConstructor)p_0), Util.kwpMap()))); + + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/lang/rascal/format/Grammar.rsc|(3559,80,<115,0>,<115,80>) + public IString lang_rascal_format_Grammar_alt2rascal$ad6d80d0ee92e40c(IConstructor p_0){ + + + if($has_type_and_arity(p_0, M_ParseTree.Production_priority_Symbol_list_Production, 2)){ + IValue $arg0_78 = (IValue)($aadt_subscript_int(((IConstructor)p_0),0)); + if($isComparable($arg0_78.getType(), M_ParseTree.ADT_Symbol)){ + IConstructor def_1 = ((IConstructor)($arg0_78)); + IValue $arg1_77 = (IValue)($aadt_subscript_int(((IConstructor)p_0),1)); + if($isComparable($arg1_77.getType(), $T2)){ + return ((IString)($me.alt2r(((IConstructor)($arg0_78)), ((IConstructor)p_0), Util.kwpMap("sep", ((IString)$constants.get(18)/*">"*/))))); + + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/lang/rascal/format/Grammar.rsc|(3640,229,<116,0>,<119,1>) + public IString lang_rascal_format_Grammar_alt2rascal$27f049e7b59c20ec(IConstructor p_0){ + + + if($has_type_and_arity(p_0, M_ParseTree.Production_associativity_Symbol_Associativity_set_Production, 3)){ + IValue $arg0_82 = (IValue)($aadt_subscript_int(((IConstructor)p_0),0)); + if($isComparable($arg0_82.getType(), M_ParseTree.ADT_Symbol)){ + IConstructor def_1 = ((IConstructor)($arg0_82)); + IValue $arg1_81 = (IValue)($aadt_subscript_int(((IConstructor)p_0),1)); + if($isComparable($arg1_81.getType(), M_ParseTree.ADT_Associativity)){ + IConstructor a_2 = ((IConstructor)($arg1_81)); + IValue $arg2_80 = (IValue)($aadt_subscript_int(((IConstructor)p_0),2)); + if($isComparable($arg2_80.getType(), $T2)){ + final Template $template79 = (Template)new Template($RVF, "= "); + $template79.beginIndent(" "); + $template79.addStr(((IString)($me.associativity(((IConstructor)($arg1_81))))).getValue()); + $template79.endIndent(" "); + IString sepVal_3 = ((IString)($template79.close())); + return ((IString)($me.alt2r(((IConstructor)($arg0_82)), ((IConstructor)p_0), Util.kwpMap("sep", sepVal_3)))); + + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/lang/rascal/format/Grammar.rsc|(3871,70,<121,0>,<121,70>) + public IString lang_rascal_format_Grammar_alt2rascal$5a9bf4d6d6c6afd9(IConstructor p_0){ + + + if($has_type_and_arity(p_0, M_ParseTree.Production_regular_Symbol, 1)){ + IValue $arg0_83 = (IValue)($aadt_subscript_int(((IConstructor)p_0),0)); + if($isComparable($arg0_83.getType(), $T2)){ + return ((IString)($me.symbol2rascal(((IConstructor)(((IConstructor)($aadt_get_field(((IConstructor)p_0), "def")))))))); + + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/lang/rascal/format/Grammar.rsc|(3942,67,<122,0>,<122,67>) + public IString lang_rascal_format_Grammar_alt2rascal$39a84c47a7bfe678(IConstructor p_0){ + + + final Template $template84 = (Template)new Template($RVF, "forgot "); + $template84.beginIndent(" "); + $template84.addVal(p_0); + $template84.endIndent(" "); + throw new Throw($template84.close()); + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/lang/rascal/format/Grammar.rsc|(4012,1199,<125,0>,<158,1>) + public IString lang_rascal_format_Grammar_prod2rascal$452015edf458efd4(IConstructor p_0){ + + + final IConstructor $switchVal85 = ((IConstructor)p_0); + boolean noCaseMatched_$switchVal85 = true; + SWITCH19: switch(Fingerprint.getFingerprint($switchVal85)){ + + case 101776608: + if(noCaseMatched_$switchVal85){ + noCaseMatched_$switchVal85 = false; + if($isSubtypeOf($switchVal85.getType(),M_ParseTree.ADT_Production)){ + /*muExists*/CASE_101776608_6: + do { + if($has_type_and_arity($switchVal85, M_ParseTree.Production_regular_Symbol, 1)){ + IValue $arg0_128 = (IValue)($aadt_subscript_int(((IConstructor)($switchVal85)),0)); + if($isComparable($arg0_128.getType(), $T2)){ + return ((IString)$constants.get(2)/*""*/); + + } + + } + + } while(false); + + } + + } + + + case -1467508160: + if(noCaseMatched_$switchVal85){ + noCaseMatched_$switchVal85 = false; + if($isSubtypeOf($switchVal85.getType(),M_ParseTree.ADT_Production)){ + /*muExists*/CASE_1467508160_1: + do { + if($has_type_and_arity($switchVal85, M_ParseTree.Production_priority_Symbol_list_Production, 2)){ + IValue $arg0_102 = (IValue)($aadt_subscript_int(((IConstructor)($switchVal85)),0)); + if($isComparable($arg0_102.getType(), $T2)){ + IValue $arg1_101 = (IValue)($aadt_subscript_int(((IConstructor)($switchVal85)),1)); + if($isComparable($arg1_101.getType(), $T24)){ + IList alts_6 = ((IList)($arg1_101)); + final Template $template99 = (Template)new Template($RVF, ""); + $template99.addStr(((IString)($me.prod2rascal(((IConstructor)(M_List.head(((IList)($arg1_101)))))))).getValue()); + ;/*muExists*/LAB22: + do { + LAB22_GEN4389: + for(IValue $elem100_for : ((IList)(M_List.tail(((IList)($arg1_101)))))){ + IConstructor $elem100 = (IConstructor) $elem100_for; + IConstructor pr_7 = ((IConstructor)($elem100)); + $template99.addStr("\n> "); + $template99.beginIndent(" "); + $template99.addStr(((IString)($me.prod2rascal(((IConstructor)pr_7)))).getValue()); + $template99.endIndent(" "); + + } + continue LAB22; + + } while(false); + return ((IString)($template99.close())); + + } + + } + + } + + } while(false); + + } + + } + + + case 110389984: + if(noCaseMatched_$switchVal85){ + noCaseMatched_$switchVal85 = false; + if($isSubtypeOf($switchVal85.getType(),M_ParseTree.ADT_Production)){ + /*muExists*/CASE_110389984_3: + do { + if($has_type_and_arity($switchVal85, M_ParseTree.Production_prod_Symbol_list_Symbol_set_Attr, 3)){ + IValue $arg0_114 = (IValue)($aadt_subscript_int(((IConstructor)($switchVal85)),0)); + if($isComparable($arg0_114.getType(), M_ParseTree.ADT_Symbol)){ + if($has_type_and_arity($arg0_114, M_Type.Symbol_label_str_Symbol, 2)){ + IValue $arg0_116 = (IValue)($aadt_subscript_int(((IConstructor)($arg0_114)),0)); + if($isComparable($arg0_116.getType(), $T0)){ + IString n_13 = ((IString)($arg0_116)); + IValue $arg1_115 = (IValue)($aadt_subscript_int(((IConstructor)($arg0_114)),1)); + if($isComparable($arg1_115.getType(), M_ParseTree.ADT_Symbol)){ + IValue $arg1_113 = (IValue)($aadt_subscript_int(((IConstructor)($switchVal85)),1)); + if($isComparable($arg1_113.getType(), $T15)){ + IList lhs_14 = ((IList)($arg1_113)); + IValue $arg2_112 = (IValue)($aadt_subscript_int(((IConstructor)($switchVal85)),2)); + if($isComparable($arg2_112.getType(), $T25)){ + ISet as_15 = ((ISet)($arg2_112)); + final Template $template109 = (Template)new Template($RVF, ""); + /*muExists*/LAB24: + do { + LAB24_GEN4780: + for(IValue $elem110_for : ((ISet)($arg2_112))){ + IConstructor $elem110 = (IConstructor) $elem110_for; + IConstructor a_16 = ((IConstructor)($elem110)); + ;$template109.addStr(((IString)($me.attr2mod(((IConstructor)a_16)))).getValue()); + $template109.addStr(" "); + + } + continue LAB24; + + } while(false); + ;$template109.addStr(((IString)($me.reserved(((IString)($arg0_116))))).getValue()); + $template109.addStr(": "); + /*muExists*/LAB25: + do { + LAB25_GEN4828: + for(IValue $elem111_for : ((IList)($arg1_113))){ + IConstructor $elem111 = (IConstructor) $elem111_for; + IConstructor s_17 = ((IConstructor)($elem111)); + ;$template109.addStr(((IString)($me.symbol2rascal(((IConstructor)s_17)))).getValue()); + $template109.addStr(" "); + + } + continue LAB25; + + } while(false); + return ((IString)($template109.close())); + + } + + } + + } + + } + + } + + } + + } + + } while(false); + + } + if($isSubtypeOf($switchVal85.getType(),M_ParseTree.ADT_Production)){ + /*muExists*/CASE_110389984_4: + do { + if($has_type_and_arity($switchVal85, M_ParseTree.Production_prod_Symbol_list_Symbol_set_Attr, 3)){ + IValue $arg0_121 = (IValue)($aadt_subscript_int(((IConstructor)($switchVal85)),0)); + if($isComparable($arg0_121.getType(), M_ParseTree.ADT_Symbol)){ + IValue $arg1_120 = (IValue)($aadt_subscript_int(((IConstructor)($switchVal85)),1)); + if($isComparable($arg1_120.getType(), $T15)){ + IList lhs_18 = ((IList)($arg1_120)); + IValue $arg2_119 = (IValue)($aadt_subscript_int(((IConstructor)($switchVal85)),2)); + if($isComparable($arg2_119.getType(), $T26)){ + if($arg2_119.equals(((ISet)$constants.get(11)/*{}*/))){ + final Template $template117 = (Template)new Template($RVF, ""); + /*muExists*/LAB26: + do { + LAB26_GEN4932: + for(IValue $elem118_for : ((IList)($arg1_120))){ + IConstructor $elem118 = (IConstructor) $elem118_for; + IConstructor s_19 = ((IConstructor)($elem118)); + ;$template117.addStr(((IString)($me.symbol2rascal(((IConstructor)s_19)))).getValue()); + $template117.addStr(" "); + + } + continue LAB26; + + } while(false); + return ((IString)($template117.close())); + + } + + } + + } + + } + + } + + } while(false); + + } + if($isSubtypeOf($switchVal85.getType(),M_ParseTree.ADT_Production)){ + /*muExists*/CASE_110389984_5: + do { + if($has_type_and_arity($switchVal85, M_ParseTree.Production_prod_Symbol_list_Symbol_set_Attr, 3)){ + IValue $arg0_127 = (IValue)($aadt_subscript_int(((IConstructor)($switchVal85)),0)); + if($isComparable($arg0_127.getType(), M_ParseTree.ADT_Symbol)){ + IValue $arg1_126 = (IValue)($aadt_subscript_int(((IConstructor)($switchVal85)),1)); + if($isComparable($arg1_126.getType(), $T15)){ + IList lhs_20 = ((IList)($arg1_126)); + IValue $arg2_125 = (IValue)($aadt_subscript_int(((IConstructor)($switchVal85)),2)); + if($isComparable($arg2_125.getType(), $T25)){ + ISet as_21 = ((ISet)($arg2_125)); + final Template $template122 = (Template)new Template($RVF, ""); + /*muExists*/LAB27: + do { + LAB27_GEN5048: + for(IValue $elem123_for : ((ISet)($arg2_125))){ + IConstructor $elem123 = (IConstructor) $elem123_for; + IConstructor a_22 = ((IConstructor)($elem123)); + ;$template122.addStr(((IString)($me.attr2mod(((IConstructor)a_22)))).getValue()); + $template122.addStr(" "); + + } + continue LAB27; + + } while(false); + ;/*muExists*/LAB28: + do { + LAB28_GEN5081: + for(IValue $elem124_for : ((IList)($arg1_126))){ + IConstructor $elem124 = (IConstructor) $elem124_for; + IConstructor s_23 = ((IConstructor)($elem124)); + ;$template122.addStr(((IString)($me.symbol2rascal(((IConstructor)s_23)))).getValue()); + $template122.addStr(" "); + + } + continue LAB28; + + } while(false); + return ((IString)($template122.close())); + + } + + } + + } + + } + + } while(false); + + } + + } + + + case -304752112: + if(noCaseMatched_$switchVal85){ + noCaseMatched_$switchVal85 = false; + if($isSubtypeOf($switchVal85.getType(),M_ParseTree.ADT_Production)){ + /*muExists*/CASE_304752112_0: + do { + if($has_type_and_arity($switchVal85, M_Type.Production_choice_Symbol_set_Production, 2)){ + IValue $arg0_98 = (IValue)($aadt_subscript_int(((IConstructor)($switchVal85)),0)); + if($isComparable($arg0_98.getType(), $T2)){ + IValue $arg1_97 = (IValue)($aadt_subscript_int(((IConstructor)($switchVal85)),1)); + if($isComparable($arg1_97.getType(), $T23)){ + ISet alts_1 = ((ISet)($arg1_97)); + ITuple $TMP87 = (ITuple)(M_Set.takeOneFrom(((ISet)($arg1_97)))); + IConstructor fst_2 = ((IConstructor)($atuple_subscript_int(((ITuple)($TMP87)),0))); + ISet rest_3 = ((ISet)($atuple_subscript_int(((ITuple)($TMP87)),1))); + final Template $template88 = (Template)new Template($RVF, ""); + $template88.addStr(((IString)($me.prod2rascal(((IConstructor)fst_2)))).getValue()); + ;/*muExists*/LAB20: + do { + /*muExists*/LAB20_GEN4172_CONS_prod: + do { + LAB20_GEN4172: + for(IValue $elem89_for : ((ISet)rest_3)){ + IConstructor $elem89 = (IConstructor) $elem89_for; + if($has_type_and_arity($elem89, M_ParseTree.Production_prod_Symbol_list_Symbol_set_Attr, 3)){ + IValue $arg0_92 = (IValue)($aadt_subscript_int(((IConstructor)($elem89)),0)); + if($isComparable($arg0_92.getType(), $T2)){ + IValue $arg1_91 = (IValue)($aadt_subscript_int(((IConstructor)($elem89)),1)); + if($isComparable($arg1_91.getType(), $T2)){ + IValue $arg2_90 = (IValue)($aadt_subscript_int(((IConstructor)($elem89)),2)); + if($isComparable($arg2_90.getType(), $T2)){ + IConstructor pr_4 = ((IConstructor)($elem89)); + $template88.addStr("\n| "); + $template88.beginIndent(" "); + $template88.addStr(((IString)($me.prod2rascal(((IConstructor)pr_4)))).getValue()); + $template88.endIndent(" "); + + } else { + continue LAB20_GEN4172; + } + } else { + continue LAB20_GEN4172; + } + } else { + continue LAB20_GEN4172; + } + } else { + continue LAB20_GEN4172; + } + } + continue LAB20; + + } while(false); + + } while(false); + ;/*muExists*/LAB21: + do { + LAB21_GEN4238: + for(IValue $elem96_for : ((ISet)rest_3)){ + IConstructor $elem96 = (IConstructor) $elem96_for; + IConstructor pr_5 = ((IConstructor)($elem96)); + if($has_type_and_arity(pr_5, M_ParseTree.Production_prod_Symbol_list_Symbol_set_Attr, 3)){ + IValue $arg0_95 = (IValue)($aadt_subscript_int(((IConstructor)pr_5),0)); + if($isComparable($arg0_95.getType(), $T2)){ + IValue $arg1_94 = (IValue)($aadt_subscript_int(((IConstructor)pr_5),1)); + if($isComparable($arg1_94.getType(), $T2)){ + IValue $arg2_93 = (IValue)($aadt_subscript_int(((IConstructor)pr_5),2)); + if($isComparable($arg2_93.getType(), $T2)){ + $template88.addStr("\n| "); + $template88.beginIndent(" "); + $template88.addStr(((IString)($me.prod2rascal(((IConstructor)pr_5)))).getValue()); + $template88.endIndent(" "); + + } else { + break LAB21_GEN4238; // muSucceed + } + } else { + break LAB21_GEN4238; // muSucceed + } + } else { + break LAB21_GEN4238; // muSucceed + } + } else { + break LAB21_GEN4238; // muSucceed + } + } + continue LAB21; + + } while(false); + return ((IString)($template88.close())); + + } + + } + + } + + } while(false); + + } + + } + + + case -2132978880: + if(noCaseMatched_$switchVal85){ + noCaseMatched_$switchVal85 = false; + if($isSubtypeOf($switchVal85.getType(),M_ParseTree.ADT_Production)){ + /*muExists*/CASE_2132978880_2: + do { + if($has_type_and_arity($switchVal85, M_ParseTree.Production_associativity_Symbol_Associativity_set_Production, 3)){ + IValue $arg0_108 = (IValue)($aadt_subscript_int(((IConstructor)($switchVal85)),0)); + if($isComparable($arg0_108.getType(), $T2)){ + IValue $arg1_107 = (IValue)($aadt_subscript_int(((IConstructor)($switchVal85)),1)); + if($isComparable($arg1_107.getType(), M_ParseTree.ADT_Associativity)){ + IConstructor a_8 = ((IConstructor)($arg1_107)); + IValue $arg2_106 = (IValue)($aadt_subscript_int(((IConstructor)($switchVal85)),2)); + if($isComparable($arg2_106.getType(), $T23)){ + ISet alts_9 = ((ISet)($arg2_106)); + ITuple $TMP103 = (ITuple)(M_Set.takeOneFrom(((ISet)($arg2_106)))); + IConstructor fst_10 = ((IConstructor)($atuple_subscript_int(((ITuple)($TMP103)),0))); + ISet rest_11 = ((ISet)($atuple_subscript_int(((ITuple)($TMP103)),1))); + final Template $template104 = (Template)new Template($RVF, ""); + $template104.addStr(((IString)($me.associativity(((IConstructor)($arg1_107))))).getValue()); + $template104.addStr(" \n ( "); + $template104.beginIndent(" "); + $template104.addStr(((IString)($me.prod2rascal(((IConstructor)fst_10)))).getValue()); + $template104.endIndent(" "); + ;/*muExists*/LAB23: + do { + LAB23_GEN4609: + for(IValue $elem105_for : ((ISet)rest_11)){ + IConstructor $elem105 = (IConstructor) $elem105_for; + IConstructor pr_12 = ((IConstructor)($elem105)); + $template104.addStr("\n | "); + $template104.beginIndent(" "); + $template104.addStr(((IString)($me.prod2rascal(((IConstructor)pr_12)))).getValue()); + $template104.endIndent(" "); + + } + continue LAB23; + + } while(false); + $template104.addStr("\n )"); + return ((IString)($template104.close())); + + } + + } + + } + + } + + } while(false); + + } + + } + + + default: final Template $template86 = (Template)new Template($RVF, "missed a case "); + $template86.beginIndent(" "); + $template86.addVal(p_0); + $template86.endIndent(" "); + + throw new Throw($template86.close()); + } + + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/lang/rascal/format/Grammar.rsc|(5213,36,<160,0>,<160,36>) + public IString lang_rascal_format_Grammar_associativity$9acd60ef49279caa(IConstructor $0){ + + + if($has_type_and_arity($0, M_ParseTree.Associativity_left_, 0)){ + return ((IString)$constants.get(19)/*"left"*/); + + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/lang/rascal/format/Grammar.rsc|(5250,38,<161,0>,<161,38>) + public IString lang_rascal_format_Grammar_associativity$271cfecb7fc70442(IConstructor $0){ + + + if($has_type_and_arity($0, M_ParseTree.Associativity_right_, 0)){ + return ((IString)$constants.get(20)/*"right"*/); + + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/lang/rascal/format/Grammar.rsc|(5289,38,<162,0>,<162,38>) + public IString lang_rascal_format_Grammar_associativity$95950f301748ef8c(IConstructor $0){ + + + if($has_type_and_arity($0, M_ParseTree.Associativity_assoc_, 0)){ + return ((IString)$constants.get(21)/*"assoc"*/); + + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/lang/rascal/format/Grammar.rsc|(5328,46,<163,0>,<163,46>) + public IString lang_rascal_format_Grammar_associativity$6c4b5afff021251a(IConstructor $0){ + + + if($has_type_and_arity($0, M_ParseTree.Associativity_non_assoc_, 0)){ + return ((IString)$constants.get(22)/*"non-assoc"*/); + + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/lang/rascal/format/Grammar.rsc|(6145,89,<167,0>,<169,1>) + public IString lang_rascal_format_Grammar_reserved$ddb60b559dd45997(IString name_0){ + + + /*muExists*/$RET129: + do { + if((((IBool)($RVF.bool(((ISet)rascalKeywords).contains(((IString)name_0)))))).getValue()){ + final Template $template130 = (Template)new Template($RVF, "\\"); + $template130.beginIndent(" "); + $template130.addStr(((IString)name_0).getValue()); + $template130.endIndent(" "); + return ((IString)($template130.close())); + + } + + } while(false); + return ((IString)name_0); + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/lang/rascal/format/Grammar.rsc|(6236,131,<171,0>,<172,30>) + public IBool lang_rascal_format_Grammar_noAttrs$5cd43d89bef1f2a4(){ + + + return ((IBool)($equal(((IString)($me.prod2rascal(((IConstructor)$constants.get(23)/*prod(sort("ID-TYPE"),[sort("PICO-ID"),lit(":"),sort("TYPE")],{})*/)))), ((IString)$constants.get(28)/*"PICO-ID ":" TYPE "*/)))); + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/lang/rascal/format/Grammar.rsc|(6369,189,<174,0>,<177,43>) + public IBool lang_rascal_format_Grammar_AttrsAndCons$189b7fcef1590cf4(){ + + + return ((IBool)($equal(((IString)($me.prod2rascal(((IConstructor)$constants.get(29)/*prod(label("decl",sort("ID-TYPE")),[sort("PICO-ID"),lit(":"),sort("TYPE")],{})*/)))), ((IString)$constants.get(31)/*"decl: PICO-ID ":" TYPE "*/)))); + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/lang/rascal/format/Grammar.rsc|(6575,185,<179,0>,<181,37>) + public IBool lang_rascal_format_Grammar_CC$e54e4692db276314(){ + + + return ((IBool)($equal(((IString)($me.prod2rascal(((IConstructor)$constants.get(32)/*prod(label("whitespace",sort("LAYOUT")),[\char-class([range(9,9),range(10,10),range(13,13),range(32, ...*/)))), ((IString)$constants.get(36)/*"whitespace: [\t \n \a0D \ ] "*/)))); + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/lang/rascal/format/Grammar.rsc|(6762,329,<183,0>,<187,57>) + public IBool lang_rascal_format_Grammar_Prio$3f3ee762d60b2b22(){ + + + return ((IBool)($equal(((IString)($me.prod2rascal(((IConstructor)$constants.get(37)/*priority(sort("EXP"),[prod(sort("EXP"),[sort("EXP"),lit("||"),sort("EXP")],{}),prod(sort("EXP"),[sor ...*/)))), ((IString)$constants.get(45)/*"EXP "||" EXP + > EXP "-" EXP + > EXP "+" EXP "*/)))); + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/lang/rascal/format/Grammar.rsc|(7094,309,<189,0>,<197,1>) + public IString lang_rascal_format_Grammar_attr2mod$2f0363e8223967f1(IConstructor a_0){ + + + final IConstructor $switchVal131 = ((IConstructor)a_0); + boolean noCaseMatched_$switchVal131 = true; + SWITCH29: switch(Fingerprint.getFingerprint($switchVal131)){ + + case 916688: + if(noCaseMatched_$switchVal131){ + noCaseMatched_$switchVal131 = false; + if($isSubtypeOf($switchVal131.getType(),M_ParseTree.ADT_Attr)){ + /*muExists*/CASE_916688_1: + do { + if($has_type_and_arity($switchVal131, M_Type.Attr_tag_value, 1)){ + IValue $arg0_135 = (IValue)($aadt_subscript_int(((IConstructor)($switchVal131)),0)); + if($isComparable($arg0_135.getType(), $T28)){ + /*muExists*/CASE_916688_1_CONS_tag_CONS_x: + do { + if($isSubtypeOf($arg0_135.getType(),$T28)){ + final IString $fun_name_subject137 = ((IString)($anode_get_name((INode)((INode)($arg0_135))))); + IString x_1 = ((IString)($fun_name_subject137)); + if($arg0_135 instanceof INode && ((INode)$arg0_135).arity() == 1 && ((INode)$arg0_135).getName().equals(((IString)($fun_name_subject137)).getValue())){ + IValue $arg0_136 = (IValue)($anode_subscript_int(((INode)($arg0_135)),0)); + if($isComparable($arg0_136.getType(), $T0)){ + IString y_2 = ((IString)($arg0_136)); + final Template $template134 = (Template)new Template($RVF, "@"); + $template134.beginIndent(" "); + $template134.addStr(((IString)x_1).getValue()); + $template134.endIndent(" "); + $template134.addStr("=\""); + $template134.beginIndent(" "); + $template134.addStr(((IString)(M_lang_rascal_format_Escape.escape(((IString)($arg0_136))))).getValue()); + $template134.endIndent(" "); + $template134.addStr("\""); + return ((IString)($template134.close())); + + } + + } + + } + + } while(false); + + } + + } + + } while(false); + + } + if($isSubtypeOf($switchVal131.getType(),M_ParseTree.ADT_Attr)){ + /*muExists*/CASE_916688_2: + do { + if($has_type_and_arity($switchVal131, M_Type.Attr_tag_value, 1)){ + IValue $arg0_139 = (IValue)($aadt_subscript_int(((IConstructor)($switchVal131)),0)); + if($isComparable($arg0_139.getType(), $T28)){ + /*muExists*/CASE_916688_2_CONS_tag_CONS_x: + do { + if($isSubtypeOf($arg0_139.getType(),$T28)){ + final IString $fun_name_subject140 = ((IString)($anode_get_name((INode)((INode)($arg0_139))))); + IString x_3 = null; + if($arg0_139 instanceof INode && ((INode)$arg0_139).arity() == 0 && ((INode)$arg0_139).getName().equals(((IString)($fun_name_subject140)).getValue())){ + final Template $template138 = (Template)new Template($RVF, "@"); + $template138.beginIndent(" "); + $template138.addStr(((IString)($fun_name_subject140)).getValue()); + $template138.endIndent(" "); + return ((IString)($template138.close())); + + } + + } + + } while(false); + + } + + } + + } while(false); + + } + + } + + + case 744972456: + if(noCaseMatched_$switchVal131){ + noCaseMatched_$switchVal131 = false; + if($isSubtypeOf($switchVal131.getType(),M_ParseTree.ADT_Attr)){ + /*muExists*/CASE_744972456_3: + do { + if($has_type_and_arity($switchVal131, M_ParseTree.Attr_assoc_Associativity, 1)){ + IValue $arg0_141 = (IValue)($aadt_subscript_int(((IConstructor)($switchVal131)),0)); + if($isComparable($arg0_141.getType(), M_ParseTree.ADT_Associativity)){ + IConstructor as_4 = null; + return ((IString)($me.associativity(((IConstructor)($arg0_141))))); + + } + + } + + } while(false); + + } + + } + + + case 0: + if(noCaseMatched_$switchVal131){ + noCaseMatched_$switchVal131 = false; + + } + + + default: if($isSubtypeOf($switchVal131.getType(),M_ParseTree.ADT_Attr)){ + /*muExists*/CASE_0_0: + do { + if($has_type_and_arity($switchVal131, M_ParseTree.Attr_bracket_, 0)){ + return ((IString)$constants.get(46)/*"bracket"*/); + + } + + } while(false); + + } + final Template $template132 = (Template)new Template($RVF, "@Unsupported(\""); + $template132.beginIndent(" "); + final Template $template133 = (Template)new Template($RVF, ""); + $template133.addVal(a_0); + $template132.addStr(((IString)(M_lang_rascal_format_Escape.escape(((IString)($template133.close()))))).getValue()); + $template132.endIndent(" "); + $template132.addStr("\")"); + return ((IString)($template132.close())); + + } + + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/lang/rascal/format/Grammar.rsc|(7405,3357,<199,0>,<288,1>) + public IString lang_rascal_format_Grammar_symbol2rascal$7cd5ea92dc101f32(IConstructor sym_0){ + + + final IConstructor $switchVal142 = ((IConstructor)sym_0); + boolean noCaseMatched_$switchVal142 = true; + SWITCH30: switch(Fingerprint.getFingerprint($switchVal142)){ + + case 1643638592: + if(noCaseMatched_$switchVal142){ + noCaseMatched_$switchVal142 = false; + if($isSubtypeOf($switchVal142.getType(),M_ParseTree.ADT_Symbol)){ + /*muExists*/CASE_1643638592_0: + do { + if($has_type_and_arity($switchVal142, M_Type.Symbol_label_str_Symbol, 2)){ + IValue $arg0_145 = (IValue)($aadt_subscript_int(((IConstructor)($switchVal142)),0)); + if($isComparable($arg0_145.getType(), $T0)){ + IString l_1 = ((IString)($arg0_145)); + IValue $arg1_144 = (IValue)($aadt_subscript_int(((IConstructor)($switchVal142)),1)); + if($isComparable($arg1_144.getType(), M_ParseTree.ADT_Symbol)){ + IConstructor x_2 = ((IConstructor)($arg1_144)); + final Template $template143 = (Template)new Template($RVF, ""); + $template143.addStr(((IString)($me.symbol2rascal(((IConstructor)($arg1_144))))).getValue()); + $template143.addStr(" "); + $template143.beginIndent(" "); + $template143.addStr(((IString)($arg0_145)).getValue()); + $template143.endIndent(" "); + return ((IString)($template143.close())); + + } + + } + + } + + } while(false); + + } + + } + + + case -964239440: + if(noCaseMatched_$switchVal142){ + noCaseMatched_$switchVal142 = false; + if($isSubtypeOf($switchVal142.getType(),M_ParseTree.ADT_Symbol)){ + /*muExists*/CASE_964239440_15: + do { + if($has_type_and_arity($switchVal142, M_ParseTree.Symbol_iter_star_seps_Symbol_list_Symbol, 2)){ + IValue $arg0_179 = (IValue)($aadt_subscript_int(((IConstructor)($switchVal142)),0)); + if($isComparable($arg0_179.getType(), M_ParseTree.ADT_Symbol)){ + IConstructor x_24 = ((IConstructor)($arg0_179)); + IValue $arg1_178 = (IValue)($aadt_subscript_int(((IConstructor)($switchVal142)),1)); + if($isComparable($arg1_178.getType(), $T15)){ + IList seps_25 = ((IList)($arg1_178)); + return ((IString)($me.iterseps2rascal(((IConstructor)($arg0_179)), ((IList)($arg1_178)), ((IString)$constants.get(47)/*"*"*/)))); + + } + + } + + } + + } while(false); + + } + + } + + + case 1444258592: + if(noCaseMatched_$switchVal142){ + noCaseMatched_$switchVal142 = false; + if($isSubtypeOf($switchVal142.getType(),M_ParseTree.ADT_Symbol)){ + /*muExists*/CASE_1444258592_6: + do { + if($has_type_and_arity($switchVal142, M_ParseTree.Symbol_parameterized_sort_str_list_Symbol, 2)){ + IValue $arg0_155 = (IValue)($aadt_subscript_int(((IConstructor)($switchVal142)),0)); + if($isComparable($arg0_155.getType(), $T0)){ + IString name_8 = ((IString)($arg0_155)); + IValue $arg1_154 = (IValue)($aadt_subscript_int(((IConstructor)($switchVal142)),1)); + if($isComparable($arg1_154.getType(), $T15)){ + IList parameters_9 = ((IList)($arg1_154)); + final Template $template153 = (Template)new Template($RVF, ""); + $template153.addStr(((IString)($arg0_155)).getValue()); + $template153.addStr("["); + $template153.beginIndent(" "); + $template153.addStr(((IString)($me.params2rascal(((IList)($arg1_154))))).getValue()); + $template153.endIndent(" "); + $template153.addStr("]"); + return ((IString)($template153.close())); + + } + + } + + } + + } while(false); + + } + + } + + + case 1206598288: + if(noCaseMatched_$switchVal142){ + noCaseMatched_$switchVal142 = false; + if($isSubtypeOf($switchVal142.getType(),M_ParseTree.ADT_Symbol)){ + /*muExists*/CASE_1206598288_8: + do { + if($has_type_and_arity($switchVal142, M_Type.Symbol_parameter_str_Symbol, 2)){ + IValue $arg0_161 = (IValue)($aadt_subscript_int(((IConstructor)($switchVal142)),0)); + if($isComparable($arg0_161.getType(), $T0)){ + IString t_12 = null; + IValue $arg1_160 = (IValue)($aadt_subscript_int(((IConstructor)($switchVal142)),1)); + if($isComparable($arg1_160.getType(), $T2)){ + final Template $template159 = (Template)new Template($RVF, "&"); + $template159.beginIndent(" "); + $template159.addStr(((IString)($arg0_161)).getValue()); + $template159.endIndent(" "); + return ((IString)($template159.close())); + + } + + } + + } + + } while(false); + + } + + } + + + case 757310344: + if(noCaseMatched_$switchVal142){ + noCaseMatched_$switchVal142 = false; + if($isSubtypeOf($switchVal142.getType(),M_ParseTree.ADT_Symbol)){ + /*muExists*/CASE_757310344_3: + do { + if($has_type_and_arity($switchVal142, M_ParseTree.Symbol_cilit_str, 1)){ + IValue $arg0_150 = (IValue)($aadt_subscript_int(((IConstructor)($switchVal142)),0)); + if($isComparable($arg0_150.getType(), $T0)){ + IString x_5 = ((IString)($arg0_150)); + final Template $template149 = (Template)new Template($RVF, "\'"); + $template149.beginIndent(" "); + $template149.addStr(((IString)(M_lang_rascal_format_Escape.escape(((IString)($arg0_150))))).getValue()); + $template149.endIndent(" "); + $template149.addStr("\'"); + return ((IString)($template149.close())); + + } + + } + + } while(false); + + } + + } + + + case 856312: + if(noCaseMatched_$switchVal142){ + noCaseMatched_$switchVal142 = false; + if($isSubtypeOf($switchVal142.getType(),M_ParseTree.ADT_Symbol)){ + /*muExists*/CASE_856312_4: + do { + if($has_type_and_arity($switchVal142, M_ParseTree.Symbol_lex_str, 1)){ + IValue $arg0_151 = (IValue)($aadt_subscript_int(((IConstructor)($switchVal142)),0)); + if($isComparable($arg0_151.getType(), $T0)){ + IString x_6 = null; + return ((IString)($arg0_151)); + + } + + } + + } while(false); + + } + + } + + + case 1154855088: + if(noCaseMatched_$switchVal142){ + noCaseMatched_$switchVal142 = false; + if($isSubtypeOf($switchVal142.getType(),M_ParseTree.ADT_Symbol)){ + /*muExists*/CASE_1154855088_7: + do { + if($has_type_and_arity($switchVal142, M_ParseTree.Symbol_parameterized_lex_str_list_Symbol, 2)){ + IValue $arg0_158 = (IValue)($aadt_subscript_int(((IConstructor)($switchVal142)),0)); + if($isComparable($arg0_158.getType(), $T0)){ + IString name_10 = ((IString)($arg0_158)); + IValue $arg1_157 = (IValue)($aadt_subscript_int(((IConstructor)($switchVal142)),1)); + if($isComparable($arg1_157.getType(), $T15)){ + IList parameters_11 = ((IList)($arg1_157)); + final Template $template156 = (Template)new Template($RVF, ""); + $template156.addStr(((IString)($arg0_158)).getValue()); + $template156.addStr("["); + $template156.beginIndent(" "); + $template156.addStr(((IString)($me.params2rascal(((IList)($arg1_157))))).getValue()); + $template156.endIndent(" "); + $template156.addStr("]"); + return ((IString)($template156.close())); + + } + + } + + } + + } while(false); + + } + + } + + + case 910072: + if(noCaseMatched_$switchVal142){ + noCaseMatched_$switchVal142 = false; + if($isSubtypeOf($switchVal142.getType(),M_ParseTree.ADT_Symbol)){ + /*muExists*/CASE_910072_10: + do { + if($has_type_and_arity($switchVal142, M_ParseTree.Symbol_seq_list_Symbol, 1)){ + IValue $arg0_169 = (IValue)($aadt_subscript_int(((IConstructor)($switchVal142)),0)); + if($isComparable($arg0_169.getType(), $T15)){ + IList syms_17 = ((IList)($arg0_169)); + final Template $template167 = (Template)new Template($RVF, "( "); + /*muExists*/LAB32: + do { + LAB32_GEN8347: + for(IValue $elem168_for : ((IList)($arg0_169))){ + IConstructor $elem168 = (IConstructor) $elem168_for; + IConstructor s_18 = ((IConstructor)($elem168)); + $template167.addStr(" "); + $template167.beginIndent(" "); + $template167.addStr(((IString)($me.symbol2rascal(((IConstructor)s_18)))).getValue()); + $template167.endIndent(" "); + $template167.addStr(" "); + + } + continue LAB32; + + } while(false); + $template167.addStr(" )"); + return ((IString)($template167.close())); + + } + + } + + } while(false); + + } + if($isSubtypeOf($switchVal142.getType(),M_ParseTree.ADT_Symbol)){ + /*muExists*/CASE_910072_17: + do { + if($has_type_and_arity($switchVal142, M_ParseTree.Symbol_seq_list_Symbol, 1)){ + IValue $arg0_191 = (IValue)($aadt_subscript_int(((IConstructor)($switchVal142)),0)); + if($isComparable($arg0_191.getType(), $T15)){ + IList ss_31 = ((IList)($arg0_191)); + ITuple $TMP186 = (ITuple)(M_List.takeOneFrom(((IList)($arg0_191)))); + IConstructor f_32 = ((IConstructor)($atuple_subscript_int(((ITuple)($TMP186)),0))); + IList as_33 = ((IList)($atuple_subscript_int(((ITuple)($TMP186)),1))); + IString $reducer188 = (IString)($me.symbol2rascal(((IConstructor)f_32))); + $REDUCER187_GEN9012: + for(IValue $elem190_for : ((IList)as_33)){ + IConstructor $elem190 = (IConstructor) $elem190_for; + IConstructor a_35 = ((IConstructor)($elem190)); + final Template $template189 = (Template)new Template($RVF, ""); + $template189.addStr(((IString)($reducer188)).getValue()); + $template189.addStr(" "); + $template189.beginIndent(" "); + $template189.addStr(((IString)($me.symbol2rascal(((IConstructor)a_35)))).getValue()); + $template189.endIndent(" "); + $reducer188 = ((IString)($template189.close())); + + } + + return ((IString)($astr_add_astr(((IString)($astr_add_astr(((IString)$constants.get(48)/*"("*/),((IString)($reducer188))))),((IString)$constants.get(49)/*")"*/)))); + + } + + } + + } while(false); + + } + + } + + + case 826203960: + if(noCaseMatched_$switchVal142){ + noCaseMatched_$switchVal142 = false; + if($isSubtypeOf($switchVal142.getType(),M_ParseTree.ADT_Symbol)){ + /*muExists*/CASE_826203960_13: + do { + if($has_type_and_arity($switchVal142, M_ParseTree.Symbol_iter_star_Symbol, 1)){ + IValue $arg0_175 = (IValue)($aadt_subscript_int(((IConstructor)($switchVal142)),0)); + if($isComparable($arg0_175.getType(), M_ParseTree.ADT_Symbol)){ + IConstructor x_21 = ((IConstructor)($arg0_175)); + final Template $template174 = (Template)new Template($RVF, ""); + $template174.addStr(((IString)($me.symbol2rascal(((IConstructor)($arg0_175))))).getValue()); + $template174.addStr("*"); + return ((IString)($template174.close())); + + } + + } + + } while(false); + + } + + } + + + case 773448: + if(noCaseMatched_$switchVal142){ + noCaseMatched_$switchVal142 = false; + if($isSubtypeOf($switchVal142.getType(),M_ParseTree.ADT_Symbol)){ + /*muExists*/CASE_773448_16: + do { + if($has_type_and_arity($switchVal142, M_ParseTree.Symbol_alt_set_Symbol, 1)){ + IValue $arg0_185 = (IValue)($aadt_subscript_int(((IConstructor)($switchVal142)),0)); + if($isComparable($arg0_185.getType(), $T29)){ + ISet alts_26 = ((ISet)($arg0_185)); + ITuple $TMP180 = (ITuple)(M_Set.takeOneFrom(((ISet)($arg0_185)))); + IConstructor f_27 = ((IConstructor)($atuple_subscript_int(((ITuple)($TMP180)),0))); + ISet as_28 = ((ISet)($atuple_subscript_int(((ITuple)($TMP180)),1))); + IString $reducer182 = (IString)($me.symbol2rascal(((IConstructor)f_27))); + $REDUCER181_GEN8853: + for(IValue $elem184_for : ((ISet)as_28)){ + IConstructor $elem184 = (IConstructor) $elem184_for; + IConstructor a_30 = ((IConstructor)($elem184)); + final Template $template183 = (Template)new Template($RVF, ""); + $template183.addStr(((IString)($reducer182)).getValue()); + $template183.addStr(" | "); + $template183.beginIndent(" "); + $template183.addStr(((IString)($me.symbol2rascal(((IConstructor)a_30)))).getValue()); + $template183.endIndent(" "); + $reducer182 = ((IString)($template183.close())); + + } + + return ((IString)($astr_add_astr(((IString)($astr_add_astr(((IString)$constants.get(48)/*"("*/),((IString)($reducer182))))),((IString)$constants.get(49)/*")"*/)))); + + } + + } + + } while(false); + + } + + } + + + case 1652184736: + if(noCaseMatched_$switchVal142){ + noCaseMatched_$switchVal142 = false; + if($isSubtypeOf($switchVal142.getType(),M_ParseTree.ADT_Symbol)){ + /*muExists*/CASE_1652184736_14: + do { + if($has_type_and_arity($switchVal142, M_ParseTree.Symbol_iter_seps_Symbol_list_Symbol, 2)){ + IValue $arg0_177 = (IValue)($aadt_subscript_int(((IConstructor)($switchVal142)),0)); + if($isComparable($arg0_177.getType(), M_ParseTree.ADT_Symbol)){ + IConstructor x_22 = ((IConstructor)($arg0_177)); + IValue $arg1_176 = (IValue)($aadt_subscript_int(((IConstructor)($switchVal142)),1)); + if($isComparable($arg1_176.getType(), $T15)){ + IList seps_23 = ((IList)($arg1_176)); + return ((IString)($me.iterseps2rascal(((IConstructor)($arg0_177)), ((IList)($arg1_176)), ((IString)$constants.get(50)/*"+"*/)))); + + } + + } + + } + + } while(false); + + } + + } + + + case -333228984: + if(noCaseMatched_$switchVal142){ + noCaseMatched_$switchVal142 = false; + if($isSubtypeOf($switchVal142.getType(),M_ParseTree.ADT_Symbol)){ + /*muExists*/CASE_333228984_18: + do { + if($has_type_and_arity($switchVal142, M_ParseTree.Symbol_layouts_str, 1)){ + IValue $arg0_192 = (IValue)($aadt_subscript_int(((IConstructor)($switchVal142)),0)); + if($isComparable($arg0_192.getType(), $T0)){ + return ((IString)$constants.get(2)/*""*/); + + } + + } + + } while(false); + + } + + } + + + case 0: + if(noCaseMatched_$switchVal142){ + noCaseMatched_$switchVal142 = false; + + } + + + case 857272: + if(noCaseMatched_$switchVal142){ + noCaseMatched_$switchVal142 = false; + if($isSubtypeOf($switchVal142.getType(),M_ParseTree.ADT_Symbol)){ + /*muExists*/CASE_857272_2: + do { + if($has_type_and_arity($switchVal142, M_ParseTree.Symbol_lit_str, 1)){ + IValue $arg0_148 = (IValue)($aadt_subscript_int(((IConstructor)($switchVal142)),0)); + if($isComparable($arg0_148.getType(), $T0)){ + IString x_4 = ((IString)($arg0_148)); + final Template $template147 = (Template)new Template($RVF, "\""); + $template147.beginIndent(" "); + $template147.addStr(((IString)(M_lang_rascal_format_Escape.escape(((IString)($arg0_148))))).getValue()); + $template147.endIndent(" "); + $template147.addStr("\""); + return ((IString)($template147.close())); + + } + + } + + } while(false); + + } + + } + + + case -109773488: + if(noCaseMatched_$switchVal142){ + noCaseMatched_$switchVal142 = false; + if($isSubtypeOf($switchVal142.getType(),M_ParseTree.ADT_Symbol)){ + /*muExists*/CASE_109773488_5: + do { + if($has_type_and_arity($switchVal142, M_ParseTree.Symbol_keywords_str, 1)){ + IValue $arg0_152 = (IValue)($aadt_subscript_int(((IConstructor)($switchVal142)),0)); + if($isComparable($arg0_152.getType(), $T0)){ + IString x_7 = null; + return ((IString)($arg0_152)); + + } + + } + + } while(false); + + } + + } + + + case 25942208: + if(noCaseMatched_$switchVal142){ + noCaseMatched_$switchVal142 = false; + if($isSubtypeOf($switchVal142.getType(),M_ParseTree.ADT_Symbol)){ + /*muExists*/CASE_25942208_12: + do { + if($has_type_and_arity($switchVal142, M_ParseTree.Symbol_iter_Symbol, 1)){ + IValue $arg0_173 = (IValue)($aadt_subscript_int(((IConstructor)($switchVal142)),0)); + if($isComparable($arg0_173.getType(), M_ParseTree.ADT_Symbol)){ + IConstructor x_20 = ((IConstructor)($arg0_173)); + final Template $template172 = (Template)new Template($RVF, ""); + $template172.addStr(((IString)($me.symbol2rascal(((IConstructor)($arg0_173))))).getValue()); + $template172.addStr("+"); + return ((IString)($template172.close())); + + } + + } + + } while(false); + + } + + } + + + case 878060304: + if(noCaseMatched_$switchVal142){ + noCaseMatched_$switchVal142 = false; + if($isSubtypeOf($switchVal142.getType(),M_ParseTree.ADT_Symbol)){ + /*muExists*/CASE_878060304_19: + do { + if($has_type_and_arity($switchVal142, M_ParseTree.Symbol_start_Symbol, 1)){ + IValue $arg0_193 = (IValue)($aadt_subscript_int(((IConstructor)($switchVal142)),0)); + if($isComparable($arg0_193.getType(), M_ParseTree.ADT_Symbol)){ + IConstructor x_36 = ((IConstructor)($arg0_193)); + return ((IString)($me.symbol2rascal(((IConstructor)($arg0_193))))); + + } + + } + + } while(false); + + } + + } + + + case 882072: + if(noCaseMatched_$switchVal142){ + noCaseMatched_$switchVal142 = false; + if($isSubtypeOf($switchVal142.getType(),M_ParseTree.ADT_Symbol)){ + /*muExists*/CASE_882072_11: + do { + if($has_type_and_arity($switchVal142, M_ParseTree.Symbol_opt_Symbol, 1)){ + IValue $arg0_171 = (IValue)($aadt_subscript_int(((IConstructor)($switchVal142)),0)); + if($isComparable($arg0_171.getType(), M_ParseTree.ADT_Symbol)){ + IConstructor x_19 = ((IConstructor)($arg0_171)); + final Template $template170 = (Template)new Template($RVF, ""); + $template170.addStr(((IString)($me.symbol2rascal(((IConstructor)($arg0_171))))).getValue()); + $template170.addStr("?"); + return ((IString)($template170.close())); + + } + + } + + } while(false); + + } + + } + + + case 28290288: + if(noCaseMatched_$switchVal142){ + noCaseMatched_$switchVal142 = false; + if($isSubtypeOf($switchVal142.getType(),M_ParseTree.ADT_Symbol)){ + /*muExists*/CASE_28290288_1: + do { + if($has_type_and_arity($switchVal142, M_ParseTree.Symbol_sort_str, 1)){ + IValue $arg0_146 = (IValue)($aadt_subscript_int(((IConstructor)($switchVal142)),0)); + if($isComparable($arg0_146.getType(), $T0)){ + IString x_3 = null; + return ((IString)($arg0_146)); + + } + + } + + } while(false); + + } + + } + + + case -1948270072: + if(noCaseMatched_$switchVal142){ + noCaseMatched_$switchVal142 = false; + if($isSubtypeOf($switchVal142.getType(),M_ParseTree.ADT_Symbol)){ + /*muExists*/CASE_1948270072_9: + do { + if($has_type_and_arity($switchVal142, M_ParseTree.Symbol_char_class_list_CharRange, 1)){ + IValue $arg0_166 = (IValue)($aadt_subscript_int(((IConstructor)($switchVal142)),0)); + if($isComparable($arg0_166.getType(), $T13)){ + IList x_13 = ((IList)($arg0_166)); + final IConstructor $subject_val164 = ((IConstructor)(M_lang_rascal_grammar_definition_Characters.complement(((IConstructor)sym_0)))); + if($has_type_and_arity($subject_val164, M_ParseTree.Symbol_char_class_list_CharRange, 1)){ + IValue $arg0_165 = (IValue)($aadt_subscript_int(((IConstructor)($subject_val164)),0)); + if($isComparable($arg0_165.getType(), $T13)){ + IList y_14 = ((IList)($arg0_165)); + IString norm_15 = ((IString)($me.cc2rascal(((IList)($arg0_166))))); + IString comp_16 = ((IString)($me.cc2rascal(((IList)($arg0_165))))); + /*muExists*/$RET162: + do { + if((((IBool)($aint_lessequal_aint(((IInteger)(M_String.size(((IString)norm_15)))),((IInteger)(M_String.size(((IString)comp_16))))).not()))).getValue()){ + final Template $template163 = (Template)new Template($RVF, "!"); + $template163.beginIndent(" "); + $template163.addStr(((IString)comp_16).getValue()); + $template163.endIndent(" "); + return ((IString)($template163.close())); + + } + + } while(false); + return ((IString)norm_15); + + } else { + throw new Throw(((IString)$constants.get(51)/*"weird result of character class complement"*/)); + } + } else { + throw new Throw(((IString)$constants.get(51)/*"weird result of character class complement"*/)); + } + } + + } + + } while(false); + + } + + } + + + case -2144737184: + if(noCaseMatched_$switchVal142){ + noCaseMatched_$switchVal142 = false; + if($isSubtypeOf($switchVal142.getType(),M_ParseTree.ADT_Symbol)){ + /*muExists*/CASE_2144737184_20: + do { + if($has_type_and_arity($switchVal142, M_ParseTree.Symbol_conditional_Symbol_set_Condition, 2)){ + IValue $arg0_204 = (IValue)($aadt_subscript_int(((IConstructor)($switchVal142)),0)); + if($isComparable($arg0_204.getType(), M_ParseTree.ADT_Symbol)){ + IConstructor s_37 = ((IConstructor)($arg0_204)); + IValue $arg1_195 = (IValue)($aadt_subscript_int(((IConstructor)($switchVal142)),1)); + if($isComparable($arg1_195.getType(), $T30)){ + ISet $subject196 = (ISet)($arg1_195); + if(((ISet)($subject196)).size() >= 1){ + CASE_2144737184_20_CONS_conditional_SET_VARc: + for(IValue $elem203_for : ((ISet)($subject196))){ + IConstructor $elem203 = (IConstructor) $elem203_for; + IConstructor c_38 = ((IConstructor)($elem203)); + final ISet $subject198 = ((ISet)(((ISet)($subject196)).delete(((IConstructor)c_38)))); + if(((ISet)($subject198)).size() >= 1){ + CASE_2144737184_20_CONS_conditional_SET_VARc_VARd: + for(IValue $elem202_for : ((ISet)($subject198))){ + IConstructor $elem202 = (IConstructor) $elem202_for; + IConstructor d_39 = ((IConstructor)($elem202)); + final ISet $subject199 = ((ISet)(((ISet)($subject198)).delete(((IConstructor)d_39)))); + CASE_2144737184_20_CONS_conditional_SET_VARc_VARd_MVARr: + for(IValue $elem201_for : new SubSetGenerator(((ISet)($subject199)))){ + ISet $elem201 = (ISet) $elem201_for; + ISet r_40 = ((ISet)($elem201)); + final ISet $subject200 = ((ISet)(((ISet)($subject199)).subtract(((ISet)($elem201))))); + if(((ISet)($subject200)).size() == 0){ + final ISetWriter $writer194 = (ISetWriter)$RVF.setWriter(); + ; + $writer194.insert(d_39); + $setwriter_splice($writer194,r_40); + return ((IString)($me.symbol2rascal(((IConstructor)($RVF.constructor(M_ParseTree.Symbol_conditional_Symbol_set_Condition, new IValue[]{((IConstructor)($RVF.constructor(M_ParseTree.Symbol_conditional_Symbol_set_Condition, new IValue[]{((IConstructor)($arg0_204)), ((ISet)($RVF.set(((IConstructor)c_38))))}))), ((ISet)($writer194.done()))})))))); + + } else { + continue CASE_2144737184_20_CONS_conditional_SET_VARc_VARd_MVARr;/*set pat3*/ + } + } + continue CASE_2144737184_20_CONS_conditional_SET_VARc_VARd;/*set pat4*/ + + } + continue CASE_2144737184_20_CONS_conditional_SET_VARc;/*set pat4*/ + + } else { + continue CASE_2144737184_20_CONS_conditional_SET_VARc;/*set pat4*/ + } + } + + + } + + } + + } + + } + + } while(false); + + } + if($isSubtypeOf($switchVal142.getType(),M_ParseTree.ADT_Symbol)){ + /*muExists*/CASE_2144737184_21: + do { + if($has_type_and_arity($switchVal142, M_ParseTree.Symbol_conditional_Symbol_set_Condition, 2)){ + IValue $arg0_213 = (IValue)($aadt_subscript_int(((IConstructor)($switchVal142)),0)); + if($isComparable($arg0_213.getType(), M_ParseTree.ADT_Symbol)){ + IConstructor s_41 = ((IConstructor)($arg0_213)); + IValue $arg1_206 = (IValue)($aadt_subscript_int(((IConstructor)($switchVal142)),1)); + if($isComparable($arg1_206.getType(), $T30)){ + ISet $subject207 = (ISet)($arg1_206); + CASE_2144737184_21_CONS_conditional_SET_CONS_delete$_DFLT_SET_ELM211: + for(IValue $elem210_for : ((ISet)($subject207))){ + IConstructor $elem210 = (IConstructor) $elem210_for; + if($has_type_and_arity($elem210, M_ParseTree.Condition_delete_Symbol, 1)){ + IValue $arg0_212 = (IValue)($aadt_subscript_int(((IConstructor)($elem210)),0)); + if($isComparable($arg0_212.getType(), M_ParseTree.ADT_Symbol)){ + IConstructor t_42 = ((IConstructor)($arg0_212)); + final ISet $subject209 = ((ISet)(((ISet)($subject207)).delete(((IConstructor)($elem210))))); + if(((ISet)($subject209)).size() == 0){ + final Template $template205 = (Template)new Template($RVF, ""); + $template205.addStr(((IString)($me.symbol2rascal(((IConstructor)($arg0_213))))).getValue()); + $template205.addStr(" \\ "); + $template205.beginIndent(" "); + $template205.addStr(((IString)($me.symbol2rascal(((IConstructor)($arg0_212))))).getValue()); + $template205.endIndent(" "); + return ((IString)($template205.close())); + + } else { + continue CASE_2144737184_21_CONS_conditional_SET_CONS_delete$_DFLT_SET_ELM211;/*redirected CASE_2144737184_21_CONS_conditional_SET_CONS_delete to CASE_2144737184_21_CONS_conditional_SET_CONS_delete$_DFLT_SET_ELM211; set pat3*/ + } + } else { + continue CASE_2144737184_21_CONS_conditional_SET_CONS_delete$_DFLT_SET_ELM211;/*default set elem*/ + } + } else { + continue CASE_2144737184_21_CONS_conditional_SET_CONS_delete$_DFLT_SET_ELM211;/*default set elem*/ + } + } + + + } + + } + + } + + } while(false); + + } + if($isSubtypeOf($switchVal142.getType(),M_ParseTree.ADT_Symbol)){ + /*muExists*/CASE_2144737184_22: + do { + if($has_type_and_arity($switchVal142, M_ParseTree.Symbol_conditional_Symbol_set_Condition, 2)){ + IValue $arg0_222 = (IValue)($aadt_subscript_int(((IConstructor)($switchVal142)),0)); + if($isComparable($arg0_222.getType(), M_ParseTree.ADT_Symbol)){ + IConstructor s_43 = ((IConstructor)($arg0_222)); + IValue $arg1_215 = (IValue)($aadt_subscript_int(((IConstructor)($switchVal142)),1)); + if($isComparable($arg1_215.getType(), $T30)){ + ISet $subject216 = (ISet)($arg1_215); + CASE_2144737184_22_CONS_conditional_SET_CONS_follow$_DFLT_SET_ELM220: + for(IValue $elem219_for : ((ISet)($subject216))){ + IConstructor $elem219 = (IConstructor) $elem219_for; + if($has_type_and_arity($elem219, M_ParseTree.Condition_follow_Symbol, 1)){ + IValue $arg0_221 = (IValue)($aadt_subscript_int(((IConstructor)($elem219)),0)); + if($isComparable($arg0_221.getType(), M_ParseTree.ADT_Symbol)){ + IConstructor t_44 = ((IConstructor)($arg0_221)); + final ISet $subject218 = ((ISet)(((ISet)($subject216)).delete(((IConstructor)($elem219))))); + if(((ISet)($subject218)).size() == 0){ + final Template $template214 = (Template)new Template($RVF, ""); + $template214.addStr(((IString)($me.symbol2rascal(((IConstructor)($arg0_222))))).getValue()); + $template214.addStr(" >> "); + $template214.beginIndent(" "); + $template214.addStr(((IString)($me.symbol2rascal(((IConstructor)($arg0_221))))).getValue()); + $template214.endIndent(" "); + return ((IString)($template214.close())); + + } else { + continue CASE_2144737184_22_CONS_conditional_SET_CONS_follow$_DFLT_SET_ELM220;/*redirected CASE_2144737184_22_CONS_conditional_SET_CONS_follow to CASE_2144737184_22_CONS_conditional_SET_CONS_follow$_DFLT_SET_ELM220; set pat3*/ + } + } else { + continue CASE_2144737184_22_CONS_conditional_SET_CONS_follow$_DFLT_SET_ELM220;/*default set elem*/ + } + } else { + continue CASE_2144737184_22_CONS_conditional_SET_CONS_follow$_DFLT_SET_ELM220;/*default set elem*/ + } + } + + + } + + } + + } + + } while(false); + + } + if($isSubtypeOf($switchVal142.getType(),M_ParseTree.ADT_Symbol)){ + /*muExists*/CASE_2144737184_23: + do { + if($has_type_and_arity($switchVal142, M_ParseTree.Symbol_conditional_Symbol_set_Condition, 2)){ + IValue $arg0_231 = (IValue)($aadt_subscript_int(((IConstructor)($switchVal142)),0)); + if($isComparable($arg0_231.getType(), M_ParseTree.ADT_Symbol)){ + IConstructor s_45 = ((IConstructor)($arg0_231)); + IValue $arg1_224 = (IValue)($aadt_subscript_int(((IConstructor)($switchVal142)),1)); + if($isComparable($arg1_224.getType(), $T30)){ + ISet $subject225 = (ISet)($arg1_224); + CASE_2144737184_23_CONS_conditional_SET_CONS_not_follow$_DFLT_SET_ELM229: + for(IValue $elem228_for : ((ISet)($subject225))){ + IConstructor $elem228 = (IConstructor) $elem228_for; + if($has_type_and_arity($elem228, M_ParseTree.Condition_not_follow_Symbol, 1)){ + IValue $arg0_230 = (IValue)($aadt_subscript_int(((IConstructor)($elem228)),0)); + if($isComparable($arg0_230.getType(), M_ParseTree.ADT_Symbol)){ + IConstructor t_46 = ((IConstructor)($arg0_230)); + final ISet $subject227 = ((ISet)(((ISet)($subject225)).delete(((IConstructor)($elem228))))); + if(((ISet)($subject227)).size() == 0){ + final Template $template223 = (Template)new Template($RVF, ""); + $template223.addStr(((IString)($me.symbol2rascal(((IConstructor)($arg0_231))))).getValue()); + $template223.addStr(" !>> "); + $template223.beginIndent(" "); + $template223.addStr(((IString)($me.symbol2rascal(((IConstructor)($arg0_230))))).getValue()); + $template223.endIndent(" "); + return ((IString)($template223.close())); + + } else { + continue CASE_2144737184_23_CONS_conditional_SET_CONS_not_follow$_DFLT_SET_ELM229;/*redirected CASE_2144737184_23_CONS_conditional_SET_CONS_not_follow to CASE_2144737184_23_CONS_conditional_SET_CONS_not_follow$_DFLT_SET_ELM229; set pat3*/ + } + } else { + continue CASE_2144737184_23_CONS_conditional_SET_CONS_not_follow$_DFLT_SET_ELM229;/*default set elem*/ + } + } else { + continue CASE_2144737184_23_CONS_conditional_SET_CONS_not_follow$_DFLT_SET_ELM229;/*default set elem*/ + } + } + + + } + + } + + } + + } while(false); + + } + if($isSubtypeOf($switchVal142.getType(),M_ParseTree.ADT_Symbol)){ + /*muExists*/CASE_2144737184_24: + do { + if($has_type_and_arity($switchVal142, M_ParseTree.Symbol_conditional_Symbol_set_Condition, 2)){ + IValue $arg0_240 = (IValue)($aadt_subscript_int(((IConstructor)($switchVal142)),0)); + if($isComparable($arg0_240.getType(), M_ParseTree.ADT_Symbol)){ + IConstructor s_47 = ((IConstructor)($arg0_240)); + IValue $arg1_233 = (IValue)($aadt_subscript_int(((IConstructor)($switchVal142)),1)); + if($isComparable($arg1_233.getType(), $T30)){ + ISet $subject234 = (ISet)($arg1_233); + CASE_2144737184_24_CONS_conditional_SET_CONS_precede$_DFLT_SET_ELM238: + for(IValue $elem237_for : ((ISet)($subject234))){ + IConstructor $elem237 = (IConstructor) $elem237_for; + if($has_type_and_arity($elem237, M_ParseTree.Condition_precede_Symbol, 1)){ + IValue $arg0_239 = (IValue)($aadt_subscript_int(((IConstructor)($elem237)),0)); + if($isComparable($arg0_239.getType(), M_ParseTree.ADT_Symbol)){ + IConstructor t_48 = ((IConstructor)($arg0_239)); + final ISet $subject236 = ((ISet)(((ISet)($subject234)).delete(((IConstructor)($elem237))))); + if(((ISet)($subject236)).size() == 0){ + final Template $template232 = (Template)new Template($RVF, ""); + $template232.addStr(((IString)($me.symbol2rascal(((IConstructor)($arg0_239))))).getValue()); + $template232.addStr(" << "); + $template232.beginIndent(" "); + $template232.addStr(((IString)($me.symbol2rascal(((IConstructor)($arg0_240))))).getValue()); + $template232.endIndent(" "); + $template232.addStr(" "); + return ((IString)($template232.close())); + + } else { + continue CASE_2144737184_24_CONS_conditional_SET_CONS_precede$_DFLT_SET_ELM238;/*redirected CASE_2144737184_24_CONS_conditional_SET_CONS_precede to CASE_2144737184_24_CONS_conditional_SET_CONS_precede$_DFLT_SET_ELM238; set pat3*/ + } + } else { + continue CASE_2144737184_24_CONS_conditional_SET_CONS_precede$_DFLT_SET_ELM238;/*default set elem*/ + } + } else { + continue CASE_2144737184_24_CONS_conditional_SET_CONS_precede$_DFLT_SET_ELM238;/*default set elem*/ + } + } + + + } + + } + + } + + } while(false); + + } + if($isSubtypeOf($switchVal142.getType(),M_ParseTree.ADT_Symbol)){ + /*muExists*/CASE_2144737184_25: + do { + if($has_type_and_arity($switchVal142, M_ParseTree.Symbol_conditional_Symbol_set_Condition, 2)){ + IValue $arg0_249 = (IValue)($aadt_subscript_int(((IConstructor)($switchVal142)),0)); + if($isComparable($arg0_249.getType(), M_ParseTree.ADT_Symbol)){ + IConstructor s_49 = ((IConstructor)($arg0_249)); + IValue $arg1_242 = (IValue)($aadt_subscript_int(((IConstructor)($switchVal142)),1)); + if($isComparable($arg1_242.getType(), $T30)){ + ISet $subject243 = (ISet)($arg1_242); + CASE_2144737184_25_CONS_conditional_SET_CONS_not_precede$_DFLT_SET_ELM247: + for(IValue $elem246_for : ((ISet)($subject243))){ + IConstructor $elem246 = (IConstructor) $elem246_for; + if($has_type_and_arity($elem246, M_ParseTree.Condition_not_precede_Symbol, 1)){ + IValue $arg0_248 = (IValue)($aadt_subscript_int(((IConstructor)($elem246)),0)); + if($isComparable($arg0_248.getType(), M_ParseTree.ADT_Symbol)){ + IConstructor t_50 = ((IConstructor)($arg0_248)); + final ISet $subject245 = ((ISet)(((ISet)($subject243)).delete(((IConstructor)($elem246))))); + if(((ISet)($subject245)).size() == 0){ + final Template $template241 = (Template)new Template($RVF, ""); + $template241.addStr(((IString)($me.symbol2rascal(((IConstructor)($arg0_248))))).getValue()); + $template241.addStr(" !<< "); + $template241.beginIndent(" "); + $template241.addStr(((IString)($me.symbol2rascal(((IConstructor)($arg0_249))))).getValue()); + $template241.endIndent(" "); + $template241.addStr(" "); + return ((IString)($template241.close())); + + } else { + continue CASE_2144737184_25_CONS_conditional_SET_CONS_not_precede$_DFLT_SET_ELM247;/*redirected CASE_2144737184_25_CONS_conditional_SET_CONS_not_precede to CASE_2144737184_25_CONS_conditional_SET_CONS_not_precede$_DFLT_SET_ELM247; set pat3*/ + } + } else { + continue CASE_2144737184_25_CONS_conditional_SET_CONS_not_precede$_DFLT_SET_ELM247;/*default set elem*/ + } + } else { + continue CASE_2144737184_25_CONS_conditional_SET_CONS_not_precede$_DFLT_SET_ELM247;/*default set elem*/ + } + } + + + } + + } + + } + + } while(false); + + } + if($isSubtypeOf($switchVal142.getType(),M_ParseTree.ADT_Symbol)){ + /*muExists*/CASE_2144737184_26: + do { + if($has_type_and_arity($switchVal142, M_ParseTree.Symbol_conditional_Symbol_set_Condition, 2)){ + IValue $arg0_258 = (IValue)($aadt_subscript_int(((IConstructor)($switchVal142)),0)); + if($isComparable($arg0_258.getType(), M_ParseTree.ADT_Symbol)){ + IConstructor s_51 = ((IConstructor)($arg0_258)); + IValue $arg1_251 = (IValue)($aadt_subscript_int(((IConstructor)($switchVal142)),1)); + if($isComparable($arg1_251.getType(), $T30)){ + ISet $subject252 = (ISet)($arg1_251); + CASE_2144737184_26_CONS_conditional_SET_CONS_at_column$_DFLT_SET_ELM256: + for(IValue $elem255_for : ((ISet)($subject252))){ + IConstructor $elem255 = (IConstructor) $elem255_for; + if($has_type_and_arity($elem255, M_ParseTree.Condition_at_column_int, 1)){ + IValue $arg0_257 = (IValue)($aadt_subscript_int(((IConstructor)($elem255)),0)); + if($isComparable($arg0_257.getType(), $T31)){ + if(true){ + IInteger i_52 = ((IInteger)($arg0_257)); + final ISet $subject254 = ((ISet)(((ISet)($subject252)).delete(((IConstructor)($elem255))))); + if(((ISet)($subject254)).size() == 0){ + final Template $template250 = (Template)new Template($RVF, ""); + $template250.addStr(((IString)($me.symbol2rascal(((IConstructor)($arg0_258))))).getValue()); + $template250.addStr("@"); + $template250.beginIndent(" "); + $template250.addVal($arg0_257); + $template250.endIndent(" "); + return ((IString)($template250.close())); + + } else { + continue CASE_2144737184_26_CONS_conditional_SET_CONS_at_column$_DFLT_SET_ELM256;/*redirected CASE_2144737184_26_CONS_conditional_SET_CONS_at_column to CASE_2144737184_26_CONS_conditional_SET_CONS_at_column$_DFLT_SET_ELM256; set pat3*/ + } + } else { + continue CASE_2144737184_26_CONS_conditional_SET_CONS_at_column$_DFLT_SET_ELM256;/*default set elem*/ + } + } else { + continue CASE_2144737184_26_CONS_conditional_SET_CONS_at_column$_DFLT_SET_ELM256;/*default set elem*/ + } + } else { + continue CASE_2144737184_26_CONS_conditional_SET_CONS_at_column$_DFLT_SET_ELM256;/*default set elem*/ + } + } + + + } + + } + + } + + } while(false); + + } + if($isSubtypeOf($switchVal142.getType(),M_ParseTree.ADT_Symbol)){ + /*muExists*/CASE_2144737184_27: + do { + if($has_type_and_arity($switchVal142, M_ParseTree.Symbol_conditional_Symbol_set_Condition, 2)){ + IValue $arg0_266 = (IValue)($aadt_subscript_int(((IConstructor)($switchVal142)),0)); + if($isComparable($arg0_266.getType(), M_ParseTree.ADT_Symbol)){ + IConstructor s_53 = ((IConstructor)($arg0_266)); + IValue $arg1_260 = (IValue)($aadt_subscript_int(((IConstructor)($switchVal142)),1)); + if($isComparable($arg1_260.getType(), $T30)){ + ISet $subject261 = (ISet)($arg1_260); + CASE_2144737184_27_CONS_conditional_SET_CONS_begin_of_line$_DFLT_SET_ELM265: + for(IValue $elem264_for : ((ISet)($subject261))){ + IConstructor $elem264 = (IConstructor) $elem264_for; + if($has_type_and_arity($elem264, M_ParseTree.Condition_begin_of_line_, 0)){ + final ISet $subject263 = ((ISet)(((ISet)($subject261)).delete(((IConstructor)($elem264))))); + if(((ISet)($subject263)).size() == 0){ + final Template $template259 = (Template)new Template($RVF, "^"); + $template259.beginIndent(" "); + $template259.addStr(((IString)($me.symbol2rascal(((IConstructor)($arg0_266))))).getValue()); + $template259.endIndent(" "); + return ((IString)($template259.close())); + + } else { + continue CASE_2144737184_27_CONS_conditional_SET_CONS_begin_of_line$_DFLT_SET_ELM265;/*redirected CASE_2144737184_27_CONS_conditional_SET_CONS_begin_of_line to CASE_2144737184_27_CONS_conditional_SET_CONS_begin_of_line$_DFLT_SET_ELM265; set pat3*/ + } + } else { + continue CASE_2144737184_27_CONS_conditional_SET_CONS_begin_of_line$_DFLT_SET_ELM265;/*default set elem*/ + } + } + + + } + + } + + } + + } while(false); + + } + if($isSubtypeOf($switchVal142.getType(),M_ParseTree.ADT_Symbol)){ + /*muExists*/CASE_2144737184_28: + do { + if($has_type_and_arity($switchVal142, M_ParseTree.Symbol_conditional_Symbol_set_Condition, 2)){ + IValue $arg0_274 = (IValue)($aadt_subscript_int(((IConstructor)($switchVal142)),0)); + if($isComparable($arg0_274.getType(), M_ParseTree.ADT_Symbol)){ + IConstructor s_54 = ((IConstructor)($arg0_274)); + IValue $arg1_268 = (IValue)($aadt_subscript_int(((IConstructor)($switchVal142)),1)); + if($isComparable($arg1_268.getType(), $T30)){ + ISet $subject269 = (ISet)($arg1_268); + CASE_2144737184_28_CONS_conditional_SET_CONS_end_of_line$_DFLT_SET_ELM273: + for(IValue $elem272_for : ((ISet)($subject269))){ + IConstructor $elem272 = (IConstructor) $elem272_for; + if($has_type_and_arity($elem272, M_ParseTree.Condition_end_of_line_, 0)){ + final ISet $subject271 = ((ISet)(((ISet)($subject269)).delete(((IConstructor)($elem272))))); + if(((ISet)($subject271)).size() == 0){ + final Template $template267 = (Template)new Template($RVF, ""); + $template267.addStr(((IString)($me.symbol2rascal(((IConstructor)($arg0_274))))).getValue()); + $template267.addStr("$"); + return ((IString)($template267.close())); + + } else { + continue CASE_2144737184_28_CONS_conditional_SET_CONS_end_of_line$_DFLT_SET_ELM273;/*redirected CASE_2144737184_28_CONS_conditional_SET_CONS_end_of_line to CASE_2144737184_28_CONS_conditional_SET_CONS_end_of_line$_DFLT_SET_ELM273; set pat3*/ + } + } else { + continue CASE_2144737184_28_CONS_conditional_SET_CONS_end_of_line$_DFLT_SET_ELM273;/*default set elem*/ + } + } + + + } + + } + + } + + } while(false); + + } + if($isSubtypeOf($switchVal142.getType(),M_ParseTree.ADT_Symbol)){ + /*muExists*/CASE_2144737184_29: + do { + if($has_type_and_arity($switchVal142, M_ParseTree.Symbol_conditional_Symbol_set_Condition, 2)){ + IValue $arg0_283 = (IValue)($aadt_subscript_int(((IConstructor)($switchVal142)),0)); + if($isComparable($arg0_283.getType(), M_ParseTree.ADT_Symbol)){ + IConstructor s_55 = ((IConstructor)($arg0_283)); + IValue $arg1_276 = (IValue)($aadt_subscript_int(((IConstructor)($switchVal142)),1)); + if($isComparable($arg1_276.getType(), $T30)){ + ISet $subject277 = (ISet)($arg1_276); + CASE_2144737184_29_CONS_conditional_SET_CONS_except$_DFLT_SET_ELM281: + for(IValue $elem280_for : ((ISet)($subject277))){ + IConstructor $elem280 = (IConstructor) $elem280_for; + if($has_type_and_arity($elem280, M_ParseTree.Condition_except_str, 1)){ + IValue $arg0_282 = (IValue)($aadt_subscript_int(((IConstructor)($elem280)),0)); + if($isComparable($arg0_282.getType(), $T0)){ + if(true){ + IString x_56 = ((IString)($arg0_282)); + final ISet $subject279 = ((ISet)(((ISet)($subject277)).delete(((IConstructor)($elem280))))); + if(((ISet)($subject279)).size() == 0){ + final Template $template275 = (Template)new Template($RVF, ""); + $template275.addStr(((IString)($me.symbol2rascal(((IConstructor)($arg0_283))))).getValue()); + $template275.addStr("!"); + $template275.beginIndent(" "); + $template275.addStr(((IString)($arg0_282)).getValue()); + $template275.endIndent(" "); + return ((IString)($template275.close())); + + } else { + continue CASE_2144737184_29_CONS_conditional_SET_CONS_except$_DFLT_SET_ELM281;/*redirected CASE_2144737184_29_CONS_conditional_SET_CONS_except to CASE_2144737184_29_CONS_conditional_SET_CONS_except$_DFLT_SET_ELM281; set pat3*/ + } + } else { + continue CASE_2144737184_29_CONS_conditional_SET_CONS_except$_DFLT_SET_ELM281;/*default set elem*/ + } + } else { + continue CASE_2144737184_29_CONS_conditional_SET_CONS_except$_DFLT_SET_ELM281;/*default set elem*/ + } + } else { + continue CASE_2144737184_29_CONS_conditional_SET_CONS_except$_DFLT_SET_ELM281;/*default set elem*/ + } + } + + + } + + } + + } + + } while(false); + + } + if($isSubtypeOf($switchVal142.getType(),M_ParseTree.ADT_Symbol)){ + /*muExists*/CASE_2144737184_30: + do { + if($has_type_and_arity($switchVal142, M_ParseTree.Symbol_conditional_Symbol_set_Condition, 2)){ + IValue $arg0_286 = (IValue)($aadt_subscript_int(((IConstructor)($switchVal142)),0)); + if($isComparable($arg0_286.getType(), M_ParseTree.ADT_Symbol)){ + IConstructor s_57 = ((IConstructor)($arg0_286)); + IValue $arg1_285 = (IValue)($aadt_subscript_int(((IConstructor)($switchVal142)),1)); + if($isComparable($arg1_285.getType(), $T26)){ + if($arg1_285.equals(((ISet)$constants.get(11)/*{}*/))){ + final Template $template284 = (Template)new Template($RVF, "WARNING: empty conditional "); + $template284.beginIndent(" "); + $template284.addVal(sym_0); + $template284.endIndent(" "); + M_IO.println(((IValue)($template284.close()))); + return ((IString)($me.symbol2rascal(((IConstructor)($arg0_286))))); + + } + + } + + } + + } + + } while(false); + + } + + } + + + default: if($isSubtypeOf($switchVal142.getType(),M_ParseTree.ADT_Symbol)){ + /*muExists*/CASE_0_31: + do { + if($has_type_and_arity($switchVal142, M_ParseTree.Symbol_empty_, 0)){ + return ((IString)$constants.get(52)/*"()"*/); + + } + + } while(false); + + } + + } + + final Template $template287 = (Template)new Template($RVF, "symbol2rascal: missing case "); + $template287.beginIndent(" "); + $template287.addVal(sym_0); + $template287.endIndent(" "); + throw new Throw($template287.close()); + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/lang/rascal/format/Grammar.rsc|(10764,270,<290,0>,<296,1>) + public IString lang_rascal_format_Grammar_iterseps2rascal$fe1027980573bd82(IConstructor sym_0, IList seps_1, IString iter_2){ + + + final Template $template288 = (Template)new Template($RVF, ""); + /*muExists*/LAB33: + do { + LAB33_GEN10854: + for(IValue $elem289_for : ((IList)seps_1)){ + IConstructor $elem289 = (IConstructor) $elem289_for; + IConstructor sp_4 = ((IConstructor)($elem289)); + ;$template288.addStr(((IString)($me.symbol2rascal(((IConstructor)sp_4)))).getValue()); + + } + continue LAB33; + + } while(false); + IString separators_3 = ((IString)($template288.close())); + if((((IBool)($equal(((IString)separators_3),((IString)$constants.get(2)/*""*/)).not()))).getValue()){ + final Template $template291 = (Template)new Template($RVF, "{"); + $template291.beginIndent(" "); + $template291.addStr(((IString)($me.symbol2rascal(((IConstructor)sym_0)))).getValue()); + $template291.endIndent(" "); + $template291.addStr(" "); + $template291.beginIndent(" "); + $template291.addStr(((IString)separators_3).getValue()); + $template291.endIndent(" "); + $template291.addStr("}"); + $template291.beginIndent(" "); + $template291.addStr(((IString)iter_2).getValue()); + $template291.endIndent(" "); + return ((IString)($template291.close())); + + } else { + final Template $template290 = (Template)new Template($RVF, ""); + $template290.addStr(((IString)($me.symbol2rascal(((IConstructor)sym_0)))).getValue()); + ;$template290.addStr(((IString)separators_3).getValue()); + ;$template290.addStr(((IString)iter_2).getValue()); + return ((IString)($template290.close())); + + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/lang/rascal/format/Grammar.rsc|(11036,275,<298,0>,<311,1>) + public IString lang_rascal_format_Grammar_params2rascal$f4c1186947f6bb00(IList params_0){ + + + IInteger len_1 = ((IInteger)(M_List.size(((IList)params_0)))); + if((((IBool)($equal(((IInteger)len_1), ((IInteger)$constants.get(3)/*0*/))))).getValue()){ + return ((IString)$constants.get(2)/*""*/); + + } + if((((IBool)($equal(((IInteger)len_1), ((IInteger)$constants.get(53)/*1*/))))).getValue()){ + return ((IString)($me.symbol2rascal(((IConstructor)($alist_subscript_int(((IList)params_0),0)))))); + + } + IString sep_2 = ((IString)$constants.get(2)/*""*/); + IString res_3 = ((IString)$constants.get(2)/*""*/); + /*muExists*/FOR37: + do { + FOR37_GEN11215: + for(IValue $elem292_for : ((IList)params_0)){ + IConstructor $elem292 = (IConstructor) $elem292_for; + IConstructor p_4 = ((IConstructor)($elem292)); + res_3 = ((IString)($astr_add_astr(((IString)res_3),((IString)($astr_add_astr(((IString)sep_2),((IString)($me.symbol2rascal(((IConstructor)p_4)))))))))); + sep_2 = ((IString)$constants.get(54)/*", "*/); + + } + continue FOR37; + + } while(false); + /* void: muCon([]) */return ((IString)res_3); + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/lang/rascal/format/Grammar.rsc|(11313,172,<313,0>,<316,1>) + public IString lang_rascal_format_Grammar_cc2rascal$0d43214752b1b902(IList ranges_0){ + + + if((((IBool)($equal(((IList)ranges_0), ((IList)$constants.get(4)/*[]*/))))).getValue()){ + return ((IString)$constants.get(55)/*"[]"*/); + + } + final Template $template293 = (Template)new Template($RVF, "["); + $template293.beginIndent(" "); + $template293.addStr(((IString)($me.range2rascal(((IConstructor)(M_List.head(((IList)ranges_0))))))).getValue()); + $template293.endIndent(" "); + ;/*muExists*/LAB39: + do { + LAB39_GEN11439: + for(IValue $elem294_for : ((IList)(M_List.tail(((IList)ranges_0))))){ + IConstructor $elem294 = (IConstructor) $elem294_for; + IConstructor r_1 = ((IConstructor)($elem294)); + $template293.addStr(" "); + $template293.beginIndent(" "); + $template293.addStr(((IString)($me.range2rascal(((IConstructor)r_1)))).getValue()); + $template293.endIndent(" "); + + } + continue LAB39; + + } while(false); + $template293.addStr("]"); + return ((IString)($template293.close())); + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/lang/rascal/format/Grammar.rsc|(11487,315,<318,0>,<327,1>) + public IString lang_rascal_format_Grammar_range2rascal$07747f28a4b93d11(IConstructor r_0){ + + + final IConstructor $switchVal295 = ((IConstructor)r_0); + boolean noCaseMatched_$switchVal295 = true; + SWITCH40: switch(Fingerprint.getFingerprint($switchVal295)){ + + case 1732482000: + if(noCaseMatched_$switchVal295){ + noCaseMatched_$switchVal295 = false; + if($isSubtypeOf($switchVal295.getType(),M_ParseTree.ADT_CharRange)){ + /*muExists*/CASE_1732482000_0: + do { + if($has_type_and_arity($switchVal295, M_ParseTree.CharRange_range_int_int, 2)){ + IValue $arg0_298 = (IValue)($aadt_subscript_int(((IConstructor)($switchVal295)),0)); + if($isComparable($arg0_298.getType(), $T31)){ + IInteger c_1 = ((IInteger)($arg0_298)); + IValue $arg1_297 = (IValue)($aadt_subscript_int(((IConstructor)($switchVal295)),1)); + if($isComparable($arg1_297.getType(), $T31)){ + if(($arg0_298 != null)){ + if($arg0_298.match($arg1_297)){ + return ((IString)(M_lang_rascal_format_Escape.makeCharClassChar(((IInteger)($arg1_297))))); + + } + + } else { + $arg0_298 = ((IValue)($arg1_297)); + return ((IString)(M_lang_rascal_format_Escape.makeCharClassChar(((IInteger)($arg1_297))))); + + } + } + + } + + } + + } while(false); + + } + if($isSubtypeOf($switchVal295.getType(),M_ParseTree.ADT_CharRange)){ + /*muExists*/CASE_1732482000_1: + do { + if($has_type_and_arity($switchVal295, M_ParseTree.CharRange_range_int_int, 2)){ + IValue $arg0_301 = (IValue)($aadt_subscript_int(((IConstructor)($switchVal295)),0)); + if($isComparable($arg0_301.getType(), $T31)){ + IInteger c_2 = ((IInteger)($arg0_301)); + IValue $arg1_300 = (IValue)($aadt_subscript_int(((IConstructor)($switchVal295)),1)); + if($isComparable($arg1_300.getType(), $T31)){ + IInteger d_3 = ((IInteger)($arg1_300)); + final Template $template299 = (Template)new Template($RVF, ""); + $template299.addStr(((IString)(M_lang_rascal_format_Escape.makeCharClassChar(((IInteger)($arg0_301))))).getValue()); + $template299.addStr("-"); + $template299.beginIndent(" "); + $template299.addStr(((IString)(M_lang_rascal_format_Escape.makeCharClassChar(((IInteger)($arg1_300))))).getValue()); + $template299.endIndent(" "); + return ((IString)($template299.close())); + + } + + } + + } + + } while(false); + + } + + } + + + default: final Template $template296 = (Template)new Template($RVF, "range2rascal: missing case "); + $template296.beginIndent(" "); + $template296.addVal(r_0); + $template296.endIndent(" "); + + throw new Throw($template296.close()); + } + + + } + + + public static void main(String[] args) { + throw new RuntimeException("No function `main` found in Rascal module `lang::rascal::format::Grammar`"); + } +} \ No newline at end of file diff --git a/src/rascal/lang/rascal/format/$Grammar.tpl b/src/rascal/lang/rascal/format/$Grammar.tpl new file mode 100644 index 00000000000..f3db23b9880 Binary files /dev/null and b/src/rascal/lang/rascal/format/$Grammar.tpl differ diff --git a/src/rascal/lang/rascal/format/$Grammar_$I.java b/src/rascal/lang/rascal/format/$Grammar_$I.java new file mode 100644 index 00000000000..6fd61dacf89 --- /dev/null +++ b/src/rascal/lang/rascal/format/$Grammar_$I.java @@ -0,0 +1,31 @@ +package rascal.lang.rascal.format; +import io.usethesource.vallang.*; +import org.rascalmpl.runtime.function.*; + +@SuppressWarnings("unused") +public interface $Grammar_$I { + IValue AttrsAndCons(); + IValue CC(); + IValue Prio(); + IValue alt2r(IValue $0, IValue $1, java.util.Map $kwpActuals); + IValue alt2rascal(IValue $0); + IValue associativity(IValue $0); + IValue attr2mod(IValue $0); + IValue cc2rascal(IValue $0); + IValue cleanIdentifiers(IValue $0); + void definition2disk(IValue $0, IValue $1); + IValue definition2rascal(IValue $0); + IValue grammar2rascal(IValue $0); + IValue grammar2rascal(IValue $0, IValue $1); + IValue iterseps2rascal(IValue $0, IValue $1, IValue $2); + IValue layoutname(IValue $0); + IValue module2rascal(IValue $0); + IValue noAttrs(); + IValue params2rascal(IValue $0); + IValue prod2rascal(IValue $0); + IValue range2rascal(IValue $0); + IValue reserved(IValue $0); + IValue same(IValue $0, IValue $1); + IValue symbol2rascal(IValue $0); + IValue topProd2rascal(IValue $0); +} \ No newline at end of file diff --git a/src/rascal/lang/rascal/grammar/$ConcreteSyntax.constants b/src/rascal/lang/rascal/grammar/$ConcreteSyntax.constants new file mode 100644 index 00000000000..86f40560909 Binary files /dev/null and b/src/rascal/lang/rascal/grammar/$ConcreteSyntax.constants differ diff --git a/src/rascal/lang/rascal/grammar/$ConcreteSyntax.java b/src/rascal/lang/rascal/grammar/$ConcreteSyntax.java new file mode 100644 index 00000000000..ef7f87ad9fb --- /dev/null +++ b/src/rascal/lang/rascal/grammar/$ConcreteSyntax.java @@ -0,0 +1,1874 @@ +package rascal.lang.rascal.grammar; +import java.io.PrintWriter; +import java.io.StringWriter; +import java.io.InputStreamReader; +import java.io.PrintWriter; +import java.util.*; +import java.util.regex.Matcher; +import io.usethesource.vallang.*; +import io.usethesource.vallang.type.*; +import org.rascalmpl.runtime.*; +import org.rascalmpl.runtime.RascalExecutionContext; +import org.rascalmpl.runtime.function.*; +import org.rascalmpl.runtime.traverse.*; +import org.rascalmpl.runtime.utils.*; +import org.rascalmpl.exceptions.RuntimeExceptionFactory; +import org.rascalmpl.exceptions.Throw; +import org.rascalmpl.runtime.RascalExecutionContext; +import org.rascalmpl.interpreter.control_exceptions.Filtered; +import org.rascalmpl.types.NonTerminalType; +import org.rascalmpl.types.RascalTypeFactory; +import org.rascalmpl.util.ExpiringFunctionResultCache; +import org.rascalmpl.values.RascalValueFactory; +import org.rascalmpl.values.ValueFactoryFactory; +import org.rascalmpl.values.parsetrees.ITree; +import org.rascalmpl.values.parsetrees.TreeAdapter; + + + +@SuppressWarnings({"unused","unchecked","deprecation"}) +public class $ConcreteSyntax + extends + org.rascalmpl.runtime.$RascalModule + implements + rascal.lang.rascal.grammar.$ConcreteSyntax_$I { + + private final $ConcreteSyntax_$I $me; + private final IList $constants; + + + public final rascal.lang.rascal.syntax.$Rascal M_lang_rascal_syntax_Rascal; + public final rascal.lang.rascal.grammar.definition.$Literals M_lang_rascal_grammar_definition_Literals; + public final rascal.$ParseTree M_ParseTree; + public final rascal.$ValueIO M_ValueIO; + public final rascal.lang.rascal.grammar.definition.$Productions M_lang_rascal_grammar_definition_Productions; + public final rascal.lang.rascal.grammar.definition.$Symbols M_lang_rascal_grammar_definition_Symbols; + public final rascal.$List M_List; + public final rascal.$Grammar M_Grammar; + public final rascal.$Message M_Message; + public final rascal.lang.rascal.grammar.definition.$Regular M_lang_rascal_grammar_definition_Regular; + public final rascal.$Type M_Type; + + + + public final io.usethesource.vallang.type.Type $T5; /*avalue()*/ + public final io.usethesource.vallang.type.Type $T14; /*aparameter("A",avalue(),closed=true)*/ + public final io.usethesource.vallang.type.Type $T7; /*aint()*/ + public final io.usethesource.vallang.type.Type $T10; /*astr()*/ + public final io.usethesource.vallang.type.Type $T6; /*aparameter("A",avalue(),closed=false)*/ + public final io.usethesource.vallang.type.Type $T9; /*aparameter("T",avalue(),closed=false)*/ + public final io.usethesource.vallang.type.Type ADT_ProtocolChars; /*aadt("ProtocolChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_ProtocolChars; /*aadt("ProtocolChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type $T2; /*alit(",")*/ + public final io.usethesource.vallang.type.Type ADT_Strategy; /*aadt("Strategy",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Strategy; /*aadt("Strategy",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_MidStringChars; /*aadt("MidStringChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_MidStringChars; /*aadt("MidStringChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_LocalVariableDeclaration; /*aadt("LocalVariableDeclaration",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_LocalVariableDeclaration; /*aadt("LocalVariableDeclaration",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Attr; /*aadt("Attr",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Replacement; /*aadt("Replacement",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Replacement; /*aadt("Replacement",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Expression; /*aadt("Expression",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Expression; /*aadt("Expression",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Mapping_Expression; /*aadt("Mapping",[aadt("Expression",[],contextFreeSyntax())],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Mapping_Expression; /*aadt("Mapping",[aadt("Expression",[],contextFreeSyntax())],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_LocationChangeType; /*aadt("LocationChangeType",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Tree; /*aadt("Tree",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Pattern; /*aadt("Pattern",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Pattern; /*aadt("Pattern",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Mapping_Pattern; /*aadt("Mapping",[aadt("Pattern",[],contextFreeSyntax())],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Mapping_Pattern; /*aadt("Mapping",[aadt("Pattern",[],contextFreeSyntax())],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_TagString; /*aadt("TagString",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_TagString; /*aadt("TagString",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Name; /*aadt("Name",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Name; /*aadt("Name",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_LAYOUT; /*aadt("LAYOUT",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_LAYOUT; /*aadt("LAYOUT",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_FunctionType; /*aadt("FunctionType",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_FunctionType; /*aadt("FunctionType",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_PostProtocolChars; /*aadt("PostProtocolChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_PostProtocolChars; /*aadt("PostProtocolChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type $T12; /*aparameter("T",aadt("Tree",[],dataSyntax()),closed=true)*/ + public final io.usethesource.vallang.type.Type ADT_KeywordArguments_1; /*aadt("KeywordArguments",[aparameter("T",aadt("Tree",[],dataSyntax()),closed=true)],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_KeywordArguments_1; /*aadt("KeywordArguments",[aparameter("T",aadt("Tree",[],dataSyntax()),closed=true)],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Range; /*aadt("Range",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Range; /*aadt("Range",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_IOCapability; /*aadt("IOCapability",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Visibility; /*aadt("Visibility",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Visibility; /*aadt("Visibility",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_DatePart; /*aadt("DatePart",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_DatePart; /*aadt("DatePart",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Output; /*aadt("Output",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Output; /*aadt("Output",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_RationalLiteral; /*aadt("RationalLiteral",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_RationalLiteral; /*aadt("RationalLiteral",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_RegExpLiteral; /*aadt("RegExpLiteral",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_RegExpLiteral; /*aadt("RegExpLiteral",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Item; /*aadt("Item",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_GrammarModule; /*aadt("GrammarModule",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_LocationChangeEvent; /*aadt("LocationChangeEvent",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_RegExpModifier; /*aadt("RegExpModifier",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_RegExpModifier; /*aadt("RegExpModifier",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Prod; /*aadt("Prod",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Prod; /*aadt("Prod",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_ModuleParameters; /*aadt("ModuleParameters",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_ModuleParameters; /*aadt("ModuleParameters",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type $T13; /*aparameter("T",aadt("Tree",[],dataSyntax()),closed=false)*/ + public final io.usethesource.vallang.type.Type ADT_Mapping_1; /*aadt("Mapping",[aparameter("T",aadt("Tree",[],dataSyntax()),closed=true)],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Mapping_1; /*aadt("Mapping",[aparameter("T",aadt("Tree",[],dataSyntax()),closed=true)],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_ImportedModule; /*aadt("ImportedModule",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_ImportedModule; /*aadt("ImportedModule",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_BooleanLiteral; /*aadt("BooleanLiteral",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_BooleanLiteral; /*aadt("BooleanLiteral",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Case; /*aadt("Case",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Case; /*aadt("Case",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Concrete; /*aadt("Concrete",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Concrete; /*aadt("Concrete",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Declarator; /*aadt("Declarator",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Declarator; /*aadt("Declarator",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_SyntaxDefinition; /*aadt("SyntaxDefinition",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_SyntaxDefinition; /*aadt("SyntaxDefinition",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_IntegerLiteral; /*aadt("IntegerLiteral",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_IntegerLiteral; /*aadt("IntegerLiteral",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_KeywordArguments_Expression; /*aadt("KeywordArguments",[aadt("Expression",[],contextFreeSyntax())],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_KeywordArguments_Expression; /*aadt("KeywordArguments",[aadt("Expression",[],contextFreeSyntax())],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Target; /*aadt("Target",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Target; /*aadt("Target",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_TimePartNoTZ; /*aadt("TimePartNoTZ",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_TimePartNoTZ; /*aadt("TimePartNoTZ",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_KeywordFormals; /*aadt("KeywordFormals",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_KeywordFormals; /*aadt("KeywordFormals",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_DataTarget; /*aadt("DataTarget",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_DataTarget; /*aadt("DataTarget",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Renaming; /*aadt("Renaming",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Renaming; /*aadt("Renaming",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Production; /*aadt("Production",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Maybe_1; /*aadt("Maybe",[aparameter("A",avalue(),closed=true)],dataSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Renamings; /*aadt("Renamings",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Renamings; /*aadt("Renamings",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_KeywordFormal; /*aadt("KeywordFormal",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_KeywordFormal; /*aadt("KeywordFormal",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_OptionalExpression; /*aadt("OptionalExpression",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_OptionalExpression; /*aadt("OptionalExpression",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_GrammarDefinition; /*aadt("GrammarDefinition",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Catch; /*aadt("Catch",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Catch; /*aadt("Catch",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Field; /*aadt("Field",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Field; /*aadt("Field",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_FunctionBody; /*aadt("FunctionBody",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_FunctionBody; /*aadt("FunctionBody",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_LocationLiteral; /*aadt("LocationLiteral",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_LocationLiteral; /*aadt("LocationLiteral",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Tag; /*aadt("Tag",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Tag; /*aadt("Tag",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Type; /*aadt("Type",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Type; /*aadt("Type",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_HexIntegerLiteral; /*aadt("HexIntegerLiteral",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_HexIntegerLiteral; /*aadt("HexIntegerLiteral",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_PostStringChars; /*aadt("PostStringChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_PostStringChars; /*aadt("PostStringChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_TimeZonePart; /*aadt("TimeZonePart",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_TimeZonePart; /*aadt("TimeZonePart",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Declaration; /*aadt("Declaration",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Declaration; /*aadt("Declaration",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_ShellCommand; /*aadt("ShellCommand",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_ShellCommand; /*aadt("ShellCommand",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_PreStringChars; /*aadt("PreStringChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_PreStringChars; /*aadt("PreStringChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Nonterminal; /*aadt("Nonterminal",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Nonterminal; /*aadt("Nonterminal",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_StringLiteral; /*aadt("StringLiteral",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_StringLiteral; /*aadt("StringLiteral",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type $T8; /*alist(aparameter("T",avalue(),closed=false))*/ + public final io.usethesource.vallang.type.Type ADT_NonterminalLabel; /*aadt("NonterminalLabel",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_NonterminalLabel; /*aadt("NonterminalLabel",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Variable; /*aadt("Variable",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Variable; /*aadt("Variable",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_TypeArg; /*aadt("TypeArg",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_TypeArg; /*aadt("TypeArg",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_RegExp; /*aadt("RegExp",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_RegExp; /*aadt("RegExp",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Bound; /*aadt("Bound",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Bound; /*aadt("Bound",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_KeywordArguments_Pattern; /*aadt("KeywordArguments",[aadt("Pattern",[],contextFreeSyntax())],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_KeywordArguments_Pattern; /*aadt("KeywordArguments",[aadt("Pattern",[],contextFreeSyntax())],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_PathPart; /*aadt("PathPart",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_PathPart; /*aadt("PathPart",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Class; /*aadt("Class",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Class; /*aadt("Class",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_KeywordArgument_1; /*aadt("KeywordArgument",[aparameter("T",aadt("Tree",[],dataSyntax()),closed=true)],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_KeywordArgument_1; /*aadt("KeywordArgument",[aparameter("T",aadt("Tree",[],dataSyntax()),closed=true)],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Associativity; /*aadt("Associativity",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Signature; /*aadt("Signature",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Signature; /*aadt("Signature",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_ModuleActuals; /*aadt("ModuleActuals",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_ModuleActuals; /*aadt("ModuleActuals",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_URLChars; /*aadt("URLChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_URLChars; /*aadt("URLChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Symbol; /*aadt("Symbol",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Maybe_Symbol; /*aadt("Maybe",[aadt("Symbol",[],dataSyntax())],dataSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Tags; /*aadt("Tags",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Tags; /*aadt("Tags",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Maybe_Associativity; /*aadt("Maybe",[aadt("Associativity",[],dataSyntax(),alabel="a")],dataSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_DataTypeSelector; /*aadt("DataTypeSelector",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_DataTypeSelector; /*aadt("DataTypeSelector",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Body; /*aadt("Body",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Body; /*aadt("Body",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_PrePathChars; /*aadt("PrePathChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_PrePathChars; /*aadt("PrePathChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Start; /*aadt("Start",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Start; /*aadt("Start",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Backslash; /*aadt("Backslash",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Backslash; /*aadt("Backslash",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_DateAndTime; /*aadt("DateAndTime",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_DateAndTime; /*aadt("DateAndTime",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_StringTail; /*aadt("StringTail",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_StringTail; /*aadt("StringTail",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_CaseInsensitiveStringConstant; /*aadt("CaseInsensitiveStringConstant",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_CaseInsensitiveStringConstant; /*aadt("CaseInsensitiveStringConstant",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Char; /*aadt("Char",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Char; /*aadt("Char",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_OptionalComma; /*aadt("OptionalComma",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_OptionalComma; /*aadt("OptionalComma",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Header; /*aadt("Header",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Header; /*aadt("Header",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_LocationType; /*aadt("LocationType",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Assignment; /*aadt("Assignment",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Assignment; /*aadt("Assignment",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type $T3; /*aset(aadt("Symbol",[],dataSyntax()))*/ + public final io.usethesource.vallang.type.Type ADT_Exception; /*aadt("Exception",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_FunctionDeclaration; /*aadt("FunctionDeclaration",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_FunctionDeclaration; /*aadt("FunctionDeclaration",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_StringConstant; /*aadt("StringConstant",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_StringConstant; /*aadt("StringConstant",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type $T4; /*aset(aadt("Production",[],dataSyntax()))*/ + public final io.usethesource.vallang.type.Type ADT_JustDate; /*aadt("JustDate",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_JustDate; /*aadt("JustDate",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_TypeVar; /*aadt("TypeVar",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_TypeVar; /*aadt("TypeVar",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_LAYOUTLIST; /*aadt("LAYOUTLIST",[],layoutSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Variant; /*aadt("Variant",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Variant; /*aadt("Variant",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_UserType; /*aadt("UserType",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_UserType; /*aadt("UserType",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Import; /*aadt("Import",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Import; /*aadt("Import",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_FunctionModifiers; /*aadt("FunctionModifiers",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_FunctionModifiers; /*aadt("FunctionModifiers",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Comprehension; /*aadt("Comprehension",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Comprehension; /*aadt("Comprehension",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_ConcreteHole; /*aadt("ConcreteHole",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_ConcreteHole; /*aadt("ConcreteHole",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_TreeSearchResult_1; /*aadt("TreeSearchResult",[aparameter("T",aadt("Tree",[],dataSyntax()),closed=true)],dataSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Message; /*aadt("Message",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_CharRange; /*aadt("CharRange",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Grammar; /*aadt("Grammar",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type $T11; /*alist(aadt("Symbol",[],dataSyntax()))*/ + public final io.usethesource.vallang.type.Type ADT_Sym; /*aadt("Sym",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Sym; /*aadt("Sym",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_RealLiteral; /*aadt("RealLiteral",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_RealLiteral; /*aadt("RealLiteral",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_StringMiddle; /*aadt("StringMiddle",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_StringMiddle; /*aadt("StringMiddle",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Formals; /*aadt("Formals",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Formals; /*aadt("Formals",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Maybe_Attr; /*aadt("Maybe",[aadt("Attr",[],dataSyntax())],dataSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_QualifiedName; /*aadt("QualifiedName",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_QualifiedName; /*aadt("QualifiedName",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_MidPathChars; /*aadt("MidPathChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_MidPathChars; /*aadt("MidPathChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type $T1; /*\iter-seps(aadt("Expression",[],contextFreeSyntax()),[aadt("LAYOUTLIST",[],layoutSyntax()),alit(","),aadt("LAYOUTLIST",[],layoutSyntax())])*/ + public final io.usethesource.vallang.type.Type ADT_ProtocolPart; /*aadt("ProtocolPart",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_ProtocolPart; /*aadt("ProtocolPart",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_NamedBackslash; /*aadt("NamedBackslash",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_NamedBackslash; /*aadt("NamedBackslash",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_MidProtocolChars; /*aadt("MidProtocolChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_MidProtocolChars; /*aadt("MidProtocolChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_RascalKeywords; /*aadt("RascalKeywords",[],keywordSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_StructuredType; /*aadt("StructuredType",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_StructuredType; /*aadt("StructuredType",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Visit; /*aadt("Visit",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Visit; /*aadt("Visit",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Command; /*aadt("Command",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Command; /*aadt("Command",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_StringTemplate; /*aadt("StringTemplate",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_StringTemplate; /*aadt("StringTemplate",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_OctalIntegerLiteral; /*aadt("OctalIntegerLiteral",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_OctalIntegerLiteral; /*aadt("OctalIntegerLiteral",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Parameters; /*aadt("Parameters",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Parameters; /*aadt("Parameters",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_DecimalIntegerLiteral; /*aadt("DecimalIntegerLiteral",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_DecimalIntegerLiteral; /*aadt("DecimalIntegerLiteral",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Assoc; /*aadt("Assoc",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Assoc; /*aadt("Assoc",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_DateTimeLiteral; /*aadt("DateTimeLiteral",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_DateTimeLiteral; /*aadt("DateTimeLiteral",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Label; /*aadt("Label",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Label; /*aadt("Label",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Kind; /*aadt("Kind",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Kind; /*aadt("Kind",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_PathTail; /*aadt("PathTail",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_PathTail; /*aadt("PathTail",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type Maybe_Symbol_just_Symbol; /*acons(aadt("Maybe",[aadt("Symbol",[],dataSyntax())],dataSyntax()),[aadt("Symbol",[],dataSyntax(),alabel="val")],[],alabel="just")*/ + public final io.usethesource.vallang.type.Type ADT_PreProtocolChars; /*aadt("PreProtocolChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_PreProtocolChars; /*aadt("PreProtocolChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_RuntimeException; /*aadt("RuntimeException",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_NamedRegExp; /*aadt("NamedRegExp",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_NamedRegExp; /*aadt("NamedRegExp",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Toplevel; /*aadt("Toplevel",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Toplevel; /*aadt("Toplevel",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_ConcretePart; /*aadt("ConcretePart",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_ConcretePart; /*aadt("ConcretePart",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_PathChars; /*aadt("PathChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_PathChars; /*aadt("PathChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_PostPathChars; /*aadt("PostPathChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_PostPathChars; /*aadt("PostPathChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Condition; /*aadt("Condition",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type $T0; /*aset(aadt("Condition",[],dataSyntax()))*/ + public final io.usethesource.vallang.type.Type ADT_Module; /*aadt("Module",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Module; /*aadt("Module",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_PatternWithAction; /*aadt("PatternWithAction",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_PatternWithAction; /*aadt("PatternWithAction",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_StringCharacter; /*aadt("StringCharacter",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_StringCharacter; /*aadt("StringCharacter",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Literal; /*aadt("Literal",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Literal; /*aadt("Literal",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Statement; /*aadt("Statement",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Statement; /*aadt("Statement",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_EvalCommand; /*aadt("EvalCommand",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_EvalCommand; /*aadt("EvalCommand",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_BasicType; /*aadt("BasicType",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_BasicType; /*aadt("BasicType",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_CommonKeywordParameters; /*aadt("CommonKeywordParameters",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_CommonKeywordParameters; /*aadt("CommonKeywordParameters",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_ProtocolTail; /*aadt("ProtocolTail",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_ProtocolTail; /*aadt("ProtocolTail",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Comment; /*aadt("Comment",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Comment; /*aadt("Comment",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Commands; /*aadt("Commands",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Commands; /*aadt("Commands",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_JustTime; /*aadt("JustTime",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_JustTime; /*aadt("JustTime",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_FunctionModifier; /*aadt("FunctionModifier",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_FunctionModifier; /*aadt("FunctionModifier",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_ProdModifier; /*aadt("ProdModifier",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_ProdModifier; /*aadt("ProdModifier",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Assignable; /*aadt("Assignable",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Assignable; /*aadt("Assignable",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_UnicodeEscape; /*aadt("UnicodeEscape",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_UnicodeEscape; /*aadt("UnicodeEscape",[],lexicalSyntax())*/ + + public $ConcreteSyntax(RascalExecutionContext rex){ + this(rex, null); + } + + public $ConcreteSyntax(RascalExecutionContext rex, Object extended){ + super(rex); + this.$me = extended == null ? this : ($ConcreteSyntax_$I)extended; + ModuleStore mstore = rex.getModuleStore(); + mstore.put(rascal.lang.rascal.grammar.$ConcreteSyntax.class, this); + + mstore.importModule(rascal.lang.rascal.syntax.$Rascal.class, rex, rascal.lang.rascal.syntax.$Rascal::new); + mstore.importModule(rascal.lang.rascal.grammar.definition.$Literals.class, rex, rascal.lang.rascal.grammar.definition.$Literals::new); + mstore.importModule(rascal.$ParseTree.class, rex, rascal.$ParseTree::new); + mstore.importModule(rascal.$ValueIO.class, rex, rascal.$ValueIO::new); + mstore.importModule(rascal.lang.rascal.grammar.definition.$Productions.class, rex, rascal.lang.rascal.grammar.definition.$Productions::new); + mstore.importModule(rascal.lang.rascal.grammar.definition.$Symbols.class, rex, rascal.lang.rascal.grammar.definition.$Symbols::new); + mstore.importModule(rascal.$List.class, rex, rascal.$List::new); + mstore.importModule(rascal.$Grammar.class, rex, rascal.$Grammar::new); + mstore.importModule(rascal.$Message.class, rex, rascal.$Message::new); + mstore.importModule(rascal.lang.rascal.grammar.definition.$Regular.class, rex, rascal.lang.rascal.grammar.definition.$Regular::new); + mstore.importModule(rascal.$Type.class, rex, rascal.$Type::new); + + M_lang_rascal_syntax_Rascal = mstore.getModule(rascal.lang.rascal.syntax.$Rascal.class); + M_lang_rascal_grammar_definition_Literals = mstore.getModule(rascal.lang.rascal.grammar.definition.$Literals.class); + M_ParseTree = mstore.getModule(rascal.$ParseTree.class); + M_ValueIO = mstore.getModule(rascal.$ValueIO.class); + M_lang_rascal_grammar_definition_Productions = mstore.getModule(rascal.lang.rascal.grammar.definition.$Productions.class); + M_lang_rascal_grammar_definition_Symbols = mstore.getModule(rascal.lang.rascal.grammar.definition.$Symbols.class); + M_List = mstore.getModule(rascal.$List.class); + M_Grammar = mstore.getModule(rascal.$Grammar.class); + M_Message = mstore.getModule(rascal.$Message.class); + M_lang_rascal_grammar_definition_Regular = mstore.getModule(rascal.lang.rascal.grammar.definition.$Regular.class); + M_Type = mstore.getModule(rascal.$Type.class); + + + + $TS.importStore(M_lang_rascal_syntax_Rascal.$TS); + $TS.importStore(M_lang_rascal_grammar_definition_Literals.$TS); + $TS.importStore(M_ParseTree.$TS); + $TS.importStore(M_ValueIO.$TS); + $TS.importStore(M_lang_rascal_grammar_definition_Productions.$TS); + $TS.importStore(M_lang_rascal_grammar_definition_Symbols.$TS); + $TS.importStore(M_List.$TS); + $TS.importStore(M_Grammar.$TS); + $TS.importStore(M_Message.$TS); + $TS.importStore(M_lang_rascal_grammar_definition_Regular.$TS); + $TS.importStore(M_Type.$TS); + + $constants = readBinaryConstantsFile(this.getClass(), "rascal/lang/rascal/grammar/$ConcreteSyntax.constants", 12, "a879f06accc59e7b8a3cbc72e7ea7198"); + NT_ProtocolChars = $lex("ProtocolChars"); + ADT_ProtocolChars = $adt("ProtocolChars"); + NT_Strategy = $sort("Strategy"); + ADT_Strategy = $adt("Strategy"); + NT_MidStringChars = $lex("MidStringChars"); + ADT_MidStringChars = $adt("MidStringChars"); + NT_LocalVariableDeclaration = $sort("LocalVariableDeclaration"); + ADT_LocalVariableDeclaration = $adt("LocalVariableDeclaration"); + ADT_Attr = $adt("Attr"); + NT_Replacement = $sort("Replacement"); + ADT_Replacement = $adt("Replacement"); + NT_Expression = $sort("Expression"); + ADT_Expression = $adt("Expression"); + ADT_LocationChangeType = $adt("LocationChangeType"); + ADT_Tree = $adt("Tree"); + NT_Pattern = $sort("Pattern"); + ADT_Pattern = $adt("Pattern"); + NT_TagString = $lex("TagString"); + ADT_TagString = $adt("TagString"); + NT_Name = $lex("Name"); + ADT_Name = $adt("Name"); + NT_LAYOUT = $lex("LAYOUT"); + ADT_LAYOUT = $adt("LAYOUT"); + NT_FunctionType = $sort("FunctionType"); + ADT_FunctionType = $adt("FunctionType"); + NT_PostProtocolChars = $lex("PostProtocolChars"); + ADT_PostProtocolChars = $adt("PostProtocolChars"); + NT_Range = $sort("Range"); + ADT_Range = $adt("Range"); + ADT_IOCapability = $adt("IOCapability"); + NT_Visibility = $sort("Visibility"); + ADT_Visibility = $adt("Visibility"); + NT_DatePart = $lex("DatePart"); + ADT_DatePart = $adt("DatePart"); + NT_Output = $lex("Output"); + ADT_Output = $adt("Output"); + NT_RationalLiteral = $lex("RationalLiteral"); + ADT_RationalLiteral = $adt("RationalLiteral"); + NT_RegExpLiteral = $lex("RegExpLiteral"); + ADT_RegExpLiteral = $adt("RegExpLiteral"); + ADT_Item = $adt("Item"); + ADT_GrammarModule = $adt("GrammarModule"); + ADT_LocationChangeEvent = $adt("LocationChangeEvent"); + NT_RegExpModifier = $lex("RegExpModifier"); + ADT_RegExpModifier = $adt("RegExpModifier"); + NT_Prod = $sort("Prod"); + ADT_Prod = $adt("Prod"); + NT_ModuleParameters = $sort("ModuleParameters"); + ADT_ModuleParameters = $adt("ModuleParameters"); + NT_ImportedModule = $sort("ImportedModule"); + ADT_ImportedModule = $adt("ImportedModule"); + NT_BooleanLiteral = $lex("BooleanLiteral"); + ADT_BooleanLiteral = $adt("BooleanLiteral"); + NT_Case = $sort("Case"); + ADT_Case = $adt("Case"); + NT_Concrete = $lex("Concrete"); + ADT_Concrete = $adt("Concrete"); + NT_Declarator = $sort("Declarator"); + ADT_Declarator = $adt("Declarator"); + NT_SyntaxDefinition = $sort("SyntaxDefinition"); + ADT_SyntaxDefinition = $adt("SyntaxDefinition"); + NT_IntegerLiteral = $sort("IntegerLiteral"); + ADT_IntegerLiteral = $adt("IntegerLiteral"); + NT_Target = $sort("Target"); + ADT_Target = $adt("Target"); + NT_TimePartNoTZ = $lex("TimePartNoTZ"); + ADT_TimePartNoTZ = $adt("TimePartNoTZ"); + NT_KeywordFormals = $sort("KeywordFormals"); + ADT_KeywordFormals = $adt("KeywordFormals"); + NT_DataTarget = $sort("DataTarget"); + ADT_DataTarget = $adt("DataTarget"); + NT_Renaming = $sort("Renaming"); + ADT_Renaming = $adt("Renaming"); + ADT_Production = $adt("Production"); + NT_Renamings = $sort("Renamings"); + ADT_Renamings = $adt("Renamings"); + NT_KeywordFormal = $sort("KeywordFormal"); + ADT_KeywordFormal = $adt("KeywordFormal"); + NT_OptionalExpression = $sort("OptionalExpression"); + ADT_OptionalExpression = $adt("OptionalExpression"); + ADT_GrammarDefinition = $adt("GrammarDefinition"); + NT_Catch = $sort("Catch"); + ADT_Catch = $adt("Catch"); + NT_Field = $sort("Field"); + ADT_Field = $adt("Field"); + NT_FunctionBody = $sort("FunctionBody"); + ADT_FunctionBody = $adt("FunctionBody"); + NT_LocationLiteral = $sort("LocationLiteral"); + ADT_LocationLiteral = $adt("LocationLiteral"); + NT_Tag = $sort("Tag"); + ADT_Tag = $adt("Tag"); + NT_Type = $sort("Type"); + ADT_Type = $adt("Type"); + NT_HexIntegerLiteral = $lex("HexIntegerLiteral"); + ADT_HexIntegerLiteral = $adt("HexIntegerLiteral"); + NT_PostStringChars = $lex("PostStringChars"); + ADT_PostStringChars = $adt("PostStringChars"); + NT_TimeZonePart = $lex("TimeZonePart"); + ADT_TimeZonePart = $adt("TimeZonePart"); + NT_Declaration = $sort("Declaration"); + ADT_Declaration = $adt("Declaration"); + NT_ShellCommand = $sort("ShellCommand"); + ADT_ShellCommand = $adt("ShellCommand"); + NT_PreStringChars = $lex("PreStringChars"); + ADT_PreStringChars = $adt("PreStringChars"); + NT_Nonterminal = $lex("Nonterminal"); + ADT_Nonterminal = $adt("Nonterminal"); + NT_StringLiteral = $sort("StringLiteral"); + ADT_StringLiteral = $adt("StringLiteral"); + NT_NonterminalLabel = $lex("NonterminalLabel"); + ADT_NonterminalLabel = $adt("NonterminalLabel"); + NT_Variable = $sort("Variable"); + ADT_Variable = $adt("Variable"); + NT_TypeArg = $sort("TypeArg"); + ADT_TypeArg = $adt("TypeArg"); + NT_RegExp = $lex("RegExp"); + ADT_RegExp = $adt("RegExp"); + NT_Bound = $sort("Bound"); + ADT_Bound = $adt("Bound"); + NT_PathPart = $sort("PathPart"); + ADT_PathPart = $adt("PathPart"); + NT_Class = $sort("Class"); + ADT_Class = $adt("Class"); + ADT_Associativity = $adt("Associativity"); + NT_Signature = $sort("Signature"); + ADT_Signature = $adt("Signature"); + NT_ModuleActuals = $sort("ModuleActuals"); + ADT_ModuleActuals = $adt("ModuleActuals"); + NT_URLChars = $lex("URLChars"); + ADT_URLChars = $adt("URLChars"); + ADT_Symbol = $adt("Symbol"); + NT_Tags = $sort("Tags"); + ADT_Tags = $adt("Tags"); + NT_DataTypeSelector = $sort("DataTypeSelector"); + ADT_DataTypeSelector = $adt("DataTypeSelector"); + NT_Body = $sort("Body"); + ADT_Body = $adt("Body"); + NT_PrePathChars = $lex("PrePathChars"); + ADT_PrePathChars = $adt("PrePathChars"); + NT_Start = $sort("Start"); + ADT_Start = $adt("Start"); + NT_Backslash = $lex("Backslash"); + ADT_Backslash = $adt("Backslash"); + NT_DateAndTime = $lex("DateAndTime"); + ADT_DateAndTime = $adt("DateAndTime"); + NT_StringTail = $sort("StringTail"); + ADT_StringTail = $adt("StringTail"); + NT_CaseInsensitiveStringConstant = $lex("CaseInsensitiveStringConstant"); + ADT_CaseInsensitiveStringConstant = $adt("CaseInsensitiveStringConstant"); + NT_Char = $lex("Char"); + ADT_Char = $adt("Char"); + NT_OptionalComma = $lex("OptionalComma"); + ADT_OptionalComma = $adt("OptionalComma"); + NT_Header = $sort("Header"); + ADT_Header = $adt("Header"); + ADT_LocationType = $adt("LocationType"); + NT_Assignment = $sort("Assignment"); + ADT_Assignment = $adt("Assignment"); + ADT_Exception = $adt("Exception"); + NT_FunctionDeclaration = $sort("FunctionDeclaration"); + ADT_FunctionDeclaration = $adt("FunctionDeclaration"); + NT_StringConstant = $lex("StringConstant"); + ADT_StringConstant = $adt("StringConstant"); + NT_JustDate = $lex("JustDate"); + ADT_JustDate = $adt("JustDate"); + NT_TypeVar = $sort("TypeVar"); + ADT_TypeVar = $adt("TypeVar"); + ADT_LAYOUTLIST = $layouts("LAYOUTLIST"); + NT_Variant = $sort("Variant"); + ADT_Variant = $adt("Variant"); + NT_UserType = $sort("UserType"); + ADT_UserType = $adt("UserType"); + NT_Import = $sort("Import"); + ADT_Import = $adt("Import"); + NT_FunctionModifiers = $sort("FunctionModifiers"); + ADT_FunctionModifiers = $adt("FunctionModifiers"); + NT_Comprehension = $sort("Comprehension"); + ADT_Comprehension = $adt("Comprehension"); + NT_ConcreteHole = $sort("ConcreteHole"); + ADT_ConcreteHole = $adt("ConcreteHole"); + ADT_Message = $adt("Message"); + ADT_CharRange = $adt("CharRange"); + ADT_Grammar = $adt("Grammar"); + NT_Sym = $sort("Sym"); + ADT_Sym = $adt("Sym"); + NT_RealLiteral = $lex("RealLiteral"); + ADT_RealLiteral = $adt("RealLiteral"); + NT_StringMiddle = $sort("StringMiddle"); + ADT_StringMiddle = $adt("StringMiddle"); + NT_Formals = $sort("Formals"); + ADT_Formals = $adt("Formals"); + NT_QualifiedName = $sort("QualifiedName"); + ADT_QualifiedName = $adt("QualifiedName"); + NT_MidPathChars = $lex("MidPathChars"); + ADT_MidPathChars = $adt("MidPathChars"); + NT_ProtocolPart = $sort("ProtocolPart"); + ADT_ProtocolPart = $adt("ProtocolPart"); + NT_NamedBackslash = $lex("NamedBackslash"); + ADT_NamedBackslash = $adt("NamedBackslash"); + NT_MidProtocolChars = $lex("MidProtocolChars"); + ADT_MidProtocolChars = $adt("MidProtocolChars"); + ADT_RascalKeywords = $keywords("RascalKeywords"); + NT_StructuredType = $sort("StructuredType"); + ADT_StructuredType = $adt("StructuredType"); + NT_Visit = $sort("Visit"); + ADT_Visit = $adt("Visit"); + NT_Command = $sort("Command"); + ADT_Command = $adt("Command"); + NT_StringTemplate = $sort("StringTemplate"); + ADT_StringTemplate = $adt("StringTemplate"); + NT_OctalIntegerLiteral = $lex("OctalIntegerLiteral"); + ADT_OctalIntegerLiteral = $adt("OctalIntegerLiteral"); + NT_Parameters = $sort("Parameters"); + ADT_Parameters = $adt("Parameters"); + NT_DecimalIntegerLiteral = $lex("DecimalIntegerLiteral"); + ADT_DecimalIntegerLiteral = $adt("DecimalIntegerLiteral"); + NT_Assoc = $sort("Assoc"); + ADT_Assoc = $adt("Assoc"); + NT_DateTimeLiteral = $sort("DateTimeLiteral"); + ADT_DateTimeLiteral = $adt("DateTimeLiteral"); + NT_Label = $sort("Label"); + ADT_Label = $adt("Label"); + NT_Kind = $sort("Kind"); + ADT_Kind = $adt("Kind"); + NT_PathTail = $sort("PathTail"); + ADT_PathTail = $adt("PathTail"); + NT_PreProtocolChars = $lex("PreProtocolChars"); + ADT_PreProtocolChars = $adt("PreProtocolChars"); + ADT_RuntimeException = $adt("RuntimeException"); + NT_NamedRegExp = $lex("NamedRegExp"); + ADT_NamedRegExp = $adt("NamedRegExp"); + NT_Toplevel = $sort("Toplevel"); + ADT_Toplevel = $adt("Toplevel"); + NT_ConcretePart = $lex("ConcretePart"); + ADT_ConcretePart = $adt("ConcretePart"); + NT_PathChars = $lex("PathChars"); + ADT_PathChars = $adt("PathChars"); + NT_PostPathChars = $lex("PostPathChars"); + ADT_PostPathChars = $adt("PostPathChars"); + ADT_Condition = $adt("Condition"); + NT_Module = $sort("Module"); + ADT_Module = $adt("Module"); + NT_PatternWithAction = $sort("PatternWithAction"); + ADT_PatternWithAction = $adt("PatternWithAction"); + NT_StringCharacter = $lex("StringCharacter"); + ADT_StringCharacter = $adt("StringCharacter"); + NT_Literal = $sort("Literal"); + ADT_Literal = $adt("Literal"); + NT_Statement = $sort("Statement"); + ADT_Statement = $adt("Statement"); + NT_EvalCommand = $sort("EvalCommand"); + ADT_EvalCommand = $adt("EvalCommand"); + NT_BasicType = $sort("BasicType"); + ADT_BasicType = $adt("BasicType"); + NT_CommonKeywordParameters = $sort("CommonKeywordParameters"); + ADT_CommonKeywordParameters = $adt("CommonKeywordParameters"); + NT_ProtocolTail = $sort("ProtocolTail"); + ADT_ProtocolTail = $adt("ProtocolTail"); + NT_Comment = $lex("Comment"); + ADT_Comment = $adt("Comment"); + NT_Commands = $sort("Commands"); + ADT_Commands = $adt("Commands"); + NT_JustTime = $lex("JustTime"); + ADT_JustTime = $adt("JustTime"); + NT_FunctionModifier = $sort("FunctionModifier"); + ADT_FunctionModifier = $adt("FunctionModifier"); + NT_ProdModifier = $sort("ProdModifier"); + ADT_ProdModifier = $adt("ProdModifier"); + NT_Assignable = $sort("Assignable"); + ADT_Assignable = $adt("Assignable"); + NT_UnicodeEscape = $lex("UnicodeEscape"); + ADT_UnicodeEscape = $adt("UnicodeEscape"); + $T5 = $TF.valueType(); + $T14 = $TF.parameterType("A", $T5); + $T7 = $TF.integerType(); + $T10 = $TF.stringType(); + $T6 = $TF.parameterType("A", $T5); + $T9 = $TF.parameterType("T", $T5); + $T2 = $RTF.nonTerminalType($RVF.constructor(RascalValueFactory.Symbol_Lit, $RVF.string(","))); + NT_Mapping_Expression = $parameterizedSort("Mapping", new Type[] { ADT_Expression }, $RVF.list($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Expression")))); + NT_Mapping_Pattern = $parameterizedSort("Mapping", new Type[] { ADT_Pattern }, $RVF.list($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Pattern")))); + $T12 = $TF.parameterType("T", ADT_Tree); + NT_KeywordArguments_1 = $parameterizedSort("KeywordArguments", new Type[] { $T12 }, $RVF.list($RVF.constructor(RascalValueFactory.Symbol_Parameter, $RVF.string("T"), $RVF.constructor(RascalValueFactory.Symbol_Adt, $RVF.string("Tree"), $RVF.list())))); + $T13 = $TF.parameterType("T", ADT_Tree); + NT_Mapping_1 = $parameterizedSort("Mapping", new Type[] { $T12 }, $RVF.list($RVF.constructor(RascalValueFactory.Symbol_Parameter, $RVF.string("T"), $RVF.constructor(RascalValueFactory.Symbol_Adt, $RVF.string("Tree"), $RVF.list())))); + NT_KeywordArguments_Expression = $parameterizedSort("KeywordArguments", new Type[] { ADT_Expression }, $RVF.list($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Expression")))); + ADT_Maybe_1 = $parameterizedAdt("Maybe", new Type[] { $T14 }); + $T8 = $TF.listType($T9); + NT_KeywordArguments_Pattern = $parameterizedSort("KeywordArguments", new Type[] { ADT_Pattern }, $RVF.list($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Pattern")))); + NT_KeywordArgument_1 = $parameterizedSort("KeywordArgument", new Type[] { $T12 }, $RVF.list($RVF.constructor(RascalValueFactory.Symbol_Parameter, $RVF.string("T"), $RVF.constructor(RascalValueFactory.Symbol_Adt, $RVF.string("Tree"), $RVF.list())))); + ADT_Maybe_Symbol = $parameterizedAdt("Maybe", new Type[] { ADT_Symbol }); + ADT_Maybe_Associativity = $parameterizedAdt("Maybe", new Type[] { ADT_Associativity }); + $T3 = $TF.setType(ADT_Symbol); + $T4 = $TF.setType(ADT_Production); + ADT_TreeSearchResult_1 = $parameterizedAdt("TreeSearchResult", new Type[] { $T12 }); + $T11 = $TF.listType(ADT_Symbol); + ADT_Maybe_Attr = $parameterizedAdt("Maybe", new Type[] { ADT_Attr }); + $T1 = $RTF.nonTerminalType($RVF.constructor(RascalValueFactory.Symbol_IterSeps, $RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Expression")), $RVF.list($RVF.constructor(RascalValueFactory.Symbol_Layouts, $RVF.string("LAYOUTLIST")), $RVF.constructor(RascalValueFactory.Symbol_Lit, $RVF.string(",")), $RVF.constructor(RascalValueFactory.Symbol_Layouts, $RVF.string("LAYOUTLIST"))))); + $T0 = $TF.setType(ADT_Condition); + ADT_Mapping_Expression = $TF.abstractDataType($TS, "Mapping", new Type[] { ADT_Expression }); + ADT_Mapping_Pattern = $TF.abstractDataType($TS, "Mapping", new Type[] { ADT_Pattern }); + ADT_KeywordArguments_1 = $TF.abstractDataType($TS, "KeywordArguments", new Type[] { $T12 }); + ADT_Mapping_1 = $TF.abstractDataType($TS, "Mapping", new Type[] { $T12 }); + ADT_KeywordArguments_Expression = $TF.abstractDataType($TS, "KeywordArguments", new Type[] { ADT_Expression }); + ADT_KeywordArguments_Pattern = $TF.abstractDataType($TS, "KeywordArguments", new Type[] { ADT_Pattern }); + ADT_KeywordArgument_1 = $TF.abstractDataType($TS, "KeywordArgument", new Type[] { $T12 }); + Maybe_Symbol_just_Symbol = $TF.constructor($TS, ADT_Maybe_Symbol, "just", M_ParseTree.ADT_Symbol, "val"); + + + + } + public IList addLabels(IValue $P0, IValue $P1){ // Generated by Resolver + return (IList) M_Type.addLabels($P0, $P1); + } + public IBool sameType(IValue $P0, IValue $P1){ // Generated by Resolver + return (IBool) M_ParseTree.sameType($P0, $P1); + } + public IValue head(IValue $P0){ // Generated by Resolver + return (IValue) M_List.head($P0); + } + public IBool isAliasType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isAliasType($P0); + } + public IBool isStrType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isStrType($P0); + } + public IConstructor choice(IValue $P0, IValue $P1){ // Generated by Resolver + return (IConstructor) M_Type.choice($P0, $P1); + } + public IBool isValueType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isValueType($P0); + } + public IBool isADTType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isADTType($P0); + } + public IBool isListType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isListType($P0); + } + public IBool isRealType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isRealType($P0); + } + public IBool isTypeVar(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isTypeVar($P0); + } + public IBool quotable(IValue $P0){ // Generated by Resolver + IBool $result = null; + Type $P0Type = $P0.getType(); + if($isSubtypeOf($P0Type, M_ParseTree.ADT_Symbol)){ + $result = (IBool)lang_rascal_grammar_ConcreteSyntax_quotable$680d29382a1c78b9((IConstructor) $P0); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0)); + } + public IConstructor priority(IValue $P0, IValue $P1){ // Generated by Resolver + return (IConstructor) M_ParseTree.priority($P0, $P1); + } + public IBool isNodeType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isNodeType($P0); + } + public INode conditional(IValue $P0, IValue $P1){ // Generated by Resolver + INode $result = null; + Type $P0Type = $P0.getType(); + Type $P1Type = $P1.getType(); + if($isSubtypeOf($P0Type, M_ParseTree.ADT_Symbol) && $isSubtypeOf($P1Type,$T0)){ + $result = (INode)M_lang_rascal_grammar_definition_Symbols.lang_rascal_grammar_definition_Symbols_conditional$f9ac60504818807f((IConstructor) $P0, (ISet) $P1); + if($result != null) return $result; + } + if($isSubtypeOf($P0Type, M_ParseTree.ADT_Symbol) && $isSubtypeOf($P1Type,$T0)){ + $result = (INode)M_lang_rascal_grammar_definition_Symbols.lang_rascal_grammar_definition_Symbols_conditional$a78f69e7726562ef((IConstructor) $P0, (ISet) $P1); + if($result != null) return $result; + } + if($isNonTerminal($P0Type, M_lang_rascal_syntax_Rascal.NT_Expression) && $isSubtypeOf($P1Type,$T1)){ + return $RVF.constructor(M_lang_rascal_syntax_Rascal.Replacement_conditional_Expression_iter_seps_Expression, new IValue[]{(ITree) $P0, (ITree) $P1}); + } + if($isSubtypeOf($P0Type, M_ParseTree.ADT_Symbol) && $isSubtypeOf($P1Type,$T0)){ + return $RVF.constructor(M_ParseTree.Symbol_conditional_Symbol_set_Condition, new IValue[]{(IConstructor) $P0, (ISet) $P1}); + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0, $P1)); + } + public IConstructor grammar(IValue $P0){ // Generated by Resolver + return (IConstructor) M_Grammar.grammar($P0); + } + public IConstructor grammar(IValue $P0, IValue $P1){ // Generated by Resolver + return (IConstructor) M_Grammar.grammar($P0, $P1); + } + public IBool isReifiedType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isReifiedType($P0); + } + public IConstructor alt(IValue $P0){ // Generated by Resolver + IConstructor $result = null; + Type $P0Type = $P0.getType(); + if($isSubtypeOf($P0Type,$T3)){ + $result = (IConstructor)M_lang_rascal_grammar_definition_Symbols.lang_rascal_grammar_definition_Symbols_alt$01fd93bf17a1bf85((ISet) $P0); + if($result != null) return $result; + } + if($isSubtypeOf($P0Type,$T3)){ + return $RVF.constructor(M_ParseTree.Symbol_alt_set_Symbol, new IValue[]{(ISet) $P0}); + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0)); + } + public IBool isRelType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isRelType($P0); + } + public IBool isConstructorType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isConstructorType($P0); + } + public IBool isListRelType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isListRelType($P0); + } + public IList addParamLabels(IValue $P0, IValue $P1){ // Generated by Resolver + return (IList) M_Type.addParamLabels($P0, $P1); + } + public IBool isMapType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isMapType($P0); + } + public IConstructor denormalize(IValue $P0){ // Generated by Resolver + IConstructor $result = null; + Type $P0Type = $P0.getType(); + if($isSubtypeOf($P0Type, M_ParseTree.ADT_Symbol)){ + $result = (IConstructor)lang_rascal_grammar_ConcreteSyntax_denormalize$4c78b58e0f495b46((IConstructor) $P0); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0)); + } + public IBool isBoolType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isBoolType($P0); + } + public IList tail(IValue $P0){ // Generated by Resolver + return (IList) M_List.tail($P0); + } + public IBool isLocType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isLocType($P0); + } + public ITuple headTail(IValue $P0){ // Generated by Resolver + return (ITuple) M_List.headTail($P0); + } + public IConstructor removeConditionals(IValue $P0){ // Generated by Resolver + IConstructor $result = null; + Type $P0Type = $P0.getType(); + if($isSubtypeOf($P0Type, M_ParseTree.ADT_Symbol)){ + $result = (IConstructor)lang_rascal_grammar_ConcreteSyntax_removeConditionals$1b9a2d93ca8b55aa((IConstructor) $P0); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0)); + } + public IConstructor treeAt(IValue $P0, IValue $P1, IValue $P2){ // Generated by Resolver + return (IConstructor) M_ParseTree.treeAt($P0, $P1, $P2); + } + public IBool isRegular(IValue $P0){ // Generated by Resolver + return (IBool) M_lang_rascal_grammar_definition_Regular.isRegular($P0); + } + public IConstructor addHoles(IValue $P0){ // Generated by Resolver + IConstructor $result = null; + Type $P0Type = $P0.getType(); + if($isSubtypeOf($P0Type, M_Grammar.ADT_Grammar)){ + $result = (IConstructor)lang_rascal_grammar_ConcreteSyntax_addHoles$8cbb5848861efd13((IConstructor) $P0); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0)); + } + public IBool isSetType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isSetType($P0); + } + public ISet holes(IValue $P0){ // Generated by Resolver + ISet $result = null; + Type $P0Type = $P0.getType(); + if($isSubtypeOf($P0Type, M_Grammar.ADT_Grammar)){ + $result = (ISet)lang_rascal_grammar_ConcreteSyntax_holes$03f1fb334e65ead1((IConstructor) $P0); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0)); + } + public IBool isRatType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isRatType($P0); + } + public IBool isNumType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isNumType($P0); + } + public IBool isTupleType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isTupleType($P0); + } + public IBool isBagType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isBagType($P0); + } + public IBool isVoidType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isVoidType($P0); + } + public IConstructor strip(IValue $P0){ // Generated by Resolver + return (IConstructor) M_lang_rascal_grammar_definition_Symbols.strip($P0); + } + public IBool isNonTerminalType(IValue $P0){ // Generated by Resolver + return (IBool) M_ParseTree.isNonTerminalType($P0); + } + public IValue lub(IValue $P0, IValue $P1){ // Generated by Resolver + return (IValue) M_Type.lub($P0, $P1); + } + public IBool subtype(IValue $P0, IValue $P1){ // Generated by Resolver + return (IBool) M_Type.subtype($P0, $P1); + } + public IConstructor associativity(IValue $P0, IValue $P1, IValue $P2){ // Generated by Resolver + IConstructor $result = null; + Type $P0Type = $P0.getType(); + Type $P1Type = $P1.getType(); + Type $P2Type = $P2.getType(); + if($isSubtypeOf($P0Type, M_ParseTree.ADT_Symbol) && $isSubtypeOf($P1Type, M_ParseTree.ADT_Associativity) && $isSubtypeOf($P2Type,$T4)){ + $result = (IConstructor)M_ParseTree.ParseTree_associativity$9299e943b00366a7((IConstructor) $P0, (IConstructor) $P1, (ISet) $P2); + if($result != null) return $result; + $result = (IConstructor)M_ParseTree.ParseTree_associativity$95843a2f3959b22f((IConstructor) $P0, (IConstructor) $P1, (ISet) $P2); + if($result != null) return $result; + $result = (IConstructor)M_ParseTree.ParseTree_associativity$05ee42b13b7e96fb((IConstructor) $P0, (IConstructor) $P1, (ISet) $P2); + if($result != null) return $result; + } + if($isSubtypeOf($P0Type, M_ParseTree.ADT_Symbol) && $isSubtypeOf($P1Type, ADT_Maybe_1) && $isSubtypeOf($P2Type, M_ParseTree.ADT_Production)){ + $result = (IConstructor)M_lang_rascal_grammar_definition_Productions.lang_rascal_grammar_definition_Productions_associativity$09cd814bba935894((IConstructor) $P0, (IConstructor) $P1, (IConstructor) $P2); + if($result != null) return $result; + } + if($isSubtypeOf($P0Type, M_ParseTree.ADT_Symbol) && $isSubtypeOf($P1Type, ADT_Maybe_Associativity) && $isSubtypeOf($P2Type, M_ParseTree.ADT_Production)){ + $result = (IConstructor)M_lang_rascal_grammar_definition_Productions.lang_rascal_grammar_definition_Productions_associativity$fe1234ba22a8be5e((IConstructor) $P0, (IConstructor) $P1, (IConstructor) $P2); + if($result != null) return $result; + } + if($isSubtypeOf($P0Type, M_ParseTree.ADT_Symbol) && $isSubtypeOf($P1Type, M_ParseTree.ADT_Associativity) && $isSubtypeOf($P2Type,$T4)){ + return $RVF.constructor(M_ParseTree.Production_associativity_Symbol_Associativity_set_Production, new IValue[]{(IConstructor) $P0, (IConstructor) $P1, (ISet) $P2}); + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0, $P1, $P2)); + } + public IString createHole(IValue $P0, IValue $P1){ // Generated by Resolver + IString $result = null; + Type $P0Type = $P0.getType(); + Type $P1Type = $P1.getType(); + if($isNonTerminal($P0Type, ((IConstructor)$constants.get(0)/*lex("ConcretePart")*/)) && $isSubtypeOf($P1Type,$T7)){ + $result = (IString)lang_rascal_grammar_ConcreteSyntax_createHole$ac32fafc387346a9((ITree) $P0, (IInteger) $P1); + if($result != null) return $result; + } + if($isNonTerminal($P0Type, M_lang_rascal_syntax_Rascal.NT_ConcreteHole) && $isSubtypeOf($P1Type,$T7)){ + $result = (IString)lang_rascal_grammar_ConcreteSyntax_createHole$26f274dc24874dc2((ITree) $P0, (IInteger) $P1); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0, $P1)); + } + public IBool isFunctionType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isFunctionType($P0); + } + public IValue glb(IValue $P0, IValue $P1){ // Generated by Resolver + return (IValue) M_Type.glb($P0, $P1); + } + public IValue sort(IValue $P0){ // Generated by Resolver + IValue $result = null; + Type $P0Type = $P0.getType(); + if($isSubtypeOf($P0Type,$T8)){ + $result = (IValue)M_List.List_sort$1fe4426c8c8039da((IList) $P0); + if($result != null) return $result; + } + if($isSubtypeOf($P0Type,$T10)){ + return $RVF.constructor(M_ParseTree.Symbol_sort_str, new IValue[]{(IString) $P0}); + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0)); + } + public IList sort(IValue $P0, IValue $P1){ // Generated by Resolver + return (IList) M_List.sort($P0, $P1); + } + public IConstructor seq(IValue $P0){ // Generated by Resolver + IConstructor $result = null; + Type $P0Type = $P0.getType(); + if($isSubtypeOf($P0Type,$T11)){ + $result = (IConstructor)M_lang_rascal_grammar_definition_Symbols.lang_rascal_grammar_definition_Symbols_seq$5dde90ea795fac79((IList) $P0); + if($result != null) return $result; + } + if($isSubtypeOf($P0Type,$T11)){ + return $RVF.constructor(M_ParseTree.Symbol_seq_list_Symbol, new IValue[]{(IList) $P0}); + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0)); + } + public IConstructor getTargetSymbol(IValue $P0){ // Generated by Resolver + IConstructor $result = null; + Type $P0Type = $P0.getType(); + if($isSubtypeOf($P0Type, M_ParseTree.ADT_Symbol)){ + $result = (IConstructor)lang_rascal_grammar_ConcreteSyntax_getTargetSymbol$7996d10be911e8cc((IConstructor) $P0); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0)); + } + public IBool isIntType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isIntType($P0); + } + public IBool isDateTimeType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isDateTimeType($P0); + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/lang/rascal/grammar/ConcreteSyntax.rsc|(852,86,<22,0>,<22,86>) + public IConstructor lang_rascal_grammar_ConcreteSyntax_addHoles$8cbb5848861efd13(IConstructor object_0){ + + + return ((IConstructor)(M_Grammar.compose(((IConstructor)object_0), ((IConstructor)(M_Grammar.grammar(((ISet)$constants.get(1)/*{}*/), ((ISet)($me.holes(((IConstructor)object_0)))))))))); + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/lang/rascal/grammar/ConcreteSyntax.rsc|(940,1691,<24,0>,<47,1>) + public ISet lang_rascal_grammar_ConcreteSyntax_holes$03f1fb334e65ead1(IConstructor object_0){ + + + final ISetWriter $setwriter0 = (ISetWriter)$RVF.setWriter(); + ; + $SCOMP1_GEN2573: + for(IValue $elem3_for : ((IMap)(((IMap)($aadt_get_field(((IConstructor)object_0), "rules")))))){ + IConstructor $elem3 = (IConstructor) $elem3_for; + if(true){ + IConstructor nont_1 = ((IConstructor)($elem3)); + if((((IBool)($me.quotable(((IConstructor)nont_1))))).getValue()){ + $setwriter0.insert(((IConstructor)$constants.get(2)/*regular(iter(\char-class([range(48,57)])))*/)); + final Template $template2 = (Template)new Template($RVF, ""); + $template2.addVal($me.removeConditionals(((IConstructor)($me.denormalize(((IConstructor)nont_1)))))); + $setwriter0.insert($RVF.constructor(M_ParseTree.Production_prod_Symbol_list_Symbol_set_Attr, new IValue[]{((IConstructor)($RVF.constructor(M_Type.Symbol_label_str_Symbol, new IValue[]{((IString)$constants.get(5)/*"$MetaHole"*/), ((IConstructor)($me.getTargetSymbol(((IConstructor)nont_1))))}))), ((IList)($RVF.list(((IConstructor)$constants.get(6)/*\char-class([range(0,0)])*/), $RVF.constructor(M_ParseTree.Symbol_lit_str, new IValue[]{((IString)($template2.close()))}), ((IConstructor)$constants.get(7)/*lit(":")*/), ((IConstructor)$constants.get(4)/*iter(\char-class([range(48,57)]))*/), ((IConstructor)$constants.get(6)/*\char-class([range(0,0)])*/)))), ((ISet)($RVF.set(((IConstructor)($RVF.constructor(M_Type.Attr_tag_value, new IValue[]{((IValue)($RVF.node(((IString)(((IString)$constants.get(8)/*"holeType"*/))).getValue(), new IValue[] { nont_1 }, Collections.emptyMap())))}))))))})); + + } else { + continue $SCOMP1_GEN2573; + } + + } else { + continue $SCOMP1_GEN2573; + } + } + + return ((ISet)($setwriter0.done())); + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/lang/rascal/grammar/ConcreteSyntax.rsc|(2633,243,<49,0>,<51,79>) + public IString lang_rascal_grammar_ConcreteSyntax_createHole$ac32fafc387346a9(ITree hole_0, IInteger idx_1){ + + + return ((IString)($me.createHole(((ITree)(((ITree)($aadt_get_field(((IConstructor)hole_0), "hole"))))), ((IInteger)idx_1)))); + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/lang/rascal/grammar/ConcreteSyntax.rsc|(2877,111,<52,0>,<52,111>) + public IString lang_rascal_grammar_ConcreteSyntax_createHole$26f274dc24874dc2(ITree hole_0, IInteger idx_1){ + + + final Template $template4 = (Template)new Template($RVF, ""); + $template4.beginIndent(" "); + $template4.addVal($me.denormalize(((IConstructor)(M_lang_rascal_grammar_definition_Symbols.sym2symbol(((ITree)(((ITree)($aadt_get_field(((IConstructor)hole_0), "symbol")))))))))); + $template4.endIndent(" "); + $template4.addStr(":"); + $template4.beginIndent(" "); + $template4.addVal(idx_1); + $template4.endIndent(" "); + $template4.addStr(""); + return ((IString)($template4.close())); + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/lang/rascal/grammar/ConcreteSyntax.rsc|(2991,805,<55,0>,<65,2>) + public IConstructor lang_rascal_grammar_ConcreteSyntax_denormalize$4c78b58e0f495b46(IConstructor s_0){ + + + try { + IValue $visitResult = $TRAVERSE.traverse(DIRECTION.BottomUp, PROGRESS.Continuing, FIXEDPOINT.No, REBUILD.Yes, + new DescendantDescriptor(new io.usethesource.vallang.type.Type[]{$TF.listType(ADT_Symbol), M_Type.ADT_Exception, $TF.setType(ADT_Symbol), $TF.setType(ADT_Condition), M_lang_rascal_syntax_Rascal.ADT_KeywordArguments_1, M_ParseTree.ADT_Tree, M_ParseTree.ADT_TreeSearchResult_1, M_ParseTree.ADT_Condition, M_ParseTree.ADT_Production, M_ParseTree.ADT_Symbol, M_Grammar.ADT_Grammar, M_ParseTree.ADT_CharRange, M_Grammar.ADT_Item, M_Grammar.ADT_GrammarModule, $TF.listType(ADT_CharRange), M_Grammar.ADT_GrammarDefinition}, + new io.usethesource.vallang.IConstructor[]{}, + $RVF.bool(false)), + s_0, + (IVisitFunction) (IValue $VISIT0_subject, TraversalState $traversalState) -> { + VISIT0:switch(Fingerprint.getFingerprint($VISIT0_subject)){ + + case -964239440: + if($isSubtypeOf($VISIT0_subject.getType(),M_ParseTree.ADT_Symbol)){ + /*muExists*/CASE_964239440_2: + do { + if($has_type_and_arity($VISIT0_subject, M_ParseTree.Symbol_iter_star_seps_Symbol_list_Symbol, 2)){ + IValue $arg0_22 = (IValue)($aadt_subscript_int(((IConstructor)($VISIT0_subject)),0)); + if($isComparable($arg0_22.getType(), M_ParseTree.ADT_Symbol)){ + ValueRef u_4 = new ValueRef(); + IValue $arg1_16 = (IValue)($aadt_subscript_int(((IConstructor)($VISIT0_subject)),1)); + if($isComparable($arg1_16.getType(), $T11)){ + final IList $subject17 = ((IList)($arg1_16)); + int $subject17_cursor = 0; + if($isSubtypeOf($subject17.getType(),$T11)){ + final int $subject17_len = (int)((IList)($subject17)).length(); + if($subject17_len == 3){ + final IConstructor $subject20 = ((IConstructor)($alist_subscript_int(((IList)($subject17)),$subject17_cursor))); + if($has_type_and_arity($subject20, M_ParseTree.Symbol_layouts_str, 1)){ + IValue $arg0_21 = (IValue)($aadt_subscript_int(((IConstructor)($subject20)),0)); + if($isComparable($arg0_21.getType(), $T5)){ + $subject17_cursor += 1; + if($subject17_cursor < $subject17_len){ + IConstructor t_5 = ((IConstructor)($alist_subscript_int(((IList)($subject17)),$subject17_cursor))); + $subject17_cursor += 1; + final IConstructor $subject18 = ((IConstructor)($alist_subscript_int(((IList)($subject17)),$subject17_cursor))); + if($has_type_and_arity($subject18, M_ParseTree.Symbol_layouts_str, 1)){ + IValue $arg0_19 = (IValue)($aadt_subscript_int(((IConstructor)($subject18)),0)); + if($isComparable($arg0_19.getType(), $T5)){ + $subject17_cursor += 1; + if($subject17_cursor == $subject17_len){ + IConstructor $replacement15 = (IConstructor)($RVF.constructor(M_ParseTree.Symbol_iter_star_seps_Symbol_list_Symbol, new IValue[]{((IConstructor)($arg0_22)), ((IList)($RVF.list(((IConstructor)t_5))))})); + if($isSubtypeOf($replacement15.getType(),$VISIT0_subject.getType())){ + $traversalState.setMatchedAndChanged(true, true); + return $replacement15; + + } else { + break VISIT0;// switch + + } + } else { + continue CASE_964239440_2;/*list match1*/ + } + } + + } + + } + + } + + } + + } + + } + + } + + } + + } + + } while(false); + + } + if($isSubtypeOf($VISIT0_subject.getType(),M_ParseTree.ADT_Symbol)){ + /*muExists*/CASE_964239440_4: + do { + if($has_type_and_arity($VISIT0_subject, M_ParseTree.Symbol_iter_star_seps_Symbol_list_Symbol, 2)){ + IValue $arg0_34 = (IValue)($aadt_subscript_int(((IConstructor)($VISIT0_subject)),0)); + if($isComparable($arg0_34.getType(), M_ParseTree.ADT_Symbol)){ + ValueRef u_7 = new ValueRef(); + IValue $arg1_30 = (IValue)($aadt_subscript_int(((IConstructor)($VISIT0_subject)),1)); + if($isComparable($arg1_30.getType(), $T11)){ + final IList $subject31 = ((IList)($arg1_30)); + int $subject31_cursor = 0; + if($isSubtypeOf($subject31.getType(),$T11)){ + final int $subject31_len = (int)((IList)($subject31)).length(); + if($subject31_len == 1){ + final IConstructor $subject32 = ((IConstructor)($alist_subscript_int(((IList)($subject31)),$subject31_cursor))); + if($has_type_and_arity($subject32, M_ParseTree.Symbol_layouts_str, 1)){ + IValue $arg0_33 = (IValue)($aadt_subscript_int(((IConstructor)($subject32)),0)); + if($isComparable($arg0_33.getType(), $T5)){ + $subject31_cursor += 1; + if($subject31_cursor == $subject31_len){ + IConstructor $replacement29 = (IConstructor)($RVF.constructor(M_ParseTree.Symbol_iter_star_Symbol, new IValue[]{((IConstructor)($arg0_34))})); + if($isSubtypeOf($replacement29.getType(),$VISIT0_subject.getType())){ + $traversalState.setMatchedAndChanged(true, true); + return $replacement29; + + } else { + break VISIT0;// switch + + } + } else { + continue CASE_964239440_4;/*list match1*/ + } + } + + } + + } + + } + + } + + } + + } + + } while(false); + + } + + + case 856312: + if($isSubtypeOf($VISIT0_subject.getType(),M_ParseTree.ADT_Symbol)){ + /*muExists*/CASE_856312_0: + do { + if($has_type_and_arity($VISIT0_subject, M_ParseTree.Symbol_lex_str, 1)){ + IValue $arg0_6 = (IValue)($aadt_subscript_int(((IConstructor)($VISIT0_subject)),0)); + if($isComparable($arg0_6.getType(), $T10)){ + ValueRef n_1 = new ValueRef(); + IConstructor $replacement5 = (IConstructor)($RVF.constructor(M_ParseTree.Symbol_sort_str, new IValue[]{((IString)($arg0_6))})); + if($isSubtypeOf($replacement5.getType(),$VISIT0_subject.getType())){ + $traversalState.setMatchedAndChanged(true, true); + return $replacement5; + + } else { + break VISIT0;// switch + + } + } + + } + + } while(false); + + } + + + case 910072: + if($isSubtypeOf($VISIT0_subject.getType(),M_ParseTree.ADT_Symbol)){ + /*muExists*/CASE_910072_5: + do { + if($has_type_and_arity($VISIT0_subject, M_ParseTree.Symbol_seq_list_Symbol, 1)){ + IValue $arg0_39 = (IValue)($aadt_subscript_int(((IConstructor)($VISIT0_subject)),0)); + if($isComparable($arg0_39.getType(), $T11)){ + ValueRef ss_8 = new ValueRef(); + final IListWriter $listwriter36 = (IListWriter)$RVF.listWriter(); + $LCOMP37_GEN3767: + for(IValue $elem38_for : ((IList)($arg0_39))){ + IConstructor $elem38 = (IConstructor) $elem38_for; + ValueRef t_9 = new ValueRef(); + if($is(((IConstructor)($elem38)),((IString)$constants.get(9)/*"layouts"*/))){ + continue $LCOMP37_GEN3767; + } else { + $listwriter36.append($elem38); + + } + + } + + IConstructor $replacement35 = (IConstructor)(seq(((IList)($listwriter36.done())))); + if($isSubtypeOf($replacement35.getType(),$VISIT0_subject.getType())){ + $traversalState.setMatchedAndChanged(true, true); + return $replacement35; + + } else { + break VISIT0;// switch + + } + } + + } + + } while(false); + + } + + + case 1652184736: + if($isSubtypeOf($VISIT0_subject.getType(),M_ParseTree.ADT_Symbol)){ + /*muExists*/CASE_1652184736_1: + do { + if($has_type_and_arity($VISIT0_subject, M_ParseTree.Symbol_iter_seps_Symbol_list_Symbol, 2)){ + IValue $arg0_14 = (IValue)($aadt_subscript_int(((IConstructor)($VISIT0_subject)),0)); + if($isComparable($arg0_14.getType(), M_ParseTree.ADT_Symbol)){ + ValueRef u_2 = new ValueRef(); + IValue $arg1_8 = (IValue)($aadt_subscript_int(((IConstructor)($VISIT0_subject)),1)); + if($isComparable($arg1_8.getType(), $T11)){ + final IList $subject9 = ((IList)($arg1_8)); + int $subject9_cursor = 0; + if($isSubtypeOf($subject9.getType(),$T11)){ + final int $subject9_len = (int)((IList)($subject9)).length(); + if($subject9_len == 3){ + final IConstructor $subject12 = ((IConstructor)($alist_subscript_int(((IList)($subject9)),$subject9_cursor))); + if($has_type_and_arity($subject12, M_ParseTree.Symbol_layouts_str, 1)){ + IValue $arg0_13 = (IValue)($aadt_subscript_int(((IConstructor)($subject12)),0)); + if($isComparable($arg0_13.getType(), $T5)){ + $subject9_cursor += 1; + if($subject9_cursor < $subject9_len){ + IConstructor t_3 = ((IConstructor)($alist_subscript_int(((IList)($subject9)),$subject9_cursor))); + $subject9_cursor += 1; + final IConstructor $subject10 = ((IConstructor)($alist_subscript_int(((IList)($subject9)),$subject9_cursor))); + if($has_type_and_arity($subject10, M_ParseTree.Symbol_layouts_str, 1)){ + IValue $arg0_11 = (IValue)($aadt_subscript_int(((IConstructor)($subject10)),0)); + if($isComparable($arg0_11.getType(), $T5)){ + $subject9_cursor += 1; + if($subject9_cursor == $subject9_len){ + IConstructor $replacement7 = (IConstructor)($RVF.constructor(M_ParseTree.Symbol_iter_seps_Symbol_list_Symbol, new IValue[]{((IConstructor)($arg0_14)), ((IList)($RVF.list(((IConstructor)t_3))))})); + if($isSubtypeOf($replacement7.getType(),$VISIT0_subject.getType())){ + $traversalState.setMatchedAndChanged(true, true); + return $replacement7; + + } else { + break VISIT0;// switch + + } + } else { + continue CASE_1652184736_1;/*list match1*/ + } + } + + } + + } + + } + + } + + } + + } + + } + + } + + } + + } while(false); + + } + if($isSubtypeOf($VISIT0_subject.getType(),M_ParseTree.ADT_Symbol)){ + /*muExists*/CASE_1652184736_3: + do { + if($has_type_and_arity($VISIT0_subject, M_ParseTree.Symbol_iter_seps_Symbol_list_Symbol, 2)){ + IValue $arg0_28 = (IValue)($aadt_subscript_int(((IConstructor)($VISIT0_subject)),0)); + if($isComparable($arg0_28.getType(), M_ParseTree.ADT_Symbol)){ + ValueRef u_6 = new ValueRef(); + IValue $arg1_24 = (IValue)($aadt_subscript_int(((IConstructor)($VISIT0_subject)),1)); + if($isComparable($arg1_24.getType(), $T11)){ + final IList $subject25 = ((IList)($arg1_24)); + int $subject25_cursor = 0; + if($isSubtypeOf($subject25.getType(),$T11)){ + final int $subject25_len = (int)((IList)($subject25)).length(); + if($subject25_len == 1){ + final IConstructor $subject26 = ((IConstructor)($alist_subscript_int(((IList)($subject25)),$subject25_cursor))); + if($has_type_and_arity($subject26, M_ParseTree.Symbol_layouts_str, 1)){ + IValue $arg0_27 = (IValue)($aadt_subscript_int(((IConstructor)($subject26)),0)); + if($isComparable($arg0_27.getType(), $T5)){ + $subject25_cursor += 1; + if($subject25_cursor == $subject25_len){ + IConstructor $replacement23 = (IConstructor)($RVF.constructor(M_ParseTree.Symbol_iter_Symbol, new IValue[]{((IConstructor)($arg0_28))})); + if($isSubtypeOf($replacement23.getType(),$VISIT0_subject.getType())){ + $traversalState.setMatchedAndChanged(true, true); + return $replacement23; + + } else { + break VISIT0;// switch + + } + } else { + continue CASE_1652184736_3;/*list match1*/ + } + } + + } + + } + + } + + } + + } + + } + + } while(false); + + } + + + + } + return $VISIT0_subject; + }); + return (IConstructor)$visitResult; + + } catch (ReturnFromTraversalException e) { + return (IConstructor) e.getValue(); + } + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/lang/rascal/grammar/ConcreteSyntax.rsc|(3798,100,<67,0>,<69,2>) + public IConstructor lang_rascal_grammar_ConcreteSyntax_removeConditionals$1b9a2d93ca8b55aa(IConstructor sym_0){ + + + try { + IValue $visitResult = $TRAVERSE.traverse(DIRECTION.BottomUp, PROGRESS.Continuing, FIXEDPOINT.No, REBUILD.Yes, + new DescendantDescriptor(new io.usethesource.vallang.type.Type[]{$TF.listType(ADT_Symbol), M_Type.ADT_Exception, $TF.setType(ADT_Symbol), $TF.setType(ADT_Condition), M_lang_rascal_syntax_Rascal.ADT_KeywordArguments_1, M_ParseTree.ADT_Tree, M_ParseTree.ADT_TreeSearchResult_1, M_ParseTree.ADT_Condition, M_ParseTree.ADT_Production, M_ParseTree.ADT_Symbol, M_Grammar.ADT_Grammar, M_ParseTree.ADT_CharRange, M_Grammar.ADT_Item, M_Grammar.ADT_GrammarModule, $TF.listType(ADT_CharRange), M_Grammar.ADT_GrammarDefinition}, + new io.usethesource.vallang.IConstructor[]{}, + $RVF.bool(false)), + sym_0, + (IVisitFunction) (IValue $VISIT1_subject, TraversalState $traversalState) -> { + VISIT1:switch(Fingerprint.getFingerprint($VISIT1_subject)){ + + case -2144737184: + if($isSubtypeOf($VISIT1_subject.getType(),M_ParseTree.ADT_Symbol)){ + /*muExists*/CASE_2144737184_0: + do { + if($has_type_and_arity($VISIT1_subject, M_ParseTree.Symbol_conditional_Symbol_set_Condition, 2)){ + IValue $arg0_42 = (IValue)($aadt_subscript_int(((IConstructor)($VISIT1_subject)),0)); + if($isComparable($arg0_42.getType(), M_ParseTree.ADT_Symbol)){ + ValueRef s_1 = new ValueRef(); + IValue $arg1_41 = (IValue)($aadt_subscript_int(((IConstructor)($VISIT1_subject)),1)); + if($isComparable($arg1_41.getType(), $T5)){ + IConstructor $replacement40 = (IConstructor)($arg0_42); + if($isSubtypeOf($replacement40.getType(),$VISIT1_subject.getType())){ + $traversalState.setMatchedAndChanged(true, true); + return $replacement40; + + } else { + break VISIT1;// switch + + } + } + + } + + } + + } while(false); + + } + + + + } + return $VISIT1_subject; + }); + return (IConstructor)$visitResult; + + } catch (ReturnFromTraversalException e) { + return (IConstructor) e.getValue(); + } + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/lang/rascal/grammar/ConcreteSyntax.rsc|(3900,415,<71,0>,<81,1>) + public IConstructor lang_rascal_grammar_ConcreteSyntax_getTargetSymbol$7996d10be911e8cc(IConstructor sym_0){ + + + final IConstructor $switchVal43 = ((IConstructor)sym_0); + boolean noCaseMatched_$switchVal43 = true; + SWITCH2: switch(Fingerprint.getFingerprint($switchVal43)){ + + case -964239440: + if(noCaseMatched_$switchVal43){ + noCaseMatched_$switchVal43 = false; + if($isSubtypeOf($switchVal43.getType(),M_ParseTree.ADT_Symbol)){ + /*muExists*/CASE_964239440_3: + do { + if($has_type_and_arity($switchVal43, M_ParseTree.Symbol_iter_star_seps_Symbol_list_Symbol, 2)){ + IValue $arg0_49 = (IValue)($aadt_subscript_int(((IConstructor)($switchVal43)),0)); + if($isComparable($arg0_49.getType(), M_ParseTree.ADT_Symbol)){ + IConstructor s_4 = null; + IValue $arg1_48 = (IValue)($aadt_subscript_int(((IConstructor)($switchVal43)),1)); + if($isComparable($arg1_48.getType(), $T5)){ + return ((IConstructor)($arg0_49)); + + } + + } + + } + + } while(false); + + } + + } + + + case 25942208: + if(noCaseMatched_$switchVal43){ + noCaseMatched_$switchVal43 = false; + if($isSubtypeOf($switchVal43.getType(),M_ParseTree.ADT_Symbol)){ + /*muExists*/CASE_25942208_0: + do { + if($has_type_and_arity($switchVal43, M_ParseTree.Symbol_iter_Symbol, 1)){ + IValue $arg0_44 = (IValue)($aadt_subscript_int(((IConstructor)($switchVal43)),0)); + if($isComparable($arg0_44.getType(), M_ParseTree.ADT_Symbol)){ + IConstructor s_1 = null; + return ((IConstructor)($arg0_44)); + + } + + } + + } while(false); + + } + + } + + + case 882072: + if(noCaseMatched_$switchVal43){ + noCaseMatched_$switchVal43 = false; + if($isSubtypeOf($switchVal43.getType(),M_ParseTree.ADT_Symbol)){ + /*muExists*/CASE_882072_4: + do { + if($has_type_and_arity($switchVal43, M_ParseTree.Symbol_opt_Symbol, 1)){ + IValue $arg0_50 = (IValue)($aadt_subscript_int(((IConstructor)($switchVal43)),0)); + if($isComparable($arg0_50.getType(), M_ParseTree.ADT_Symbol)){ + IConstructor s_5 = null; + return ((IConstructor)($arg0_50)); + + } + + } + + } while(false); + + } + + } + + + case 826203960: + if(noCaseMatched_$switchVal43){ + noCaseMatched_$switchVal43 = false; + if($isSubtypeOf($switchVal43.getType(),M_ParseTree.ADT_Symbol)){ + /*muExists*/CASE_826203960_1: + do { + if($has_type_and_arity($switchVal43, M_ParseTree.Symbol_iter_star_Symbol, 1)){ + IValue $arg0_45 = (IValue)($aadt_subscript_int(((IConstructor)($switchVal43)),0)); + if($isComparable($arg0_45.getType(), M_ParseTree.ADT_Symbol)){ + IConstructor s_2 = null; + return ((IConstructor)($arg0_45)); + + } + + } + + } while(false); + + } + + } + + + case 1652184736: + if(noCaseMatched_$switchVal43){ + noCaseMatched_$switchVal43 = false; + if($isSubtypeOf($switchVal43.getType(),M_ParseTree.ADT_Symbol)){ + /*muExists*/CASE_1652184736_2: + do { + if($has_type_and_arity($switchVal43, M_ParseTree.Symbol_iter_seps_Symbol_list_Symbol, 2)){ + IValue $arg0_47 = (IValue)($aadt_subscript_int(((IConstructor)($switchVal43)),0)); + if($isComparable($arg0_47.getType(), M_ParseTree.ADT_Symbol)){ + IConstructor s_3 = null; + IValue $arg1_46 = (IValue)($aadt_subscript_int(((IConstructor)($switchVal43)),1)); + if($isComparable($arg1_46.getType(), $T5)){ + return ((IConstructor)($arg0_47)); + + } + + } + + } + + } while(false); + + } + + } + + + default: return ((IConstructor)sym_0); + } + + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/lang/rascal/grammar/ConcreteSyntax.rsc|(4686,585,<99,0>,<113,1>) + public IBool lang_rascal_grammar_ConcreteSyntax_quotable$680d29382a1c78b9(IConstructor x_0){ + + + final IConstructor $switchVal51 = ((IConstructor)x_0); + boolean noCaseMatched_$switchVal51 = true; + SWITCH3: switch(Fingerprint.getFingerprint($switchVal51)){ + + case 1444258592: + if(noCaseMatched_$switchVal51){ + noCaseMatched_$switchVal51 = false; + if($isSubtypeOf($switchVal51.getType(),M_ParseTree.ADT_Symbol)){ + /*muExists*/CASE_1444258592_7: + do { + if($has_type_and_arity($switchVal51, M_ParseTree.Symbol_parameterized_sort_str_list_Symbol, 2)){ + IValue $arg0_66 = (IValue)($aadt_subscript_int(((IConstructor)($switchVal51)),0)); + if($isComparable($arg0_66.getType(), $T5)){ + IValue $arg1_60 = (IValue)($aadt_subscript_int(((IConstructor)($switchVal51)),1)); + if($isComparable($arg1_60.getType(), $T11)){ + final IList $subject61 = ((IList)($arg1_60)); + int $subject61_cursor = 0; + if($isSubtypeOf($subject61.getType(),$T11)){ + final int $subject61_len = (int)((IList)($subject61)).length(); + if($subject61_len >= 1){ + final IConstructor $subject63 = ((IConstructor)($alist_subscript_int(((IList)($subject61)),$subject61_cursor))); + if($has_type_and_arity($subject63, M_Type.Symbol_parameter_str_Symbol, 2)){ + IValue $arg0_65 = (IValue)($aadt_subscript_int(((IConstructor)($subject63)),0)); + if($isComparable($arg0_65.getType(), $T5)){ + IValue $arg1_64 = (IValue)($aadt_subscript_int(((IConstructor)($subject63)),1)); + if($isComparable($arg1_64.getType(), $T5)){ + $subject61_cursor += 1; + final int $__162_start = (int)$subject61_cursor; + final int $__162_len = (int)$subject61_len - $__162_start - 0; + $subject61_cursor = $__162_start + $__162_len; + /*muExists*/CASE_1444258592_7_CONS_parameterized_sort_LIST_CONS_parameter_MVAR$_59: + do { + if($subject61_cursor == $subject61_len){ + return ((IBool)$constants.get(10)/*false*/); + + } else { + continue CASE_1444258592_7_CONS_parameterized_sort_LIST_CONS_parameter_MVAR$_59;/*list match1*/ + } + } while(false); + + } + + } + + } + + } + + } + + } + + } + + } + + } while(false); + + } + + } + + + case 878060304: + if(noCaseMatched_$switchVal51){ + noCaseMatched_$switchVal51 = false; + if($isSubtypeOf($switchVal51.getType(),M_ParseTree.ADT_Symbol)){ + /*muExists*/CASE_878060304_6: + do { + if($has_type_and_arity($switchVal51, M_ParseTree.Symbol_start_Symbol, 1)){ + IValue $arg0_57 = (IValue)($aadt_subscript_int(((IConstructor)($switchVal51)),0)); + if($isComparable($arg0_57.getType(), $T5)){ + return ((IBool)$constants.get(10)/*false*/); + + } + + } + + } while(false); + + } + + } + + + case 757310344: + if(noCaseMatched_$switchVal51){ + noCaseMatched_$switchVal51 = false; + if($isSubtypeOf($switchVal51.getType(),M_ParseTree.ADT_Symbol)){ + /*muExists*/CASE_757310344_2: + do { + if($has_type_and_arity($switchVal51, M_ParseTree.Symbol_cilit_str, 1)){ + IValue $arg0_53 = (IValue)($aadt_subscript_int(((IConstructor)($switchVal51)),0)); + if($isComparable($arg0_53.getType(), $T5)){ + return ((IBool)$constants.get(10)/*false*/); + + } + + } + + } while(false); + + } + + } + + + case 1154855088: + if(noCaseMatched_$switchVal51){ + noCaseMatched_$switchVal51 = false; + if($isSubtypeOf($switchVal51.getType(),M_ParseTree.ADT_Symbol)){ + /*muExists*/CASE_1154855088_8: + do { + if($has_type_and_arity($switchVal51, M_ParseTree.Symbol_parameterized_lex_str_list_Symbol, 2)){ + IValue $arg0_75 = (IValue)($aadt_subscript_int(((IConstructor)($switchVal51)),0)); + if($isComparable($arg0_75.getType(), $T5)){ + IValue $arg1_69 = (IValue)($aadt_subscript_int(((IConstructor)($switchVal51)),1)); + if($isComparable($arg1_69.getType(), $T11)){ + final IList $subject70 = ((IList)($arg1_69)); + int $subject70_cursor = 0; + if($isSubtypeOf($subject70.getType(),$T11)){ + final int $subject70_len = (int)((IList)($subject70)).length(); + if($subject70_len >= 1){ + final IConstructor $subject72 = ((IConstructor)($alist_subscript_int(((IList)($subject70)),$subject70_cursor))); + if($has_type_and_arity($subject72, M_Type.Symbol_parameter_str_Symbol, 2)){ + IValue $arg0_74 = (IValue)($aadt_subscript_int(((IConstructor)($subject72)),0)); + if($isComparable($arg0_74.getType(), $T5)){ + IValue $arg1_73 = (IValue)($aadt_subscript_int(((IConstructor)($subject72)),1)); + if($isComparable($arg1_73.getType(), $T5)){ + $subject70_cursor += 1; + final int $__171_start = (int)$subject70_cursor; + final int $__171_len = (int)$subject70_len - $__171_start - 0; + $subject70_cursor = $__171_start + $__171_len; + /*muExists*/CASE_1154855088_8_CONS_parameterized_lex_LIST_CONS_parameter_MVAR$_68: + do { + if($subject70_cursor == $subject70_len){ + return ((IBool)$constants.get(10)/*false*/); + + } else { + continue CASE_1154855088_8_CONS_parameterized_lex_LIST_CONS_parameter_MVAR$_68;/*list match1*/ + } + } while(false); + + } + + } + + } + + } + + } + + } + + } + + } + + } while(false); + + } + + } + + + case -333228984: + if(noCaseMatched_$switchVal51){ + noCaseMatched_$switchVal51 = false; + if($isSubtypeOf($switchVal51.getType(),M_ParseTree.ADT_Symbol)){ + /*muExists*/CASE_333228984_4: + do { + if($has_type_and_arity($switchVal51, M_ParseTree.Symbol_layouts_str, 1)){ + IValue $arg0_55 = (IValue)($aadt_subscript_int(((IConstructor)($switchVal51)),0)); + if($isComparable($arg0_55.getType(), $T5)){ + return ((IBool)$constants.get(10)/*false*/); + + } + + } + + } while(false); + + } + + } + + + case 0: + if(noCaseMatched_$switchVal51){ + noCaseMatched_$switchVal51 = false; + + } + + + case -1948270072: + if(noCaseMatched_$switchVal51){ + noCaseMatched_$switchVal51 = false; + if($isSubtypeOf($switchVal51.getType(),M_ParseTree.ADT_Symbol)){ + /*muExists*/CASE_1948270072_3: + do { + if($has_type_and_arity($switchVal51, M_ParseTree.Symbol_char_class_list_CharRange, 1)){ + IValue $arg0_54 = (IValue)($aadt_subscript_int(((IConstructor)($switchVal51)),0)); + if($isComparable($arg0_54.getType(), $T5)){ + return ((IBool)$constants.get(10)/*false*/); + + } + + } + + } while(false); + + } + + } + + + case 857272: + if(noCaseMatched_$switchVal51){ + noCaseMatched_$switchVal51 = false; + if($isSubtypeOf($switchVal51.getType(),M_ParseTree.ADT_Symbol)){ + /*muExists*/CASE_857272_0: + do { + if($has_type_and_arity($switchVal51, M_ParseTree.Symbol_lit_str, 1)){ + IValue $arg0_52 = (IValue)($aadt_subscript_int(((IConstructor)($switchVal51)),0)); + if($isComparable($arg0_52.getType(), $T5)){ + return ((IBool)$constants.get(10)/*false*/); + + } + + } + + } while(false); + + } + + } + + + case -109773488: + if(noCaseMatched_$switchVal51){ + noCaseMatched_$switchVal51 = false; + if($isSubtypeOf($switchVal51.getType(),M_ParseTree.ADT_Symbol)){ + /*muExists*/CASE_109773488_5: + do { + if($has_type_and_arity($switchVal51, M_ParseTree.Symbol_keywords_str, 1)){ + IValue $arg0_56 = (IValue)($aadt_subscript_int(((IConstructor)($switchVal51)),0)); + if($isComparable($arg0_56.getType(), $T5)){ + return ((IBool)$constants.get(10)/*false*/); + + } + + } + + } while(false); + + } + + } + + + default: if($isSubtypeOf($switchVal51.getType(),M_ParseTree.ADT_Symbol)){ + /*muExists*/CASE_0_1: + do { + if($has_type_and_arity($switchVal51, M_ParseTree.Symbol_empty_, 0)){ + return ((IBool)$constants.get(10)/*false*/); + + } + + } while(false); + + } + return ((IBool)$constants.get(11)/*true*/); + + } + + + } + + + public static void main(String[] args) { + throw new RuntimeException("No function `main` found in Rascal module `lang::rascal::grammar::ConcreteSyntax`"); + } +} \ No newline at end of file diff --git a/src/rascal/lang/rascal/grammar/$ConcreteSyntax.tpl b/src/rascal/lang/rascal/grammar/$ConcreteSyntax.tpl new file mode 100644 index 00000000000..98e8d9a53d1 Binary files /dev/null and b/src/rascal/lang/rascal/grammar/$ConcreteSyntax.tpl differ diff --git a/src/rascal/lang/rascal/grammar/$ConcreteSyntax_$I.java b/src/rascal/lang/rascal/grammar/$ConcreteSyntax_$I.java new file mode 100644 index 00000000000..ae6eff239d8 --- /dev/null +++ b/src/rascal/lang/rascal/grammar/$ConcreteSyntax_$I.java @@ -0,0 +1,14 @@ +package rascal.lang.rascal.grammar; +import io.usethesource.vallang.*; +import org.rascalmpl.runtime.function.*; + +@SuppressWarnings("unused") +public interface $ConcreteSyntax_$I { + IValue addHoles(IValue $0); + IValue createHole(IValue $0, IValue $1); + IValue denormalize(IValue $0); + IValue getTargetSymbol(IValue $0); + IValue holes(IValue $0); + IValue quotable(IValue $0); + IValue removeConditionals(IValue $0); +} \ No newline at end of file diff --git a/src/rascal/lang/rascal/grammar/$Lookahead.constants b/src/rascal/lang/rascal/grammar/$Lookahead.constants new file mode 100644 index 00000000000..1228b40a3ed Binary files /dev/null and b/src/rascal/lang/rascal/grammar/$Lookahead.constants differ diff --git a/src/rascal/lang/rascal/grammar/$Lookahead.java b/src/rascal/lang/rascal/grammar/$Lookahead.java new file mode 100644 index 00000000000..98cc585edce --- /dev/null +++ b/src/rascal/lang/rascal/grammar/$Lookahead.java @@ -0,0 +1,2695 @@ +package rascal.lang.rascal.grammar; +import java.io.PrintWriter; +import java.io.StringWriter; +import java.io.InputStreamReader; +import java.io.PrintWriter; +import java.util.*; +import java.util.regex.Matcher; +import io.usethesource.vallang.*; +import io.usethesource.vallang.type.*; +import org.rascalmpl.runtime.*; +import org.rascalmpl.runtime.RascalExecutionContext; +import org.rascalmpl.runtime.function.*; +import org.rascalmpl.runtime.traverse.*; +import org.rascalmpl.runtime.utils.*; +import org.rascalmpl.exceptions.RuntimeExceptionFactory; +import org.rascalmpl.exceptions.Throw; +import org.rascalmpl.runtime.RascalExecutionContext; +import org.rascalmpl.interpreter.control_exceptions.Filtered; +import org.rascalmpl.types.NonTerminalType; +import org.rascalmpl.types.RascalTypeFactory; +import org.rascalmpl.util.ExpiringFunctionResultCache; +import org.rascalmpl.values.RascalValueFactory; +import org.rascalmpl.values.ValueFactoryFactory; +import org.rascalmpl.values.parsetrees.ITree; +import org.rascalmpl.values.parsetrees.TreeAdapter; + + + +@SuppressWarnings({"unused","unchecked","deprecation"}) +public class $Lookahead + extends + org.rascalmpl.runtime.$RascalModule + implements + rascal.lang.rascal.grammar.$Lookahead_$I { + + private final $Lookahead_$I $me; + private final IList $constants; + + + public final rascal.$IO M_IO; + public final rascal.lang.rascal.grammar.definition.$Characters M_lang_rascal_grammar_definition_Characters; + public final rascal.$ParseTree M_ParseTree; + public final rascal.lang.rascal.grammar.definition.$Productions M_lang_rascal_grammar_definition_Productions; + public final rascal.$List M_List; + public final rascal.$Grammar M_Grammar; + public final rascal.$Message M_Message; + public final rascal.lang.rascal.grammar.definition.$Regular M_lang_rascal_grammar_definition_Regular; + public final rascal.$Type M_Type; + + + + public final io.usethesource.vallang.type.Type $T6; /*avalue()*/ + public final io.usethesource.vallang.type.Type $T10; /*astr()*/ + public final io.usethesource.vallang.type.Type $T18; /*avoid()*/ + public final io.usethesource.vallang.type.Type $T13; /*aparameter("A",avalue(),closed=true)*/ + public final io.usethesource.vallang.type.Type $T7; /*aparameter("A",avalue(),closed=false)*/ + public final io.usethesource.vallang.type.Type $T9; /*aparameter("T",avalue(),closed=false)*/ + public final io.usethesource.vallang.type.Type ADT_Variable; /*aadt("Variable",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Variable; /*aadt("Variable",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Symbol; /*aadt("Symbol",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type Symbol_eoi_; /*acons(aadt("Symbol",[],dataSyntax()),[],[],alabel="eoi")*/ + public final io.usethesource.vallang.type.Type ADT_Replacement; /*aadt("Replacement",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Replacement; /*aadt("Replacement",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Production; /*aadt("Production",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type $T16; /*aset(aadt("Symbol",[],dataSyntax()),alabel="classes")*/ + public final io.usethesource.vallang.type.Type Production_lookahead_Symbol_set_Symbol_Production; /*acons(aadt("Production",[],dataSyntax()),[aadt("Symbol",[],dataSyntax(),alabel="def"),aset(aadt("Symbol",[],dataSyntax()),alabel="classes"),aadt("Production",[],dataSyntax(),alabel="production")],[],alabel="lookahead")*/ + public final io.usethesource.vallang.type.Type ADT_Name; /*aadt("Name",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Name; /*aadt("Name",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Attr; /*aadt("Attr",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Expression; /*aadt("Expression",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Expression; /*aadt("Expression",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Mapping_Expression; /*aadt("Mapping",[aadt("Expression",[],contextFreeSyntax())],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Mapping_Expression; /*aadt("Mapping",[aadt("Expression",[],contextFreeSyntax())],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Strategy; /*aadt("Strategy",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Strategy; /*aadt("Strategy",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Tree; /*aadt("Tree",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type $T11; /*aparameter("T",aadt("Tree",[],dataSyntax()),closed=true)*/ + public final io.usethesource.vallang.type.Type ADT_KeywordArguments_1; /*aadt("KeywordArguments",[aparameter("T",aadt("Tree",[],dataSyntax()),closed=true)],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_KeywordArguments_1; /*aadt("KeywordArguments",[aparameter("T",aadt("Tree",[],dataSyntax()),closed=true)],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_MidStringChars; /*aadt("MidStringChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_MidStringChars; /*aadt("MidStringChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_ProtocolChars; /*aadt("ProtocolChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_ProtocolChars; /*aadt("ProtocolChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Range; /*aadt("Range",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Range; /*aadt("Range",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Concrete; /*aadt("Concrete",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Concrete; /*aadt("Concrete",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Pattern; /*aadt("Pattern",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Pattern; /*aadt("Pattern",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Mapping_Pattern; /*aadt("Mapping",[aadt("Pattern",[],contextFreeSyntax())],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Mapping_Pattern; /*aadt("Mapping",[aadt("Pattern",[],contextFreeSyntax())],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_LocationChangeType; /*aadt("LocationChangeType",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_TagString; /*aadt("TagString",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_TagString; /*aadt("TagString",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Visibility; /*aadt("Visibility",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Visibility; /*aadt("Visibility",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_FunctionType; /*aadt("FunctionType",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_FunctionType; /*aadt("FunctionType",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_PostProtocolChars; /*aadt("PostProtocolChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_PostProtocolChars; /*aadt("PostProtocolChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_IOCapability; /*aadt("IOCapability",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_DatePart; /*aadt("DatePart",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_DatePart; /*aadt("DatePart",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_RationalLiteral; /*aadt("RationalLiteral",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_RationalLiteral; /*aadt("RationalLiteral",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_SyntaxDefinition; /*aadt("SyntaxDefinition",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_SyntaxDefinition; /*aadt("SyntaxDefinition",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_RegExpLiteral; /*aadt("RegExpLiteral",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_RegExpLiteral; /*aadt("RegExpLiteral",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_GrammarModule; /*aadt("GrammarModule",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Output; /*aadt("Output",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Output; /*aadt("Output",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_LocationChangeEvent; /*aadt("LocationChangeEvent",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Prod; /*aadt("Prod",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Prod; /*aadt("Prod",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Label; /*aadt("Label",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Label; /*aadt("Label",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_ModuleParameters; /*aadt("ModuleParameters",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_ModuleParameters; /*aadt("ModuleParameters",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Item; /*aadt("Item",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_RegExpModifier; /*aadt("RegExpModifier",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_RegExpModifier; /*aadt("RegExpModifier",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Case; /*aadt("Case",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Case; /*aadt("Case",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_BooleanLiteral; /*aadt("BooleanLiteral",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_BooleanLiteral; /*aadt("BooleanLiteral",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_LAYOUT; /*aadt("LAYOUT",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_LAYOUT; /*aadt("LAYOUT",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type $T12; /*aparameter("T",aadt("Tree",[],dataSyntax()),closed=false)*/ + public final io.usethesource.vallang.type.Type ADT_ImportedModule; /*aadt("ImportedModule",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_ImportedModule; /*aadt("ImportedModule",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_LocalVariableDeclaration; /*aadt("LocalVariableDeclaration",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_LocalVariableDeclaration; /*aadt("LocalVariableDeclaration",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_IntegerLiteral; /*aadt("IntegerLiteral",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_IntegerLiteral; /*aadt("IntegerLiteral",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Declarator; /*aadt("Declarator",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Declarator; /*aadt("Declarator",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Target; /*aadt("Target",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Target; /*aadt("Target",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_TimePartNoTZ; /*aadt("TimePartNoTZ",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_TimePartNoTZ; /*aadt("TimePartNoTZ",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_KeywordArguments_Expression; /*aadt("KeywordArguments",[aadt("Expression",[],contextFreeSyntax())],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_KeywordArguments_Expression; /*aadt("KeywordArguments",[aadt("Expression",[],contextFreeSyntax())],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type $T22; /*abool()*/ + public final io.usethesource.vallang.type.Type $T21; /*afunc(abool(),[aadt("CharRange",[],dataSyntax(),alabel="r1"),aadt("CharRange",[],dataSyntax(),alabel="r2")],[],returnsViaAllPath=true,abstractFingerprint=0)*/ + public final io.usethesource.vallang.type.Type ADT_Renaming; /*aadt("Renaming",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Renaming; /*aadt("Renaming",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Maybe_1; /*aadt("Maybe",[aparameter("A",avalue(),closed=true)],dataSyntax())*/ + public final io.usethesource.vallang.type.Type $T1; /*aset(aadt("Symbol",[],dataSyntax()))*/ + public final io.usethesource.vallang.type.Type $T5; /*amap(aadt("Symbol",[],dataSyntax()),aset(aadt("Symbol",[],dataSyntax())))*/ + public final io.usethesource.vallang.type.Type ADT_Catch; /*aadt("Catch",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Catch; /*aadt("Catch",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_GrammarDefinition; /*aadt("GrammarDefinition",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_KeywordArgument_1; /*aadt("KeywordArgument",[aparameter("T",aadt("Tree",[],dataSyntax()),closed=true)],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_KeywordArgument_1; /*aadt("KeywordArgument",[aparameter("T",aadt("Tree",[],dataSyntax()),closed=true)],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_DataTarget; /*aadt("DataTarget",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_DataTarget; /*aadt("DataTarget",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_CharRange; /*aadt("CharRange",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type $T4; /*alist(aadt("CharRange",[],dataSyntax()))*/ + public final io.usethesource.vallang.type.Type ADT_Field; /*aadt("Field",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Field; /*aadt("Field",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_FunctionBody; /*aadt("FunctionBody",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_FunctionBody; /*aadt("FunctionBody",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_LocationLiteral; /*aadt("LocationLiteral",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_LocationLiteral; /*aadt("LocationLiteral",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Tag; /*aadt("Tag",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Tag; /*aadt("Tag",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Type; /*aadt("Type",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Type; /*aadt("Type",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_PostStringChars; /*aadt("PostStringChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_PostStringChars; /*aadt("PostStringChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_KeywordFormals; /*aadt("KeywordFormals",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_KeywordFormals; /*aadt("KeywordFormals",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_HexIntegerLiteral; /*aadt("HexIntegerLiteral",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_HexIntegerLiteral; /*aadt("HexIntegerLiteral",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_ShellCommand; /*aadt("ShellCommand",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_ShellCommand; /*aadt("ShellCommand",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_TimeZonePart; /*aadt("TimeZonePart",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_TimeZonePart; /*aadt("TimeZonePart",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Declaration; /*aadt("Declaration",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Declaration; /*aadt("Declaration",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_StringLiteral; /*aadt("StringLiteral",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_StringLiteral; /*aadt("StringLiteral",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_PreStringChars; /*aadt("PreStringChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_PreStringChars; /*aadt("PreStringChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_KeywordArguments_Pattern; /*aadt("KeywordArguments",[aadt("Pattern",[],contextFreeSyntax())],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_KeywordArguments_Pattern; /*aadt("KeywordArguments",[aadt("Pattern",[],contextFreeSyntax())],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type $T8; /*alist(aparameter("T",avalue(),closed=false))*/ + public final io.usethesource.vallang.type.Type ADT_Tags; /*aadt("Tags",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Tags; /*aadt("Tags",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_NonterminalLabel; /*aadt("NonterminalLabel",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_NonterminalLabel; /*aadt("NonterminalLabel",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Mapping_1; /*aadt("Mapping",[aparameter("T",aadt("Tree",[],dataSyntax()),closed=true)],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Mapping_1; /*aadt("Mapping",[aparameter("T",aadt("Tree",[],dataSyntax()),closed=true)],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_TypeArg; /*aadt("TypeArg",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_TypeArg; /*aadt("TypeArg",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_RegExp; /*aadt("RegExp",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_RegExp; /*aadt("RegExp",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Bound; /*aadt("Bound",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Bound; /*aadt("Bound",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Signature; /*aadt("Signature",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Signature; /*aadt("Signature",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_PathPart; /*aadt("PathPart",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_PathPart; /*aadt("PathPart",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Associativity; /*aadt("Associativity",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Renamings; /*aadt("Renamings",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Renamings; /*aadt("Renamings",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_KeywordFormal; /*aadt("KeywordFormal",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_KeywordFormal; /*aadt("KeywordFormal",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_OptionalExpression; /*aadt("OptionalExpression",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_OptionalExpression; /*aadt("OptionalExpression",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_ModuleActuals; /*aadt("ModuleActuals",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_ModuleActuals; /*aadt("ModuleActuals",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Nonterminal; /*aadt("Nonterminal",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Nonterminal; /*aadt("Nonterminal",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_URLChars; /*aadt("URLChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_URLChars; /*aadt("URLChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Condition; /*aadt("Condition",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Maybe_Symbol; /*aadt("Maybe",[aadt("Symbol",[],dataSyntax())],dataSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Class; /*aadt("Class",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Class; /*aadt("Class",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_DataTypeSelector; /*aadt("DataTypeSelector",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_DataTypeSelector; /*aadt("DataTypeSelector",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type $T17; /*alist(avoid())*/ + public final io.usethesource.vallang.type.Type ADT_Maybe_Associativity; /*aadt("Maybe",[aadt("Associativity",[],dataSyntax(),alabel="a")],dataSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Start; /*aadt("Start",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Start; /*aadt("Start",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Body; /*aadt("Body",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Body; /*aadt("Body",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_PrePathChars; /*aadt("PrePathChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_PrePathChars; /*aadt("PrePathChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_StringTail; /*aadt("StringTail",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_StringTail; /*aadt("StringTail",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Backslash; /*aadt("Backslash",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Backslash; /*aadt("Backslash",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Char; /*aadt("Char",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Char; /*aadt("Char",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_LAYOUTLIST; /*aadt("LAYOUTLIST",[],layoutSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_CaseInsensitiveStringConstant; /*aadt("CaseInsensitiveStringConstant",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_CaseInsensitiveStringConstant; /*aadt("CaseInsensitiveStringConstant",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type $T15; /*aset(aadt("Production",[],dataSyntax()),alabel="productions")*/ + public final io.usethesource.vallang.type.Type ADT_TypeVar; /*aadt("TypeVar",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_TypeVar; /*aadt("TypeVar",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type $T14; /*aset(aadt("Symbol",[],dataSyntax()),alabel="starts")*/ + public final io.usethesource.vallang.type.Type ADT_LocationType; /*aadt("LocationType",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_JustDate; /*aadt("JustDate",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_JustDate; /*aadt("JustDate",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Header; /*aadt("Header",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Header; /*aadt("Header",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_OptionalComma; /*aadt("OptionalComma",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_OptionalComma; /*aadt("OptionalComma",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_StringConstant; /*aadt("StringConstant",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_StringConstant; /*aadt("StringConstant",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_FunctionDeclaration; /*aadt("FunctionDeclaration",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_FunctionDeclaration; /*aadt("FunctionDeclaration",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type $T3; /*aset(aadt("Production",[],dataSyntax()))*/ + public final io.usethesource.vallang.type.Type ADT_Import; /*aadt("Import",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Import; /*aadt("Import",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Variant; /*aadt("Variant",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Variant; /*aadt("Variant",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type $T23; /*aset(aadt("Attr",[],dataSyntax()))*/ + public final io.usethesource.vallang.type.Type ADT_FunctionModifiers; /*aadt("FunctionModifiers",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_FunctionModifiers; /*aadt("FunctionModifiers",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Comprehension; /*aadt("Comprehension",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Comprehension; /*aadt("Comprehension",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Maybe_Attr; /*aadt("Maybe",[aadt("Attr",[],dataSyntax())],dataSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_ConcreteHole; /*aadt("ConcreteHole",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_ConcreteHole; /*aadt("ConcreteHole",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_TreeSearchResult_1; /*aadt("TreeSearchResult",[aparameter("T",aadt("Tree",[],dataSyntax()),closed=true)],dataSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Message; /*aadt("Message",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Grammar; /*aadt("Grammar",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type $T0; /*alist(aadt("Symbol",[],dataSyntax()))*/ + public final io.usethesource.vallang.type.Type ADT_Sym; /*aadt("Sym",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Sym; /*aadt("Sym",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_StringMiddle; /*aadt("StringMiddle",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_StringMiddle; /*aadt("StringMiddle",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type $T20; /*alist(aadt("Production",[],dataSyntax()))*/ + public final io.usethesource.vallang.type.Type ADT_RealLiteral; /*aadt("RealLiteral",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_RealLiteral; /*aadt("RealLiteral",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_DateAndTime; /*aadt("DateAndTime",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_DateAndTime; /*aadt("DateAndTime",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Formals; /*aadt("Formals",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Formals; /*aadt("Formals",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_UserType; /*aadt("UserType",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_UserType; /*aadt("UserType",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_QualifiedName; /*aadt("QualifiedName",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_QualifiedName; /*aadt("QualifiedName",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_MidPathChars; /*aadt("MidPathChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_MidPathChars; /*aadt("MidPathChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_ProtocolPart; /*aadt("ProtocolPart",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_ProtocolPart; /*aadt("ProtocolPart",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_StringTemplate; /*aadt("StringTemplate",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_StringTemplate; /*aadt("StringTemplate",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_RascalKeywords; /*aadt("RascalKeywords",[],keywordSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_NamedBackslash; /*aadt("NamedBackslash",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_NamedBackslash; /*aadt("NamedBackslash",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type Grammar_simple_set_Symbol_set_Production; /*acons(aadt("Grammar",[],dataSyntax()),[aset(aadt("Symbol",[],dataSyntax()),alabel="starts"),aset(aadt("Production",[],dataSyntax()),alabel="productions")],[],alabel="simple")*/ + public final io.usethesource.vallang.type.Type ADT_Comment; /*aadt("Comment",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Comment; /*aadt("Comment",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Commands; /*aadt("Commands",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Commands; /*aadt("Commands",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Visit; /*aadt("Visit",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Visit; /*aadt("Visit",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Command; /*aadt("Command",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Command; /*aadt("Command",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_StructuredType; /*aadt("StructuredType",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_StructuredType; /*aadt("StructuredType",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_RuntimeException; /*aadt("RuntimeException",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_NamedRegExp; /*aadt("NamedRegExp",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_NamedRegExp; /*aadt("NamedRegExp",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Assoc; /*aadt("Assoc",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Assoc; /*aadt("Assoc",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_DateTimeLiteral; /*aadt("DateTimeLiteral",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_DateTimeLiteral; /*aadt("DateTimeLiteral",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_DecimalIntegerLiteral; /*aadt("DecimalIntegerLiteral",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_DecimalIntegerLiteral; /*aadt("DecimalIntegerLiteral",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Kind; /*aadt("Kind",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Kind; /*aadt("Kind",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_MidProtocolChars; /*aadt("MidProtocolChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_MidProtocolChars; /*aadt("MidProtocolChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_OctalIntegerLiteral; /*aadt("OctalIntegerLiteral",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_OctalIntegerLiteral; /*aadt("OctalIntegerLiteral",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Parameters; /*aadt("Parameters",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Parameters; /*aadt("Parameters",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_PathTail; /*aadt("PathTail",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_PathTail; /*aadt("PathTail",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type Maybe_Symbol_just_Symbol; /*acons(aadt("Maybe",[aadt("Symbol",[],dataSyntax())],dataSyntax()),[aadt("Symbol",[],dataSyntax(),alabel="val")],[],alabel="just")*/ + public final io.usethesource.vallang.type.Type ADT_PreProtocolChars; /*aadt("PreProtocolChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_PreProtocolChars; /*aadt("PreProtocolChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Statement; /*aadt("Statement",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Statement; /*aadt("Statement",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_StringCharacter; /*aadt("StringCharacter",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_StringCharacter; /*aadt("StringCharacter",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Literal; /*aadt("Literal",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Literal; /*aadt("Literal",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Toplevel; /*aadt("Toplevel",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Toplevel; /*aadt("Toplevel",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_ConcretePart; /*aadt("ConcretePart",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_ConcretePart; /*aadt("ConcretePart",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_PathChars; /*aadt("PathChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_PathChars; /*aadt("PathChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Exception; /*aadt("Exception",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Assignment; /*aadt("Assignment",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Assignment; /*aadt("Assignment",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Module; /*aadt("Module",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Module; /*aadt("Module",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_PatternWithAction; /*aadt("PatternWithAction",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_PatternWithAction; /*aadt("PatternWithAction",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Assignable; /*aadt("Assignable",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Assignable; /*aadt("Assignable",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type $T2; /*arel(atypeList([aadt("Symbol",[],dataSyntax()),aadt("Symbol",[],dataSyntax())]))*/ + public final io.usethesource.vallang.type.Type $T19; /*aset(avoid())*/ + public final io.usethesource.vallang.type.Type ADT_BasicType; /*aadt("BasicType",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_BasicType; /*aadt("BasicType",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_CommonKeywordParameters; /*aadt("CommonKeywordParameters",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_CommonKeywordParameters; /*aadt("CommonKeywordParameters",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_ProtocolTail; /*aadt("ProtocolTail",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_ProtocolTail; /*aadt("ProtocolTail",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_EvalCommand; /*aadt("EvalCommand",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_EvalCommand; /*aadt("EvalCommand",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_PostPathChars; /*aadt("PostPathChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_PostPathChars; /*aadt("PostPathChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_FunctionModifier; /*aadt("FunctionModifier",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_FunctionModifier; /*aadt("FunctionModifier",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_ProdModifier; /*aadt("ProdModifier",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_ProdModifier; /*aadt("ProdModifier",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_JustTime; /*aadt("JustTime",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_JustTime; /*aadt("JustTime",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_UnicodeEscape; /*aadt("UnicodeEscape",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_UnicodeEscape; /*aadt("UnicodeEscape",[],lexicalSyntax())*/ + + public $Lookahead(RascalExecutionContext rex){ + this(rex, null); + } + + public $Lookahead(RascalExecutionContext rex, Object extended){ + super(rex); + this.$me = extended == null ? this : ($Lookahead_$I)extended; + ModuleStore mstore = rex.getModuleStore(); + mstore.put(rascal.lang.rascal.grammar.$Lookahead.class, this); + + mstore.importModule(rascal.$IO.class, rex, rascal.$IO::new); + mstore.importModule(rascal.lang.rascal.grammar.definition.$Characters.class, rex, rascal.lang.rascal.grammar.definition.$Characters::new); + mstore.importModule(rascal.$ParseTree.class, rex, rascal.$ParseTree::new); + mstore.importModule(rascal.lang.rascal.grammar.definition.$Productions.class, rex, rascal.lang.rascal.grammar.definition.$Productions::new); + mstore.importModule(rascal.$List.class, rex, rascal.$List::new); + mstore.importModule(rascal.$Grammar.class, rex, rascal.$Grammar::new); + mstore.importModule(rascal.$Message.class, rex, rascal.$Message::new); + mstore.importModule(rascal.lang.rascal.grammar.definition.$Regular.class, rex, rascal.lang.rascal.grammar.definition.$Regular::new); + mstore.importModule(rascal.$Type.class, rex, rascal.$Type::new); + + M_IO = mstore.getModule(rascal.$IO.class); + M_lang_rascal_grammar_definition_Characters = mstore.getModule(rascal.lang.rascal.grammar.definition.$Characters.class); + M_ParseTree = mstore.getModule(rascal.$ParseTree.class); + M_lang_rascal_grammar_definition_Productions = mstore.getModule(rascal.lang.rascal.grammar.definition.$Productions.class); + M_List = mstore.getModule(rascal.$List.class); + M_Grammar = mstore.getModule(rascal.$Grammar.class); + M_Message = mstore.getModule(rascal.$Message.class); + M_lang_rascal_grammar_definition_Regular = mstore.getModule(rascal.lang.rascal.grammar.definition.$Regular.class); + M_Type = mstore.getModule(rascal.$Type.class); + + + + $TS.importStore(M_IO.$TS); + $TS.importStore(M_lang_rascal_grammar_definition_Characters.$TS); + $TS.importStore(M_ParseTree.$TS); + $TS.importStore(M_lang_rascal_grammar_definition_Productions.$TS); + $TS.importStore(M_List.$TS); + $TS.importStore(M_Grammar.$TS); + $TS.importStore(M_Message.$TS); + $TS.importStore(M_lang_rascal_grammar_definition_Regular.$TS); + $TS.importStore(M_Type.$TS); + + $constants = readBinaryConstantsFile(this.getClass(), "rascal/lang/rascal/grammar/$Lookahead.constants", 9, "9bc577738fe318ef5f0e2fd2eb751537"); + NT_Variable = $sort("Variable"); + ADT_Variable = $adt("Variable"); + ADT_Symbol = $adt("Symbol"); + NT_Replacement = $sort("Replacement"); + ADT_Replacement = $adt("Replacement"); + ADT_Production = $adt("Production"); + NT_Name = $lex("Name"); + ADT_Name = $adt("Name"); + ADT_Attr = $adt("Attr"); + NT_Expression = $sort("Expression"); + ADT_Expression = $adt("Expression"); + NT_Strategy = $sort("Strategy"); + ADT_Strategy = $adt("Strategy"); + ADT_Tree = $adt("Tree"); + NT_MidStringChars = $lex("MidStringChars"); + ADT_MidStringChars = $adt("MidStringChars"); + NT_ProtocolChars = $lex("ProtocolChars"); + ADT_ProtocolChars = $adt("ProtocolChars"); + NT_Range = $sort("Range"); + ADT_Range = $adt("Range"); + NT_Concrete = $lex("Concrete"); + ADT_Concrete = $adt("Concrete"); + NT_Pattern = $sort("Pattern"); + ADT_Pattern = $adt("Pattern"); + ADT_LocationChangeType = $adt("LocationChangeType"); + NT_TagString = $lex("TagString"); + ADT_TagString = $adt("TagString"); + NT_Visibility = $sort("Visibility"); + ADT_Visibility = $adt("Visibility"); + NT_FunctionType = $sort("FunctionType"); + ADT_FunctionType = $adt("FunctionType"); + NT_PostProtocolChars = $lex("PostProtocolChars"); + ADT_PostProtocolChars = $adt("PostProtocolChars"); + ADT_IOCapability = $adt("IOCapability"); + NT_DatePart = $lex("DatePart"); + ADT_DatePart = $adt("DatePart"); + NT_RationalLiteral = $lex("RationalLiteral"); + ADT_RationalLiteral = $adt("RationalLiteral"); + NT_SyntaxDefinition = $sort("SyntaxDefinition"); + ADT_SyntaxDefinition = $adt("SyntaxDefinition"); + NT_RegExpLiteral = $lex("RegExpLiteral"); + ADT_RegExpLiteral = $adt("RegExpLiteral"); + ADT_GrammarModule = $adt("GrammarModule"); + NT_Output = $lex("Output"); + ADT_Output = $adt("Output"); + ADT_LocationChangeEvent = $adt("LocationChangeEvent"); + NT_Prod = $sort("Prod"); + ADT_Prod = $adt("Prod"); + NT_Label = $sort("Label"); + ADT_Label = $adt("Label"); + NT_ModuleParameters = $sort("ModuleParameters"); + ADT_ModuleParameters = $adt("ModuleParameters"); + ADT_Item = $adt("Item"); + NT_RegExpModifier = $lex("RegExpModifier"); + ADT_RegExpModifier = $adt("RegExpModifier"); + NT_Case = $sort("Case"); + ADT_Case = $adt("Case"); + NT_BooleanLiteral = $lex("BooleanLiteral"); + ADT_BooleanLiteral = $adt("BooleanLiteral"); + NT_LAYOUT = $lex("LAYOUT"); + ADT_LAYOUT = $adt("LAYOUT"); + NT_ImportedModule = $sort("ImportedModule"); + ADT_ImportedModule = $adt("ImportedModule"); + NT_LocalVariableDeclaration = $sort("LocalVariableDeclaration"); + ADT_LocalVariableDeclaration = $adt("LocalVariableDeclaration"); + NT_IntegerLiteral = $sort("IntegerLiteral"); + ADT_IntegerLiteral = $adt("IntegerLiteral"); + NT_Declarator = $sort("Declarator"); + ADT_Declarator = $adt("Declarator"); + NT_Target = $sort("Target"); + ADT_Target = $adt("Target"); + NT_TimePartNoTZ = $lex("TimePartNoTZ"); + ADT_TimePartNoTZ = $adt("TimePartNoTZ"); + NT_Renaming = $sort("Renaming"); + ADT_Renaming = $adt("Renaming"); + NT_Catch = $sort("Catch"); + ADT_Catch = $adt("Catch"); + ADT_GrammarDefinition = $adt("GrammarDefinition"); + NT_DataTarget = $sort("DataTarget"); + ADT_DataTarget = $adt("DataTarget"); + ADT_CharRange = $adt("CharRange"); + NT_Field = $sort("Field"); + ADT_Field = $adt("Field"); + NT_FunctionBody = $sort("FunctionBody"); + ADT_FunctionBody = $adt("FunctionBody"); + NT_LocationLiteral = $sort("LocationLiteral"); + ADT_LocationLiteral = $adt("LocationLiteral"); + NT_Tag = $sort("Tag"); + ADT_Tag = $adt("Tag"); + NT_Type = $sort("Type"); + ADT_Type = $adt("Type"); + NT_PostStringChars = $lex("PostStringChars"); + ADT_PostStringChars = $adt("PostStringChars"); + NT_KeywordFormals = $sort("KeywordFormals"); + ADT_KeywordFormals = $adt("KeywordFormals"); + NT_HexIntegerLiteral = $lex("HexIntegerLiteral"); + ADT_HexIntegerLiteral = $adt("HexIntegerLiteral"); + NT_ShellCommand = $sort("ShellCommand"); + ADT_ShellCommand = $adt("ShellCommand"); + NT_TimeZonePart = $lex("TimeZonePart"); + ADT_TimeZonePart = $adt("TimeZonePart"); + NT_Declaration = $sort("Declaration"); + ADT_Declaration = $adt("Declaration"); + NT_StringLiteral = $sort("StringLiteral"); + ADT_StringLiteral = $adt("StringLiteral"); + NT_PreStringChars = $lex("PreStringChars"); + ADT_PreStringChars = $adt("PreStringChars"); + NT_Tags = $sort("Tags"); + ADT_Tags = $adt("Tags"); + NT_NonterminalLabel = $lex("NonterminalLabel"); + ADT_NonterminalLabel = $adt("NonterminalLabel"); + NT_TypeArg = $sort("TypeArg"); + ADT_TypeArg = $adt("TypeArg"); + NT_RegExp = $lex("RegExp"); + ADT_RegExp = $adt("RegExp"); + NT_Bound = $sort("Bound"); + ADT_Bound = $adt("Bound"); + NT_Signature = $sort("Signature"); + ADT_Signature = $adt("Signature"); + NT_PathPart = $sort("PathPart"); + ADT_PathPart = $adt("PathPart"); + ADT_Associativity = $adt("Associativity"); + NT_Renamings = $sort("Renamings"); + ADT_Renamings = $adt("Renamings"); + NT_KeywordFormal = $sort("KeywordFormal"); + ADT_KeywordFormal = $adt("KeywordFormal"); + NT_OptionalExpression = $sort("OptionalExpression"); + ADT_OptionalExpression = $adt("OptionalExpression"); + NT_ModuleActuals = $sort("ModuleActuals"); + ADT_ModuleActuals = $adt("ModuleActuals"); + NT_Nonterminal = $lex("Nonterminal"); + ADT_Nonterminal = $adt("Nonterminal"); + NT_URLChars = $lex("URLChars"); + ADT_URLChars = $adt("URLChars"); + ADT_Condition = $adt("Condition"); + NT_Class = $sort("Class"); + ADT_Class = $adt("Class"); + NT_DataTypeSelector = $sort("DataTypeSelector"); + ADT_DataTypeSelector = $adt("DataTypeSelector"); + NT_Start = $sort("Start"); + ADT_Start = $adt("Start"); + NT_Body = $sort("Body"); + ADT_Body = $adt("Body"); + NT_PrePathChars = $lex("PrePathChars"); + ADT_PrePathChars = $adt("PrePathChars"); + NT_StringTail = $sort("StringTail"); + ADT_StringTail = $adt("StringTail"); + NT_Backslash = $lex("Backslash"); + ADT_Backslash = $adt("Backslash"); + NT_Char = $lex("Char"); + ADT_Char = $adt("Char"); + ADT_LAYOUTLIST = $layouts("LAYOUTLIST"); + NT_CaseInsensitiveStringConstant = $lex("CaseInsensitiveStringConstant"); + ADT_CaseInsensitiveStringConstant = $adt("CaseInsensitiveStringConstant"); + NT_TypeVar = $sort("TypeVar"); + ADT_TypeVar = $adt("TypeVar"); + ADT_LocationType = $adt("LocationType"); + NT_JustDate = $lex("JustDate"); + ADT_JustDate = $adt("JustDate"); + NT_Header = $sort("Header"); + ADT_Header = $adt("Header"); + NT_OptionalComma = $lex("OptionalComma"); + ADT_OptionalComma = $adt("OptionalComma"); + NT_StringConstant = $lex("StringConstant"); + ADT_StringConstant = $adt("StringConstant"); + NT_FunctionDeclaration = $sort("FunctionDeclaration"); + ADT_FunctionDeclaration = $adt("FunctionDeclaration"); + NT_Import = $sort("Import"); + ADT_Import = $adt("Import"); + NT_Variant = $sort("Variant"); + ADT_Variant = $adt("Variant"); + NT_FunctionModifiers = $sort("FunctionModifiers"); + ADT_FunctionModifiers = $adt("FunctionModifiers"); + NT_Comprehension = $sort("Comprehension"); + ADT_Comprehension = $adt("Comprehension"); + NT_ConcreteHole = $sort("ConcreteHole"); + ADT_ConcreteHole = $adt("ConcreteHole"); + ADT_Message = $adt("Message"); + ADT_Grammar = $adt("Grammar"); + NT_Sym = $sort("Sym"); + ADT_Sym = $adt("Sym"); + NT_StringMiddle = $sort("StringMiddle"); + ADT_StringMiddle = $adt("StringMiddle"); + NT_RealLiteral = $lex("RealLiteral"); + ADT_RealLiteral = $adt("RealLiteral"); + NT_DateAndTime = $lex("DateAndTime"); + ADT_DateAndTime = $adt("DateAndTime"); + NT_Formals = $sort("Formals"); + ADT_Formals = $adt("Formals"); + NT_UserType = $sort("UserType"); + ADT_UserType = $adt("UserType"); + NT_QualifiedName = $sort("QualifiedName"); + ADT_QualifiedName = $adt("QualifiedName"); + NT_MidPathChars = $lex("MidPathChars"); + ADT_MidPathChars = $adt("MidPathChars"); + NT_ProtocolPart = $sort("ProtocolPart"); + ADT_ProtocolPart = $adt("ProtocolPart"); + NT_StringTemplate = $sort("StringTemplate"); + ADT_StringTemplate = $adt("StringTemplate"); + ADT_RascalKeywords = $keywords("RascalKeywords"); + NT_NamedBackslash = $lex("NamedBackslash"); + ADT_NamedBackslash = $adt("NamedBackslash"); + NT_Comment = $lex("Comment"); + ADT_Comment = $adt("Comment"); + NT_Commands = $sort("Commands"); + ADT_Commands = $adt("Commands"); + NT_Visit = $sort("Visit"); + ADT_Visit = $adt("Visit"); + NT_Command = $sort("Command"); + ADT_Command = $adt("Command"); + NT_StructuredType = $sort("StructuredType"); + ADT_StructuredType = $adt("StructuredType"); + ADT_RuntimeException = $adt("RuntimeException"); + NT_NamedRegExp = $lex("NamedRegExp"); + ADT_NamedRegExp = $adt("NamedRegExp"); + NT_Assoc = $sort("Assoc"); + ADT_Assoc = $adt("Assoc"); + NT_DateTimeLiteral = $sort("DateTimeLiteral"); + ADT_DateTimeLiteral = $adt("DateTimeLiteral"); + NT_DecimalIntegerLiteral = $lex("DecimalIntegerLiteral"); + ADT_DecimalIntegerLiteral = $adt("DecimalIntegerLiteral"); + NT_Kind = $sort("Kind"); + ADT_Kind = $adt("Kind"); + NT_MidProtocolChars = $lex("MidProtocolChars"); + ADT_MidProtocolChars = $adt("MidProtocolChars"); + NT_OctalIntegerLiteral = $lex("OctalIntegerLiteral"); + ADT_OctalIntegerLiteral = $adt("OctalIntegerLiteral"); + NT_Parameters = $sort("Parameters"); + ADT_Parameters = $adt("Parameters"); + NT_PathTail = $sort("PathTail"); + ADT_PathTail = $adt("PathTail"); + NT_PreProtocolChars = $lex("PreProtocolChars"); + ADT_PreProtocolChars = $adt("PreProtocolChars"); + NT_Statement = $sort("Statement"); + ADT_Statement = $adt("Statement"); + NT_StringCharacter = $lex("StringCharacter"); + ADT_StringCharacter = $adt("StringCharacter"); + NT_Literal = $sort("Literal"); + ADT_Literal = $adt("Literal"); + NT_Toplevel = $sort("Toplevel"); + ADT_Toplevel = $adt("Toplevel"); + NT_ConcretePart = $lex("ConcretePart"); + ADT_ConcretePart = $adt("ConcretePart"); + NT_PathChars = $lex("PathChars"); + ADT_PathChars = $adt("PathChars"); + ADT_Exception = $adt("Exception"); + NT_Assignment = $sort("Assignment"); + ADT_Assignment = $adt("Assignment"); + NT_Module = $sort("Module"); + ADT_Module = $adt("Module"); + NT_PatternWithAction = $sort("PatternWithAction"); + ADT_PatternWithAction = $adt("PatternWithAction"); + NT_Assignable = $sort("Assignable"); + ADT_Assignable = $adt("Assignable"); + NT_BasicType = $sort("BasicType"); + ADT_BasicType = $adt("BasicType"); + NT_CommonKeywordParameters = $sort("CommonKeywordParameters"); + ADT_CommonKeywordParameters = $adt("CommonKeywordParameters"); + NT_ProtocolTail = $sort("ProtocolTail"); + ADT_ProtocolTail = $adt("ProtocolTail"); + NT_EvalCommand = $sort("EvalCommand"); + ADT_EvalCommand = $adt("EvalCommand"); + NT_PostPathChars = $lex("PostPathChars"); + ADT_PostPathChars = $adt("PostPathChars"); + NT_FunctionModifier = $sort("FunctionModifier"); + ADT_FunctionModifier = $adt("FunctionModifier"); + NT_ProdModifier = $sort("ProdModifier"); + ADT_ProdModifier = $adt("ProdModifier"); + NT_JustTime = $lex("JustTime"); + ADT_JustTime = $adt("JustTime"); + NT_UnicodeEscape = $lex("UnicodeEscape"); + ADT_UnicodeEscape = $adt("UnicodeEscape"); + $T6 = $TF.valueType(); + $T10 = $TF.stringType(); + $T18 = $TF.voidType(); + $T13 = $TF.parameterType("A", $T6); + $T7 = $TF.parameterType("A", $T6); + $T9 = $TF.parameterType("T", $T6); + $T16 = $TF.setType(ADT_Symbol); + NT_Mapping_Expression = $parameterizedSort("Mapping", new Type[] { ADT_Expression }, $RVF.list($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Expression")))); + $T11 = $TF.parameterType("T", ADT_Tree); + NT_KeywordArguments_1 = $parameterizedSort("KeywordArguments", new Type[] { $T11 }, $RVF.list($RVF.constructor(RascalValueFactory.Symbol_Parameter, $RVF.string("T"), $RVF.constructor(RascalValueFactory.Symbol_Adt, $RVF.string("Tree"), $RVF.list())))); + NT_Mapping_Pattern = $parameterizedSort("Mapping", new Type[] { ADT_Pattern }, $RVF.list($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Pattern")))); + $T12 = $TF.parameterType("T", ADT_Tree); + NT_KeywordArguments_Expression = $parameterizedSort("KeywordArguments", new Type[] { ADT_Expression }, $RVF.list($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Expression")))); + $T22 = $TF.boolType(); + $T21 = $TF.functionType($T22, $TF.tupleType(ADT_CharRange, "r1", ADT_CharRange, "r2"), $TF.tupleEmpty()); + ADT_Maybe_1 = $parameterizedAdt("Maybe", new Type[] { $T13 }); + $T1 = $TF.setType(ADT_Symbol); + $T5 = $TF.mapType(ADT_Symbol,$T1); + NT_KeywordArgument_1 = $parameterizedSort("KeywordArgument", new Type[] { $T11 }, $RVF.list($RVF.constructor(RascalValueFactory.Symbol_Parameter, $RVF.string("T"), $RVF.constructor(RascalValueFactory.Symbol_Adt, $RVF.string("Tree"), $RVF.list())))); + $T4 = $TF.listType(ADT_CharRange); + NT_KeywordArguments_Pattern = $parameterizedSort("KeywordArguments", new Type[] { ADT_Pattern }, $RVF.list($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Pattern")))); + $T8 = $TF.listType($T9); + NT_Mapping_1 = $parameterizedSort("Mapping", new Type[] { $T11 }, $RVF.list($RVF.constructor(RascalValueFactory.Symbol_Parameter, $RVF.string("T"), $RVF.constructor(RascalValueFactory.Symbol_Adt, $RVF.string("Tree"), $RVF.list())))); + ADT_Maybe_Symbol = $parameterizedAdt("Maybe", new Type[] { ADT_Symbol }); + $T17 = $TF.listType($T18); + ADT_Maybe_Associativity = $parameterizedAdt("Maybe", new Type[] { ADT_Associativity }); + $T15 = $TF.setType(ADT_Production); + $T14 = $TF.setType(ADT_Symbol); + $T3 = $TF.setType(ADT_Production); + $T23 = $TF.setType(ADT_Attr); + ADT_Maybe_Attr = $parameterizedAdt("Maybe", new Type[] { ADT_Attr }); + ADT_TreeSearchResult_1 = $parameterizedAdt("TreeSearchResult", new Type[] { $T11 }); + $T0 = $TF.listType(ADT_Symbol); + $T20 = $TF.listType(ADT_Production); + $T2 = $TF.setType($TF.tupleType(ADT_Symbol, ADT_Symbol)); + $T19 = $TF.setType($T18); + ADT_Mapping_Expression = $TF.abstractDataType($TS, "Mapping", new Type[] { ADT_Expression }); + ADT_KeywordArguments_1 = $TF.abstractDataType($TS, "KeywordArguments", new Type[] { $T11 }); + ADT_Mapping_Pattern = $TF.abstractDataType($TS, "Mapping", new Type[] { ADT_Pattern }); + ADT_KeywordArguments_Expression = $TF.abstractDataType($TS, "KeywordArguments", new Type[] { ADT_Expression }); + ADT_KeywordArgument_1 = $TF.abstractDataType($TS, "KeywordArgument", new Type[] { $T11 }); + ADT_KeywordArguments_Pattern = $TF.abstractDataType($TS, "KeywordArguments", new Type[] { ADT_Pattern }); + ADT_Mapping_1 = $TF.abstractDataType($TS, "Mapping", new Type[] { $T11 }); + Symbol_eoi_ = $TF.constructor($TS, ADT_Symbol, "eoi"); + Production_lookahead_Symbol_set_Symbol_Production = $TF.constructor($TS, ADT_Production, "lookahead", M_ParseTree.ADT_Symbol, "def", $TF.setType(ADT_Symbol), "classes", M_ParseTree.ADT_Production, "production"); + Grammar_simple_set_Symbol_set_Production = $TF.constructor($TS, ADT_Grammar, "simple", $TF.setType(ADT_Symbol), "starts", $TF.setType(ADT_Production), "productions"); + Maybe_Symbol_just_Symbol = $TF.constructor($TS, ADT_Maybe_Symbol, "just", M_ParseTree.ADT_Symbol, "val"); + + + + } + public IList addLabels(IValue $P0, IValue $P1){ // Generated by Resolver + return (IList) M_Type.addLabels($P0, $P1); + } + public IBool sameType(IValue $P0, IValue $P1){ // Generated by Resolver + return (IBool) M_ParseTree.sameType($P0, $P1); + } + public IValue head(IValue $P0){ // Generated by Resolver + return (IValue) M_List.head($P0); + } + public IBool isAliasType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isAliasType($P0); + } + public IBool isStrType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isStrType($P0); + } + public IConstructor choice(IValue $P0, IValue $P1){ // Generated by Resolver + return (IConstructor) M_Type.choice($P0, $P1); + } + public IBool isValueType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isValueType($P0); + } + public IBool isADTType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isADTType($P0); + } + public IBool isListType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isListType($P0); + } + public IBool isRealType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isRealType($P0); + } + public IBool isTypeVar(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isTypeVar($P0); + } + public IValue removeLabels(IValue $P0){ // Generated by Resolver + IValue $result = null; + Type $P0Type = $P0.getType(); + if($isSubtypeOf($P0Type, M_Grammar.ADT_Grammar)){ + $result = (IValue)lang_rascal_grammar_Lookahead_removeLabels$018dc4c5ab035b44((IConstructor) $P0); + if($result != null) return $result; + } + if($isSubtypeOf($P0Type,$T0)){ + $result = (IValue)lang_rascal_grammar_Lookahead_removeLabels$9c574341c6d9ec97((IList) $P0); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0)); + } + public IConstructor priority(IValue $P0, IValue $P1){ // Generated by Resolver + return (IConstructor) M_ParseTree.priority($P0, $P1); + } + public IConstructor compileLookaheads(IValue $P0){ // Generated by Resolver + IConstructor $result = null; + Type $P0Type = $P0.getType(); + if($isSubtypeOf($P0Type, M_Grammar.ADT_Grammar)){ + $result = (IConstructor)lang_rascal_grammar_Lookahead_compileLookaheads$0c93fa49bdcf5b1b((IConstructor) $P0); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0)); + } + public ISet diff(IValue $P0, IValue $P1){ // Generated by Resolver + ISet $result = null; + Type $P0Type = $P0.getType(); + Type $P1Type = $P1.getType(); + if($isSubtypeOf($P0Type,$T1) && $isSubtypeOf($P1Type,$T1)){ + $result = (ISet)lang_rascal_grammar_Lookahead_diff$a7f51e4503b5c204((ISet) $P0, (ISet) $P1); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0, $P1)); + } + public IConstructor complement(IValue $P0){ // Generated by Resolver + return (IConstructor) M_lang_rascal_grammar_definition_Characters.complement($P0); + } + public IBool isNodeType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isNodeType($P0); + } + public IConstructor computeLookaheads(IValue $P0, IValue $P1){ // Generated by Resolver + IConstructor $result = null; + Type $P0Type = $P0.getType(); + Type $P1Type = $P1.getType(); + if($isSubtypeOf($P0Type, M_Grammar.ADT_Grammar) && $isSubtypeOf($P1Type,$T2)){ + $result = (IConstructor)lang_rascal_grammar_Lookahead_computeLookaheads$26dfcc12b08365da((IConstructor) $P0, (ISet) $P1); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0, $P1)); + } + public IBool isReifiedType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isReifiedType($P0); + } + public IBool isRelType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isRelType($P0); + } + public IValue intersection(IValue $P0, IValue $P1){ // Generated by Resolver + return (IValue) M_lang_rascal_grammar_definition_Characters.intersection($P0, $P1); + } + public IBool isConstructorType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isConstructorType($P0); + } + public IBool isListRelType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isListRelType($P0); + } + public IList addParamLabels(IValue $P0, IValue $P1){ // Generated by Resolver + return (IList) M_Type.addParamLabels($P0, $P1); + } + public IBool isMapType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isMapType($P0); + } + public IBool isBoolType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isBoolType($P0); + } + public IConstructor optimizeLookaheads(IValue $P0, IValue $P1){ // Generated by Resolver + IConstructor $result = null; + Type $P0Type = $P0.getType(); + Type $P1Type = $P1.getType(); + if($isSubtypeOf($P0Type, M_ParseTree.ADT_Symbol) && $isSubtypeOf($P1Type,$T3)){ + $result = (IConstructor)lang_rascal_grammar_Lookahead_optimizeLookaheads$dd084f7d40e64b07((IConstructor) $P0, (ISet) $P1); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0, $P1)); + } + public IList order(IValue $P0){ // Generated by Resolver + IList $result = null; + Type $P0Type = $P0.getType(); + if($isSubtypeOf($P0Type,$T4)){ + $result = (IList)lang_rascal_grammar_Lookahead_order$4eb2216b315c6b46((IList) $P0); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0)); + } + public IValue union(IValue $P0, IValue $P1){ // Generated by Resolver + return (IValue) M_lang_rascal_grammar_definition_Characters.union($P0, $P1); + } + public void println(IValue $P0){ // Generated by Resolver + M_IO.println($P0); + } + public void println(){ // Generated by Resolver + M_IO.println(); + } + public IList tail(IValue $P0){ // Generated by Resolver + return (IList) M_List.tail($P0); + } + public IConstructor removeLabel(IValue $P0){ // Generated by Resolver + IConstructor $result = null; + Type $P0Type = $P0.getType(); + if($isSubtypeOf($P0Type, M_ParseTree.ADT_Symbol)){ + $result = (IConstructor)lang_rascal_grammar_Lookahead_removeLabel$dc7038cda9b1bd2d((IConstructor) $P0); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0)); + } + public IBool isLocType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isLocType($P0); + } + public IMap first(IValue $P0){ // Generated by Resolver + IMap $result = null; + Type $P0Type = $P0.getType(); + if($isSubtypeOf($P0Type, M_Grammar.ADT_Grammar)){ + $result = (IMap)lang_rascal_grammar_Lookahead_first$8d738115fa89afe8((IConstructor) $P0); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0)); + } + public ISet first(IValue $P0, IValue $P1){ // Generated by Resolver + ISet $result = null; + Type $P0Type = $P0.getType(); + Type $P1Type = $P1.getType(); + if($isSubtypeOf($P0Type,$T0) && $isSubtypeOf($P1Type,$T5)){ + $result = (ISet)lang_rascal_grammar_Lookahead_first$7ecc3715cf16dd3a((IList) $P0, (IMap) $P1); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0, $P1)); + } + public ITuple headTail(IValue $P0){ // Generated by Resolver + return (ITuple) M_List.headTail($P0); + } + public IConstructor treeAt(IValue $P0, IValue $P1, IValue $P2){ // Generated by Resolver + return (IConstructor) M_ParseTree.treeAt($P0, $P1, $P2); + } + public IMap follow(IValue $P0, IValue $P1){ // Generated by Resolver + IMap $result = null; + Type $P0Type = $P0.getType(); + Type $P1Type = $P1.getType(); + if($isSubtypeOf($P0Type, M_Grammar.ADT_Grammar) && $isSubtypeOf($P1Type,$T5)){ + $result = (IMap)lang_rascal_grammar_Lookahead_follow$c4198b787ccc5199((IConstructor) $P0, (IMap) $P1); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0, $P1)); + } + public IBool isRegular(IValue $P0){ // Generated by Resolver + return (IBool) M_lang_rascal_grammar_definition_Regular.isRegular($P0); + } + public ISet definedSymbols(IValue $P0){ // Generated by Resolver + ISet $result = null; + Type $P0Type = $P0.getType(); + if($isSubtypeOf($P0Type, M_Grammar.ADT_Grammar)){ + $result = (ISet)lang_rascal_grammar_Lookahead_definedSymbols$d175465ff362118c((IConstructor) $P0); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0)); + } + public IBool isSetType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isSetType($P0); + } + public IBool isRatType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isRatType($P0); + } + public IBool isNumType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isNumType($P0); + } + public IBool isTupleType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isTupleType($P0); + } + public IValue mergeCC(IValue $P0){ // Generated by Resolver + IValue $result = null; + Type $P0Type = $P0.getType(); + if($isSubtypeOf($P0Type,$T5)){ + $result = (IValue)lang_rascal_grammar_Lookahead_mergeCC$40d82b0eeb5fa303((IMap) $P0); + if($result != null) return $result; + } + if($isSubtypeOf($P0Type,$T1)){ + $result = (IValue)lang_rascal_grammar_Lookahead_mergeCC$1d434fe22b76cf3a((ISet) $P0); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0)); + } + public IBool isBagType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isBagType($P0); + } + public ITuple firstAndFollow(IValue $P0){ // Generated by Resolver + ITuple $result = null; + Type $P0Type = $P0.getType(); + if($isSubtypeOf($P0Type, M_Grammar.ADT_Grammar)){ + $result = (ITuple)lang_rascal_grammar_Lookahead_firstAndFollow$9a18a48b90b1e31c((IConstructor) $P0); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0)); + } + public IBool isVoidType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isVoidType($P0); + } + public IBool isNonTerminalType(IValue $P0){ // Generated by Resolver + return (IBool) M_ParseTree.isNonTerminalType($P0); + } + public IConstructor optimizeLookaheadsOld(IValue $P0, IValue $P1){ // Generated by Resolver + IConstructor $result = null; + Type $P0Type = $P0.getType(); + Type $P1Type = $P1.getType(); + if($isSubtypeOf($P0Type, M_ParseTree.ADT_Symbol) && $isSubtypeOf($P1Type,$T3)){ + $result = (IConstructor)lang_rascal_grammar_Lookahead_optimizeLookaheadsOld$8d0cc058fe472758((IConstructor) $P0, (ISet) $P1); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0, $P1)); + } + public IValue lub(IValue $P0, IValue $P1){ // Generated by Resolver + return (IValue) M_Type.lub($P0, $P1); + } + public IBool subtype(IValue $P0, IValue $P1){ // Generated by Resolver + return (IBool) M_Type.subtype($P0, $P1); + } + public IConstructor associativity(IValue $P0, IValue $P1, IValue $P2){ // Generated by Resolver + IConstructor $result = null; + Type $P0Type = $P0.getType(); + Type $P1Type = $P1.getType(); + Type $P2Type = $P2.getType(); + if($isSubtypeOf($P0Type, M_ParseTree.ADT_Symbol) && $isSubtypeOf($P1Type, M_ParseTree.ADT_Associativity) && $isSubtypeOf($P2Type,$T3)){ + $result = (IConstructor)M_ParseTree.ParseTree_associativity$9299e943b00366a7((IConstructor) $P0, (IConstructor) $P1, (ISet) $P2); + if($result != null) return $result; + $result = (IConstructor)M_ParseTree.ParseTree_associativity$95843a2f3959b22f((IConstructor) $P0, (IConstructor) $P1, (ISet) $P2); + if($result != null) return $result; + $result = (IConstructor)M_ParseTree.ParseTree_associativity$05ee42b13b7e96fb((IConstructor) $P0, (IConstructor) $P1, (ISet) $P2); + if($result != null) return $result; + } + if($isSubtypeOf($P0Type, M_ParseTree.ADT_Symbol) && $isSubtypeOf($P1Type, ADT_Maybe_1) && $isSubtypeOf($P2Type, M_ParseTree.ADT_Production)){ + $result = (IConstructor)M_lang_rascal_grammar_definition_Productions.lang_rascal_grammar_definition_Productions_associativity$09cd814bba935894((IConstructor) $P0, (IConstructor) $P1, (IConstructor) $P2); + if($result != null) return $result; + } + if($isSubtypeOf($P0Type, M_ParseTree.ADT_Symbol) && $isSubtypeOf($P1Type, ADT_Maybe_Associativity) && $isSubtypeOf($P2Type, M_ParseTree.ADT_Production)){ + $result = (IConstructor)M_lang_rascal_grammar_definition_Productions.lang_rascal_grammar_definition_Productions_associativity$fe1234ba22a8be5e((IConstructor) $P0, (IConstructor) $P1, (IConstructor) $P2); + if($result != null) return $result; + } + if($isSubtypeOf($P0Type, M_ParseTree.ADT_Symbol) && $isSubtypeOf($P1Type, M_ParseTree.ADT_Associativity) && $isSubtypeOf($P2Type,$T3)){ + return $RVF.constructor(M_ParseTree.Production_associativity_Symbol_Associativity_set_Production, new IValue[]{(IConstructor) $P0, (IConstructor) $P1, (ISet) $P2}); + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0, $P1, $P2)); + } + public IBool isFunctionType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isFunctionType($P0); + } + public IValue glb(IValue $P0, IValue $P1){ // Generated by Resolver + return (IValue) M_Type.glb($P0, $P1); + } + public IValue difference(IValue $P0, IValue $P1){ // Generated by Resolver + return (IValue) M_lang_rascal_grammar_definition_Characters.difference($P0, $P1); + } + public ISet usedSymbols(IValue $P0){ // Generated by Resolver + ISet $result = null; + Type $P0Type = $P0.getType(); + if($isSubtypeOf($P0Type, M_Grammar.ADT_Grammar)){ + $result = (ISet)lang_rascal_grammar_Lookahead_usedSymbols$2c1765cdce8f88b5((IConstructor) $P0); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0)); + } + public IValue sort(IValue $P0){ // Generated by Resolver + IValue $result = null; + Type $P0Type = $P0.getType(); + if($isSubtypeOf($P0Type,$T8)){ + $result = (IValue)M_List.List_sort$1fe4426c8c8039da((IList) $P0); + if($result != null) return $result; + } + if($isSubtypeOf($P0Type,$T10)){ + return $RVF.constructor(M_ParseTree.Symbol_sort_str, new IValue[]{(IString) $P0}); + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0)); + } + public IList sort(IValue $P0, IValue $P1){ // Generated by Resolver + return (IList) M_List.sort($P0, $P1); + } + public IValue intersect(IValue $P0, IValue $P1){ // Generated by Resolver + IValue $result = null; + Type $P0Type = $P0.getType(); + Type $P1Type = $P1.getType(); + if($isSubtypeOf($P0Type,$T1) && $isSubtypeOf($P1Type,$T1)){ + $result = (IValue)lang_rascal_grammar_Lookahead_intersect$652d8dca76a2dc21((ISet) $P0, (ISet) $P1); + if($result != null) return $result; + } + if($isSubtypeOf($P0Type, M_ParseTree.ADT_CharRange) && $isSubtypeOf($P1Type, M_ParseTree.ADT_CharRange)){ + $result = (IValue)M_lang_rascal_grammar_definition_Characters.lang_rascal_grammar_definition_Characters_intersect$2c8ff0e2841a0a40((IConstructor) $P0, (IConstructor) $P1); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0, $P1)); + } + public IBool isIntType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isIntType($P0); + } + public ISet terminalSymbols(IValue $P0){ // Generated by Resolver + ISet $result = null; + Type $P0Type = $P0.getType(); + if($isSubtypeOf($P0Type, M_Grammar.ADT_Grammar)){ + $result = (ISet)lang_rascal_grammar_Lookahead_terminalSymbols$a998324b5ea47532((IConstructor) $P0); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0)); + } + public IBool isDateTimeType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isDateTimeType($P0); + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/lang/rascal/grammar/Lookahead.rsc|(1026,874,<26,0>,<50,1>) + public IConstructor lang_rascal_grammar_Lookahead_computeLookaheads$26dfcc12b08365da(IConstructor G_0, ISet $aux_extra_1){ + ValueRef extra_1 = new ValueRef("extra_1", $aux_extra_1); + + + try { + IConstructor G2_2 = ((IConstructor)(M_lang_rascal_grammar_definition_Regular.expandRegularSymbols(((IConstructor)($me.removeLabels(((IConstructor)G_0))))))); + final ISetWriter $setwriter0 = (ISetWriter)$RVF.setWriter(); + ; + /*muExists*/$SCOMP1: + do { + $SCOMP1_DESC1366: + for(IValue $elem2 : new DescendantMatchIterator(G2_2, + new DescendantDescriptorAlwaysTrue($RVF.bool(false)))){ + if($isComparable($elem2.getType(), M_ParseTree.ADT_Production)){ + if($isSubtypeOf($elem2.getType(),M_ParseTree.ADT_Production)){ + if($has_type_and_arity($elem2, M_ParseTree.Production_prod_Symbol_list_Symbol_set_Attr, 3)){ + IValue $arg0_5 = (IValue)($subscript_int(((IValue)($elem2)),0)); + if($isComparable($arg0_5.getType(), $T6)){ + IValue $arg1_4 = (IValue)($subscript_int(((IValue)($elem2)),1)); + if($isComparable($arg1_4.getType(), $T6)){ + IValue $arg2_3 = (IValue)($subscript_int(((IValue)($elem2)),2)); + if($isComparable($arg2_3.getType(), $T6)){ + IConstructor p_5 = ((IConstructor)($elem2)); + $setwriter0.insert(p_5); + + } else { + continue $SCOMP1_DESC1366; + } + } else { + continue $SCOMP1_DESC1366; + } + } else { + continue $SCOMP1_DESC1366; + } + } else { + continue $SCOMP1_DESC1366; + } + } else { + continue $SCOMP1_DESC1366; + } + } else { + continue $SCOMP1_DESC1366; + } + } + + + } while(false); + ITuple $TMP6 = (ITuple)($me.firstAndFollow(((IConstructor)($RVF.constructor(Grammar_simple_set_Symbol_set_Production, new IValue[]{((ISet)(((ISet)($aadt_get_field(((IConstructor)G2_2), "starts"))))), ((ISet)($setwriter0.done()))}))))); + final ValueRef fst_3 = new ValueRef("fst", ((IMap)($atuple_subscript_int(((ITuple)($TMP6)),0)))); + final ValueRef fol_4 = new ValueRef("fol", ((IMap)($atuple_subscript_int(((ITuple)($TMP6)),1)))); + IValue $visitResult = $TRAVERSE.traverse(DIRECTION.BottomUp, PROGRESS.Continuing, FIXEDPOINT.No, REBUILD.Yes, + new DescendantDescriptorAlwaysTrue($RVF.bool(false)), + G_0, + (IVisitFunction) (IValue $VISIT0_subject, TraversalState $traversalState) -> { + VISIT0:switch(Fingerprint.getFingerprint($VISIT0_subject)){ + + case 110389984: + if($isSubtypeOf($VISIT0_subject.getType(),M_ParseTree.ADT_Production)){ + /*muExists*/CASE_110389984_0: + do { + if($has_type_and_arity($VISIT0_subject, M_ParseTree.Production_prod_Symbol_list_Symbol_set_Attr, 3)){ + IValue $arg0_10 = (IValue)($aadt_subscript_int(((IConstructor)($VISIT0_subject)),0)); + if($isComparable($arg0_10.getType(), M_ParseTree.ADT_Symbol)){ + ValueRef rhs_7 = new ValueRef(); + IValue $arg1_9 = (IValue)($aadt_subscript_int(((IConstructor)($VISIT0_subject)),1)); + if($isComparable($arg1_9.getType(), $T17)){ + if($arg1_9.equals(((IList)$constants.get(0)/*[]*/))){ + IValue $arg2_8 = (IValue)($aadt_subscript_int(((IConstructor)($VISIT0_subject)),2)); + if($isComparable($arg2_8.getType(), $T6)){ + IConstructor p_6 = ((IConstructor)($VISIT0_subject)); + IConstructor $replacement7 = (IConstructor)($RVF.constructor(Production_lookahead_Symbol_set_Symbol_Production, new IValue[]{((IConstructor)($arg0_10)), ((ISet)($amap_subscript(fol_4.getValue(),((IConstructor)($arg0_10))))), ((IConstructor)p_6)})); + if($isSubtypeOf($replacement7.getType(),$VISIT0_subject.getType())){ + $traversalState.setMatchedAndChanged(true, true); + return $replacement7; + + } else { + break VISIT0;// switch + + } + } + + } + + } + + } + + } + + } while(false); + + } + if($isSubtypeOf($VISIT0_subject.getType(),M_ParseTree.ADT_Production)){ + /*muExists*/CASE_110389984_1: + do { + if($has_type_and_arity($VISIT0_subject, M_ParseTree.Production_prod_Symbol_list_Symbol_set_Attr, 3)){ + IValue $arg0_13 = (IValue)($aadt_subscript_int(((IConstructor)($VISIT0_subject)),0)); + if($isComparable($arg0_13.getType(), M_ParseTree.ADT_Symbol)){ + IConstructor rhs_9 = ((IConstructor)($arg0_13)); + IValue $arg1_12 = (IValue)($aadt_subscript_int(((IConstructor)($VISIT0_subject)),1)); + if($isComparable($arg1_12.getType(), $T0)){ + IList lhs_10 = ((IList)($arg1_12)); + IValue $arg2_11 = (IValue)($aadt_subscript_int(((IConstructor)($VISIT0_subject)),2)); + if($isComparable($arg2_11.getType(), $T6)){ + IConstructor p_8 = ((IConstructor)($VISIT0_subject)); + $arg1_12 = ((IValue)($me.removeLabels(((IList)($arg1_12))))); + ISet classes_11 = ((ISet)($me.first(((IList)($arg1_12)), fst_3.getValue()))); + if((((IBool)($equal(((IList)($arg1_12)), ((IList)$constants.get(0)/*[]*/))))).getValue()){ + classes_11 = ((ISet)($aset_add_aset(((ISet)classes_11),((ISet)($amap_subscript(fol_4.getValue(),((IConstructor)($arg0_13)))))))); + + } else { + if((((IBool)($RVF.bool(((ISet)classes_11).contains(((IConstructor)$constants.get(1)/*empty()*/)))))).getValue()){ + classes_11 = ((ISet)($aset_add_aset(((ISet)classes_11),((ISet)($amap_subscript(fol_4.getValue(),((IConstructor)($arg0_13)))))))); + + } + + }classes_11 = ((ISet)(((ISet)classes_11).delete(((IConstructor)$constants.get(1)/*empty()*/)))); + $traversalState.setMatchedAndChanged(true, true); + return $RVF.constructor(Production_lookahead_Symbol_set_Symbol_Production, new IValue[]{((IConstructor)($arg0_13)), ((ISet)($me.mergeCC(((ISet)($aset_add_aset(((ISet)classes_11),((ISet)($arel_subscript1_noset(extra_1.getValue(),((IConstructor)($arg0_13))))))))))), ((IConstructor)p_8)}); + + } + + } + + } + + } + + } while(false); + + } + + + + } + return $VISIT0_subject; + }); + return (IConstructor)$visitResult; + + } catch (ReturnFromTraversalException e) { + return (IConstructor) e.getValue(); + } + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/lang/rascal/grammar/Lookahead.rsc|(1902,647,<52,0>,<66,1>) + public IConstructor lang_rascal_grammar_Lookahead_compileLookaheads$0c93fa49bdcf5b1b(IConstructor G_0){ + + + try { + G_0 = ((IConstructor)($TRAVERSE.traverse(DIRECTION.BottomUp, PROGRESS.Continuing, FIXEDPOINT.No, REBUILD.Yes, + new DescendantDescriptorAlwaysTrue($RVF.bool(false)), + G_0, + (IVisitFunction) (IValue $VISIT2_subject, TraversalState $traversalState) -> { + VISIT2:switch(Fingerprint.getFingerprint($VISIT2_subject)){ + + case -2132978880: + if($isSubtypeOf($VISIT2_subject.getType(),M_ParseTree.ADT_Production)){ + /*muExists*/CASE_2132978880_2: + do { + if($has_type_and_arity($VISIT2_subject, M_ParseTree.Production_associativity_Symbol_Associativity_set_Production, 3)){ + IValue $arg0_27 = (IValue)($aadt_subscript_int(((IConstructor)($VISIT2_subject)),0)); + if($isComparable($arg0_27.getType(), M_ParseTree.ADT_Symbol)){ + ValueRef rhs_5 = new ValueRef(); + IValue $arg1_26 = (IValue)($aadt_subscript_int(((IConstructor)($VISIT2_subject)),1)); + if($isComparable($arg1_26.getType(), $T6)){ + IValue $arg2_25 = (IValue)($aadt_subscript_int(((IConstructor)($VISIT2_subject)),2)); + if($isComparable($arg2_25.getType(), $T3)){ + ValueRef alts_6 = new ValueRef(); + IConstructor $replacement24 = (IConstructor)(M_Type.choice(((IConstructor)($arg0_27)), ((ISet)($arg2_25)))); + if($isSubtypeOf($replacement24.getType(),$VISIT2_subject.getType())){ + $traversalState.setMatchedAndChanged(true, true); + return $replacement24; + + } else { + break VISIT2;// switch + + } + } + + } + + } + + } + + } while(false); + + } + + + case 1852264512: + if($isSubtypeOf($VISIT2_subject.getType(),M_ParseTree.ADT_Production)){ + /*muExists*/CASE_1852264512_0: + do { + if($has_type_and_arity($VISIT2_subject, Production_lookahead_Symbol_set_Symbol_Production, 3)){ + IValue $arg0_17 = (IValue)($aadt_subscript_int(((IConstructor)($VISIT2_subject)),0)); + if($isComparable($arg0_17.getType(), M_ParseTree.ADT_Symbol)){ + ValueRef rhs_1 = new ValueRef(); + IValue $arg1_16 = (IValue)($aadt_subscript_int(((IConstructor)($VISIT2_subject)),1)); + if($isComparable($arg1_16.getType(), $T19)){ + if($arg1_16.equals(((ISet)$constants.get(2)/*{}*/))){ + IValue $arg2_15 = (IValue)($aadt_subscript_int(((IConstructor)($VISIT2_subject)),2)); + if($isComparable($arg2_15.getType(), $T6)){ + IConstructor $replacement14 = (IConstructor)(M_Type.choice(((IConstructor)($arg0_17)), ((ISet)$constants.get(2)/*{}*/))); + if($isSubtypeOf($replacement14.getType(),$VISIT2_subject.getType())){ + $traversalState.setMatchedAndChanged(true, true); + return $replacement14; + + } else { + break VISIT2;// switch + + } + } + + } + + } + + } + + } + + } while(false); + + } + + + case -1467508160: + if($isSubtypeOf($VISIT2_subject.getType(),M_ParseTree.ADT_Production)){ + /*muExists*/CASE_1467508160_1: + do { + if($has_type_and_arity($VISIT2_subject, M_ParseTree.Production_priority_Symbol_list_Production, 2)){ + IValue $arg0_23 = (IValue)($aadt_subscript_int(((IConstructor)($VISIT2_subject)),0)); + if($isComparable($arg0_23.getType(), M_ParseTree.ADT_Symbol)){ + ValueRef rhs_2 = new ValueRef(); + IValue $arg1_22 = (IValue)($aadt_subscript_int(((IConstructor)($VISIT2_subject)),1)); + if($isComparable($arg1_22.getType(), $T20)){ + ValueRef order_3 = new ValueRef(); + final ISetWriter $setwriter19 = (ISetWriter)$RVF.setWriter(); + ; + $SCOMP20_GEN2349: + for(IValue $elem21_for : ((IList)($arg1_22))){ + IConstructor $elem21 = (IConstructor) $elem21_for; + ValueRef p_4 = new ValueRef(); + $setwriter19.insert($elem21); + + } + + IConstructor $replacement18 = (IConstructor)(M_Type.choice(((IConstructor)($arg0_23)), ((ISet)($setwriter19.done())))); + if($isSubtypeOf($replacement18.getType(),$VISIT2_subject.getType())){ + $traversalState.setMatchedAndChanged(true, true); + return $replacement18; + + } else { + break VISIT2;// switch + + } + } + + } + + } + + } while(false); + + } + + + + } + return $VISIT2_subject; + }))); + IValue $visitResult = $TRAVERSE.traverse(DIRECTION.BottomUp, PROGRESS.Continuing, FIXEDPOINT.No, REBUILD.Yes, + new DescendantDescriptorAlwaysTrue($RVF.bool(false)), + G_0, + (IVisitFunction) (IValue $VISIT3_subject, TraversalState $traversalState) -> { + VISIT3:switch(Fingerprint.getFingerprint($VISIT3_subject)){ + + case -304752112: + if($isSubtypeOf($VISIT3_subject.getType(),M_ParseTree.ADT_Production)){ + /*muExists*/CASE_304752112_0: + do { + if($has_type_and_arity($VISIT3_subject, M_Type.Production_choice_Symbol_set_Production, 2)){ + IValue $arg0_30 = (IValue)($aadt_subscript_int(((IConstructor)($VISIT3_subject)),0)); + if($isComparable($arg0_30.getType(), M_ParseTree.ADT_Symbol)){ + IConstructor rhs_7 = ((IConstructor)($arg0_30)); + IValue $arg1_29 = (IValue)($aadt_subscript_int(((IConstructor)($VISIT3_subject)),1)); + if($isComparable($arg1_29.getType(), $T3)){ + ISet alts_8 = ((ISet)($arg1_29)); + IConstructor $replacement28 = (IConstructor)($me.optimizeLookaheads(((IConstructor)($arg0_30)), ((ISet)($arg1_29)))); + if($isSubtypeOf($replacement28.getType(),$VISIT3_subject.getType())){ + $traversalState.setMatchedAndChanged(true, true); + return $replacement28; + + } else { + break VISIT3;// switch + + } + } + + } + + } + + } while(false); + + } + + + + } + return $VISIT3_subject; + }); + return (IConstructor)$visitResult; + + } catch (ReturnFromTraversalException e) { + return (IConstructor) e.getValue(); + } + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/lang/rascal/grammar/Lookahead.rsc|(2744,107,<72,0>,<74,1>) + public IList lang_rascal_grammar_Lookahead_order$4eb2216b315c6b46(IList x_0){ + + + final IListWriter $listwriter31 = (IListWriter)$RVF.listWriter(); + $LCOMP32_GEN2809: + for(IValue $elem33_for : ((IList)x_0)){ + IConstructor $elem33 = (IConstructor) $elem33_for; + IConstructor e_1 = null; + if((((IBool)($equal(((IConstructor)($elem33)),((IConstructor)($RVF.constructor(M_lang_rascal_grammar_definition_Characters.CharRange_empty_range_, new IValue[]{})))).not()))).getValue()){ + $listwriter31.append($elem33); + + } else { + continue $LCOMP32_GEN2809; + } + + } + + return ((IList)(M_List.sort(((IList)($listwriter31.done())), new TypedFunctionInstance2(($2464_0, $2464_1) -> { return M_lang_rascal_grammar_definition_Characters.lessThan($2464_0, $2464_1); }, $T21)))); + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/lang/rascal/grammar/Lookahead.rsc|(2855,2003,<76,0>,<126,1>) + public IConstructor lang_rascal_grammar_Lookahead_optimizeLookaheads$dd084f7d40e64b07(IConstructor rhs_0, ISet alts_1){ + + + IList l_2 = ((IList)$constants.get(0)/*[]*/); + /*muExists*/FOR4: + do { + /*muExists*/FOR4_GEN3051_CONS_lookahead: + do { + FOR4_GEN3051: + for(IValue $elem52_for : ((ISet)alts_1)){ + IConstructor $elem52 = (IConstructor) $elem52_for; + if($has_type_and_arity($elem52, Production_lookahead_Symbol_set_Symbol_Production, 3)){ + IValue $arg0_55 = (IValue)($aadt_subscript_int(((IConstructor)($elem52)),0)); + if($isComparable($arg0_55.getType(), $T6)){ + IValue $arg1_54 = (IValue)($aadt_subscript_int(((IConstructor)($elem52)),1)); + if($isComparable($arg1_54.getType(), $T16)){ + if(true){ + ISet classes_3 = ((ISet)($arg1_54)); + IValue $arg2_53 = (IValue)($aadt_subscript_int(((IConstructor)($elem52)),2)); + if($isComparable($arg2_53.getType(), M_ParseTree.ADT_Production)){ + /*muExists*/FOR5: + do { + /*muExists*/FOR5_GEN3119_CONS_char_class: + do { + FOR5_GEN3119: + for(IValue $elem50_for : ((ISet)($arg1_54))){ + IConstructor $elem50 = (IConstructor) $elem50_for; + if($has_type_and_arity($elem50, M_ParseTree.Symbol_char_class_list_CharRange, 1)){ + IValue $arg0_51 = (IValue)($aadt_subscript_int(((IConstructor)($elem50)),0)); + if($isComparable($arg0_51.getType(), $T4)){ + IList rs_4 = ((IList)($arg0_51)); + FOR5_GEN3119_CONS_char_class_GEN3147: + for(IValue $elem49_for : ((IList)($arg0_51))){ + IConstructor $elem49 = (IConstructor) $elem49_for; + IConstructor r_5 = ((IConstructor)($elem49)); + /*muExists*/IF6: + do { + final IList $subject46 = ((IList)l_2); + int $subject46_cursor = 0; + if($isSubtypeOf($subject46.getType(),$T4)){ + final int $subject46_len = (int)((IList)($subject46)).length(); + if($subject46_len >= 0){ + final int $pre_648_start = (int)$subject46_cursor; + IF6_LIST_MVARpre: + + for(int $pre_648_len = 0; $pre_648_len <= $subject46_len - $pre_648_start - 0; $pre_648_len += 1){ + IList pre_6 = ((IList)($subject46.sublist($pre_648_start, $pre_648_len))); + $subject46_cursor = $pre_648_start + $pre_648_len; + final int $post_747_start = (int)$subject46_cursor; + IF6_LIST_MVARpre_MVARpost: + + for(int $post_747_len = 0; $post_747_len <= $subject46_len - $post_747_start - 0; $post_747_len += 1){ + IList post_7 = ((IList)($subject46.sublist($post_747_start, $post_747_len))); + $subject46_cursor = $post_747_start + $post_747_len; + if($subject46_cursor == $subject46_len){ + IBool $done43 = (IBool)(((IBool)$constants.get(3)/*true*/)); + $ALL44_GEN3257: + for(IValue $elem45_for : ((IList)post_7)){ + IConstructor $elem45 = (IConstructor) $elem45_for; + IConstructor z_8 = ((IConstructor)($elem45)); + if((((IBool)(M_lang_rascal_grammar_definition_Characters.lessThan(((IConstructor)z_8), ((IConstructor)r_5))))).getValue()){ + $done43 = ((IBool)$constants.get(4)/*false*/); + break $ALL44_GEN3257; // muBreak + + } else { + continue $ALL44_GEN3257; + + } + + } + + if((((IBool)($done43))).getValue()){ + /*muExists*/IF7: + do { + final IList $subject39 = ((IList)post_7); + int $subject39_cursor = 0; + if($isSubtypeOf($subject39.getType(),$T4)){ + final int $subject39_len = (int)((IList)($subject39)).length(); + if($subject39_len >= 0){ + final int $overlapping_941_start = (int)$subject39_cursor; + IF7_LIST_MVARoverlapping: + + for(int $overlapping_941_len = 0; $overlapping_941_len <= $subject39_len - $overlapping_941_start - 0; $overlapping_941_len += 1){ + IList overlapping_9 = ((IList)($subject39.sublist($overlapping_941_start, $overlapping_941_len))); + $subject39_cursor = $overlapping_941_start + $overlapping_941_len; + final int $post2_1040_start = (int)$subject39_cursor; + IF7_LIST_MVARoverlapping_MVARpost2: + + for(int $post2_1040_len = 0; $post2_1040_len <= $subject39_len - $post2_1040_start - 0; $post2_1040_len += 1){ + IList post2_10 = ((IList)($subject39.sublist($post2_1040_start, $post2_1040_len))); + $subject39_cursor = $post2_1040_start + $post2_1040_len; + if($subject39_cursor == $subject39_len){ + IBool $done36 = (IBool)(((IBool)$constants.get(3)/*true*/)); + $ALL37_GEN3404: + for(IValue $elem38_for : ((IList)overlapping_9)){ + IConstructor $elem38 = (IConstructor) $elem38_for; + IConstructor o_11 = ((IConstructor)($elem38)); + if((((IBool)($equal(((IConstructor)(M_lang_rascal_grammar_definition_Characters.intersect(((IConstructor)r_5), ((IConstructor)o_11)))),((IConstructor)($RVF.constructor(M_lang_rascal_grammar_definition_Characters.CharRange_empty_range_, new IValue[]{})))).not()))).getValue()){ + continue $ALL37_GEN3404; + + } else { + $done36 = ((IBool)$constants.get(4)/*false*/); + break $ALL37_GEN3404; // muBreak + + } + + } + + if((((IBool)($done36))).getValue()){ + IList common_12 = ((IList)(M_lang_rascal_grammar_definition_Characters.intersection(((IList)overlapping_9), ((IList)($RVF.list(((IConstructor)r_5))))))); + IList onlyR_13 = ((IList)(M_lang_rascal_grammar_definition_Characters.difference(((IList)($RVF.list(((IConstructor)r_5)))), ((IList)overlapping_9)))); + IList onlyOverlapping_14 = ((IList)(M_lang_rascal_grammar_definition_Characters.difference(((IList)overlapping_9), ((IList)($RVF.list(((IConstructor)r_5))))))); + l_2 = ((IList)($alist_add_alist(((IList)($alist_add_alist(((IList)pre_6),((IList)($me.order(((IList)($alist_add_alist(((IList)($alist_add_alist(((IList)onlyR_13),((IList)common_12)))),((IList)onlyOverlapping_14)))))))))),((IList)post2_10)))); + continue IF7; + } else { + continue IF7_LIST_MVARoverlapping_MVARpost2; + } + + } else { + continue IF7_LIST_MVARoverlapping_MVARpost2;/*list match1*/ + } + } + continue IF7_LIST_MVARoverlapping;/*computeFail*/ + + } + + + } + + } + + } while(false); + l_2 = ((IList)($alist_add_alist(((IList)($alist_add_alist(((IList)pre_6),((IList)($RVF.list(((IConstructor)r_5))))))),((IList)post_7)))); + continue IF6; + } else { + if((((IBool)($equal(((IList)post_7), ((IList)$constants.get(0)/*[]*/))))).getValue()){ + /*muExists*/IF7: + do { + final IList $subject39 = ((IList)post_7); + int $subject39_cursor = 0; + if($isSubtypeOf($subject39.getType(),$T4)){ + final int $subject39_len = (int)((IList)($subject39)).length(); + if($subject39_len >= 0){ + final int $overlapping_941_start = (int)$subject39_cursor; + IF7_LIST_MVARoverlapping: + + for(int $overlapping_941_len = 0; $overlapping_941_len <= $subject39_len - $overlapping_941_start - 0; $overlapping_941_len += 1){ + IList overlapping_9 = ((IList)($subject39.sublist($overlapping_941_start, $overlapping_941_len))); + $subject39_cursor = $overlapping_941_start + $overlapping_941_len; + final int $post2_1040_start = (int)$subject39_cursor; + IF7_LIST_MVARoverlapping_MVARpost2: + + for(int $post2_1040_len = 0; $post2_1040_len <= $subject39_len - $post2_1040_start - 0; $post2_1040_len += 1){ + IList post2_10 = ((IList)($subject39.sublist($post2_1040_start, $post2_1040_len))); + $subject39_cursor = $post2_1040_start + $post2_1040_len; + if($subject39_cursor == $subject39_len){ + IBool $done36 = (IBool)(((IBool)$constants.get(3)/*true*/)); + $ALL37_GEN3404: + for(IValue $elem38_for : ((IList)overlapping_9)){ + IConstructor $elem38 = (IConstructor) $elem38_for; + IConstructor o_11 = ((IConstructor)($elem38)); + if((((IBool)($equal(((IConstructor)(M_lang_rascal_grammar_definition_Characters.intersect(((IConstructor)r_5), ((IConstructor)o_11)))),((IConstructor)($RVF.constructor(M_lang_rascal_grammar_definition_Characters.CharRange_empty_range_, new IValue[]{})))).not()))).getValue()){ + continue $ALL37_GEN3404; + + } else { + $done36 = ((IBool)$constants.get(4)/*false*/); + break $ALL37_GEN3404; // muBreak + + } + + } + + if((((IBool)($done36))).getValue()){ + IList common_12 = ((IList)(M_lang_rascal_grammar_definition_Characters.intersection(((IList)overlapping_9), ((IList)($RVF.list(((IConstructor)r_5))))))); + IList onlyR_13 = ((IList)(M_lang_rascal_grammar_definition_Characters.difference(((IList)($RVF.list(((IConstructor)r_5)))), ((IList)overlapping_9)))); + IList onlyOverlapping_14 = ((IList)(M_lang_rascal_grammar_definition_Characters.difference(((IList)overlapping_9), ((IList)($RVF.list(((IConstructor)r_5))))))); + l_2 = ((IList)($alist_add_alist(((IList)($alist_add_alist(((IList)pre_6),((IList)($me.order(((IList)($alist_add_alist(((IList)($alist_add_alist(((IList)onlyR_13),((IList)common_12)))),((IList)onlyOverlapping_14)))))))))),((IList)post2_10)))); + continue IF7; + } else { + continue IF7_LIST_MVARoverlapping_MVARpost2; + } + + } else { + continue IF7_LIST_MVARoverlapping_MVARpost2;/*list match1*/ + } + } + continue IF7_LIST_MVARoverlapping;/*computeFail*/ + + } + + + } + + } + + } while(false); + l_2 = ((IList)($alist_add_alist(((IList)($alist_add_alist(((IList)pre_6),((IList)($RVF.list(((IConstructor)r_5))))))),((IList)post_7)))); + continue IF6; + } else { + continue IF6_LIST_MVARpre_MVARpost; + } + + } + + } else { + continue IF6_LIST_MVARpre_MVARpost;/*list match1*/ + } + } + continue IF6_LIST_MVARpre;/*computeFail*/ + + } + + + } + + } + + } while(false); + final Template $template34 = (Template)new Template($RVF, "does this ever happen? "); + $template34.beginIndent(" "); + $template34.addVal(r_5); + $template34.endIndent(" "); + $template34.addStr(" and "); + $template34.beginIndent(" "); + $template34.addVal(l_2); + $template34.endIndent(" "); + M_IO.println(((IValue)($template34.close()))); + l_2 = ((IList)($alist_add_alist(((IList)($RVF.list(((IConstructor)r_5)))),((IList)l_2)))); + + } + continue FOR5_GEN3119; + + } else { + continue FOR5_GEN3119; + } + } else { + continue FOR5_GEN3119; + } + } + continue FOR5; + + } while(false); + + } while(false); + /* void: muCon([]) */ + } else { + continue FOR4_GEN3051; + } + } else { + continue FOR4_GEN3051; + } + } else { + continue FOR4_GEN3051; + } + } else { + continue FOR4_GEN3051; + } + } else { + continue FOR4_GEN3051; + } + } + continue FOR4; + + } while(false); + + } while(false); + /* void: muCon([]) */IMap m_15 = ((IMap)$constants.get(5)/*()*/); + ISet init_16 = ((ISet)$constants.get(2)/*{}*/); + /*muExists*/FOR8: + do { + /*muExists*/FOR8_GEN4124_CONS_lookahead: + do { + FOR8_GEN4124: + for(IValue $elem59_for : ((ISet)alts_1)){ + IConstructor $elem59 = (IConstructor) $elem59_for; + if($has_type_and_arity($elem59, Production_lookahead_Symbol_set_Symbol_Production, 3)){ + IValue $arg0_62 = (IValue)($aadt_subscript_int(((IConstructor)($elem59)),0)); + if($isComparable($arg0_62.getType(), $T6)){ + IValue $arg1_61 = (IValue)($aadt_subscript_int(((IConstructor)($elem59)),1)); + if($isComparable($arg1_61.getType(), $T16)){ + if(true){ + ISet classes_17 = ((ISet)($arg1_61)); + IValue $arg2_60 = (IValue)($aadt_subscript_int(((IConstructor)($elem59)),2)); + if($isComparable($arg2_60.getType(), M_ParseTree.ADT_Production)){ + if(true){ + IConstructor p_18 = ((IConstructor)($arg2_60)); + FOR8_GEN4124_CONS_lookahead_GEN4180: + for(IValue $elem57_for : ((ISet)($arg1_61))){ + IConstructor $elem57 = (IConstructor) $elem57_for; + if($has_type_and_arity($elem57, M_ParseTree.Symbol_char_class_list_CharRange, 1)){ + IValue $arg0_58 = (IValue)($aadt_subscript_int(((IConstructor)($elem57)),0)); + if($isComparable($arg0_58.getType(), $T4)){ + IList rs_19 = ((IList)($arg0_58)); + /*muExists*/FOR9: + do { + FOR9_GEN4219: + for(IValue $elem56_for : ((IList)l_2)){ + IConstructor $elem56 = (IConstructor) $elem56_for; + IConstructor r_20 = ((IConstructor)($elem56)); + if((((IBool)($equal(((IList)(M_lang_rascal_grammar_definition_Characters.intersection(((IList)($RVF.list(((IConstructor)r_20)))), ((IList)($arg0_58))))),((IList)$constants.get(0)/*[]*/)).not()))).getValue()){ + GuardedIValue guarded11 = $guarded_map_subscript(((IMap)m_15),((IConstructor)r_20)); + m_15 = ((IMap)($amap_update(r_20,$aset_add_aset(((ISet)(($is_defined_value(guarded11) ? ((ISet)$get_defined_value(guarded11)) : init_16))),((ISet)($RVF.set(((IConstructor)($arg2_60)))))), ((IMap)(((IMap)m_15)))))); + + } + + } + continue FOR9; + + } while(false); + /* void: muCon([]) */ + } else { + continue FOR8_GEN4124_CONS_lookahead_GEN4180; + } + } else { + continue FOR8_GEN4124_CONS_lookahead_GEN4180; + } + } + continue FOR8_GEN4124; + + } else { + continue FOR8_GEN4124; + } + } else { + continue FOR8_GEN4124; + } + } else { + continue FOR8_GEN4124; + } + } else { + continue FOR8_GEN4124; + } + } else { + continue FOR8_GEN4124; + } + } else { + continue FOR8_GEN4124; + } + } + continue FOR8; + + } while(false); + + } while(false); + /* void: muCon([]) */IMap mInv_21 = ((IMap)$constants.get(5)/*()*/); + ISet init2_22 = ((ISet)$constants.get(2)/*{}*/); + /*muExists*/FOR12: + do { + FOR12_GEN4497: + for(IValue $elem63_for : ((ISet)($amap_field_project((IMap)((IMap)m_15), ((IInteger)$constants.get(6)/*0*/), ((IInteger)$constants.get(7)/*1*/))))){ + IValue $elem63 = (IValue) $elem63_for; + final IValue $tuple_subject64 = ((IValue)($elem63)); + if($tuple_subject64 instanceof ITuple && ((ITuple)$tuple_subject64).arity() == 2){ + /*muExists*/FOR12_GEN4497_TUPLE: + do { + IConstructor r_23 = null; + ISet s_24 = null; + GuardedIValue guarded13 = $guarded_map_subscript(((IMap)mInv_21),((ISet)($subscript_int(((IValue)($tuple_subject64)),1)))); + mInv_21 = ((IMap)($amap_update($subscript_int(((IValue)($tuple_subject64)),1),$aset_add_aset(((ISet)(($is_defined_value(guarded13) ? ((ISet)$get_defined_value(guarded13)) : init2_22))),((ISet)($RVF.set(((IConstructor)($subscript_int(((IValue)($tuple_subject64)),0))))))), ((IMap)(((IMap)mInv_21)))))); + + } while(false); + + } else { + continue FOR12_GEN4497; + } + } + continue FOR12; + + } while(false); + /* void: muCon([]) */final ISetWriter $setwriter65 = (ISetWriter)$RVF.setWriter(); + ; + /*muExists*/$SCOMP66_GEN4586_CONS_lookahead: + do { + $SCOMP66_GEN4586: + for(IValue $elem67_for : ((ISet)alts_1)){ + IConstructor $elem67 = (IConstructor) $elem67_for; + if($has_type_and_arity($elem67, Production_lookahead_Symbol_set_Symbol_Production, 3)){ + IValue $arg0_70 = (IValue)($aadt_subscript_int(((IConstructor)($elem67)),0)); + if($isComparable($arg0_70.getType(), $T6)){ + IValue $arg1_69 = (IValue)($aadt_subscript_int(((IConstructor)($elem67)),1)); + if($isComparable($arg1_69.getType(), $T16)){ + ISet classes_26 = null; + IValue $arg2_68 = (IValue)($aadt_subscript_int(((IConstructor)($elem67)),2)); + if($isComparable($arg2_68.getType(), M_ParseTree.ADT_Production)){ + IConstructor p_27 = null; + if((((IBool)($RVF.bool(((ISet)($arg1_69)).contains(((IConstructor)($RVF.constructor(Symbol_eoi_, new IValue[]{})))))))).getValue()){ + $setwriter65.insert($arg2_68); + + } else { + continue $SCOMP66_GEN4586; + } + + } else { + continue $SCOMP66_GEN4586; + } + } else { + continue $SCOMP66_GEN4586; + } + } else { + continue $SCOMP66_GEN4586; + } + } else { + continue $SCOMP66_GEN4586; + } + } + + + } while(false); + ISet endOfInputClasses_25 = ((ISet)($setwriter65.done())); + final ISetWriter $setwriter71 = (ISetWriter)$RVF.setWriter(); + ; + $SCOMP72_GEN4730: + for(IValue $elem76_for : ((IMap)mInv_21)){ + ISet $elem76 = (ISet) $elem76_for; + ISet s_29 = null; + final IListWriter $listwriter73 = (IListWriter)$RVF.listWriter(); + $LCOMP74_GEN4695: + for(IValue $elem75_for : ((ISet)($amap_subscript(((IMap)mInv_21),((ISet)($elem76)))))){ + IConstructor $elem75 = (IConstructor) $elem75_for; + IConstructor r_28 = null; + $listwriter73.append($elem75); + + } + + $setwriter71.insert($RVF.constructor(Production_lookahead_Symbol_set_Symbol_Production, new IValue[]{((IConstructor)rhs_0), ((ISet)($RVF.set(((IConstructor)($RVF.constructor(M_ParseTree.Symbol_char_class_list_CharRange, new IValue[]{((IList)($listwriter73.done()))})))))), ((IConstructor)(M_Type.choice(((IConstructor)rhs_0), ((ISet)($elem76)))))})); + + } + + return ((IConstructor)(M_Type.choice(((IConstructor)rhs_0), ((ISet)($aset_add_aset(((ISet)($setwriter71.done())),((ISet)(((((IBool)($equal(((ISet)endOfInputClasses_25),((ISet)$constants.get(2)/*{}*/)).not()))).getValue() ? $RVF.set(((IConstructor)($RVF.constructor(Production_lookahead_Symbol_set_Symbol_Production, new IValue[]{((IConstructor)rhs_0), ((ISet)($RVF.set(((IConstructor)($RVF.constructor(Symbol_eoi_, new IValue[]{})))))), ((IConstructor)(M_Type.choice(((IConstructor)rhs_0), ((ISet)endOfInputClasses_25))))})))) : ((ISet)$constants.get(2)/*{}*/)))))))))); + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/lang/rascal/grammar/Lookahead.rsc|(4860,901,<128,0>,<153,1>) + public IConstructor lang_rascal_grammar_Lookahead_optimizeLookaheadsOld$8d0cc058fe472758(IConstructor rhs_0, ISet alts_1){ + + + int $iterations78 = 1000000; + if($iterations78 <= 0){ + throw RuntimeExceptionFactory.indexOutOfBounds($RVF.integer($iterations78)); + } + boolean $change79 = true; + while14: + while($change79 && $iterations78 >= 0){ + $change79 = false; + ISet $alts80 = (ISet)(alts_1); + /*muExists*/FOR15: + do { + /*muExists*/FOR15_GEN4962_CONS_lookahead: + do { + FOR15_GEN4962: + for(IValue $elem85_for : ((ISet)alts_1)){ + IConstructor $elem85 = (IConstructor) $elem85_for; + if($has_type_and_arity($elem85, Production_lookahead_Symbol_set_Symbol_Production, 3)){ + IValue $arg0_88 = (IValue)($aadt_subscript_int(((IConstructor)($elem85)),0)); + if($isComparable($arg0_88.getType(), $T6)){ + IValue $arg1_87 = (IValue)($aadt_subscript_int(((IConstructor)($elem85)),1)); + if($isComparable($arg1_87.getType(), $T1)){ + ISet c1_3 = ((ISet)($arg1_87)); + IValue $arg2_86 = (IValue)($aadt_subscript_int(((IConstructor)($elem85)),2)); + if($isComparable($arg2_86.getType(), M_ParseTree.ADT_Production)){ + IConstructor p1_4 = ((IConstructor)($arg2_86)); + IConstructor a_2 = ((IConstructor)($elem85)); + FOR15_GEN4962_CONS_lookahead_GEN4992: + for(IValue $elem81_for : ((ISet)alts_1)){ + IConstructor $elem81 = (IConstructor) $elem81_for; + if($has_type_and_arity($elem81, Production_lookahead_Symbol_set_Symbol_Production, 3)){ + IValue $arg0_84 = (IValue)($aadt_subscript_int(((IConstructor)($elem81)),0)); + if($isComparable($arg0_84.getType(), $T6)){ + IValue $arg1_83 = (IValue)($aadt_subscript_int(((IConstructor)($elem81)),1)); + if($isComparable($arg1_83.getType(), $T1)){ + ISet c2_6 = ((ISet)($arg1_83)); + IValue $arg2_82 = (IValue)($aadt_subscript_int(((IConstructor)($elem81)),2)); + if($isComparable($arg2_82.getType(), M_ParseTree.ADT_Production)){ + IConstructor p2_7 = ((IConstructor)($arg2_82)); + IConstructor b_5 = ((IConstructor)($elem81)); + if((((IBool)($equal(((IConstructor)a_2),((IConstructor)b_5)).not()))).getValue()){ + if((((IBool)($equal(((ISet)($arg1_87)), ((ISet)($arg1_83)))))).getValue()){ + alts_1 = ((ISet)(((ISet)alts_1).subtract(((ISet)($RVF.set(((IConstructor)a_2), b_5)))))); + alts_1 = ((ISet)($aset_add_aset(((ISet)alts_1),((ISet)($RVF.set(((IConstructor)($RVF.constructor(Production_lookahead_Symbol_set_Symbol_Production, new IValue[]{((IConstructor)rhs_0), ((ISet)($arg1_87)), ((IConstructor)(M_Type.choice(((IConstructor)rhs_0), ((ISet)($RVF.set(((IConstructor)($arg2_86)), $arg2_82))))))}))))))))); + + } else { + ISet common_8 = ((ISet)($me.intersect(((ISet)($arg1_87)), ((ISet)($arg1_83))))); + if((((IBool)($equal(((ISet)common_8),((ISet)$constants.get(2)/*{}*/)).not()))).getValue()){ + ISet diff1_9 = ((ISet)($me.diff(((ISet)($arg1_87)), ((ISet)($arg1_83))))); + ISet diff2_10 = ((ISet)($me.diff(((ISet)($arg1_83)), ((ISet)($arg1_87))))); + alts_1 = ((ISet)(((ISet)alts_1).subtract(((ISet)($RVF.set(((IConstructor)a_2), b_5)))))); + alts_1 = ((ISet)($aset_add_aset(((ISet)alts_1),((ISet)($RVF.set(((IConstructor)($RVF.constructor(Production_lookahead_Symbol_set_Symbol_Production, new IValue[]{((IConstructor)rhs_0), ((ISet)common_8), ((IConstructor)(M_Type.choice(((IConstructor)rhs_0), ((ISet)($RVF.set(((IConstructor)($arg2_86)), $arg2_82))))))}))))))))); + if((((IBool)($equal(((ISet)diff1_9),((ISet)$constants.get(2)/*{}*/)).not()))).getValue()){ + alts_1 = ((ISet)($aset_add_elm(((ISet)alts_1),((IConstructor)($RVF.constructor(Production_lookahead_Symbol_set_Symbol_Production, new IValue[]{((IConstructor)rhs_0), ((ISet)diff1_9), ((IConstructor)($arg2_86))})))))); + + } + if((((IBool)($equal(((ISet)diff2_10),((ISet)$constants.get(2)/*{}*/)).not()))).getValue()){ + alts_1 = ((ISet)($aset_add_elm(((ISet)alts_1),((IConstructor)($RVF.constructor(Production_lookahead_Symbol_set_Symbol_Production, new IValue[]{((IConstructor)rhs_0), ((ISet)diff2_10), ((IConstructor)($arg2_82))})))))); + + } + + } + + } + } else { + continue FOR15_GEN4962_CONS_lookahead_GEN4992; + } + + } else { + continue FOR15_GEN4962_CONS_lookahead_GEN4992; + } + } else { + continue FOR15_GEN4962_CONS_lookahead_GEN4992; + } + } else { + continue FOR15_GEN4962_CONS_lookahead_GEN4992; + } + } else { + continue FOR15_GEN4962_CONS_lookahead_GEN4992; + } + } + continue FOR15_GEN4962; + + } else { + continue FOR15_GEN4962; + } + } else { + continue FOR15_GEN4962; + } + } else { + continue FOR15_GEN4962; + } + } else { + continue FOR15_GEN4962; + } + } + continue FOR15; + + } while(false); + + } while(false); + /* void: muCon([]) */if((((IBool)($equal(((ISet)($alts80)),((ISet)alts_1)).not()))).getValue()){ + $change79 = true; + + } + $iterations78 += -1; + + } + return ((IConstructor)(M_Type.choice(((IConstructor)rhs_0), ((ISet)alts_1)))); + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/lang/rascal/grammar/Lookahead.rsc|(5763,211,<155,0>,<160,1>) + public ISet lang_rascal_grammar_Lookahead_intersect$652d8dca76a2dc21(ISet u1_0, ISet u2_1){ + + + /*muExists*/IF20: + do { + ISet $subject100 = (ISet)(u1_0); + IF20_SET_CONS_char_class$_DFLT_SET_ELM107: + for(IValue $elem106_for : ((ISet)($subject100))){ + IConstructor $elem106 = (IConstructor) $elem106_for; + if($has_type_and_arity($elem106, M_ParseTree.Symbol_char_class_list_CharRange, 1)){ + IValue $arg0_108 = (IValue)($aadt_subscript_int(((IConstructor)($elem106)),0)); + if($isComparable($arg0_108.getType(), $T4)){ + IList r1_2 = ((IList)($arg0_108)); + final ISet $subject102 = ((ISet)(((ISet)($subject100)).delete(((IConstructor)($elem106))))); + IF20_SET_CONS_char_class_MVAR$_89: + for(IValue $elem104_for : new SubSetGenerator(((ISet)($subject102)))){ + ISet $elem104 = (ISet) $elem104_for; + final ISet $subject103 = ((ISet)(((ISet)($subject102)).subtract(((ISet)($elem104))))); + if(((ISet)($subject103)).size() == 0){ + ISet $subject91 = (ISet)(u2_1); + IF20_SET_CONS_char_class$_DFLT_SET_ELM98: + for(IValue $elem97_for : ((ISet)($subject91))){ + IConstructor $elem97 = (IConstructor) $elem97_for; + if($has_type_and_arity($elem97, M_ParseTree.Symbol_char_class_list_CharRange, 1)){ + IValue $arg0_99 = (IValue)($aadt_subscript_int(((IConstructor)($elem97)),0)); + if($isComparable($arg0_99.getType(), $T4)){ + IList r2_3 = ((IList)($arg0_99)); + final ISet $subject93 = ((ISet)(((ISet)($subject91)).delete(((IConstructor)($elem97))))); + IF20_SET_CONS_char_class_MVAR$_90: + for(IValue $elem95_for : new SubSetGenerator(((ISet)($subject93)))){ + ISet $elem95 = (ISet) $elem95_for; + final ISet $subject94 = ((ISet)(((ISet)($subject93)).subtract(((ISet)($elem95))))); + if(((ISet)($subject94)).size() == 0){ + return ((ISet)($aset_add_aset(((ISet)($RVF.set(((IConstructor)($RVF.constructor(M_ParseTree.Symbol_char_class_list_CharRange, new IValue[]{((IList)(M_lang_rascal_grammar_definition_Characters.intersection(((IList)($arg0_108)), ((IList)($arg0_99)))))})))))),((ISet)(((ISet)u1_0).intersect(((ISet)u2_1))))))); + + } else { + continue IF20_SET_CONS_char_class_MVAR$_90;/*set pat3*/ + } + } + continue IF20_SET_CONS_char_class$_DFLT_SET_ELM98;/*redirected IF20_SET_CONS_char_class to IF20_SET_CONS_char_class$_DFLT_SET_ELM98; set pat4*/ + + } else { + continue IF20_SET_CONS_char_class$_DFLT_SET_ELM98;/*default set elem*/ + } + } else { + continue IF20_SET_CONS_char_class$_DFLT_SET_ELM98;/*default set elem*/ + } + } + continue IF20_SET_CONS_char_class_MVAR$_89; + + } else { + continue IF20_SET_CONS_char_class_MVAR$_89;/*set pat3*/ + } + } + continue IF20_SET_CONS_char_class$_DFLT_SET_ELM107;/*redirected IF20_SET_CONS_char_class to IF20_SET_CONS_char_class$_DFLT_SET_ELM107; set pat4*/ + + } else { + continue IF20_SET_CONS_char_class$_DFLT_SET_ELM107;/*default set elem*/ + } + } else { + continue IF20_SET_CONS_char_class$_DFLT_SET_ELM107;/*default set elem*/ + } + } + + + } while(false); + return ((ISet)(((ISet)u1_0).intersect(((ISet)u2_1)))); + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/lang/rascal/grammar/Lookahead.rsc|(5976,206,<162,0>,<167,1>) + public ISet lang_rascal_grammar_Lookahead_diff$a7f51e4503b5c204(ISet u1_0, ISet u2_1){ + + + /*muExists*/IF21: + do { + ISet $subject117 = (ISet)(u1_0); + IF21_SET_CONS_char_class$_DFLT_SET_ELM123: + for(IValue $elem122_for : ((ISet)($subject117))){ + IConstructor $elem122 = (IConstructor) $elem122_for; + if($has_type_and_arity($elem122, M_ParseTree.Symbol_char_class_list_CharRange, 1)){ + IValue $arg0_124 = (IValue)($aadt_subscript_int(((IConstructor)($elem122)),0)); + if($isComparable($arg0_124.getType(), $T4)){ + IList r1_2 = ((IList)($arg0_124)); + final ISet $subject119 = ((ISet)(((ISet)($subject117)).delete(((IConstructor)($elem122))))); + IF21_SET_CONS_char_class_MVARs1: + for(IValue $elem121_for : new SubSetGenerator(((ISet)($subject119)))){ + ISet $elem121 = (ISet) $elem121_for; + ISet s1_3 = ((ISet)($elem121)); + final ISet $subject120 = ((ISet)(((ISet)($subject119)).subtract(((ISet)($elem121))))); + if(((ISet)($subject120)).size() == 0){ + ISet $subject109 = (ISet)(u2_1); + IF21_SET_CONS_char_class$_DFLT_SET_ELM115: + for(IValue $elem114_for : ((ISet)($subject109))){ + IConstructor $elem114 = (IConstructor) $elem114_for; + if($has_type_and_arity($elem114, M_ParseTree.Symbol_char_class_list_CharRange, 1)){ + IValue $arg0_116 = (IValue)($aadt_subscript_int(((IConstructor)($elem114)),0)); + if($isComparable($arg0_116.getType(), $T4)){ + IList r2_4 = ((IList)($arg0_116)); + final ISet $subject111 = ((ISet)(((ISet)($subject109)).delete(((IConstructor)($elem114))))); + IF21_SET_CONS_char_class_MVARs2: + for(IValue $elem113_for : new SubSetGenerator(((ISet)($subject111)))){ + ISet $elem113 = (ISet) $elem113_for; + ISet s2_5 = ((ISet)($elem113)); + final ISet $subject112 = ((ISet)(((ISet)($subject111)).subtract(((ISet)($elem113))))); + if(((ISet)($subject112)).size() == 0){ + return ((ISet)($aset_add_aset(((ISet)($RVF.set(((IConstructor)($RVF.constructor(M_ParseTree.Symbol_char_class_list_CharRange, new IValue[]{((IList)(M_lang_rascal_grammar_definition_Characters.difference(((IList)($arg0_124)), ((IList)($arg0_116)))))})))))),((ISet)(((ISet)s1_3).subtract(((ISet)s2_5))))))); + + } else { + continue IF21_SET_CONS_char_class_MVARs2;/*set pat3*/ + } + } + continue IF21_SET_CONS_char_class$_DFLT_SET_ELM115;/*redirected IF21_SET_CONS_char_class to IF21_SET_CONS_char_class$_DFLT_SET_ELM115; set pat4*/ + + } else { + continue IF21_SET_CONS_char_class$_DFLT_SET_ELM115;/*default set elem*/ + } + } else { + continue IF21_SET_CONS_char_class$_DFLT_SET_ELM115;/*default set elem*/ + } + } + continue IF21_SET_CONS_char_class_MVARs1; + + } else { + continue IF21_SET_CONS_char_class_MVARs1;/*set pat3*/ + } + } + continue IF21_SET_CONS_char_class$_DFLT_SET_ELM123;/*redirected IF21_SET_CONS_char_class to IF21_SET_CONS_char_class$_DFLT_SET_ELM123; set pat4*/ + + } else { + continue IF21_SET_CONS_char_class$_DFLT_SET_ELM123;/*default set elem*/ + } + } else { + continue IF21_SET_CONS_char_class$_DFLT_SET_ELM123;/*default set elem*/ + } + } + + + } while(false); + return ((ISet)(((ISet)u1_0).subtract(((ISet)u2_1)))); + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/lang/rascal/grammar/Lookahead.rsc|(6210,142,<172,0>,<176,1>) + public IConstructor lang_rascal_grammar_Lookahead_removeLabels$018dc4c5ab035b44(IConstructor G_0){ + + + try { + IValue $visitResult = $TRAVERSE.traverse(DIRECTION.BottomUp, PROGRESS.Continuing, FIXEDPOINT.No, REBUILD.Yes, + new DescendantDescriptorAlwaysTrue($RVF.bool(false)), + G_0, + (IVisitFunction) (IValue $VISIT22_subject, TraversalState $traversalState) -> { + VISIT22:switch(Fingerprint.getFingerprint($VISIT22_subject)){ + + case 110389984: + if($isSubtypeOf($VISIT22_subject.getType(),M_ParseTree.ADT_Production)){ + /*muExists*/CASE_110389984_0: + do { + if($has_type_and_arity($VISIT22_subject, M_ParseTree.Production_prod_Symbol_list_Symbol_set_Attr, 3)){ + IValue $arg0_128 = (IValue)($aadt_subscript_int(((IConstructor)($VISIT22_subject)),0)); + if($isComparable($arg0_128.getType(), M_ParseTree.ADT_Symbol)){ + IConstructor rhs_1 = ((IConstructor)($arg0_128)); + IValue $arg1_127 = (IValue)($aadt_subscript_int(((IConstructor)($VISIT22_subject)),1)); + if($isComparable($arg1_127.getType(), $T0)){ + IList lhs_2 = ((IList)($arg1_127)); + IValue $arg2_126 = (IValue)($aadt_subscript_int(((IConstructor)($VISIT22_subject)),2)); + if($isComparable($arg2_126.getType(), $T23)){ + ISet a_3 = ((ISet)($arg2_126)); + IConstructor $replacement125 = (IConstructor)($RVF.constructor(M_ParseTree.Production_prod_Symbol_list_Symbol_set_Attr, new IValue[]{((IConstructor)($me.removeLabel(((IConstructor)($arg0_128))))), ((IList)($me.removeLabels(((IList)($arg1_127))))), ((ISet)($arg2_126))})); + if($isSubtypeOf($replacement125.getType(),$VISIT22_subject.getType())){ + $traversalState.setMatchedAndChanged(true, true); + return $replacement125; + + } else { + break VISIT22;// switch + + } + } + + } + + } + + } + + } while(false); + + } + + + + } + return $VISIT22_subject; + }); + return (IConstructor)$visitResult; + + } catch (ReturnFromTraversalException e) { + return (IConstructor) e.getValue(); + } + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/lang/rascal/grammar/Lookahead.rsc|(6354,78,<178,0>,<180,1>) + public IConstructor lang_rascal_grammar_Lookahead_removeLabel$dc7038cda9b1bd2d(IConstructor s_0){ + + + /*muExists*/$RET129: + do { + if($has_type_and_arity(s_0, M_Type.Symbol_label_str_Symbol, 2)){ + IValue $arg0_131 = (IValue)($aadt_subscript_int(((IConstructor)s_0),0)); + if($isComparable($arg0_131.getType(), $T6)){ + IValue $arg1_130 = (IValue)($aadt_subscript_int(((IConstructor)s_0),1)); + if($isComparable($arg1_130.getType(), M_ParseTree.ADT_Symbol)){ + IConstructor s2_1 = null; + return ((IConstructor)($arg1_130)); + + } + + } + + } + + } while(false); + return ((IConstructor)s_0); + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/lang/rascal/grammar/Lookahead.rsc|(6434,96,<182,0>,<184,1>) + public IList lang_rascal_grammar_Lookahead_removeLabels$9c574341c6d9ec97(IList syms_0){ + + + final IListWriter $listwriter132 = (IListWriter)$RVF.listWriter(); + $LCOMP133_GEN6516: + for(IValue $elem134_for : ((IList)syms_0)){ + IConstructor $elem134 = (IConstructor) $elem134_for; + IConstructor s_1 = ((IConstructor)($elem134)); + $listwriter132.append($me.removeLabel(((IConstructor)s_1))); + + } + + return ((IList)($listwriter132.done())); + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/lang/rascal/grammar/Lookahead.rsc|(6532,131,<186,0>,<188,1>) + public ISet lang_rascal_grammar_Lookahead_usedSymbols$2c1765cdce8f88b5(IConstructor G_0){ + + + final ISetWriter $setwriter135 = (ISetWriter)$RVF.setWriter(); + ; + /*muExists*/$SCOMP136_GEN6593_CONS_prod: + do { + $SCOMP136_GEN6593: + for(IValue $elem139_for : ((ISet)(((ISet)($aadt_get_field(((IConstructor)G_0), "productions")))))){ + IConstructor $elem139 = (IConstructor) $elem139_for; + if($has_type_and_arity($elem139, M_ParseTree.Production_prod_Symbol_list_Symbol_set_Attr, 3)){ + IValue $arg0_142 = (IValue)($aadt_subscript_int(((IConstructor)($elem139)),0)); + if($isComparable($arg0_142.getType(), $T6)){ + IValue $arg1_141 = (IValue)($aadt_subscript_int(((IConstructor)($elem139)),1)); + if($isComparable($arg1_141.getType(), $T6)){ + IValue $arg2_140 = (IValue)($aadt_subscript_int(((IConstructor)($elem139)),2)); + if($isComparable($arg2_140.getType(), $T6)){ + IConstructor p_1 = ((IConstructor)($elem139)); + $SCOMP136_GEN6593_CONS_prod_GEN6636: + for(IValue $elem137_for : ((IList)(((IList)($aadt_get_field(((IConstructor)p_1), "symbols")))))){ + IConstructor $elem137 = (IConstructor) $elem137_for; + $SCOMP136_GEN6593_CONS_prod_GEN6636_DESC6636: + for(IValue $elem138 : new DescendantMatchIterator($elem137, + new DescendantDescriptor(new io.usethesource.vallang.type.Type[]{$TF.listType(ADT_Symbol), M_Type.ADT_Exception, $TF.setType(ADT_Symbol), $TF.setType(ADT_Condition), ADT_KeywordArguments_1, M_ParseTree.ADT_Tree, M_ParseTree.ADT_TreeSearchResult_1, M_ParseTree.ADT_Condition, M_ParseTree.ADT_Production, M_ParseTree.ADT_Symbol, M_Grammar.ADT_Grammar, M_ParseTree.ADT_CharRange, M_Grammar.ADT_Item, M_Grammar.ADT_GrammarModule, $TF.listType(ADT_CharRange), M_Grammar.ADT_GrammarDefinition}, + new io.usethesource.vallang.IConstructor[]{}, + $RVF.bool(false)))){ + if($isComparable($elem138.getType(), M_ParseTree.ADT_Symbol)){ + if($isSubtypeOf($elem138.getType(),M_ParseTree.ADT_Symbol)){ + IConstructor s_2 = null; + $setwriter135.insert($elem138); + + } else { + continue $SCOMP136_GEN6593_CONS_prod_GEN6636_DESC6636; + } + } else { + continue $SCOMP136_GEN6593_CONS_prod_GEN6636_DESC6636; + } + } + continue $SCOMP136_GEN6593_CONS_prod_GEN6636; + + } + continue $SCOMP136_GEN6593; + + } else { + continue $SCOMP136_GEN6593; + } + } else { + continue $SCOMP136_GEN6593; + } + } else { + continue $SCOMP136_GEN6593; + } + } else { + continue $SCOMP136_GEN6593; + } + } + + + } while(false); + return ((ISet)($setwriter135.done())); + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/lang/rascal/grammar/Lookahead.rsc|(6665,102,<190,0>,<192,1>) + public ISet lang_rascal_grammar_Lookahead_definedSymbols$d175465ff362118c(IConstructor G_0){ + + + final ISetWriter $setwriter143 = (ISetWriter)$RVF.setWriter(); + ; + $SCOMP144_GEN6734: + for(IValue $elem145_for : ((ISet)(((ISet)($aadt_get_field(((IConstructor)G_0), "productions")))))){ + IConstructor $elem145 = (IConstructor) $elem145_for; + IConstructor p_1 = null; + $setwriter143.insert(((IConstructor)($aadt_get_field(((IConstructor)($elem145)), "def")))); + + } + + return ((ISet)($setwriter143.done())); + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/lang/rascal/grammar/Lookahead.rsc|(6769,102,<194,0>,<196,1>) + public ISet lang_rascal_grammar_Lookahead_terminalSymbols$a998324b5ea47532(IConstructor G_0){ + + + final ISetWriter $setwriter146 = (ISetWriter)$RVF.setWriter(); + ; + /*muExists*/$SCOMP147_GEN6833_CONS_char_class: + do { + $SCOMP147_GEN6833: + for(IValue $elem148_for : ((ISet)($me.usedSymbols(((IConstructor)G_0))))){ + IConstructor $elem148 = (IConstructor) $elem148_for; + if($has_type_and_arity($elem148, M_ParseTree.Symbol_char_class_list_CharRange, 1)){ + IValue $arg0_149 = (IValue)($aadt_subscript_int(((IConstructor)($elem148)),0)); + if($isComparable($arg0_149.getType(), $T6)){ + IConstructor S_1 = ((IConstructor)($elem148)); + $setwriter146.insert(S_1); + + } else { + continue $SCOMP147_GEN6833; + } + } else { + continue $SCOMP147_GEN6833; + } + } + + + } while(false); + return ((ISet)($setwriter146.done())); + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/lang/rascal/grammar/Lookahead.rsc|(6990,264,<202,0>,<214,1>) + public ISet lang_rascal_grammar_Lookahead_first$7ecc3715cf16dd3a(IList symbols_0, IMap FIRST_1){ + + + ISet result_2 = ((ISet)$constants.get(2)/*{}*/); + /*muExists*/FOR23: + do { + FOR23_GEN7091: + for(IValue $elem150_for : ((IList)symbols_0)){ + IConstructor $elem150 = (IConstructor) $elem150_for; + IConstructor S_3 = null; + ISet f_4 = ((ISet)($amap_subscript(((IMap)FIRST_1),((IConstructor)($elem150))))); + if((((IBool)($RVF.bool(!(((ISet)f_4)).contains(((IConstructor)$constants.get(1)/*empty()*/)))))).getValue()){ + return ((ISet)($aset_add_aset(((ISet)(((ISet)result_2).delete(((IConstructor)$constants.get(1)/*empty()*/)))),((ISet)f_4)))); + + } else { + result_2 = ((ISet)($aset_add_aset(((ISet)result_2),((ISet)f_4)))); + + } + } + continue FOR23; + + } while(false); + /* void: muCon([]) */return ((ISet)result_2); + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/lang/rascal/grammar/Lookahead.rsc|(7283,452,<218,0>,<233,1>) + public IMap lang_rascal_grammar_Lookahead_first$8d738115fa89afe8(IConstructor G_0){ + + + ISet defSymbols_1 = ((ISet)($me.definedSymbols(((IConstructor)G_0)))); + final IMapWriter $mapwriter151 = (IMapWriter)$RVF.mapWriter(); + $MCOMP152_GEN7389: + for(IValue $elem153_for : ((ISet)($me.terminalSymbols(((IConstructor)G_0))))){ + IConstructor $elem153 = (IConstructor) $elem153_for; + IConstructor trm_3 = null; + $mapwriter151.insert($RVF.tuple($elem153, $RVF.set(((IConstructor)($elem153))))); + + } + + final IMapWriter $mapwriter154 = (IMapWriter)$RVF.mapWriter(); + $MCOMP155_GEN7459: + for(IValue $elem156_for : ((ISet)defSymbols_1)){ + IConstructor $elem156 = (IConstructor) $elem156_for; + IConstructor S_4 = null; + $mapwriter154.insert($RVF.tuple($elem156, ((ISet)$constants.get(2)/*{}*/))); + + } + + IMap FIRST_2 = ((IMap)($amap_add_amap(((IMap)($mapwriter151.done())),((IMap)($mapwriter154.done()))))); + final ISetWriter $setwriter157 = (ISetWriter)$RVF.setWriter(); + ; + $SCOMP158_GEN7521: + for(IValue $elem163_for : ((ISet)defSymbols_1)){ + IConstructor $elem163 = (IConstructor) $elem163_for; + IConstructor S_6 = ((IConstructor)($elem163)); + $SCOMP158_GEN7521_GEN7538: + for(IValue $elem159_for : ((ISet)(((ISet)($aadt_get_field(((IConstructor)G_0), "productions")))))){ + IConstructor $elem159 = (IConstructor) $elem159_for; + if($has_type_and_arity($elem159, M_ParseTree.Production_prod_Symbol_list_Symbol_set_Attr, 3)){ + IValue $arg0_162 = (IValue)($aadt_subscript_int(((IConstructor)($elem159)),0)); + if($isComparable($arg0_162.getType(), M_ParseTree.ADT_Symbol)){ + if((S_6 != null)){ + if(S_6.match($arg0_162)){ + IValue $arg1_161 = (IValue)($aadt_subscript_int(((IConstructor)($elem159)),1)); + if($isComparable($arg1_161.getType(), $T0)){ + IList lhs_7 = null; + IValue $arg2_160 = (IValue)($aadt_subscript_int(((IConstructor)($elem159)),2)); + if($isComparable($arg2_160.getType(), $T6)){ + $setwriter157.insert($RVF.tuple(((IConstructor)($arg0_162)), ((IList)($arg1_161)))); + + } else { + continue $SCOMP158_GEN7521_GEN7538; + } + } else { + continue $SCOMP158_GEN7521_GEN7538; + } + } else { + continue $SCOMP158_GEN7521_GEN7538; + } + } else { + S_6 = ((IConstructor)($arg0_162)); + IValue $arg1_161 = (IValue)($aadt_subscript_int(((IConstructor)($elem159)),1)); + if($isComparable($arg1_161.getType(), $T0)){ + IList lhs_7 = null; + IValue $arg2_160 = (IValue)($aadt_subscript_int(((IConstructor)($elem159)),2)); + if($isComparable($arg2_160.getType(), $T6)){ + $setwriter157.insert($RVF.tuple(((IConstructor)($arg0_162)), ((IList)($arg1_161)))); + + } else { + continue $SCOMP158_GEN7521_GEN7538; + } + } else { + continue $SCOMP158_GEN7521_GEN7538; + } + } + } else { + continue $SCOMP158_GEN7521_GEN7538; + } + } else { + continue $SCOMP158_GEN7521_GEN7538; + } + } + continue $SCOMP158_GEN7521; + + } + + ISet def2lhs_5 = ((ISet)($setwriter157.done())); + int $iterations164 = 1000000; + if($iterations164 <= 0){ + throw RuntimeExceptionFactory.indexOutOfBounds($RVF.integer($iterations164)); + } + boolean $change165 = true; + while25: + while($change165 && $iterations164 >= 0){ + $change165 = false; + IMap $FIRST166 = (IMap)(FIRST_2); + /*muExists*/FOR26: + do { + FOR26_GEN7603: + for(IValue $elem168_for : ((ISet)def2lhs_5)){ + IValue $elem168 = (IValue) $elem168_for; + final IValue $tuple_subject169 = ((IValue)($elem168)); + if($tuple_subject169 instanceof ITuple && ((ITuple)$tuple_subject169).arity() == 2){ + /*muExists*/FOR26_GEN7603_TUPLE: + do { + IConstructor S_8 = ((IConstructor)($subscript_int(((IValue)($tuple_subject169)),0))); + IList lhs_9 = ((IList)($subscript_int(((IValue)($tuple_subject169)),1))); + FIRST_2 = ((IMap)($amap_update(S_8,$aset_add_aset(((ISet)($amap_subscript(((IMap)FIRST_2),((IConstructor)S_8)))),((ISet)(((((IBool)(M_List.isEmpty(((IList)lhs_9))))).getValue() ? ((ISet)$constants.get(8)/*{empty()}*/) : $me.first(((IList)lhs_9), ((IMap)FIRST_2)))))), ((IMap)(((IMap)FIRST_2)))))); + + } while(false); + + } else { + continue FOR26_GEN7603; + } + } + continue FOR26; + + } while(false); + /* void: muCon([]) */if((((IBool)($equal(((IMap)($FIRST166)),((IMap)FIRST_2)).not()))).getValue()){ + $change165 = true; + + } + $iterations164 += -1; + + } + return ((IMap)FIRST_2); + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/lang/rascal/grammar/Lookahead.rsc|(7738,618,<236,0>,<255,1>) + public IMap lang_rascal_grammar_Lookahead_follow$c4198b787ccc5199(IConstructor G_0, IMap FIRST_1){ + + + ISet defSymbols_2 = ((ISet)($me.definedSymbols(((IConstructor)G_0)))); + final ISetWriter $setwriter170 = (ISetWriter)$RVF.setWriter(); + ; + $SCOMP171_GEN7872: + for(IValue $elem172_for : ((ISet)(((ISet)($aadt_get_field(((IConstructor)G_0), "starts")))))){ + IConstructor $elem172 = (IConstructor) $elem172_for; + IConstructor S_4 = null; + $setwriter170.insert($RVF.tuple(((IConstructor)($elem172)), ((IConstructor)($RVF.constructor(Symbol_eoi_, new IValue[]{}))))); + + } + + ISet F_3 = ((ISet)($setwriter170.done())); + /*muExists*/FOR27: + do { + FOR27_GEN7907: + for(IValue $elem181_for : ((ISet)(((ISet)($aadt_get_field(((IConstructor)G_0), "productions")))))){ + IConstructor $elem181 = (IConstructor) $elem181_for; + if(true){ + IConstructor p_5 = ((IConstructor)($elem181)); + final IList $subject_val177 = ((IList)(((IList)($aadt_get_field(((IConstructor)p_5), "symbols"))))); + final IList $subject178 = ((IList)($subject_val177)); + int $subject178_cursor = 0; + if($isSubtypeOf($subject178.getType(),$T0)){ + final int $subject178_len = (int)((IList)($subject178)).length(); + if($subject178_len >= 1){ + final int $__1180_start = (int)$subject178_cursor; + FOR27_GEN7907_LIST_MVAR$_173: + + for(int $__1180_len = 0; $__1180_len <= $subject178_len - $__1180_start - 1; $__1180_len += 1){ + $subject178_cursor = $__1180_start + $__1180_len; + if($subject178_cursor < $subject178_len){ + IConstructor current_6 = ((IConstructor)($alist_subscript_int(((IList)($subject178)),$subject178_cursor))); + $subject178_cursor += 1; + final int $symbols_7179_start = (int)$subject178_cursor; + FOR27_GEN7907_LIST_MVAR$_173_VARcurrent_MVARsymbols: + + for(int $symbols_7179_len = 0; $symbols_7179_len <= $subject178_len - $symbols_7179_start - 0; $symbols_7179_len += 1){ + IList symbols_7 = ((IList)($subject178.sublist($symbols_7179_start, $symbols_7179_len))); + $subject178_cursor = $symbols_7179_start + $symbols_7179_len; + if($subject178_cursor == $subject178_len){ + if((((IBool)($RVF.bool(((ISet)defSymbols_2).contains(((IConstructor)current_6)))))).getValue()){ + ISet flw_8 = ((ISet)($me.first(((IList)symbols_7), ((IMap)FIRST_1)))); + if((((IBool)($RVF.bool(((ISet)flw_8).contains(((IConstructor)$constants.get(1)/*empty()*/)))))).getValue()){ + flw_8 = ((ISet)(((ISet)flw_8).subtract(((ISet)$constants.get(8)/*{empty()}*/)))); + flw_8 = ((ISet)($aset_add_aset(((ISet)flw_8),((ISet)($RVF.set(((IConstructor)(((IConstructor)($aadt_get_field(((IConstructor)p_5), "def"))))))))))); + + } else { + if((((IBool)(M_List.isEmpty(((IList)symbols_7))))).getValue()){ + flw_8 = ((ISet)(((ISet)flw_8).subtract(((ISet)$constants.get(8)/*{empty()}*/)))); + flw_8 = ((ISet)($aset_add_aset(((ISet)flw_8),((ISet)($RVF.set(((IConstructor)(((IConstructor)($aadt_get_field(((IConstructor)p_5), "def"))))))))))); + + } + + }final ISetWriter $setwriter174 = (ISetWriter)$RVF.setWriter(); + ; + $SCOMP175_GEN8210: + for(IValue $elem176_for : ((ISet)flw_8)){ + IConstructor $elem176 = (IConstructor) $elem176_for; + IConstructor s_9 = null; + $setwriter174.insert($RVF.tuple(((IConstructor)current_6), ((IConstructor)($elem176)))); + + } + + F_3 = ((ISet)($aset_add_aset(((ISet)F_3),((ISet)($setwriter174.done()))))); + + } + + } else { + continue FOR27_GEN7907_LIST_MVAR$_173_VARcurrent_MVARsymbols;/*list match1*/ + } + } + continue FOR27_GEN7907_LIST_MVAR$_173;/*computeFail*/ + + } else { + continue FOR27_GEN7907_LIST_MVAR$_173;/*computeFail*/ + } + } + continue FOR27_GEN7907; + + } else { + continue FOR27_GEN7907; + } + } else { + continue FOR27_GEN7907; + } + } else { + continue FOR27_GEN7907; + } + } + continue FOR27; + + } while(false); + /* void: muCon([]) */F_3 = ((ISet)(((ISet)F_3).asRelation().closureStar())); + final IMapWriter $mapwriter182 = (IMapWriter)$RVF.mapWriter(); + $MCOMP183_GEN8296: + for(IValue $elem184_for : ((ISet)($aset_add_aset(((ISet)defSymbols_2),((ISet)(((ISet)($aadt_get_field(((IConstructor)G_0), "starts"))))))))){ + IConstructor $elem184 = (IConstructor) $elem184_for; + IConstructor defSym_11 = null; + $mapwriter182.insert($RVF.tuple($elem184, ((ISet)($arel_subscript1_noset(((ISet)F_3),((IConstructor)($elem184))))).subtract(((ISet)defSymbols_2)))); + + } + + IMap FOLLOW_10 = ((IMap)($mapwriter182.done())); + return ((IMap)FOLLOW_10); + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/lang/rascal/grammar/Lookahead.rsc|(8358,134,<257,0>,<260,1>) + public ITuple lang_rascal_grammar_Lookahead_firstAndFollow$9a18a48b90b1e31c(IConstructor G_0){ + + + IMap fst_1 = ((IMap)($me.first(((IConstructor)G_0)))); + return ((ITuple)($RVF.tuple(((IMap)($me.mergeCC(((IMap)fst_1)))), ((IMap)($me.mergeCC(((IMap)($me.follow(((IConstructor)G_0), ((IMap)fst_1)))))))))); + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/lang/rascal/grammar/Lookahead.rsc|(8496,108,<262,0>,<266,1>) + public IMap lang_rascal_grammar_Lookahead_mergeCC$40d82b0eeb5fa303(IMap su_0){ + + + /*muExists*/FOR30: + do { + FOR30_GEN8545: + for(IValue $elem185_for : ((IMap)su_0)){ + IConstructor $elem185 = (IConstructor) $elem185_for; + IConstructor s_1 = ((IConstructor)($elem185)); + su_0 = ((IMap)($amap_update(s_1,$me.mergeCC(((ISet)($amap_subscript(((IMap)su_0),((IConstructor)s_1))))), ((IMap)(((IMap)su_0)))))); + + } + continue FOR30; + + } while(false); + /* void: muCon([]) */return ((IMap)su_0); + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/lang/rascal/grammar/Lookahead.rsc|(8606,295,<268,0>,<284,1>) + public ISet lang_rascal_grammar_Lookahead_mergeCC$1d434fe22b76cf3a(ISet su_0){ + + + ISet result_1 = ((ISet)$constants.get(2)/*{}*/); + if((((IBool)($RVF.bool(((ISet)su_0).contains(((IConstructor)$constants.get(1)/*empty()*/)))))).getValue()){ + result_1 = ((ISet)($aset_add_elm(((ISet)result_1),((IConstructor)$constants.get(1)/*empty()*/)))); + + } + if((((IBool)($RVF.bool(((ISet)su_0).contains(((IConstructor)($RVF.constructor(Symbol_eoi_, new IValue[]{})))))))).getValue()){ + result_1 = ((ISet)($aset_add_elm(((ISet)result_1),((IConstructor)($RVF.constructor(Symbol_eoi_, new IValue[]{})))))); + + } + IList rs_2 = ((IList)$constants.get(0)/*[]*/); + /*muExists*/FOR33: + do { + /*muExists*/FOR33_GEN8781_CONS_char_class: + do { + FOR33_GEN8781: + for(IValue $elem186_for : ((ISet)su_0)){ + IConstructor $elem186 = (IConstructor) $elem186_for; + if($has_type_and_arity($elem186, M_ParseTree.Symbol_char_class_list_CharRange, 1)){ + IValue $arg0_187 = (IValue)($aadt_subscript_int(((IConstructor)($elem186)),0)); + if($isComparable($arg0_187.getType(), $T4)){ + IList r_3 = ((IList)($arg0_187)); + rs_2 = ((IList)(M_lang_rascal_grammar_definition_Characters.union(((IList)rs_2), ((IList)($arg0_187))))); + + } else { + continue FOR33_GEN8781; + } + } else { + continue FOR33_GEN8781; + } + } + continue FOR33; + + } while(false); + + } while(false); + /* void: muCon([]) */if((((IBool)($equal(((IList)rs_2),((IList)$constants.get(0)/*[]*/)).not()))).getValue()){ + result_1 = ((ISet)($aset_add_elm(((ISet)result_1),((IConstructor)($RVF.constructor(M_ParseTree.Symbol_char_class_list_CharRange, new IValue[]{((IList)rs_2)})))))); + + } + return ((ISet)result_1); + + } + + + public static void main(String[] args) { + throw new RuntimeException("No function `main` found in Rascal module `lang::rascal::grammar::Lookahead`"); + } +} \ No newline at end of file diff --git a/src/rascal/lang/rascal/grammar/$Lookahead.tpl b/src/rascal/lang/rascal/grammar/$Lookahead.tpl new file mode 100644 index 00000000000..b67d2c7d418 Binary files /dev/null and b/src/rascal/lang/rascal/grammar/$Lookahead.tpl differ diff --git a/src/rascal/lang/rascal/grammar/$Lookahead_$I.java b/src/rascal/lang/rascal/grammar/$Lookahead_$I.java new file mode 100644 index 00000000000..d4361345b78 --- /dev/null +++ b/src/rascal/lang/rascal/grammar/$Lookahead_$I.java @@ -0,0 +1,24 @@ +package rascal.lang.rascal.grammar; +import io.usethesource.vallang.*; +import org.rascalmpl.runtime.function.*; + +@SuppressWarnings("unused") +public interface $Lookahead_$I { + IValue compileLookaheads(IValue $0); + IValue computeLookaheads(IValue $0, IValue $1); + IValue definedSymbols(IValue $0); + IValue diff(IValue $0, IValue $1); + IValue first(IValue $0); + IValue first(IValue $0, IValue $1); + IValue firstAndFollow(IValue $0); + IValue follow(IValue $0, IValue $1); + IValue intersect(IValue $0, IValue $1); + IValue mergeCC(IValue $0); + IValue optimizeLookaheads(IValue $0, IValue $1); + IValue optimizeLookaheadsOld(IValue $0, IValue $1); + IValue order(IValue $0); + IValue removeLabel(IValue $0); + IValue removeLabels(IValue $0); + IValue terminalSymbols(IValue $0); + IValue usedSymbols(IValue $0); +} \ No newline at end of file diff --git a/src/rascal/lang/rascal/grammar/$ParserGenerator.constants b/src/rascal/lang/rascal/grammar/$ParserGenerator.constants new file mode 100644 index 00000000000..c8f4714f5ed Binary files /dev/null and b/src/rascal/lang/rascal/grammar/$ParserGenerator.constants differ diff --git a/src/rascal/lang/rascal/grammar/$ParserGenerator.java b/src/rascal/lang/rascal/grammar/$ParserGenerator.java new file mode 100644 index 00000000000..a763b09e84d --- /dev/null +++ b/src/rascal/lang/rascal/grammar/$ParserGenerator.java @@ -0,0 +1,6132 @@ +package rascal.lang.rascal.grammar; +import java.io.PrintWriter; +import java.io.StringWriter; +import java.io.InputStreamReader; +import java.io.PrintWriter; +import java.util.*; +import java.util.regex.Matcher; +import io.usethesource.vallang.*; +import io.usethesource.vallang.type.*; +import org.rascalmpl.runtime.*; +import org.rascalmpl.runtime.RascalExecutionContext; +import org.rascalmpl.runtime.function.*; +import org.rascalmpl.runtime.traverse.*; +import org.rascalmpl.runtime.utils.*; +import org.rascalmpl.exceptions.RuntimeExceptionFactory; +import org.rascalmpl.exceptions.Throw; +import org.rascalmpl.runtime.RascalExecutionContext; +import org.rascalmpl.interpreter.control_exceptions.Filtered; +import org.rascalmpl.types.NonTerminalType; +import org.rascalmpl.types.RascalTypeFactory; +import org.rascalmpl.util.ExpiringFunctionResultCache; +import org.rascalmpl.values.RascalValueFactory; +import org.rascalmpl.values.ValueFactoryFactory; +import org.rascalmpl.values.parsetrees.ITree; +import org.rascalmpl.values.parsetrees.TreeAdapter; + + + +@SuppressWarnings({"unused","unchecked","deprecation"}) +public class $ParserGenerator + extends + org.rascalmpl.runtime.$RascalModule + implements + rascal.lang.rascal.grammar.$ParserGenerator_$I { + + private final $ParserGenerator_$I $me; + private final IList $constants; + + + public final rascal.lang.rascal.grammar.definition.$Priorities M_lang_rascal_grammar_definition_Priorities; + public final rascal.lang.rascal.grammar.definition.$Literals M_lang_rascal_grammar_definition_Literals; + public final rascal.$Exception M_Exception; + public final rascal.lang.rascal.grammar.$Lookahead M_lang_rascal_grammar_Lookahead; + public final rascal.lang.rascal.grammar.$ConcreteSyntax M_lang_rascal_grammar_ConcreteSyntax; + public final rascal.lang.rascal.grammar.definition.$Symbols M_lang_rascal_grammar_definition_Symbols; + public final rascal.$List M_List; + public final rascal.$Set M_Set; + public final rascal.$Node M_Node; + public final rascal.lang.rascal.syntax.$Rascal M_lang_rascal_syntax_Rascal; + public final rascal.lang.rascal.grammar.definition.$Modules M_lang_rascal_grammar_definition_Modules; + public final rascal.$Grammar M_Grammar; + public final rascal.$Message M_Message; + public final rascal.lang.rascal.grammar.definition.$Keywords M_lang_rascal_grammar_definition_Keywords; + public final rascal.lang.rascal.grammar.definition.$Parameters M_lang_rascal_grammar_definition_Parameters; + public final rascal.$String M_String; + public final rascal.$ParseTree M_ParseTree; + public final rascal.util.$Monitor M_util_Monitor; + public final rascal.lang.rascal.grammar.definition.$Productions M_lang_rascal_grammar_definition_Productions; + public final rascal.lang.rascal.grammar.definition.$Regular M_lang_rascal_grammar_definition_Regular; + public final rascal.$Type M_Type; + + + + public IMap javaStringEscapes; + public IMap javaIdEscapes; + public final io.usethesource.vallang.type.Type $T13; /*astr(alabel="new")*/ + public final io.usethesource.vallang.type.Type $T1; /*avalue()*/ + public final io.usethesource.vallang.type.Type $T21; /*aparameter("A",avalue(),closed=true)*/ + public final io.usethesource.vallang.type.Type $T23; /*avoid()*/ + public final io.usethesource.vallang.type.Type $T3; /*aparameter("T",avalue(),closed=false)*/ + public final io.usethesource.vallang.type.Type $T25; /*aint(alabel="w")*/ + public final io.usethesource.vallang.type.Type $T17; /*aparameter("A",avalue(),closed=false)*/ + public final io.usethesource.vallang.type.Type $T7; /*aint()*/ + public final io.usethesource.vallang.type.Type $T24; /*astr(alabel="m")*/ + public final io.usethesource.vallang.type.Type $T14; /*aint(alabel="itemId")*/ + public final io.usethesource.vallang.type.Type $T5; /*astr()*/ + public final io.usethesource.vallang.type.Type ADT_ProtocolChars; /*aadt("ProtocolChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_ProtocolChars; /*aadt("ProtocolChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Name; /*aadt("Name",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Name; /*aadt("Name",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Visibility; /*aadt("Visibility",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Visibility; /*aadt("Visibility",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_TagString; /*aadt("TagString",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_TagString; /*aadt("TagString",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_FunctionType; /*aadt("FunctionType",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_FunctionType; /*aadt("FunctionType",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Attr; /*aadt("Attr",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Tree; /*aadt("Tree",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type $T19; /*aparameter("T",aadt("Tree",[],dataSyntax()),closed=true)*/ + public final io.usethesource.vallang.type.Type ADT_KeywordArguments_1; /*aadt("KeywordArguments",[aparameter("T",aadt("Tree",[],dataSyntax()),closed=true)],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_KeywordArguments_1; /*aadt("KeywordArguments",[aparameter("T",aadt("Tree",[],dataSyntax()),closed=true)],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type $T10; /*alit(",")*/ + public final io.usethesource.vallang.type.Type ADT_Variable; /*aadt("Variable",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Variable; /*aadt("Variable",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Replacement; /*aadt("Replacement",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Replacement; /*aadt("Replacement",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Symbol; /*aadt("Symbol",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type $T15; /*atuple(atypeList([astr(alabel="new"),aint(alabel="itemId")]),alabel="new")*/ + public final io.usethesource.vallang.type.Type $T16; /*amap(aadt("Item",[],dataSyntax(),alabel="item"),atuple(atypeList([astr(alabel="new"),aint(alabel="itemId")]),alabel="new"))*/ + public final io.usethesource.vallang.type.Type $T12; /*amap(aadt("Symbol",[],dataSyntax()),amap(aadt("Item",[],dataSyntax(),alabel="item"),atuple(atypeList([astr(alabel="new"),aint(alabel="itemId")]),alabel="new")))*/ + public final io.usethesource.vallang.type.Type ADT_LAYOUT; /*aadt("LAYOUT",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_LAYOUT; /*aadt("LAYOUT",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Range; /*aadt("Range",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Range; /*aadt("Range",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Concrete; /*aadt("Concrete",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Concrete; /*aadt("Concrete",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Pattern; /*aadt("Pattern",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Pattern; /*aadt("Pattern",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Mapping_Pattern; /*aadt("Mapping",[aadt("Pattern",[],contextFreeSyntax())],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Mapping_Pattern; /*aadt("Mapping",[aadt("Pattern",[],contextFreeSyntax())],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_PostProtocolChars; /*aadt("PostProtocolChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_PostProtocolChars; /*aadt("PostProtocolChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_IOCapability; /*aadt("IOCapability",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_LocationChangeType; /*aadt("LocationChangeType",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Production; /*aadt("Production",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Maybe_Production; /*aadt("Maybe",[aadt("Production",[],dataSyntax())],dataSyntax())*/ + public final io.usethesource.vallang.type.Type Maybe_Production_just_Production; /*acons(aadt("Maybe",[aadt("Production",[],dataSyntax())],dataSyntax()),[aadt("Production",[],dataSyntax(),alabel="val")],[],alabel="just")*/ + public final io.usethesource.vallang.type.Type ADT_RegExpLiteral; /*aadt("RegExpLiteral",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_RegExpLiteral; /*aadt("RegExpLiteral",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_RationalLiteral; /*aadt("RationalLiteral",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_RationalLiteral; /*aadt("RationalLiteral",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Declarator; /*aadt("Declarator",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Declarator; /*aadt("Declarator",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_IntegerLiteral; /*aadt("IntegerLiteral",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_IntegerLiteral; /*aadt("IntegerLiteral",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Item; /*aadt("Item",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_ModuleParameters; /*aadt("ModuleParameters",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_ModuleParameters; /*aadt("ModuleParameters",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_SyntaxDefinition; /*aadt("SyntaxDefinition",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_SyntaxDefinition; /*aadt("SyntaxDefinition",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Prod; /*aadt("Prod",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Prod; /*aadt("Prod",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_DatePart; /*aadt("DatePart",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_DatePart; /*aadt("DatePart",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_GrammarModule; /*aadt("GrammarModule",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type $T20; /*aparameter("T",aadt("Tree",[],dataSyntax()),closed=false)*/ + public final io.usethesource.vallang.type.Type ADT_Output; /*aadt("Output",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Output; /*aadt("Output",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_LocalVariableDeclaration; /*aadt("LocalVariableDeclaration",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_LocalVariableDeclaration; /*aadt("LocalVariableDeclaration",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Expression; /*aadt("Expression",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Expression; /*aadt("Expression",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Mapping_Expression; /*aadt("Mapping",[aadt("Expression",[],contextFreeSyntax())],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Mapping_Expression; /*aadt("Mapping",[aadt("Expression",[],contextFreeSyntax())],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Case; /*aadt("Case",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Case; /*aadt("Case",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_MidStringChars; /*aadt("MidStringChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_MidStringChars; /*aadt("MidStringChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_BooleanLiteral; /*aadt("BooleanLiteral",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_BooleanLiteral; /*aadt("BooleanLiteral",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_TimePartNoTZ; /*aadt("TimePartNoTZ",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_TimePartNoTZ; /*aadt("TimePartNoTZ",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Mapping_1; /*aadt("Mapping",[aparameter("T",aadt("Tree",[],dataSyntax()),closed=true)],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Mapping_1; /*aadt("Mapping",[aparameter("T",aadt("Tree",[],dataSyntax()),closed=true)],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Target; /*aadt("Target",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Target; /*aadt("Target",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_ImportedModule; /*aadt("ImportedModule",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_ImportedModule; /*aadt("ImportedModule",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Strategy; /*aadt("Strategy",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Strategy; /*aadt("Strategy",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_KeywordArguments_Expression; /*aadt("KeywordArguments",[aadt("Expression",[],contextFreeSyntax())],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_KeywordArguments_Expression; /*aadt("KeywordArguments",[aadt("Expression",[],contextFreeSyntax())],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_KeywordFormals; /*aadt("KeywordFormals",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_KeywordFormals; /*aadt("KeywordFormals",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_DataTarget; /*aadt("DataTarget",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_DataTarget; /*aadt("DataTarget",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Renaming; /*aadt("Renaming",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Renaming; /*aadt("Renaming",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Maybe_1; /*aadt("Maybe",[aparameter("A",avalue(),closed=true)],dataSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Catch; /*aadt("Catch",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Catch; /*aadt("Catch",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_OptionalExpression; /*aadt("OptionalExpression",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_OptionalExpression; /*aadt("OptionalExpression",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type $T26; /*afunc(avoid(),[astr(alabel="m"),aint(alabel="w")],[],alabel="worked")*/ + public final io.usethesource.vallang.type.Type ADT_KeywordArgument_1; /*aadt("KeywordArgument",[aparameter("T",aadt("Tree",[],dataSyntax()),closed=true)],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_KeywordArgument_1; /*aadt("KeywordArgument",[aparameter("T",aadt("Tree",[],dataSyntax()),closed=true)],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_GrammarDefinition; /*aadt("GrammarDefinition",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Field; /*aadt("Field",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Field; /*aadt("Field",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_FunctionBody; /*aadt("FunctionBody",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_FunctionBody; /*aadt("FunctionBody",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_LocationLiteral; /*aadt("LocationLiteral",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_LocationLiteral; /*aadt("LocationLiteral",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Tag; /*aadt("Tag",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Tag; /*aadt("Tag",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Type; /*aadt("Type",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Type; /*aadt("Type",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_PostStringChars; /*aadt("PostStringChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_PostStringChars; /*aadt("PostStringChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_CharRange; /*aadt("CharRange",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type $T11; /*alist(aadt("CharRange",[],dataSyntax()))*/ + public final io.usethesource.vallang.type.Type ADT_HexIntegerLiteral; /*aadt("HexIntegerLiteral",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_HexIntegerLiteral; /*aadt("HexIntegerLiteral",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_ShellCommand; /*aadt("ShellCommand",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_ShellCommand; /*aadt("ShellCommand",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_TimeZonePart; /*aadt("TimeZonePart",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_TimeZonePart; /*aadt("TimeZonePart",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Declaration; /*aadt("Declaration",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Declaration; /*aadt("Declaration",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_PreStringChars; /*aadt("PreStringChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_PreStringChars; /*aadt("PreStringChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Nonterminal; /*aadt("Nonterminal",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Nonterminal; /*aadt("Nonterminal",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_StringLiteral; /*aadt("StringLiteral",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_StringLiteral; /*aadt("StringLiteral",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type $T4; /*alist(aparameter("T",avalue(),closed=false))*/ + public final io.usethesource.vallang.type.Type ADT_KeywordArguments_Pattern; /*aadt("KeywordArguments",[aadt("Pattern",[],contextFreeSyntax())],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_KeywordArguments_Pattern; /*aadt("KeywordArguments",[aadt("Pattern",[],contextFreeSyntax())],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_NonterminalLabel; /*aadt("NonterminalLabel",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_NonterminalLabel; /*aadt("NonterminalLabel",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_TypeArg; /*aadt("TypeArg",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_TypeArg; /*aadt("TypeArg",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Bound; /*aadt("Bound",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Bound; /*aadt("Bound",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_TreeSearchResult_1; /*aadt("TreeSearchResult",[aparameter("T",aadt("Tree",[],dataSyntax()),closed=true)],dataSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_PathPart; /*aadt("PathPart",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_PathPart; /*aadt("PathPart",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Class; /*aadt("Class",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Class; /*aadt("Class",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Signature; /*aadt("Signature",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Signature; /*aadt("Signature",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_KeywordFormal; /*aadt("KeywordFormal",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_KeywordFormal; /*aadt("KeywordFormal",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Associativity; /*aadt("Associativity",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Renamings; /*aadt("Renamings",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Renamings; /*aadt("Renamings",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Tags; /*aadt("Tags",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Tags; /*aadt("Tags",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_RegExp; /*aadt("RegExp",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_RegExp; /*aadt("RegExp",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_ModuleActuals; /*aadt("ModuleActuals",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_ModuleActuals; /*aadt("ModuleActuals",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Maybe_Symbol; /*aadt("Maybe",[aadt("Symbol",[],dataSyntax())],dataSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_URLChars; /*aadt("URLChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_URLChars; /*aadt("URLChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_DataTypeSelector; /*aadt("DataTypeSelector",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_DataTypeSelector; /*aadt("DataTypeSelector",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type $T28; /*alist(avoid())*/ + public final io.usethesource.vallang.type.Type ADT_Maybe_Associativity; /*aadt("Maybe",[aadt("Associativity",[],dataSyntax(),alabel="a")],dataSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Start; /*aadt("Start",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Start; /*aadt("Start",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Body; /*aadt("Body",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Body; /*aadt("Body",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_PrePathChars; /*aadt("PrePathChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_PrePathChars; /*aadt("PrePathChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_StringTail; /*aadt("StringTail",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_StringTail; /*aadt("StringTail",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Backslash; /*aadt("Backslash",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Backslash; /*aadt("Backslash",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Char; /*aadt("Char",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Char; /*aadt("Char",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_LAYOUTLIST; /*aadt("LAYOUTLIST",[],layoutSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_CaseInsensitiveStringConstant; /*aadt("CaseInsensitiveStringConstant",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_CaseInsensitiveStringConstant; /*aadt("CaseInsensitiveStringConstant",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type $T22; /*afunc(astr(),[afunc(avoid(),[astr(alabel="m"),aint(alabel="w")],[],alabel="worked")],[],returnsViaAllPath=true)*/ + public final io.usethesource.vallang.type.Type ADT_Header; /*aadt("Header",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Header; /*aadt("Header",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_LocationType; /*aadt("LocationType",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Assignment; /*aadt("Assignment",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Assignment; /*aadt("Assignment",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type $T0; /*aset(aadt("Symbol",[],dataSyntax()))*/ + public final io.usethesource.vallang.type.Type ADT_Exception; /*aadt("Exception",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_PatternWithAction; /*aadt("PatternWithAction",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_PatternWithAction; /*aadt("PatternWithAction",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_StringConstant; /*aadt("StringConstant",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_StringConstant; /*aadt("StringConstant",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_OptionalComma; /*aadt("OptionalComma",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_OptionalComma; /*aadt("OptionalComma",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_FunctionDeclaration; /*aadt("FunctionDeclaration",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_FunctionDeclaration; /*aadt("FunctionDeclaration",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_TypeVar; /*aadt("TypeVar",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_TypeVar; /*aadt("TypeVar",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type $T18; /*aset(aadt("Production",[],dataSyntax()))*/ + public final io.usethesource.vallang.type.Type $T27; /*aset(aadt("Attr",[],dataSyntax()))*/ + public final io.usethesource.vallang.type.Type ADT_Import; /*aadt("Import",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Import; /*aadt("Import",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_FunctionModifiers; /*aadt("FunctionModifiers",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_FunctionModifiers; /*aadt("FunctionModifiers",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Comprehension; /*aadt("Comprehension",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Comprehension; /*aadt("Comprehension",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Maybe_Attr; /*aadt("Maybe",[aadt("Attr",[],dataSyntax())],dataSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Message; /*aadt("Message",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_ConcreteHole; /*aadt("ConcreteHole",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_ConcreteHole; /*aadt("ConcreteHole",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Grammar; /*aadt("Grammar",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_UserType; /*aadt("UserType",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_UserType; /*aadt("UserType",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Variant; /*aadt("Variant",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Variant; /*aadt("Variant",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_StringMiddle; /*aadt("StringMiddle",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_StringMiddle; /*aadt("StringMiddle",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_RealLiteral; /*aadt("RealLiteral",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_RealLiteral; /*aadt("RealLiteral",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_DateAndTime; /*aadt("DateAndTime",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_DateAndTime; /*aadt("DateAndTime",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type $T9; /*\iter-seps(aadt("Expression",[],contextFreeSyntax()),[aadt("LAYOUTLIST",[],layoutSyntax()),alit(","),aadt("LAYOUTLIST",[],layoutSyntax())])*/ + public final io.usethesource.vallang.type.Type ADT_JustDate; /*aadt("JustDate",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_JustDate; /*aadt("JustDate",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_QualifiedName; /*aadt("QualifiedName",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_QualifiedName; /*aadt("QualifiedName",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Formals; /*aadt("Formals",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Formals; /*aadt("Formals",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_MidPathChars; /*aadt("MidPathChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_MidPathChars; /*aadt("MidPathChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Sym; /*aadt("Sym",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Sym; /*aadt("Sym",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type $T6; /*alist(aadt("Symbol",[],dataSyntax()))*/ + public final io.usethesource.vallang.type.Type ADT_RascalKeywords; /*aadt("RascalKeywords",[],keywordSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_NamedBackslash; /*aadt("NamedBackslash",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_NamedBackslash; /*aadt("NamedBackslash",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_MidProtocolChars; /*aadt("MidProtocolChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_MidProtocolChars; /*aadt("MidProtocolChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type Maybe_Symbol_just_Symbol; /*acons(aadt("Maybe",[aadt("Symbol",[],dataSyntax())],dataSyntax()),[aadt("Symbol",[],dataSyntax(),alabel="val")],[],alabel="just")*/ + public final io.usethesource.vallang.type.Type ADT_Parameters; /*aadt("Parameters",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Parameters; /*aadt("Parameters",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type $T2; /*aset(aparameter("T",avalue(),closed=false))*/ + public final io.usethesource.vallang.type.Type ADT_Command; /*aadt("Command",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Command; /*aadt("Command",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_StructuredType; /*aadt("StructuredType",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_StructuredType; /*aadt("StructuredType",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_OctalIntegerLiteral; /*aadt("OctalIntegerLiteral",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_OctalIntegerLiteral; /*aadt("OctalIntegerLiteral",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_ProtocolPart; /*aadt("ProtocolPart",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_ProtocolPart; /*aadt("ProtocolPart",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_StringTemplate; /*aadt("StringTemplate",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_StringTemplate; /*aadt("StringTemplate",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Kind; /*aadt("Kind",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Kind; /*aadt("Kind",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_DateTimeLiteral; /*aadt("DateTimeLiteral",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_DateTimeLiteral; /*aadt("DateTimeLiteral",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Label; /*aadt("Label",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Label; /*aadt("Label",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_LocationChangeEvent; /*aadt("LocationChangeEvent",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_RegExpModifier; /*aadt("RegExpModifier",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_RegExpModifier; /*aadt("RegExpModifier",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Condition; /*aadt("Condition",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_PreProtocolChars; /*aadt("PreProtocolChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_PreProtocolChars; /*aadt("PreProtocolChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_PathTail; /*aadt("PathTail",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_PathTail; /*aadt("PathTail",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_NamedRegExp; /*aadt("NamedRegExp",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_NamedRegExp; /*aadt("NamedRegExp",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Assoc; /*aadt("Assoc",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Assoc; /*aadt("Assoc",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_RuntimeException; /*aadt("RuntimeException",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type $T8; /*aset(aadt("Condition",[],dataSyntax()))*/ + public final io.usethesource.vallang.type.Type ADT_PathChars; /*aadt("PathChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_PathChars; /*aadt("PathChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_PostPathChars; /*aadt("PostPathChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_PostPathChars; /*aadt("PostPathChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_StringCharacter; /*aadt("StringCharacter",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_StringCharacter; /*aadt("StringCharacter",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_$default$; /*aadt("$default$",[],layoutSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_EvalCommand; /*aadt("EvalCommand",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_EvalCommand; /*aadt("EvalCommand",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Statement; /*aadt("Statement",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Statement; /*aadt("Statement",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Module; /*aadt("Module",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Module; /*aadt("Module",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_ConcretePart; /*aadt("ConcretePart",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_ConcretePart; /*aadt("ConcretePart",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Literal; /*aadt("Literal",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Literal; /*aadt("Literal",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Toplevel; /*aadt("Toplevel",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Toplevel; /*aadt("Toplevel",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_ProtocolTail; /*aadt("ProtocolTail",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_ProtocolTail; /*aadt("ProtocolTail",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_BasicType; /*aadt("BasicType",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_BasicType; /*aadt("BasicType",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Commands; /*aadt("Commands",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Commands; /*aadt("Commands",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Visit; /*aadt("Visit",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Visit; /*aadt("Visit",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Comment; /*aadt("Comment",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Comment; /*aadt("Comment",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_DecimalIntegerLiteral; /*aadt("DecimalIntegerLiteral",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_DecimalIntegerLiteral; /*aadt("DecimalIntegerLiteral",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_JustTime; /*aadt("JustTime",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_JustTime; /*aadt("JustTime",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_FunctionModifier; /*aadt("FunctionModifier",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_FunctionModifier; /*aadt("FunctionModifier",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_ProdModifier; /*aadt("ProdModifier",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_ProdModifier; /*aadt("ProdModifier",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Assignable; /*aadt("Assignable",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Assignable; /*aadt("Assignable",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_UnicodeEscape; /*aadt("UnicodeEscape",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_UnicodeEscape; /*aadt("UnicodeEscape",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_CommonKeywordParameters; /*aadt("CommonKeywordParameters",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_CommonKeywordParameters; /*aadt("CommonKeywordParameters",[],contextFreeSyntax())*/ + + public $ParserGenerator(RascalExecutionContext rex){ + this(rex, null); + } + + public $ParserGenerator(RascalExecutionContext rex, Object extended){ + super(rex); + this.$me = extended == null ? this : ($ParserGenerator_$I)extended; + ModuleStore mstore = rex.getModuleStore(); + mstore.put(rascal.lang.rascal.grammar.$ParserGenerator.class, this); + + mstore.importModule(rascal.lang.rascal.grammar.definition.$Priorities.class, rex, rascal.lang.rascal.grammar.definition.$Priorities::new); + mstore.importModule(rascal.lang.rascal.grammar.definition.$Literals.class, rex, rascal.lang.rascal.grammar.definition.$Literals::new); + mstore.importModule(rascal.$Exception.class, rex, rascal.$Exception::new); + mstore.importModule(rascal.lang.rascal.grammar.$Lookahead.class, rex, rascal.lang.rascal.grammar.$Lookahead::new); + mstore.importModule(rascal.lang.rascal.grammar.$ConcreteSyntax.class, rex, rascal.lang.rascal.grammar.$ConcreteSyntax::new); + mstore.importModule(rascal.lang.rascal.grammar.definition.$Symbols.class, rex, rascal.lang.rascal.grammar.definition.$Symbols::new); + mstore.importModule(rascal.$List.class, rex, rascal.$List::new); + mstore.importModule(rascal.$Set.class, rex, rascal.$Set::new); + mstore.importModule(rascal.$Node.class, rex, rascal.$Node::new); + mstore.importModule(rascal.lang.rascal.syntax.$Rascal.class, rex, rascal.lang.rascal.syntax.$Rascal::new); + mstore.importModule(rascal.lang.rascal.grammar.definition.$Modules.class, rex, rascal.lang.rascal.grammar.definition.$Modules::new); + mstore.importModule(rascal.$Grammar.class, rex, rascal.$Grammar::new); + mstore.importModule(rascal.$Message.class, rex, rascal.$Message::new); + mstore.importModule(rascal.lang.rascal.grammar.definition.$Keywords.class, rex, rascal.lang.rascal.grammar.definition.$Keywords::new); + mstore.importModule(rascal.lang.rascal.grammar.definition.$Parameters.class, rex, rascal.lang.rascal.grammar.definition.$Parameters::new); + mstore.importModule(rascal.$String.class, rex, rascal.$String::new); + mstore.importModule(rascal.$ParseTree.class, rex, rascal.$ParseTree::new); + mstore.importModule(rascal.util.$Monitor.class, rex, rascal.util.$Monitor::new); + mstore.importModule(rascal.lang.rascal.grammar.definition.$Productions.class, rex, rascal.lang.rascal.grammar.definition.$Productions::new); + mstore.importModule(rascal.lang.rascal.grammar.definition.$Regular.class, rex, rascal.lang.rascal.grammar.definition.$Regular::new); + mstore.importModule(rascal.$Type.class, rex, rascal.$Type::new); + + M_lang_rascal_grammar_definition_Priorities = mstore.getModule(rascal.lang.rascal.grammar.definition.$Priorities.class); + M_lang_rascal_grammar_definition_Literals = mstore.getModule(rascal.lang.rascal.grammar.definition.$Literals.class); + M_Exception = mstore.getModule(rascal.$Exception.class); + M_lang_rascal_grammar_Lookahead = mstore.getModule(rascal.lang.rascal.grammar.$Lookahead.class); + M_lang_rascal_grammar_ConcreteSyntax = mstore.getModule(rascal.lang.rascal.grammar.$ConcreteSyntax.class); + M_lang_rascal_grammar_definition_Symbols = mstore.getModule(rascal.lang.rascal.grammar.definition.$Symbols.class); + M_List = mstore.getModule(rascal.$List.class); + M_Set = mstore.getModule(rascal.$Set.class); + M_Node = mstore.getModule(rascal.$Node.class); + M_lang_rascal_syntax_Rascal = mstore.getModule(rascal.lang.rascal.syntax.$Rascal.class); + M_lang_rascal_grammar_definition_Modules = mstore.getModule(rascal.lang.rascal.grammar.definition.$Modules.class); + M_Grammar = mstore.getModule(rascal.$Grammar.class); + M_Message = mstore.getModule(rascal.$Message.class); + M_lang_rascal_grammar_definition_Keywords = mstore.getModule(rascal.lang.rascal.grammar.definition.$Keywords.class); + M_lang_rascal_grammar_definition_Parameters = mstore.getModule(rascal.lang.rascal.grammar.definition.$Parameters.class); + M_String = mstore.getModule(rascal.$String.class); + M_ParseTree = mstore.getModule(rascal.$ParseTree.class); + M_util_Monitor = mstore.getModule(rascal.util.$Monitor.class); + M_lang_rascal_grammar_definition_Productions = mstore.getModule(rascal.lang.rascal.grammar.definition.$Productions.class); + M_lang_rascal_grammar_definition_Regular = mstore.getModule(rascal.lang.rascal.grammar.definition.$Regular.class); + M_Type = mstore.getModule(rascal.$Type.class); + + + + $TS.importStore(M_lang_rascal_grammar_definition_Priorities.$TS); + $TS.importStore(M_lang_rascal_grammar_definition_Literals.$TS); + $TS.importStore(M_Exception.$TS); + $TS.importStore(M_lang_rascal_grammar_Lookahead.$TS); + $TS.importStore(M_lang_rascal_grammar_ConcreteSyntax.$TS); + $TS.importStore(M_lang_rascal_grammar_definition_Symbols.$TS); + $TS.importStore(M_List.$TS); + $TS.importStore(M_Set.$TS); + $TS.importStore(M_Node.$TS); + $TS.importStore(M_lang_rascal_syntax_Rascal.$TS); + $TS.importStore(M_lang_rascal_grammar_definition_Modules.$TS); + $TS.importStore(M_Grammar.$TS); + $TS.importStore(M_Message.$TS); + $TS.importStore(M_lang_rascal_grammar_definition_Keywords.$TS); + $TS.importStore(M_lang_rascal_grammar_definition_Parameters.$TS); + $TS.importStore(M_String.$TS); + $TS.importStore(M_ParseTree.$TS); + $TS.importStore(M_util_Monitor.$TS); + $TS.importStore(M_lang_rascal_grammar_definition_Productions.$TS); + $TS.importStore(M_lang_rascal_grammar_definition_Regular.$TS); + $TS.importStore(M_Type.$TS); + + $constants = readBinaryConstantsFile(this.getClass(), "rascal/lang/rascal/grammar/$ParserGenerator.constants", 38, "6b2e4254e18eb94ae44665bdf45ca2b1"); + NT_ProtocolChars = $lex("ProtocolChars"); + ADT_ProtocolChars = $adt("ProtocolChars"); + NT_Name = $lex("Name"); + ADT_Name = $adt("Name"); + NT_Visibility = $sort("Visibility"); + ADT_Visibility = $adt("Visibility"); + NT_TagString = $lex("TagString"); + ADT_TagString = $adt("TagString"); + NT_FunctionType = $sort("FunctionType"); + ADT_FunctionType = $adt("FunctionType"); + ADT_Attr = $adt("Attr"); + ADT_Tree = $adt("Tree"); + NT_Variable = $sort("Variable"); + ADT_Variable = $adt("Variable"); + NT_Replacement = $sort("Replacement"); + ADT_Replacement = $adt("Replacement"); + ADT_Symbol = $adt("Symbol"); + NT_LAYOUT = $lex("LAYOUT"); + ADT_LAYOUT = $adt("LAYOUT"); + NT_Range = $sort("Range"); + ADT_Range = $adt("Range"); + NT_Concrete = $lex("Concrete"); + ADT_Concrete = $adt("Concrete"); + NT_Pattern = $sort("Pattern"); + ADT_Pattern = $adt("Pattern"); + NT_PostProtocolChars = $lex("PostProtocolChars"); + ADT_PostProtocolChars = $adt("PostProtocolChars"); + ADT_IOCapability = $adt("IOCapability"); + ADT_LocationChangeType = $adt("LocationChangeType"); + ADT_Production = $adt("Production"); + NT_RegExpLiteral = $lex("RegExpLiteral"); + ADT_RegExpLiteral = $adt("RegExpLiteral"); + NT_RationalLiteral = $lex("RationalLiteral"); + ADT_RationalLiteral = $adt("RationalLiteral"); + NT_Declarator = $sort("Declarator"); + ADT_Declarator = $adt("Declarator"); + NT_IntegerLiteral = $sort("IntegerLiteral"); + ADT_IntegerLiteral = $adt("IntegerLiteral"); + ADT_Item = $adt("Item"); + NT_ModuleParameters = $sort("ModuleParameters"); + ADT_ModuleParameters = $adt("ModuleParameters"); + NT_SyntaxDefinition = $sort("SyntaxDefinition"); + ADT_SyntaxDefinition = $adt("SyntaxDefinition"); + NT_Prod = $sort("Prod"); + ADT_Prod = $adt("Prod"); + NT_DatePart = $lex("DatePart"); + ADT_DatePart = $adt("DatePart"); + ADT_GrammarModule = $adt("GrammarModule"); + NT_Output = $lex("Output"); + ADT_Output = $adt("Output"); + NT_LocalVariableDeclaration = $sort("LocalVariableDeclaration"); + ADT_LocalVariableDeclaration = $adt("LocalVariableDeclaration"); + NT_Expression = $sort("Expression"); + ADT_Expression = $adt("Expression"); + NT_Case = $sort("Case"); + ADT_Case = $adt("Case"); + NT_MidStringChars = $lex("MidStringChars"); + ADT_MidStringChars = $adt("MidStringChars"); + NT_BooleanLiteral = $lex("BooleanLiteral"); + ADT_BooleanLiteral = $adt("BooleanLiteral"); + NT_TimePartNoTZ = $lex("TimePartNoTZ"); + ADT_TimePartNoTZ = $adt("TimePartNoTZ"); + NT_Target = $sort("Target"); + ADT_Target = $adt("Target"); + NT_ImportedModule = $sort("ImportedModule"); + ADT_ImportedModule = $adt("ImportedModule"); + NT_Strategy = $sort("Strategy"); + ADT_Strategy = $adt("Strategy"); + NT_KeywordFormals = $sort("KeywordFormals"); + ADT_KeywordFormals = $adt("KeywordFormals"); + NT_DataTarget = $sort("DataTarget"); + ADT_DataTarget = $adt("DataTarget"); + NT_Renaming = $sort("Renaming"); + ADT_Renaming = $adt("Renaming"); + NT_Catch = $sort("Catch"); + ADT_Catch = $adt("Catch"); + NT_OptionalExpression = $sort("OptionalExpression"); + ADT_OptionalExpression = $adt("OptionalExpression"); + ADT_GrammarDefinition = $adt("GrammarDefinition"); + NT_Field = $sort("Field"); + ADT_Field = $adt("Field"); + NT_FunctionBody = $sort("FunctionBody"); + ADT_FunctionBody = $adt("FunctionBody"); + NT_LocationLiteral = $sort("LocationLiteral"); + ADT_LocationLiteral = $adt("LocationLiteral"); + NT_Tag = $sort("Tag"); + ADT_Tag = $adt("Tag"); + NT_Type = $sort("Type"); + ADT_Type = $adt("Type"); + NT_PostStringChars = $lex("PostStringChars"); + ADT_PostStringChars = $adt("PostStringChars"); + ADT_CharRange = $adt("CharRange"); + NT_HexIntegerLiteral = $lex("HexIntegerLiteral"); + ADT_HexIntegerLiteral = $adt("HexIntegerLiteral"); + NT_ShellCommand = $sort("ShellCommand"); + ADT_ShellCommand = $adt("ShellCommand"); + NT_TimeZonePart = $lex("TimeZonePart"); + ADT_TimeZonePart = $adt("TimeZonePart"); + NT_Declaration = $sort("Declaration"); + ADT_Declaration = $adt("Declaration"); + NT_PreStringChars = $lex("PreStringChars"); + ADT_PreStringChars = $adt("PreStringChars"); + NT_Nonterminal = $lex("Nonterminal"); + ADT_Nonterminal = $adt("Nonterminal"); + NT_StringLiteral = $sort("StringLiteral"); + ADT_StringLiteral = $adt("StringLiteral"); + NT_NonterminalLabel = $lex("NonterminalLabel"); + ADT_NonterminalLabel = $adt("NonterminalLabel"); + NT_TypeArg = $sort("TypeArg"); + ADT_TypeArg = $adt("TypeArg"); + NT_Bound = $sort("Bound"); + ADT_Bound = $adt("Bound"); + NT_PathPart = $sort("PathPart"); + ADT_PathPart = $adt("PathPart"); + NT_Class = $sort("Class"); + ADT_Class = $adt("Class"); + NT_Signature = $sort("Signature"); + ADT_Signature = $adt("Signature"); + NT_KeywordFormal = $sort("KeywordFormal"); + ADT_KeywordFormal = $adt("KeywordFormal"); + ADT_Associativity = $adt("Associativity"); + NT_Renamings = $sort("Renamings"); + ADT_Renamings = $adt("Renamings"); + NT_Tags = $sort("Tags"); + ADT_Tags = $adt("Tags"); + NT_RegExp = $lex("RegExp"); + ADT_RegExp = $adt("RegExp"); + NT_ModuleActuals = $sort("ModuleActuals"); + ADT_ModuleActuals = $adt("ModuleActuals"); + NT_URLChars = $lex("URLChars"); + ADT_URLChars = $adt("URLChars"); + NT_DataTypeSelector = $sort("DataTypeSelector"); + ADT_DataTypeSelector = $adt("DataTypeSelector"); + NT_Start = $sort("Start"); + ADT_Start = $adt("Start"); + NT_Body = $sort("Body"); + ADT_Body = $adt("Body"); + NT_PrePathChars = $lex("PrePathChars"); + ADT_PrePathChars = $adt("PrePathChars"); + NT_StringTail = $sort("StringTail"); + ADT_StringTail = $adt("StringTail"); + NT_Backslash = $lex("Backslash"); + ADT_Backslash = $adt("Backslash"); + NT_Char = $lex("Char"); + ADT_Char = $adt("Char"); + ADT_LAYOUTLIST = $layouts("LAYOUTLIST"); + NT_CaseInsensitiveStringConstant = $lex("CaseInsensitiveStringConstant"); + ADT_CaseInsensitiveStringConstant = $adt("CaseInsensitiveStringConstant"); + NT_Header = $sort("Header"); + ADT_Header = $adt("Header"); + ADT_LocationType = $adt("LocationType"); + NT_Assignment = $sort("Assignment"); + ADT_Assignment = $adt("Assignment"); + ADT_Exception = $adt("Exception"); + NT_PatternWithAction = $sort("PatternWithAction"); + ADT_PatternWithAction = $adt("PatternWithAction"); + NT_StringConstant = $lex("StringConstant"); + ADT_StringConstant = $adt("StringConstant"); + NT_OptionalComma = $lex("OptionalComma"); + ADT_OptionalComma = $adt("OptionalComma"); + NT_FunctionDeclaration = $sort("FunctionDeclaration"); + ADT_FunctionDeclaration = $adt("FunctionDeclaration"); + NT_TypeVar = $sort("TypeVar"); + ADT_TypeVar = $adt("TypeVar"); + NT_Import = $sort("Import"); + ADT_Import = $adt("Import"); + NT_FunctionModifiers = $sort("FunctionModifiers"); + ADT_FunctionModifiers = $adt("FunctionModifiers"); + NT_Comprehension = $sort("Comprehension"); + ADT_Comprehension = $adt("Comprehension"); + ADT_Message = $adt("Message"); + NT_ConcreteHole = $sort("ConcreteHole"); + ADT_ConcreteHole = $adt("ConcreteHole"); + ADT_Grammar = $adt("Grammar"); + NT_UserType = $sort("UserType"); + ADT_UserType = $adt("UserType"); + NT_Variant = $sort("Variant"); + ADT_Variant = $adt("Variant"); + NT_StringMiddle = $sort("StringMiddle"); + ADT_StringMiddle = $adt("StringMiddle"); + NT_RealLiteral = $lex("RealLiteral"); + ADT_RealLiteral = $adt("RealLiteral"); + NT_DateAndTime = $lex("DateAndTime"); + ADT_DateAndTime = $adt("DateAndTime"); + NT_JustDate = $lex("JustDate"); + ADT_JustDate = $adt("JustDate"); + NT_QualifiedName = $sort("QualifiedName"); + ADT_QualifiedName = $adt("QualifiedName"); + NT_Formals = $sort("Formals"); + ADT_Formals = $adt("Formals"); + NT_MidPathChars = $lex("MidPathChars"); + ADT_MidPathChars = $adt("MidPathChars"); + NT_Sym = $sort("Sym"); + ADT_Sym = $adt("Sym"); + ADT_RascalKeywords = $keywords("RascalKeywords"); + NT_NamedBackslash = $lex("NamedBackslash"); + ADT_NamedBackslash = $adt("NamedBackslash"); + NT_MidProtocolChars = $lex("MidProtocolChars"); + ADT_MidProtocolChars = $adt("MidProtocolChars"); + NT_Parameters = $sort("Parameters"); + ADT_Parameters = $adt("Parameters"); + NT_Command = $sort("Command"); + ADT_Command = $adt("Command"); + NT_StructuredType = $sort("StructuredType"); + ADT_StructuredType = $adt("StructuredType"); + NT_OctalIntegerLiteral = $lex("OctalIntegerLiteral"); + ADT_OctalIntegerLiteral = $adt("OctalIntegerLiteral"); + NT_ProtocolPart = $sort("ProtocolPart"); + ADT_ProtocolPart = $adt("ProtocolPart"); + NT_StringTemplate = $sort("StringTemplate"); + ADT_StringTemplate = $adt("StringTemplate"); + NT_Kind = $sort("Kind"); + ADT_Kind = $adt("Kind"); + NT_DateTimeLiteral = $sort("DateTimeLiteral"); + ADT_DateTimeLiteral = $adt("DateTimeLiteral"); + NT_Label = $sort("Label"); + ADT_Label = $adt("Label"); + ADT_LocationChangeEvent = $adt("LocationChangeEvent"); + NT_RegExpModifier = $lex("RegExpModifier"); + ADT_RegExpModifier = $adt("RegExpModifier"); + ADT_Condition = $adt("Condition"); + NT_PreProtocolChars = $lex("PreProtocolChars"); + ADT_PreProtocolChars = $adt("PreProtocolChars"); + NT_PathTail = $sort("PathTail"); + ADT_PathTail = $adt("PathTail"); + NT_NamedRegExp = $lex("NamedRegExp"); + ADT_NamedRegExp = $adt("NamedRegExp"); + NT_Assoc = $sort("Assoc"); + ADT_Assoc = $adt("Assoc"); + ADT_RuntimeException = $adt("RuntimeException"); + NT_PathChars = $lex("PathChars"); + ADT_PathChars = $adt("PathChars"); + NT_PostPathChars = $lex("PostPathChars"); + ADT_PostPathChars = $adt("PostPathChars"); + NT_StringCharacter = $lex("StringCharacter"); + ADT_StringCharacter = $adt("StringCharacter"); + ADT_$default$ = $layouts("$default$"); + NT_EvalCommand = $sort("EvalCommand"); + ADT_EvalCommand = $adt("EvalCommand"); + NT_Statement = $sort("Statement"); + ADT_Statement = $adt("Statement"); + NT_Module = $sort("Module"); + ADT_Module = $adt("Module"); + NT_ConcretePart = $lex("ConcretePart"); + ADT_ConcretePart = $adt("ConcretePart"); + NT_Literal = $sort("Literal"); + ADT_Literal = $adt("Literal"); + NT_Toplevel = $sort("Toplevel"); + ADT_Toplevel = $adt("Toplevel"); + NT_ProtocolTail = $sort("ProtocolTail"); + ADT_ProtocolTail = $adt("ProtocolTail"); + NT_BasicType = $sort("BasicType"); + ADT_BasicType = $adt("BasicType"); + NT_Commands = $sort("Commands"); + ADT_Commands = $adt("Commands"); + NT_Visit = $sort("Visit"); + ADT_Visit = $adt("Visit"); + NT_Comment = $lex("Comment"); + ADT_Comment = $adt("Comment"); + NT_DecimalIntegerLiteral = $lex("DecimalIntegerLiteral"); + ADT_DecimalIntegerLiteral = $adt("DecimalIntegerLiteral"); + NT_JustTime = $lex("JustTime"); + ADT_JustTime = $adt("JustTime"); + NT_FunctionModifier = $sort("FunctionModifier"); + ADT_FunctionModifier = $adt("FunctionModifier"); + NT_ProdModifier = $sort("ProdModifier"); + ADT_ProdModifier = $adt("ProdModifier"); + NT_Assignable = $sort("Assignable"); + ADT_Assignable = $adt("Assignable"); + NT_UnicodeEscape = $lex("UnicodeEscape"); + ADT_UnicodeEscape = $adt("UnicodeEscape"); + NT_CommonKeywordParameters = $sort("CommonKeywordParameters"); + ADT_CommonKeywordParameters = $adt("CommonKeywordParameters"); + $T13 = $TF.stringType(); + $T1 = $TF.valueType(); + $T21 = $TF.parameterType("A", $T1); + $T23 = $TF.voidType(); + $T3 = $TF.parameterType("T", $T1); + $T25 = $TF.integerType(); + $T17 = $TF.parameterType("A", $T1); + $T7 = $TF.integerType(); + $T24 = $TF.stringType(); + $T14 = $TF.integerType(); + $T5 = $TF.stringType(); + $T19 = $TF.parameterType("T", ADT_Tree); + NT_KeywordArguments_1 = $parameterizedSort("KeywordArguments", new Type[] { $T19 }, $RVF.list($RVF.constructor(RascalValueFactory.Symbol_Parameter, $RVF.string("T"), $RVF.constructor(RascalValueFactory.Symbol_Adt, $RVF.string("Tree"), $RVF.list())))); + $T10 = $RTF.nonTerminalType($RVF.constructor(RascalValueFactory.Symbol_Lit, $RVF.string(","))); + $T15 = $TF.tupleType($T13, $T14); + $T16 = $TF.mapType(ADT_Item, "item", $T15, "new"); + $T12 = $TF.mapType(ADT_Symbol,$T16); + NT_Mapping_Pattern = $parameterizedSort("Mapping", new Type[] { ADT_Pattern }, $RVF.list($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Pattern")))); + ADT_Maybe_Production = $parameterizedAdt("Maybe", new Type[] { ADT_Production }); + $T20 = $TF.parameterType("T", ADT_Tree); + NT_Mapping_Expression = $parameterizedSort("Mapping", new Type[] { ADT_Expression }, $RVF.list($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Expression")))); + NT_Mapping_1 = $parameterizedSort("Mapping", new Type[] { $T19 }, $RVF.list($RVF.constructor(RascalValueFactory.Symbol_Parameter, $RVF.string("T"), $RVF.constructor(RascalValueFactory.Symbol_Adt, $RVF.string("Tree"), $RVF.list())))); + NT_KeywordArguments_Expression = $parameterizedSort("KeywordArguments", new Type[] { ADT_Expression }, $RVF.list($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Expression")))); + ADT_Maybe_1 = $parameterizedAdt("Maybe", new Type[] { $T21 }); + $T26 = $TF.functionType($T23, $TF.tupleType($T24, "m", $T25, "w"), $TF.tupleEmpty()); + NT_KeywordArgument_1 = $parameterizedSort("KeywordArgument", new Type[] { $T19 }, $RVF.list($RVF.constructor(RascalValueFactory.Symbol_Parameter, $RVF.string("T"), $RVF.constructor(RascalValueFactory.Symbol_Adt, $RVF.string("Tree"), $RVF.list())))); + $T11 = $TF.listType(ADT_CharRange); + $T4 = $TF.listType($T3); + NT_KeywordArguments_Pattern = $parameterizedSort("KeywordArguments", new Type[] { ADT_Pattern }, $RVF.list($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Pattern")))); + ADT_TreeSearchResult_1 = $parameterizedAdt("TreeSearchResult", new Type[] { $T19 }); + ADT_Maybe_Symbol = $parameterizedAdt("Maybe", new Type[] { ADT_Symbol }); + $T28 = $TF.listType($T23); + ADT_Maybe_Associativity = $parameterizedAdt("Maybe", new Type[] { ADT_Associativity }); + $T22 = $TF.functionType($T5, $TF.tupleType($T26, "worked"), $TF.tupleEmpty()); + $T0 = $TF.setType(ADT_Symbol); + $T18 = $TF.setType(ADT_Production); + $T27 = $TF.setType(ADT_Attr); + ADT_Maybe_Attr = $parameterizedAdt("Maybe", new Type[] { ADT_Attr }); + $T9 = $RTF.nonTerminalType($RVF.constructor(RascalValueFactory.Symbol_IterSeps, $RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Expression")), $RVF.list($RVF.constructor(RascalValueFactory.Symbol_Layouts, $RVF.string("LAYOUTLIST")), $RVF.constructor(RascalValueFactory.Symbol_Lit, $RVF.string(",")), $RVF.constructor(RascalValueFactory.Symbol_Layouts, $RVF.string("LAYOUTLIST"))))); + $T6 = $TF.listType(ADT_Symbol); + $T2 = $TF.setType($T3); + $T8 = $TF.setType(ADT_Condition); + ADT_KeywordArguments_1 = $TF.abstractDataType($TS, "KeywordArguments", new Type[] { $T19 }); + ADT_Mapping_Pattern = $TF.abstractDataType($TS, "Mapping", new Type[] { ADT_Pattern }); + ADT_Mapping_Expression = $TF.abstractDataType($TS, "Mapping", new Type[] { ADT_Expression }); + ADT_Mapping_1 = $TF.abstractDataType($TS, "Mapping", new Type[] { $T19 }); + ADT_KeywordArguments_Expression = $TF.abstractDataType($TS, "KeywordArguments", new Type[] { ADT_Expression }); + ADT_KeywordArgument_1 = $TF.abstractDataType($TS, "KeywordArgument", new Type[] { $T19 }); + ADT_KeywordArguments_Pattern = $TF.abstractDataType($TS, "KeywordArguments", new Type[] { ADT_Pattern }); + Maybe_Production_just_Production = $TF.constructor($TS, ADT_Maybe_Production, "just", M_ParseTree.ADT_Production, "val"); + Maybe_Symbol_just_Symbol = $TF.constructor($TS, ADT_Maybe_Symbol, "just", M_ParseTree.ADT_Symbol, "val"); + + javaStringEscapes = ((IMap)$constants.get(36)/*("\"":"\\\"","\t":"\\t","\n":"\\n","\r":"\\r","\\u":"\\\\u","\\":"\\\\")*/); + javaIdEscapes = ((IMap)$constants.get(37)/*("\"":"\\\"","\t":"\\t","\n":"\\n","\\u":"\\\\u","\\":"\\\\","_":"__","\r":"\\r","-":"_")*/); + + + } + public IString generateClassConditional(IValue $P0){ // Generated by Resolver + IString $result = null; + Type $P0Type = $P0.getType(); + if($isSubtypeOf($P0Type,$T0)){ + $result = (IString)lang_rascal_grammar_ParserGenerator_generateClassConditional$31ecade9ec2e3a26((ISet) $P0); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0)); + } + public IString uu(IValue $P0){ // Generated by Resolver + IString $result = null; + Type $P0Type = $P0.getType(); + if($isSubtypeOf($P0Type,$T1)){ + $result = (IString)lang_rascal_grammar_ParserGenerator_uu$082b41e3c596335e((IValue) $P0); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0)); + } + public IValue head(IValue $P0){ // Generated by Resolver + return (IValue) M_List.head($P0); + } + public IList head(IValue $P0, IValue $P1){ // Generated by Resolver + return (IList) M_List.head($P0, $P1); + } + public IConstructor choice(IValue $P0, IValue $P1){ // Generated by Resolver + return (IConstructor) M_Type.choice($P0, $P1); + } + public ISet extract(IValue $P0){ // Generated by Resolver + return (ISet) M_lang_rascal_grammar_definition_Priorities.extract($P0); + } + public ISet extract(IValue $P0, IValue $P1){ // Generated by Resolver + return (ISet) M_lang_rascal_grammar_definition_Priorities.extract($P0, $P1); + } + public IString getParserMethodName(IValue $P0){ // Generated by Resolver + IString $result = null; + Type $P0Type = $P0.getType(); + switch(Fingerprint.getFingerprint($P0)){ + + case 1643638592: + if($isSubtypeOf($P0Type, M_ParseTree.ADT_Symbol)){ + $result = (IString)lang_rascal_grammar_ParserGenerator_getParserMethodName$d1974595c71599c0((IConstructor) $P0); + if($result != null) return $result; + } + break; + case -2144737184: + if($isSubtypeOf($P0Type, M_ParseTree.ADT_Symbol)){ + $result = (IString)lang_rascal_grammar_ParserGenerator_getParserMethodName$b82322412e38a376((IConstructor) $P0); + if($result != null) return $result; + } + break; + } + if($isNonTerminal($P0Type, M_lang_rascal_syntax_Rascal.NT_Sym)){ + $result = (IString)lang_rascal_grammar_ParserGenerator_getParserMethodName$6a70b6fdc8e3b126((ITree) $P0); + if($result != null) return $result; + } + if($isSubtypeOf($P0Type, M_ParseTree.ADT_Symbol)){ + $result = (IString)lang_rascal_grammar_ParserGenerator_getParserMethodName$96f1d27ce96731f2((IConstructor) $P0); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0)); + } + public IInteger size(IValue $P0){ // Generated by Resolver + IInteger $result = null; + Type $P0Type = $P0.getType(); + if($isSubtypeOf($P0Type,$T2)){ + $result = (IInteger)M_Set.Set_size$215788d71e8b2455((ISet) $P0); + if($result != null) return $result; + } + if($isSubtypeOf($P0Type,$T4)){ + $result = (IInteger)M_List.List_size$ba7443328d8b4a27((IList) $P0); + if($result != null) return $result; + } + if($isSubtypeOf($P0Type,$T5)){ + $result = (IInteger)M_String.String_size$4611676944e933d5((IString) $P0); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0)); + } + public IConstructor priority(IValue $P0, IValue $P1){ // Generated by Resolver + return (IConstructor) M_ParseTree.priority($P0, $P1); + } + public IString generateSequenceExpects(IValue $P0, IValue $P1){ // Generated by Resolver + IString $result = null; + Type $P0Type = $P0.getType(); + Type $P1Type = $P1.getType(); + if($isSubtypeOf($P0Type, M_Grammar.ADT_Grammar) && $isSubtypeOf($P1Type,$T6)){ + $result = (IString)lang_rascal_grammar_ParserGenerator_generateSequenceExpects$6e68a18132b0b513((IConstructor) $P0, (IList) $P1); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0, $P1)); + } + public IConstructor expandKeywords(IValue $P0){ // Generated by Resolver + return (IConstructor) M_lang_rascal_grammar_definition_Keywords.expandKeywords($P0); + } + public ISet expandKeywords(IValue $P0, IValue $P1){ // Generated by Resolver + return (ISet) M_lang_rascal_grammar_definition_Keywords.expandKeywords($P0, $P1); + } + public IInteger getItemId(IValue $P0, IValue $P1, IValue $P2){ // Generated by Resolver + IInteger $result = null; + Type $P0Type = $P0.getType(); + Type $P1Type = $P1.getType(); + Type $P2Type = $P2.getType(); + if($isSubtypeOf($P0Type, M_ParseTree.ADT_Symbol) && $isSubtypeOf($P1Type,$T7) && $isSubtypeOf($P2Type, M_ParseTree.ADT_Production)){ + $result = (IInteger)lang_rascal_grammar_ParserGenerator_getItemId$47cbee5644cf9020((IConstructor) $P0, (IInteger) $P1, (IConstructor) $P2); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0, $P1, $P2)); + } + public IString generateAltExpects(IValue $P0, IValue $P1){ // Generated by Resolver + IString $result = null; + Type $P0Type = $P0.getType(); + Type $P1Type = $P1.getType(); + if($isSubtypeOf($P0Type, M_Grammar.ADT_Grammar) && $isSubtypeOf($P1Type,$T6)){ + $result = (IString)lang_rascal_grammar_ParserGenerator_generateAltExpects$a62b47034d27d427((IConstructor) $P0, (IList) $P1); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0, $P1)); + } + public INode conditional(IValue $P0, IValue $P1){ // Generated by Resolver + INode $result = null; + Type $P0Type = $P0.getType(); + Type $P1Type = $P1.getType(); + if($isSubtypeOf($P0Type, M_ParseTree.ADT_Symbol) && $isSubtypeOf($P1Type,$T8)){ + $result = (INode)M_lang_rascal_grammar_definition_Symbols.lang_rascal_grammar_definition_Symbols_conditional$f9ac60504818807f((IConstructor) $P0, (ISet) $P1); + if($result != null) return $result; + } + if($isSubtypeOf($P0Type, M_ParseTree.ADT_Symbol) && $isSubtypeOf($P1Type,$T8)){ + $result = (INode)M_lang_rascal_grammar_definition_Symbols.lang_rascal_grammar_definition_Symbols_conditional$a78f69e7726562ef((IConstructor) $P0, (ISet) $P1); + if($result != null) return $result; + } + if($isNonTerminal($P0Type, M_lang_rascal_syntax_Rascal.NT_Expression) && $isSubtypeOf($P1Type,$T9)){ + return $RVF.constructor(M_lang_rascal_syntax_Rascal.Replacement_conditional_Expression_iter_seps_Expression, new IValue[]{(ITree) $P0, (ITree) $P1}); + } + if($isSubtypeOf($P0Type, M_ParseTree.ADT_Symbol) && $isSubtypeOf($P1Type,$T8)){ + return $RVF.constructor(M_ParseTree.Symbol_conditional_Symbol_set_Condition, new IValue[]{(IConstructor) $P0, (ISet) $P1}); + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0, $P1)); + } + public IString generateCharClassArrays(IValue $P0){ // Generated by Resolver + IString $result = null; + Type $P0Type = $P0.getType(); + if($isSubtypeOf($P0Type,$T11)){ + $result = (IString)lang_rascal_grammar_ParserGenerator_generateCharClassArrays$701635e3542145f3((IList) $P0); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0)); + } + public IValue unsetRec(IValue $P0){ // Generated by Resolver + return (IValue) M_Node.unsetRec($P0); + } + public INode unsetRec(IValue $P0, IValue $P1){ // Generated by Resolver + return (INode) M_Node.unsetRec($P0, $P1); + } + public ITuple sym2newitem(IValue $P0, IValue $P1, IValue $P2){ // Generated by Resolver + ITuple $result = null; + Type $P0Type = $P0.getType(); + Type $P1Type = $P1.getType(); + Type $P2Type = $P2.getType(); + if($isSubtypeOf($P0Type, M_Grammar.ADT_Grammar) && $isSubtypeOf($P1Type, M_ParseTree.ADT_Symbol) && $isSubtypeOf($P2Type,$T7)){ + $result = (ITuple)lang_rascal_grammar_ParserGenerator_sym2newitem$10f0cc965395b37c((IConstructor) $P0, (IConstructor) $P1, (IInteger) $P2); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0, $P1, $P2)); + } + public IConstructor lang_rascal_grammar_ParserGenerator_generateNewItems$2a1734bec0bd57ea_cl(IValue $P0){ // Generated by Resolver + IConstructor $result = null; + Type $P0Type = $P0.getType(); + if($isSubtypeOf($P0Type, M_ParseTree.ADT_Production)){ + $result = (IConstructor)lang_rascal_grammar_ParserGenerator_cl$43bfc4d41d835634((IConstructor) $P0); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0)); + } + public IString generateSeparatorExpects(IValue $P0, IValue $P1){ // Generated by Resolver + IString $result = null; + Type $P0Type = $P0.getType(); + Type $P1Type = $P1.getType(); + if($isSubtypeOf($P0Type, M_Grammar.ADT_Grammar) && $isSubtypeOf($P1Type,$T6)){ + $result = (IString)lang_rascal_grammar_ParserGenerator_generateSeparatorExpects$ffd9aa0c2930f956((IConstructor) $P0, (IList) $P1); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0, $P1)); + } + public IConstructor lang_rascal_grammar_ParserGenerator_makeUnique$20b231c389f60af1_rewrite(IValue $P0, ValueRef uniqueItem_1){ // Generated by Resolver + IConstructor $result = null; + Type $P0Type = $P0.getType(); + if($isSubtypeOf($P0Type, M_ParseTree.ADT_Production)){ + $result = (IConstructor)lang_rascal_grammar_ParserGenerator_rewrite$3113ca4dfaeecfe9((IConstructor) $P0, uniqueItem_1); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0)); + } + public IConstructor lang_rascal_grammar_ParserGenerator_$CLOSURE_0_rewrite(IValue $P0, ValueRef uniqueItem_1){ // Generated by Resolver + IConstructor $result = null; + Type $P0Type = $P0.getType(); + if($isSubtypeOf($P0Type, M_ParseTree.ADT_Production)){ + $result = (IConstructor)lang_rascal_grammar_ParserGenerator_rewrite$9e6276e11df9decc((IConstructor) $P0, uniqueItem_1); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0)); + } + public IString ciliterals2ints(IValue $P0){ // Generated by Resolver + IString $result = null; + Type $P0Type = $P0.getType(); + if($isSubtypeOf($P0Type,$T6)){ + $result = (IString)lang_rascal_grammar_ParserGenerator_ciliterals2ints$ea715e0e62cedd32((IList) $P0); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0)); + } + public IString v2i(IValue $P0){ // Generated by Resolver + IString $result = null; + Type $P0Type = $P0.getType(); + if($isSubtypeOf($P0Type,$T1)){ + $result = (IString)lang_rascal_grammar_ParserGenerator_v2i$0f91624d0e98f18d((IValue) $P0); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0)); + } + public IString escId(IValue $P0){ // Generated by Resolver + IString $result = null; + Type $P0Type = $P0.getType(); + if($isSubtypeOf($P0Type,$T5)){ + $result = (IString)lang_rascal_grammar_ParserGenerator_escId$1ab026bcf1c9c400((IString) $P0); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0)); + } + public IConstructor getType(IValue $P0){ // Generated by Resolver + IConstructor $result = null; + Type $P0Type = $P0.getType(); + switch(Fingerprint.getFingerprint($P0)){ + + case 1643638592: + if($isSubtypeOf($P0Type, M_ParseTree.ADT_Symbol)){ + $result = (IConstructor)lang_rascal_grammar_ParserGenerator_getType$18c51bf3658df5a8((IConstructor) $P0); + if($result != null) return $result; + } + break; + case -2144737184: + if($isSubtypeOf($P0Type, M_ParseTree.ADT_Symbol)){ + $result = (IConstructor)lang_rascal_grammar_ParserGenerator_getType$cc1e9058e7705307((IConstructor) $P0); + if($result != null) return $result; + } + break; + } + if($isSubtypeOf($P0Type, M_ParseTree.ADT_Production)){ + $result = (IConstructor)lang_rascal_grammar_ParserGenerator_getType$37ff38bece5b0e2f((IConstructor) $P0); + if($result != null) return $result; + } + if($isSubtypeOf($P0Type, M_ParseTree.ADT_Symbol)){ + $result = (IConstructor)lang_rascal_grammar_ParserGenerator_getType$38f71884bfc4046e((IConstructor) $P0); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0)); + } + public IList tail(IValue $P0){ // Generated by Resolver + return (IList) M_List.tail($P0); + } + public IList tail(IValue $P0, IValue $P1){ // Generated by Resolver + return (IList) M_List.tail($P0, $P1); + } + public IString substring(IValue $P0, IValue $P1, IValue $P2){ // Generated by Resolver + return (IString) M_String.substring($P0, $P1, $P2); + } + public IString substring(IValue $P0, IValue $P1){ // Generated by Resolver + return (IString) M_String.substring($P0, $P1); + } + public IValue index(IValue $P0){ // Generated by Resolver + IValue $result = null; + Type $P0Type = $P0.getType(); + if($isSubtypeOf($P0Type,$T4)){ + $result = (IValue)M_List.List_index$90228c781d131b76((IList) $P0); + if($result != null) return $result; + } + if($isSubtypeOf($P0Type,$T2)){ + $result = (IValue)M_Set.Set_index$31fadea181d3071e((ISet) $P0); + if($result != null) return $result; + } + if($isNonTerminal($P0Type, M_lang_rascal_syntax_Rascal.NT_IntegerLiteral)){ + return $RVF.constructor(M_lang_rascal_syntax_Rascal.Field_index_IntegerLiteral, new IValue[]{(ITree) $P0}); + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0)); + } + public IString literals2ints(IValue $P0){ // Generated by Resolver + IString $result = null; + Type $P0Type = $P0.getType(); + if($isSubtypeOf($P0Type,$T6)){ + $result = (IString)lang_rascal_grammar_ParserGenerator_literals2ints$e5702b42d5b21efa((IList) $P0); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0)); + } + public IBool isRegular(IValue $P0){ // Generated by Resolver + return (IBool) M_lang_rascal_grammar_definition_Regular.isRegular($P0); + } + public IInteger lang_rascal_grammar_ParserGenerator_$CLOSURE_0_newItem(ValueRef uniqueItem_1){ // Generated by Resolver + IInteger $result = null; + $result = (IInteger)lang_rascal_grammar_ParserGenerator_newItem$ebf5e4c7af0be0a4(uniqueItem_1); + if($result != null) return $result; + throw RuntimeExceptionFactory.callFailed($RVF.list()); + } + public IInteger lang_rascal_grammar_ParserGenerator_makeUnique$20b231c389f60af1_newItem(ValueRef uniqueItem_1){ // Generated by Resolver + IInteger $result = null; + $result = (IInteger)lang_rascal_grammar_ParserGenerator_newItem$056db57e92a0e96d(uniqueItem_1); + if($result != null) return $result; + throw RuntimeExceptionFactory.callFailed($RVF.list()); + } + public ISet computeDontNests(IValue $P0, IValue $P1, IValue $P2){ // Generated by Resolver + ISet $result = null; + Type $P0Type = $P0.getType(); + Type $P1Type = $P1.getType(); + Type $P2Type = $P2.getType(); + if($isSubtypeOf($P0Type,$T12) && $isSubtypeOf($P1Type, M_Grammar.ADT_Grammar) && $isSubtypeOf($P2Type, M_Grammar.ADT_Grammar)){ + $result = (ISet)lang_rascal_grammar_ParserGenerator_computeDontNests$f6f668d3e8c3d6db((IMap) $P0, (IConstructor) $P1, (IConstructor) $P2); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0, $P1, $P2)); + } + public IString esc(IValue $P0){ // Generated by Resolver + IString $result = null; + Type $P0Type = $P0.getType(); + if($isSubtypeOf($P0Type,$T5)){ + $result = (IString)lang_rascal_grammar_ParserGenerator_esc$3f747747bc8e51bf((IString) $P0); + if($result != null) return $result; + } + if($isSubtypeOf($P0Type, M_ParseTree.ADT_Symbol)){ + $result = (IString)lang_rascal_grammar_ParserGenerator_esc$b0384bd678427cdc((IConstructor) $P0); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0)); + } + public IMap generateNewItems(IValue $P0){ // Generated by Resolver + IMap $result = null; + Type $P0Type = $P0.getType(); + if($isSubtypeOf($P0Type, M_Grammar.ADT_Grammar)){ + $result = (IMap)lang_rascal_grammar_ParserGenerator_generateNewItems$2a1734bec0bd57ea((IConstructor) $P0); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0)); + } + public IString newGenerate(IValue $P0, IValue $P1, IValue $P2){ // Generated by Resolver + IString $result = null; + Type $P0Type = $P0.getType(); + Type $P1Type = $P1.getType(); + Type $P2Type = $P2.getType(); + if($isSubtypeOf($P0Type,$T5) && $isSubtypeOf($P1Type,$T5) && $isSubtypeOf($P2Type, M_Grammar.ADT_Grammar)){ + $result = (IString)lang_rascal_grammar_ParserGenerator_newGenerate$119399aa64603f31((IString) $P0, (IString) $P1, (IConstructor) $P2); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0, $P1, $P2)); + } + public IString sym2name(IValue $P0){ // Generated by Resolver + IString $result = null; + Type $P0Type = $P0.getType(); + if($isSubtypeOf($P0Type, M_ParseTree.ADT_Symbol)){ + $result = (IString)lang_rascal_grammar_ParserGenerator_sym2name$43e2df165cbb6f65((IConstructor) $P0); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0)); + } + public IValue makeRegularStubs(IValue $P0){ // Generated by Resolver + return (IValue) M_lang_rascal_grammar_definition_Regular.makeRegularStubs($P0); + } + public ISet except(IValue $P0, IValue $P1){ // Generated by Resolver + return (ISet) M_lang_rascal_grammar_definition_Priorities.except($P0, $P1); + } + public IConstructor associativity(IValue $P0, IValue $P1, IValue $P2){ // Generated by Resolver + IConstructor $result = null; + Type $P0Type = $P0.getType(); + Type $P1Type = $P1.getType(); + Type $P2Type = $P2.getType(); + if($isSubtypeOf($P0Type, M_ParseTree.ADT_Symbol) && $isSubtypeOf($P1Type, ADT_Maybe_1) && $isSubtypeOf($P2Type, M_ParseTree.ADT_Production)){ + $result = (IConstructor)M_lang_rascal_grammar_definition_Productions.lang_rascal_grammar_definition_Productions_associativity$09cd814bba935894((IConstructor) $P0, (IConstructor) $P1, (IConstructor) $P2); + if($result != null) return $result; + } + if($isSubtypeOf($P0Type, M_ParseTree.ADT_Symbol) && $isSubtypeOf($P1Type, M_ParseTree.ADT_Associativity) && $isSubtypeOf($P2Type,$T18)){ + $result = (IConstructor)M_ParseTree.ParseTree_associativity$9299e943b00366a7((IConstructor) $P0, (IConstructor) $P1, (ISet) $P2); + if($result != null) return $result; + $result = (IConstructor)M_ParseTree.ParseTree_associativity$95843a2f3959b22f((IConstructor) $P0, (IConstructor) $P1, (ISet) $P2); + if($result != null) return $result; + $result = (IConstructor)M_ParseTree.ParseTree_associativity$05ee42b13b7e96fb((IConstructor) $P0, (IConstructor) $P1, (ISet) $P2); + if($result != null) return $result; + } + if($isSubtypeOf($P0Type, M_ParseTree.ADT_Symbol) && $isSubtypeOf($P1Type, ADT_Maybe_Associativity) && $isSubtypeOf($P2Type, M_ParseTree.ADT_Production)){ + $result = (IConstructor)M_lang_rascal_grammar_definition_Productions.lang_rascal_grammar_definition_Productions_associativity$fe1234ba22a8be5e((IConstructor) $P0, (IConstructor) $P1, (IConstructor) $P2); + if($result != null) return $result; + } + if($isSubtypeOf($P0Type, M_ParseTree.ADT_Symbol) && $isSubtypeOf($P1Type, M_ParseTree.ADT_Associativity) && $isSubtypeOf($P2Type,$T18)){ + return $RVF.constructor(M_ParseTree.Production_associativity_Symbol_Associativity_set_Production, new IValue[]{(IConstructor) $P0, (IConstructor) $P1, (ISet) $P2}); + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0, $P1, $P2)); + } + public IValue split(IValue $P0){ // Generated by Resolver + IValue $result = null; + Type $P0Type = $P0.getType(); + if($isSubtypeOf($P0Type,$T5)){ + $result = (IValue)lang_rascal_grammar_ParserGenerator_split$452f305967b0884c((IString) $P0); + if($result != null) return $result; + } + if($isSubtypeOf($P0Type,$T4)){ + $result = (IValue)M_List.List_split$19c747b75c8a251d((IList) $P0); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0)); + } + public IList split(IValue $P0, IValue $P1){ // Generated by Resolver + return (IList) M_String.split($P0, $P1); + } + public IString value2id(IValue $P0){ // Generated by Resolver + IString $result = null; + Type $P0Type = $P0.getType(); + if($isSubtypeOf($P0Type,$T1)){ + $result = (IString)lang_rascal_grammar_ParserGenerator_value2id$7b72ead30df47401((IValue) $P0); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0)); + } + public IValue job(IValue $P0, IValue $P1, java.util.Map $kwpActuals){ // Generated by Resolver + return (IValue) M_util_Monitor.job($P0, $P1, $kwpActuals); + } + public IString generateRangeConditional(IValue $P0){ // Generated by Resolver + IString $result = null; + Type $P0Type = $P0.getType(); + if($isSubtypeOf($P0Type, M_ParseTree.ADT_CharRange)){ + $result = (IString)lang_rascal_grammar_ParserGenerator_generateRangeConditional$f80249e131b2a443((IConstructor) $P0); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0)); + } + public IConstructor seq(IValue $P0){ // Generated by Resolver + IConstructor $result = null; + Type $P0Type = $P0.getType(); + if($isSubtypeOf($P0Type,$T6)){ + $result = (IConstructor)M_lang_rascal_grammar_definition_Symbols.lang_rascal_grammar_definition_Symbols_seq$5dde90ea795fac79((IList) $P0); + if($result != null) return $result; + } + if($isSubtypeOf($P0Type,$T6)){ + return $RVF.constructor(M_ParseTree.Symbol_seq_list_Symbol, new IValue[]{(IList) $P0}); + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0)); + } + public IConstructor makeUnique(IValue $P0){ // Generated by Resolver + IConstructor $result = null; + Type $P0Type = $P0.getType(); + if($isSubtypeOf($P0Type, M_Grammar.ADT_Grammar)){ + $result = (IConstructor)lang_rascal_grammar_ParserGenerator_makeUnique$20b231c389f60af1((IConstructor) $P0); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0)); + } + public IBool isNonterminal(IValue $P0){ // Generated by Resolver + IBool $result = null; + Type $P0Type = $P0.getType(); + if($isSubtypeOf($P0Type, M_ParseTree.ADT_Symbol)){ + $result = (IBool)lang_rascal_grammar_ParserGenerator_isNonterminal$ae0c546df6bca290((IConstructor) $P0); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0)); + } + public IString generateParseMethod(IValue $P0, IValue $P1){ // Generated by Resolver + IString $result = null; + Type $P0Type = $P0.getType(); + Type $P1Type = $P1.getType(); + if($isSubtypeOf($P0Type,$T12) && $isSubtypeOf($P1Type, M_ParseTree.ADT_Production)){ + $result = (IString)lang_rascal_grammar_ParserGenerator_generateParseMethod$c163c6517d408211((IMap) $P0, (IConstructor) $P1); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0, $P1)); + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/lang/rascal/grammar/ParserGenerator.rsc|(1396,79,<39,0>,<39,79>) + public IString lang_rascal_grammar_ParserGenerator_getParserMethodName$6a70b6fdc8e3b126(ITree sym_0){ + + + return ((IString)($me.getParserMethodName(((IConstructor)(M_lang_rascal_grammar_definition_Symbols.sym2symbol(((ITree)sym_0))))))); + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/lang/rascal/grammar/ParserGenerator.rsc|(1476,68,<40,0>,<40,68>) + public IString lang_rascal_grammar_ParserGenerator_getParserMethodName$d1974595c71599c0(IConstructor $0){ + + + if($has_type_and_arity($0, M_Type.Symbol_label_str_Symbol, 2)){ + IValue $arg0_1 = (IValue)($aadt_subscript_int(((IConstructor)$0),0)); + if($isComparable($arg0_1.getType(), $T1)){ + IValue $arg1_0 = (IValue)($aadt_subscript_int(((IConstructor)$0),1)); + if($isComparable($arg1_0.getType(), M_ParseTree.ADT_Symbol)){ + IConstructor s_0 = null; + return ((IString)($me.getParserMethodName(((IConstructor)($arg1_0))))); + + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/lang/rascal/grammar/ParserGenerator.rsc|(1545,75,<41,0>,<41,75>) + public IString lang_rascal_grammar_ParserGenerator_getParserMethodName$b82322412e38a376(IConstructor $0){ + + + if($has_type_and_arity($0, M_ParseTree.Symbol_conditional_Symbol_set_Condition, 2)){ + IValue $arg0_3 = (IValue)($aadt_subscript_int(((IConstructor)$0),0)); + if($isComparable($arg0_3.getType(), M_ParseTree.ADT_Symbol)){ + IConstructor s_0 = null; + IValue $arg1_2 = (IValue)($aadt_subscript_int(((IConstructor)$0),1)); + if($isComparable($arg1_2.getType(), $T1)){ + return ((IString)($me.getParserMethodName(((IConstructor)($arg0_3))))); + + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/lang/rascal/grammar/ParserGenerator.rsc|(1621,56,<42,0>,<42,56>) + public IString lang_rascal_grammar_ParserGenerator_getParserMethodName$96f1d27ce96731f2(IConstructor s_0){ + + + return ((IString)($me.value2id(((IValue)s_0)))); + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/lang/rascal/grammar/ParserGenerator.rsc|(1969,53,<47,4>,<47,57>) + public IInteger lang_rascal_grammar_ParserGenerator_newItem$ebf5e4c7af0be0a4(ValueRef uniqueItem_1){ + + + uniqueItem_1.setValue(((IInteger)($aint_add_aint(uniqueItem_1.getValue(),((IInteger)$constants.get(0)/*1*/))))); + return uniqueItem_1.getValue(); + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/lang/rascal/grammar/ParserGenerator.rsc|(2533,105,<65,4>,<68,8>) + public IConstructor lang_rascal_grammar_ParserGenerator_rewrite$9e6276e11df9decc(IConstructor p_0, ValueRef uniqueItem_1){ + + + try { + IValue $visitResult = $TRAVERSE.traverse(DIRECTION.BottomUp, PROGRESS.Continuing, FIXEDPOINT.No, REBUILD.Yes, + new DescendantDescriptorAlwaysTrue($RVF.bool(false)), + p_0, + (IVisitFunction) (IValue $VISIT1_subject, TraversalState $traversalState) -> { + VISIT1:switch(Fingerprint.getFingerprint($VISIT1_subject)){ + + case 0: + + + default: + if($isSubtypeOf($VISIT1_subject.getType(),M_ParseTree.ADT_Symbol)){ + /*muExists*/CASE_0_0: + do { + IConstructor s_4 = ((IConstructor)($VISIT1_subject)); + IConstructor $replacement15 = (IConstructor)(((IConstructor)($aadt_field_update("id", lang_rascal_grammar_ParserGenerator_$CLOSURE_0_newItem(uniqueItem_1), ((IConstructor)s_4))))); + if($isSubtypeOf($replacement15.getType(),$VISIT1_subject.getType())){ + $traversalState.setMatchedAndChanged(true, true); + return $replacement15; + + } else { + break VISIT1;// switch + + } + } while(false); + + } + + } + return $VISIT1_subject; + }); + return (IConstructor)$visitResult; + + } catch (ReturnFromTraversalException e) { + return (IConstructor) e.getValue(); + } + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/lang/rascal/grammar/ParserGenerator.rsc|(1850,9138,<45,110>,<245,5>) + public IString $CLOSURE_0(TypedFunctionInstance2 worked_0, ValueRef gr_2, ValueRef name_1, ValueRef $package_0){ + + + final ValueRef uniqueItem_1 = new ValueRef("uniqueItem", ((IInteger)$constants.get(0)/*1*/)); + ((TypedFunctionInstance2)worked_0).typedCall(((IString)$constants.get(1)/*"expanding parameterized symbols"*/), ((IInteger)$constants.get(0)/*1*/)); + gr_2.setValue(((IConstructor)(M_lang_rascal_grammar_definition_Parameters.expandParameterizedSymbols(gr_2.getValue())))); + ((TypedFunctionInstance2)worked_0).typedCall(((IString)$constants.get(2)/*"generating stubs for regular"*/), ((IInteger)$constants.get(0)/*1*/)); + gr_2.setValue(((IConstructor)(M_lang_rascal_grammar_definition_Regular.makeRegularStubs(gr_2.getValue())))); + ((TypedFunctionInstance2)worked_0).typedCall(((IString)$constants.get(3)/*"generating syntax for holes"*/), ((IInteger)$constants.get(0)/*1*/)); + gr_2.setValue(((IConstructor)(M_lang_rascal_grammar_ConcreteSyntax.addHoles(gr_2.getValue())))); + ((TypedFunctionInstance2)worked_0).typedCall(((IString)$constants.get(4)/*"generating literals"*/), ((IInteger)$constants.get(0)/*1*/)); + gr_2.setValue(((IConstructor)(M_lang_rascal_grammar_definition_Literals.literals(gr_2.getValue())))); + ((TypedFunctionInstance2)worked_0).typedCall(((IString)$constants.get(5)/*"establishing production set"*/), ((IInteger)$constants.get(0)/*1*/)); + final ISetWriter $setwriter6 = (ISetWriter)$RVF.setWriter(); + ; + /*muExists*/$SCOMP7: + do { + $SCOMP7_DESC2418: + for(IValue $elem14 : new DescendantMatchIterator(gr_2.getValue(), + new DescendantDescriptorAlwaysTrue($RVF.bool(false)))){ + if($isComparable($elem14.getType(), M_ParseTree.ADT_Production)){ + if($isSubtypeOf($elem14.getType(),M_ParseTree.ADT_Production)){ + IConstructor p_3 = null; + IBool $aux18 = (IBool)(((IBool)$constants.get(6)/*false*/)); + $aux18 = ((IBool)$constants.get(6)/*false*/); + /*muExists*/$EXP8: + do { + if($has_type_and_arity($elem14, M_ParseTree.Production_prod_Symbol_list_Symbol_set_Attr, 3)){ + IValue $arg0_11 = (IValue)($aadt_subscript_int(((IConstructor)($elem14)),0)); + if($isComparable($arg0_11.getType(), $T1)){ + IValue $arg1_10 = (IValue)($aadt_subscript_int(((IConstructor)($elem14)),1)); + if($isComparable($arg1_10.getType(), $T1)){ + IValue $arg2_9 = (IValue)($aadt_subscript_int(((IConstructor)($elem14)),2)); + if($isComparable($arg2_9.getType(), $T1)){ + $aux18 = ((IBool)$constants.get(7)/*true*/); + break $EXP8; // muSucceed + } else { + $aux18 = ((IBool)$constants.get(6)/*false*/); + continue $EXP8; + } + } else { + $aux18 = ((IBool)$constants.get(6)/*false*/); + continue $EXP8; + } + } else { + $aux18 = ((IBool)$constants.get(6)/*false*/); + continue $EXP8; + } + } else { + $aux18 = ((IBool)$constants.get(6)/*false*/); + continue $EXP8; + } + } while(false); + if((((IBool)($aux18))).getValue()){ + $setwriter6.insert($elem14); + + } else { + IBool $aux17 = (IBool)(((IBool)$constants.get(6)/*false*/)); + $aux17 = ((IBool)$constants.get(6)/*false*/); + /*muExists*/$EXP12: + do { + if($has_type_and_arity($elem14, M_ParseTree.Production_regular_Symbol, 1)){ + IValue $arg0_13 = (IValue)($aadt_subscript_int(((IConstructor)($elem14)),0)); + if($isComparable($arg0_13.getType(), $T1)){ + $aux17 = ((IBool)$constants.get(7)/*true*/); + break $EXP12; // muSucceed + } else { + $aux17 = ((IBool)$constants.get(6)/*false*/); + continue $EXP12; + } + } else { + $aux17 = ((IBool)$constants.get(6)/*false*/); + continue $EXP12; + } + } while(false); + if((((IBool)($aux17))).getValue()){ + $setwriter6.insert($elem14); + + } else { + continue $SCOMP7_DESC2418; + } + + } + + } else { + continue $SCOMP7_DESC2418; + } + } else { + continue $SCOMP7_DESC2418; + } + } + + + } while(false); + ISet uniqueProductions_2 = ((ISet)($setwriter6.done())); + ((TypedFunctionInstance2)worked_0).typedCall(((IString)$constants.get(8)/*"assigning unique ids to symbols"*/), ((IInteger)$constants.get(0)/*1*/)); + IConstructor beforeUniqueGr_5 = gr_2.getValue(); + final IMapWriter $mapwriter16 = (IMapWriter)$RVF.mapWriter(); + $MCOMP17_GEN2710: + for(IValue $elem18_for : ((IMap)(((IMap)($aadt_get_field(gr_2.getValue(), "rules")))))){ + IConstructor $elem18 = (IConstructor) $elem18_for; + IConstructor s_6 = ((IConstructor)($elem18)); + $mapwriter16.insert($RVF.tuple(s_6, lang_rascal_grammar_ParserGenerator_$CLOSURE_0_rewrite(((IConstructor)($amap_subscript(((IMap)(((IMap)($aadt_get_field(gr_2.getValue(), "rules"))))),((IConstructor)s_6)))), uniqueItem_1))); + + } + + gr_2.setValue(((IConstructor)(((IConstructor)($aadt_field_update("rules", $mapwriter16.done(), gr_2.getValue())))))); + ((TypedFunctionInstance2)worked_0).typedCall(((IString)$constants.get(9)/*"generating item allocations"*/), ((IInteger)$constants.get(0)/*1*/)); + IMap newItems_7 = ((IMap)($me.generateNewItems(gr_2.getValue()))); + ((TypedFunctionInstance2)worked_0).typedCall(((IString)$constants.get(10)/*"computing priority and associativity filter"*/), ((IInteger)$constants.get(0)/*1*/)); + ISet dontNest_8 = ((ISet)($me.computeDontNests(((IMap)newItems_7), ((IConstructor)beforeUniqueGr_5), gr_2.getValue()))); + final ISetWriter $setwriter19 = (ISetWriter)$RVF.setWriter(); + ; + /*muExists*/$SCOMP20: + do { + final ISetWriter $setwriter22 = (ISetWriter)$RVF.setWriter(); + ; + $SCOMP23_GEN3191: + for(IValue $elem24_for : ((ISet)($arel_field_project((ISet)((ISet)dontNest_8), ((IInteger)$constants.get(11)/*0*/))))){ + IInteger $elem24 = (IInteger) $elem24_for; + IInteger p_11 = null; + $setwriter22.insert($RVF.tuple(((ISet)($arel_subscript1_noset(((ISet)dontNest_8),((IInteger)($elem24))))), ((IInteger)($elem24)))); + + } + + final ISet $subject_val25 = ((ISet)($setwriter22.done())); + ISet g_10 = null; + $SCOMP20_GEN3214: + for(IValue $elem21_for : ((ISet)($arel_field_project((ISet)((ISet)($subject_val25)), ((IInteger)$constants.get(11)/*0*/))))){ + ISet $elem21 = (ISet) $elem21_for; + ISet c_12 = null; + $setwriter19.insert($RVF.tuple(((ISet)($elem21)), ((ISet)($arel2_subscript1_aset(((ISet)($subject_val25)),((ISet)($elem21))))))); + + } + continue $SCOMP20; + + } while(false); + ISet dontNestGroups_9 = ((ISet)($setwriter19.done())); + ((TypedFunctionInstance2)worked_0).typedCall(((IString)$constants.get(12)/*"source code template"*/), ((IInteger)$constants.get(0)/*1*/)); + final Template $template26 = (Template)new Template($RVF, "package "); + $template26.beginIndent(" "); + $template26.addStr($package_0.getValue().getValue()); + $template26.endIndent(" "); + $template26.addStr(";\n\nimport java.io.IOException;\nimport java.io.StringReader;\n\nimport io.usethesource.vallang.type.TypeFactory;\nimport io.usethesource.vallang.IConstructor;\nimport io.usethesource.vallang.ISourceLocation;\nimport io.usethesource.vallang.IValue;\nimport io.usethesource.vallang.IValueFactory;\nimport io.usethesource.vallang.exceptions.FactTypeUseException;\nimport io.usethesource.vallang.io.StandardTextReader;\nimport org.rascalmpl.parser.gtd.stack.*;\nimport org.rascalmpl.parser.gtd.stack.filter.*;\nimport org.rascalmpl.parser.gtd.stack.filter.follow.*;\nimport org.rascalmpl.parser.gtd.stack.filter.match.*;\nimport org.rascalmpl.parser.gtd.stack.filter.precede.*;\nimport org.rascalmpl.parser.gtd.preprocessing.ExpectBuilder;\nimport org.rascalmpl.parser.gtd.util.IntegerKeyedHashMap;\nimport org.rascalmpl.parser.gtd.util.IntegerList;\nimport org.rascalmpl.parser.gtd.util.IntegerMap;\nimport org.rascalmpl.values.ValueFactoryFactory;\nimport org.rascalmpl.values.RascalValueFactory;\nimport org.rascalmpl.values.parsetrees.ITree;\n\n@SuppressWarnings(\"all\")\npublic class "); + $template26.beginIndent(" "); + $template26.addStr(name_1.getValue().getValue()); + $template26.endIndent(" "); + $template26.addStr(" extends org.rascalmpl.parser.gtd.SGTDBF {\n protected final static IValueFactory VF = ValueFactoryFactory.getValueFactory();\n\n protected static IValue _read(java.lang.String s, io.usethesource.vallang.type.Type type) {\n try {\n return new StandardTextReader().read(VF, org.rascalmpl.values.RascalValueFactory.uptr, type, new StringReader(s));\n }\n catch (FactTypeUseException e) {\n throw new RuntimeException(\"unexpected exception in generated parser\", e); \n } catch (IOException e) {\n throw new RuntimeException(\"unexpected exception in generated parser\", e); \n }\n }\n\t\n protected static java.lang.String _concat(java.lang.String ...args) {\n int length = 0;\n for (java.lang.String s :args) {\n length += s.length();\n }\n java.lang.StringBuilder b = new java.lang.StringBuilder(length);\n for (java.lang.String s : args) {\n b.append(s);\n }\n return b.toString();\n }\n protected static final TypeFactory _tf = TypeFactory.getInstance();\n \n private static final IntegerMap _resultStoreIdMappings;\n private static final IntegerKeyedHashMap _dontNest;\n\t\n protected static void _putDontNest(IntegerKeyedHashMap result, int parentId, int childId) {\n IntegerList donts = result.get(childId);\n if (donts == null) {\n donts = new IntegerList();\n result.put(childId, donts);\n }\n donts.add(parentId);\n }\n \n protected int getResultStoreId(int parentId) {\n return _resultStoreIdMappings.get(parentId);\n }\n \n protected static IntegerKeyedHashMap _initDontNest() {\n IntegerKeyedHashMap result = new IntegerKeyedHashMap(); \n \n "); + IInteger i_13 = ((IInteger)$constants.get(11)/*0*/); + $template26.addStr("\n "); + /*muExists*/LAB3: + do { + LAB3_GEN7217: + for(IValue $elem27_for : ((ISet)dontNest_8)){ + IValue $elem27 = (IValue) $elem27_for; + final IValue $tuple_subject28 = ((IValue)($elem27)); + if($tuple_subject28 instanceof ITuple && ((ITuple)$tuple_subject28).arity() == 2){ + /*muExists*/LAB3_GEN7217_TUPLE: + do { + IInteger f_14 = null; + IInteger c_15 = null; + i_13 = ((IInteger)($aint_add_aint(((IInteger)i_13),((IInteger)$constants.get(0)/*1*/)))); + $template26.addStr("\n "); + if((((IBool)($equal(((IInteger)(((IInteger)i_13).remainder(((IInteger)$constants.get(13)/*2000*/)))), ((IInteger)$constants.get(11)/*0*/))))).getValue()){ + $template26.addStr("\n _initDontNest"); + $template26.beginIndent(" "); + $template26.addVal(i_13); + $template26.endIndent(" "); + $template26.addStr("(result);\n "); + if((((IBool)($equal(((IInteger)i_13), ((IInteger)$constants.get(13)/*2000*/))))).getValue()){ + $template26.addStr("return result;"); + + } + $template26.addStr("\n }\n protected static void _initDontNest"); + $template26.beginIndent(" "); + $template26.addVal(i_13); + $template26.endIndent(" "); + $template26.addStr("(IntegerKeyedHashMap result) {"); + + } + $template26.addStr("\n _putDontNest(result, "); + $template26.beginIndent(" "); + $template26.addVal($subscript_int(((IValue)($tuple_subject28)),0)); + $template26.endIndent(" "); + $template26.addStr(", "); + $template26.beginIndent(" "); + $template26.addVal($subscript_int(((IValue)($tuple_subject28)),1)); + $template26.endIndent(" "); + $template26.addStr(");"); + + } while(false); + + } else { + continue LAB3_GEN7217; + } + } + continue LAB3; + + } while(false); + $template26.addStr("\n "); + if((((IBool)($aint_less_aint(((IInteger)i_13),((IInteger)$constants.get(13)/*2000*/))))).getValue()){ + $template26.addStr("return result;"); + + } + $template26.addStr("\n }\n \n protected static IntegerMap _initDontNestGroups() {\n IntegerMap result = new IntegerMap();\n int resultStoreId = result.size();\n \n "); + /*muExists*/LAB7: + do { + LAB7_GEN7846: + for(IValue $elem30_for : ((ISet)dontNestGroups_9)){ + IValue $elem30 = (IValue) $elem30_for; + final IValue $tuple_subject31 = ((IValue)($elem30)); + if($tuple_subject31 instanceof ITuple && ((ITuple)$tuple_subject31).arity() == 2){ + /*muExists*/LAB7_GEN7846_TUPLE: + do { + ISet parentIds_16 = null; + $template26.addStr("\n ++resultStoreId;\n "); + /*muExists*/LAB8: + do { + LAB8_GEN7940: + for(IValue $elem29_for : ((ISet)($subscript_int(((IValue)($tuple_subject31)),1)))){ + IInteger $elem29 = (IInteger) $elem29_for; + IInteger pid_17 = null; + $template26.addStr("\n result.putUnsafe("); + $template26.beginIndent(" "); + $template26.addVal($elem29); + $template26.endIndent(" "); + $template26.addStr(", resultStoreId);"); + + } + continue LAB8; + + } while(false); + + } while(false); + + } else { + continue LAB7_GEN7846; + } + } + continue LAB7; + + } while(false); + $template26.addStr("\n \n return result;\n }\n \n protected boolean hasNestingRestrictions(java.lang.String name){\n\t\treturn (_dontNest.size() != 0); // TODO Make more specific.\n }\n \n protected IntegerList getFilteredParents(int childId) {\n\t\treturn _dontNest.get(childId);\n }\n \n // initialize priorities \n static {\n _dontNest = _initDontNest();\n _resultStoreIdMappings = _initDontNestGroups();\n }\n \n // Production declarations\n\t"); + /*muExists*/LAB9: + do { + LAB9_GEN8709: + for(IValue $elem33_for : ((ISet)uniqueProductions_2)){ + IConstructor $elem33 = (IConstructor) $elem33_for; + IConstructor p_18 = ((IConstructor)($elem33)); + $template26.addStr("\n private static final IConstructor "); + $template26.beginIndent(" "); + $template26.addStr(((IString)($me.value2id(((IValue)p_18)))).getValue()); + $template26.endIndent(" "); + $template26.addStr(" = (IConstructor) _read(\""); + $template26.beginIndent(" "); + final Template $template32 = (Template)new Template($RVF, ""); + $template32.addVal(p_18); + $template26.addStr(((IString)($me.esc(((IString)($template32.close()))))).getValue()); + $template26.endIndent(" "); + $template26.addStr("\", RascalValueFactory.Production);"); + + } + continue LAB9; + + } while(false); + $template26.addStr("\n \n // Item declarations\n\t"); + /*muExists*/LAB10: + do { + LAB10_GEN8947: + for(IValue $elem39_for : ((ISet)($amap_field_project((IMap)((IMap)newItems_7), ((IInteger)$constants.get(11)/*0*/))))){ + IConstructor $elem39 = (IConstructor) $elem39_for; + if(true){ + IConstructor s_19 = ((IConstructor)($elem39)); + if((((IBool)($me.isNonterminal(((IConstructor)s_19))))).getValue()){ + IMap items_20 = ((IMap)($amap_subscript(((IMap)newItems_7),((IConstructor)(M_Node.unsetRec(((IValue)s_19))))))); + IMap alts_21 = ((IMap)$constants.get(14)/*()*/); + /*muExists*/FOR11: + do { + FOR11_GEN9116: + for(IValue $elem34_for : ((IMap)items_20)){ + IConstructor $elem34 = (IConstructor) $elem34_for; + IConstructor item_22 = null; + IConstructor prod_23 = ((IConstructor)(((IConstructor)($aadt_get_field(((IConstructor)($elem34)), "production"))))); + if((((IBool)($RVF.bool(((IMap)alts_21).containsKey(((IConstructor)prod_23)))))).getValue()){ + alts_21 = ((IMap)($amap_update(prod_23,$alist_add_elm(((IList)($amap_subscript(((IMap)alts_21),((IConstructor)prod_23)))),((IConstructor)($elem34))), ((IMap)(((IMap)alts_21)))))); + + } else { + alts_21 = ((IMap)($amap_update(prod_23,$RVF.list(((IConstructor)($elem34))), ((IMap)(((IMap)alts_21)))))); + + } + } + continue FOR11; + + } while(false); + /* void: muCon([]) */$template26.addStr("\n\t\n protected static class "); + $template26.beginIndent(" "); + $template26.addStr(((IString)($me.value2id(((IValue)s_19)))).getValue()); + $template26.endIndent(" "); + $template26.addStr(" {\n public final static AbstractStackNode[] EXPECTS;\n static{\n ExpectBuilder builder = new ExpectBuilder(_dontNest, _resultStoreIdMappings);\n init(builder);\n EXPECTS = builder.buildExpectArray();\n }\n "); + /*muExists*/LAB13: + do { + LAB13_GEN9758: + for(IValue $elem37_for : ((ISet)($amap_field_project((IMap)((IMap)alts_21), ((IInteger)$constants.get(11)/*0*/))))){ + IConstructor $elem37 = (IConstructor) $elem37_for; + if(true){ + IConstructor alt_24 = ((IConstructor)($elem37)); + IList lhses_25 = ((IList)($amap_subscript(((IMap)alts_21),((IConstructor)alt_24)))); + IString id_26 = ((IString)($me.value2id(((IValue)alt_24)))); + $template26.addStr("\n protected static final void _init_"); + $template26.beginIndent(" "); + $template26.addStr(((IString)id_26).getValue()); + $template26.endIndent(" "); + $template26.addStr("(ExpectBuilder builder) {\n AbstractStackNode[] tmp = (AbstractStackNode[]) new AbstractStackNode["); + $template26.beginIndent(" "); + $template26.addVal(M_List.size(((IList)lhses_25))); + $template26.endIndent(" "); + $template26.addStr("];\n "); + /*muExists*/LAB14: + do { + LAB14_GEN10099: + for(IValue $elem36_for : ((IList)lhses_25)){ + IConstructor $elem36 = (IConstructor) $elem36_for; + IConstructor i_27 = ((IConstructor)($elem36)); + IInteger ii_28 = null; + if((((IBool)($equal(((IInteger)(((IInteger)($aadt_get_field(((IConstructor)i_27), "index"))))),((IInteger)$constants.get(15)/*-1*/)).not()))).getValue()){ + ii_28 = ((IInteger)(((IInteger)($aadt_get_field(((IConstructor)i_27), "index"))))); + + } else { + ii_28 = ((IInteger)$constants.get(11)/*0*/); + + }$template26.addStr("\n tmp["); + $template26.beginIndent(" "); + $template26.addVal(ii_28); + $template26.endIndent(" "); + $template26.addStr("] = "); + $template26.beginIndent(" "); + $template26.addStr(((IString)($atuple_field_project((ITuple)((ITuple)($amap_subscript(((IMap)items_20),((IConstructor)(M_Node.unsetRec(((IValue)i_27))))))), ((IInteger)$constants.get(11)/*0*/)))).getValue()); + $template26.endIndent(" "); + $template26.addStr(";"); + + } + continue LAB14; + + } while(false); + $template26.addStr("\n builder.addAlternative("); + $template26.beginIndent(" "); + $template26.addStr(name_1.getValue().getValue()); + $template26.endIndent(" "); + $template26.addStr("."); + $template26.beginIndent(" "); + $template26.addStr(((IString)id_26).getValue()); + $template26.endIndent(" "); + $template26.addStr(", tmp);\n\t}"); + + } else { + continue LAB13_GEN9758; + } + } + continue LAB13; + + } while(false); + $template26.addStr("\n public static void init(ExpectBuilder builder){\n "); + /*muExists*/LAB15: + do { + LAB15_GEN10395: + for(IValue $elem38_for : ((ISet)($amap_field_project((IMap)((IMap)alts_21), ((IInteger)$constants.get(11)/*0*/))))){ + IConstructor $elem38 = (IConstructor) $elem38_for; + IConstructor alt_29 = ((IConstructor)($elem38)); + IList lhses_30 = ((IList)($amap_subscript(((IMap)alts_21),((IConstructor)alt_29)))); + IString id_31 = ((IString)($me.value2id(((IValue)alt_29)))); + $template26.addStr("\n _init_"); + $template26.beginIndent(" "); + $template26.addStr(((IString)id_31).getValue()); + $template26.endIndent(" "); + $template26.addStr("(builder);\n "); + + } + continue LAB15; + + } while(false); + $template26.addStr("\n }\n }"); + + } else { + continue LAB10_GEN8947; + } + + } else { + continue LAB10_GEN8947; + } + } + continue LAB10; + + } while(false); + $template26.addStr("\n\n private int nextFreeStackNodeId = "); + $template26.beginIndent(" "); + $template26.addVal(lang_rascal_grammar_ParserGenerator_$CLOSURE_0_newItem(uniqueItem_1)); + $template26.endIndent(" "); + $template26.addStr(";\n protected int getFreeStackNodeId() {\n return nextFreeStackNodeId++;\n }\n\n // Parse methods \n "); + /*muExists*/LAB16: + do { + LAB16_GEN10835: + for(IValue $elem40_for : ((ISet)($amap_field_project((IMap)((IMap)(((IMap)($aadt_get_field(gr_2.getValue(), "rules"))))), ((IInteger)$constants.get(11)/*0*/))))){ + IConstructor $elem40 = (IConstructor) $elem40_for; + if(true){ + IConstructor nont_32 = ((IConstructor)($elem40)); + if((((IBool)($me.isNonterminal(((IConstructor)nont_32))))).getValue()){ + $template26.addStr("\n "); + $template26.beginIndent(" "); + $template26.addStr(((IString)($me.generateParseMethod(((IMap)newItems_7), ((IConstructor)($amap_subscript(((IMap)(((IMap)($aadt_get_field(gr_2.getValue(), "rules"))))),((IConstructor)(M_Node.unsetRec(((IValue)nont_32)))))))))).getValue()); + $template26.endIndent(" "); + + } else { + continue LAB16_GEN10835; + } + + } else { + continue LAB16_GEN10835; + } + } + continue LAB16; + + } while(false); + $template26.addStr("\n}"); + return ((IString)($template26.close())); + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/lang/rascal/grammar/ParserGenerator.rsc|(1679,9332,<44,0>,<246,1>) + public IString lang_rascal_grammar_ParserGenerator_newGenerate$119399aa64603f31(IString $aux_$package_0, IString $aux_name_1, IConstructor $aux_gr_2){ + ValueRef $package_0 = new ValueRef("$package_0", $aux_$package_0); + ValueRef name_1 = new ValueRef("name_1", $aux_name_1); + ValueRef gr_2 = new ValueRef("gr_2", $aux_gr_2); + + + final Template $template4 = (Template)new Template($RVF, "Generating parser; "); + /*muExists*/LAB0: + do { + LAB0_GEN1781: + for(IValue $elem5_for : ((IMap)(((IMap)($aadt_get_field(gr_2.getValue(), "rules")))))){ + IConstructor $elem5 = (IConstructor) $elem5_for; + IConstructor st_3 = null; + if($is(((IConstructor)($elem5)),((IString)$constants.get(16)/*"sort"*/))){ + ;$template4.addVal($reifiedAType((IConstructor) $elem5, ((IMap)$constants.get(14)/*()*/))); + $template4.addStr(" "); + + } else { + if($is(((IConstructor)($elem5)),((IString)$constants.get(17)/*"lex"*/))){ + ;$template4.addVal($reifiedAType((IConstructor) $elem5, ((IMap)$constants.get(14)/*()*/))); + $template4.addStr(" "); + + } else { + continue LAB0_GEN1781; + } + + } + + } + continue LAB0; + + } while(false); + return ((IString)(M_util_Monitor.job(((IString)($astr_slice(((IString)($template4.close())), null, null, -1))), new TypedFunctionInstance1(($1850_0) -> { return $CLOSURE_0((TypedFunctionInstance2)$1850_0, gr_2, name_1, $package_0); }, $T22), Util.kwpMap("totalWork", ((IInteger)$constants.get(18)/*9*/))))); + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/lang/rascal/grammar/ParserGenerator.rsc|(11015,1011,<248,0>,<261,1>) + public ISet lang_rascal_grammar_ParserGenerator_computeDontNests$f6f668d3e8c3d6db(IMap items_0, IConstructor grammar_1, IConstructor uniqueGrammar_2){ + + + final IMapWriter $mapwriter41 = (IMapWriter)$RVF.mapWriter(); + /*muExists*/$MCOMP42: + do { + $MCOMP42_DESC11265: + for(IValue $elem43 : new DescendantMatchIterator(grammar_1, + new DescendantDescriptorAlwaysTrue($RVF.bool(false)))){ + if($isComparable($elem43.getType(), M_ParseTree.ADT_Production)){ + if($isSubtypeOf($elem43.getType(),M_ParseTree.ADT_Production)){ + if($has_type_and_arity($elem43, M_ParseTree.Production_prod_Symbol_list_Symbol_set_Attr, 3)){ + IValue $arg0_46 = (IValue)($subscript_int(((IValue)($elem43)),0)); + if($isComparable($arg0_46.getType(), M_ParseTree.ADT_Symbol)){ + if(true){ + IConstructor rhs_5 = ((IConstructor)($arg0_46)); + IValue $arg1_45 = (IValue)($subscript_int(((IValue)($elem43)),1)); + if($isComparable($arg1_45.getType(), $T6)){ + if(true){ + IList lhs_6 = ((IList)($arg1_45)); + IValue $arg2_44 = (IValue)($subscript_int(((IValue)($elem43)),2)); + if($isComparable($arg2_44.getType(), $T1)){ + IConstructor p_4 = ((IConstructor)($elem43)); + $mapwriter41.insert($RVF.tuple(p_4, $atuple_field_project((ITuple)((ITuple)($amap_subscript(((IMap)($amap_subscript(((IMap)items_0),((IConstructor)($me.getType(((IConstructor)($arg0_46)))))))),((IConstructor)($RVF.constructor(M_Grammar.Item_item_Production_int, new IValue[]{((IConstructor)p_4), ((IInteger)(((IInteger) ((IInteger)(M_List.size(((IList)($arg1_45))))).subtract(((IInteger)$constants.get(0)/*1*/)))))})))))), ((IInteger)$constants.get(0)/*1*/)))); + + } else { + continue $MCOMP42_DESC11265; + } + } else { + continue $MCOMP42_DESC11265; + } + } else { + continue $MCOMP42_DESC11265; + } + } else { + continue $MCOMP42_DESC11265; + } + } else { + continue $MCOMP42_DESC11265; + } + } else { + continue $MCOMP42_DESC11265; + } + } else { + continue $MCOMP42_DESC11265; + } + } else { + continue $MCOMP42_DESC11265; + } + } + + + } while(false); + IMap prodItems_3 = ((IMap)($mapwriter41.done())); + ISet dnn_7 = ((ISet)(M_lang_rascal_grammar_definition_Priorities.doNotNest(((IConstructor)grammar_1)))); + final ISetWriter $setwriter47 = (ISetWriter)$RVF.setWriter(); + ; + $SCOMP48_GEN11847: + for(IValue $elem49_for : ((ISet)dnn_7)){ + IValue $elem49 = (IValue) $elem49_for; + final IValue $tuple_subject50 = ((IValue)($elem49)); + if($tuple_subject50 instanceof ITuple && ((ITuple)$tuple_subject50).arity() == 3){ + /*muExists*/$SCOMP48_GEN11847_TUPLE: + do { + IConstructor father_8 = null; + IInteger pos_9 = null; + IConstructor child_10 = null; + if($is(((IConstructor)($subscript_int(((IValue)($tuple_subject50)),0))),((IString)$constants.get(19)/*"prod"*/))){ + $setwriter47.insert($RVF.tuple(((IInteger)($atuple_field_project((ITuple)((ITuple)($amap_subscript(((IMap)($amap_subscript(((IMap)items_0),((IConstructor)($me.getType(((IConstructor)(((IConstructor)($aadt_get_field(((IConstructor)($subscript_int(((IValue)($tuple_subject50)),0))), "def"))))))))))),((IConstructor)($RVF.constructor(M_Grammar.Item_item_Production_int, new IValue[]{((IConstructor)($subscript_int(((IValue)($tuple_subject50)),0))), ((IInteger)($subscript_int(((IValue)($tuple_subject50)),1)))})))))), ((IInteger)$constants.get(0)/*1*/)))), ((IInteger)($amap_subscript(((IMap)prodItems_3),((IConstructor)($subscript_int(((IValue)($tuple_subject50)),2)))))))); + + } else { + continue $SCOMP48_GEN11847_TUPLE; + } + + } while(false); + + } else { + continue $SCOMP48_GEN11847; + } + } + + final ISetWriter $setwriter51 = (ISetWriter)$RVF.setWriter(); + ; + $SCOMP52_GEN11947: + for(IValue $elem54_for : ((ISet)dnn_7)){ + IValue $elem54 = (IValue) $elem54_for; + final IValue $tuple_subject55 = ((IValue)($elem54)); + if($tuple_subject55 instanceof ITuple && ((ITuple)$tuple_subject55).arity() == 3){ + /*muExists*/$SCOMP52_GEN11947_TUPLE: + do { + final IConstructor $subject56 = ((IConstructor)($subscript_int(((IValue)($tuple_subject55)),0))); + if($has_type_and_arity($subject56, M_ParseTree.Production_regular_Symbol, 1)){ + IValue $arg0_57 = (IValue)($aadt_subscript_int(((IConstructor)($subject56)),0)); + if($isComparable($arg0_57.getType(), M_ParseTree.ADT_Symbol)){ + IConstructor s_11 = ((IConstructor)($arg0_57)); + IInteger pos_12 = ((IInteger)($subscript_int(((IValue)($tuple_subject55)),1))); + IConstructor child_13 = ((IConstructor)($subscript_int(((IValue)($tuple_subject55)),2))); + $SCOMP52_GEN11947_TUPLE_DESC11978: + for(IValue $elem53 : new DescendantMatchIterator(uniqueGrammar_2, + new DescendantDescriptorAlwaysTrue($RVF.bool(false)))){ + if($isComparable($elem53.getType(), M_ParseTree.ADT_Symbol)){ + if($isSubtypeOf($elem53.getType(),M_ParseTree.ADT_Symbol)){ + IConstructor t_14 = ((IConstructor)($elem53)); + if((((IBool)($equal(((IConstructor)(M_Node.unsetRec(((IValue)t_14)))), ((IConstructor)($arg0_57)))))).getValue()){ + $setwriter51.insert($RVF.tuple(((IInteger)($me.getItemId(((IConstructor)t_14), ((IInteger)pos_12), ((IConstructor)child_13)))), ((IInteger)($amap_subscript(((IMap)prodItems_3),((IConstructor)child_13)))))); + + } else { + continue $SCOMP52_GEN11947_TUPLE_DESC11978; + } + + } else { + continue $SCOMP52_GEN11947_TUPLE_DESC11978; + } + } else { + continue $SCOMP52_GEN11947_TUPLE_DESC11978; + } + } + continue $SCOMP52_GEN11947_TUPLE; + + } else { + continue $SCOMP52_GEN11947; + } + } else { + continue $SCOMP52_GEN11947; + } + } while(false); + + } else { + continue $SCOMP52_GEN11947; + } + } + + return ((ISet)($aset_add_aset(((ISet)($setwriter47.done())),((ISet)($setwriter51.done()))))); + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/lang/rascal/grammar/ParserGenerator.rsc|(12028,869,<263,0>,<277,1>) + public IInteger lang_rascal_grammar_ParserGenerator_getItemId$47cbee5644cf9020(IConstructor s_0, IInteger pos_1, IConstructor $2){ + + + if($has_type_and_arity($2, M_ParseTree.Production_prod_Symbol_list_Symbol_set_Attr, 3)){ + IValue $arg0_87 = (IValue)($aadt_subscript_int(((IConstructor)$2),0)); + if($isComparable($arg0_87.getType(), M_ParseTree.ADT_Symbol)){ + if($has_type_and_arity($arg0_87, M_Type.Symbol_label_str_Symbol, 2)){ + IValue $arg0_89 = (IValue)($aadt_subscript_int(((IConstructor)($arg0_87)),0)); + if($isComparable($arg0_89.getType(), $T5)){ + if(true){ + IString l_2 = null; + IValue $arg1_88 = (IValue)($aadt_subscript_int(((IConstructor)($arg0_87)),1)); + if($isComparable($arg1_88.getType(), M_ParseTree.ADT_Symbol)){ + IValue $arg1_86 = (IValue)($aadt_subscript_int(((IConstructor)$2),1)); + if($isComparable($arg1_86.getType(), $T6)){ + IValue $arg2_85 = (IValue)($aadt_subscript_int(((IConstructor)$2),2)); + if($isComparable($arg2_85.getType(), $T27)){ + final IConstructor $switchVal58 = ((IConstructor)s_0); + boolean noCaseMatched_$switchVal58 = true; + SWITCH17: switch(Fingerprint.getFingerprint($switchVal58)){ + + case -964239440: + if(noCaseMatched_$switchVal58){ + noCaseMatched_$switchVal58 = false; + if($isSubtypeOf($switchVal58.getType(),M_ParseTree.ADT_Symbol)){ + /*muExists*/CASE_964239440_5: + do { + if($has_type_and_arity($switchVal58, M_ParseTree.Symbol_iter_star_seps_Symbol_list_Symbol, 2)){ + IValue $arg0_67 = (IValue)($aadt_subscript_int(((IConstructor)($switchVal58)),0)); + if($isComparable($arg0_67.getType(), M_ParseTree.ADT_Symbol)){ + IConstructor t_8 = null; + IValue $arg1_66 = (IValue)($aadt_subscript_int(((IConstructor)($switchVal58)),1)); + if($isComparable($arg1_66.getType(), $T1)){ + if((((IBool)($equal(((IInteger)pos_1), ((IInteger)$constants.get(11)/*0*/))))).getValue()){ + return ((IInteger)($getkw_Symbol_id(((IConstructor)($arg0_67))))); + + } else { + continue CASE_964239440_5; + } + } + + } + + } + + } while(false); + + } + if($isSubtypeOf($switchVal58.getType(),M_ParseTree.ADT_Symbol)){ + /*muExists*/CASE_964239440_6: + do { + if($has_type_and_arity($switchVal58, M_ParseTree.Symbol_iter_star_seps_Symbol_list_Symbol, 2)){ + IValue $arg0_69 = (IValue)($aadt_subscript_int(((IConstructor)($switchVal58)),0)); + if($isComparable($arg0_69.getType(), $T1)){ + IValue $arg1_68 = (IValue)($aadt_subscript_int(((IConstructor)($switchVal58)),1)); + if($isComparable($arg1_68.getType(), $T6)){ + IList ss_9 = null; + if((((IBool)($aint_lessequal_aint(((IInteger)pos_1),((IInteger)$constants.get(11)/*0*/)).not()))).getValue()){ + return ((IInteger)($getkw_Symbol_id(((IConstructor)($alist_subscript_int(((IList)($arg1_68)),((IInteger)(((IInteger) ((IInteger)pos_1).subtract(((IInteger)$constants.get(0)/*1*/))))).intValue())))))); + + } else { + continue CASE_964239440_6; + } + } + + } + + } + + } while(false); + + } + + } + + + case 25942208: + if(noCaseMatched_$switchVal58){ + noCaseMatched_$switchVal58 = false; + if($isSubtypeOf($switchVal58.getType(),M_ParseTree.ADT_Symbol)){ + /*muExists*/CASE_25942208_1: + do { + if($has_type_and_arity($switchVal58, M_ParseTree.Symbol_iter_Symbol, 1)){ + IValue $arg0_60 = (IValue)($aadt_subscript_int(((IConstructor)($switchVal58)),0)); + if($isComparable($arg0_60.getType(), M_ParseTree.ADT_Symbol)){ + IConstructor t_4 = null; + return ((IInteger)($getkw_Symbol_id(((IConstructor)($arg0_60))))); + + } + + } + + } while(false); + + } + + } + + + case 882072: + if(noCaseMatched_$switchVal58){ + noCaseMatched_$switchVal58 = false; + if($isSubtypeOf($switchVal58.getType(),M_ParseTree.ADT_Symbol)){ + /*muExists*/CASE_882072_0: + do { + if($has_type_and_arity($switchVal58, M_ParseTree.Symbol_opt_Symbol, 1)){ + IValue $arg0_59 = (IValue)($aadt_subscript_int(((IConstructor)($switchVal58)),0)); + if($isComparable($arg0_59.getType(), M_ParseTree.ADT_Symbol)){ + IConstructor t_3 = null; + return ((IInteger)($getkw_Symbol_id(((IConstructor)($arg0_59))))); + + } + + } + + } while(false); + + } + + } + + + case 910072: + if(noCaseMatched_$switchVal58){ + noCaseMatched_$switchVal58 = false; + if($isSubtypeOf($switchVal58.getType(),M_ParseTree.ADT_Symbol)){ + /*muExists*/CASE_910072_7: + do { + if($has_type_and_arity($switchVal58, M_ParseTree.Symbol_seq_list_Symbol, 1)){ + IValue $arg0_70 = (IValue)($aadt_subscript_int(((IConstructor)($switchVal58)),0)); + if($isComparable($arg0_70.getType(), $T6)){ + IList ss_10 = null; + return ((IInteger)($getkw_Symbol_id(((IConstructor)($alist_subscript_int(((IList)($arg0_70)),((IInteger)pos_1).intValue())))))); + + } + + } + + } while(false); + + } + + } + + + case 826203960: + if(noCaseMatched_$switchVal58){ + noCaseMatched_$switchVal58 = false; + if($isSubtypeOf($switchVal58.getType(),M_ParseTree.ADT_Symbol)){ + /*muExists*/CASE_826203960_2: + do { + if($has_type_and_arity($switchVal58, M_ParseTree.Symbol_iter_star_Symbol, 1)){ + IValue $arg0_61 = (IValue)($aadt_subscript_int(((IConstructor)($switchVal58)),0)); + if($isComparable($arg0_61.getType(), M_ParseTree.ADT_Symbol)){ + IConstructor t_5 = null; + return ((IInteger)($getkw_Symbol_id(((IConstructor)($arg0_61))))); + + } + + } + + } while(false); + + } + + } + + + case 773448: + if(noCaseMatched_$switchVal58){ + noCaseMatched_$switchVal58 = false; + if($isSubtypeOf($switchVal58.getType(),M_ParseTree.ADT_Symbol)){ + /*muExists*/CASE_773448_8: + do { + if($has_type_and_arity($switchVal58, M_ParseTree.Symbol_alt_set_Symbol, 1)){ + IValue $arg0_84 = (IValue)($aadt_subscript_int(((IConstructor)($switchVal58)),0)); + if($isComparable($arg0_84.getType(), $T0)){ + ISet aa_11 = null; + /*muExists*/IF22: + do { + /*muExists*/IF22_GEN12768_CONS_conditional: + do { + IF22_GEN12768: + for(IValue $elem72_for : ((ISet)($arg0_84))){ + IConstructor $elem72 = (IConstructor) $elem72_for; + if($has_type_and_arity($elem72, M_ParseTree.Symbol_conditional_Symbol_set_Condition, 2)){ + IValue $arg0_83 = (IValue)($aadt_subscript_int(((IConstructor)($elem72)),0)); + if($isComparable($arg0_83.getType(), $T1)){ + IValue $arg1_73 = (IValue)($aadt_subscript_int(((IConstructor)($elem72)),1)); + if($isComparable($arg1_73.getType(), $T8)){ + ISet $subject74 = (ISet)($arg1_73); + IF22_GEN12768_CONS_conditional_SET_MVAR$_71: + for(IValue $elem81_for : new SubSetGenerator(((ISet)($subject74)))){ + ISet $elem81 = (ISet) $elem81_for; + final ISet $subject76 = ((ISet)(((ISet)($subject74)).subtract(((ISet)($elem81))))); + IF22_GEN12768_CONS_conditional_SET_MVAR$_71_CONS_except$_DFLT_SET_ELM79: + for(IValue $elem78_for : ((ISet)($subject76))){ + IConstructor $elem78 = (IConstructor) $elem78_for; + if($has_type_and_arity($elem78, M_ParseTree.Condition_except_str, 1)){ + IValue $arg0_80 = (IValue)($aadt_subscript_int(((IConstructor)($elem78)),0)); + if($isComparable($arg0_80.getType(), $T5)){ + if(($arg0_89 != null)){ + if($arg0_89.match($arg0_80)){ + final ISet $subject77 = ((ISet)(((ISet)($subject76)).delete(((IConstructor)($elem78))))); + if(((ISet)($subject77)).size() == 0){ + IConstructor a_12 = ((IConstructor)($elem72)); + return ((IInteger)($getkw_Symbol_id(((IConstructor)a_12)))); + + } else { + continue IF22_GEN12768_CONS_conditional_SET_MVAR$_71_CONS_except$_DFLT_SET_ELM79;/*redirected IF22_GEN12768_CONS_conditional_SET_MVAR$_71_CONS_except to IF22_GEN12768_CONS_conditional_SET_MVAR$_71_CONS_except$_DFLT_SET_ELM79; set pat3*/ + } + } else { + continue IF22_GEN12768_CONS_conditional_SET_MVAR$_71_CONS_except$_DFLT_SET_ELM79;/*default set elem*/ + } + } else { + $arg0_89 = ((IValue)($arg0_80)); + final ISet $subject77 = ((ISet)(((ISet)($subject76)).delete(((IConstructor)($elem78))))); + if(((ISet)($subject77)).size() == 0){ + IConstructor a_12 = ((IConstructor)($elem72)); + return ((IInteger)($getkw_Symbol_id(((IConstructor)a_12)))); + + } else { + continue IF22_GEN12768_CONS_conditional_SET_MVAR$_71_CONS_except$_DFLT_SET_ELM79;/*redirected IF22_GEN12768_CONS_conditional_SET_MVAR$_71_CONS_except to IF22_GEN12768_CONS_conditional_SET_MVAR$_71_CONS_except$_DFLT_SET_ELM79; set pat3*/ + } + } + } else { + continue IF22_GEN12768_CONS_conditional_SET_MVAR$_71_CONS_except$_DFLT_SET_ELM79;/*default set elem*/ + } + } else { + continue IF22_GEN12768_CONS_conditional_SET_MVAR$_71_CONS_except$_DFLT_SET_ELM79;/*default set elem*/ + } + } + continue IF22_GEN12768_CONS_conditional_SET_MVAR$_71;/*set pat4*/ + + } + continue IF22_GEN12768; + + } else { + continue IF22_GEN12768; + } + } else { + continue IF22_GEN12768; + } + } else { + continue IF22_GEN12768; + } + } + + + } while(false); + + } while(false); + break SWITCH17;// succeedSwitch + } + + } + + } while(false); + + } + + } + + + case 1652184736: + if(noCaseMatched_$switchVal58){ + noCaseMatched_$switchVal58 = false; + if($isSubtypeOf($switchVal58.getType(),M_ParseTree.ADT_Symbol)){ + /*muExists*/CASE_1652184736_3: + do { + if($has_type_and_arity($switchVal58, M_ParseTree.Symbol_iter_seps_Symbol_list_Symbol, 2)){ + IValue $arg0_63 = (IValue)($aadt_subscript_int(((IConstructor)($switchVal58)),0)); + if($isComparable($arg0_63.getType(), M_ParseTree.ADT_Symbol)){ + IConstructor t_6 = null; + IValue $arg1_62 = (IValue)($aadt_subscript_int(((IConstructor)($switchVal58)),1)); + if($isComparable($arg1_62.getType(), $T1)){ + if((((IBool)($equal(((IInteger)pos_1), ((IInteger)$constants.get(11)/*0*/))))).getValue()){ + return ((IInteger)($getkw_Symbol_id(((IConstructor)($arg0_63))))); + + } else { + continue CASE_1652184736_3; + } + } + + } + + } + + } while(false); + + } + if($isSubtypeOf($switchVal58.getType(),M_ParseTree.ADT_Symbol)){ + /*muExists*/CASE_1652184736_4: + do { + if($has_type_and_arity($switchVal58, M_ParseTree.Symbol_iter_seps_Symbol_list_Symbol, 2)){ + IValue $arg0_65 = (IValue)($aadt_subscript_int(((IConstructor)($switchVal58)),0)); + if($isComparable($arg0_65.getType(), $T1)){ + IValue $arg1_64 = (IValue)($aadt_subscript_int(((IConstructor)($switchVal58)),1)); + if($isComparable($arg1_64.getType(), $T6)){ + IList ss_7 = null; + if((((IBool)($aint_lessequal_aint(((IInteger)pos_1),((IInteger)$constants.get(11)/*0*/)).not()))).getValue()){ + return ((IInteger)($getkw_Symbol_id(((IConstructor)($alist_subscript_int(((IList)($arg1_64)),((IInteger)(((IInteger) ((IInteger)pos_1).subtract(((IInteger)$constants.get(0)/*1*/))))).intValue())))))); + + } else { + continue CASE_1652184736_4; + } + } + + } + + } + + } while(false); + + } + + } + + + default: + } + + return ((IInteger)($getkw_Symbol_id(((IConstructor)s_0)))); + + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/lang/rascal/grammar/ParserGenerator.rsc|(12901,46,<281,0>,<281,46>) + public IConstructor lang_rascal_grammar_ParserGenerator_getType$37ff38bece5b0e2f(IConstructor p_0){ + + + return ((IConstructor)($me.getType(((IConstructor)(((IConstructor)($aadt_get_field(((IConstructor)p_0), "def")))))))); + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/lang/rascal/grammar/ParserGenerator.rsc|(12948,52,<282,0>,<282,52>) + public IConstructor lang_rascal_grammar_ParserGenerator_getType$18c51bf3658df5a8(IConstructor $0){ + + + if($has_type_and_arity($0, M_Type.Symbol_label_str_Symbol, 2)){ + IValue $arg0_91 = (IValue)($aadt_subscript_int(((IConstructor)$0),0)); + if($isComparable($arg0_91.getType(), $T5)){ + IValue $arg1_90 = (IValue)($aadt_subscript_int(((IConstructor)$0),1)); + if($isComparable($arg1_90.getType(), M_ParseTree.ADT_Symbol)){ + IConstructor s_0 = null; + return ((IConstructor)($me.getType(((IConstructor)($arg1_90))))); + + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/lang/rascal/grammar/ParserGenerator.rsc|(13001,70,<283,0>,<283,70>) + public IConstructor lang_rascal_grammar_ParserGenerator_getType$cc1e9058e7705307(IConstructor $0){ + + + if($has_type_and_arity($0, M_ParseTree.Symbol_conditional_Symbol_set_Condition, 2)){ + IValue $arg0_93 = (IValue)($aadt_subscript_int(((IConstructor)$0),0)); + if($isComparable($arg0_93.getType(), M_ParseTree.ADT_Symbol)){ + IConstructor s_0 = null; + IValue $arg1_92 = (IValue)($aadt_subscript_int(((IConstructor)$0),1)); + if($isComparable($arg1_92.getType(), $T8)){ + ISet cs_1 = null; + return ((IConstructor)($me.getType(((IConstructor)($arg0_93))))); + + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/lang/rascal/grammar/ParserGenerator.rsc|(13072,47,<284,0>,<284,47>) + public IConstructor lang_rascal_grammar_ParserGenerator_getType$38f71884bfc4046e(IConstructor s_0){ + + + return ((IConstructor)(M_Node.unsetRec(((IValue)s_0)))); + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/lang/rascal/grammar/ParserGenerator.rsc|(13590,42,<293,2>,<293,44>) + public IConstructor lang_rascal_grammar_ParserGenerator_cl$43bfc4d41d835634(IConstructor p_0){ + + + return ((IConstructor)(M_Node.unsetRec(((IValue)p_0)))); + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/lang/rascal/grammar/ParserGenerator.rsc|(13122,2413,<287,0>,<344,1>) + public IMap lang_rascal_grammar_ParserGenerator_generateNewItems$2a1734bec0bd57ea(IConstructor $aux_g_0){ + ValueRef g_0 = new ValueRef("g_0", $aux_g_0); + + + try { + final ValueRef items_1 = new ValueRef("items", ((IMap)$constants.get(14)/*()*/)); + final ValueRef fresh_2 = new ValueRef("fresh", ((IMap)$constants.get(14)/*()*/)); + $TRAVERSE.traverse(DIRECTION.BottomUp, PROGRESS.Continuing, FIXEDPOINT.No, REBUILD.No, + new DescendantDescriptorAlwaysTrue($RVF.bool(false)), + g_0.getValue(), + (IVisitFunction) (IValue $VISIT23_subject, TraversalState $traversalState) -> { + VISIT23:switch(Fingerprint.getFingerprint($VISIT23_subject)){ + + case 101776608: + if($isSubtypeOf($VISIT23_subject.getType(),M_ParseTree.ADT_Production)){ + /*muExists*/CASE_101776608_2: + do { + if($has_type_and_arity($VISIT23_subject, M_ParseTree.Production_regular_Symbol, 1)){ + IValue $arg0_118 = (IValue)($aadt_subscript_int(((IConstructor)($VISIT23_subject)),0)); + if($isComparable($arg0_118.getType(), M_ParseTree.ADT_Symbol)){ + IConstructor s_10 = ((IConstructor)($arg0_118)); + IConstructor p_9 = ((IConstructor)($VISIT23_subject)); + /*muExists*/WHILE27_BT: + do { + WHILE27: + while((((IBool)(($is(((IConstructor)($arg0_118)),((IString)$constants.get(20)/*"conditional"*/)) ? ((IBool)$constants.get(7)/*true*/) : $RVF.bool($is(((IConstructor)($arg0_118)),((IString)$constants.get(21)/*"label"*/))))))).getValue()){ + $arg0_118 = ((IValue)(((IConstructor)($aadt_get_field(((IConstructor)($arg0_118)), "symbol"))))); + + } + + } while(false); + /* void: muCon([]) */IConstructor us_11 = ((IConstructor)(M_Node.unsetRec(((IValue)($arg0_118))))); + p_9 = ((IConstructor)(M_Node.unsetRec(((IValue)p_9)))); + final IConstructor $switchVal103 = ((IConstructor)($arg0_118)); + boolean noCaseMatched_$switchVal103 = true; + SWITCH28: switch(Fingerprint.getFingerprint($switchVal103)){ + + case -964239440: + if(noCaseMatched_$switchVal103){ + noCaseMatched_$switchVal103 = false; + if($isSubtypeOf($switchVal103.getType(),M_ParseTree.ADT_Symbol)){ + /*muExists*/CASE_964239440_3: + do { + if($has_type_and_arity($switchVal103, M_ParseTree.Symbol_iter_star_seps_Symbol_list_Symbol, 2)){ + IValue $arg0_112 = (IValue)($aadt_subscript_int(((IConstructor)($switchVal103)),0)); + if($isComparable($arg0_112.getType(), M_ParseTree.ADT_Symbol)){ + IConstructor elem_17 = ((IConstructor)($arg0_112)); + IValue $arg1_111 = (IValue)($aadt_subscript_int(((IConstructor)($switchVal103)),1)); + if($isComparable($arg1_111.getType(), $T6)){ + IList seps_18 = ((IList)($arg1_111)); + GuardedIValue guarded35 = $guarded_map_subscript(items_1.getValue(),((IConstructor)us_11)); + items_1.setValue(((IMap)($amap_update(us_11,$amap_add_amap(((IMap)(($is_defined_value(guarded35) ? ((IMap)$get_defined_value(guarded35)) : fresh_2.getValue()))),((IMap)($buildMap(((IConstructor)($RVF.constructor(M_Grammar.Item_item_Production_int, new IValue[]{((IConstructor)p_9), ((IInteger)$constants.get(11)/*0*/)}))), ((ITuple)($me.sym2newitem(g_0.getValue(), ((IConstructor)($arg0_112)), ((IInteger)$constants.get(11)/*0*/)))))))), ((IMap)(items_1.getValue())))))); + /*muExists*/FOR36: + do { + FOR36_GEN14777: + for(IValue $elem110_for : ((IList)(M_List.index(((IList)($arg1_111)))))){ + IInteger $elem110 = (IInteger) $elem110_for; + IInteger i_19 = ((IInteger)($elem110)); + GuardedIValue guarded37 = $guarded_map_subscript(items_1.getValue(),((IConstructor)us_11)); + items_1.setValue(((IMap)($amap_update(us_11,$amap_add_amap(((IMap)(($is_defined_value(guarded37) ? ((IMap)$get_defined_value(guarded37)) : fresh_2.getValue()))),((IMap)($buildMap(((IConstructor)($RVF.constructor(M_Grammar.Item_item_Production_int, new IValue[]{((IConstructor)p_9), ((IInteger)($aint_add_aint(((IInteger)i_19),((IInteger)$constants.get(0)/*1*/))))}))), ((ITuple)($me.sym2newitem(g_0.getValue(), ((IConstructor)($alist_subscript_int(((IList)($arg1_111)),((IInteger)i_19).intValue()))), ((IInteger)($aint_add_aint(((IInteger)i_19),((IInteger)$constants.get(0)/*1*/))))))))))), ((IMap)(items_1.getValue())))))); + + } + continue FOR36; + + } while(false); + /* void: muCon([]) */break SWITCH28;// succeedSwitch + } + + } + + } + + } while(false); + + } + + } + + + case 25942208: + if(noCaseMatched_$switchVal103){ + noCaseMatched_$switchVal103 = false; + if($isSubtypeOf($switchVal103.getType(),M_ParseTree.ADT_Symbol)){ + /*muExists*/CASE_25942208_0: + do { + if($has_type_and_arity($switchVal103, M_ParseTree.Symbol_iter_Symbol, 1)){ + IValue $arg0_105 = (IValue)($aadt_subscript_int(((IConstructor)($switchVal103)),0)); + if($isComparable($arg0_105.getType(), M_ParseTree.ADT_Symbol)){ + IConstructor elem_12 = ((IConstructor)($arg0_105)); + GuardedIValue guarded30 = $guarded_map_subscript(items_1.getValue(),((IConstructor)us_11)); + items_1.setValue(((IMap)($amap_update(us_11,$amap_add_amap(((IMap)(($is_defined_value(guarded30) ? ((IMap)$get_defined_value(guarded30)) : fresh_2.getValue()))),((IMap)($buildMap(((IConstructor)($RVF.constructor(M_Grammar.Item_item_Production_int, new IValue[]{((IConstructor)p_9), ((IInteger)$constants.get(11)/*0*/)}))), ((ITuple)($me.sym2newitem(g_0.getValue(), ((IConstructor)($arg0_105)), ((IInteger)$constants.get(11)/*0*/)))))))), ((IMap)(items_1.getValue())))))); + break SWITCH28;// succeedSwitch + } + + } + + } while(false); + + } + + } + + + case 882072: + if(noCaseMatched_$switchVal103){ + noCaseMatched_$switchVal103 = false; + if($isSubtypeOf($switchVal103.getType(),M_ParseTree.ADT_Symbol)){ + /*muExists*/CASE_882072_5: + do { + if($has_type_and_arity($switchVal103, M_ParseTree.Symbol_opt_Symbol, 1)){ + IValue $arg0_115 = (IValue)($aadt_subscript_int(((IConstructor)($switchVal103)),0)); + if($isComparable($arg0_115.getType(), M_ParseTree.ADT_Symbol)){ + IConstructor elem_22 = ((IConstructor)($arg0_115)); + GuardedIValue guarded40 = $guarded_map_subscript(items_1.getValue(),((IConstructor)us_11)); + items_1.setValue(((IMap)($amap_update(us_11,$amap_add_amap(((IMap)(($is_defined_value(guarded40) ? ((IMap)$get_defined_value(guarded40)) : fresh_2.getValue()))),((IMap)($buildMap(((IConstructor)($RVF.constructor(M_Grammar.Item_item_Production_int, new IValue[]{((IConstructor)p_9), ((IInteger)$constants.get(11)/*0*/)}))), ((ITuple)($me.sym2newitem(g_0.getValue(), ((IConstructor)($arg0_115)), ((IInteger)$constants.get(11)/*0*/)))))))), ((IMap)(items_1.getValue())))))); + break SWITCH28;// succeedSwitch + } + + } + + } while(false); + + } + + } + + + case 910072: + if(noCaseMatched_$switchVal103){ + noCaseMatched_$switchVal103 = false; + if($isSubtypeOf($switchVal103.getType(),M_ParseTree.ADT_Symbol)){ + /*muExists*/CASE_910072_4: + do { + if($has_type_and_arity($switchVal103, M_ParseTree.Symbol_seq_list_Symbol, 1)){ + IValue $arg0_114 = (IValue)($aadt_subscript_int(((IConstructor)($switchVal103)),0)); + if($isComparable($arg0_114.getType(), $T6)){ + IList elems_20 = ((IList)($arg0_114)); + /*muExists*/FOR38: + do { + FOR38_GEN14983: + for(IValue $elem113_for : ((IList)(M_List.index(((IList)($arg0_114)))))){ + IInteger $elem113 = (IInteger) $elem113_for; + IInteger i_21 = ((IInteger)($elem113)); + GuardedIValue guarded39 = $guarded_map_subscript(items_1.getValue(),((IConstructor)us_11)); + items_1.setValue(((IMap)($amap_update(us_11,$amap_add_amap(((IMap)(($is_defined_value(guarded39) ? ((IMap)$get_defined_value(guarded39)) : fresh_2.getValue()))),((IMap)($buildMap(((IConstructor)($RVF.constructor(M_Grammar.Item_item_Production_int, new IValue[]{((IConstructor)p_9), ((IInteger)($aint_add_aint(((IInteger)i_21),((IInteger)$constants.get(0)/*1*/))))}))), ((ITuple)($me.sym2newitem(g_0.getValue(), ((IConstructor)($alist_subscript_int(((IList)($arg0_114)),((IInteger)i_21).intValue()))), ((IInteger)($aint_add_aint(((IInteger)i_21),((IInteger)$constants.get(0)/*1*/))))))))))), ((IMap)(items_1.getValue())))))); + + } + continue FOR38; + + } while(false); + /* void: muCon([]) */break SWITCH28;// succeedSwitch + } + + } + + } while(false); + + } + + } + + + case 826203960: + if(noCaseMatched_$switchVal103){ + noCaseMatched_$switchVal103 = false; + if($isSubtypeOf($switchVal103.getType(),M_ParseTree.ADT_Symbol)){ + /*muExists*/CASE_826203960_1: + do { + if($has_type_and_arity($switchVal103, M_ParseTree.Symbol_iter_star_Symbol, 1)){ + IValue $arg0_106 = (IValue)($aadt_subscript_int(((IConstructor)($switchVal103)),0)); + if($isComparable($arg0_106.getType(), M_ParseTree.ADT_Symbol)){ + IConstructor elem_13 = ((IConstructor)($arg0_106)); + GuardedIValue guarded31 = $guarded_map_subscript(items_1.getValue(),((IConstructor)us_11)); + items_1.setValue(((IMap)($amap_update(us_11,$amap_add_amap(((IMap)(($is_defined_value(guarded31) ? ((IMap)$get_defined_value(guarded31)) : fresh_2.getValue()))),((IMap)($buildMap(((IConstructor)($RVF.constructor(M_Grammar.Item_item_Production_int, new IValue[]{((IConstructor)p_9), ((IInteger)$constants.get(11)/*0*/)}))), ((ITuple)($me.sym2newitem(g_0.getValue(), ((IConstructor)($arg0_106)), ((IInteger)$constants.get(11)/*0*/)))))))), ((IMap)(items_1.getValue())))))); + break SWITCH28;// succeedSwitch + } + + } + + } while(false); + + } + + } + + + case 773448: + if(noCaseMatched_$switchVal103){ + noCaseMatched_$switchVal103 = false; + if($isSubtypeOf($switchVal103.getType(),M_ParseTree.ADT_Symbol)){ + /*muExists*/CASE_773448_6: + do { + if($has_type_and_arity($switchVal103, M_ParseTree.Symbol_alt_set_Symbol, 1)){ + IValue $arg0_117 = (IValue)($aadt_subscript_int(((IConstructor)($switchVal103)),0)); + if($isComparable($arg0_117.getType(), $T0)){ + ISet alts_23 = ((ISet)($arg0_117)); + /*muExists*/FOR41: + do { + FOR41_GEN15258: + for(IValue $elem116_for : ((ISet)($arg0_117))){ + IConstructor $elem116 = (IConstructor) $elem116_for; + IConstructor elem_24 = ((IConstructor)($elem116)); + GuardedIValue guarded42 = $guarded_map_subscript(items_1.getValue(),((IConstructor)us_11)); + items_1.setValue(((IMap)($amap_update(us_11,$amap_add_amap(((IMap)(($is_defined_value(guarded42) ? ((IMap)$get_defined_value(guarded42)) : fresh_2.getValue()))),((IMap)($buildMap(((IConstructor)($RVF.constructor(M_Grammar.Item_item_Production_int, new IValue[]{((IConstructor)p_9), ((IInteger)$constants.get(11)/*0*/)}))), ((ITuple)($me.sym2newitem(g_0.getValue(), ((IConstructor)elem_24), ((IInteger)$constants.get(11)/*0*/)))))))), ((IMap)(items_1.getValue())))))); + + } + continue FOR41; + + } while(false); + /* void: muCon([]) */break SWITCH28;// succeedSwitch + } + + } + + } while(false); + + } + + } + + + case 1652184736: + if(noCaseMatched_$switchVal103){ + noCaseMatched_$switchVal103 = false; + if($isSubtypeOf($switchVal103.getType(),M_ParseTree.ADT_Symbol)){ + /*muExists*/CASE_1652184736_2: + do { + if($has_type_and_arity($switchVal103, M_ParseTree.Symbol_iter_seps_Symbol_list_Symbol, 2)){ + IValue $arg0_109 = (IValue)($aadt_subscript_int(((IConstructor)($switchVal103)),0)); + if($isComparable($arg0_109.getType(), M_ParseTree.ADT_Symbol)){ + IConstructor elem_14 = ((IConstructor)($arg0_109)); + IValue $arg1_108 = (IValue)($aadt_subscript_int(((IConstructor)($switchVal103)),1)); + if($isComparable($arg1_108.getType(), $T6)){ + IList seps_15 = ((IList)($arg1_108)); + GuardedIValue guarded32 = $guarded_map_subscript(items_1.getValue(),((IConstructor)us_11)); + items_1.setValue(((IMap)($amap_update(us_11,$amap_add_amap(((IMap)(($is_defined_value(guarded32) ? ((IMap)$get_defined_value(guarded32)) : fresh_2.getValue()))),((IMap)($buildMap(((IConstructor)($RVF.constructor(M_Grammar.Item_item_Production_int, new IValue[]{((IConstructor)p_9), ((IInteger)$constants.get(11)/*0*/)}))), ((ITuple)($me.sym2newitem(g_0.getValue(), ((IConstructor)($arg0_109)), ((IInteger)$constants.get(11)/*0*/)))))))), ((IMap)(items_1.getValue())))))); + /*muExists*/FOR33: + do { + FOR33_GEN14523: + for(IValue $elem107_for : ((IList)(M_List.index(((IList)($arg1_108)))))){ + IInteger $elem107 = (IInteger) $elem107_for; + IInteger i_16 = ((IInteger)($elem107)); + GuardedIValue guarded34 = $guarded_map_subscript(items_1.getValue(),((IConstructor)us_11)); + items_1.setValue(((IMap)($amap_update(us_11,$amap_add_amap(((IMap)(($is_defined_value(guarded34) ? ((IMap)$get_defined_value(guarded34)) : fresh_2.getValue()))),((IMap)($buildMap(((IConstructor)($RVF.constructor(M_Grammar.Item_item_Production_int, new IValue[]{((IConstructor)p_9), ((IInteger)($aint_add_aint(((IInteger)i_16),((IInteger)$constants.get(0)/*1*/))))}))), ((ITuple)($me.sym2newitem(g_0.getValue(), ((IConstructor)($alist_subscript_int(((IList)($arg1_108)),((IInteger)i_16).intValue()))), ((IInteger)($aint_add_aint(((IInteger)i_16),((IInteger)$constants.get(0)/*1*/))))))))))), ((IMap)(items_1.getValue())))))); + + } + continue FOR33; + + } while(false); + /* void: muCon([]) */break SWITCH28;// succeedSwitch + } + + } + + } + + } while(false); + + } + + } + + + case 0: + if(noCaseMatched_$switchVal103){ + noCaseMatched_$switchVal103 = false; + + } + + + default: if($isSubtypeOf($switchVal103.getType(),M_ParseTree.ADT_Symbol)){ + /*muExists*/CASE_0_7: + do { + if($has_type_and_arity($switchVal103, M_ParseTree.Symbol_empty_, 0)){ + GuardedIValue guarded29 = $guarded_map_subscript(items_1.getValue(),((IConstructor)us_11)); + final Template $template104 = (Template)new Template($RVF, "new EpsilonStackNode("); + $template104.beginIndent(" "); + $template104.addVal($getkw_Symbol_id(((IConstructor)($arg0_118)))); + $template104.endIndent(" "); + $template104.addStr(", 0)"); + items_1.setValue(((IMap)($amap_update(us_11,$amap_add_amap(((IMap)(($is_defined_value(guarded29) ? ((IMap)$get_defined_value(guarded29)) : fresh_2.getValue()))),((IMap)($buildMap(((IConstructor)($RVF.constructor(M_Grammar.Item_item_Production_int, new IValue[]{((IConstructor)p_9), ((IInteger)$constants.get(15)/*-1*/)}))), ((ITuple)($RVF.tuple(((IString)($template104.close())), ((IInteger)($getkw_Symbol_id(((IConstructor)($arg0_118)))))))))))), ((IMap)(items_1.getValue())))))); + break SWITCH28;// succeedSwitch + } + + } while(false); + + } + + } + + $traversalState.setMatched(true); + break VISIT23; + } + + } + + } while(false); + + } + + + case 110389984: + if($isSubtypeOf($VISIT23_subject.getType(),M_ParseTree.ADT_Production)){ + /*muExists*/CASE_110389984_0: + do { + if($has_type_and_arity($VISIT23_subject, M_ParseTree.Production_prod_Symbol_list_Symbol_set_Attr, 3)){ + IValue $arg0_97 = (IValue)($aadt_subscript_int(((IConstructor)($VISIT23_subject)),0)); + if($isComparable($arg0_97.getType(), M_ParseTree.ADT_Symbol)){ + IConstructor s_4 = ((IConstructor)($arg0_97)); + IValue $arg1_96 = (IValue)($aadt_subscript_int(((IConstructor)($VISIT23_subject)),1)); + if($isComparable($arg1_96.getType(), $T28)){ + if($arg1_96.equals(((IList)$constants.get(22)/*[]*/))){ + IValue $arg2_95 = (IValue)($aadt_subscript_int(((IConstructor)($VISIT23_subject)),2)); + if($isComparable($arg2_95.getType(), $T1)){ + IConstructor p_3 = ((IConstructor)($VISIT23_subject)); + GuardedIValue guarded24 = $guarded_map_subscript(items_1.getValue(),((IConstructor)($me.getType(((IConstructor)($arg0_97)))))); + final Template $template94 = (Template)new Template($RVF, "new EpsilonStackNode("); + $template94.beginIndent(" "); + $template94.addVal($getkw_Symbol_id(((IConstructor)($arg0_97)))); + $template94.endIndent(" "); + $template94.addStr(", 0)"); + items_1.setValue(((IMap)($amap_update($me.getType(((IConstructor)($arg0_97))),$amap_add_amap(((IMap)(($is_defined_value(guarded24) ? ((IMap)$get_defined_value(guarded24)) : fresh_2.getValue()))),((IMap)($buildMap(((IConstructor)($RVF.constructor(M_Grammar.Item_item_Production_int, new IValue[]{((IConstructor)(lang_rascal_grammar_ParserGenerator_generateNewItems$2a1734bec0bd57ea_cl(((IConstructor)p_3)))), ((IInteger)$constants.get(15)/*-1*/)}))), ((ITuple)($RVF.tuple(((IString)($template94.close())), ((IInteger)($getkw_Symbol_id(((IConstructor)($arg0_97)))))))))))), ((IMap)(items_1.getValue())))))); + $traversalState.setMatched(true); + break VISIT23; + } + + } + + } + + } + + } + + } while(false); + + } + if($isSubtypeOf($VISIT23_subject.getType(),M_ParseTree.ADT_Production)){ + /*muExists*/CASE_110389984_1: + do { + if($has_type_and_arity($VISIT23_subject, M_ParseTree.Production_prod_Symbol_list_Symbol_set_Attr, 3)){ + IValue $arg0_101 = (IValue)($aadt_subscript_int(((IConstructor)($VISIT23_subject)),0)); + if($isComparable($arg0_101.getType(), M_ParseTree.ADT_Symbol)){ + IConstructor s_6 = ((IConstructor)($arg0_101)); + IValue $arg1_100 = (IValue)($aadt_subscript_int(((IConstructor)($VISIT23_subject)),1)); + if($isComparable($arg1_100.getType(), $T6)){ + IList lhs_7 = ((IList)($arg1_100)); + IValue $arg2_99 = (IValue)($aadt_subscript_int(((IConstructor)($VISIT23_subject)),2)); + if($isComparable($arg2_99.getType(), $T1)){ + IConstructor p_5 = ((IConstructor)($VISIT23_subject)); + /*muExists*/FOR25: + do { + FOR25_GEN13878: + for(IValue $elem98_for : ((IList)(M_List.index(((IList)($arg1_100)))))){ + IInteger $elem98 = (IInteger) $elem98_for; + IInteger i_8 = ((IInteger)($elem98)); + GuardedIValue guarded26 = $guarded_map_subscript(items_1.getValue(),((IConstructor)($me.getType(((IConstructor)($arg0_101)))))); + items_1.setValue(((IMap)($amap_update($me.getType(((IConstructor)($arg0_101))),$amap_add_amap(((IMap)(($is_defined_value(guarded26) ? ((IMap)$get_defined_value(guarded26)) : fresh_2.getValue()))),((IMap)($buildMap(((IConstructor)($RVF.constructor(M_Grammar.Item_item_Production_int, new IValue[]{((IConstructor)(lang_rascal_grammar_ParserGenerator_generateNewItems$2a1734bec0bd57ea_cl(((IConstructor)p_5)))), ((IInteger)i_8)}))), ((ITuple)($me.sym2newitem(g_0.getValue(), ((IConstructor)($alist_subscript_int(((IList)($arg1_100)),((IInteger)i_8).intValue()))), ((IInteger)i_8)))))))), ((IMap)(items_1.getValue())))))); + + } + continue FOR25; + + } while(false); + /* void: muCon([]) */$traversalState.setMatched(true); + break VISIT23; + } + + } + + } + + } + + } while(false); + + } + + + + } + return $VISIT23_subject; + });return items_1.getValue(); + + } catch (ReturnFromTraversalException e) { + return (IMap) e.getValue(); + } + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/lang/rascal/grammar/ParserGenerator.rsc|(15537,166,<346,0>,<353,1>) + public IString lang_rascal_grammar_ParserGenerator_split$452f305967b0884c(IString x_0){ + + + if((((IBool)($aint_lessequal_aint(((IInteger)(M_String.size(((IString)x_0)))),((IInteger)$constants.get(23)/*20000*/))))).getValue()){ + final Template $template120 = (Template)new Template($RVF, "\""); + $template120.beginIndent(" "); + $template120.addStr(((IString)($me.esc(((IString)x_0)))).getValue()); + $template120.endIndent(" "); + $template120.addStr("\""); + return ((IString)($template120.close())); + + } else { + final Template $template119 = (Template)new Template($RVF, ""); + $template119.addStr(((IString)($me.split(((IString)(M_String.substring(((IString)x_0), ((IInteger)$constants.get(11)/*0*/), ((IInteger)$constants.get(24)/*10000*/))))))).getValue()); + $template119.addStr(", "); + $template119.beginIndent(" "); + $template119.addStr(((IString)($me.split(((IString)(M_String.substring(((IString)x_0), ((IInteger)$constants.get(24)/*10000*/))))))).getValue()); + $template119.endIndent(" "); + return ((IString)($template119.close())); + + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/lang/rascal/grammar/ParserGenerator.rsc|(15705,549,<355,0>,<368,1>) + public IBool lang_rascal_grammar_ParserGenerator_isNonterminal$ae0c546df6bca290(IConstructor s_0){ + + + final IConstructor $switchVal121 = ((IConstructor)s_0); + boolean noCaseMatched_$switchVal121 = true; + SWITCH44: switch(Fingerprint.getFingerprint($switchVal121)){ + + case 1643638592: + if(noCaseMatched_$switchVal121){ + noCaseMatched_$switchVal121 = false; + if($isSubtypeOf($switchVal121.getType(),M_ParseTree.ADT_Symbol)){ + /*muExists*/CASE_1643638592_0: + do { + if($has_type_and_arity($switchVal121, M_Type.Symbol_label_str_Symbol, 2)){ + IValue $arg0_123 = (IValue)($aadt_subscript_int(((IConstructor)($switchVal121)),0)); + if($isComparable($arg0_123.getType(), $T1)){ + IValue $arg1_122 = (IValue)($aadt_subscript_int(((IConstructor)($switchVal121)),1)); + if($isComparable($arg1_122.getType(), M_ParseTree.ADT_Symbol)){ + IConstructor x_1 = ((IConstructor)($arg1_122)); + return ((IBool)($me.isNonterminal(((IConstructor)($arg1_122))))); + + } + + } + + } + + } while(false); + + } + + } + + + case 1444258592: + if(noCaseMatched_$switchVal121){ + noCaseMatched_$switchVal121 = false; + if($isSubtypeOf($switchVal121.getType(),M_ParseTree.ADT_Symbol)){ + /*muExists*/CASE_1444258592_4: + do { + if($has_type_and_arity($switchVal121, M_ParseTree.Symbol_parameterized_sort_str_list_Symbol, 2)){ + IValue $arg0_128 = (IValue)($aadt_subscript_int(((IConstructor)($switchVal121)),0)); + if($isComparable($arg0_128.getType(), $T1)){ + IValue $arg1_127 = (IValue)($aadt_subscript_int(((IConstructor)($switchVal121)),1)); + if($isComparable($arg1_127.getType(), $T1)){ + return ((IBool)$constants.get(7)/*true*/); + + } + + } + + } + + } while(false); + + } + + } + + + case -109773488: + if(noCaseMatched_$switchVal121){ + noCaseMatched_$switchVal121 = false; + if($isSubtypeOf($switchVal121.getType(),M_ParseTree.ADT_Symbol)){ + /*muExists*/CASE_109773488_3: + do { + if($has_type_and_arity($switchVal121, M_ParseTree.Symbol_keywords_str, 1)){ + IValue $arg0_126 = (IValue)($aadt_subscript_int(((IConstructor)($switchVal121)),0)); + if($isComparable($arg0_126.getType(), $T1)){ + return ((IBool)$constants.get(7)/*true*/); + + } + + } + + } while(false); + + } + + } + + + case 878060304: + if(noCaseMatched_$switchVal121){ + noCaseMatched_$switchVal121 = false; + if($isSubtypeOf($switchVal121.getType(),M_ParseTree.ADT_Symbol)){ + /*muExists*/CASE_878060304_6: + do { + if($has_type_and_arity($switchVal121, M_ParseTree.Symbol_start_Symbol, 1)){ + IValue $arg0_131 = (IValue)($aadt_subscript_int(((IConstructor)($switchVal121)),0)); + if($isComparable($arg0_131.getType(), $T1)){ + return ((IBool)$constants.get(7)/*true*/); + + } + + } + + } while(false); + + } + + } + + + case 856312: + if(noCaseMatched_$switchVal121){ + noCaseMatched_$switchVal121 = false; + if($isSubtypeOf($switchVal121.getType(),M_ParseTree.ADT_Symbol)){ + /*muExists*/CASE_856312_2: + do { + if($has_type_and_arity($switchVal121, M_ParseTree.Symbol_lex_str, 1)){ + IValue $arg0_125 = (IValue)($aadt_subscript_int(((IConstructor)($switchVal121)),0)); + if($isComparable($arg0_125.getType(), $T1)){ + return ((IBool)$constants.get(7)/*true*/); + + } + + } + + } while(false); + + } + + } + + + case 1154855088: + if(noCaseMatched_$switchVal121){ + noCaseMatched_$switchVal121 = false; + if($isSubtypeOf($switchVal121.getType(),M_ParseTree.ADT_Symbol)){ + /*muExists*/CASE_1154855088_5: + do { + if($has_type_and_arity($switchVal121, M_ParseTree.Symbol_parameterized_lex_str_list_Symbol, 2)){ + IValue $arg0_130 = (IValue)($aadt_subscript_int(((IConstructor)($switchVal121)),0)); + if($isComparable($arg0_130.getType(), $T1)){ + IValue $arg1_129 = (IValue)($aadt_subscript_int(((IConstructor)($switchVal121)),1)); + if($isComparable($arg1_129.getType(), $T1)){ + return ((IBool)$constants.get(7)/*true*/); + + } + + } + + } + + } while(false); + + } + + } + + + case 28290288: + if(noCaseMatched_$switchVal121){ + noCaseMatched_$switchVal121 = false; + if($isSubtypeOf($switchVal121.getType(),M_ParseTree.ADT_Symbol)){ + /*muExists*/CASE_28290288_1: + do { + if($has_type_and_arity($switchVal121, M_ParseTree.Symbol_sort_str, 1)){ + IValue $arg0_124 = (IValue)($aadt_subscript_int(((IConstructor)($switchVal121)),0)); + if($isComparable($arg0_124.getType(), $T1)){ + return ((IBool)$constants.get(7)/*true*/); + + } + + } + + } while(false); + + } + + } + + + case -333228984: + if(noCaseMatched_$switchVal121){ + noCaseMatched_$switchVal121 = false; + if($isSubtypeOf($switchVal121.getType(),M_ParseTree.ADT_Symbol)){ + /*muExists*/CASE_333228984_7: + do { + if($has_type_and_arity($switchVal121, M_ParseTree.Symbol_layouts_str, 1)){ + IValue $arg0_132 = (IValue)($aadt_subscript_int(((IConstructor)($switchVal121)),0)); + if($isComparable($arg0_132.getType(), $T1)){ + return ((IBool)$constants.get(7)/*true*/); + + } + + } + + } while(false); + + } + + } + + + default: return ((IBool)$constants.get(6)/*false*/); + } + + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/lang/rascal/grammar/ParserGenerator.rsc|(16256,192,<370,0>,<374,1>) + public IString lang_rascal_grammar_ParserGenerator_generateParseMethod$c163c6517d408211(IMap $__0, IConstructor p_0){ + + + final Template $template133 = (Template)new Template($RVF, "public AbstractStackNode[] "); + $template133.beginIndent(" "); + $template133.addStr(((IString)($me.sym2name(((IConstructor)(((IConstructor)($aadt_get_field(((IConstructor)p_0), "def")))))))).getValue()); + $template133.endIndent(" "); + $template133.addStr("() {\n return "); + $template133.beginIndent(" "); + $template133.addStr(((IString)($me.sym2name(((IConstructor)(((IConstructor)($aadt_get_field(((IConstructor)p_0), "def")))))))).getValue()); + $template133.endIndent(" "); + $template133.addStr(".EXPECTS;\n}"); + return ((IString)($template133.close())); + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/lang/rascal/grammar/ParserGenerator.rsc|(16450,476,<376,0>,<388,1>) + public IString lang_rascal_grammar_ParserGenerator_generateClassConditional$31ecade9ec2e3a26(ISet classes_0){ + + + if((((IBool)($RVF.bool(((ISet)classes_0).contains(((IConstructor)($RVF.constructor(M_lang_rascal_grammar_Lookahead.Symbol_eoi_, new IValue[]{}, Util.kwpMap())))))))).getValue()){ + IString $reducer145 = (IString)(((IString)$constants.get(25)/*"lookAheadChar == 0"*/)); + /*muExists*/$REDUCER144_GEN16629_CONS_char_class: + do { + $REDUCER144_GEN16629: + for(IValue $elem148_for : ((ISet)classes_0)){ + IConstructor $elem148 = (IConstructor) $elem148_for; + if($has_type_and_arity($elem148, M_ParseTree.Symbol_char_class_list_CharRange, 1)){ + IValue $arg0_149 = (IValue)($aadt_subscript_int(((IConstructor)($elem148)),0)); + if($isComparable($arg0_149.getType(), $T11)){ + if(true){ + IList ranges_2 = ((IList)($arg0_149)); + $REDUCER144_GEN16629_CONS_char_class_GEN16677: + for(IValue $elem147_for : ((IList)($arg0_149))){ + IConstructor $elem147 = (IConstructor) $elem147_for; + IConstructor r_3 = ((IConstructor)($elem147)); + final Template $template146 = (Template)new Template($RVF, " || "); + $template146.beginIndent(" "); + $template146.addStr(((IString)($me.generateRangeConditional(((IConstructor)r_3)))).getValue()); + $template146.endIndent(" "); + $reducer145 = ((IString)($astr_add_astr(((IString)($reducer145)),((IString)($template146.close()))))); + + } + continue $REDUCER144_GEN16629; + + } else { + continue $REDUCER144_GEN16629; + } + } else { + continue $REDUCER144_GEN16629; + } + } else { + continue $REDUCER144_GEN16629; + } + } + + + } while(false); + return ((IString)($reducer145)); + + } else { + final IListWriter $listwriter134 = (IListWriter)$RVF.listWriter(); + /*muExists*/$LCOMP135_GEN16722_CONS_char_class: + do { + $LCOMP135_GEN16722: + for(IValue $elem137_for : ((ISet)classes_0)){ + IConstructor $elem137 = (IConstructor) $elem137_for; + if($has_type_and_arity($elem137, M_ParseTree.Symbol_char_class_list_CharRange, 1)){ + IValue $arg0_138 = (IValue)($aadt_subscript_int(((IConstructor)($elem137)),0)); + if($isComparable($arg0_138.getType(), $T11)){ + if(true){ + IList ranges_5 = null; + $LCOMP135_GEN16722_CONS_char_class_GEN16770: + for(IValue $elem136_for : ((IList)($arg0_138))){ + IConstructor $elem136 = (IConstructor) $elem136_for; + IConstructor r_6 = null; + $listwriter134.append($elem136); + + } + continue $LCOMP135_GEN16722; + + } else { + continue $LCOMP135_GEN16722; + } + } else { + continue $LCOMP135_GEN16722; + } + } else { + continue $LCOMP135_GEN16722; + } + } + + + } while(false); + IList ranges_4 = ((IList)($listwriter134.done())); + final Template $template141 = (Template)new Template($RVF, ""); + $template141.addStr(((IString)($me.generateRangeConditional(((IConstructor)(M_List.head(((IList)ranges_4))))))).getValue()); + IString $reducer140 = (IString)($template141.close()); + $REDUCER139_GEN16900: + for(IValue $elem143_for : ((IList)(M_List.tail(((IList)ranges_4))))){ + IConstructor $elem143 = (IConstructor) $elem143_for; + IConstructor r_8 = ((IConstructor)($elem143)); + final Template $template142 = (Template)new Template($RVF, " || "); + $template142.beginIndent(" "); + $template142.addStr(((IString)($me.generateRangeConditional(((IConstructor)r_8)))).getValue()); + $template142.endIndent(" "); + $template142.addStr(" "); + $reducer140 = ((IString)($astr_add_astr(((IString)($reducer140)),((IString)($template142.close()))))); + + } + + return ((IString)($reducer140)); + + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/lang/rascal/grammar/ParserGenerator.rsc|(16928,315,<390,0>,<397,1>) + public IString lang_rascal_grammar_ParserGenerator_generateRangeConditional$f80249e131b2a443(IConstructor r_0){ + + + final IConstructor $switchVal150 = ((IConstructor)r_0); + boolean noCaseMatched_$switchVal150 = true; + SWITCH46: switch(Fingerprint.getFingerprint($switchVal150)){ + + case 1732482000: + if(noCaseMatched_$switchVal150){ + noCaseMatched_$switchVal150 = false; + if($isSubtypeOf($switchVal150.getType(),M_ParseTree.ADT_CharRange)){ + /*muExists*/CASE_1732482000_0: + do { + if($has_type_and_arity($switchVal150, M_ParseTree.CharRange_range_int_int, 2)){ + IValue $arg0_153 = (IValue)($aadt_subscript_int(((IConstructor)($switchVal150)),0)); + if($isComparable($arg0_153.getType(), $T7)){ + if(((IInteger)$constants.get(11)/*0*/).equals($arg0_153)){ + IValue $arg1_152 = (IValue)($aadt_subscript_int(((IConstructor)($switchVal150)),1)); + if($isComparable($arg1_152.getType(), $T7)){ + if(((IInteger)$constants.get(26)/*1048575*/).equals($arg1_152)){ + return ((IString)$constants.get(27)/*"(true /*every char*\/)"*/); + + } + + } + + } + + } + + } + + } while(false); + + } + if($isSubtypeOf($switchVal150.getType(),M_ParseTree.ADT_CharRange)){ + /*muExists*/CASE_1732482000_1: + do { + if($has_type_and_arity($switchVal150, M_ParseTree.CharRange_range_int_int, 2)){ + IValue $arg0_156 = (IValue)($aadt_subscript_int(((IConstructor)($switchVal150)),0)); + if($isComparable($arg0_156.getType(), $T7)){ + IInteger i_1 = null; + IValue $arg1_155 = (IValue)($aadt_subscript_int(((IConstructor)($switchVal150)),1)); + if($isComparable($arg1_155.getType(), $T7)){ + if(($arg0_156 != null)){ + if($arg0_156.match($arg1_155)){ + final Template $template154 = (Template)new Template($RVF, "(lookAheadChar == "); + $template154.beginIndent(" "); + $template154.addVal($arg1_155); + $template154.endIndent(" "); + $template154.addStr(")"); + return ((IString)($template154.close())); + + } + + } else { + $arg0_156 = ((IValue)($arg1_155)); + final Template $template154 = (Template)new Template($RVF, "(lookAheadChar == "); + $template154.beginIndent(" "); + $template154.addVal($arg1_155); + $template154.endIndent(" "); + $template154.addStr(")"); + return ((IString)($template154.close())); + + } + } + + } + + } + + } while(false); + + } + if($isSubtypeOf($switchVal150.getType(),M_ParseTree.ADT_CharRange)){ + /*muExists*/CASE_1732482000_2: + do { + if($has_type_and_arity($switchVal150, M_ParseTree.CharRange_range_int_int, 2)){ + IValue $arg0_159 = (IValue)($aadt_subscript_int(((IConstructor)($switchVal150)),0)); + if($isComparable($arg0_159.getType(), $T7)){ + IInteger i_2 = null; + IValue $arg1_158 = (IValue)($aadt_subscript_int(((IConstructor)($switchVal150)),1)); + if($isComparable($arg1_158.getType(), $T7)){ + IInteger j_3 = null; + final Template $template157 = (Template)new Template($RVF, "((lookAheadChar >= "); + $template157.beginIndent(" "); + $template157.addVal($arg0_159); + $template157.endIndent(" "); + $template157.addStr(") && (lookAheadChar <= "); + $template157.beginIndent(" "); + $template157.addVal($arg1_158); + $template157.endIndent(" "); + $template157.addStr("))"); + return ((IString)($template157.close())); + + } + + } + + } + + } while(false); + + } + + } + + + default: final Template $template151 = (Template)new Template($RVF, "unexpected range type: "); + $template151.beginIndent(" "); + $template151.addVal(r_0); + $template151.endIndent(" "); + + throw new Throw($template151.close()); + } + + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/lang/rascal/grammar/ParserGenerator.rsc|(17245,257,<399,0>,<405,1>) + public IString lang_rascal_grammar_ParserGenerator_generateSeparatorExpects$ffd9aa0c2930f956(IConstructor grammar_0, IList seps_1){ + + + if((((IBool)($equal(((IList)seps_1), ((IList)$constants.get(22)/*[]*/))))).getValue()){ + return ((IString)$constants.get(28)/*""*/); + + } + IString $reducer161 = (IString)($atuple_field_project((ITuple)((ITuple)($me.sym2newitem(((IConstructor)grammar_0), ((IConstructor)(M_List.head(((IList)seps_1)))), ((IInteger)$constants.get(0)/*1*/)))), ((IInteger)$constants.get(11)/*0*/))); + $REDUCER160_GEN17472: + for(IValue $elem163_for : ((IList)(M_List.index(((IList)(M_List.tail(((IList)seps_1)))))))){ + IInteger $elem163 = (IInteger) $elem163_for; + IInteger i_3 = ((IInteger)($elem163)); + final Template $template162 = (Template)new Template($RVF, ", "); + $template162.beginIndent(" "); + $template162.addStr(((IString)($atuple_field_project((ITuple)((ITuple)($me.sym2newitem(((IConstructor)grammar_0), ((IConstructor)($alist_subscript_int(((IList)seps_1),((IInteger)($aint_add_aint(((IInteger)i_3),((IInteger)$constants.get(0)/*1*/)))).intValue()))), ((IInteger)($aint_add_aint(((IInteger)i_3),((IInteger)$constants.get(29)/*2*/))))))), ((IInteger)$constants.get(11)/*0*/)))).getValue()); + $template162.endIndent(" "); + $reducer161 = ((IString)($astr_add_astr(((IString)($reducer161)),((IString)($template162.close()))))); + + } + + return ((IString)($reducer161)); + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/lang/rascal/grammar/ParserGenerator.rsc|(17504,256,<407,0>,<413,1>) + public IString lang_rascal_grammar_ParserGenerator_generateSequenceExpects$6e68a18132b0b513(IConstructor grammar_0, IList seps_1){ + + + if((((IBool)($equal(((IList)seps_1), ((IList)$constants.get(22)/*[]*/))))).getValue()){ + return ((IString)$constants.get(28)/*""*/); + + } + IString $reducer165 = (IString)($atuple_field_project((ITuple)((ITuple)($me.sym2newitem(((IConstructor)grammar_0), ((IConstructor)(M_List.head(((IList)seps_1)))), ((IInteger)$constants.get(11)/*0*/)))), ((IInteger)$constants.get(11)/*0*/))); + $REDUCER164_GEN17730: + for(IValue $elem167_for : ((IList)(M_List.index(((IList)(M_List.tail(((IList)seps_1)))))))){ + IInteger $elem167 = (IInteger) $elem167_for; + IInteger i_3 = ((IInteger)($elem167)); + final Template $template166 = (Template)new Template($RVF, ", "); + $template166.beginIndent(" "); + $template166.addStr(((IString)($atuple_field_project((ITuple)((ITuple)($me.sym2newitem(((IConstructor)grammar_0), ((IConstructor)($alist_subscript_int(((IList)seps_1),((IInteger)($aint_add_aint(((IInteger)i_3),((IInteger)$constants.get(0)/*1*/)))).intValue()))), ((IInteger)($aint_add_aint(((IInteger)i_3),((IInteger)$constants.get(0)/*1*/))))))), ((IInteger)$constants.get(11)/*0*/)))).getValue()); + $template166.endIndent(" "); + $reducer165 = ((IString)($astr_add_astr(((IString)($reducer165)),((IString)($template166.close()))))); + + } + + return ((IString)($reducer165)); + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/lang/rascal/grammar/ParserGenerator.rsc|(17762,249,<415,0>,<421,1>) + public IString lang_rascal_grammar_ParserGenerator_generateAltExpects$a62b47034d27d427(IConstructor grammar_0, IList seps_1){ + + + if((((IBool)($equal(((IList)seps_1), ((IList)$constants.get(22)/*[]*/))))).getValue()){ + return ((IString)$constants.get(28)/*""*/); + + } + IString $reducer169 = (IString)($atuple_field_project((ITuple)((ITuple)($me.sym2newitem(((IConstructor)grammar_0), ((IConstructor)(M_List.head(((IList)seps_1)))), ((IInteger)$constants.get(11)/*0*/)))), ((IInteger)$constants.get(11)/*0*/))); + $REDUCER168_GEN17981: + for(IValue $elem171_for : ((IList)(M_List.index(((IList)(M_List.tail(((IList)seps_1)))))))){ + IInteger $elem171 = (IInteger) $elem171_for; + IInteger i_3 = ((IInteger)($elem171)); + final Template $template170 = (Template)new Template($RVF, ", "); + $template170.beginIndent(" "); + $template170.addStr(((IString)($atuple_field_project((ITuple)((ITuple)($me.sym2newitem(((IConstructor)grammar_0), ((IConstructor)($alist_subscript_int(((IList)seps_1),((IInteger)($aint_add_aint(((IInteger)i_3),((IInteger)$constants.get(0)/*1*/)))).intValue()))), ((IInteger)$constants.get(11)/*0*/)))), ((IInteger)$constants.get(11)/*0*/)))).getValue()); + $template170.endIndent(" "); + $reducer169 = ((IString)($astr_add_astr(((IString)($reducer169)),((IString)($template170.close()))))); + + } + + return ((IString)($reducer169)); + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/lang/rascal/grammar/ParserGenerator.rsc|(18013,263,<423,0>,<435,1>) + public IString lang_rascal_grammar_ParserGenerator_literals2ints$e5702b42d5b21efa(IList chars_0){ + + + if((((IBool)($equal(((IList)chars_0), ((IList)$constants.get(22)/*[]*/))))).getValue()){ + return ((IString)$constants.get(28)/*""*/); + + } + final Template $template172 = (Template)new Template($RVF, ""); + $template172.addVal(((IInteger)($aadt_get_field(((IConstructor)(M_List.head(((IList)(((IList)($aadt_get_field(((IConstructor)(M_List.head(((IList)chars_0)))), "ranges")))))))), "begin")))); + IString result_1 = ((IString)($template172.close())); + /*muExists*/FOR51: + do { + FOR51_GEN18178: + for(IValue $elem174_for : ((IList)(M_List.tail(((IList)chars_0))))){ + IConstructor $elem174 = (IConstructor) $elem174_for; + IConstructor ch_2 = null; + final Template $template173 = (Template)new Template($RVF, ","); + $template173.beginIndent(" "); + $template173.addVal(((IInteger)($aadt_get_field(((IConstructor)(M_List.head(((IList)(((IList)($aadt_get_field(((IConstructor)($elem174)), "ranges")))))))), "begin")))); + $template173.endIndent(" "); + result_1 = ((IString)($astr_add_astr(((IString)result_1),((IString)($template173.close()))))); + + } + continue FOR51; + + } while(false); + /* void: muCon([]) */return ((IString)result_1); + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/lang/rascal/grammar/ParserGenerator.rsc|(18278,440,<437,0>,<454,1>) + public IString lang_rascal_grammar_ParserGenerator_ciliterals2ints$ea715e0e62cedd32(IList chars_0){ + + + if((((IBool)($equal(((IList)chars_0), ((IList)$constants.get(22)/*[]*/))))).getValue()){ + return ((IString)$constants.get(28)/*""*/); + + } + IString result_1 = ((IString)$constants.get(28)/*""*/); + /*muExists*/FOR53: + do { + /*muExists*/FOR53_GEN18401_CONS_char_class: + do { + FOR53_GEN18401: + for(IValue $elem189_for : ((IList)chars_0)){ + IConstructor $elem189 = (IConstructor) $elem189_for; + if($has_type_and_arity($elem189, M_ParseTree.Symbol_char_class_list_CharRange, 1)){ + IValue $arg0_190 = (IValue)($aadt_subscript_int(((IConstructor)($elem189)),0)); + if($isComparable($arg0_190.getType(), $T11)){ + IList ranges_2 = null; + final IList $switchVal175 = ((IList)($arg0_190)); + boolean noCaseMatched_$switchVal175 = true; + SWITCH54: switch(Fingerprint.getFingerprint($switchVal175)){ + + case 3322014: + if(noCaseMatched_$switchVal175){ + noCaseMatched_$switchVal175 = false; + if($isSubtypeOf($switchVal175.getType(),$T11)){ + /*muExists*/CASE_3322014_0: + do { + final IList $subject177 = ((IList)($switchVal175)); + int $subject177_cursor = 0; + if($isSubtypeOf($subject177.getType(),$T11)){ + final int $subject177_len = (int)((IList)($subject177)).length(); + if($subject177_len == 1){ + final IConstructor $subject178 = ((IConstructor)($alist_subscript_int(((IList)($subject177)),$subject177_cursor))); + if($has_type_and_arity($subject178, M_ParseTree.CharRange_range_int_int, 2)){ + IValue $arg0_180 = (IValue)($aadt_subscript_int(((IConstructor)($subject178)),0)); + if($isComparable($arg0_180.getType(), $T7)){ + IInteger i_3 = null; + IValue $arg1_179 = (IValue)($aadt_subscript_int(((IConstructor)($subject178)),1)); + if($isComparable($arg1_179.getType(), $T7)){ + IInteger j_4 = null; + $subject177_cursor += 1; + if($subject177_cursor == $subject177_len){ + final Template $template176 = (Template)new Template($RVF, "{"); + $template176.beginIndent(" "); + $template176.addVal($arg0_180); + $template176.endIndent(" "); + $template176.addStr(", "); + $template176.beginIndent(" "); + $template176.addVal($arg1_179); + $template176.endIndent(" "); + $template176.addStr("},"); + result_1 = ((IString)($astr_add_astr(((IString)result_1),((IString)($template176.close()))))); + break SWITCH54;// succeedSwitch + } else { + continue CASE_3322014_0;/*list match1*/ + } + } + + } + + } + + } + + } + + } while(false); + + } + if($isSubtypeOf($switchVal175.getType(),$T11)){ + /*muExists*/CASE_3322014_1: + do { + final IList $subject182 = ((IList)($switchVal175)); + int $subject182_cursor = 0; + if($isSubtypeOf($subject182.getType(),$T11)){ + final int $subject182_len = (int)((IList)($subject182)).length(); + if($subject182_len == 2){ + final IConstructor $subject186 = ((IConstructor)($alist_subscript_int(((IList)($subject182)),$subject182_cursor))); + if($has_type_and_arity($subject186, M_ParseTree.CharRange_range_int_int, 2)){ + IValue $arg0_188 = (IValue)($aadt_subscript_int(((IConstructor)($subject186)),0)); + if($isComparable($arg0_188.getType(), $T7)){ + IInteger i_5 = null; + IValue $arg1_187 = (IValue)($aadt_subscript_int(((IConstructor)($subject186)),1)); + if($isComparable($arg1_187.getType(), $T7)){ + if(($arg0_188 != null)){ + if($arg0_188.match($arg1_187)){ + $subject182_cursor += 1; + final IConstructor $subject183 = ((IConstructor)($alist_subscript_int(((IList)($subject182)),$subject182_cursor))); + if($has_type_and_arity($subject183, M_ParseTree.CharRange_range_int_int, 2)){ + IValue $arg0_185 = (IValue)($aadt_subscript_int(((IConstructor)($subject183)),0)); + if($isComparable($arg0_185.getType(), $T7)){ + IInteger j_6 = null; + IValue $arg1_184 = (IValue)($aadt_subscript_int(((IConstructor)($subject183)),1)); + if($isComparable($arg1_184.getType(), $T7)){ + if(($arg0_185 != null)){ + if($arg0_185.match($arg1_184)){ + $subject182_cursor += 1; + if($subject182_cursor == $subject182_len){ + final Template $template181 = (Template)new Template($RVF, "{"); + $template181.beginIndent(" "); + $template181.addVal($arg1_187); + $template181.endIndent(" "); + $template181.addStr(", "); + $template181.beginIndent(" "); + $template181.addVal($arg1_184); + $template181.endIndent(" "); + $template181.addStr("},"); + result_1 = ((IString)($astr_add_astr(((IString)result_1),((IString)($template181.close()))))); + break SWITCH54;// succeedSwitch + } else { + continue CASE_3322014_1;/*list match1*/ + } + } + + } else { + $arg0_185 = ((IValue)($arg1_184)); + $subject182_cursor += 1; + if($subject182_cursor == $subject182_len){ + final Template $template181 = (Template)new Template($RVF, "{"); + $template181.beginIndent(" "); + $template181.addVal($arg1_187); + $template181.endIndent(" "); + $template181.addStr(", "); + $template181.beginIndent(" "); + $template181.addVal($arg1_184); + $template181.endIndent(" "); + $template181.addStr("},"); + result_1 = ((IString)($astr_add_astr(((IString)result_1),((IString)($template181.close()))))); + break SWITCH54;// succeedSwitch + } else { + continue CASE_3322014_1;/*list match1*/ + } + } + } + + } + + } + + } + + } else { + $arg0_188 = ((IValue)($arg1_187)); + $subject182_cursor += 1; + final IConstructor $subject183 = ((IConstructor)($alist_subscript_int(((IList)($subject182)),$subject182_cursor))); + if($has_type_and_arity($subject183, M_ParseTree.CharRange_range_int_int, 2)){ + IValue $arg0_185 = (IValue)($aadt_subscript_int(((IConstructor)($subject183)),0)); + if($isComparable($arg0_185.getType(), $T7)){ + IInteger j_6 = null; + IValue $arg1_184 = (IValue)($aadt_subscript_int(((IConstructor)($subject183)),1)); + if($isComparable($arg1_184.getType(), $T7)){ + if(($arg0_185 != null)){ + if($arg0_185.match($arg1_184)){ + $subject182_cursor += 1; + if($subject182_cursor == $subject182_len){ + final Template $template181 = (Template)new Template($RVF, "{"); + $template181.beginIndent(" "); + $template181.addVal($arg1_187); + $template181.endIndent(" "); + $template181.addStr(", "); + $template181.beginIndent(" "); + $template181.addVal($arg1_184); + $template181.endIndent(" "); + $template181.addStr("},"); + result_1 = ((IString)($astr_add_astr(((IString)result_1),((IString)($template181.close()))))); + break SWITCH54;// succeedSwitch + } else { + continue CASE_3322014_1;/*list match1*/ + } + } + + } else { + $arg0_185 = ((IValue)($arg1_184)); + $subject182_cursor += 1; + if($subject182_cursor == $subject182_len){ + final Template $template181 = (Template)new Template($RVF, "{"); + $template181.beginIndent(" "); + $template181.addVal($arg1_187); + $template181.endIndent(" "); + $template181.addStr(", "); + $template181.beginIndent(" "); + $template181.addVal($arg1_184); + $template181.endIndent(" "); + $template181.addStr("},"); + result_1 = ((IString)($astr_add_astr(((IString)result_1),((IString)($template181.close()))))); + break SWITCH54;// succeedSwitch + } else { + continue CASE_3322014_1;/*list match1*/ + } + } + } + + } + + } + + } + } + + } + + } + + } + + } + + } while(false); + + } + + } + + + default: + } + + + } else { + continue FOR53_GEN18401; + } + } else { + continue FOR53_GEN18401; + } + } + continue FOR53; + + } while(false); + + } while(false); + /* void: muCon([]) */return ((IString)($astr_slice(((IString)(result_1)), null, null, -1))); + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/lang/rascal/grammar/ParserGenerator.rsc|(18720,7439,<456,0>,<561,1>) + public ITuple lang_rascal_grammar_ParserGenerator_sym2newitem$10f0cc965395b37c(IConstructor grammar_0, IConstructor sym_1, IInteger dot_2){ + + + if($has_type_and_arity(sym_1, M_Type.Symbol_label_str_Symbol, 2)){ + IValue $arg0_192 = (IValue)($aadt_subscript_int(((IConstructor)sym_1),0)); + if($isComparable($arg0_192.getType(), $T1)){ + IValue $arg1_191 = (IValue)($aadt_subscript_int(((IConstructor)sym_1),1)); + if($isComparable($arg1_191.getType(), M_ParseTree.ADT_Symbol)){ + IConstructor sym1_3 = null; + sym_1 = ((IConstructor)($arg1_191)); + + } + + } + + } + IInteger itemId_4 = ((IInteger)($getkw_Symbol_id(((IConstructor)sym_1)))); + if((((IBool)($equal(((IInteger)itemId_4),((IInteger)$constants.get(11)/*0*/)).not()))).getValue()){ + /* void: muCon(true) */ + } else { + $assert_fails(((IString)$constants.get(28)/*""*/)); + }IList enters_5 = ((IList)$constants.get(22)/*[]*/); + IList exits_6 = ((IList)$constants.get(22)/*[]*/); + IString filters_7 = ((IString)$constants.get(28)/*""*/); + if($has_type_and_arity(sym_1, M_ParseTree.Symbol_conditional_Symbol_set_Condition, 2)){ + IValue $arg0_297 = (IValue)($aadt_subscript_int(((IConstructor)sym_1),0)); + if($isComparable($arg0_297.getType(), $T1)){ + IValue $arg1_296 = (IValue)($aadt_subscript_int(((IConstructor)sym_1),1)); + if($isComparable($arg1_296.getType(), $T8)){ + ISet conds_9 = ((ISet)($arg1_296)); + conds_9 = ((ISet)(M_lang_rascal_grammar_definition_Keywords.expandKeywords(((IConstructor)grammar_0), ((ISet)conds_9)))); + final IListWriter $listwriter193 = (IListWriter)$RVF.listWriter(); + /*muExists*/$LCOMP194_GEN19201_CONS_follow: + do { + $LCOMP194_GEN19201: + for(IValue $elem196_for : ((ISet)conds_9)){ + IConstructor $elem196 = (IConstructor) $elem196_for; + if($has_type_and_arity($elem196, M_ParseTree.Condition_follow_Symbol, 1)){ + IValue $arg0_197 = (IValue)($aadt_subscript_int(((IConstructor)($elem196)),0)); + if($isComparable($arg0_197.getType(), M_ParseTree.ADT_Symbol)){ + if($has_type_and_arity($arg0_197, M_ParseTree.Symbol_char_class_list_CharRange, 1)){ + IValue $arg0_198 = (IValue)($aadt_subscript_int(((IConstructor)($arg0_197)),0)); + if($isComparable($arg0_198.getType(), $T11)){ + IList ranges_10 = ((IList)($arg0_198)); + final Template $template195 = (Template)new Template($RVF, "new CharFollowRequirement(new int[][]{"); + $template195.beginIndent(" "); + $template195.addStr(((IString)($me.generateCharClassArrays(((IList)($arg0_198))))).getValue()); + $template195.endIndent(" "); + $template195.addStr("})"); + $listwriter193.append($template195.close()); + + } else { + continue $LCOMP194_GEN19201; + } + } else { + continue $LCOMP194_GEN19201; + } + } else { + continue $LCOMP194_GEN19201; + } + } else { + continue $LCOMP194_GEN19201; + } + } + + + } while(false); + exits_6 = ((IList)($alist_add_alist(((IList)exits_6),((IList)($listwriter193.done()))))); + final IListWriter $listwriter199 = (IListWriter)$RVF.listWriter(); + /*muExists*/$LCOMP200_GEN19330_CONS_follow: + do { + $LCOMP200_GEN19330: + for(IValue $elem202_for : ((ISet)conds_9)){ + IConstructor $elem202 = (IConstructor) $elem202_for; + if($has_type_and_arity($elem202, M_ParseTree.Condition_follow_Symbol, 1)){ + IValue $arg0_203 = (IValue)($aadt_subscript_int(((IConstructor)($elem202)),0)); + if($isComparable($arg0_203.getType(), M_ParseTree.ADT_Symbol)){ + if($has_type_and_arity($arg0_203, M_ParseTree.Symbol_lit_str, 1)){ + IValue $arg0_204 = (IValue)($aadt_subscript_int(((IConstructor)($arg0_203)),0)); + if($isComparable($arg0_204.getType(), $T5)){ + IString s_11 = ((IString)($arg0_204)); + final Template $template201 = (Template)new Template($RVF, "new StringFollowRequirement(new int[] {"); + $template201.beginIndent(" "); + $template201.addStr(((IString)($me.literals2ints(((IList)(M_lang_rascal_grammar_definition_Literals.str2syms(((IString)($arg0_204)))))))).getValue()); + $template201.endIndent(" "); + $template201.addStr("})"); + $listwriter199.append($template201.close()); + + } else { + continue $LCOMP200_GEN19330; + } + } else { + continue $LCOMP200_GEN19330; + } + } else { + continue $LCOMP200_GEN19330; + } + } else { + continue $LCOMP200_GEN19330; + } + } + + + } while(false); + exits_6 = ((IList)($alist_add_alist(((IList)exits_6),((IList)($listwriter199.done()))))); + final IListWriter $listwriter205 = (IListWriter)$RVF.listWriter(); + /*muExists*/$LCOMP206_GEN19467_CONS_follow: + do { + $LCOMP206_GEN19467: + for(IValue $elem208_for : ((ISet)conds_9)){ + IConstructor $elem208 = (IConstructor) $elem208_for; + if($has_type_and_arity($elem208, M_ParseTree.Condition_follow_Symbol, 1)){ + IValue $arg0_209 = (IValue)($aadt_subscript_int(((IConstructor)($elem208)),0)); + if($isComparable($arg0_209.getType(), M_ParseTree.ADT_Symbol)){ + if($has_type_and_arity($arg0_209, M_ParseTree.Symbol_cilit_str, 1)){ + IValue $arg0_210 = (IValue)($aadt_subscript_int(((IConstructor)($arg0_209)),0)); + if($isComparable($arg0_210.getType(), $T5)){ + IString s_12 = ((IString)($arg0_210)); + final Template $template207 = (Template)new Template($RVF, "new CaseInsensitiveStringFollowRequirement(new int[][]{"); + $template207.beginIndent(" "); + $template207.addStr(((IString)($me.ciliterals2ints(((IList)(M_lang_rascal_grammar_definition_Literals.cistr2syms(((IString)($arg0_210)))))))).getValue()); + $template207.endIndent(" "); + $template207.addStr("})"); + $listwriter205.append($template207.close()); + + } else { + continue $LCOMP206_GEN19467; + } + } else { + continue $LCOMP206_GEN19467; + } + } else { + continue $LCOMP206_GEN19467; + } + } else { + continue $LCOMP206_GEN19467; + } + } + + + } while(false); + exits_6 = ((IList)($alist_add_alist(((IList)exits_6),((IList)($listwriter205.done()))))); + final IListWriter $listwriter211 = (IListWriter)$RVF.listWriter(); + /*muExists*/$LCOMP212_GEN19590_CONS_not_follow: + do { + $LCOMP212_GEN19590: + for(IValue $elem214_for : ((ISet)conds_9)){ + IConstructor $elem214 = (IConstructor) $elem214_for; + if($has_type_and_arity($elem214, M_ParseTree.Condition_not_follow_Symbol, 1)){ + IValue $arg0_215 = (IValue)($aadt_subscript_int(((IConstructor)($elem214)),0)); + if($isComparable($arg0_215.getType(), M_ParseTree.ADT_Symbol)){ + if($has_type_and_arity($arg0_215, M_ParseTree.Symbol_char_class_list_CharRange, 1)){ + IValue $arg0_216 = (IValue)($aadt_subscript_int(((IConstructor)($arg0_215)),0)); + if($isComparable($arg0_216.getType(), $T11)){ + IList ranges_13 = ((IList)($arg0_216)); + final Template $template213 = (Template)new Template($RVF, "new CharFollowRestriction(new int[][]{"); + $template213.beginIndent(" "); + $template213.addStr(((IString)($me.generateCharClassArrays(((IList)($arg0_216))))).getValue()); + $template213.endIndent(" "); + $template213.addStr("})"); + $listwriter211.append($template213.close()); + + } else { + continue $LCOMP212_GEN19590; + } + } else { + continue $LCOMP212_GEN19590; + } + } else { + continue $LCOMP212_GEN19590; + } + } else { + continue $LCOMP212_GEN19590; + } + } + + + } while(false); + exits_6 = ((IList)($alist_add_alist(((IList)exits_6),((IList)($listwriter211.done()))))); + final IListWriter $listwriter217 = (IListWriter)$RVF.listWriter(); + /*muExists*/$LCOMP218_GEN19724_CONS_not_follow: + do { + $LCOMP218_GEN19724: + for(IValue $elem220_for : ((ISet)conds_9)){ + IConstructor $elem220 = (IConstructor) $elem220_for; + if($has_type_and_arity($elem220, M_ParseTree.Condition_not_follow_Symbol, 1)){ + IValue $arg0_221 = (IValue)($aadt_subscript_int(((IConstructor)($elem220)),0)); + if($isComparable($arg0_221.getType(), M_ParseTree.ADT_Symbol)){ + if($has_type_and_arity($arg0_221, M_ParseTree.Symbol_lit_str, 1)){ + IValue $arg0_222 = (IValue)($aadt_subscript_int(((IConstructor)($arg0_221)),0)); + if($isComparable($arg0_222.getType(), $T5)){ + IString s_14 = ((IString)($arg0_222)); + final Template $template219 = (Template)new Template($RVF, "new StringFollowRestriction(new int[] {"); + $template219.beginIndent(" "); + $template219.addStr(((IString)($me.literals2ints(((IList)(M_lang_rascal_grammar_definition_Literals.str2syms(((IString)($arg0_222)))))))).getValue()); + $template219.endIndent(" "); + $template219.addStr("})"); + $listwriter217.append($template219.close()); + + } else { + continue $LCOMP218_GEN19724; + } + } else { + continue $LCOMP218_GEN19724; + } + } else { + continue $LCOMP218_GEN19724; + } + } else { + continue $LCOMP218_GEN19724; + } + } + + + } while(false); + exits_6 = ((IList)($alist_add_alist(((IList)exits_6),((IList)($listwriter217.done()))))); + final IListWriter $listwriter223 = (IListWriter)$RVF.listWriter(); + /*muExists*/$LCOMP224_GEN19865_CONS_not_follow: + do { + $LCOMP224_GEN19865: + for(IValue $elem226_for : ((ISet)conds_9)){ + IConstructor $elem226 = (IConstructor) $elem226_for; + if($has_type_and_arity($elem226, M_ParseTree.Condition_not_follow_Symbol, 1)){ + IValue $arg0_227 = (IValue)($aadt_subscript_int(((IConstructor)($elem226)),0)); + if($isComparable($arg0_227.getType(), M_ParseTree.ADT_Symbol)){ + if($has_type_and_arity($arg0_227, M_ParseTree.Symbol_cilit_str, 1)){ + IValue $arg0_228 = (IValue)($aadt_subscript_int(((IConstructor)($arg0_227)),0)); + if($isComparable($arg0_228.getType(), $T5)){ + IString s_15 = ((IString)($arg0_228)); + final Template $template225 = (Template)new Template($RVF, "new CaseInsensitiveStringFollowRestriction(new int[][]{"); + $template225.beginIndent(" "); + $template225.addStr(((IString)($me.ciliterals2ints(((IList)(M_lang_rascal_grammar_definition_Literals.cistr2syms(((IString)($arg0_228)))))))).getValue()); + $template225.endIndent(" "); + $template225.addStr("})"); + $listwriter223.append($template225.close()); + + } else { + continue $LCOMP224_GEN19865; + } + } else { + continue $LCOMP224_GEN19865; + } + } else { + continue $LCOMP224_GEN19865; + } + } else { + continue $LCOMP224_GEN19865; + } + } + + + } while(false); + exits_6 = ((IList)($alist_add_alist(((IList)exits_6),((IList)($listwriter223.done()))))); + final IListWriter $listwriter229 = (IListWriter)$RVF.listWriter(); + /*muExists*/$LCOMP230_GEN19992_CONS_delete: + do { + $LCOMP230_GEN19992: + for(IValue $elem232_for : ((ISet)conds_9)){ + IConstructor $elem232 = (IConstructor) $elem232_for; + if($has_type_and_arity($elem232, M_ParseTree.Condition_delete_Symbol, 1)){ + IValue $arg0_233 = (IValue)($aadt_subscript_int(((IConstructor)($elem232)),0)); + if($isComparable($arg0_233.getType(), M_ParseTree.ADT_Symbol)){ + if($has_type_and_arity($arg0_233, M_ParseTree.Symbol_char_class_list_CharRange, 1)){ + IValue $arg0_234 = (IValue)($aadt_subscript_int(((IConstructor)($arg0_233)),0)); + if($isComparable($arg0_234.getType(), $T11)){ + IList ranges_16 = ((IList)($arg0_234)); + final Template $template231 = (Template)new Template($RVF, "new CharMatchRestriction(new int[][]{"); + $template231.beginIndent(" "); + $template231.addStr(((IString)($me.generateCharClassArrays(((IList)($arg0_234))))).getValue()); + $template231.endIndent(" "); + $template231.addStr("})"); + $listwriter229.append($template231.close()); + + } else { + continue $LCOMP230_GEN19992; + } + } else { + continue $LCOMP230_GEN19992; + } + } else { + continue $LCOMP230_GEN19992; + } + } else { + continue $LCOMP230_GEN19992; + } + } + + + } while(false); + exits_6 = ((IList)($alist_add_alist(((IList)exits_6),((IList)($listwriter229.done()))))); + final IListWriter $listwriter235 = (IListWriter)$RVF.listWriter(); + /*muExists*/$LCOMP236_GEN20121_CONS_delete: + do { + $LCOMP236_GEN20121: + for(IValue $elem238_for : ((ISet)conds_9)){ + IConstructor $elem238 = (IConstructor) $elem238_for; + if($has_type_and_arity($elem238, M_ParseTree.Condition_delete_Symbol, 1)){ + IValue $arg0_239 = (IValue)($aadt_subscript_int(((IConstructor)($elem238)),0)); + if($isComparable($arg0_239.getType(), M_ParseTree.ADT_Symbol)){ + if($has_type_and_arity($arg0_239, M_ParseTree.Symbol_lit_str, 1)){ + IValue $arg0_240 = (IValue)($aadt_subscript_int(((IConstructor)($arg0_239)),0)); + if($isComparable($arg0_240.getType(), $T5)){ + IString s_17 = ((IString)($arg0_240)); + final Template $template237 = (Template)new Template($RVF, "new StringMatchRestriction(new int[] {"); + $template237.beginIndent(" "); + $template237.addStr(((IString)($me.literals2ints(((IList)(M_lang_rascal_grammar_definition_Literals.str2syms(((IString)($arg0_240)))))))).getValue()); + $template237.endIndent(" "); + $template237.addStr("})"); + $listwriter235.append($template237.close()); + + } else { + continue $LCOMP236_GEN20121; + } + } else { + continue $LCOMP236_GEN20121; + } + } else { + continue $LCOMP236_GEN20121; + } + } else { + continue $LCOMP236_GEN20121; + } + } + + + } while(false); + exits_6 = ((IList)($alist_add_alist(((IList)exits_6),((IList)($listwriter235.done()))))); + final IListWriter $listwriter241 = (IListWriter)$RVF.listWriter(); + /*muExists*/$LCOMP242_GEN20257_CONS_delete: + do { + $LCOMP242_GEN20257: + for(IValue $elem244_for : ((ISet)conds_9)){ + IConstructor $elem244 = (IConstructor) $elem244_for; + if($has_type_and_arity($elem244, M_ParseTree.Condition_delete_Symbol, 1)){ + IValue $arg0_245 = (IValue)($aadt_subscript_int(((IConstructor)($elem244)),0)); + if($isComparable($arg0_245.getType(), M_ParseTree.ADT_Symbol)){ + if($has_type_and_arity($arg0_245, M_ParseTree.Symbol_cilit_str, 1)){ + IValue $arg0_246 = (IValue)($aadt_subscript_int(((IConstructor)($arg0_245)),0)); + if($isComparable($arg0_246.getType(), $T5)){ + IString s_18 = ((IString)($arg0_246)); + final Template $template243 = (Template)new Template($RVF, "new CaseInsensitiveStringMatchRestriction(new int[][]{"); + $template243.beginIndent(" "); + $template243.addStr(((IString)($me.ciliterals2ints(((IList)(M_lang_rascal_grammar_definition_Literals.cistr2syms(((IString)($arg0_246)))))))).getValue()); + $template243.endIndent(" "); + $template243.addStr("})"); + $listwriter241.append($template243.close()); + + } else { + continue $LCOMP242_GEN20257; + } + } else { + continue $LCOMP242_GEN20257; + } + } else { + continue $LCOMP242_GEN20257; + } + } else { + continue $LCOMP242_GEN20257; + } + } + + + } while(false); + exits_6 = ((IList)($alist_add_alist(((IList)exits_6),((IList)($listwriter241.done()))))); + final IListWriter $listwriter247 = (IListWriter)$RVF.listWriter(); + /*muExists*/$LCOMP248_GEN20335_CONS_end_of_line: + do { + $LCOMP248_GEN20335: + for(IValue $elem249_for : ((ISet)conds_9)){ + IConstructor $elem249 = (IConstructor) $elem249_for; + if($has_type_and_arity($elem249, M_ParseTree.Condition_end_of_line_, 0)){ + $listwriter247.append(((IString)$constants.get(30)/*"new AtEndOfLineRequirement()"*/)); + + } else { + continue $LCOMP248_GEN20335; + } + } + + + } while(false); + exits_6 = ((IList)($alist_add_alist(((IList)exits_6),((IList)($listwriter247.done()))))); + final IListWriter $listwriter250 = (IListWriter)$RVF.listWriter(); + /*muExists*/$LCOMP251_GEN20458_CONS_precede: + do { + $LCOMP251_GEN20458: + for(IValue $elem253_for : ((ISet)conds_9)){ + IConstructor $elem253 = (IConstructor) $elem253_for; + if($has_type_and_arity($elem253, M_ParseTree.Condition_precede_Symbol, 1)){ + IValue $arg0_254 = (IValue)($aadt_subscript_int(((IConstructor)($elem253)),0)); + if($isComparable($arg0_254.getType(), M_ParseTree.ADT_Symbol)){ + if($has_type_and_arity($arg0_254, M_ParseTree.Symbol_char_class_list_CharRange, 1)){ + IValue $arg0_255 = (IValue)($aadt_subscript_int(((IConstructor)($arg0_254)),0)); + if($isComparable($arg0_255.getType(), $T11)){ + IList ranges_19 = ((IList)($arg0_255)); + final Template $template252 = (Template)new Template($RVF, "new CharPrecedeRequirement(new int[][]{"); + $template252.beginIndent(" "); + $template252.addStr(((IString)($me.generateCharClassArrays(((IList)($arg0_255))))).getValue()); + $template252.endIndent(" "); + $template252.addStr("})"); + $listwriter250.append($template252.close()); + + } else { + continue $LCOMP251_GEN20458; + } + } else { + continue $LCOMP251_GEN20458; + } + } else { + continue $LCOMP251_GEN20458; + } + } else { + continue $LCOMP251_GEN20458; + } + } + + + } while(false); + enters_5 = ((IList)($alist_add_alist(((IList)enters_5),((IList)($listwriter250.done()))))); + final IListWriter $listwriter256 = (IListWriter)$RVF.listWriter(); + /*muExists*/$LCOMP257_GEN20590_CONS_precede: + do { + $LCOMP257_GEN20590: + for(IValue $elem259_for : ((ISet)conds_9)){ + IConstructor $elem259 = (IConstructor) $elem259_for; + if($has_type_and_arity($elem259, M_ParseTree.Condition_precede_Symbol, 1)){ + IValue $arg0_260 = (IValue)($aadt_subscript_int(((IConstructor)($elem259)),0)); + if($isComparable($arg0_260.getType(), M_ParseTree.ADT_Symbol)){ + if($has_type_and_arity($arg0_260, M_ParseTree.Symbol_lit_str, 1)){ + IValue $arg0_261 = (IValue)($aadt_subscript_int(((IConstructor)($arg0_260)),0)); + if($isComparable($arg0_261.getType(), $T5)){ + IString s_20 = ((IString)($arg0_261)); + final Template $template258 = (Template)new Template($RVF, "new StringPrecedeRequirement(new int[] {"); + $template258.beginIndent(" "); + $template258.addStr(((IString)($me.literals2ints(((IList)(M_lang_rascal_grammar_definition_Literals.str2syms(((IString)($arg0_261)))))))).getValue()); + $template258.endIndent(" "); + $template258.addStr("})"); + $listwriter256.append($template258.close()); + + } else { + continue $LCOMP257_GEN20590; + } + } else { + continue $LCOMP257_GEN20590; + } + } else { + continue $LCOMP257_GEN20590; + } + } else { + continue $LCOMP257_GEN20590; + } + } + + + } while(false); + enters_5 = ((IList)($alist_add_alist(((IList)enters_5),((IList)($listwriter256.done()))))); + final IListWriter $listwriter262 = (IListWriter)$RVF.listWriter(); + /*muExists*/$LCOMP263_GEN20730_CONS_precede: + do { + $LCOMP263_GEN20730: + for(IValue $elem265_for : ((ISet)conds_9)){ + IConstructor $elem265 = (IConstructor) $elem265_for; + if($has_type_and_arity($elem265, M_ParseTree.Condition_precede_Symbol, 1)){ + IValue $arg0_266 = (IValue)($aadt_subscript_int(((IConstructor)($elem265)),0)); + if($isComparable($arg0_266.getType(), M_ParseTree.ADT_Symbol)){ + if($has_type_and_arity($arg0_266, M_ParseTree.Symbol_cilit_str, 1)){ + IValue $arg0_267 = (IValue)($aadt_subscript_int(((IConstructor)($arg0_266)),0)); + if($isComparable($arg0_267.getType(), $T5)){ + IString s_21 = ((IString)($arg0_267)); + final Template $template264 = (Template)new Template($RVF, "new CaseInsensitiveStringPrecedeRequirement(new int[][]{"); + $template264.beginIndent(" "); + $template264.addStr(((IString)($me.ciliterals2ints(((IList)(M_lang_rascal_grammar_definition_Literals.cistr2syms(((IString)($arg0_267)))))))).getValue()); + $template264.endIndent(" "); + $template264.addStr("})"); + $listwriter262.append($template264.close()); + + } else { + continue $LCOMP263_GEN20730; + } + } else { + continue $LCOMP263_GEN20730; + } + } else { + continue $LCOMP263_GEN20730; + } + } else { + continue $LCOMP263_GEN20730; + } + } + + + } while(false); + enters_5 = ((IList)($alist_add_alist(((IList)enters_5),((IList)($listwriter262.done()))))); + final IListWriter $listwriter268 = (IListWriter)$RVF.listWriter(); + /*muExists*/$LCOMP269_GEN20856_CONS_not_precede: + do { + $LCOMP269_GEN20856: + for(IValue $elem271_for : ((ISet)conds_9)){ + IConstructor $elem271 = (IConstructor) $elem271_for; + if($has_type_and_arity($elem271, M_ParseTree.Condition_not_precede_Symbol, 1)){ + IValue $arg0_272 = (IValue)($aadt_subscript_int(((IConstructor)($elem271)),0)); + if($isComparable($arg0_272.getType(), M_ParseTree.ADT_Symbol)){ + if($has_type_and_arity($arg0_272, M_ParseTree.Symbol_char_class_list_CharRange, 1)){ + IValue $arg0_273 = (IValue)($aadt_subscript_int(((IConstructor)($arg0_272)),0)); + if($isComparable($arg0_273.getType(), $T11)){ + IList ranges_22 = ((IList)($arg0_273)); + final Template $template270 = (Template)new Template($RVF, "new CharPrecedeRestriction(new int[][]{"); + $template270.beginIndent(" "); + $template270.addStr(((IString)($me.generateCharClassArrays(((IList)($arg0_273))))).getValue()); + $template270.endIndent(" "); + $template270.addStr("})"); + $listwriter268.append($template270.close()); + + } else { + continue $LCOMP269_GEN20856; + } + } else { + continue $LCOMP269_GEN20856; + } + } else { + continue $LCOMP269_GEN20856; + } + } else { + continue $LCOMP269_GEN20856; + } + } + + + } while(false); + enters_5 = ((IList)($alist_add_alist(((IList)enters_5),((IList)($listwriter268.done()))))); + final IListWriter $listwriter274 = (IListWriter)$RVF.listWriter(); + /*muExists*/$LCOMP275_GEN20993_CONS_not_precede: + do { + $LCOMP275_GEN20993: + for(IValue $elem277_for : ((ISet)conds_9)){ + IConstructor $elem277 = (IConstructor) $elem277_for; + if($has_type_and_arity($elem277, M_ParseTree.Condition_not_precede_Symbol, 1)){ + IValue $arg0_278 = (IValue)($aadt_subscript_int(((IConstructor)($elem277)),0)); + if($isComparable($arg0_278.getType(), M_ParseTree.ADT_Symbol)){ + if($has_type_and_arity($arg0_278, M_ParseTree.Symbol_lit_str, 1)){ + IValue $arg0_279 = (IValue)($aadt_subscript_int(((IConstructor)($arg0_278)),0)); + if($isComparable($arg0_279.getType(), $T5)){ + IString s_23 = ((IString)($arg0_279)); + final Template $template276 = (Template)new Template($RVF, "new StringPrecedeRestriction(new int[] {"); + $template276.beginIndent(" "); + $template276.addStr(((IString)($me.literals2ints(((IList)(M_lang_rascal_grammar_definition_Literals.str2syms(((IString)($arg0_279)))))))).getValue()); + $template276.endIndent(" "); + $template276.addStr("})"); + $listwriter274.append($template276.close()); + + } else { + continue $LCOMP275_GEN20993; + } + } else { + continue $LCOMP275_GEN20993; + } + } else { + continue $LCOMP275_GEN20993; + } + } else { + continue $LCOMP275_GEN20993; + } + } + + + } while(false); + enters_5 = ((IList)($alist_add_alist(((IList)enters_5),((IList)($listwriter274.done()))))); + final IListWriter $listwriter280 = (IListWriter)$RVF.listWriter(); + /*muExists*/$LCOMP281_GEN21137_CONS_not_precede: + do { + $LCOMP281_GEN21137: + for(IValue $elem283_for : ((ISet)conds_9)){ + IConstructor $elem283 = (IConstructor) $elem283_for; + if($has_type_and_arity($elem283, M_ParseTree.Condition_not_precede_Symbol, 1)){ + IValue $arg0_284 = (IValue)($aadt_subscript_int(((IConstructor)($elem283)),0)); + if($isComparable($arg0_284.getType(), M_ParseTree.ADT_Symbol)){ + if($has_type_and_arity($arg0_284, M_ParseTree.Symbol_cilit_str, 1)){ + IValue $arg0_285 = (IValue)($aadt_subscript_int(((IConstructor)($arg0_284)),0)); + if($isComparable($arg0_285.getType(), $T5)){ + IString s_24 = ((IString)($arg0_285)); + final Template $template282 = (Template)new Template($RVF, "new CaseInsensitiveStringPrecedeRestriction(new int[][]{"); + $template282.beginIndent(" "); + $template282.addStr(((IString)($me.ciliterals2ints(((IList)(M_lang_rascal_grammar_definition_Literals.cistr2syms(((IString)($arg0_285)))))))).getValue()); + $template282.endIndent(" "); + $template282.addStr("})"); + $listwriter280.append($template282.close()); + + } else { + continue $LCOMP281_GEN21137; + } + } else { + continue $LCOMP281_GEN21137; + } + } else { + continue $LCOMP281_GEN21137; + } + } else { + continue $LCOMP281_GEN21137; + } + } + + + } while(false); + enters_5 = ((IList)($alist_add_alist(((IList)enters_5),((IList)($listwriter280.done()))))); + final IListWriter $listwriter286 = (IListWriter)$RVF.listWriter(); + /*muExists*/$LCOMP287_GEN21222_CONS_at_column: + do { + $LCOMP287_GEN21222: + for(IValue $elem289_for : ((ISet)conds_9)){ + IConstructor $elem289 = (IConstructor) $elem289_for; + if($has_type_and_arity($elem289, M_ParseTree.Condition_at_column_int, 1)){ + IValue $arg0_290 = (IValue)($aadt_subscript_int(((IConstructor)($elem289)),0)); + if($isComparable($arg0_290.getType(), $T7)){ + IInteger i_25 = null; + final Template $template288 = (Template)new Template($RVF, "new AtColumnRequirement("); + $template288.beginIndent(" "); + $template288.addVal($arg0_290); + $template288.endIndent(" "); + $template288.addStr(")"); + $listwriter286.append($template288.close()); + + } else { + continue $LCOMP287_GEN21222; + } + } else { + continue $LCOMP287_GEN21222; + } + } + + + } while(false); + enters_5 = ((IList)($alist_add_alist(((IList)enters_5),((IList)($listwriter286.done()))))); + final IListWriter $listwriter291 = (IListWriter)$RVF.listWriter(); + /*muExists*/$LCOMP292_GEN21303_CONS_begin_of_line: + do { + $LCOMP292_GEN21303: + for(IValue $elem293_for : ((ISet)conds_9)){ + IConstructor $elem293 = (IConstructor) $elem293_for; + if($has_type_and_arity($elem293, M_ParseTree.Condition_begin_of_line_, 0)){ + $listwriter291.append(((IString)$constants.get(31)/*"new AtStartOfLineRequirement()"*/)); + + } else { + continue $LCOMP292_GEN21303; + } + } + + + } while(false); + enters_5 = ((IList)($alist_add_alist(((IList)enters_5),((IList)($listwriter291.done()))))); + sym_1 = ((IConstructor)(((IConstructor)($aadt_get_field(((IConstructor)sym_1), "symbol"))))); + if($has_type_and_arity(sym_1, M_Type.Symbol_label_str_Symbol, 2)){ + IValue $arg0_295 = (IValue)($aadt_subscript_int(((IConstructor)sym_1),0)); + if($isComparable($arg0_295.getType(), $T1)){ + IValue $arg1_294 = (IValue)($aadt_subscript_int(((IConstructor)sym_1),1)); + if($isComparable($arg1_294.getType(), M_ParseTree.ADT_Symbol)){ + IConstructor sym1_26 = null; + sym_1 = ((IConstructor)($arg1_294)); + + } + + } + + } + + } + + } + + } + filters_7 = ((IString)$constants.get(28)/*""*/); + if((((IBool)($equal(((IList)enters_5),((IList)$constants.get(22)/*[]*/)).not()))).getValue()){ + final Template $template298 = (Template)new Template($RVF, "new IEnterFilter[] {"); + $template298.beginIndent(" "); + $template298.addStr(((IString)(M_List.head(((IList)enters_5)))).getValue()); + $template298.endIndent(" "); + ;/*muExists*/LAB59: + do { + if((((IBool)($equal(((IList)enters_5),((IList)$constants.get(22)/*[]*/)).not()))).getValue()){ + LAB59_GEN21545: + for(IValue $elem299_for : ((IList)(M_List.tail(((IList)enters_5))))){ + IString $elem299 = (IString) $elem299_for; + IString f_27 = null; + $template298.addStr(", "); + $template298.beginIndent(" "); + $template298.addStr(((IString)($elem299)).getValue()); + $template298.endIndent(" "); + + } + continue LAB59; + + } else { + continue LAB59; + } + } while(false); + $template298.addStr("}"); + filters_7 = ((IString)($astr_add_astr(((IString)filters_7),((IString)($template298.close()))))); + + } else { + filters_7 = ((IString)($astr_add_astr(((IString)filters_7),((IString)$constants.get(32)/*"null"*/)))); + + }if((((IBool)($equal(((IList)exits_6),((IList)$constants.get(22)/*[]*/)).not()))).getValue()){ + final Template $template300 = (Template)new Template($RVF, ", new ICompletionFilter[] {"); + $template300.beginIndent(" "); + $template300.addStr(((IString)(M_List.head(((IList)exits_6)))).getValue()); + $template300.endIndent(" "); + ;/*muExists*/LAB61: + do { + if((((IBool)($equal(((IList)exits_6),((IList)$constants.get(22)/*[]*/)).not()))).getValue()){ + LAB61_GEN21721: + for(IValue $elem301_for : ((IList)(M_List.tail(((IList)exits_6))))){ + IString $elem301 = (IString) $elem301_for; + IString f_28 = null; + $template300.addStr(", "); + $template300.beginIndent(" "); + $template300.addStr(((IString)($elem301)).getValue()); + $template300.endIndent(" "); + + } + continue LAB61; + + } else { + continue LAB61; + } + } while(false); + $template300.addStr("}"); + filters_7 = ((IString)($astr_add_astr(((IString)filters_7),((IString)($template300.close()))))); + + } else { + filters_7 = ((IString)($astr_add_astr(((IString)filters_7),((IString)$constants.get(33)/*", null"*/)))); + + }final IConstructor $switchVal302 = ((IConstructor)sym_1); + boolean noCaseMatched_$switchVal302 = true; + SWITCH62: switch(Fingerprint.getFingerprint($switchVal302)){ + + case -964239440: + if(noCaseMatched_$switchVal302){ + noCaseMatched_$switchVal302 = false; + if($isSubtypeOf($switchVal302.getType(),M_ParseTree.ADT_Symbol)){ + /*muExists*/CASE_964239440_14: + do { + if($has_type_and_arity($switchVal302, M_ParseTree.Symbol_iter_star_seps_Symbol_list_Symbol, 2)){ + IValue $arg0_351 = (IValue)($aadt_subscript_int(((IConstructor)($switchVal302)),0)); + if($isComparable($arg0_351.getType(), M_ParseTree.ADT_Symbol)){ + IConstructor s_40 = ((IConstructor)($arg0_351)); + IValue $arg1_350 = (IValue)($aadt_subscript_int(((IConstructor)($switchVal302)),1)); + if($isComparable($arg1_350.getType(), $T6)){ + IList seps_41 = ((IList)($arg1_350)); + IConstructor reg_42 = ((IConstructor)($RVF.constructor(M_ParseTree.Production_regular_Symbol, new IValue[]{((IConstructor)sym_1)}))); + final Template $template349 = (Template)new Template($RVF, "new SeparatedListStackNode("); + $template349.beginIndent(" "); + $template349.addVal(itemId_4); + $template349.endIndent(" "); + $template349.addStr(", "); + $template349.beginIndent(" "); + $template349.addVal(dot_2); + $template349.endIndent(" "); + $template349.addStr(", "); + $template349.beginIndent(" "); + $template349.addStr(((IString)($me.value2id(((IValue)reg_42)))).getValue()); + $template349.endIndent(" "); + $template349.addStr(", "); + $template349.beginIndent(" "); + $template349.addStr(((IString)($atuple_field_project((ITuple)((ITuple)($me.sym2newitem(((IConstructor)grammar_0), ((IConstructor)($arg0_351)), ((IInteger)$constants.get(11)/*0*/)))), ((IInteger)$constants.get(11)/*0*/)))).getValue()); + $template349.endIndent(" "); + $template349.addStr(", (AbstractStackNode[]) new AbstractStackNode[]{"); + $template349.beginIndent(" "); + $template349.addStr(((IString)($me.generateSeparatorExpects(((IConstructor)grammar_0), ((IList)($arg1_350))))).getValue()); + $template349.endIndent(" "); + $template349.addStr("}, false, "); + $template349.beginIndent(" "); + $template349.addStr(((IString)filters_7).getValue()); + $template349.endIndent(" "); + $template349.addStr(")"); + return ((ITuple)($RVF.tuple(((IString)($template349.close())), ((IInteger)itemId_4)))); + + } + + } + + } + + } while(false); + + } + + } + + + case 1444258592: + if(noCaseMatched_$switchVal302){ + noCaseMatched_$switchVal302 = false; + if($isSubtypeOf($switchVal302.getType(),M_ParseTree.ADT_Symbol)){ + /*muExists*/CASE_1444258592_5: + do { + if($has_type_and_arity($switchVal302, M_ParseTree.Symbol_parameterized_sort_str_list_Symbol, 2)){ + IValue $arg0_315 = (IValue)($aadt_subscript_int(((IConstructor)($switchVal302)),0)); + if($isComparable($arg0_315.getType(), $T1)){ + IValue $arg1_314 = (IValue)($aadt_subscript_int(((IConstructor)($switchVal302)),1)); + if($isComparable($arg1_314.getType(), $T1)){ + final Template $template313 = (Template)new Template($RVF, "new NonTerminalStackNode("); + $template313.beginIndent(" "); + $template313.addVal(itemId_4); + $template313.endIndent(" "); + $template313.addStr(", "); + $template313.beginIndent(" "); + $template313.addVal(dot_2); + $template313.endIndent(" "); + $template313.addStr(", \""); + $template313.beginIndent(" "); + $template313.addStr(((IString)($me.sym2name(((IConstructor)sym_1)))).getValue()); + $template313.endIndent(" "); + $template313.addStr("\", "); + $template313.beginIndent(" "); + $template313.addStr(((IString)filters_7).getValue()); + $template313.endIndent(" "); + $template313.addStr(")"); + return ((ITuple)($RVF.tuple(((IString)($template313.close())), ((IInteger)itemId_4)))); + + } + + } + + } + + } while(false); + + } + + } + + + case 1206598288: + if(noCaseMatched_$switchVal302){ + noCaseMatched_$switchVal302 = false; + if($isSubtypeOf($switchVal302.getType(),M_ParseTree.ADT_Symbol)){ + /*muExists*/CASE_1206598288_7: + do { + if($has_type_and_arity($switchVal302, M_Type.Symbol_parameter_str_Symbol, 2)){ + IValue $arg0_321 = (IValue)($aadt_subscript_int(((IConstructor)($switchVal302)),0)); + if($isComparable($arg0_321.getType(), $T1)){ + IValue $arg1_320 = (IValue)($aadt_subscript_int(((IConstructor)($switchVal302)),1)); + if($isComparable($arg1_320.getType(), $T1)){ + final Template $template319 = (Template)new Template($RVF, "All parameters should have been instantiated by now: "); + $template319.beginIndent(" "); + $template319.addVal(sym_1); + $template319.endIndent(" "); + throw new Throw($template319.close()); + } + + } + + } + + } while(false); + + } + + } + + + case 757310344: + if(noCaseMatched_$switchVal302){ + noCaseMatched_$switchVal302 = false; + if($isSubtypeOf($switchVal302.getType(),M_ParseTree.ADT_Symbol)){ + /*muExists*/CASE_757310344_10: + do { + if($has_type_and_arity($switchVal302, M_ParseTree.Symbol_cilit_str, 1)){ + IValue $arg0_341 = (IValue)($aadt_subscript_int(((IConstructor)($switchVal302)),0)); + if($isComparable($arg0_341.getType(), $T5)){ + IString l_32 = ((IString)($arg0_341)); + /*muExists*/IF64: + do { + final IConstructor $subject_val335 = ((IConstructor)($amap_subscript(((IMap)(((IMap)($aadt_get_field(((IConstructor)grammar_0), "rules"))))),((IConstructor)($me.getType(((IConstructor)sym_1))))))); + IF64_DESC23603: + for(IValue $elem336 : new DescendantMatchIterator($subject_val335, + new DescendantDescriptorAlwaysTrue($RVF.bool(false)))){ + if($isComparable($elem336.getType(), M_ParseTree.ADT_Production)){ + if($has_type_and_arity($elem336, M_ParseTree.Production_prod_Symbol_list_Symbol_set_Attr, 3)){ + IValue $arg0_339 = (IValue)($subscript_int(((IValue)($elem336)),0)); + if($isComparable($arg0_339.getType(), M_ParseTree.ADT_Symbol)){ + if($has_type_and_arity($arg0_339, M_ParseTree.Symbol_cilit_str, 1)){ + IValue $arg0_340 = (IValue)($aadt_subscript_int(((IConstructor)($arg0_339)),0)); + if($isComparable($arg0_340.getType(), $T5)){ + if(($arg0_341 != null)){ + if($arg0_341.match($arg0_340)){ + IValue $arg1_338 = (IValue)($subscript_int(((IValue)($elem336)),1)); + if($isComparable($arg1_338.getType(), $T6)){ + if(true){ + IList chars_34 = ((IList)($arg1_338)); + IValue $arg2_337 = (IValue)($subscript_int(((IValue)($elem336)),2)); + if($isComparable($arg2_337.getType(), $T1)){ + IConstructor p_33 = ((IConstructor)($elem336)); + final Template $template334 = (Template)new Template($RVF, "new CaseInsensitiveLiteralStackNode("); + $template334.beginIndent(" "); + $template334.addVal(itemId_4); + $template334.endIndent(" "); + $template334.addStr(", "); + $template334.beginIndent(" "); + $template334.addVal(dot_2); + $template334.endIndent(" "); + $template334.addStr(", "); + $template334.beginIndent(" "); + $template334.addStr(((IString)($me.value2id(((IValue)p_33)))).getValue()); + $template334.endIndent(" "); + $template334.addStr(", new int[] {"); + $template334.beginIndent(" "); + $template334.addStr(((IString)($me.literals2ints(((IList)($arg1_338))))).getValue()); + $template334.endIndent(" "); + $template334.addStr("}, "); + $template334.beginIndent(" "); + $template334.addStr(((IString)filters_7).getValue()); + $template334.endIndent(" "); + $template334.addStr(")"); + return ((ITuple)($RVF.tuple(((IString)($template334.close())), ((IInteger)itemId_4)))); + + } else { + continue IF64_DESC23603; + } + } else { + continue IF64_DESC23603; + } + } else { + continue IF64_DESC23603; + } + } else { + continue IF64_DESC23603; + } + } else { + $arg0_341 = ((IValue)($arg0_340)); + IValue $arg1_338 = (IValue)($subscript_int(((IValue)($elem336)),1)); + if($isComparable($arg1_338.getType(), $T6)){ + if(true){ + IList chars_34 = ((IList)($arg1_338)); + IValue $arg2_337 = (IValue)($subscript_int(((IValue)($elem336)),2)); + if($isComparable($arg2_337.getType(), $T1)){ + IConstructor p_33 = ((IConstructor)($elem336)); + final Template $template334 = (Template)new Template($RVF, "new CaseInsensitiveLiteralStackNode("); + $template334.beginIndent(" "); + $template334.addVal(itemId_4); + $template334.endIndent(" "); + $template334.addStr(", "); + $template334.beginIndent(" "); + $template334.addVal(dot_2); + $template334.endIndent(" "); + $template334.addStr(", "); + $template334.beginIndent(" "); + $template334.addStr(((IString)($me.value2id(((IValue)p_33)))).getValue()); + $template334.endIndent(" "); + $template334.addStr(", new int[] {"); + $template334.beginIndent(" "); + $template334.addStr(((IString)($me.literals2ints(((IList)($arg1_338))))).getValue()); + $template334.endIndent(" "); + $template334.addStr("}, "); + $template334.beginIndent(" "); + $template334.addStr(((IString)filters_7).getValue()); + $template334.endIndent(" "); + $template334.addStr(")"); + return ((ITuple)($RVF.tuple(((IString)($template334.close())), ((IInteger)itemId_4)))); + + } else { + continue IF64_DESC23603; + } + } else { + continue IF64_DESC23603; + } + } else { + continue IF64_DESC23603; + } + } + } else { + continue IF64_DESC23603; + } + } else { + continue IF64_DESC23603; + } + } else { + continue IF64_DESC23603; + } + } else { + continue IF64_DESC23603; + } + } else { + continue IF64_DESC23603; + } + } + + + } while(false); + final Template $template333 = (Template)new Template($RVF, "ci-literal not found in grammar: "); + $template333.beginIndent(" "); + $template333.addVal(grammar_0); + $template333.endIndent(" "); + throw new Throw($template333.close()); + } + + } + + } while(false); + + } + + } + + + case 856312: + if(noCaseMatched_$switchVal302){ + noCaseMatched_$switchVal302 = false; + if($isSubtypeOf($switchVal302.getType(),M_ParseTree.ADT_Symbol)){ + /*muExists*/CASE_856312_2: + do { + if($has_type_and_arity($switchVal302, M_ParseTree.Symbol_lex_str, 1)){ + IValue $arg0_308 = (IValue)($aadt_subscript_int(((IConstructor)($switchVal302)),0)); + if($isComparable($arg0_308.getType(), $T1)){ + final Template $template307 = (Template)new Template($RVF, "new NonTerminalStackNode("); + $template307.beginIndent(" "); + $template307.addVal(itemId_4); + $template307.endIndent(" "); + $template307.addStr(", "); + $template307.beginIndent(" "); + $template307.addVal(dot_2); + $template307.endIndent(" "); + $template307.addStr(", \""); + $template307.beginIndent(" "); + $template307.addStr(((IString)($me.sym2name(((IConstructor)sym_1)))).getValue()); + $template307.endIndent(" "); + $template307.addStr("\", "); + $template307.beginIndent(" "); + $template307.addStr(((IString)filters_7).getValue()); + $template307.endIndent(" "); + $template307.addStr(")"); + return ((ITuple)($RVF.tuple(((IString)($template307.close())), ((IInteger)itemId_4)))); + + } + + } + + } while(false); + + } + + } + + + case 1154855088: + if(noCaseMatched_$switchVal302){ + noCaseMatched_$switchVal302 = false; + if($isSubtypeOf($switchVal302.getType(),M_ParseTree.ADT_Symbol)){ + /*muExists*/CASE_1154855088_6: + do { + if($has_type_and_arity($switchVal302, M_ParseTree.Symbol_parameterized_lex_str_list_Symbol, 2)){ + IValue $arg0_318 = (IValue)($aadt_subscript_int(((IConstructor)($switchVal302)),0)); + if($isComparable($arg0_318.getType(), $T1)){ + IValue $arg1_317 = (IValue)($aadt_subscript_int(((IConstructor)($switchVal302)),1)); + if($isComparable($arg1_317.getType(), $T1)){ + final Template $template316 = (Template)new Template($RVF, "new NonTerminalStackNode("); + $template316.beginIndent(" "); + $template316.addVal(itemId_4); + $template316.endIndent(" "); + $template316.addStr(", "); + $template316.beginIndent(" "); + $template316.addVal(dot_2); + $template316.endIndent(" "); + $template316.addStr(", \""); + $template316.beginIndent(" "); + $template316.addStr(((IString)($me.sym2name(((IConstructor)sym_1)))).getValue()); + $template316.endIndent(" "); + $template316.addStr("\", "); + $template316.beginIndent(" "); + $template316.addStr(((IString)filters_7).getValue()); + $template316.endIndent(" "); + $template316.addStr(")"); + return ((ITuple)($RVF.tuple(((IString)($template316.close())), ((IInteger)itemId_4)))); + + } + + } + + } + + } while(false); + + } + + } + + + case 910072: + if(noCaseMatched_$switchVal302){ + noCaseMatched_$switchVal302 = false; + if($isSubtypeOf($switchVal302.getType(),M_ParseTree.ADT_Symbol)){ + /*muExists*/CASE_910072_17: + do { + if($has_type_and_arity($switchVal302, M_ParseTree.Symbol_seq_list_Symbol, 1)){ + IValue $arg0_360 = (IValue)($aadt_subscript_int(((IConstructor)($switchVal302)),0)); + if($isComparable($arg0_360.getType(), $T6)){ + IList ss_48 = ((IList)($arg0_360)); + final Template $template359 = (Template)new Template($RVF, "new SequenceStackNode("); + $template359.beginIndent(" "); + $template359.addVal(itemId_4); + $template359.endIndent(" "); + $template359.addStr(", "); + $template359.beginIndent(" "); + $template359.addVal(dot_2); + $template359.endIndent(" "); + $template359.addStr(", "); + $template359.beginIndent(" "); + $template359.addStr(((IString)($me.value2id(((IValue)($RVF.constructor(M_ParseTree.Production_regular_Symbol, new IValue[]{((IConstructor)sym_1)})))))).getValue()); + $template359.endIndent(" "); + $template359.addStr(", (AbstractStackNode[]) new AbstractStackNode[]{"); + $template359.beginIndent(" "); + $template359.addStr(((IString)($me.generateSequenceExpects(((IConstructor)grammar_0), ((IList)($arg0_360))))).getValue()); + $template359.endIndent(" "); + $template359.addStr("}, "); + $template359.beginIndent(" "); + $template359.addStr(((IString)filters_7).getValue()); + $template359.endIndent(" "); + $template359.addStr(")"); + return ((ITuple)($RVF.tuple(((IString)($template359.close())), ((IInteger)itemId_4)))); + + } + + } + + } while(false); + + } + + } + + + case 826203960: + if(noCaseMatched_$switchVal302){ + noCaseMatched_$switchVal302 = false; + if($isSubtypeOf($switchVal302.getType(),M_ParseTree.ADT_Symbol)){ + /*muExists*/CASE_826203960_12: + do { + if($has_type_and_arity($switchVal302, M_ParseTree.Symbol_iter_star_Symbol, 1)){ + IValue $arg0_345 = (IValue)($aadt_subscript_int(((IConstructor)($switchVal302)),0)); + if($isComparable($arg0_345.getType(), M_ParseTree.ADT_Symbol)){ + IConstructor s_36 = ((IConstructor)($arg0_345)); + final Template $template344 = (Template)new Template($RVF, "new ListStackNode("); + $template344.beginIndent(" "); + $template344.addVal(itemId_4); + $template344.endIndent(" "); + $template344.addStr(", "); + $template344.beginIndent(" "); + $template344.addVal(dot_2); + $template344.endIndent(" "); + $template344.addStr(", "); + $template344.beginIndent(" "); + $template344.addStr(((IString)($me.value2id(((IValue)($RVF.constructor(M_ParseTree.Production_regular_Symbol, new IValue[]{((IConstructor)sym_1)})))))).getValue()); + $template344.endIndent(" "); + $template344.addStr(", "); + $template344.beginIndent(" "); + $template344.addStr(((IString)($atuple_field_project((ITuple)((ITuple)($me.sym2newitem(((IConstructor)grammar_0), ((IConstructor)($arg0_345)), ((IInteger)$constants.get(11)/*0*/)))), ((IInteger)$constants.get(11)/*0*/)))).getValue()); + $template344.endIndent(" "); + $template344.addStr(", false, "); + $template344.beginIndent(" "); + $template344.addStr(((IString)filters_7).getValue()); + $template344.endIndent(" "); + $template344.addStr(")"); + return ((ITuple)($RVF.tuple(((IString)($template344.close())), ((IInteger)itemId_4)))); + + } + + } + + } while(false); + + } + + } + + + case 773448: + if(noCaseMatched_$switchVal302){ + noCaseMatched_$switchVal302 = false; + if($isSubtypeOf($switchVal302.getType(),M_ParseTree.ADT_Symbol)){ + /*muExists*/CASE_773448_16: + do { + if($has_type_and_arity($switchVal302, M_ParseTree.Symbol_alt_set_Symbol, 1)){ + IValue $arg0_358 = (IValue)($aadt_subscript_int(((IConstructor)($switchVal302)),0)); + if($isComparable($arg0_358.getType(), $T0)){ + ISet as_45 = ((ISet)($arg0_358)); + final IListWriter $listwriter354 = (IListWriter)$RVF.listWriter(); + $LCOMP355_GEN25338: + for(IValue $elem356_for : ((ISet)($arg0_358))){ + IConstructor $elem356 = (IConstructor) $elem356_for; + IConstructor a_47 = null; + $listwriter354.append($elem356); + + } + + IList alts_46 = ((IList)($listwriter354.done())); + final Template $template357 = (Template)new Template($RVF, "new AlternativeStackNode("); + $template357.beginIndent(" "); + $template357.addVal(itemId_4); + $template357.endIndent(" "); + $template357.addStr(", "); + $template357.beginIndent(" "); + $template357.addVal(dot_2); + $template357.endIndent(" "); + $template357.addStr(", "); + $template357.beginIndent(" "); + $template357.addStr(((IString)($me.value2id(((IValue)($RVF.constructor(M_ParseTree.Production_regular_Symbol, new IValue[]{((IConstructor)sym_1)})))))).getValue()); + $template357.endIndent(" "); + $template357.addStr(", (AbstractStackNode[]) new AbstractStackNode[]{"); + $template357.beginIndent(" "); + $template357.addStr(((IString)($me.generateAltExpects(((IConstructor)grammar_0), ((IList)alts_46)))).getValue()); + $template357.endIndent(" "); + $template357.addStr("}, "); + $template357.beginIndent(" "); + $template357.addStr(((IString)filters_7).getValue()); + $template357.endIndent(" "); + $template357.addStr(")"); + return ((ITuple)($RVF.tuple(((IString)($template357.close())), ((IInteger)itemId_4)))); + + } + + } + + } while(false); + + } + + } + + + case 1652184736: + if(noCaseMatched_$switchVal302){ + noCaseMatched_$switchVal302 = false; + if($isSubtypeOf($switchVal302.getType(),M_ParseTree.ADT_Symbol)){ + /*muExists*/CASE_1652184736_13: + do { + if($has_type_and_arity($switchVal302, M_ParseTree.Symbol_iter_seps_Symbol_list_Symbol, 2)){ + IValue $arg0_348 = (IValue)($aadt_subscript_int(((IConstructor)($switchVal302)),0)); + if($isComparable($arg0_348.getType(), M_ParseTree.ADT_Symbol)){ + IConstructor s_37 = ((IConstructor)($arg0_348)); + IValue $arg1_347 = (IValue)($aadt_subscript_int(((IConstructor)($switchVal302)),1)); + if($isComparable($arg1_347.getType(), $T6)){ + IList seps_38 = ((IList)($arg1_347)); + IConstructor reg_39 = ((IConstructor)($RVF.constructor(M_ParseTree.Production_regular_Symbol, new IValue[]{((IConstructor)sym_1)}))); + final Template $template346 = (Template)new Template($RVF, "new SeparatedListStackNode("); + $template346.beginIndent(" "); + $template346.addVal(itemId_4); + $template346.endIndent(" "); + $template346.addStr(", "); + $template346.beginIndent(" "); + $template346.addVal(dot_2); + $template346.endIndent(" "); + $template346.addStr(", "); + $template346.beginIndent(" "); + $template346.addStr(((IString)($me.value2id(((IValue)reg_39)))).getValue()); + $template346.endIndent(" "); + $template346.addStr(", "); + $template346.beginIndent(" "); + $template346.addStr(((IString)($atuple_field_project((ITuple)((ITuple)($me.sym2newitem(((IConstructor)grammar_0), ((IConstructor)($arg0_348)), ((IInteger)$constants.get(11)/*0*/)))), ((IInteger)$constants.get(11)/*0*/)))).getValue()); + $template346.endIndent(" "); + $template346.addStr(", (AbstractStackNode[]) new AbstractStackNode[]{"); + $template346.beginIndent(" "); + $template346.addStr(((IString)($me.generateSeparatorExpects(((IConstructor)grammar_0), ((IList)($arg1_347))))).getValue()); + $template346.endIndent(" "); + $template346.addStr("}, true, "); + $template346.beginIndent(" "); + $template346.addStr(((IString)filters_7).getValue()); + $template346.endIndent(" "); + $template346.addStr(")"); + return ((ITuple)($RVF.tuple(((IString)($template346.close())), ((IInteger)itemId_4)))); + + } + + } + + } + + } while(false); + + } + + } + + + case -333228984: + if(noCaseMatched_$switchVal302){ + noCaseMatched_$switchVal302 = false; + if($isSubtypeOf($switchVal302.getType(),M_ParseTree.ADT_Symbol)){ + /*muExists*/CASE_333228984_4: + do { + if($has_type_and_arity($switchVal302, M_ParseTree.Symbol_layouts_str, 1)){ + IValue $arg0_312 = (IValue)($aadt_subscript_int(((IConstructor)($switchVal302)),0)); + if($isComparable($arg0_312.getType(), $T1)){ + final Template $template311 = (Template)new Template($RVF, "new NonTerminalStackNode("); + $template311.beginIndent(" "); + $template311.addVal(itemId_4); + $template311.endIndent(" "); + $template311.addStr(", "); + $template311.beginIndent(" "); + $template311.addVal(dot_2); + $template311.endIndent(" "); + $template311.addStr(", \""); + $template311.beginIndent(" "); + $template311.addStr(((IString)($me.sym2name(((IConstructor)sym_1)))).getValue()); + $template311.endIndent(" "); + $template311.addStr("\", "); + $template311.beginIndent(" "); + $template311.addStr(((IString)filters_7).getValue()); + $template311.endIndent(" "); + $template311.addStr(")"); + return ((ITuple)($RVF.tuple(((IString)($template311.close())), ((IInteger)itemId_4)))); + + } + + } + + } while(false); + + } + + } + + + case 0: + if(noCaseMatched_$switchVal302){ + noCaseMatched_$switchVal302 = false; + + } + + + case -1948270072: + if(noCaseMatched_$switchVal302){ + noCaseMatched_$switchVal302 = false; + if($isSubtypeOf($switchVal302.getType(),M_ParseTree.ADT_Symbol)){ + /*muExists*/CASE_1948270072_18: + do { + if($has_type_and_arity($switchVal302, M_ParseTree.Symbol_char_class_list_CharRange, 1)){ + IValue $arg0_362 = (IValue)($aadt_subscript_int(((IConstructor)($switchVal302)),0)); + if($isComparable($arg0_362.getType(), $T11)){ + IList ranges_49 = ((IList)($arg0_362)); + final Template $template361 = (Template)new Template($RVF, "new CharStackNode("); + $template361.beginIndent(" "); + $template361.addVal(itemId_4); + $template361.endIndent(" "); + $template361.addStr(", "); + $template361.beginIndent(" "); + $template361.addVal(dot_2); + $template361.endIndent(" "); + $template361.addStr(", new int[][]{"); + $template361.beginIndent(" "); + $template361.addStr(((IString)($me.generateCharClassArrays(((IList)($arg0_362))))).getValue()); + $template361.endIndent(" "); + $template361.addStr("}, "); + $template361.beginIndent(" "); + $template361.addStr(((IString)filters_7).getValue()); + $template361.endIndent(" "); + $template361.addStr(")"); + return ((ITuple)($RVF.tuple(((IString)($template361.close())), ((IInteger)itemId_4)))); + + } + + } + + } while(false); + + } + + } + + + case 857272: + if(noCaseMatched_$switchVal302){ + noCaseMatched_$switchVal302 = false; + if($isSubtypeOf($switchVal302.getType(),M_ParseTree.ADT_Symbol)){ + /*muExists*/CASE_857272_9: + do { + if($has_type_and_arity($switchVal302, M_ParseTree.Symbol_lit_str, 1)){ + IValue $arg0_332 = (IValue)($aadt_subscript_int(((IConstructor)($switchVal302)),0)); + if($isComparable($arg0_332.getType(), $T5)){ + IString l_29 = ((IString)($arg0_332)); + /*muExists*/IF63: + do { + final IConstructor $subject_val326 = ((IConstructor)($amap_subscript(((IMap)(((IMap)($aadt_get_field(((IConstructor)grammar_0), "rules"))))),((IConstructor)($me.getType(((IConstructor)sym_1))))))); + IF63_DESC23262: + for(IValue $elem327 : new DescendantMatchIterator($subject_val326, + new DescendantDescriptorAlwaysTrue($RVF.bool(false)))){ + if($isComparable($elem327.getType(), M_ParseTree.ADT_Production)){ + if($has_type_and_arity($elem327, M_ParseTree.Production_prod_Symbol_list_Symbol_set_Attr, 3)){ + IValue $arg0_330 = (IValue)($subscript_int(((IValue)($elem327)),0)); + if($isComparable($arg0_330.getType(), M_ParseTree.ADT_Symbol)){ + if($has_type_and_arity($arg0_330, M_ParseTree.Symbol_lit_str, 1)){ + IValue $arg0_331 = (IValue)($aadt_subscript_int(((IConstructor)($arg0_330)),0)); + if($isComparable($arg0_331.getType(), $T5)){ + if(($arg0_332 != null)){ + if($arg0_332.match($arg0_331)){ + IValue $arg1_329 = (IValue)($subscript_int(((IValue)($elem327)),1)); + if($isComparable($arg1_329.getType(), $T6)){ + if(true){ + IList chars_31 = ((IList)($arg1_329)); + IValue $arg2_328 = (IValue)($subscript_int(((IValue)($elem327)),2)); + if($isComparable($arg2_328.getType(), $T1)){ + IConstructor p_30 = ((IConstructor)($elem327)); + final Template $template325 = (Template)new Template($RVF, "new LiteralStackNode("); + $template325.beginIndent(" "); + $template325.addVal(itemId_4); + $template325.endIndent(" "); + $template325.addStr(", "); + $template325.beginIndent(" "); + $template325.addVal(dot_2); + $template325.endIndent(" "); + $template325.addStr(", "); + $template325.beginIndent(" "); + $template325.addStr(((IString)($me.value2id(((IValue)p_30)))).getValue()); + $template325.endIndent(" "); + $template325.addStr(", new int[] {"); + $template325.beginIndent(" "); + $template325.addStr(((IString)($me.literals2ints(((IList)($arg1_329))))).getValue()); + $template325.endIndent(" "); + $template325.addStr("}, "); + $template325.beginIndent(" "); + $template325.addStr(((IString)filters_7).getValue()); + $template325.endIndent(" "); + $template325.addStr(")"); + return ((ITuple)($RVF.tuple(((IString)($template325.close())), ((IInteger)itemId_4)))); + + } else { + continue IF63_DESC23262; + } + } else { + continue IF63_DESC23262; + } + } else { + continue IF63_DESC23262; + } + } else { + continue IF63_DESC23262; + } + } else { + $arg0_332 = ((IValue)($arg0_331)); + IValue $arg1_329 = (IValue)($subscript_int(((IValue)($elem327)),1)); + if($isComparable($arg1_329.getType(), $T6)){ + if(true){ + IList chars_31 = ((IList)($arg1_329)); + IValue $arg2_328 = (IValue)($subscript_int(((IValue)($elem327)),2)); + if($isComparable($arg2_328.getType(), $T1)){ + IConstructor p_30 = ((IConstructor)($elem327)); + final Template $template325 = (Template)new Template($RVF, "new LiteralStackNode("); + $template325.beginIndent(" "); + $template325.addVal(itemId_4); + $template325.endIndent(" "); + $template325.addStr(", "); + $template325.beginIndent(" "); + $template325.addVal(dot_2); + $template325.endIndent(" "); + $template325.addStr(", "); + $template325.beginIndent(" "); + $template325.addStr(((IString)($me.value2id(((IValue)p_30)))).getValue()); + $template325.endIndent(" "); + $template325.addStr(", new int[] {"); + $template325.beginIndent(" "); + $template325.addStr(((IString)($me.literals2ints(((IList)($arg1_329))))).getValue()); + $template325.endIndent(" "); + $template325.addStr("}, "); + $template325.beginIndent(" "); + $template325.addStr(((IString)filters_7).getValue()); + $template325.endIndent(" "); + $template325.addStr(")"); + return ((ITuple)($RVF.tuple(((IString)($template325.close())), ((IInteger)itemId_4)))); + + } else { + continue IF63_DESC23262; + } + } else { + continue IF63_DESC23262; + } + } else { + continue IF63_DESC23262; + } + } + } else { + continue IF63_DESC23262; + } + } else { + continue IF63_DESC23262; + } + } else { + continue IF63_DESC23262; + } + } else { + continue IF63_DESC23262; + } + } else { + continue IF63_DESC23262; + } + } + + + } while(false); + final Template $template324 = (Template)new Template($RVF, "literal not found in grammar: "); + $template324.beginIndent(" "); + $template324.addVal(grammar_0); + $template324.endIndent(" "); + throw new Throw($template324.close()); + } + + } + + } while(false); + + } + + } + + + case -109773488: + if(noCaseMatched_$switchVal302){ + noCaseMatched_$switchVal302 = false; + if($isSubtypeOf($switchVal302.getType(),M_ParseTree.ADT_Symbol)){ + /*muExists*/CASE_109773488_3: + do { + if($has_type_and_arity($switchVal302, M_ParseTree.Symbol_keywords_str, 1)){ + IValue $arg0_310 = (IValue)($aadt_subscript_int(((IConstructor)($switchVal302)),0)); + if($isComparable($arg0_310.getType(), $T1)){ + final Template $template309 = (Template)new Template($RVF, "new NonTerminalStackNode("); + $template309.beginIndent(" "); + $template309.addVal(itemId_4); + $template309.endIndent(" "); + $template309.addStr(", "); + $template309.beginIndent(" "); + $template309.addVal(dot_2); + $template309.endIndent(" "); + $template309.addStr(", \""); + $template309.beginIndent(" "); + $template309.addStr(((IString)($me.sym2name(((IConstructor)sym_1)))).getValue()); + $template309.endIndent(" "); + $template309.addStr("\", "); + $template309.beginIndent(" "); + $template309.addStr(((IString)filters_7).getValue()); + $template309.endIndent(" "); + $template309.addStr(")"); + return ((ITuple)($RVF.tuple(((IString)($template309.close())), ((IInteger)itemId_4)))); + + } + + } + + } while(false); + + } + + } + + + case 25942208: + if(noCaseMatched_$switchVal302){ + noCaseMatched_$switchVal302 = false; + if($isSubtypeOf($switchVal302.getType(),M_ParseTree.ADT_Symbol)){ + /*muExists*/CASE_25942208_11: + do { + if($has_type_and_arity($switchVal302, M_ParseTree.Symbol_iter_Symbol, 1)){ + IValue $arg0_343 = (IValue)($aadt_subscript_int(((IConstructor)($switchVal302)),0)); + if($isComparable($arg0_343.getType(), M_ParseTree.ADT_Symbol)){ + IConstructor s_35 = ((IConstructor)($arg0_343)); + final Template $template342 = (Template)new Template($RVF, "new ListStackNode("); + $template342.beginIndent(" "); + $template342.addVal(itemId_4); + $template342.endIndent(" "); + $template342.addStr(", "); + $template342.beginIndent(" "); + $template342.addVal(dot_2); + $template342.endIndent(" "); + $template342.addStr(", "); + $template342.beginIndent(" "); + $template342.addStr(((IString)($me.value2id(((IValue)($RVF.constructor(M_ParseTree.Production_regular_Symbol, new IValue[]{((IConstructor)sym_1)})))))).getValue()); + $template342.endIndent(" "); + $template342.addStr(", "); + $template342.beginIndent(" "); + $template342.addStr(((IString)($atuple_field_project((ITuple)((ITuple)($me.sym2newitem(((IConstructor)grammar_0), ((IConstructor)($arg0_343)), ((IInteger)$constants.get(11)/*0*/)))), ((IInteger)$constants.get(11)/*0*/)))).getValue()); + $template342.endIndent(" "); + $template342.addStr(", true, "); + $template342.beginIndent(" "); + $template342.addStr(((IString)filters_7).getValue()); + $template342.endIndent(" "); + $template342.addStr(")"); + return ((ITuple)($RVF.tuple(((IString)($template342.close())), ((IInteger)itemId_4)))); + + } + + } + + } while(false); + + } + + } + + + case 878060304: + if(noCaseMatched_$switchVal302){ + noCaseMatched_$switchVal302 = false; + if($isSubtypeOf($switchVal302.getType(),M_ParseTree.ADT_Symbol)){ + /*muExists*/CASE_878060304_8: + do { + if($has_type_and_arity($switchVal302, M_ParseTree.Symbol_start_Symbol, 1)){ + IValue $arg0_323 = (IValue)($aadt_subscript_int(((IConstructor)($switchVal302)),0)); + if($isComparable($arg0_323.getType(), $T1)){ + final Template $template322 = (Template)new Template($RVF, "new NonTerminalStackNode("); + $template322.beginIndent(" "); + $template322.addVal(itemId_4); + $template322.endIndent(" "); + $template322.addStr(", "); + $template322.beginIndent(" "); + $template322.addVal(dot_2); + $template322.endIndent(" "); + $template322.addStr(", \""); + $template322.beginIndent(" "); + $template322.addStr(((IString)($me.sym2name(((IConstructor)sym_1)))).getValue()); + $template322.endIndent(" "); + $template322.addStr("\", "); + $template322.beginIndent(" "); + $template322.addStr(((IString)filters_7).getValue()); + $template322.endIndent(" "); + $template322.addStr(")"); + return ((ITuple)($RVF.tuple(((IString)($template322.close())), ((IInteger)itemId_4)))); + + } + + } + + } while(false); + + } + + } + + + case 882072: + if(noCaseMatched_$switchVal302){ + noCaseMatched_$switchVal302 = false; + if($isSubtypeOf($switchVal302.getType(),M_ParseTree.ADT_Symbol)){ + /*muExists*/CASE_882072_15: + do { + if($has_type_and_arity($switchVal302, M_ParseTree.Symbol_opt_Symbol, 1)){ + IValue $arg0_353 = (IValue)($aadt_subscript_int(((IConstructor)($switchVal302)),0)); + if($isComparable($arg0_353.getType(), M_ParseTree.ADT_Symbol)){ + IConstructor s_43 = ((IConstructor)($arg0_353)); + IConstructor reg_44 = ((IConstructor)($RVF.constructor(M_ParseTree.Production_regular_Symbol, new IValue[]{((IConstructor)sym_1)}))); + final Template $template352 = (Template)new Template($RVF, "new OptionalStackNode("); + $template352.beginIndent(" "); + $template352.addVal(itemId_4); + $template352.endIndent(" "); + $template352.addStr(", "); + $template352.beginIndent(" "); + $template352.addVal(dot_2); + $template352.endIndent(" "); + $template352.addStr(", "); + $template352.beginIndent(" "); + $template352.addStr(((IString)($me.value2id(((IValue)reg_44)))).getValue()); + $template352.endIndent(" "); + $template352.addStr(", "); + $template352.beginIndent(" "); + $template352.addStr(((IString)($atuple_field_project((ITuple)((ITuple)($me.sym2newitem(((IConstructor)grammar_0), ((IConstructor)($arg0_353)), ((IInteger)$constants.get(11)/*0*/)))), ((IInteger)$constants.get(11)/*0*/)))).getValue()); + $template352.endIndent(" "); + $template352.addStr(", "); + $template352.beginIndent(" "); + $template352.addStr(((IString)filters_7).getValue()); + $template352.endIndent(" "); + $template352.addStr(")"); + return ((ITuple)($RVF.tuple(((IString)($template352.close())), ((IInteger)itemId_4)))); + + } + + } + + } while(false); + + } + + } + + + case 28290288: + if(noCaseMatched_$switchVal302){ + noCaseMatched_$switchVal302 = false; + if($isSubtypeOf($switchVal302.getType(),M_ParseTree.ADT_Symbol)){ + /*muExists*/CASE_28290288_0: + do { + if($has_type_and_arity($switchVal302, M_ParseTree.Symbol_sort_str, 1)){ + IValue $arg0_306 = (IValue)($aadt_subscript_int(((IConstructor)($switchVal302)),0)); + if($isComparable($arg0_306.getType(), $T1)){ + final Template $template305 = (Template)new Template($RVF, "new NonTerminalStackNode("); + $template305.beginIndent(" "); + $template305.addVal(itemId_4); + $template305.endIndent(" "); + $template305.addStr(", "); + $template305.beginIndent(" "); + $template305.addVal(dot_2); + $template305.endIndent(" "); + $template305.addStr(", \""); + $template305.beginIndent(" "); + $template305.addStr(((IString)($me.sym2name(((IConstructor)sym_1)))).getValue()); + $template305.endIndent(" "); + $template305.addStr("\", "); + $template305.beginIndent(" "); + $template305.addStr(((IString)filters_7).getValue()); + $template305.endIndent(" "); + $template305.addStr(")"); + return ((ITuple)($RVF.tuple(((IString)($template305.close())), ((IInteger)itemId_4)))); + + } + + } + + } while(false); + + } + + } + + + default: if($isSubtypeOf($switchVal302.getType(),M_ParseTree.ADT_Symbol)){ + /*muExists*/CASE_0_1: + do { + if($has_type_and_arity($switchVal302, M_ParseTree.Symbol_empty_, 0)){ + final Template $template304 = (Template)new Template($RVF, "new EmptyStackNode("); + $template304.beginIndent(" "); + $template304.addVal(itemId_4); + $template304.endIndent(" "); + $template304.addStr(", "); + $template304.beginIndent(" "); + $template304.addVal(dot_2); + $template304.endIndent(" "); + $template304.addStr(", "); + $template304.beginIndent(" "); + $template304.addStr(((IString)($me.value2id(((IValue)($RVF.constructor(M_ParseTree.Production_regular_Symbol, new IValue[]{((IConstructor)sym_1)})))))).getValue()); + $template304.endIndent(" "); + $template304.addStr(", "); + $template304.beginIndent(" "); + $template304.addStr(((IString)filters_7).getValue()); + $template304.endIndent(" "); + $template304.addStr(")"); + return ((ITuple)($RVF.tuple(((IString)($template304.close())), ((IInteger)itemId_4)))); + + } + + } while(false); + + } + final Template $template303 = (Template)new Template($RVF, "unexpected symbol "); + $template303.beginIndent(" "); + $template303.addVal(sym_1); + $template303.endIndent(" "); + $template303.addStr(" while generating parser code"); + throw new Throw($template303.close()); + } + + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/lang/rascal/grammar/ParserGenerator.rsc|(26161,282,<563,0>,<571,1>) + public IString lang_rascal_grammar_ParserGenerator_generateCharClassArrays$701635e3542145f3(IList ranges_0){ + + + if((((IBool)($equal(((IList)ranges_0), ((IList)$constants.get(22)/*[]*/))))).getValue()){ + return ((IString)$constants.get(28)/*""*/); + + } + IString result_1 = ((IString)$constants.get(28)/*""*/); + final IConstructor $subject_val364 = ((IConstructor)(M_List.head(((IList)ranges_0)))); + if($has_type_and_arity($subject_val364, M_ParseTree.CharRange_range_int_int, 2)){ + IValue $arg0_366 = (IValue)($aadt_subscript_int(((IConstructor)($subject_val364)),0)); + if($isComparable($arg0_366.getType(), $T7)){ + IInteger from_2 = null; + IValue $arg1_365 = (IValue)($aadt_subscript_int(((IConstructor)($subject_val364)),1)); + if($isComparable($arg1_365.getType(), $T7)){ + IInteger to_3 = null; + final Template $template363 = (Template)new Template($RVF, "{"); + $template363.beginIndent(" "); + $template363.addVal($arg0_366); + $template363.endIndent(" "); + $template363.addStr(","); + $template363.beginIndent(" "); + $template363.addVal($arg1_365); + $template363.endIndent(" "); + $template363.addStr("}"); + result_1 = ((IString)($astr_add_astr(((IString)result_1),((IString)($template363.close()))))); + + } + + } + + } + /*muExists*/FOR67: + do { + /*muExists*/FOR67_GEN26354_CONS_range: + do { + FOR67_GEN26354: + for(IValue $elem368_for : ((IList)(M_List.tail(((IList)ranges_0))))){ + IConstructor $elem368 = (IConstructor) $elem368_for; + if($has_type_and_arity($elem368, M_ParseTree.CharRange_range_int_int, 2)){ + IValue $arg0_370 = (IValue)($aadt_subscript_int(((IConstructor)($elem368)),0)); + if($isComparable($arg0_370.getType(), $T7)){ + IInteger from_4 = null; + IValue $arg1_369 = (IValue)($aadt_subscript_int(((IConstructor)($elem368)),1)); + if($isComparable($arg1_369.getType(), $T7)){ + IInteger to_5 = null; + final Template $template367 = (Template)new Template($RVF, ",{"); + $template367.beginIndent(" "); + $template367.addVal($arg0_370); + $template367.endIndent(" "); + $template367.addStr(","); + $template367.beginIndent(" "); + $template367.addVal($arg1_369); + $template367.endIndent(" "); + $template367.addStr("}"); + result_1 = ((IString)($astr_add_astr(((IString)result_1),((IString)($template367.close()))))); + + } else { + continue FOR67_GEN26354; + } + } else { + continue FOR67_GEN26354; + } + } else { + continue FOR67_GEN26354; + } + } + continue FOR67; + + } while(false); + + } while(false); + /* void: muCon([]) */return ((IString)result_1); + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/lang/rascal/grammar/ParserGenerator.rsc|(26445,50,<573,0>,<575,1>) + public IString lang_rascal_grammar_ParserGenerator_esc$b0384bd678427cdc(IConstructor s_0){ + + + final Template $template371 = (Template)new Template($RVF, ""); + $template371.addVal(s_0); + return ((IString)($me.esc(((IString)($template371.close()))))); + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/lang/rascal/grammar/ParserGenerator.rsc|(26609,65,<579,0>,<581,1>) + public IString lang_rascal_grammar_ParserGenerator_esc$3f747747bc8e51bf(IString s_0){ + + + return ((IString)(M_String.escape(((IString)s_0), ((IMap)javaStringEscapes)))); + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/lang/rascal/grammar/ParserGenerator.rsc|(26829,63,<585,0>,<587,1>) + public IString lang_rascal_grammar_ParserGenerator_escId$1ab026bcf1c9c400(IString s_0){ + + + return ((IString)(M_String.escape(((IString)s_0), ((IMap)javaIdEscapes)))); + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/lang/rascal/grammar/ParserGenerator.rsc|(26894,179,<589,0>,<595,1>) + public IString lang_rascal_grammar_ParserGenerator_sym2name$43e2df165cbb6f65(IConstructor s_0){ + + + final IConstructor $switchVal372 = ((IConstructor)s_0); + boolean noCaseMatched_$switchVal372 = true; + SWITCH68: switch(Fingerprint.getFingerprint($switchVal372)){ + + case 1643638592: + if(noCaseMatched_$switchVal372){ + noCaseMatched_$switchVal372 = false; + if($isSubtypeOf($switchVal372.getType(),M_ParseTree.ADT_Symbol)){ + /*muExists*/CASE_1643638592_1: + do { + if($has_type_and_arity($switchVal372, M_Type.Symbol_label_str_Symbol, 2)){ + IValue $arg0_376 = (IValue)($aadt_subscript_int(((IConstructor)($switchVal372)),0)); + if($isComparable($arg0_376.getType(), $T1)){ + IValue $arg1_375 = (IValue)($aadt_subscript_int(((IConstructor)($switchVal372)),1)); + if($isComparable($arg1_375.getType(), M_ParseTree.ADT_Symbol)){ + IConstructor x_2 = ((IConstructor)($arg1_375)); + return ((IString)($me.sym2name(((IConstructor)($arg1_375))))); + + } + + } + + } + + } while(false); + + } + + } + + + case 28290288: + if(noCaseMatched_$switchVal372){ + noCaseMatched_$switchVal372 = false; + if($isSubtypeOf($switchVal372.getType(),M_ParseTree.ADT_Symbol)){ + /*muExists*/CASE_28290288_0: + do { + if($has_type_and_arity($switchVal372, M_ParseTree.Symbol_sort_str, 1)){ + IValue $arg0_374 = (IValue)($aadt_subscript_int(((IConstructor)($switchVal372)),0)); + if($isComparable($arg0_374.getType(), $T5)){ + IString x_1 = null; + final Template $template373 = (Template)new Template($RVF, ""); + $template373.addStr(((IString)($arg0_374)).getValue()); + return ((IString)($template373.close())); + + } + + } + + } while(false); + + } + + } + + + default: return ((IString)($me.value2id(((IValue)s_0)))); + } + + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/lang/rascal/grammar/ParserGenerator.rsc|(27075,55,<597,0>,<600,1>) + public IString lang_rascal_grammar_ParserGenerator_value2id$7b72ead30df47401(IValue v_0){ + + + return ((IString)($me.v2i(((IValue)v_0)))); + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/lang/rascal/grammar/ParserGenerator.rsc|(27132,81,<602,0>,<602,81>) + public IString lang_rascal_grammar_ParserGenerator_uu$082b41e3c596335e(IValue s_0){ + + + final Template $template377 = (Template)new Template($RVF, ""); + $template377.addVal(M_Node.unsetRec(((IValue)s_0))); + return ((IString)(M_String.escape(((IString)(M_String.toBase64(((IString)($template377.close())), Util.kwpMap()))), ((IMap)$constants.get(34)/*("+":"11","/":"22","=":"00")*/)))); + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/lang/rascal/grammar/ParserGenerator.rsc|(27215,1021,<604,0>,<622,1>) + public IString lang_rascal_grammar_ParserGenerator_v2i$0f91624d0e98f18d(IValue v_0){ + + + final IValue $switchVal378 = ((IValue)v_0); + boolean noCaseMatched_$switchVal378 = true; + SWITCH69: switch(Fingerprint.getFingerprint($switchVal378)){ + + case 1643638592: + if(noCaseMatched_$switchVal378){ + noCaseMatched_$switchVal378 = false; + if($isSubtypeOf($switchVal378.getType(),M_ParseTree.ADT_Symbol)){ + /*muExists*/CASE_1643638592_2: + do { + if($has_type_and_arity($switchVal378, M_Type.Symbol_label_str_Symbol, 2)){ + IValue $arg0_395 = (IValue)($aadt_subscript_int(((IConstructor)($switchVal378)),0)); + if($isComparable($arg0_395.getType(), $T5)){ + IString x_5 = ((IString)($arg0_395)); + IValue $arg1_394 = (IValue)($aadt_subscript_int(((IConstructor)($switchVal378)),1)); + if($isComparable($arg1_394.getType(), M_ParseTree.ADT_Symbol)){ + IConstructor u_6 = ((IConstructor)($arg1_394)); + return ((IString)($astr_add_astr(((IString)($astr_add_astr(((IString)($me.escId(((IString)($arg0_395))))),((IString)$constants.get(35)/*"_"*/)))),((IString)($me.v2i(((IValue)($arg1_394)))))))); + + } + + } + + } + + } while(false); + + } + + } + + + case 1444258592: + if(noCaseMatched_$switchVal378){ + noCaseMatched_$switchVal378 = false; + if($isSubtypeOf($switchVal378.getType(),M_ParseTree.ADT_Symbol)){ + /*muExists*/CASE_1444258592_8: + do { + if($has_type_and_arity($switchVal378, M_ParseTree.Symbol_parameterized_sort_str_list_Symbol, 2)){ + IValue $arg0_408 = (IValue)($aadt_subscript_int(((IConstructor)($switchVal378)),0)); + if($isComparable($arg0_408.getType(), $T5)){ + IString s_12 = ((IString)($arg0_408)); + IValue $arg1_407 = (IValue)($aadt_subscript_int(((IConstructor)($switchVal378)),1)); + if($isComparable($arg1_407.getType(), $T6)){ + IList args_13 = ((IList)($arg1_407)); + final Template $template406 = (Template)new Template($RVF, ""); + $template406.addStr(((IString)($arg0_408)).getValue()); + $template406.addStr("_"); + $template406.beginIndent(" "); + $template406.addStr(((IString)($me.uu(((IValue)($arg1_407))))).getValue()); + $template406.endIndent(" "); + return ((IString)($template406.close())); + + } + + } + + } + + } while(false); + + } + + } + + + case 878060304: + if(noCaseMatched_$switchVal378){ + noCaseMatched_$switchVal378 = false; + if($isSubtypeOf($switchVal378.getType(),M_ParseTree.ADT_Symbol)){ + /*muExists*/CASE_878060304_0: + do { + if($has_type_and_arity($switchVal378, M_ParseTree.Symbol_start_Symbol, 1)){ + IValue $arg0_387 = (IValue)($aadt_subscript_int(((IConstructor)($switchVal378)),0)); + if($isComparable($arg0_387.getType(), M_ParseTree.ADT_Symbol)){ + IConstructor s_1 = ((IConstructor)($arg0_387)); + final Template $template386 = (Template)new Template($RVF, "start__"); + $template386.beginIndent(" "); + $template386.addStr(((IString)($me.v2i(((IValue)($arg0_387))))).getValue()); + $template386.endIndent(" "); + return ((IString)($template386.close())); + + } + + } + + } while(false); + + } + + } + + + case 757310344: + if(noCaseMatched_$switchVal378){ + noCaseMatched_$switchVal378 = false; + if($isSubtypeOf($switchVal378.getType(),M_ParseTree.ADT_Symbol)){ + /*muExists*/CASE_757310344_10: + do { + if($has_type_and_arity($switchVal378, M_ParseTree.Symbol_cilit_str, 1)){ + IValue $arg0_413 = (IValue)($aadt_subscript_int(((IConstructor)($switchVal378)),0)); + if($isComparable($arg0_413.getType(), $T5)){ + final Matcher $matcher414 = (Matcher)$regExpCompile("(^[A-Za-z0-9\\-\\_]+$)", ((IString)($arg0_413)).getValue()); + boolean $found415 = true; + + while($found415){ + $found415 = $matcher414.find(); + if($found415){ + IString s_16 = ((IString)($RVF.string($matcher414.group(1)))); + final Template $template412 = (Template)new Template($RVF, "cilit_"); + $template412.beginIndent(" "); + $template412.addStr(((IString)($me.escId(((IString)s_16)))).getValue()); + $template412.endIndent(" "); + return ((IString)($template412.close())); + + } + + } + + } + + } + + } while(false); + + } + + } + + + case 856312: + if(noCaseMatched_$switchVal378){ + noCaseMatched_$switchVal378 = false; + if($isSubtypeOf($switchVal378.getType(),M_ParseTree.ADT_Symbol)){ + /*muExists*/CASE_856312_6: + do { + if($has_type_and_arity($switchVal378, M_ParseTree.Symbol_lex_str, 1)){ + IValue $arg0_403 = (IValue)($aadt_subscript_int(((IConstructor)($switchVal378)),0)); + if($isComparable($arg0_403.getType(), $T5)){ + IString s_10 = null; + final Template $template402 = (Template)new Template($RVF, ""); + $template402.addStr(((IString)($arg0_403)).getValue()); + return ((IString)($template402.close())); + + } + + } + + } while(false); + + } + + } + + + case 1154855088: + if(noCaseMatched_$switchVal378){ + noCaseMatched_$switchVal378 = false; + if($isSubtypeOf($switchVal378.getType(),M_ParseTree.ADT_Symbol)){ + /*muExists*/CASE_1154855088_9: + do { + if($has_type_and_arity($switchVal378, M_ParseTree.Symbol_parameterized_lex_str_list_Symbol, 2)){ + IValue $arg0_411 = (IValue)($aadt_subscript_int(((IConstructor)($switchVal378)),0)); + if($isComparable($arg0_411.getType(), $T5)){ + IString s_14 = ((IString)($arg0_411)); + IValue $arg1_410 = (IValue)($aadt_subscript_int(((IConstructor)($switchVal378)),1)); + if($isComparable($arg1_410.getType(), $T6)){ + IList args_15 = ((IList)($arg1_410)); + final Template $template409 = (Template)new Template($RVF, ""); + $template409.addStr(((IString)($arg0_411)).getValue()); + $template409.addStr("_"); + $template409.beginIndent(" "); + $template409.addStr(((IString)($me.uu(((IValue)($arg1_410))))).getValue()); + $template409.endIndent(" "); + return ((IString)($template409.close())); + + } + + } + + } + + } while(false); + + } + + } + + + case 28290288: + if(noCaseMatched_$switchVal378){ + noCaseMatched_$switchVal378 = false; + if($isSubtypeOf($switchVal378.getType(),M_ParseTree.ADT_Symbol)){ + /*muExists*/CASE_28290288_5: + do { + if($has_type_and_arity($switchVal378, M_ParseTree.Symbol_sort_str, 1)){ + IValue $arg0_401 = (IValue)($aadt_subscript_int(((IConstructor)($switchVal378)),0)); + if($isComparable($arg0_401.getType(), $T5)){ + IString s_9 = null; + final Template $template400 = (Template)new Template($RVF, ""); + $template400.addStr(((IString)($arg0_401)).getValue()); + return ((IString)($template400.close())); + + } + + } + + } while(false); + + } + + } + + + case 51884336: + if(noCaseMatched_$switchVal378){ + noCaseMatched_$switchVal378 = false; + if($isSubtypeOf($switchVal378.getType(),M_Grammar.ADT_Item)){ + /*muExists*/CASE_51884336_1: + do { + if($has_type_and_arity($switchVal378, M_Grammar.Item_item_Production_int, 2)){ + IValue $arg0_390 = (IValue)($aadt_subscript_int(((IConstructor)($switchVal378)),0)); + if($isComparable($arg0_390.getType(), M_ParseTree.ADT_Production)){ + if($has_type_and_arity($arg0_390, M_ParseTree.Production_prod_Symbol_list_Symbol_set_Attr, 3)){ + IValue $arg0_393 = (IValue)($aadt_subscript_int(((IConstructor)($arg0_390)),0)); + if($isComparable($arg0_393.getType(), M_ParseTree.ADT_Symbol)){ + IConstructor u_3 = ((IConstructor)($arg0_393)); + IValue $arg1_392 = (IValue)($aadt_subscript_int(((IConstructor)($arg0_390)),1)); + if($isComparable($arg1_392.getType(), $T1)){ + IValue $arg2_391 = (IValue)($aadt_subscript_int(((IConstructor)($arg0_390)),2)); + if($isComparable($arg2_391.getType(), $T1)){ + IConstructor p_2 = ((IConstructor)($arg0_390)); + IValue $arg1_389 = (IValue)($aadt_subscript_int(((IConstructor)($switchVal378)),1)); + if($isComparable($arg1_389.getType(), $T7)){ + IInteger i_4 = ((IInteger)($arg1_389)); + final Template $template388 = (Template)new Template($RVF, ""); + $template388.addStr(((IString)($me.v2i(((IValue)($arg0_393))))).getValue()); + $template388.addStr("."); + $template388.beginIndent(" "); + $template388.addStr(((IString)($me.v2i(((IValue)($arg0_390))))).getValue()); + $template388.endIndent(" "); + $template388.addStr("_"); + $template388.beginIndent(" "); + $template388.addStr(((IString)($me.v2i(((IValue)($arg1_389))))).getValue()); + $template388.endIndent(" "); + return ((IString)($template388.close())); + + } + + } + + } + + } + + } + + } + + } + + } while(false); + + } + + } + + + case -333228984: + if(noCaseMatched_$switchVal378){ + noCaseMatched_$switchVal378 = false; + if($isSubtypeOf($switchVal378.getType(),M_ParseTree.ADT_Symbol)){ + /*muExists*/CASE_333228984_3: + do { + if($has_type_and_arity($switchVal378, M_ParseTree.Symbol_layouts_str, 1)){ + IValue $arg0_397 = (IValue)($aadt_subscript_int(((IConstructor)($switchVal378)),0)); + if($isComparable($arg0_397.getType(), $T5)){ + IString x_7 = ((IString)($arg0_397)); + final Template $template396 = (Template)new Template($RVF, "layouts_"); + $template396.beginIndent(" "); + $template396.addStr(((IString)($me.escId(((IString)($arg0_397))))).getValue()); + $template396.endIndent(" "); + return ((IString)($template396.close())); + + } + + } + + } while(false); + + } + + } + + + case 0: + if(noCaseMatched_$switchVal378){ + noCaseMatched_$switchVal378 = false; + + } + + + case -2144737184: + if(noCaseMatched_$switchVal378){ + noCaseMatched_$switchVal378 = false; + if($isSubtypeOf($switchVal378.getType(),M_ParseTree.ADT_Symbol)){ + /*muExists*/CASE_2144737184_4: + do { + if($has_type_and_arity($switchVal378, M_ParseTree.Symbol_conditional_Symbol_set_Condition, 2)){ + IValue $arg0_399 = (IValue)($aadt_subscript_int(((IConstructor)($switchVal378)),0)); + if($isComparable($arg0_399.getType(), M_ParseTree.ADT_Symbol)){ + IConstructor s_8 = ((IConstructor)($arg0_399)); + IValue $arg1_398 = (IValue)($aadt_subscript_int(((IConstructor)($switchVal378)),1)); + if($isComparable($arg1_398.getType(), $T1)){ + return ((IString)($me.v2i(((IValue)($arg0_399))))); + + } + + } + + } + + } while(false); + + } + + } + + + case 857272: + if(noCaseMatched_$switchVal378){ + noCaseMatched_$switchVal378 = false; + if($isSubtypeOf($switchVal378.getType(),M_ParseTree.ADT_Symbol)){ + /*muExists*/CASE_857272_11: + do { + if($has_type_and_arity($switchVal378, M_ParseTree.Symbol_lit_str, 1)){ + IValue $arg0_417 = (IValue)($aadt_subscript_int(((IConstructor)($switchVal378)),0)); + if($isComparable($arg0_417.getType(), $T5)){ + final Matcher $matcher418 = (Matcher)$regExpCompile("(^[A-Za-z0-9\\-\\_]+$)", ((IString)($arg0_417)).getValue()); + boolean $found419 = true; + + while($found419){ + $found419 = $matcher418.find(); + if($found419){ + IString s_17 = ((IString)($RVF.string($matcher418.group(1)))); + final Template $template416 = (Template)new Template($RVF, "lit_"); + $template416.beginIndent(" "); + $template416.addStr(((IString)($me.escId(((IString)s_17)))).getValue()); + $template416.endIndent(" "); + return ((IString)($template416.close())); + + } + + } + + } + + } + + } while(false); + + } + + } + + + case -109773488: + if(noCaseMatched_$switchVal378){ + noCaseMatched_$switchVal378 = false; + if($isSubtypeOf($switchVal378.getType(),M_ParseTree.ADT_Symbol)){ + /*muExists*/CASE_109773488_7: + do { + if($has_type_and_arity($switchVal378, M_ParseTree.Symbol_keywords_str, 1)){ + IValue $arg0_405 = (IValue)($aadt_subscript_int(((IConstructor)($switchVal378)),0)); + if($isComparable($arg0_405.getType(), $T5)){ + IString s_11 = null; + final Template $template404 = (Template)new Template($RVF, ""); + $template404.addStr(((IString)($arg0_405)).getValue()); + return ((IString)($template404.close())); + + } + + } + + } while(false); + + } + + } + + + default: if($isSubtypeOf($switchVal378.getType(),$T7)){ + /*muExists*/CASE_0_12: + do { + IInteger i_18 = null; + /*muExists*/$RET379: + do { + if((((IBool)($aint_less_aint(((IInteger)($switchVal378)),((IInteger)$constants.get(11)/*0*/))))).getValue()){ + final Template $template380 = (Template)new Template($RVF, "min_"); + $template380.beginIndent(" "); + $template380.addVal(((IInteger)($switchVal378)).negate()); + $template380.endIndent(" "); + return ((IString)($template380.close())); + + } + + } while(false); + final Template $template381 = (Template)new Template($RVF, ""); + $template381.addVal($switchVal378); + return ((IString)($template381.close())); + + } while(false); + + } + if($isSubtypeOf($switchVal378.getType(),$T5)){ + /*muExists*/CASE_0_13: + do { + IString s_19 = ((IString)($switchVal378)); + IString $reducer383 = (IString)(((IString)$constants.get(28)/*""*/)); + final IInteger $lst2 = ((IInteger)(M_String.size(((IString)s_19)))); + final boolean $dir3 = ((IInteger)$constants.get(11)/*0*/).less($lst2).getValue(); + + $REDUCER382_GEN28166: + for(IInteger $elem385 = ((IInteger)$constants.get(11)/*0*/); $dir3 ? $aint_less_aint($elem385,$lst2).getValue() + : $aint_lessequal_aint($elem385,$lst2).not().getValue(); $elem385 = $aint_add_aint($elem385,$dir3 ? ((IInteger)$constants.get(0)/*1*/) : ((IInteger)$constants.get(15)/*-1*/))){ + IInteger i_21 = ((IInteger)($elem385)); + final Template $template384 = (Template)new Template($RVF, "_"); + $template384.beginIndent(" "); + $template384.addVal(M_String.charAt(((IString)s_19), ((IInteger)i_21))); + $template384.endIndent(" "); + $reducer383 = ((IString)($astr_add_astr(((IString)($reducer383)),((IString)($template384.close()))))); + } + + return ((IString)($reducer383)); + + } while(false); + + } + return ((IString)($me.uu(((IValue)v_0)))); + + } + + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/lang/rascal/grammar/ParserGenerator.rsc|(28355,53,<627,4>,<627,57>) + public IInteger lang_rascal_grammar_ParserGenerator_newItem$056db57e92a0e96d(ValueRef uniqueItem_1){ + + + uniqueItem_1.setValue(((IInteger)($aint_add_aint(uniqueItem_1.getValue(),((IInteger)$constants.get(0)/*1*/))))); + return uniqueItem_1.getValue(); + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/lang/rascal/grammar/ParserGenerator.rsc|(28414,104,<628,4>,<631,8>) + public IConstructor lang_rascal_grammar_ParserGenerator_rewrite$3113ca4dfaeecfe9(IConstructor p_0, ValueRef uniqueItem_1){ + + + try { + IValue $visitResult = $TRAVERSE.traverse(DIRECTION.BottomUp, PROGRESS.Continuing, FIXEDPOINT.No, REBUILD.Yes, + new DescendantDescriptorAlwaysTrue($RVF.bool(false)), + p_0, + (IVisitFunction) (IValue $VISIT72_subject, TraversalState $traversalState) -> { + VISIT72:switch(Fingerprint.getFingerprint($VISIT72_subject)){ + + case 0: + + + default: + if($isSubtypeOf($VISIT72_subject.getType(),M_ParseTree.ADT_Symbol)){ + /*muExists*/CASE_0_0: + do { + IConstructor s_2 = ((IConstructor)($VISIT72_subject)); + IConstructor $replacement420 = (IConstructor)(((IConstructor)($aadt_field_update("id", lang_rascal_grammar_ParserGenerator_makeUnique$20b231c389f60af1_newItem(uniqueItem_1), ((IConstructor)s_2))))); + if($isSubtypeOf($replacement420.getType(),$VISIT72_subject.getType())){ + $traversalState.setMatchedAndChanged(true, true); + return $replacement420; + + } else { + break VISIT72;// switch + + } + } while(false); + + } + + } + return $VISIT72_subject; + }); + return (IConstructor)$visitResult; + + } catch (ReturnFromTraversalException e) { + return (IConstructor) e.getValue(); + } + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/lang/rascal/grammar/ParserGenerator.rsc|(28239,354,<625,0>,<634,1>) + public IConstructor lang_rascal_grammar_ParserGenerator_makeUnique$20b231c389f60af1(IConstructor gr_0){ + + + final ValueRef uniqueItem_1 = new ValueRef("uniqueItem", ((IInteger)$constants.get(0)/*1*/)); + final IMapWriter $mapwriter421 = (IMapWriter)$RVF.mapWriter(); + $MCOMP422_GEN28575: + for(IValue $elem423_for : ((IMap)(((IMap)($aadt_get_field(((IConstructor)gr_0), "rules")))))){ + IConstructor $elem423 = (IConstructor) $elem423_for; + IConstructor s_3 = ((IConstructor)($elem423)); + $mapwriter421.insert($RVF.tuple(s_3, lang_rascal_grammar_ParserGenerator_makeUnique$20b231c389f60af1_rewrite(((IConstructor)($amap_subscript(((IMap)(((IMap)($aadt_get_field(((IConstructor)gr_0), "rules"))))),((IConstructor)s_3)))), uniqueItem_1))); + + } + + return ((IConstructor)(((IConstructor)($aadt_field_update("rules", $mapwriter421.done(), ((IConstructor)gr_0)))))); + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/lang/rascal/grammar/ParserGenerator.rsc|(0,28593,<1,0>,<634,1>) + public IInteger $getkw_Symbol_id(IConstructor $getkw_Symbol_id){ + + + if($getkw_Symbol_id.asWithKeywordParameters().hasParameter("id")){ + return ((IInteger)(((IInteger)$getkw_Symbol_id.asWithKeywordParameters().getParameter("id")))); + + } else { + return ((IInteger)$constants.get(11)/*0*/); + + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/lang/rascal/grammar/ParserGenerator.rsc|(0,28593,<1,0>,<634,1>) + public IString $getkw_Symbol_prefix(IConstructor $getkw_Symbol_prefix){ + + + if($getkw_Symbol_prefix.asWithKeywordParameters().hasParameter("prefix")){ + return ((IString)(((IString)$getkw_Symbol_prefix.asWithKeywordParameters().getParameter("prefix")))); + + } else { + return ((IString)$constants.get(28)/*""*/); + + } + } + + + public static void main(String[] args) { + throw new RuntimeException("No function `main` found in Rascal module `lang::rascal::grammar::ParserGenerator`"); + } +} \ No newline at end of file diff --git a/src/rascal/lang/rascal/grammar/$ParserGenerator.tpl b/src/rascal/lang/rascal/grammar/$ParserGenerator.tpl new file mode 100644 index 00000000000..b4cbaa32797 Binary files /dev/null and b/src/rascal/lang/rascal/grammar/$ParserGenerator.tpl differ diff --git a/src/rascal/lang/rascal/grammar/$ParserGenerator_$I.java b/src/rascal/lang/rascal/grammar/$ParserGenerator_$I.java new file mode 100644 index 00000000000..9e6093327f7 --- /dev/null +++ b/src/rascal/lang/rascal/grammar/$ParserGenerator_$I.java @@ -0,0 +1,32 @@ +package rascal.lang.rascal.grammar; +import io.usethesource.vallang.*; +import org.rascalmpl.runtime.function.*; + +@SuppressWarnings("unused") +public interface $ParserGenerator_$I { + IValue ciliterals2ints(IValue $0); + IValue computeDontNests(IValue $0, IValue $1, IValue $2); + IValue esc(IValue $0); + IValue escId(IValue $0); + IValue generateAltExpects(IValue $0, IValue $1); + IValue generateCharClassArrays(IValue $0); + IValue generateClassConditional(IValue $0); + IValue generateNewItems(IValue $0); + IValue generateParseMethod(IValue $0, IValue $1); + IValue generateRangeConditional(IValue $0); + IValue generateSeparatorExpects(IValue $0, IValue $1); + IValue generateSequenceExpects(IValue $0, IValue $1); + IValue getItemId(IValue $0, IValue $1, IValue $2); + IValue getParserMethodName(IValue $0); + IValue getType(IValue $0); + IValue isNonterminal(IValue $0); + IValue literals2ints(IValue $0); + IValue makeUnique(IValue $0); + IValue newGenerate(IValue $0, IValue $1, IValue $2); + IValue split(IValue $0); + IValue sym2name(IValue $0); + IValue sym2newitem(IValue $0, IValue $1, IValue $2); + IValue uu(IValue $0); + IValue v2i(IValue $0); + IValue value2id(IValue $0); +} \ No newline at end of file diff --git a/src/rascal/lang/rascal/grammar/definition/$Attributes.constants b/src/rascal/lang/rascal/grammar/definition/$Attributes.constants new file mode 100644 index 00000000000..46841cecca6 Binary files /dev/null and b/src/rascal/lang/rascal/grammar/definition/$Attributes.constants differ diff --git a/src/rascal/lang/rascal/grammar/definition/$Attributes.java b/src/rascal/lang/rascal/grammar/definition/$Attributes.java new file mode 100644 index 00000000000..752800414ff --- /dev/null +++ b/src/rascal/lang/rascal/grammar/definition/$Attributes.java @@ -0,0 +1,1314 @@ +package rascal.lang.rascal.grammar.definition; +import java.io.PrintWriter; +import java.io.StringWriter; +import java.io.InputStreamReader; +import java.io.PrintWriter; +import java.util.*; +import java.util.regex.Matcher; +import io.usethesource.vallang.*; +import io.usethesource.vallang.type.*; +import org.rascalmpl.runtime.*; +import org.rascalmpl.runtime.RascalExecutionContext; +import org.rascalmpl.runtime.function.*; +import org.rascalmpl.runtime.traverse.*; +import org.rascalmpl.runtime.utils.*; +import org.rascalmpl.exceptions.RuntimeExceptionFactory; +import org.rascalmpl.exceptions.Throw; +import org.rascalmpl.runtime.RascalExecutionContext; +import org.rascalmpl.interpreter.control_exceptions.Filtered; +import org.rascalmpl.types.NonTerminalType; +import org.rascalmpl.types.RascalTypeFactory; +import org.rascalmpl.util.ExpiringFunctionResultCache; +import org.rascalmpl.values.RascalValueFactory; +import org.rascalmpl.values.ValueFactoryFactory; +import org.rascalmpl.values.parsetrees.ITree; +import org.rascalmpl.values.parsetrees.TreeAdapter; + + + +@SuppressWarnings({"unused","unchecked","deprecation"}) +public class $Attributes + extends + org.rascalmpl.runtime.$RascalModule + implements + rascal.lang.rascal.grammar.definition.$Attributes_$I { + + private final $Attributes_$I $me; + private final IList $constants; + + + public final rascal.lang.rascal.syntax.$Rascal M_lang_rascal_syntax_Rascal; + public final rascal.$Message M_Message; + public final rascal.$ParseTree M_ParseTree; + public final rascal.$ValueIO M_ValueIO; + public final rascal.$Type M_Type; + public final rascal.$List M_List; + public final rascal.util.$Maybe M_util_Maybe; + public final rascal.lang.rascal.grammar.definition.$Literals M_lang_rascal_grammar_definition_Literals; + + + + public final io.usethesource.vallang.type.Type $T4; /*avalue()*/ + public final io.usethesource.vallang.type.Type $T1; /*astr()*/ + public final io.usethesource.vallang.type.Type $T5; /*aparameter("A",avalue(),closed=true)*/ + public final io.usethesource.vallang.type.Type ADT_Replacement; /*aadt("Replacement",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Replacement; /*aadt("Replacement",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Tree; /*aadt("Tree",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type $T2; /*aparameter("T",aadt("Tree",[],dataSyntax()),closed=true)*/ + public final io.usethesource.vallang.type.Type ADT_KeywordArguments_1; /*aadt("KeywordArguments",[aparameter("T",aadt("Tree",[],dataSyntax()),closed=true)],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_KeywordArguments_1; /*aadt("KeywordArguments",[aparameter("T",aadt("Tree",[],dataSyntax()),closed=true)],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_ProtocolChars; /*aadt("ProtocolChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_ProtocolChars; /*aadt("ProtocolChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Visibility; /*aadt("Visibility",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Visibility; /*aadt("Visibility",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_LocalVariableDeclaration; /*aadt("LocalVariableDeclaration",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_LocalVariableDeclaration; /*aadt("LocalVariableDeclaration",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_BooleanLiteral; /*aadt("BooleanLiteral",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_BooleanLiteral; /*aadt("BooleanLiteral",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Expression; /*aadt("Expression",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Expression; /*aadt("Expression",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Mapping_Expression; /*aadt("Mapping",[aadt("Expression",[],contextFreeSyntax())],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Mapping_Expression; /*aadt("Mapping",[aadt("Expression",[],contextFreeSyntax())],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Strategy; /*aadt("Strategy",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Strategy; /*aadt("Strategy",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Attr; /*aadt("Attr",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_MidStringChars; /*aadt("MidStringChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_MidStringChars; /*aadt("MidStringChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_LocationChangeType; /*aadt("LocationChangeType",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_LAYOUT; /*aadt("LAYOUT",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_LAYOUT; /*aadt("LAYOUT",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_TagString; /*aadt("TagString",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_TagString; /*aadt("TagString",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_IOCapability; /*aadt("IOCapability",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_PostProtocolChars; /*aadt("PostProtocolChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_PostProtocolChars; /*aadt("PostProtocolChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_FunctionType; /*aadt("FunctionType",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_FunctionType; /*aadt("FunctionType",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Concrete; /*aadt("Concrete",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Concrete; /*aadt("Concrete",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Pattern; /*aadt("Pattern",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Pattern; /*aadt("Pattern",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Mapping_Pattern; /*aadt("Mapping",[aadt("Pattern",[],contextFreeSyntax())],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Mapping_Pattern; /*aadt("Mapping",[aadt("Pattern",[],contextFreeSyntax())],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Range; /*aadt("Range",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Range; /*aadt("Range",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_DatePart; /*aadt("DatePart",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_DatePart; /*aadt("DatePart",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Output; /*aadt("Output",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Output; /*aadt("Output",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_RationalLiteral; /*aadt("RationalLiteral",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_RationalLiteral; /*aadt("RationalLiteral",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_RegExpLiteral; /*aadt("RegExpLiteral",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_RegExpLiteral; /*aadt("RegExpLiteral",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Item; /*aadt("Item",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Prod; /*aadt("Prod",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Prod; /*aadt("Prod",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_LocationChangeEvent; /*aadt("LocationChangeEvent",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type $T3; /*aparameter("T",aadt("Tree",[],dataSyntax()),closed=false)*/ + public final io.usethesource.vallang.type.Type ADT_SyntaxDefinition; /*aadt("SyntaxDefinition",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_SyntaxDefinition; /*aadt("SyntaxDefinition",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_ModuleParameters; /*aadt("ModuleParameters",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_ModuleParameters; /*aadt("ModuleParameters",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Mapping_1; /*aadt("Mapping",[aparameter("T",aadt("Tree",[],dataSyntax()),closed=true)],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Mapping_1; /*aadt("Mapping",[aparameter("T",aadt("Tree",[],dataSyntax()),closed=true)],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_TimePartNoTZ; /*aadt("TimePartNoTZ",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_TimePartNoTZ; /*aadt("TimePartNoTZ",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Case; /*aadt("Case",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Case; /*aadt("Case",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_ImportedModule; /*aadt("ImportedModule",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_ImportedModule; /*aadt("ImportedModule",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Declarator; /*aadt("Declarator",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Declarator; /*aadt("Declarator",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_GrammarModule; /*aadt("GrammarModule",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_IntegerLiteral; /*aadt("IntegerLiteral",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_IntegerLiteral; /*aadt("IntegerLiteral",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_KeywordArguments_Expression; /*aadt("KeywordArguments",[aadt("Expression",[],contextFreeSyntax())],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_KeywordArguments_Expression; /*aadt("KeywordArguments",[aadt("Expression",[],contextFreeSyntax())],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Target; /*aadt("Target",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Target; /*aadt("Target",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Name; /*aadt("Name",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Name; /*aadt("Name",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Maybe_1; /*aadt("Maybe",[aparameter("A",avalue(),closed=true)],dataSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Renaming; /*aadt("Renaming",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Renaming; /*aadt("Renaming",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Production; /*aadt("Production",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_PostStringChars; /*aadt("PostStringChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_PostStringChars; /*aadt("PostStringChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Catch; /*aadt("Catch",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Catch; /*aadt("Catch",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_OptionalExpression; /*aadt("OptionalExpression",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_OptionalExpression; /*aadt("OptionalExpression",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_GrammarDefinition; /*aadt("GrammarDefinition",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_KeywordFormals; /*aadt("KeywordFormals",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_KeywordFormals; /*aadt("KeywordFormals",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_DataTarget; /*aadt("DataTarget",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_DataTarget; /*aadt("DataTarget",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Field; /*aadt("Field",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Field; /*aadt("Field",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Maybe_Attr; /*aadt("Maybe",[aadt("Attr",[],dataSyntax())],dataSyntax())*/ + public final io.usethesource.vallang.type.Type Maybe_Attr_just_Attr; /*acons(aadt("Maybe",[aadt("Attr",[],dataSyntax())],dataSyntax()),[aadt("Attr",[],dataSyntax(),alabel="val")],[],alabel="just")*/ + public final io.usethesource.vallang.type.Type ADT_LocationLiteral; /*aadt("LocationLiteral",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_LocationLiteral; /*aadt("LocationLiteral",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Tag; /*aadt("Tag",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Tag; /*aadt("Tag",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Type; /*aadt("Type",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Type; /*aadt("Type",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_TimeZonePart; /*aadt("TimeZonePart",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_TimeZonePart; /*aadt("TimeZonePart",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_HexIntegerLiteral; /*aadt("HexIntegerLiteral",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_HexIntegerLiteral; /*aadt("HexIntegerLiteral",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_ShellCommand; /*aadt("ShellCommand",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_ShellCommand; /*aadt("ShellCommand",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_FunctionBody; /*aadt("FunctionBody",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_FunctionBody; /*aadt("FunctionBody",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Declaration; /*aadt("Declaration",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Declaration; /*aadt("Declaration",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_PreStringChars; /*aadt("PreStringChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_PreStringChars; /*aadt("PreStringChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Nonterminal; /*aadt("Nonterminal",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Nonterminal; /*aadt("Nonterminal",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_StringLiteral; /*aadt("StringLiteral",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_StringLiteral; /*aadt("StringLiteral",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Tags; /*aadt("Tags",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Tags; /*aadt("Tags",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_KeywordArguments_Pattern; /*aadt("KeywordArguments",[aadt("Pattern",[],contextFreeSyntax())],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_KeywordArguments_Pattern; /*aadt("KeywordArguments",[aadt("Pattern",[],contextFreeSyntax())],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_NonterminalLabel; /*aadt("NonterminalLabel",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_NonterminalLabel; /*aadt("NonterminalLabel",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Variable; /*aadt("Variable",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Variable; /*aadt("Variable",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_TypeArg; /*aadt("TypeArg",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_TypeArg; /*aadt("TypeArg",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_RegExp; /*aadt("RegExp",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_RegExp; /*aadt("RegExp",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Bound; /*aadt("Bound",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Bound; /*aadt("Bound",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Signature; /*aadt("Signature",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Signature; /*aadt("Signature",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_KeywordArgument_1; /*aadt("KeywordArgument",[aparameter("T",aadt("Tree",[],dataSyntax()),closed=true)],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_KeywordArgument_1; /*aadt("KeywordArgument",[aparameter("T",aadt("Tree",[],dataSyntax()),closed=true)],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Associativity; /*aadt("Associativity",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Renamings; /*aadt("Renamings",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Renamings; /*aadt("Renamings",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_KeywordFormal; /*aadt("KeywordFormal",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_KeywordFormal; /*aadt("KeywordFormal",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_URLChars; /*aadt("URLChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_URLChars; /*aadt("URLChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_ModuleActuals; /*aadt("ModuleActuals",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_ModuleActuals; /*aadt("ModuleActuals",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Condition; /*aadt("Condition",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_PathPart; /*aadt("PathPart",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_PathPart; /*aadt("PathPart",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Class; /*aadt("Class",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Class; /*aadt("Class",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Body; /*aadt("Body",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Body; /*aadt("Body",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_CaseInsensitiveStringConstant; /*aadt("CaseInsensitiveStringConstant",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_CaseInsensitiveStringConstant; /*aadt("CaseInsensitiveStringConstant",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Start; /*aadt("Start",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Start; /*aadt("Start",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_OptionalComma; /*aadt("OptionalComma",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_OptionalComma; /*aadt("OptionalComma",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_PrePathChars; /*aadt("PrePathChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_PrePathChars; /*aadt("PrePathChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_DateAndTime; /*aadt("DateAndTime",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_DateAndTime; /*aadt("DateAndTime",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_RealLiteral; /*aadt("RealLiteral",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_RealLiteral; /*aadt("RealLiteral",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Backslash; /*aadt("Backslash",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Backslash; /*aadt("Backslash",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Char; /*aadt("Char",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Char; /*aadt("Char",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_StringTail; /*aadt("StringTail",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_StringTail; /*aadt("StringTail",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Header; /*aadt("Header",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Header; /*aadt("Header",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_LocationType; /*aadt("LocationType",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Assignment; /*aadt("Assignment",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Assignment; /*aadt("Assignment",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_PatternWithAction; /*aadt("PatternWithAction",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_PatternWithAction; /*aadt("PatternWithAction",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Exception; /*aadt("Exception",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_FunctionDeclaration; /*aadt("FunctionDeclaration",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_FunctionDeclaration; /*aadt("FunctionDeclaration",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_StringConstant; /*aadt("StringConstant",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_StringConstant; /*aadt("StringConstant",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_TypeVar; /*aadt("TypeVar",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_TypeVar; /*aadt("TypeVar",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_JustDate; /*aadt("JustDate",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_JustDate; /*aadt("JustDate",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_ProdModifier; /*aadt("ProdModifier",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_ProdModifier; /*aadt("ProdModifier",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_LAYOUTLIST; /*aadt("LAYOUTLIST",[],layoutSyntax())*/ + public final io.usethesource.vallang.type.Type $T0; /*\iter-star-seps(aadt("ProdModifier",[],contextFreeSyntax()),[aadt("LAYOUTLIST",[],layoutSyntax())])*/ + public final io.usethesource.vallang.type.Type ADT_CharRange; /*aadt("CharRange",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Grammar; /*aadt("Grammar",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_UserType; /*aadt("UserType",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_UserType; /*aadt("UserType",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Import; /*aadt("Import",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Import; /*aadt("Import",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Variant; /*aadt("Variant",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Variant; /*aadt("Variant",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_DataTypeSelector; /*aadt("DataTypeSelector",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_DataTypeSelector; /*aadt("DataTypeSelector",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_TreeSearchResult_1; /*aadt("TreeSearchResult",[aparameter("T",aadt("Tree",[],dataSyntax()),closed=true)],dataSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Message; /*aadt("Message",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_ConcreteHole; /*aadt("ConcreteHole",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_ConcreteHole; /*aadt("ConcreteHole",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_MidPathChars; /*aadt("MidPathChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_MidPathChars; /*aadt("MidPathChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Maybe_Associativity; /*aadt("Maybe",[aadt("Associativity",[],dataSyntax())],dataSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_StringMiddle; /*aadt("StringMiddle",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_StringMiddle; /*aadt("StringMiddle",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Sym; /*aadt("Sym",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Sym; /*aadt("Sym",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_FunctionModifiers; /*aadt("FunctionModifiers",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_FunctionModifiers; /*aadt("FunctionModifiers",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Comprehension; /*aadt("Comprehension",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Comprehension; /*aadt("Comprehension",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_QualifiedName; /*aadt("QualifiedName",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_QualifiedName; /*aadt("QualifiedName",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Formals; /*aadt("Formals",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Formals; /*aadt("Formals",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Module; /*aadt("Module",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Module; /*aadt("Module",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_RascalKeywords; /*aadt("RascalKeywords",[],keywordSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_NamedBackslash; /*aadt("NamedBackslash",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_NamedBackslash; /*aadt("NamedBackslash",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_MidProtocolChars; /*aadt("MidProtocolChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_MidProtocolChars; /*aadt("MidProtocolChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type Maybe_Associativity_just_Associativity; /*acons(aadt("Maybe",[aadt("Associativity",[],dataSyntax())],dataSyntax()),[aadt("Associativity",[],dataSyntax(),alabel="val")],[],alabel="just")*/ + public final io.usethesource.vallang.type.Type ADT_Parameters; /*aadt("Parameters",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Parameters; /*aadt("Parameters",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_OctalIntegerLiteral; /*aadt("OctalIntegerLiteral",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_OctalIntegerLiteral; /*aadt("OctalIntegerLiteral",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Command; /*aadt("Command",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Command; /*aadt("Command",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_StringTemplate; /*aadt("StringTemplate",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_StringTemplate; /*aadt("StringTemplate",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_ProtocolPart; /*aadt("ProtocolPart",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_ProtocolPart; /*aadt("ProtocolPart",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_DateTimeLiteral; /*aadt("DateTimeLiteral",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_DateTimeLiteral; /*aadt("DateTimeLiteral",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_DecimalIntegerLiteral; /*aadt("DecimalIntegerLiteral",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_DecimalIntegerLiteral; /*aadt("DecimalIntegerLiteral",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Kind; /*aadt("Kind",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Kind; /*aadt("Kind",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_RegExpModifier; /*aadt("RegExpModifier",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_RegExpModifier; /*aadt("RegExpModifier",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Label; /*aadt("Label",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Label; /*aadt("Label",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_PreProtocolChars; /*aadt("PreProtocolChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_PreProtocolChars; /*aadt("PreProtocolChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_PathTail; /*aadt("PathTail",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_PathTail; /*aadt("PathTail",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_NamedRegExp; /*aadt("NamedRegExp",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_NamedRegExp; /*aadt("NamedRegExp",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Assoc; /*aadt("Assoc",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Assoc; /*aadt("Assoc",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_RuntimeException; /*aadt("RuntimeException",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_PathChars; /*aadt("PathChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_PathChars; /*aadt("PathChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Toplevel; /*aadt("Toplevel",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Toplevel; /*aadt("Toplevel",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_EvalCommand; /*aadt("EvalCommand",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_EvalCommand; /*aadt("EvalCommand",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_JustTime; /*aadt("JustTime",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_JustTime; /*aadt("JustTime",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_FunctionModifier; /*aadt("FunctionModifier",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_FunctionModifier; /*aadt("FunctionModifier",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_StringCharacter; /*aadt("StringCharacter",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_StringCharacter; /*aadt("StringCharacter",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_PostPathChars; /*aadt("PostPathChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_PostPathChars; /*aadt("PostPathChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Statement; /*aadt("Statement",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Statement; /*aadt("Statement",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_ConcretePart; /*aadt("ConcretePart",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_ConcretePart; /*aadt("ConcretePart",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Literal; /*aadt("Literal",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Literal; /*aadt("Literal",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Commands; /*aadt("Commands",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Commands; /*aadt("Commands",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_ProtocolTail; /*aadt("ProtocolTail",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_ProtocolTail; /*aadt("ProtocolTail",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Comment; /*aadt("Comment",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Comment; /*aadt("Comment",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_StructuredType; /*aadt("StructuredType",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_StructuredType; /*aadt("StructuredType",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Visit; /*aadt("Visit",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Visit; /*aadt("Visit",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_UnicodeEscape; /*aadt("UnicodeEscape",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_UnicodeEscape; /*aadt("UnicodeEscape",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Assignable; /*aadt("Assignable",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Assignable; /*aadt("Assignable",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_BasicType; /*aadt("BasicType",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_BasicType; /*aadt("BasicType",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_CommonKeywordParameters; /*aadt("CommonKeywordParameters",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_CommonKeywordParameters; /*aadt("CommonKeywordParameters",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Symbol; /*aadt("Symbol",[],dataSyntax())*/ + public final IConstructor $R0; /*sort("ProdModifier")*/ + + public $Attributes(RascalExecutionContext rex){ + this(rex, null); + } + + public $Attributes(RascalExecutionContext rex, Object extended){ + super(rex); + this.$me = extended == null ? this : ($Attributes_$I)extended; + ModuleStore mstore = rex.getModuleStore(); + mstore.put(rascal.lang.rascal.grammar.definition.$Attributes.class, this); + + mstore.importModule(rascal.lang.rascal.syntax.$Rascal.class, rex, rascal.lang.rascal.syntax.$Rascal::new); + mstore.importModule(rascal.$Message.class, rex, rascal.$Message::new); + mstore.importModule(rascal.$ParseTree.class, rex, rascal.$ParseTree::new); + mstore.importModule(rascal.$ValueIO.class, rex, rascal.$ValueIO::new); + mstore.importModule(rascal.$Type.class, rex, rascal.$Type::new); + mstore.importModule(rascal.$List.class, rex, rascal.$List::new); + mstore.importModule(rascal.util.$Maybe.class, rex, rascal.util.$Maybe::new); + mstore.importModule(rascal.lang.rascal.grammar.definition.$Literals.class, rex, rascal.lang.rascal.grammar.definition.$Literals::new); + + M_lang_rascal_syntax_Rascal = mstore.getModule(rascal.lang.rascal.syntax.$Rascal.class); + M_Message = mstore.getModule(rascal.$Message.class); + M_ParseTree = mstore.getModule(rascal.$ParseTree.class); + M_ValueIO = mstore.getModule(rascal.$ValueIO.class); + M_Type = mstore.getModule(rascal.$Type.class); + M_List = mstore.getModule(rascal.$List.class); + M_util_Maybe = mstore.getModule(rascal.util.$Maybe.class); + M_lang_rascal_grammar_definition_Literals = mstore.getModule(rascal.lang.rascal.grammar.definition.$Literals.class); + + + + $TS.importStore(M_lang_rascal_syntax_Rascal.$TS); + $TS.importStore(M_Message.$TS); + $TS.importStore(M_ParseTree.$TS); + $TS.importStore(M_ValueIO.$TS); + $TS.importStore(M_Type.$TS); + $TS.importStore(M_List.$TS); + $TS.importStore(M_util_Maybe.$TS); + $TS.importStore(M_lang_rascal_grammar_definition_Literals.$TS); + + $constants = readBinaryConstantsFile(this.getClass(), "rascal/lang/rascal/grammar/definition/$Attributes.constants", 1828, "3c512e3f476a3131527030fcadc0da2b"); + NT_Replacement = $sort("Replacement"); + ADT_Replacement = $adt("Replacement"); + ADT_Tree = $adt("Tree"); + NT_ProtocolChars = $lex("ProtocolChars"); + ADT_ProtocolChars = $adt("ProtocolChars"); + NT_Visibility = $sort("Visibility"); + ADT_Visibility = $adt("Visibility"); + NT_LocalVariableDeclaration = $sort("LocalVariableDeclaration"); + ADT_LocalVariableDeclaration = $adt("LocalVariableDeclaration"); + NT_BooleanLiteral = $lex("BooleanLiteral"); + ADT_BooleanLiteral = $adt("BooleanLiteral"); + NT_Expression = $sort("Expression"); + ADT_Expression = $adt("Expression"); + NT_Strategy = $sort("Strategy"); + ADT_Strategy = $adt("Strategy"); + ADT_Attr = $adt("Attr"); + NT_MidStringChars = $lex("MidStringChars"); + ADT_MidStringChars = $adt("MidStringChars"); + ADT_LocationChangeType = $adt("LocationChangeType"); + NT_LAYOUT = $lex("LAYOUT"); + ADT_LAYOUT = $adt("LAYOUT"); + NT_TagString = $lex("TagString"); + ADT_TagString = $adt("TagString"); + ADT_IOCapability = $adt("IOCapability"); + NT_PostProtocolChars = $lex("PostProtocolChars"); + ADT_PostProtocolChars = $adt("PostProtocolChars"); + NT_FunctionType = $sort("FunctionType"); + ADT_FunctionType = $adt("FunctionType"); + NT_Concrete = $lex("Concrete"); + ADT_Concrete = $adt("Concrete"); + NT_Pattern = $sort("Pattern"); + ADT_Pattern = $adt("Pattern"); + NT_Range = $sort("Range"); + ADT_Range = $adt("Range"); + NT_DatePart = $lex("DatePart"); + ADT_DatePart = $adt("DatePart"); + NT_Output = $lex("Output"); + ADT_Output = $adt("Output"); + NT_RationalLiteral = $lex("RationalLiteral"); + ADT_RationalLiteral = $adt("RationalLiteral"); + NT_RegExpLiteral = $lex("RegExpLiteral"); + ADT_RegExpLiteral = $adt("RegExpLiteral"); + ADT_Item = $adt("Item"); + NT_Prod = $sort("Prod"); + ADT_Prod = $adt("Prod"); + ADT_LocationChangeEvent = $adt("LocationChangeEvent"); + NT_SyntaxDefinition = $sort("SyntaxDefinition"); + ADT_SyntaxDefinition = $adt("SyntaxDefinition"); + NT_ModuleParameters = $sort("ModuleParameters"); + ADT_ModuleParameters = $adt("ModuleParameters"); + NT_TimePartNoTZ = $lex("TimePartNoTZ"); + ADT_TimePartNoTZ = $adt("TimePartNoTZ"); + NT_Case = $sort("Case"); + ADT_Case = $adt("Case"); + NT_ImportedModule = $sort("ImportedModule"); + ADT_ImportedModule = $adt("ImportedModule"); + NT_Declarator = $sort("Declarator"); + ADT_Declarator = $adt("Declarator"); + ADT_GrammarModule = $adt("GrammarModule"); + NT_IntegerLiteral = $sort("IntegerLiteral"); + ADT_IntegerLiteral = $adt("IntegerLiteral"); + NT_Target = $sort("Target"); + ADT_Target = $adt("Target"); + NT_Name = $lex("Name"); + ADT_Name = $adt("Name"); + NT_Renaming = $sort("Renaming"); + ADT_Renaming = $adt("Renaming"); + ADT_Production = $adt("Production"); + NT_PostStringChars = $lex("PostStringChars"); + ADT_PostStringChars = $adt("PostStringChars"); + NT_Catch = $sort("Catch"); + ADT_Catch = $adt("Catch"); + NT_OptionalExpression = $sort("OptionalExpression"); + ADT_OptionalExpression = $adt("OptionalExpression"); + ADT_GrammarDefinition = $adt("GrammarDefinition"); + NT_KeywordFormals = $sort("KeywordFormals"); + ADT_KeywordFormals = $adt("KeywordFormals"); + NT_DataTarget = $sort("DataTarget"); + ADT_DataTarget = $adt("DataTarget"); + NT_Field = $sort("Field"); + ADT_Field = $adt("Field"); + NT_LocationLiteral = $sort("LocationLiteral"); + ADT_LocationLiteral = $adt("LocationLiteral"); + NT_Tag = $sort("Tag"); + ADT_Tag = $adt("Tag"); + NT_Type = $sort("Type"); + ADT_Type = $adt("Type"); + NT_TimeZonePart = $lex("TimeZonePart"); + ADT_TimeZonePart = $adt("TimeZonePart"); + NT_HexIntegerLiteral = $lex("HexIntegerLiteral"); + ADT_HexIntegerLiteral = $adt("HexIntegerLiteral"); + NT_ShellCommand = $sort("ShellCommand"); + ADT_ShellCommand = $adt("ShellCommand"); + NT_FunctionBody = $sort("FunctionBody"); + ADT_FunctionBody = $adt("FunctionBody"); + NT_Declaration = $sort("Declaration"); + ADT_Declaration = $adt("Declaration"); + NT_PreStringChars = $lex("PreStringChars"); + ADT_PreStringChars = $adt("PreStringChars"); + NT_Nonterminal = $lex("Nonterminal"); + ADT_Nonterminal = $adt("Nonterminal"); + NT_StringLiteral = $sort("StringLiteral"); + ADT_StringLiteral = $adt("StringLiteral"); + NT_Tags = $sort("Tags"); + ADT_Tags = $adt("Tags"); + NT_NonterminalLabel = $lex("NonterminalLabel"); + ADT_NonterminalLabel = $adt("NonterminalLabel"); + NT_Variable = $sort("Variable"); + ADT_Variable = $adt("Variable"); + NT_TypeArg = $sort("TypeArg"); + ADT_TypeArg = $adt("TypeArg"); + NT_RegExp = $lex("RegExp"); + ADT_RegExp = $adt("RegExp"); + NT_Bound = $sort("Bound"); + ADT_Bound = $adt("Bound"); + NT_Signature = $sort("Signature"); + ADT_Signature = $adt("Signature"); + ADT_Associativity = $adt("Associativity"); + NT_Renamings = $sort("Renamings"); + ADT_Renamings = $adt("Renamings"); + NT_KeywordFormal = $sort("KeywordFormal"); + ADT_KeywordFormal = $adt("KeywordFormal"); + NT_URLChars = $lex("URLChars"); + ADT_URLChars = $adt("URLChars"); + NT_ModuleActuals = $sort("ModuleActuals"); + ADT_ModuleActuals = $adt("ModuleActuals"); + ADT_Condition = $adt("Condition"); + NT_PathPart = $sort("PathPart"); + ADT_PathPart = $adt("PathPart"); + NT_Class = $sort("Class"); + ADT_Class = $adt("Class"); + NT_Body = $sort("Body"); + ADT_Body = $adt("Body"); + NT_CaseInsensitiveStringConstant = $lex("CaseInsensitiveStringConstant"); + ADT_CaseInsensitiveStringConstant = $adt("CaseInsensitiveStringConstant"); + NT_Start = $sort("Start"); + ADT_Start = $adt("Start"); + NT_OptionalComma = $lex("OptionalComma"); + ADT_OptionalComma = $adt("OptionalComma"); + NT_PrePathChars = $lex("PrePathChars"); + ADT_PrePathChars = $adt("PrePathChars"); + NT_DateAndTime = $lex("DateAndTime"); + ADT_DateAndTime = $adt("DateAndTime"); + NT_RealLiteral = $lex("RealLiteral"); + ADT_RealLiteral = $adt("RealLiteral"); + NT_Backslash = $lex("Backslash"); + ADT_Backslash = $adt("Backslash"); + NT_Char = $lex("Char"); + ADT_Char = $adt("Char"); + NT_StringTail = $sort("StringTail"); + ADT_StringTail = $adt("StringTail"); + NT_Header = $sort("Header"); + ADT_Header = $adt("Header"); + ADT_LocationType = $adt("LocationType"); + NT_Assignment = $sort("Assignment"); + ADT_Assignment = $adt("Assignment"); + NT_PatternWithAction = $sort("PatternWithAction"); + ADT_PatternWithAction = $adt("PatternWithAction"); + ADT_Exception = $adt("Exception"); + NT_FunctionDeclaration = $sort("FunctionDeclaration"); + ADT_FunctionDeclaration = $adt("FunctionDeclaration"); + NT_StringConstant = $lex("StringConstant"); + ADT_StringConstant = $adt("StringConstant"); + NT_TypeVar = $sort("TypeVar"); + ADT_TypeVar = $adt("TypeVar"); + NT_JustDate = $lex("JustDate"); + ADT_JustDate = $adt("JustDate"); + NT_ProdModifier = $sort("ProdModifier"); + ADT_ProdModifier = $adt("ProdModifier"); + ADT_LAYOUTLIST = $layouts("LAYOUTLIST"); + ADT_CharRange = $adt("CharRange"); + ADT_Grammar = $adt("Grammar"); + NT_UserType = $sort("UserType"); + ADT_UserType = $adt("UserType"); + NT_Import = $sort("Import"); + ADT_Import = $adt("Import"); + NT_Variant = $sort("Variant"); + ADT_Variant = $adt("Variant"); + NT_DataTypeSelector = $sort("DataTypeSelector"); + ADT_DataTypeSelector = $adt("DataTypeSelector"); + ADT_Message = $adt("Message"); + NT_ConcreteHole = $sort("ConcreteHole"); + ADT_ConcreteHole = $adt("ConcreteHole"); + NT_MidPathChars = $lex("MidPathChars"); + ADT_MidPathChars = $adt("MidPathChars"); + NT_StringMiddle = $sort("StringMiddle"); + ADT_StringMiddle = $adt("StringMiddle"); + NT_Sym = $sort("Sym"); + ADT_Sym = $adt("Sym"); + NT_FunctionModifiers = $sort("FunctionModifiers"); + ADT_FunctionModifiers = $adt("FunctionModifiers"); + NT_Comprehension = $sort("Comprehension"); + ADT_Comprehension = $adt("Comprehension"); + NT_QualifiedName = $sort("QualifiedName"); + ADT_QualifiedName = $adt("QualifiedName"); + NT_Formals = $sort("Formals"); + ADT_Formals = $adt("Formals"); + NT_Module = $sort("Module"); + ADT_Module = $adt("Module"); + ADT_RascalKeywords = $keywords("RascalKeywords"); + NT_NamedBackslash = $lex("NamedBackslash"); + ADT_NamedBackslash = $adt("NamedBackslash"); + NT_MidProtocolChars = $lex("MidProtocolChars"); + ADT_MidProtocolChars = $adt("MidProtocolChars"); + NT_Parameters = $sort("Parameters"); + ADT_Parameters = $adt("Parameters"); + NT_OctalIntegerLiteral = $lex("OctalIntegerLiteral"); + ADT_OctalIntegerLiteral = $adt("OctalIntegerLiteral"); + NT_Command = $sort("Command"); + ADT_Command = $adt("Command"); + NT_StringTemplate = $sort("StringTemplate"); + ADT_StringTemplate = $adt("StringTemplate"); + NT_ProtocolPart = $sort("ProtocolPart"); + ADT_ProtocolPart = $adt("ProtocolPart"); + NT_DateTimeLiteral = $sort("DateTimeLiteral"); + ADT_DateTimeLiteral = $adt("DateTimeLiteral"); + NT_DecimalIntegerLiteral = $lex("DecimalIntegerLiteral"); + ADT_DecimalIntegerLiteral = $adt("DecimalIntegerLiteral"); + NT_Kind = $sort("Kind"); + ADT_Kind = $adt("Kind"); + NT_RegExpModifier = $lex("RegExpModifier"); + ADT_RegExpModifier = $adt("RegExpModifier"); + NT_Label = $sort("Label"); + ADT_Label = $adt("Label"); + NT_PreProtocolChars = $lex("PreProtocolChars"); + ADT_PreProtocolChars = $adt("PreProtocolChars"); + NT_PathTail = $sort("PathTail"); + ADT_PathTail = $adt("PathTail"); + NT_NamedRegExp = $lex("NamedRegExp"); + ADT_NamedRegExp = $adt("NamedRegExp"); + NT_Assoc = $sort("Assoc"); + ADT_Assoc = $adt("Assoc"); + ADT_RuntimeException = $adt("RuntimeException"); + NT_PathChars = $lex("PathChars"); + ADT_PathChars = $adt("PathChars"); + NT_Toplevel = $sort("Toplevel"); + ADT_Toplevel = $adt("Toplevel"); + NT_EvalCommand = $sort("EvalCommand"); + ADT_EvalCommand = $adt("EvalCommand"); + NT_JustTime = $lex("JustTime"); + ADT_JustTime = $adt("JustTime"); + NT_FunctionModifier = $sort("FunctionModifier"); + ADT_FunctionModifier = $adt("FunctionModifier"); + NT_StringCharacter = $lex("StringCharacter"); + ADT_StringCharacter = $adt("StringCharacter"); + NT_PostPathChars = $lex("PostPathChars"); + ADT_PostPathChars = $adt("PostPathChars"); + NT_Statement = $sort("Statement"); + ADT_Statement = $adt("Statement"); + NT_ConcretePart = $lex("ConcretePart"); + ADT_ConcretePart = $adt("ConcretePart"); + NT_Literal = $sort("Literal"); + ADT_Literal = $adt("Literal"); + NT_Commands = $sort("Commands"); + ADT_Commands = $adt("Commands"); + NT_ProtocolTail = $sort("ProtocolTail"); + ADT_ProtocolTail = $adt("ProtocolTail"); + NT_Comment = $lex("Comment"); + ADT_Comment = $adt("Comment"); + NT_StructuredType = $sort("StructuredType"); + ADT_StructuredType = $adt("StructuredType"); + NT_Visit = $sort("Visit"); + ADT_Visit = $adt("Visit"); + NT_UnicodeEscape = $lex("UnicodeEscape"); + ADT_UnicodeEscape = $adt("UnicodeEscape"); + NT_Assignable = $sort("Assignable"); + ADT_Assignable = $adt("Assignable"); + NT_BasicType = $sort("BasicType"); + ADT_BasicType = $adt("BasicType"); + NT_CommonKeywordParameters = $sort("CommonKeywordParameters"); + ADT_CommonKeywordParameters = $adt("CommonKeywordParameters"); + ADT_Symbol = $adt("Symbol"); + $T4 = $TF.valueType(); + $T1 = $TF.stringType(); + $T5 = $TF.parameterType("A", $T4); + $T2 = $TF.parameterType("T", ADT_Tree); + NT_KeywordArguments_1 = $parameterizedSort("KeywordArguments", new Type[] { $T2 }, $RVF.list($RVF.constructor(RascalValueFactory.Symbol_Parameter, $RVF.string("T"), $RVF.constructor(RascalValueFactory.Symbol_Adt, $RVF.string("Tree"), $RVF.list())))); + NT_Mapping_Expression = $parameterizedSort("Mapping", new Type[] { ADT_Expression }, $RVF.list($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Expression")))); + NT_Mapping_Pattern = $parameterizedSort("Mapping", new Type[] { ADT_Pattern }, $RVF.list($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Pattern")))); + $T3 = $TF.parameterType("T", ADT_Tree); + NT_Mapping_1 = $parameterizedSort("Mapping", new Type[] { $T2 }, $RVF.list($RVF.constructor(RascalValueFactory.Symbol_Parameter, $RVF.string("T"), $RVF.constructor(RascalValueFactory.Symbol_Adt, $RVF.string("Tree"), $RVF.list())))); + NT_KeywordArguments_Expression = $parameterizedSort("KeywordArguments", new Type[] { ADT_Expression }, $RVF.list($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Expression")))); + ADT_Maybe_1 = $parameterizedAdt("Maybe", new Type[] { $T5 }); + ADT_Maybe_Attr = $parameterizedAdt("Maybe", new Type[] { ADT_Attr }); + NT_KeywordArguments_Pattern = $parameterizedSort("KeywordArguments", new Type[] { ADT_Pattern }, $RVF.list($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Pattern")))); + NT_KeywordArgument_1 = $parameterizedSort("KeywordArgument", new Type[] { $T2 }, $RVF.list($RVF.constructor(RascalValueFactory.Symbol_Parameter, $RVF.string("T"), $RVF.constructor(RascalValueFactory.Symbol_Adt, $RVF.string("Tree"), $RVF.list())))); + $T0 = $RTF.nonTerminalType($RVF.constructor(RascalValueFactory.Symbol_IterStarSeps, $RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("ProdModifier")), $RVF.list($RVF.constructor(RascalValueFactory.Symbol_Layouts, $RVF.string("LAYOUTLIST"))))); + ADT_TreeSearchResult_1 = $parameterizedAdt("TreeSearchResult", new Type[] { $T2 }); + ADT_Maybe_Associativity = $parameterizedAdt("Maybe", new Type[] { ADT_Associativity }); + ADT_KeywordArguments_1 = $TF.abstractDataType($TS, "KeywordArguments", new Type[] { $T2 }); + ADT_Mapping_Expression = $TF.abstractDataType($TS, "Mapping", new Type[] { ADT_Expression }); + ADT_Mapping_Pattern = $TF.abstractDataType($TS, "Mapping", new Type[] { ADT_Pattern }); + ADT_Mapping_1 = $TF.abstractDataType($TS, "Mapping", new Type[] { $T2 }); + ADT_KeywordArguments_Expression = $TF.abstractDataType($TS, "KeywordArguments", new Type[] { ADT_Expression }); + ADT_KeywordArguments_Pattern = $TF.abstractDataType($TS, "KeywordArguments", new Type[] { ADT_Pattern }); + ADT_KeywordArgument_1 = $TF.abstractDataType($TS, "KeywordArgument", new Type[] { $T2 }); + Maybe_Attr_just_Attr = $TF.constructor($TS, ADT_Maybe_Attr, "just", M_ParseTree.ADT_Attr, "val"); + Maybe_Associativity_just_Associativity = $TF.constructor($TS, ADT_Maybe_Associativity, "just", M_ParseTree.ADT_Associativity, "val"); + $R0 = $RVF.reifiedType(((IConstructor)$constants.get(2)/*sort("ProdModifier")*/), ((IMap)$constants.get(3)/*(lex("RealLiteral"):choice(lex("RealLiteral"),{prod(lex("RealLiteral"),[conditional(lit("."),{\not-p ...*/)); + + + + } + public IList addLabels(IValue $P0, IValue $P1){ // Generated by Resolver + return (IList) M_Type.addLabels($P0, $P1); + } + public IBool sameType(IValue $P0, IValue $P1){ // Generated by Resolver + return (IBool) M_ParseTree.sameType($P0, $P1); + } + public IValue head(IValue $P0){ // Generated by Resolver + return (IValue) M_List.head($P0); + } + public IBool isAliasType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isAliasType($P0); + } + public IBool isStrType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isStrType($P0); + } + public ISet mods2attrs(IValue $P0){ // Generated by Resolver + ISet $result = null; + Type $P0Type = $P0.getType(); + if($isSubtypeOf($P0Type,$T0)){ + $result = (ISet)lang_rascal_grammar_definition_Attributes_mods2attrs$bbe95615ef7b7861((ITree) $P0); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0)); + } + public IConstructor choice(IValue $P0, IValue $P1){ // Generated by Resolver + return (IConstructor) M_Type.choice($P0, $P1); + } + public IBool isValueType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isValueType($P0); + } + public IBool isADTType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isADTType($P0); + } + public IConstructor mod2attr(IValue $P0){ // Generated by Resolver + IConstructor $result = null; + Type $P0Type = $P0.getType(); + if($isNonTerminal($P0Type, M_lang_rascal_syntax_Rascal.NT_ProdModifier)){ + $result = (IConstructor)lang_rascal_grammar_definition_Attributes_mod2attr$259fb7adf22d17e3((ITree) $P0); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0)); + } + public IBool isListType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isListType($P0); + } + public IBool isRealType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isRealType($P0); + } + public IBool isTypeVar(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isTypeVar($P0); + } + public IConstructor testAssoc(IValue $P0){ // Generated by Resolver + IConstructor $result = null; + Type $P0Type = $P0.getType(); + if($isSubtypeOf($P0Type,$T1)){ + $result = (IConstructor)lang_rascal_grammar_definition_Attributes_testAssoc$ad38638c95ce244a((IString) $P0); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0)); + } + public IConstructor priority(IValue $P0, IValue $P1){ // Generated by Resolver + return (IConstructor) M_ParseTree.priority($P0, $P1); + } + public IConstructor mod2assoc(IValue $P0){ // Generated by Resolver + IConstructor $result = null; + Type $P0Type = $P0.getType(); + if($isNonTerminal($P0Type, M_lang_rascal_syntax_Rascal.NT_ProdModifier)){ + $result = (IConstructor)lang_rascal_grammar_definition_Attributes_mod2assoc$a529f2c43afca7e7((ITree) $P0); + if($result != null) return $result; + $result = (IConstructor)lang_rascal_grammar_definition_Attributes_mod2assoc$48eb5a40e953347a((ITree) $P0); + if($result != null) return $result; + $result = (IConstructor)lang_rascal_grammar_definition_Attributes_mod2assoc$ad9fc125958039a0((ITree) $P0); + if($result != null) return $result; + $result = (IConstructor)lang_rascal_grammar_definition_Attributes_mod2assoc$f84f61a245a5a1eb((ITree) $P0); + if($result != null) return $result; + $result = (IConstructor)lang_rascal_grammar_definition_Attributes_mod2assoc$a66e8e33d86dd194((ITree) $P0); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0)); + } + public IBool isNodeType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isNodeType($P0); + } + public IBool isReifiedType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isReifiedType($P0); + } + public IBool isRelType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isRelType($P0); + } + public IBool isConstructorType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isConstructorType($P0); + } + public IBool isListRelType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isListRelType($P0); + } + public IList addParamLabels(IValue $P0, IValue $P1){ // Generated by Resolver + return (IList) M_Type.addParamLabels($P0, $P1); + } + public IBool isMapType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isMapType($P0); + } + public IBool isBoolType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isBoolType($P0); + } + public IList tail(IValue $P0){ // Generated by Resolver + return (IList) M_List.tail($P0); + } + public IBool isLocType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isLocType($P0); + } + public ITuple headTail(IValue $P0){ // Generated by Resolver + return (ITuple) M_List.headTail($P0); + } + public IConstructor treeAt(IValue $P0, IValue $P1, IValue $P2){ // Generated by Resolver + return (IConstructor) M_ParseTree.treeAt($P0, $P1, $P2); + } + public IBool isSetType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isSetType($P0); + } + public IConstructor mods2assoc(IValue $P0){ // Generated by Resolver + IConstructor $result = null; + Type $P0Type = $P0.getType(); + if($isSubtypeOf($P0Type,$T0)){ + $result = (IConstructor)lang_rascal_grammar_definition_Attributes_mods2assoc$650c3881c5f8d439((ITree) $P0); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0)); + } + public IBool isRatType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isRatType($P0); + } + public IString unescapeLiteral(IValue $P0){ // Generated by Resolver + return (IString) M_lang_rascal_grammar_definition_Literals.unescapeLiteral($P0); + } + public IBool isNumType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isNumType($P0); + } + public IBool isTupleType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isTupleType($P0); + } + public IBool isBagType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isBagType($P0); + } + public IBool isVoidType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isVoidType($P0); + } + public IBool isNonTerminalType(IValue $P0){ // Generated by Resolver + return (IBool) M_ParseTree.isNonTerminalType($P0); + } + public IValue lub(IValue $P0, IValue $P1){ // Generated by Resolver + return (IValue) M_Type.lub($P0, $P1); + } + public IBool subtype(IValue $P0, IValue $P1){ // Generated by Resolver + return (IBool) M_Type.subtype($P0, $P1); + } + public IConstructor associativity(IValue $P0, IValue $P1, IValue $P2){ // Generated by Resolver + return (IConstructor) M_ParseTree.associativity($P0, $P1, $P2); + } + public IConstructor attribute(IValue $P0, IValue $P1){ // Generated by Resolver + IConstructor $result = null; + Type $P0Type = $P0.getType(); + Type $P1Type = $P1.getType(); + if($isSubtypeOf($P0Type, M_ParseTree.ADT_Production) && $isSubtypeOf($P1Type, M_ParseTree.ADT_Attr)){ + $result = (IConstructor)lang_rascal_grammar_definition_Attributes_attribute$9cb5a000f5f02697((IConstructor) $P0, (IConstructor) $P1); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0, $P1)); + } + public IBool isFunctionType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isFunctionType($P0); + } + public IValue glb(IValue $P0, IValue $P1){ // Generated by Resolver + return (IValue) M_Type.glb($P0, $P1); + } + public IBool isIntType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isIntType($P0); + } + public IBool isDateTimeType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isDateTimeType($P0); + } + public IValue readTextValueString(IValue $P0){ // Generated by Resolver + return (IValue) M_ValueIO.readTextValueString($P0); + } + public IValue readTextValueString(IValue $P0, IValue $P1){ // Generated by Resolver + return (IValue) M_ValueIO.readTextValueString($P0, $P1); + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/lang/rascal/grammar/definition/Attributes.rsc|(483,136,<16,0>,<17,76>) + public IConstructor lang_rascal_grammar_definition_Attributes_attribute$9cb5a000f5f02697(IConstructor p_0, IConstructor a_1){ + + + return ((IConstructor)(((IConstructor)($aadt_field_update("attributes", $aset_add_aset(((ISet)(((ISet)($aadt_get_field(((IConstructor)p_0), "attributes"))))),((ISet)($RVF.set(((IConstructor)a_1))))), ((IConstructor)p_0)))))); + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/lang/rascal/grammar/definition/Attributes.rsc|(621,101,<19,0>,<19,101>) + public ISet lang_rascal_grammar_definition_Attributes_mods2attrs$bbe95615ef7b7861(ITree mods_0){ + + + final ISetWriter $setwriter0 = (ISetWriter)$RVF.setWriter(); + ; + final ITree $exp5 = ((ITree)mods_0); + final int $last6 = (int)((ITree)($exp5)).getArgs().length() - 1; + $SCOMP1_GEN669: + + for(int $i7 = 0; $i7 <= $last6; $i7 += 2){ + final ITree $elem4 = ((ITree)($iter_subscript($exp5, $i7))); + if(true){ + ITree m_1 = ((ITree)($elem4)); + final IConstructor $subject_val2 = ((IConstructor)($me.mod2attr(((ITree)m_1)))); + if($has_type_and_arity($subject_val2, Maybe_Attr_just_Attr, 1)){ + IValue $arg0_3 = (IValue)($aadt_subscript_int(((IConstructor)($subject_val2)),0)); + if($isComparable($arg0_3.getType(), M_ParseTree.ADT_Attr)){ + IConstructor x_2 = null; + $setwriter0.insert($arg0_3); + + } else { + continue $SCOMP1_GEN669; + } + } else { + continue $SCOMP1_GEN669; + } + } else { + continue $SCOMP1_GEN669; + } + } + + return ((ISet)($setwriter0.done())); + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/lang/rascal/grammar/definition/Attributes.rsc|(724,1131,<21,0>,<40,1>) + public IConstructor lang_rascal_grammar_definition_Attributes_mod2attr$259fb7adf22d17e3(ITree m_0){ + + + final ITree $switchVal8 = ((ITree)m_0); + boolean noCaseMatched_$switchVal8 = true; + SWITCH0: switch(Fingerprint.getFingerprint($switchVal8)){ + + case 0: + if(noCaseMatched_$switchVal8){ + noCaseMatched_$switchVal8 = false; + + } + + + default: if($isSubtypeOf($switchVal8.getType(),M_lang_rascal_syntax_Rascal.NT_ProdModifier)){ + /*muExists*/CASE_0_0: + do { + if($nonterminal_has_name_and_arity($switchVal8, "associativity", 1)){ + IValue $arg0_11 = (IValue)($nonterminal_get_arg(((ITree)((ITree)($switchVal8))), ((IInteger)$constants.get(0)/*0*/).intValue())); + if($isComparable($arg0_11.getType(), M_lang_rascal_syntax_Rascal.NT_Assoc)){ + final IConstructor $subject_val9 = ((IConstructor)($me.mod2assoc(((ITree)m_0)))); + if($has_type_and_arity($subject_val9, Maybe_Associativity_just_Associativity, 1)){ + IValue $arg0_10 = (IValue)($aadt_subscript_int(((IConstructor)($subject_val9)),0)); + if($isComparable($arg0_10.getType(), M_ParseTree.ADT_Associativity)){ + IConstructor lra_1 = null; + return ((IConstructor)($RVF.constructor(Maybe_Attr_just_Attr, new IValue[]{((IConstructor)($RVF.constructor(M_ParseTree.Attr_assoc_Associativity, new IValue[]{((IConstructor)($arg0_10))})))}))); + + } else { + return ((IConstructor)($RVF.constructor(M_util_Maybe.Maybe_1_nothing_, new IValue[]{}))); + + } + } else { + return ((IConstructor)($RVF.constructor(M_util_Maybe.Maybe_1_nothing_, new IValue[]{}))); + + } + } + + } + + } while(false); + + } + if($isSubtypeOf($switchVal8.getType(),M_lang_rascal_syntax_Rascal.NT_ProdModifier)){ + /*muExists*/CASE_0_1: + do { + if($nonterminal_has_name_and_arity($switchVal8, "bracket", 0)){ + return ((IConstructor)($RVF.constructor(Maybe_Attr_just_Attr, new IValue[]{((IConstructor)($RVF.constructor(M_ParseTree.Attr_bracket_, new IValue[]{})))}))); + + } + + } while(false); + + } + if($isSubtypeOf($switchVal8.getType(),M_lang_rascal_syntax_Rascal.NT_ProdModifier)){ + /*muExists*/CASE_0_2: + do { + if($nonterminal_has_name_and_arity($switchVal8, "tag", 1)){ + IValue $arg0_14 = (IValue)($nonterminal_get_arg(((ITree)((ITree)($switchVal8))), ((IInteger)$constants.get(0)/*0*/).intValue())); + if($isComparable($arg0_14.getType(), M_lang_rascal_syntax_Rascal.NT_Tag)){ + if($nonterminal_has_name_and_arity($arg0_14, "default", 2)){ + IValue $arg0_16 = (IValue)($nonterminal_get_arg(((ITree)((ITree)($arg0_14))), ((IInteger)$constants.get(0)/*0*/).intValue())); + if($isComparable($arg0_16.getType(), M_lang_rascal_syntax_Rascal.NT_Name)){ + ITree n_2 = null; + IValue $arg1_15 = (IValue)($nonterminal_get_arg(((ITree)((ITree)($arg0_14))), ((IInteger)$constants.get(1)/*1*/).intValue())); + if($isComparable($arg1_15.getType(), M_lang_rascal_syntax_Rascal.NT_TagString)){ + ITree s_3 = null; + final Template $template12 = (Template)new Template($RVF, ""); + $template12.addVal($arg0_16); + final Template $template13 = (Template)new Template($RVF, ""); + $template13.addVal($arg1_15); + return ((IConstructor)($RVF.constructor(Maybe_Attr_just_Attr, new IValue[]{((IConstructor)($RVF.constructor(M_Type.Attr_tag_value, new IValue[]{((IValue)($RVF.node(((IString)($template12.close())).getValue(), new IValue[] { $template13.close() }, Collections.emptyMap())))})))}))); + + } + + } + + } + + } + + } + + } while(false); + + } + if($isSubtypeOf($switchVal8.getType(),M_lang_rascal_syntax_Rascal.NT_ProdModifier)){ + /*muExists*/CASE_0_3: + do { + if($nonterminal_has_name_and_arity($switchVal8, "tag", 1)){ + IValue $arg0_18 = (IValue)($nonterminal_get_arg(((ITree)((ITree)($switchVal8))), ((IInteger)$constants.get(0)/*0*/).intValue())); + if($isComparable($arg0_18.getType(), M_lang_rascal_syntax_Rascal.NT_Tag)){ + if($nonterminal_has_name_and_arity($arg0_18, "empty", 1)){ + IValue $arg0_19 = (IValue)($nonterminal_get_arg(((ITree)((ITree)($arg0_18))), ((IInteger)$constants.get(0)/*0*/).intValue())); + if($isComparable($arg0_19.getType(), M_lang_rascal_syntax_Rascal.NT_Name)){ + ITree n_4 = null; + final Template $template17 = (Template)new Template($RVF, ""); + $template17.addVal($arg0_19); + return ((IConstructor)($RVF.constructor(Maybe_Attr_just_Attr, new IValue[]{((IConstructor)($RVF.constructor(M_Type.Attr_tag_value, new IValue[]{((IValue)($RVF.node(((IString)($template17.close())).getValue(), new IValue[] { }, Collections.emptyMap())))})))}))); + + } + + } + + } + + } + + } while(false); + + } + if($isSubtypeOf($switchVal8.getType(),M_lang_rascal_syntax_Rascal.NT_ProdModifier)){ + /*muExists*/CASE_0_4: + do { + if($nonterminal_has_name_and_arity($switchVal8, "tag", 1)){ + IValue $arg0_22 = (IValue)($nonterminal_get_arg(((ITree)((ITree)($switchVal8))), ((IInteger)$constants.get(0)/*0*/).intValue())); + if($isComparable($arg0_22.getType(), M_lang_rascal_syntax_Rascal.NT_Tag)){ + if($nonterminal_has_name_and_arity($arg0_22, "expression", 2)){ + IValue $arg0_27 = (IValue)($nonterminal_get_arg(((ITree)((ITree)($arg0_22))), ((IInteger)$constants.get(0)/*0*/).intValue())); + if($isComparable($arg0_27.getType(), M_lang_rascal_syntax_Rascal.NT_Name)){ + ITree n_5 = ((ITree)($arg0_27)); + IValue $arg1_23 = (IValue)($nonterminal_get_arg(((ITree)((ITree)($arg0_22))), ((IInteger)$constants.get(1)/*1*/).intValue())); + if($isComparable($arg1_23.getType(), M_lang_rascal_syntax_Rascal.NT_Expression)){ + if($nonterminal_has_name_and_arity($arg1_23, "literal", 1)){ + IValue $arg0_24 = (IValue)($nonterminal_get_arg(((ITree)((ITree)($arg1_23))), ((IInteger)$constants.get(0)/*0*/).intValue())); + if($isComparable($arg0_24.getType(), M_lang_rascal_syntax_Rascal.NT_Literal)){ + if($nonterminal_has_name_and_arity($arg0_24, "string", 1)){ + IValue $arg0_25 = (IValue)($nonterminal_get_arg(((ITree)((ITree)($arg0_24))), ((IInteger)$constants.get(0)/*0*/).intValue())); + if($isComparable($arg0_25.getType(), M_lang_rascal_syntax_Rascal.NT_StringLiteral)){ + if($nonterminal_has_name_and_arity($arg0_25, "nonInterpolated", 1)){ + IValue $arg0_26 = (IValue)($nonterminal_get_arg(((ITree)((ITree)($arg0_25))), ((IInteger)$constants.get(0)/*0*/).intValue())); + if($isComparable($arg0_26.getType(), M_lang_rascal_syntax_Rascal.NT_StringConstant)){ + ITree l_6 = ((ITree)($arg0_26)); + final Template $template20 = (Template)new Template($RVF, ""); + $template20.addVal($arg0_27); + final Template $template21 = (Template)new Template($RVF, ""); + $template21.addStr(((IString)(M_lang_rascal_grammar_definition_Literals.unescapeLiteral(((ITree)($arg0_26))))).getValue()); + return ((IConstructor)($RVF.constructor(Maybe_Attr_just_Attr, new IValue[]{((IConstructor)($RVF.constructor(M_Type.Attr_tag_value, new IValue[]{((IValue)($RVF.node(((IString)($template20.close())).getValue(), new IValue[] { $template21.close() }, Collections.emptyMap())))})))}))); + + } + + } + + } + + } + + } + + } + + } + + } + + } + + } + + } + + } while(false); + + } + if($isSubtypeOf($switchVal8.getType(),M_lang_rascal_syntax_Rascal.NT_ProdModifier)){ + /*muExists*/CASE_0_5: + do { + if($nonterminal_has_name_and_arity($switchVal8, "tag", 1)){ + IValue $arg0_31 = (IValue)($nonterminal_get_arg(((ITree)((ITree)($switchVal8))), ((IInteger)$constants.get(0)/*0*/).intValue())); + if($isComparable($arg0_31.getType(), M_lang_rascal_syntax_Rascal.NT_Tag)){ + if($nonterminal_has_name_and_arity($arg0_31, "expression", 2)){ + IValue $arg0_34 = (IValue)($nonterminal_get_arg(((ITree)((ITree)($arg0_31))), ((IInteger)$constants.get(0)/*0*/).intValue())); + if($isComparable($arg0_34.getType(), M_lang_rascal_syntax_Rascal.NT_Name)){ + ITree n_7 = ((ITree)($arg0_34)); + IValue $arg1_32 = (IValue)($nonterminal_get_arg(((ITree)((ITree)($arg0_31))), ((IInteger)$constants.get(1)/*1*/).intValue())); + if($isComparable($arg1_32.getType(), M_lang_rascal_syntax_Rascal.NT_Expression)){ + if($nonterminal_has_name_and_arity($arg1_32, "literal", 1)){ + IValue $arg0_33 = (IValue)($nonterminal_get_arg(((ITree)((ITree)($arg1_32))), ((IInteger)$constants.get(0)/*0*/).intValue())); + if($isComparable($arg0_33.getType(), M_lang_rascal_syntax_Rascal.NT_Literal)){ + ITree l_8 = ((ITree)($arg0_33)); + final Template $template28 = (Template)new Template($RVF, ""); + $template28.addVal($arg0_34); + final Template $template29 = (Template)new Template($RVF, ""); + final Template $template30 = (Template)new Template($RVF, ""); + $template30.addVal($arg0_33); + $template29.addStr(((IString)(M_lang_rascal_grammar_definition_Literals.unescapeLiteral(((IString)($template30.close()))))).getValue()); + return ((IConstructor)($RVF.constructor(Maybe_Attr_just_Attr, new IValue[]{((IConstructor)($RVF.constructor(M_Type.Attr_tag_value, new IValue[]{((IValue)($RVF.node(((IString)($template28.close())).getValue(), new IValue[] { $template29.close() }, Collections.emptyMap())))})))}))); + + } + + } + + } + + } + + } + + } + + } + + } while(false); + + } + if($isSubtypeOf($switchVal8.getType(),M_lang_rascal_syntax_Rascal.NT_ProdModifier)){ + /*muExists*/CASE_0_6: + do { + if($nonterminal_has_name_and_arity($switchVal8, "tag", 1)){ + IValue $arg0_37 = (IValue)($nonterminal_get_arg(((ITree)((ITree)($switchVal8))), ((IInteger)$constants.get(0)/*0*/).intValue())); + if($isComparable($arg0_37.getType(), M_lang_rascal_syntax_Rascal.NT_Tag)){ + if($nonterminal_has_name_and_arity($arg0_37, "expression", 2)){ + IValue $arg0_39 = (IValue)($nonterminal_get_arg(((ITree)((ITree)($arg0_37))), ((IInteger)$constants.get(0)/*0*/).intValue())); + if($isComparable($arg0_39.getType(), M_lang_rascal_syntax_Rascal.NT_Name)){ + ITree n_9 = ((ITree)($arg0_39)); + IValue $arg1_38 = (IValue)($nonterminal_get_arg(((ITree)((ITree)($arg0_37))), ((IInteger)$constants.get(1)/*1*/).intValue())); + if($isComparable($arg1_38.getType(), M_lang_rascal_syntax_Rascal.NT_Expression)){ + ITree e_10 = ((ITree)($arg1_38)); + final Template $template35 = (Template)new Template($RVF, ""); + $template35.addVal($arg0_39); + final Template $template36 = (Template)new Template($RVF, ""); + $template36.addVal($arg1_38); + return ((IConstructor)($RVF.constructor(Maybe_Attr_just_Attr, new IValue[]{((IConstructor)($RVF.constructor(M_Type.Attr_tag_value, new IValue[]{((IValue)($RVF.node(((IString)($template35.close())).getValue(), new IValue[] { M_ValueIO.readTextValueString(((IString)($template36.close()))) }, Collections.emptyMap())))})))}))); + + } + + } + + } + + } + + } + + } while(false); + + } + return ((IConstructor)($RVF.constructor(M_util_Maybe.Maybe_1_nothing_, new IValue[]{}))); + + } + + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/lang/rascal/grammar/definition/Attributes.rsc|(1857,75,<42,0>,<42,75>) + public IConstructor lang_rascal_grammar_definition_Attributes_testAssoc$ad38638c95ce244a(IString m_0){ + + + return ((IConstructor)($me.mod2assoc(((ITree)(((ITree)($parse(((IValue)($R0)), ((IString)m_0), ((ISourceLocation)$constants.get(1827)/*|file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/lang/rascal/grammar/definition/Attribu ...*/))))))))); + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/lang/rascal/grammar/definition/Attributes.rsc|(1934,140,<44,0>,<44,140>) + public IConstructor lang_rascal_grammar_definition_Attributes_mods2assoc$650c3881c5f8d439(ITree mods_0){ + + + IConstructor $reducer41 = (IConstructor)($RVF.constructor(M_util_Maybe.Maybe_1_nothing_, new IValue[]{})); + final ITree $exp45 = ((ITree)mods_0); + final int $last46 = (int)((ITree)($exp45)).getArgs().length() - 1; + $REDUCER40_GEN2011: + + for(int $i47 = 0; $i47 <= $last46; $i47 += 2){ + final ITree $elem44 = ((ITree)($iter_subscript($exp45, $i47))); + if(true){ + ITree m_2 = null; + final IConstructor $subject_val42 = ((IConstructor)($me.mod2assoc(((ITree)($elem44))))); + if($has_type_and_arity($subject_val42, Maybe_Associativity_just_Associativity, 1)){ + IValue $arg0_43 = (IValue)($aadt_subscript_int(((IConstructor)($subject_val42)),0)); + if($isComparable($arg0_43.getType(), M_ParseTree.ADT_Associativity)){ + IConstructor x_3 = null; + $reducer41 = ((IConstructor)($RVF.constructor(Maybe_Associativity_just_Associativity, new IValue[]{((IConstructor)($arg0_43))}))); + + } else { + continue $REDUCER40_GEN2011; + } + } else { + continue $REDUCER40_GEN2011; + } + } else { + continue $REDUCER40_GEN2011; + } + } + + return ((IConstructor)($reducer41)); + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/lang/rascal/grammar/definition/Attributes.rsc|(2076,112,<46,0>,<46,112>) + public IConstructor lang_rascal_grammar_definition_Attributes_mod2assoc$a529f2c43afca7e7(ITree $__0){ + + + if($nonterminal_has_name_and_arity($__0, "associativity", 1)){ + IValue $arg0_48 = (IValue)($nonterminal_get_arg(((ITree)((ITree)$__0)), ((IInteger)$constants.get(0)/*0*/).intValue())); + if($isComparable($arg0_48.getType(), M_lang_rascal_syntax_Rascal.NT_Assoc)){ + if($nonterminal_has_name_and_arity($arg0_48, "left", 0)){ + return ((IConstructor)($RVF.constructor(Maybe_Associativity_just_Associativity, new IValue[]{((IConstructor)($RVF.constructor(M_ParseTree.Associativity_left_, new IValue[]{})))}))); + + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/lang/rascal/grammar/definition/Attributes.rsc|(2189,113,<47,0>,<47,113>) + public IConstructor lang_rascal_grammar_definition_Attributes_mod2assoc$48eb5a40e953347a(ITree $__0){ + + + if($nonterminal_has_name_and_arity($__0, "associativity", 1)){ + IValue $arg0_49 = (IValue)($nonterminal_get_arg(((ITree)((ITree)$__0)), ((IInteger)$constants.get(0)/*0*/).intValue())); + if($isComparable($arg0_49.getType(), M_lang_rascal_syntax_Rascal.NT_Assoc)){ + if($nonterminal_has_name_and_arity($arg0_49, "right", 0)){ + return ((IConstructor)($RVF.constructor(Maybe_Associativity_just_Associativity, new IValue[]{((IConstructor)($RVF.constructor(M_ParseTree.Associativity_right_, new IValue[]{})))}))); + + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/lang/rascal/grammar/definition/Attributes.rsc|(2303,112,<48,0>,<48,112>) + public IConstructor lang_rascal_grammar_definition_Attributes_mod2assoc$ad9fc125958039a0(ITree $__0){ + + + if($nonterminal_has_name_and_arity($__0, "associativity", 1)){ + IValue $arg0_50 = (IValue)($nonterminal_get_arg(((ITree)((ITree)$__0)), ((IInteger)$constants.get(0)/*0*/).intValue())); + if($isComparable($arg0_50.getType(), M_lang_rascal_syntax_Rascal.NT_Assoc)){ + if($nonterminal_has_name_and_arity($arg0_50, "associative", 0)){ + return ((IConstructor)($RVF.constructor(Maybe_Associativity_just_Associativity, new IValue[]{((IConstructor)($RVF.constructor(M_ParseTree.Associativity_left_, new IValue[]{})))}))); + + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/lang/rascal/grammar/definition/Attributes.rsc|(2416,117,<49,0>,<49,117>) + public IConstructor lang_rascal_grammar_definition_Attributes_mod2assoc$f84f61a245a5a1eb(ITree $__0){ + + + if($nonterminal_has_name_and_arity($__0, "associativity", 1)){ + IValue $arg0_51 = (IValue)($nonterminal_get_arg(((ITree)((ITree)$__0)), ((IInteger)$constants.get(0)/*0*/).intValue())); + if($isComparable($arg0_51.getType(), M_lang_rascal_syntax_Rascal.NT_Assoc)){ + if($nonterminal_has_name_and_arity($arg0_51, "nonAssociative", 0)){ + return ((IConstructor)($RVF.constructor(Maybe_Associativity_just_Associativity, new IValue[]{((IConstructor)($RVF.constructor(M_ParseTree.Associativity_non_assoc_, new IValue[]{})))}))); + + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/lang/rascal/grammar/definition/Attributes.rsc|(2534,78,<50,0>,<50,78>) + public IConstructor lang_rascal_grammar_definition_Attributes_mod2assoc$a66e8e33d86dd194(ITree $__0){ + + + return ((IConstructor)($RVF.constructor(M_util_Maybe.Maybe_1_nothing_, new IValue[]{}))); + + } + + + public static void main(String[] args) { + throw new RuntimeException("No function `main` found in Rascal module `lang::rascal::grammar::definition::Attributes`"); + } +} \ No newline at end of file diff --git a/src/rascal/lang/rascal/grammar/definition/$Attributes.tpl b/src/rascal/lang/rascal/grammar/definition/$Attributes.tpl new file mode 100644 index 00000000000..c8861c1a6a2 Binary files /dev/null and b/src/rascal/lang/rascal/grammar/definition/$Attributes.tpl differ diff --git a/src/rascal/lang/rascal/grammar/definition/$Attributes_$I.java b/src/rascal/lang/rascal/grammar/definition/$Attributes_$I.java new file mode 100644 index 00000000000..1f9a4df2c53 --- /dev/null +++ b/src/rascal/lang/rascal/grammar/definition/$Attributes_$I.java @@ -0,0 +1,13 @@ +package rascal.lang.rascal.grammar.definition; +import io.usethesource.vallang.*; +import org.rascalmpl.runtime.function.*; + +@SuppressWarnings("unused") +public interface $Attributes_$I { + IValue attribute(IValue $0, IValue $1); + IValue mod2assoc(IValue $0); + IValue mod2attr(IValue $0); + IValue mods2assoc(IValue $0); + IValue mods2attrs(IValue $0); + IValue testAssoc(IValue $0); +} \ No newline at end of file diff --git a/src/rascal/lang/rascal/grammar/definition/$Characters.constants b/src/rascal/lang/rascal/grammar/definition/$Characters.constants new file mode 100644 index 00000000000..2ec83f27eff Binary files /dev/null and b/src/rascal/lang/rascal/grammar/definition/$Characters.constants differ diff --git a/src/rascal/lang/rascal/grammar/definition/$Characters.java b/src/rascal/lang/rascal/grammar/definition/$Characters.java new file mode 100644 index 00000000000..57372cffa16 --- /dev/null +++ b/src/rascal/lang/rascal/grammar/definition/$Characters.java @@ -0,0 +1,2193 @@ +package rascal.lang.rascal.grammar.definition; +import java.io.PrintWriter; +import java.io.StringWriter; +import java.io.InputStreamReader; +import java.io.PrintWriter; +import java.util.*; +import java.util.regex.Matcher; +import io.usethesource.vallang.*; +import io.usethesource.vallang.type.*; +import org.rascalmpl.runtime.*; +import org.rascalmpl.runtime.RascalExecutionContext; +import org.rascalmpl.runtime.function.*; +import org.rascalmpl.runtime.traverse.*; +import org.rascalmpl.runtime.utils.*; +import org.rascalmpl.exceptions.RuntimeExceptionFactory; +import org.rascalmpl.exceptions.Throw; +import org.rascalmpl.runtime.RascalExecutionContext; +import org.rascalmpl.interpreter.control_exceptions.Filtered; +import org.rascalmpl.types.NonTerminalType; +import org.rascalmpl.types.RascalTypeFactory; +import org.rascalmpl.util.ExpiringFunctionResultCache; +import org.rascalmpl.values.RascalValueFactory; +import org.rascalmpl.values.ValueFactoryFactory; +import org.rascalmpl.values.parsetrees.ITree; +import org.rascalmpl.values.parsetrees.TreeAdapter; + + + +@SuppressWarnings({"unused","unchecked","deprecation"}) +public class $Characters + extends + org.rascalmpl.runtime.$RascalModule + implements + rascal.lang.rascal.grammar.definition.$Characters_$I { + + private final $Characters_$I $me; + private final IList $constants; + + + public final rascal.lang.rascal.syntax.$Rascal M_lang_rascal_syntax_Rascal; + public final rascal.$Exception M_Exception; + public final rascal.$Type M_Type; + public final rascal.$List M_List; + public final rascal.$Grammar M_Grammar; + public final rascal.$Message M_Message; + public final rascal.$String M_String; + public final rascal.$ParseTree M_ParseTree; + + + + public final io.usethesource.vallang.type.Type $T4; /*avalue()*/ + public final io.usethesource.vallang.type.Type $T1; /*aint()*/ + public final io.usethesource.vallang.type.Type ADT_ProtocolChars; /*aadt("ProtocolChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_ProtocolChars; /*aadt("ProtocolChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Replacement; /*aadt("Replacement",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Replacement; /*aadt("Replacement",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_PostProtocolChars; /*aadt("PostProtocolChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_PostProtocolChars; /*aadt("PostProtocolChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Visibility; /*aadt("Visibility",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Visibility; /*aadt("Visibility",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Attr; /*aadt("Attr",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Expression; /*aadt("Expression",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Expression; /*aadt("Expression",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Mapping_Expression; /*aadt("Mapping",[aadt("Expression",[],contextFreeSyntax())],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Mapping_Expression; /*aadt("Mapping",[aadt("Expression",[],contextFreeSyntax())],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Strategy; /*aadt("Strategy",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Strategy; /*aadt("Strategy",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Tree; /*aadt("Tree",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type $T2; /*aparameter("T",aadt("Tree",[],dataSyntax()),closed=true)*/ + public final io.usethesource.vallang.type.Type ADT_KeywordArguments_1; /*aadt("KeywordArguments",[aparameter("T",aadt("Tree",[],dataSyntax()),closed=true)],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_KeywordArguments_1; /*aadt("KeywordArguments",[aparameter("T",aadt("Tree",[],dataSyntax()),closed=true)],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_MidStringChars; /*aadt("MidStringChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_MidStringChars; /*aadt("MidStringChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_LocationChangeType; /*aadt("LocationChangeType",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_IOCapability; /*aadt("IOCapability",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Name; /*aadt("Name",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Name; /*aadt("Name",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_TagString; /*aadt("TagString",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_TagString; /*aadt("TagString",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Concrete; /*aadt("Concrete",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Concrete; /*aadt("Concrete",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_FunctionType; /*aadt("FunctionType",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_FunctionType; /*aadt("FunctionType",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Range; /*aadt("Range",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Range; /*aadt("Range",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_LAYOUT; /*aadt("LAYOUT",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_LAYOUT; /*aadt("LAYOUT",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Pattern; /*aadt("Pattern",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Pattern; /*aadt("Pattern",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Mapping_Pattern; /*aadt("Mapping",[aadt("Pattern",[],contextFreeSyntax())],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Mapping_Pattern; /*aadt("Mapping",[aadt("Pattern",[],contextFreeSyntax())],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Variable; /*aadt("Variable",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Variable; /*aadt("Variable",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Item; /*aadt("Item",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_RationalLiteral; /*aadt("RationalLiteral",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_RationalLiteral; /*aadt("RationalLiteral",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_GrammarModule; /*aadt("GrammarModule",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_RegExpLiteral; /*aadt("RegExpLiteral",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_RegExpLiteral; /*aadt("RegExpLiteral",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Declarator; /*aadt("Declarator",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Declarator; /*aadt("Declarator",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_ModuleParameters; /*aadt("ModuleParameters",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_ModuleParameters; /*aadt("ModuleParameters",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type $T3; /*aparameter("T",aadt("Tree",[],dataSyntax()),closed=false)*/ + public final io.usethesource.vallang.type.Type ADT_Output; /*aadt("Output",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Output; /*aadt("Output",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_SyntaxDefinition; /*aadt("SyntaxDefinition",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_SyntaxDefinition; /*aadt("SyntaxDefinition",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_DatePart; /*aadt("DatePart",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_DatePart; /*aadt("DatePart",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_ImportedModule; /*aadt("ImportedModule",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_ImportedModule; /*aadt("ImportedModule",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_BooleanLiteral; /*aadt("BooleanLiteral",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_BooleanLiteral; /*aadt("BooleanLiteral",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Case; /*aadt("Case",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Case; /*aadt("Case",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_LocalVariableDeclaration; /*aadt("LocalVariableDeclaration",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_LocalVariableDeclaration; /*aadt("LocalVariableDeclaration",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Target; /*aadt("Target",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Target; /*aadt("Target",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_IntegerLiteral; /*aadt("IntegerLiteral",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_IntegerLiteral; /*aadt("IntegerLiteral",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_TimePartNoTZ; /*aadt("TimePartNoTZ",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_TimePartNoTZ; /*aadt("TimePartNoTZ",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_KeywordArguments_Expression; /*aadt("KeywordArguments",[aadt("Expression",[],contextFreeSyntax())],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_KeywordArguments_Expression; /*aadt("KeywordArguments",[aadt("Expression",[],contextFreeSyntax())],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Mapping_1; /*aadt("Mapping",[aparameter("T",aadt("Tree",[],dataSyntax()),closed=true)],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Mapping_1; /*aadt("Mapping",[aparameter("T",aadt("Tree",[],dataSyntax()),closed=true)],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Renaming; /*aadt("Renaming",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Renaming; /*aadt("Renaming",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_KeywordFormals; /*aadt("KeywordFormals",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_KeywordFormals; /*aadt("KeywordFormals",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Catch; /*aadt("Catch",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Catch; /*aadt("Catch",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Production; /*aadt("Production",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_PostStringChars; /*aadt("PostStringChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_PostStringChars; /*aadt("PostStringChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_GrammarDefinition; /*aadt("GrammarDefinition",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_CharRange; /*aadt("CharRange",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type $T0; /*alist(aadt("CharRange",[],dataSyntax()))*/ + public final io.usethesource.vallang.type.Type ADT_KeywordArgument_1; /*aadt("KeywordArgument",[aparameter("T",aadt("Tree",[],dataSyntax()),closed=true)],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_KeywordArgument_1; /*aadt("KeywordArgument",[aparameter("T",aadt("Tree",[],dataSyntax()),closed=true)],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_DataTarget; /*aadt("DataTarget",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_DataTarget; /*aadt("DataTarget",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_LocationLiteral; /*aadt("LocationLiteral",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_LocationLiteral; /*aadt("LocationLiteral",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Field; /*aadt("Field",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Field; /*aadt("Field",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Tag; /*aadt("Tag",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Tag; /*aadt("Tag",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Type; /*aadt("Type",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Type; /*aadt("Type",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Symbol; /*aadt("Symbol",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_TimeZonePart; /*aadt("TimeZonePart",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_TimeZonePart; /*aadt("TimeZonePart",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_HexIntegerLiteral; /*aadt("HexIntegerLiteral",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_HexIntegerLiteral; /*aadt("HexIntegerLiteral",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Declaration; /*aadt("Declaration",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Declaration; /*aadt("Declaration",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_ShellCommand; /*aadt("ShellCommand",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_ShellCommand; /*aadt("ShellCommand",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_FunctionBody; /*aadt("FunctionBody",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_FunctionBody; /*aadt("FunctionBody",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_StringLiteral; /*aadt("StringLiteral",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_StringLiteral; /*aadt("StringLiteral",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_PreStringChars; /*aadt("PreStringChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_PreStringChars; /*aadt("PreStringChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_KeywordArguments_Pattern; /*aadt("KeywordArguments",[aadt("Pattern",[],contextFreeSyntax())],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_KeywordArguments_Pattern; /*aadt("KeywordArguments",[aadt("Pattern",[],contextFreeSyntax())],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_LAYOUTLIST; /*aadt("LAYOUTLIST",[],layoutSyntax())*/ + public final io.usethesource.vallang.type.Type $T5; /*\iter-star-seps(aadt("Range",[],contextFreeSyntax()),[aadt("LAYOUTLIST",[],layoutSyntax())])*/ + public final io.usethesource.vallang.type.Type ADT_Tags; /*aadt("Tags",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Tags; /*aadt("Tags",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_TypeArg; /*aadt("TypeArg",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_TypeArg; /*aadt("TypeArg",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_NonterminalLabel; /*aadt("NonterminalLabel",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_NonterminalLabel; /*aadt("NonterminalLabel",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_RegExp; /*aadt("RegExp",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_RegExp; /*aadt("RegExp",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Bound; /*aadt("Bound",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Bound; /*aadt("Bound",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Nonterminal; /*aadt("Nonterminal",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Nonterminal; /*aadt("Nonterminal",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Associativity; /*aadt("Associativity",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Signature; /*aadt("Signature",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Signature; /*aadt("Signature",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Renamings; /*aadt("Renamings",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Renamings; /*aadt("Renamings",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_KeywordFormal; /*aadt("KeywordFormal",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_KeywordFormal; /*aadt("KeywordFormal",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_OptionalExpression; /*aadt("OptionalExpression",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_OptionalExpression; /*aadt("OptionalExpression",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_URLChars; /*aadt("URLChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_URLChars; /*aadt("URLChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_ModuleActuals; /*aadt("ModuleActuals",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_ModuleActuals; /*aadt("ModuleActuals",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Class; /*aadt("Class",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Class; /*aadt("Class",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Condition; /*aadt("Condition",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_PathPart; /*aadt("PathPart",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_PathPart; /*aadt("PathPart",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_PrePathChars; /*aadt("PrePathChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_PrePathChars; /*aadt("PrePathChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Start; /*aadt("Start",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Start; /*aadt("Start",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_StringConstant; /*aadt("StringConstant",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_StringConstant; /*aadt("StringConstant",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_OptionalComma; /*aadt("OptionalComma",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_OptionalComma; /*aadt("OptionalComma",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_FunctionDeclaration; /*aadt("FunctionDeclaration",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_FunctionDeclaration; /*aadt("FunctionDeclaration",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_StringTail; /*aadt("StringTail",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_StringTail; /*aadt("StringTail",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Backslash; /*aadt("Backslash",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Backslash; /*aadt("Backslash",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_CaseInsensitiveStringConstant; /*aadt("CaseInsensitiveStringConstant",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_CaseInsensitiveStringConstant; /*aadt("CaseInsensitiveStringConstant",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Char; /*aadt("Char",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Char; /*aadt("Char",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Body; /*aadt("Body",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Body; /*aadt("Body",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_PatternWithAction; /*aadt("PatternWithAction",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_PatternWithAction; /*aadt("PatternWithAction",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Exception; /*aadt("Exception",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_PostPathChars; /*aadt("PostPathChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_PostPathChars; /*aadt("PostPathChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Module; /*aadt("Module",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Module; /*aadt("Module",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_StringCharacter; /*aadt("StringCharacter",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_StringCharacter; /*aadt("StringCharacter",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_JustDate; /*aadt("JustDate",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_JustDate; /*aadt("JustDate",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_TypeVar; /*aadt("TypeVar",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_TypeVar; /*aadt("TypeVar",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Header; /*aadt("Header",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Header; /*aadt("Header",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_LocationType; /*aadt("LocationType",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Assignment; /*aadt("Assignment",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Assignment; /*aadt("Assignment",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Grammar; /*aadt("Grammar",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Variant; /*aadt("Variant",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Variant; /*aadt("Variant",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_UserType; /*aadt("UserType",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_UserType; /*aadt("UserType",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Import; /*aadt("Import",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Import; /*aadt("Import",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_DataTypeSelector; /*aadt("DataTypeSelector",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_DataTypeSelector; /*aadt("DataTypeSelector",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_ConcreteHole; /*aadt("ConcreteHole",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_ConcreteHole; /*aadt("ConcreteHole",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_TreeSearchResult_1; /*aadt("TreeSearchResult",[aparameter("T",aadt("Tree",[],dataSyntax()),closed=true)],dataSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Message; /*aadt("Message",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Sym; /*aadt("Sym",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Sym; /*aadt("Sym",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_RealLiteral; /*aadt("RealLiteral",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_RealLiteral; /*aadt("RealLiteral",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_StringMiddle; /*aadt("StringMiddle",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_StringMiddle; /*aadt("StringMiddle",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_DateAndTime; /*aadt("DateAndTime",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_DateAndTime; /*aadt("DateAndTime",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_FunctionModifiers; /*aadt("FunctionModifiers",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_FunctionModifiers; /*aadt("FunctionModifiers",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Comprehension; /*aadt("Comprehension",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Comprehension; /*aadt("Comprehension",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_QualifiedName; /*aadt("QualifiedName",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_QualifiedName; /*aadt("QualifiedName",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Formals; /*aadt("Formals",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Formals; /*aadt("Formals",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_MidPathChars; /*aadt("MidPathChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_MidPathChars; /*aadt("MidPathChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_MidProtocolChars; /*aadt("MidProtocolChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_MidProtocolChars; /*aadt("MidProtocolChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type CharRange_empty_range_; /*acons(aadt("CharRange",[],dataSyntax()),[],[],alabel="empty-range")*/ + public final io.usethesource.vallang.type.Type ADT_PathTail; /*aadt("PathTail",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_PathTail; /*aadt("PathTail",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Parameters; /*aadt("Parameters",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Parameters; /*aadt("Parameters",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_PreProtocolChars; /*aadt("PreProtocolChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_PreProtocolChars; /*aadt("PreProtocolChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_ProtocolPart; /*aadt("ProtocolPart",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_ProtocolPart; /*aadt("ProtocolPart",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_StringTemplate; /*aadt("StringTemplate",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_StringTemplate; /*aadt("StringTemplate",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_NamedBackslash; /*aadt("NamedBackslash",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_NamedBackslash; /*aadt("NamedBackslash",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_RascalKeywords; /*aadt("RascalKeywords",[],keywordSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Label; /*aadt("Label",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Label; /*aadt("Label",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Kind; /*aadt("Kind",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Kind; /*aadt("Kind",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_LocationChangeEvent; /*aadt("LocationChangeEvent",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_RegExpModifier; /*aadt("RegExpModifier",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_RegExpModifier; /*aadt("RegExpModifier",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Prod; /*aadt("Prod",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Prod; /*aadt("Prod",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_RuntimeException; /*aadt("RuntimeException",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_NamedRegExp; /*aadt("NamedRegExp",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_NamedRegExp; /*aadt("NamedRegExp",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_DecimalIntegerLiteral; /*aadt("DecimalIntegerLiteral",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_DecimalIntegerLiteral; /*aadt("DecimalIntegerLiteral",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Assoc; /*aadt("Assoc",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Assoc; /*aadt("Assoc",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_DateTimeLiteral; /*aadt("DateTimeLiteral",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_DateTimeLiteral; /*aadt("DateTimeLiteral",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_FunctionModifier; /*aadt("FunctionModifier",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_FunctionModifier; /*aadt("FunctionModifier",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_EvalCommand; /*aadt("EvalCommand",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_EvalCommand; /*aadt("EvalCommand",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_ProdModifier; /*aadt("ProdModifier",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_ProdModifier; /*aadt("ProdModifier",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_JustTime; /*aadt("JustTime",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_JustTime; /*aadt("JustTime",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_UnicodeEscape; /*aadt("UnicodeEscape",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_UnicodeEscape; /*aadt("UnicodeEscape",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Literal; /*aadt("Literal",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Literal; /*aadt("Literal",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Statement; /*aadt("Statement",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Statement; /*aadt("Statement",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Toplevel; /*aadt("Toplevel",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Toplevel; /*aadt("Toplevel",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_ConcretePart; /*aadt("ConcretePart",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_ConcretePart; /*aadt("ConcretePart",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_PathChars; /*aadt("PathChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_PathChars; /*aadt("PathChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Visit; /*aadt("Visit",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Visit; /*aadt("Visit",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Comment; /*aadt("Comment",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Comment; /*aadt("Comment",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Command; /*aadt("Command",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Command; /*aadt("Command",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_StructuredType; /*aadt("StructuredType",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_StructuredType; /*aadt("StructuredType",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_OctalIntegerLiteral; /*aadt("OctalIntegerLiteral",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_OctalIntegerLiteral; /*aadt("OctalIntegerLiteral",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_CommonKeywordParameters; /*aadt("CommonKeywordParameters",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_CommonKeywordParameters; /*aadt("CommonKeywordParameters",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Assignable; /*aadt("Assignable",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Assignable; /*aadt("Assignable",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_ProtocolTail; /*aadt("ProtocolTail",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_ProtocolTail; /*aadt("ProtocolTail",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_BasicType; /*aadt("BasicType",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_BasicType; /*aadt("BasicType",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Commands; /*aadt("Commands",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Commands; /*aadt("Commands",[],contextFreeSyntax())*/ + + public $Characters(RascalExecutionContext rex){ + this(rex, null); + } + + public $Characters(RascalExecutionContext rex, Object extended){ + super(rex); + this.$me = extended == null ? this : ($Characters_$I)extended; + ModuleStore mstore = rex.getModuleStore(); + mstore.put(rascal.lang.rascal.grammar.definition.$Characters.class, this); + + mstore.importModule(rascal.lang.rascal.syntax.$Rascal.class, rex, rascal.lang.rascal.syntax.$Rascal::new); + mstore.importModule(rascal.$Exception.class, rex, rascal.$Exception::new); + mstore.importModule(rascal.$Type.class, rex, rascal.$Type::new); + mstore.importModule(rascal.$List.class, rex, rascal.$List::new); + mstore.importModule(rascal.$Grammar.class, rex, rascal.$Grammar::new); + mstore.importModule(rascal.$Message.class, rex, rascal.$Message::new); + mstore.importModule(rascal.$String.class, rex, rascal.$String::new); + mstore.importModule(rascal.$ParseTree.class, rex, rascal.$ParseTree::new); + + M_lang_rascal_syntax_Rascal = mstore.getModule(rascal.lang.rascal.syntax.$Rascal.class); + M_Exception = mstore.getModule(rascal.$Exception.class); + M_Type = mstore.getModule(rascal.$Type.class); + M_List = mstore.getModule(rascal.$List.class); + M_Grammar = mstore.getModule(rascal.$Grammar.class); + M_Message = mstore.getModule(rascal.$Message.class); + M_String = mstore.getModule(rascal.$String.class); + M_ParseTree = mstore.getModule(rascal.$ParseTree.class); + + + + $TS.importStore(M_lang_rascal_syntax_Rascal.$TS); + $TS.importStore(M_Exception.$TS); + $TS.importStore(M_Type.$TS); + $TS.importStore(M_List.$TS); + $TS.importStore(M_Grammar.$TS); + $TS.importStore(M_Message.$TS); + $TS.importStore(M_String.$TS); + $TS.importStore(M_ParseTree.$TS); + + $constants = readBinaryConstantsFile(this.getClass(), "rascal/lang/rascal/grammar/definition/$Characters.constants", 13, "f5505f32e90b93c4e92e9d805990a1de"); + NT_ProtocolChars = $lex("ProtocolChars"); + ADT_ProtocolChars = $adt("ProtocolChars"); + NT_Replacement = $sort("Replacement"); + ADT_Replacement = $adt("Replacement"); + NT_PostProtocolChars = $lex("PostProtocolChars"); + ADT_PostProtocolChars = $adt("PostProtocolChars"); + NT_Visibility = $sort("Visibility"); + ADT_Visibility = $adt("Visibility"); + ADT_Attr = $adt("Attr"); + NT_Expression = $sort("Expression"); + ADT_Expression = $adt("Expression"); + NT_Strategy = $sort("Strategy"); + ADT_Strategy = $adt("Strategy"); + ADT_Tree = $adt("Tree"); + NT_MidStringChars = $lex("MidStringChars"); + ADT_MidStringChars = $adt("MidStringChars"); + ADT_LocationChangeType = $adt("LocationChangeType"); + ADT_IOCapability = $adt("IOCapability"); + NT_Name = $lex("Name"); + ADT_Name = $adt("Name"); + NT_TagString = $lex("TagString"); + ADT_TagString = $adt("TagString"); + NT_Concrete = $lex("Concrete"); + ADT_Concrete = $adt("Concrete"); + NT_FunctionType = $sort("FunctionType"); + ADT_FunctionType = $adt("FunctionType"); + NT_Range = $sort("Range"); + ADT_Range = $adt("Range"); + NT_LAYOUT = $lex("LAYOUT"); + ADT_LAYOUT = $adt("LAYOUT"); + NT_Pattern = $sort("Pattern"); + ADT_Pattern = $adt("Pattern"); + NT_Variable = $sort("Variable"); + ADT_Variable = $adt("Variable"); + ADT_Item = $adt("Item"); + NT_RationalLiteral = $lex("RationalLiteral"); + ADT_RationalLiteral = $adt("RationalLiteral"); + ADT_GrammarModule = $adt("GrammarModule"); + NT_RegExpLiteral = $lex("RegExpLiteral"); + ADT_RegExpLiteral = $adt("RegExpLiteral"); + NT_Declarator = $sort("Declarator"); + ADT_Declarator = $adt("Declarator"); + NT_ModuleParameters = $sort("ModuleParameters"); + ADT_ModuleParameters = $adt("ModuleParameters"); + NT_Output = $lex("Output"); + ADT_Output = $adt("Output"); + NT_SyntaxDefinition = $sort("SyntaxDefinition"); + ADT_SyntaxDefinition = $adt("SyntaxDefinition"); + NT_DatePart = $lex("DatePart"); + ADT_DatePart = $adt("DatePart"); + NT_ImportedModule = $sort("ImportedModule"); + ADT_ImportedModule = $adt("ImportedModule"); + NT_BooleanLiteral = $lex("BooleanLiteral"); + ADT_BooleanLiteral = $adt("BooleanLiteral"); + NT_Case = $sort("Case"); + ADT_Case = $adt("Case"); + NT_LocalVariableDeclaration = $sort("LocalVariableDeclaration"); + ADT_LocalVariableDeclaration = $adt("LocalVariableDeclaration"); + NT_Target = $sort("Target"); + ADT_Target = $adt("Target"); + NT_IntegerLiteral = $sort("IntegerLiteral"); + ADT_IntegerLiteral = $adt("IntegerLiteral"); + NT_TimePartNoTZ = $lex("TimePartNoTZ"); + ADT_TimePartNoTZ = $adt("TimePartNoTZ"); + NT_Renaming = $sort("Renaming"); + ADT_Renaming = $adt("Renaming"); + NT_KeywordFormals = $sort("KeywordFormals"); + ADT_KeywordFormals = $adt("KeywordFormals"); + NT_Catch = $sort("Catch"); + ADT_Catch = $adt("Catch"); + ADT_Production = $adt("Production"); + NT_PostStringChars = $lex("PostStringChars"); + ADT_PostStringChars = $adt("PostStringChars"); + ADT_GrammarDefinition = $adt("GrammarDefinition"); + ADT_CharRange = $adt("CharRange"); + NT_DataTarget = $sort("DataTarget"); + ADT_DataTarget = $adt("DataTarget"); + NT_LocationLiteral = $sort("LocationLiteral"); + ADT_LocationLiteral = $adt("LocationLiteral"); + NT_Field = $sort("Field"); + ADT_Field = $adt("Field"); + NT_Tag = $sort("Tag"); + ADT_Tag = $adt("Tag"); + NT_Type = $sort("Type"); + ADT_Type = $adt("Type"); + ADT_Symbol = $adt("Symbol"); + NT_TimeZonePart = $lex("TimeZonePart"); + ADT_TimeZonePart = $adt("TimeZonePart"); + NT_HexIntegerLiteral = $lex("HexIntegerLiteral"); + ADT_HexIntegerLiteral = $adt("HexIntegerLiteral"); + NT_Declaration = $sort("Declaration"); + ADT_Declaration = $adt("Declaration"); + NT_ShellCommand = $sort("ShellCommand"); + ADT_ShellCommand = $adt("ShellCommand"); + NT_FunctionBody = $sort("FunctionBody"); + ADT_FunctionBody = $adt("FunctionBody"); + NT_StringLiteral = $sort("StringLiteral"); + ADT_StringLiteral = $adt("StringLiteral"); + NT_PreStringChars = $lex("PreStringChars"); + ADT_PreStringChars = $adt("PreStringChars"); + ADT_LAYOUTLIST = $layouts("LAYOUTLIST"); + NT_Tags = $sort("Tags"); + ADT_Tags = $adt("Tags"); + NT_TypeArg = $sort("TypeArg"); + ADT_TypeArg = $adt("TypeArg"); + NT_NonterminalLabel = $lex("NonterminalLabel"); + ADT_NonterminalLabel = $adt("NonterminalLabel"); + NT_RegExp = $lex("RegExp"); + ADT_RegExp = $adt("RegExp"); + NT_Bound = $sort("Bound"); + ADT_Bound = $adt("Bound"); + NT_Nonterminal = $lex("Nonterminal"); + ADT_Nonterminal = $adt("Nonterminal"); + ADT_Associativity = $adt("Associativity"); + NT_Signature = $sort("Signature"); + ADT_Signature = $adt("Signature"); + NT_Renamings = $sort("Renamings"); + ADT_Renamings = $adt("Renamings"); + NT_KeywordFormal = $sort("KeywordFormal"); + ADT_KeywordFormal = $adt("KeywordFormal"); + NT_OptionalExpression = $sort("OptionalExpression"); + ADT_OptionalExpression = $adt("OptionalExpression"); + NT_URLChars = $lex("URLChars"); + ADT_URLChars = $adt("URLChars"); + NT_ModuleActuals = $sort("ModuleActuals"); + ADT_ModuleActuals = $adt("ModuleActuals"); + NT_Class = $sort("Class"); + ADT_Class = $adt("Class"); + ADT_Condition = $adt("Condition"); + NT_PathPart = $sort("PathPart"); + ADT_PathPart = $adt("PathPart"); + NT_PrePathChars = $lex("PrePathChars"); + ADT_PrePathChars = $adt("PrePathChars"); + NT_Start = $sort("Start"); + ADT_Start = $adt("Start"); + NT_StringConstant = $lex("StringConstant"); + ADT_StringConstant = $adt("StringConstant"); + NT_OptionalComma = $lex("OptionalComma"); + ADT_OptionalComma = $adt("OptionalComma"); + NT_FunctionDeclaration = $sort("FunctionDeclaration"); + ADT_FunctionDeclaration = $adt("FunctionDeclaration"); + NT_StringTail = $sort("StringTail"); + ADT_StringTail = $adt("StringTail"); + NT_Backslash = $lex("Backslash"); + ADT_Backslash = $adt("Backslash"); + NT_CaseInsensitiveStringConstant = $lex("CaseInsensitiveStringConstant"); + ADT_CaseInsensitiveStringConstant = $adt("CaseInsensitiveStringConstant"); + NT_Char = $lex("Char"); + ADT_Char = $adt("Char"); + NT_Body = $sort("Body"); + ADT_Body = $adt("Body"); + NT_PatternWithAction = $sort("PatternWithAction"); + ADT_PatternWithAction = $adt("PatternWithAction"); + ADT_Exception = $adt("Exception"); + NT_PostPathChars = $lex("PostPathChars"); + ADT_PostPathChars = $adt("PostPathChars"); + NT_Module = $sort("Module"); + ADT_Module = $adt("Module"); + NT_StringCharacter = $lex("StringCharacter"); + ADT_StringCharacter = $adt("StringCharacter"); + NT_JustDate = $lex("JustDate"); + ADT_JustDate = $adt("JustDate"); + NT_TypeVar = $sort("TypeVar"); + ADT_TypeVar = $adt("TypeVar"); + NT_Header = $sort("Header"); + ADT_Header = $adt("Header"); + ADT_LocationType = $adt("LocationType"); + NT_Assignment = $sort("Assignment"); + ADT_Assignment = $adt("Assignment"); + ADT_Grammar = $adt("Grammar"); + NT_Variant = $sort("Variant"); + ADT_Variant = $adt("Variant"); + NT_UserType = $sort("UserType"); + ADT_UserType = $adt("UserType"); + NT_Import = $sort("Import"); + ADT_Import = $adt("Import"); + NT_DataTypeSelector = $sort("DataTypeSelector"); + ADT_DataTypeSelector = $adt("DataTypeSelector"); + NT_ConcreteHole = $sort("ConcreteHole"); + ADT_ConcreteHole = $adt("ConcreteHole"); + ADT_Message = $adt("Message"); + NT_Sym = $sort("Sym"); + ADT_Sym = $adt("Sym"); + NT_RealLiteral = $lex("RealLiteral"); + ADT_RealLiteral = $adt("RealLiteral"); + NT_StringMiddle = $sort("StringMiddle"); + ADT_StringMiddle = $adt("StringMiddle"); + NT_DateAndTime = $lex("DateAndTime"); + ADT_DateAndTime = $adt("DateAndTime"); + NT_FunctionModifiers = $sort("FunctionModifiers"); + ADT_FunctionModifiers = $adt("FunctionModifiers"); + NT_Comprehension = $sort("Comprehension"); + ADT_Comprehension = $adt("Comprehension"); + NT_QualifiedName = $sort("QualifiedName"); + ADT_QualifiedName = $adt("QualifiedName"); + NT_Formals = $sort("Formals"); + ADT_Formals = $adt("Formals"); + NT_MidPathChars = $lex("MidPathChars"); + ADT_MidPathChars = $adt("MidPathChars"); + NT_MidProtocolChars = $lex("MidProtocolChars"); + ADT_MidProtocolChars = $adt("MidProtocolChars"); + NT_PathTail = $sort("PathTail"); + ADT_PathTail = $adt("PathTail"); + NT_Parameters = $sort("Parameters"); + ADT_Parameters = $adt("Parameters"); + NT_PreProtocolChars = $lex("PreProtocolChars"); + ADT_PreProtocolChars = $adt("PreProtocolChars"); + NT_ProtocolPart = $sort("ProtocolPart"); + ADT_ProtocolPart = $adt("ProtocolPart"); + NT_StringTemplate = $sort("StringTemplate"); + ADT_StringTemplate = $adt("StringTemplate"); + NT_NamedBackslash = $lex("NamedBackslash"); + ADT_NamedBackslash = $adt("NamedBackslash"); + ADT_RascalKeywords = $keywords("RascalKeywords"); + NT_Label = $sort("Label"); + ADT_Label = $adt("Label"); + NT_Kind = $sort("Kind"); + ADT_Kind = $adt("Kind"); + ADT_LocationChangeEvent = $adt("LocationChangeEvent"); + NT_RegExpModifier = $lex("RegExpModifier"); + ADT_RegExpModifier = $adt("RegExpModifier"); + NT_Prod = $sort("Prod"); + ADT_Prod = $adt("Prod"); + ADT_RuntimeException = $adt("RuntimeException"); + NT_NamedRegExp = $lex("NamedRegExp"); + ADT_NamedRegExp = $adt("NamedRegExp"); + NT_DecimalIntegerLiteral = $lex("DecimalIntegerLiteral"); + ADT_DecimalIntegerLiteral = $adt("DecimalIntegerLiteral"); + NT_Assoc = $sort("Assoc"); + ADT_Assoc = $adt("Assoc"); + NT_DateTimeLiteral = $sort("DateTimeLiteral"); + ADT_DateTimeLiteral = $adt("DateTimeLiteral"); + NT_FunctionModifier = $sort("FunctionModifier"); + ADT_FunctionModifier = $adt("FunctionModifier"); + NT_EvalCommand = $sort("EvalCommand"); + ADT_EvalCommand = $adt("EvalCommand"); + NT_ProdModifier = $sort("ProdModifier"); + ADT_ProdModifier = $adt("ProdModifier"); + NT_JustTime = $lex("JustTime"); + ADT_JustTime = $adt("JustTime"); + NT_UnicodeEscape = $lex("UnicodeEscape"); + ADT_UnicodeEscape = $adt("UnicodeEscape"); + NT_Literal = $sort("Literal"); + ADT_Literal = $adt("Literal"); + NT_Statement = $sort("Statement"); + ADT_Statement = $adt("Statement"); + NT_Toplevel = $sort("Toplevel"); + ADT_Toplevel = $adt("Toplevel"); + NT_ConcretePart = $lex("ConcretePart"); + ADT_ConcretePart = $adt("ConcretePart"); + NT_PathChars = $lex("PathChars"); + ADT_PathChars = $adt("PathChars"); + NT_Visit = $sort("Visit"); + ADT_Visit = $adt("Visit"); + NT_Comment = $lex("Comment"); + ADT_Comment = $adt("Comment"); + NT_Command = $sort("Command"); + ADT_Command = $adt("Command"); + NT_StructuredType = $sort("StructuredType"); + ADT_StructuredType = $adt("StructuredType"); + NT_OctalIntegerLiteral = $lex("OctalIntegerLiteral"); + ADT_OctalIntegerLiteral = $adt("OctalIntegerLiteral"); + NT_CommonKeywordParameters = $sort("CommonKeywordParameters"); + ADT_CommonKeywordParameters = $adt("CommonKeywordParameters"); + NT_Assignable = $sort("Assignable"); + ADT_Assignable = $adt("Assignable"); + NT_ProtocolTail = $sort("ProtocolTail"); + ADT_ProtocolTail = $adt("ProtocolTail"); + NT_BasicType = $sort("BasicType"); + ADT_BasicType = $adt("BasicType"); + NT_Commands = $sort("Commands"); + ADT_Commands = $adt("Commands"); + $T4 = $TF.valueType(); + $T1 = $TF.integerType(); + NT_Mapping_Expression = $parameterizedSort("Mapping", new Type[] { ADT_Expression }, $RVF.list($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Expression")))); + $T2 = $TF.parameterType("T", ADT_Tree); + NT_KeywordArguments_1 = $parameterizedSort("KeywordArguments", new Type[] { $T2 }, $RVF.list($RVF.constructor(RascalValueFactory.Symbol_Parameter, $RVF.string("T"), $RVF.constructor(RascalValueFactory.Symbol_Adt, $RVF.string("Tree"), $RVF.list())))); + NT_Mapping_Pattern = $parameterizedSort("Mapping", new Type[] { ADT_Pattern }, $RVF.list($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Pattern")))); + $T3 = $TF.parameterType("T", ADT_Tree); + NT_KeywordArguments_Expression = $parameterizedSort("KeywordArguments", new Type[] { ADT_Expression }, $RVF.list($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Expression")))); + NT_Mapping_1 = $parameterizedSort("Mapping", new Type[] { $T2 }, $RVF.list($RVF.constructor(RascalValueFactory.Symbol_Parameter, $RVF.string("T"), $RVF.constructor(RascalValueFactory.Symbol_Adt, $RVF.string("Tree"), $RVF.list())))); + $T0 = $TF.listType(ADT_CharRange); + NT_KeywordArgument_1 = $parameterizedSort("KeywordArgument", new Type[] { $T2 }, $RVF.list($RVF.constructor(RascalValueFactory.Symbol_Parameter, $RVF.string("T"), $RVF.constructor(RascalValueFactory.Symbol_Adt, $RVF.string("Tree"), $RVF.list())))); + NT_KeywordArguments_Pattern = $parameterizedSort("KeywordArguments", new Type[] { ADT_Pattern }, $RVF.list($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Pattern")))); + $T5 = $RTF.nonTerminalType($RVF.constructor(RascalValueFactory.Symbol_IterStarSeps, $RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Range")), $RVF.list($RVF.constructor(RascalValueFactory.Symbol_Layouts, $RVF.string("LAYOUTLIST"))))); + ADT_TreeSearchResult_1 = $parameterizedAdt("TreeSearchResult", new Type[] { $T2 }); + ADT_Mapping_Expression = $TF.abstractDataType($TS, "Mapping", new Type[] { ADT_Expression }); + ADT_KeywordArguments_1 = $TF.abstractDataType($TS, "KeywordArguments", new Type[] { $T2 }); + ADT_Mapping_Pattern = $TF.abstractDataType($TS, "Mapping", new Type[] { ADT_Pattern }); + ADT_KeywordArguments_Expression = $TF.abstractDataType($TS, "KeywordArguments", new Type[] { ADT_Expression }); + ADT_Mapping_1 = $TF.abstractDataType($TS, "Mapping", new Type[] { $T2 }); + ADT_KeywordArgument_1 = $TF.abstractDataType($TS, "KeywordArgument", new Type[] { $T2 }); + ADT_KeywordArguments_Pattern = $TF.abstractDataType($TS, "KeywordArguments", new Type[] { ADT_Pattern }); + CharRange_empty_range_ = $TF.constructor($TS, ADT_CharRange, "empty-range"); + + + + } + public IBool isTypeVar(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isTypeVar($P0); + } + public IList addLabels(IValue $P0, IValue $P1){ // Generated by Resolver + return (IList) M_Type.addLabels($P0, $P1); + } + public IBool sameType(IValue $P0, IValue $P1){ // Generated by Resolver + return (IBool) M_ParseTree.sameType($P0, $P1); + } + public IBool isAliasType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isAliasType($P0); + } + public IValue head(IValue $P0){ // Generated by Resolver + return (IValue) M_List.head($P0); + } + public IList head(IValue $P0, IValue $P1){ // Generated by Resolver + return (IList) M_List.head($P0, $P1); + } + public IBool isStrType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isStrType($P0); + } + public IConstructor choice(IValue $P0, IValue $P1){ // Generated by Resolver + return (IConstructor) M_Type.choice($P0, $P1); + } + public IBool isValueType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isValueType($P0); + } + public IBool isADTType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isADTType($P0); + } + public IBool isListType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isListType($P0); + } + public IBool isRealType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isRealType($P0); + } + public IConstructor priority(IValue $P0, IValue $P1){ // Generated by Resolver + return (IConstructor) M_ParseTree.priority($P0, $P1); + } + public IValue complement(IValue $P0){ // Generated by Resolver + IValue $result = null; + Type $P0Type = $P0.getType(); + if($isSubtypeOf($P0Type, M_ParseTree.ADT_Symbol)){ + $result = (IValue)lang_rascal_grammar_definition_Characters_complement$b568586ea6930aa8((IConstructor) $P0); + if($result != null) return $result; + } + if($isSubtypeOf($P0Type,$T0)){ + $result = (IValue)lang_rascal_grammar_definition_Characters_complement$9bb082bbab5b8dd8((IList) $P0); + if($result != null) return $result; + } + if($isSubtypeOf($P0Type, M_ParseTree.ADT_Symbol)){ + $result = (IValue)lang_rascal_grammar_definition_Characters_complement$e4978c5ddcaf2671((IConstructor) $P0); + if($result != null) return $result; + } + if($isNonTerminal($P0Type, M_lang_rascal_syntax_Rascal.NT_Class)){ + return $RVF.constructor(M_lang_rascal_syntax_Rascal.Class_complement_Class, new IValue[]{(ITree) $P0}); + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0)); + } + public IBool isNodeType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isNodeType($P0); + } + public IConstructor cc2ranges(IValue $P0){ // Generated by Resolver + IConstructor $result = null; + Type $P0Type = $P0.getType(); + if($isNonTerminal($P0Type, M_lang_rascal_syntax_Rascal.NT_Class)){ + $result = (IConstructor)lang_rascal_grammar_definition_Characters_cc2ranges$54a54e4321a65bcb((ITree) $P0); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0)); + } + public IBool isReifiedType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isReifiedType($P0); + } + public IBool isRelType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isRelType($P0); + } + public IValue intersection(IValue $P0, IValue $P1){ // Generated by Resolver + IValue $result = null; + Type $P0Type = $P0.getType(); + Type $P1Type = $P1.getType(); + if($isSubtypeOf($P0Type, M_ParseTree.ADT_Symbol) && $isSubtypeOf($P1Type, M_ParseTree.ADT_Symbol)){ + $result = (IValue)lang_rascal_grammar_definition_Characters_intersection$b97501af85a6ce29((IConstructor) $P0, (IConstructor) $P1); + if($result != null) return $result; + } + if($isSubtypeOf($P0Type,$T0) && $isSubtypeOf($P1Type,$T0)){ + $result = (IValue)lang_rascal_grammar_definition_Characters_intersection$2244f3914dc6dda2((IList) $P0, (IList) $P1); + if($result != null) return $result; + } + if($isSubtypeOf($P0Type, M_ParseTree.ADT_Symbol) && $isSubtypeOf($P1Type, M_ParseTree.ADT_Symbol)){ + $result = (IValue)lang_rascal_grammar_definition_Characters_intersection$1412bfd05092c19b((IConstructor) $P0, (IConstructor) $P1); + if($result != null) return $result; + } + if($isNonTerminal($P0Type, M_lang_rascal_syntax_Rascal.NT_Class) && $isNonTerminal($P1Type, M_lang_rascal_syntax_Rascal.NT_Class)){ + return $RVF.constructor(M_lang_rascal_syntax_Rascal.Class_intersection_Class_Class, new IValue[]{(ITree) $P0, (ITree) $P1}); + } + if($isNonTerminal($P0Type, M_lang_rascal_syntax_Rascal.NT_Expression) && $isNonTerminal($P1Type, M_lang_rascal_syntax_Rascal.NT_Expression)){ + return $RVF.constructor(M_lang_rascal_syntax_Rascal.Expression_intersection_Expression_Expression, new IValue[]{(ITree) $P0, (ITree) $P1}); + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0, $P1)); + } + public IBool isConstructorType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isConstructorType($P0); + } + public IBool isListRelType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isListRelType($P0); + } + public IList addParamLabels(IValue $P0, IValue $P1){ // Generated by Resolver + return (IList) M_Type.addParamLabels($P0, $P1); + } + public IBool isMapType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isMapType($P0); + } + public IBool isBoolType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isBoolType($P0); + } + public IConstructor new_char_class(IValue $P0){ // Generated by Resolver + IConstructor $result = null; + Type $P0Type = $P0.getType(); + if($isSubtypeOf($P0Type,$T0)){ + $result = (IConstructor)lang_rascal_grammar_definition_Characters_new_char_class$5e7c03a98ce83659((IList) $P0); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0)); + } + public IValue union(IValue $P0, IValue $P1){ // Generated by Resolver + IValue $result = null; + Type $P0Type = $P0.getType(); + Type $P1Type = $P1.getType(); + if($isSubtypeOf($P0Type, M_ParseTree.ADT_Symbol) && $isSubtypeOf($P1Type, M_ParseTree.ADT_Symbol)){ + $result = (IValue)lang_rascal_grammar_definition_Characters_union$19bdbbc222bf3a4b((IConstructor) $P0, (IConstructor) $P1); + if($result != null) return $result; + } + if($isSubtypeOf($P0Type,$T0) && $isSubtypeOf($P1Type,$T0)){ + $result = (IValue)lang_rascal_grammar_definition_Characters_union$bf68e50d1ee7fd6b((IList) $P0, (IList) $P1); + if($result != null) return $result; + } + if($isSubtypeOf($P0Type, M_ParseTree.ADT_Symbol) && $isSubtypeOf($P1Type, M_ParseTree.ADT_Symbol)){ + $result = (IValue)lang_rascal_grammar_definition_Characters_union$5d96096e72e9da4a((IConstructor) $P0, (IConstructor) $P1); + if($result != null) return $result; + } + if($isNonTerminal($P0Type, M_lang_rascal_syntax_Rascal.NT_Class) && $isNonTerminal($P1Type, M_lang_rascal_syntax_Rascal.NT_Class)){ + return $RVF.constructor(M_lang_rascal_syntax_Rascal.Class_union_Class_Class, new IValue[]{(ITree) $P0, (ITree) $P1}); + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0, $P1)); + } + public IBool isLocType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isLocType($P0); + } + public IConstructor new_range(IValue $P0, IValue $P1){ // Generated by Resolver + IConstructor $result = null; + Type $P0Type = $P0.getType(); + Type $P1Type = $P1.getType(); + if($isSubtypeOf($P0Type,$T1) && $isSubtypeOf($P1Type,$T1)){ + $result = (IConstructor)lang_rascal_grammar_definition_Characters_new_range$10d5c4049fe689a1((IInteger) $P0, (IInteger) $P1); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0, $P1)); + } + public IList tail(IValue $P0){ // Generated by Resolver + return (IList) M_List.tail($P0); + } + public IList tail(IValue $P0, IValue $P1){ // Generated by Resolver + return (IList) M_List.tail($P0, $P1); + } + public ITuple headTail(IValue $P0){ // Generated by Resolver + return (ITuple) M_List.headTail($P0); + } + public IConstructor treeAt(IValue $P0, IValue $P1, IValue $P2){ // Generated by Resolver + return (IConstructor) M_ParseTree.treeAt($P0, $P1, $P2); + } + public IBool isSetType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isSetType($P0); + } + public IInteger toInt(IValue $P0){ // Generated by Resolver + return (IInteger) M_String.toInt($P0); + } + public IInteger toInt(IValue $P0, IValue $P1){ // Generated by Resolver + return (IInteger) M_String.toInt($P0, $P1); + } + public IBool isRatType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isRatType($P0); + } + public IBool isNumType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isNumType($P0); + } + public IBool isTupleType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isTupleType($P0); + } + public IBool isBagType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isBagType($P0); + } + public IBool isVoidType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isVoidType($P0); + } + public IBool isNonTerminalType(IValue $P0){ // Generated by Resolver + return (IBool) M_ParseTree.isNonTerminalType($P0); + } + public IValue lub(IValue $P0, IValue $P1){ // Generated by Resolver + return (IValue) M_Type.lub($P0, $P1); + } + public IBool subtype(IValue $P0, IValue $P1){ // Generated by Resolver + return (IBool) M_Type.subtype($P0, $P1); + } + public IConstructor associativity(IValue $P0, IValue $P1, IValue $P2){ // Generated by Resolver + return (IConstructor) M_ParseTree.associativity($P0, $P1, $P2); + } + public IBool lessThan(IValue $P0, IValue $P1){ // Generated by Resolver + IBool $result = null; + Type $P0Type = $P0.getType(); + Type $P1Type = $P1.getType(); + if($isSubtypeOf($P0Type, M_ParseTree.ADT_CharRange) && $isSubtypeOf($P1Type, M_ParseTree.ADT_CharRange)){ + $result = (IBool)lang_rascal_grammar_definition_Characters_lessThan$3bd4f51b080cac40((IConstructor) $P0, (IConstructor) $P1); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0, $P1)); + } + public IBool isFunctionType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isFunctionType($P0); + } + public IValue glb(IValue $P0, IValue $P1){ // Generated by Resolver + return (IValue) M_Type.glb($P0, $P1); + } + public IValue difference(IValue $P0, IValue $P1){ // Generated by Resolver + IValue $result = null; + Type $P0Type = $P0.getType(); + Type $P1Type = $P1.getType(); + if($isSubtypeOf($P0Type, M_ParseTree.ADT_Symbol) && $isSubtypeOf($P1Type, M_ParseTree.ADT_Symbol)){ + $result = (IValue)lang_rascal_grammar_definition_Characters_difference$b274dba4e7c84de6((IConstructor) $P0, (IConstructor) $P1); + if($result != null) return $result; + } + if($isSubtypeOf($P0Type, M_ParseTree.ADT_CharRange) && $isSubtypeOf($P1Type, M_ParseTree.ADT_CharRange)){ + $result = (IValue)lang_rascal_grammar_definition_Characters_difference$d1d431e6985d0b49((IConstructor) $P0, (IConstructor) $P1); + if($result != null) return $result; + } + if($isSubtypeOf($P0Type,$T0) && $isSubtypeOf($P1Type,$T0)){ + $result = (IValue)lang_rascal_grammar_definition_Characters_difference$73ce40b5ac114748((IList) $P0, (IList) $P1); + if($result != null) return $result; + } + if($isSubtypeOf($P0Type, M_ParseTree.ADT_Symbol) && $isSubtypeOf($P1Type, M_ParseTree.ADT_Symbol)){ + $result = (IValue)lang_rascal_grammar_definition_Characters_difference$c32239e262a94923((IConstructor) $P0, (IConstructor) $P1); + if($result != null) return $result; + } + if($isNonTerminal($P0Type, M_lang_rascal_syntax_Rascal.NT_Class) && $isNonTerminal($P1Type, M_lang_rascal_syntax_Rascal.NT_Class)){ + return $RVF.constructor(M_lang_rascal_syntax_Rascal.Class_difference_Class_Class, new IValue[]{(ITree) $P0, (ITree) $P1}); + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0, $P1)); + } + public IConstructor range(IValue $P0){ // Generated by Resolver + IConstructor $result = null; + Type $P0Type = $P0.getType(); + if($isNonTerminal($P0Type, M_lang_rascal_syntax_Rascal.NT_Range)){ + $result = (IConstructor)lang_rascal_grammar_definition_Characters_range$1a0b128882305baa((ITree) $P0); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0)); + } + public IInteger charToInt(IValue $P0){ // Generated by Resolver + IInteger $result = null; + Type $P0Type = $P0.getType(); + if($isNonTerminal($P0Type, ((IConstructor)$constants.get(0)/*lex("Char")*/))){ + $result = (IInteger)lang_rascal_grammar_definition_Characters_charToInt$e48d9965143ec1dd((ITree) $P0); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0)); + } + public IConstructor intersect(IValue $P0, IValue $P1){ // Generated by Resolver + IConstructor $result = null; + Type $P0Type = $P0.getType(); + Type $P1Type = $P1.getType(); + if($isSubtypeOf($P0Type, M_ParseTree.ADT_CharRange) && $isSubtypeOf($P1Type, M_ParseTree.ADT_CharRange)){ + $result = (IConstructor)lang_rascal_grammar_definition_Characters_intersect$2c8ff0e2841a0a40((IConstructor) $P0, (IConstructor) $P1); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0, $P1)); + } + public IBool isIntType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isIntType($P0); + } + public IBool isDateTimeType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isDateTimeType($P0); + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/lang/rascal/grammar/definition/Characters.rsc|(722,87,<23,0>,<23,87>) + public IConstructor lang_rascal_grammar_definition_Characters_new_range$10d5c4049fe689a1(IInteger from_0, IInteger to_1){ + + + if((((IBool)($aint_lessequal_aint(((IInteger)from_0),((IInteger)to_1))))).getValue()){ + return ((IConstructor)($RVF.constructor(M_ParseTree.CharRange_range_int_int, new IValue[]{((IInteger)from_0), ((IInteger)to_1)}))); + + } else { + return ((IConstructor)($RVF.constructor(CharRange_empty_range_, new IValue[]{}))); + + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/lang/rascal/grammar/definition/Characters.rsc|(812,108,<25,0>,<26,53>) + public IConstructor lang_rascal_grammar_definition_Characters_new_char_class$5e7c03a98ce83659(IList ranges_0){ + + + IList $reducer2 = (IList)(((IList)$constants.get(1)/*[]*/)); + $REDUCER1_GEN906: + for(IValue $elem3_for : ((IList)ranges_0)){ + IConstructor $elem3 = (IConstructor) $elem3_for; + IConstructor r_2 = ((IConstructor)($elem3)); + $reducer2 = ((IList)($me.union(((IList)($reducer2)), ((IList)($RVF.list(((IConstructor)r_2))))))); + + } + + return ((IConstructor)($RVF.constructor(M_ParseTree.Symbol_char_class_list_CharRange, new IValue[]{((IList)($reducer2))}))); + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/lang/rascal/grammar/definition/Characters.rsc|(1373,124,<33,0>,<34,64>) + public IConstructor lang_rascal_grammar_definition_Characters_complement$b568586ea6930aa8(IConstructor $0){ + + + if($has_type_and_arity($0, M_ParseTree.Symbol_char_class_list_CharRange, 1)){ + IValue $arg0_7 = (IValue)($aadt_subscript_int(((IConstructor)$0),0)); + if($isComparable($arg0_7.getType(), $T0)){ + if(true){ + IList r1_0 = ((IList)($arg0_7)); + final IListWriter $listwriter4 = (IListWriter)$RVF.listWriter(); + $LCOMP5_GEN1453: + for(IValue $elem6_for : ((IList)($me.complement(((IList)($arg0_7)))))){ + IConstructor $elem6 = (IConstructor) $elem6_for; + IConstructor r_1 = null; + if($is(((IConstructor)($elem6)),((IString)$constants.get(2)/*"empty-range"*/))){ + continue $LCOMP5_GEN1453; + } else { + $listwriter4.append($elem6); + + } + + } + + return ((IConstructor)($RVF.constructor(M_ParseTree.Symbol_char_class_list_CharRange, new IValue[]{((IList)($listwriter4.done()))}))); + + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/lang/rascal/grammar/definition/Characters.rsc|(1501,113,<36,0>,<38,1>) + public IConstructor lang_rascal_grammar_definition_Characters_complement$e4978c5ddcaf2671(IConstructor s_0){ + + + final Template $template8 = (Template)new Template($RVF, "unsupported symbol for character class complement: "); + $template8.beginIndent(" "); + $template8.addVal(s_0); + $template8.endIndent(" "); + throw new Throw($template8.close()); + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/lang/rascal/grammar/definition/Characters.rsc|(1618,161,<40,0>,<41,68>) + public IConstructor lang_rascal_grammar_definition_Characters_difference$b274dba4e7c84de6(IConstructor $0, IConstructor $1){ + + + if($has_type_and_arity($0, M_ParseTree.Symbol_char_class_list_CharRange, 1)){ + IValue $arg0_13 = (IValue)($aadt_subscript_int(((IConstructor)$0),0)); + if($isComparable($arg0_13.getType(), $T0)){ + if(true){ + IList r1_0 = ((IList)($arg0_13)); + if($has_type_and_arity($1, M_ParseTree.Symbol_char_class_list_CharRange, 1)){ + IValue $arg0_12 = (IValue)($aadt_subscript_int(((IConstructor)$1),0)); + if($isComparable($arg0_12.getType(), $T0)){ + if(true){ + IList r2_1 = ((IList)($arg0_12)); + final IListWriter $listwriter9 = (IListWriter)$RVF.listWriter(); + $LCOMP10_GEN1732: + for(IValue $elem11_for : ((IList)($me.difference(((IList)($arg0_13)), ((IList)($arg0_12)))))){ + IConstructor $elem11 = (IConstructor) $elem11_for; + IConstructor r_2 = null; + if($is(((IConstructor)($elem11)),((IString)$constants.get(2)/*"empty-range"*/))){ + continue $LCOMP10_GEN1732; + } else { + $listwriter9.append($elem11); + + } + + } + + return ((IConstructor)($RVF.constructor(M_ParseTree.Symbol_char_class_list_CharRange, new IValue[]{((IList)($listwriter9.done()))}))); + + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/lang/rascal/grammar/definition/Characters.rsc|(1781,133,<43,0>,<45,1>) + public IConstructor lang_rascal_grammar_definition_Characters_difference$c32239e262a94923(IConstructor s_0, IConstructor t_1){ + + + final Template $template14 = (Template)new Template($RVF, "unsupported symbols for character class difference: "); + $template14.beginIndent(" "); + $template14.addVal(s_0); + $template14.endIndent(" "); + $template14.addStr(" and "); + $template14.beginIndent(" "); + $template14.addVal(t_1); + $template14.endIndent(" "); + throw new Throw($template14.close()); + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/lang/rascal/grammar/definition/Characters.rsc|(1916,149,<47,0>,<48,63>) + public IConstructor lang_rascal_grammar_definition_Characters_union$19bdbbc222bf3a4b(IConstructor $0, IConstructor $1){ + + + if($has_type_and_arity($0, M_ParseTree.Symbol_char_class_list_CharRange, 1)){ + IValue $arg0_19 = (IValue)($aadt_subscript_int(((IConstructor)$0),0)); + if($isComparable($arg0_19.getType(), $T0)){ + if(true){ + IList r1_0 = ((IList)($arg0_19)); + if($has_type_and_arity($1, M_ParseTree.Symbol_char_class_list_CharRange, 1)){ + IValue $arg0_18 = (IValue)($aadt_subscript_int(((IConstructor)$1),0)); + if($isComparable($arg0_18.getType(), $T0)){ + if(true){ + IList r2_1 = ((IList)($arg0_18)); + final IListWriter $listwriter15 = (IListWriter)$RVF.listWriter(); + $LCOMP16_GEN2023: + for(IValue $elem17_for : ((IList)($me.union(((IList)($arg0_19)), ((IList)($arg0_18)))))){ + IConstructor $elem17 = (IConstructor) $elem17_for; + IConstructor r_2 = null; + if($is(((IConstructor)($elem17)),((IString)$constants.get(2)/*"empty-range"*/))){ + continue $LCOMP16_GEN2023; + } else { + $listwriter15.append($elem17); + + } + + } + + return ((IConstructor)($RVF.constructor(M_ParseTree.Symbol_char_class_list_CharRange, new IValue[]{((IList)($listwriter15.done()))}))); + + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/lang/rascal/grammar/definition/Characters.rsc|(2068,106,<50,0>,<52,1>) + public IConstructor lang_rascal_grammar_definition_Characters_union$5d96096e72e9da4a(IConstructor s_0, IConstructor t_1){ + + + final Template $template20 = (Template)new Template($RVF, "unsupported symbols for union: "); + $template20.beginIndent(" "); + $template20.addVal(s_0); + $template20.endIndent(" "); + $template20.addStr(" and "); + $template20.beginIndent(" "); + $template20.addVal(t_1); + $template20.endIndent(" "); + throw new Throw($template20.close()); + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/lang/rascal/grammar/definition/Characters.rsc|(2176,164,<54,0>,<55,70>) + public IConstructor lang_rascal_grammar_definition_Characters_intersection$b97501af85a6ce29(IConstructor $0, IConstructor $1){ + + + if($has_type_and_arity($0, M_ParseTree.Symbol_char_class_list_CharRange, 1)){ + IValue $arg0_25 = (IValue)($aadt_subscript_int(((IConstructor)$0),0)); + if($isComparable($arg0_25.getType(), $T0)){ + if(true){ + IList r1_0 = ((IList)($arg0_25)); + if($has_type_and_arity($1, M_ParseTree.Symbol_char_class_list_CharRange, 1)){ + IValue $arg0_24 = (IValue)($aadt_subscript_int(((IConstructor)$1),0)); + if($isComparable($arg0_24.getType(), $T0)){ + if(true){ + IList r2_1 = ((IList)($arg0_24)); + final IListWriter $listwriter21 = (IListWriter)$RVF.listWriter(); + $LCOMP22_GEN2291: + for(IValue $elem23_for : ((IList)($me.intersection(((IList)($arg0_25)), ((IList)($arg0_24)))))){ + IConstructor $elem23 = (IConstructor) $elem23_for; + IConstructor r_2 = null; + if($is(((IConstructor)($elem23)),((IString)$constants.get(2)/*"empty-range"*/))){ + continue $LCOMP22_GEN2291; + } else { + $listwriter21.append($elem23); + + } + + } + + return ((IConstructor)($RVF.constructor(M_ParseTree.Symbol_char_class_list_CharRange, new IValue[]{((IList)($listwriter21.done()))}))); + + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/lang/rascal/grammar/definition/Characters.rsc|(2342,120,<57,0>,<59,1>) + public IConstructor lang_rascal_grammar_definition_Characters_intersection$1412bfd05092c19b(IConstructor s_0, IConstructor t_1){ + + + final Template $template26 = (Template)new Template($RVF, "unsupported symbols for intersection: "); + $template26.beginIndent(" "); + $template26.addVal(s_0); + $template26.endIndent(" "); + $template26.addStr(" and "); + $template26.beginIndent(" "); + $template26.addVal(t_1); + $template26.endIndent(" "); + throw new Throw($template26.close()); + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/lang/rascal/grammar/definition/Characters.rsc|(2464,165,<61,0>,<66,1>) + public IBool lang_rascal_grammar_definition_Characters_lessThan$3bd4f51b080cac40(IConstructor r1_0, IConstructor r2_1){ + + + if($has_type_and_arity(r1_0, M_ParseTree.CharRange_range_int_int, 2)){ + IValue $arg0_30 = (IValue)($aadt_subscript_int(((IConstructor)r1_0),0)); + if($isComparable($arg0_30.getType(), $T4)){ + IValue $arg1_29 = (IValue)($aadt_subscript_int(((IConstructor)r1_0),1)); + if($isComparable($arg1_29.getType(), $T1)){ + IInteger e1_2 = null; + if($has_type_and_arity(r2_1, M_ParseTree.CharRange_range_int_int, 2)){ + IValue $arg0_28 = (IValue)($aadt_subscript_int(((IConstructor)r2_1),0)); + if($isComparable($arg0_28.getType(), $T1)){ + IInteger s2_3 = null; + IValue $arg1_27 = (IValue)($aadt_subscript_int(((IConstructor)r2_1),1)); + if($isComparable($arg1_27.getType(), $T4)){ + return ((IBool)($aint_less_aint(((IInteger)($arg1_29)),((IInteger)($arg0_28))))); + + } + + } + + } + + } + + } + + } + final Template $template31 = (Template)new Template($RVF, "unexpected ranges "); + $template31.beginIndent(" "); + $template31.addVal(r1_0); + $template31.endIndent(" "); + $template31.addStr(" and "); + $template31.beginIndent(" "); + $template31.addVal(r2_1); + $template31.endIndent(" "); + throw new Throw($template31.close()); + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/lang/rascal/grammar/definition/Characters.rsc|(2631,1064,<68,0>,<110,1>) + public IConstructor lang_rascal_grammar_definition_Characters_difference$d1d431e6985d0b49(IConstructor l_0, IConstructor r_1){ + + + if((((IBool)($equal(((IConstructor)l_0), ((IConstructor)($RVF.constructor(CharRange_empty_range_, new IValue[]{}))))))).getValue()){ + return ((IConstructor)l_0); + + } else { + if((((IBool)($equal(((IConstructor)r_1), ((IConstructor)($RVF.constructor(CharRange_empty_range_, new IValue[]{}))))))).getValue()){ + return ((IConstructor)l_0); + + } + + }if($has_type_and_arity(l_0, M_ParseTree.CharRange_range_int_int, 2)){ + IValue $arg0_35 = (IValue)($aadt_subscript_int(((IConstructor)l_0),0)); + if($isComparable($arg0_35.getType(), $T1)){ + IInteger ls_2 = ((IInteger)($arg0_35)); + IValue $arg1_34 = (IValue)($aadt_subscript_int(((IConstructor)l_0),1)); + if($isComparable($arg1_34.getType(), $T1)){ + IInteger le_3 = ((IInteger)($arg1_34)); + if($has_type_and_arity(r_1, M_ParseTree.CharRange_range_int_int, 2)){ + IValue $arg0_33 = (IValue)($aadt_subscript_int(((IConstructor)r_1),0)); + if($isComparable($arg0_33.getType(), $T1)){ + IInteger rs_4 = ((IInteger)($arg0_33)); + IValue $arg1_32 = (IValue)($aadt_subscript_int(((IConstructor)r_1),1)); + if($isComparable($arg1_32.getType(), $T1)){ + IInteger re_5 = ((IInteger)($arg1_32)); + if((((IBool)($aint_lessequal_aint(((IInteger)($arg0_35)),((IInteger)($arg1_32))).not()))).getValue()){ + return ((IConstructor)l_0); + + } + if((((IBool)($aint_less_aint(((IInteger)($arg1_34)),((IInteger)($arg0_33)))))).getValue()){ + return ((IConstructor)l_0); + + } + if((((IBool)($aint_less_aint(((IInteger)($arg0_35)),((IInteger)($arg0_33))).not()))).getValue()){ + if((((IBool)($aint_lessequal_aint(((IInteger)($arg1_34)),((IInteger)($arg1_32)))))).getValue()){ + return ((IConstructor)($RVF.constructor(CharRange_empty_range_, new IValue[]{}))); + + } + + } + if((((IBool)($aint_less_aint(((IInteger)($arg0_33)),((IInteger)($arg0_35))).not()))).getValue()){ + if((((IBool)($aint_lessequal_aint(((IInteger)($arg1_32)),((IInteger)($arg1_34)))))).getValue()){ + return ((IConstructor)($me.new_range(((IInteger)($arg0_35)), ((IInteger)(((IInteger) ((IInteger)($arg0_33)).subtract(((IInteger)$constants.get(3)/*1*/)))))))); + + } + + } + if((((IBool)($aint_less_aint(((IInteger)($arg1_34)),((IInteger)($arg1_32)))))).getValue()){ + return ((IConstructor)($me.new_range(((IInteger)($arg0_35)), ((IInteger)(((IInteger) ((IInteger)($arg0_33)).subtract(((IInteger)$constants.get(3)/*1*/)))))))); + + } + if((((IBool)($aint_lessequal_aint(((IInteger)($arg0_35)),((IInteger)($arg0_33))).not()))).getValue()){ + return ((IConstructor)($RVF.constructor(M_ParseTree.CharRange_range_int_int, new IValue[]{((IInteger)($aint_add_aint(((IInteger)($arg1_32)),((IInteger)$constants.get(3)/*1*/)))), ((IInteger)($arg1_34))}))); + + } + + } + + } + + } + + } + + } + + } + final Template $template36 = (Template)new Template($RVF, "did not expect to end up here! "); + $template36.beginIndent(" "); + $template36.addVal(l_0); + $template36.endIndent(" "); + $template36.addStr(" - "); + $template36.beginIndent(" "); + $template36.addVal(r_1); + $template36.endIndent(" "); + throw new Throw($template36.close()); + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/lang/rascal/grammar/definition/Characters.rsc|(3697,1089,<112,0>,<154,1>) + public IConstructor lang_rascal_grammar_definition_Characters_intersect$2c8ff0e2841a0a40(IConstructor r1_0, IConstructor r2_1){ + + + if((((IBool)($equal(((IConstructor)r1_0), ((IConstructor)($RVF.constructor(CharRange_empty_range_, new IValue[]{}))))))).getValue()){ + return ((IConstructor)($RVF.constructor(CharRange_empty_range_, new IValue[]{}))); + + } else { + if((((IBool)($equal(((IConstructor)r2_1), ((IConstructor)($RVF.constructor(CharRange_empty_range_, new IValue[]{}))))))).getValue()){ + return ((IConstructor)($RVF.constructor(CharRange_empty_range_, new IValue[]{}))); + + } + + }if($has_type_and_arity(r1_0, M_ParseTree.CharRange_range_int_int, 2)){ + IValue $arg0_40 = (IValue)($aadt_subscript_int(((IConstructor)r1_0),0)); + if($isComparable($arg0_40.getType(), $T1)){ + IInteger s1_2 = null; + IValue $arg1_39 = (IValue)($aadt_subscript_int(((IConstructor)r1_0),1)); + if($isComparable($arg1_39.getType(), $T1)){ + IInteger e1_3 = null; + if($has_type_and_arity(r2_1, M_ParseTree.CharRange_range_int_int, 2)){ + IValue $arg0_38 = (IValue)($aadt_subscript_int(((IConstructor)r2_1),0)); + if($isComparable($arg0_38.getType(), $T1)){ + IInteger s2_4 = null; + IValue $arg1_37 = (IValue)($aadt_subscript_int(((IConstructor)r2_1),1)); + if($isComparable($arg1_37.getType(), $T1)){ + IInteger e2_5 = null; + if((((IBool)($aint_lessequal_aint(((IInteger)($arg0_40)),((IInteger)($arg1_37))).not()))).getValue()){ + return ((IConstructor)($RVF.constructor(CharRange_empty_range_, new IValue[]{}))); + + } + if((((IBool)($aint_less_aint(((IInteger)($arg1_39)),((IInteger)($arg0_38)))))).getValue()){ + return ((IConstructor)($RVF.constructor(CharRange_empty_range_, new IValue[]{}))); + + } + if((((IBool)($aint_less_aint(((IInteger)($arg0_40)),((IInteger)($arg0_38))).not()))).getValue()){ + if((((IBool)($aint_lessequal_aint(((IInteger)($arg1_39)),((IInteger)($arg1_37)))))).getValue()){ + return ((IConstructor)r1_0); + + } + + } + if((((IBool)($aint_less_aint(((IInteger)($arg0_38)),((IInteger)($arg0_40))).not()))).getValue()){ + if((((IBool)($aint_lessequal_aint(((IInteger)($arg1_37)),((IInteger)($arg1_39)))))).getValue()){ + return ((IConstructor)r2_1); + + } + + } + if((((IBool)($aint_less_aint(((IInteger)($arg1_39)),((IInteger)($arg1_37)))))).getValue()){ + return ((IConstructor)($RVF.constructor(M_ParseTree.CharRange_range_int_int, new IValue[]{((IInteger)($arg0_38)), ((IInteger)($arg1_39))}))); + + } + if((((IBool)($aint_lessequal_aint(((IInteger)($arg0_40)),((IInteger)($arg0_38))).not()))).getValue()){ + return ((IConstructor)($RVF.constructor(M_ParseTree.CharRange_range_int_int, new IValue[]{((IInteger)($arg0_40)), ((IInteger)($arg1_37))}))); + + } + + } + + } + + } + + } + + } + + } + final Template $template41 = (Template)new Template($RVF, "unexpected ranges "); + $template41.beginIndent(" "); + $template41.addVal(r1_0); + $template41.endIndent(" "); + $template41.addStr(" and "); + $template41.beginIndent(" "); + $template41.addVal(r2_1); + $template41.endIndent(" "); + throw new Throw($template41.close()); + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/lang/rascal/grammar/definition/Characters.rsc|(4788,131,<156,0>,<158,1>) + public IList lang_rascal_grammar_definition_Characters_complement$9bb082bbab5b8dd8(IList s_0){ + + + return ((IList)($me.difference(((IList)$constants.get(4)/*[range(1,1114111)]*/), ((IList)s_0)))); + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/lang/rascal/grammar/definition/Characters.rsc|(4921,1485,<160,0>,<211,1>) + public IList lang_rascal_grammar_definition_Characters_intersection$2244f3914dc6dda2(IList l_0, IList r_1){ + + + if((((IBool)($equal(((IList)l_0), ((IList)r_1))))).getValue()){ + return ((IList)l_0); + + } + if((((IBool)($equal(((IList)l_0), ((IList)$constants.get(1)/*[]*/))))).getValue()){ + return ((IList)$constants.get(1)/*[]*/); + + } else { + if((((IBool)($equal(((IList)r_1), ((IList)$constants.get(1)/*[]*/))))).getValue()){ + return ((IList)$constants.get(1)/*[]*/); + + } + + }ITuple $TMP42 = (ITuple)($RVF.tuple(((IConstructor)(M_List.head(((IList)l_0)))), ((IList)(M_List.tail(((IList)l_0)))))); + IConstructor lhead_2 = ((IConstructor)($atuple_subscript_int(((ITuple)($TMP42)),0))); + IList ltail_3 = ((IList)($atuple_subscript_int(((ITuple)($TMP42)),1))); + ITuple $TMP43 = (ITuple)($RVF.tuple(((IConstructor)(M_List.head(((IList)r_1)))), ((IList)(M_List.tail(((IList)r_1)))))); + IConstructor rhead_4 = ((IConstructor)($atuple_subscript_int(((ITuple)($TMP43)),0))); + IList rtail_5 = ((IList)($atuple_subscript_int(((ITuple)($TMP43)),1))); + if((((IBool)($equal(((IConstructor)lhead_2), ((IConstructor)($RVF.constructor(CharRange_empty_range_, new IValue[]{}))))))).getValue()){ + return ((IList)($me.intersection(((IList)ltail_3), ((IList)r_1)))); + + } + if((((IBool)($equal(((IConstructor)rhead_4), ((IConstructor)($RVF.constructor(CharRange_empty_range_, new IValue[]{}))))))).getValue()){ + return ((IList)($me.intersection(((IList)l_0), ((IList)rtail_5)))); + + } + if((((IBool)($aint_lessequal_aint(((IInteger)(((IInteger)($aadt_get_field(((IConstructor)lhead_2), "begin"))))),((IInteger)(((IInteger)($aadt_get_field(((IConstructor)rhead_4), "end")))))).not()))).getValue()){ + return ((IList)($me.intersection(((IList)l_0), ((IList)rtail_5)))); + + } + if((((IBool)($aint_less_aint(((IInteger)(((IInteger)($aadt_get_field(((IConstructor)lhead_2), "end"))))),((IInteger)(((IInteger)($aadt_get_field(((IConstructor)rhead_4), "begin"))))))))).getValue()){ + return ((IList)($me.intersection(((IList)ltail_3), ((IList)r_1)))); + + } + if((((IBool)($aint_less_aint(((IInteger)(((IInteger)($aadt_get_field(((IConstructor)lhead_2), "begin"))))),((IInteger)(((IInteger)($aadt_get_field(((IConstructor)rhead_4), "begin")))))).not()))).getValue()){ + if((((IBool)($aint_lessequal_aint(((IInteger)(((IInteger)($aadt_get_field(((IConstructor)lhead_2), "end"))))),((IInteger)(((IInteger)($aadt_get_field(((IConstructor)rhead_4), "end"))))))))).getValue()){ + return ((IList)($elm_add_alist(((IConstructor)lhead_2),((IList)($me.intersection(((IList)ltail_3), ((IList)r_1))))))); + + } + + } + if((((IBool)($aint_less_aint(((IInteger)(((IInteger)($aadt_get_field(((IConstructor)rhead_4), "begin"))))),((IInteger)(((IInteger)($aadt_get_field(((IConstructor)lhead_2), "begin")))))).not()))).getValue()){ + if((((IBool)($aint_lessequal_aint(((IInteger)(((IInteger)($aadt_get_field(((IConstructor)rhead_4), "end"))))),((IInteger)(((IInteger)($aadt_get_field(((IConstructor)lhead_2), "end"))))))))).getValue()){ + return ((IList)($elm_add_alist(((IConstructor)rhead_4),((IList)($me.intersection(((IList)l_0), ((IList)rtail_5))))))); + + } + + } + if((((IBool)($aint_less_aint(((IInteger)(((IInteger)($aadt_get_field(((IConstructor)lhead_2), "end"))))),((IInteger)(((IInteger)($aadt_get_field(((IConstructor)rhead_4), "end"))))))))).getValue()){ + return ((IList)($elm_add_alist(((IConstructor)($RVF.constructor(M_ParseTree.CharRange_range_int_int, new IValue[]{((IInteger)(((IInteger)($aadt_get_field(((IConstructor)rhead_4), "begin"))))), ((IInteger)(((IInteger)($aadt_get_field(((IConstructor)lhead_2), "end")))))}))),((IList)($me.intersection(((IList)ltail_3), ((IList)r_1))))))); + + } + if((((IBool)($aint_lessequal_aint(((IInteger)(((IInteger)($aadt_get_field(((IConstructor)lhead_2), "begin"))))),((IInteger)(((IInteger)($aadt_get_field(((IConstructor)rhead_4), "begin")))))).not()))).getValue()){ + return ((IList)($elm_add_alist(((IConstructor)($RVF.constructor(M_ParseTree.CharRange_range_int_int, new IValue[]{((IInteger)(((IInteger)($aadt_get_field(((IConstructor)lhead_2), "begin"))))), ((IInteger)(((IInteger)($aadt_get_field(((IConstructor)rhead_4), "end")))))}))),((IList)($me.intersection(((IList)l_0), ((IList)rtail_5))))))); + + } + final Template $template44 = (Template)new Template($RVF, "did not expect to end up here! "); + $template44.beginIndent(" "); + $template44.addVal(l_0); + $template44.endIndent(" "); + $template44.addStr(" - "); + $template44.beginIndent(" "); + $template44.addVal(r_1); + $template44.endIndent(" "); + throw new Throw($template44.close()); + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/lang/rascal/grammar/definition/Characters.rsc|(6409,1451,<213,0>,<265,1>) + public IList lang_rascal_grammar_definition_Characters_union$bf68e50d1ee7fd6b(IList l_0, IList r_1){ + + + if((((IBool)($equal(((IList)l_0), ((IList)r_1))))).getValue()){ + return ((IList)l_0); + + } + if((((IBool)($equal(((IList)l_0), ((IList)$constants.get(1)/*[]*/))))).getValue()){ + return ((IList)r_1); + + } + if((((IBool)($equal(((IList)r_1), ((IList)$constants.get(1)/*[]*/))))).getValue()){ + return ((IList)l_0); + + } + ITuple $TMP45 = (ITuple)($RVF.tuple(((IConstructor)(M_List.head(((IList)l_0)))), ((IList)(M_List.tail(((IList)l_0)))))); + IConstructor lhead_2 = ((IConstructor)($atuple_subscript_int(((ITuple)($TMP45)),0))); + IList ltail_3 = ((IList)($atuple_subscript_int(((ITuple)($TMP45)),1))); + ITuple $TMP46 = (ITuple)($RVF.tuple(((IConstructor)(M_List.head(((IList)r_1)))), ((IList)(M_List.tail(((IList)r_1)))))); + IConstructor rhead_4 = ((IConstructor)($atuple_subscript_int(((ITuple)($TMP46)),0))); + IList rtail_5 = ((IList)($atuple_subscript_int(((ITuple)($TMP46)),1))); + if((((IBool)($equal(((IConstructor)lhead_2), ((IConstructor)($RVF.constructor(CharRange_empty_range_, new IValue[]{}))))))).getValue()){ + return ((IList)($me.union(((IList)ltail_3), ((IList)r_1)))); + + } + if((((IBool)($equal(((IConstructor)rhead_4), ((IConstructor)($RVF.constructor(CharRange_empty_range_, new IValue[]{}))))))).getValue()){ + return ((IList)($me.union(((IList)l_0), ((IList)rtail_5)))); + + } + if((((IBool)($aint_lessequal_aint(((IInteger)(((IInteger)($aadt_get_field(((IConstructor)lhead_2), "begin"))))),((IInteger)($aint_add_aint(((IInteger)(((IInteger)($aadt_get_field(((IConstructor)rhead_4), "end"))))),((IInteger)$constants.get(3)/*1*/))))).not()))).getValue()){ + return ((IList)($elm_add_alist(((IConstructor)rhead_4),((IList)($me.union(((IList)l_0), ((IList)rtail_5))))))); + + } + if((((IBool)($aint_less_aint(((IInteger)($aint_add_aint(((IInteger)(((IInteger)($aadt_get_field(((IConstructor)lhead_2), "end"))))),((IInteger)$constants.get(3)/*1*/)))),((IInteger)(((IInteger)($aadt_get_field(((IConstructor)rhead_4), "begin"))))))))).getValue()){ + return ((IList)($elm_add_alist(((IConstructor)lhead_2),((IList)($me.union(((IList)ltail_3), ((IList)r_1))))))); + + } + if((((IBool)($aint_less_aint(((IInteger)(((IInteger)($aadt_get_field(((IConstructor)lhead_2), "begin"))))),((IInteger)(((IInteger)($aadt_get_field(((IConstructor)rhead_4), "begin")))))).not()))).getValue()){ + if((((IBool)($aint_lessequal_aint(((IInteger)(((IInteger)($aadt_get_field(((IConstructor)lhead_2), "end"))))),((IInteger)(((IInteger)($aadt_get_field(((IConstructor)rhead_4), "end"))))))))).getValue()){ + return ((IList)($me.union(((IList)ltail_3), ((IList)r_1)))); + + } + + } + if((((IBool)($aint_less_aint(((IInteger)(((IInteger)($aadt_get_field(((IConstructor)rhead_4), "begin"))))),((IInteger)(((IInteger)($aadt_get_field(((IConstructor)lhead_2), "begin")))))).not()))).getValue()){ + if((((IBool)($aint_lessequal_aint(((IInteger)(((IInteger)($aadt_get_field(((IConstructor)rhead_4), "end"))))),((IInteger)(((IInteger)($aadt_get_field(((IConstructor)lhead_2), "end"))))))))).getValue()){ + return ((IList)($me.union(((IList)l_0), ((IList)rtail_5)))); + + } + + } + if((((IBool)($aint_less_aint(((IInteger)(((IInteger)($aadt_get_field(((IConstructor)lhead_2), "end"))))),((IInteger)(((IInteger)($aadt_get_field(((IConstructor)rhead_4), "end"))))))))).getValue()){ + return ((IList)($me.union(((IList)($elm_add_alist(((IConstructor)($RVF.constructor(M_ParseTree.CharRange_range_int_int, new IValue[]{((IInteger)(((IInteger)($aadt_get_field(((IConstructor)lhead_2), "begin"))))), ((IInteger)(((IInteger)($aadt_get_field(((IConstructor)rhead_4), "end")))))}))),((IList)ltail_3)))), ((IList)rtail_5)))); + + } + if((((IBool)($aint_lessequal_aint(((IInteger)(((IInteger)($aadt_get_field(((IConstructor)lhead_2), "begin"))))),((IInteger)(((IInteger)($aadt_get_field(((IConstructor)rhead_4), "begin")))))).not()))).getValue()){ + return ((IList)($me.union(((IList)ltail_3), ((IList)($elm_add_alist(((IConstructor)($RVF.constructor(M_ParseTree.CharRange_range_int_int, new IValue[]{((IInteger)(((IInteger)($aadt_get_field(((IConstructor)rhead_4), "begin"))))), ((IInteger)(((IInteger)($aadt_get_field(((IConstructor)lhead_2), "end")))))}))),((IList)rtail_5))))))); + + } + final Template $template47 = (Template)new Template($RVF, "did not expect to end up here! "); + $template47.beginIndent(" "); + $template47.addVal(l_0); + $template47.endIndent(" "); + $template47.addStr(" - "); + $template47.beginIndent(" "); + $template47.addVal(r_1); + $template47.endIndent(" "); + throw new Throw($template47.close()); + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/lang/rascal/grammar/definition/Characters.rsc|(7989,1550,<271,0>,<322,1>) + public IList lang_rascal_grammar_definition_Characters_difference$73ce40b5ac114748(IList l_0, IList r_1){ + + + if((((IBool)($equal(((IList)l_0), ((IList)$constants.get(1)/*[]*/))))).getValue()){ + return ((IList)l_0); + + } else { + if((((IBool)($equal(((IList)r_1), ((IList)$constants.get(1)/*[]*/))))).getValue()){ + return ((IList)l_0); + + } + + }if((((IBool)($equal(((IList)l_0), ((IList)r_1))))).getValue()){ + return ((IList)$constants.get(1)/*[]*/); + + } + ITuple $TMP48 = (ITuple)($RVF.tuple(((IConstructor)(M_List.head(((IList)l_0)))), ((IList)(M_List.tail(((IList)l_0)))))); + IConstructor lhead_2 = ((IConstructor)($atuple_subscript_int(((ITuple)($TMP48)),0))); + IList ltail_3 = ((IList)($atuple_subscript_int(((ITuple)($TMP48)),1))); + ITuple $TMP49 = (ITuple)($RVF.tuple(((IConstructor)(M_List.head(((IList)r_1)))), ((IList)(M_List.tail(((IList)r_1)))))); + IConstructor rhead_4 = ((IConstructor)($atuple_subscript_int(((ITuple)($TMP49)),0))); + IList rtail_5 = ((IList)($atuple_subscript_int(((ITuple)($TMP49)),1))); + if((((IBool)($equal(((IConstructor)lhead_2), ((IConstructor)($RVF.constructor(CharRange_empty_range_, new IValue[]{}))))))).getValue()){ + return ((IList)($me.difference(((IList)ltail_3), ((IList)r_1)))); + + } + if((((IBool)($equal(((IConstructor)rhead_4), ((IConstructor)($RVF.constructor(CharRange_empty_range_, new IValue[]{}))))))).getValue()){ + return ((IList)($me.difference(((IList)l_0), ((IList)rtail_5)))); + + } + if((((IBool)($aint_lessequal_aint(((IInteger)(((IInteger)($aadt_get_field(((IConstructor)lhead_2), "begin"))))),((IInteger)(((IInteger)($aadt_get_field(((IConstructor)rhead_4), "end")))))).not()))).getValue()){ + return ((IList)($me.difference(((IList)l_0), ((IList)rtail_5)))); + + } + if((((IBool)($aint_less_aint(((IInteger)(((IInteger)($aadt_get_field(((IConstructor)lhead_2), "end"))))),((IInteger)(((IInteger)($aadt_get_field(((IConstructor)rhead_4), "begin"))))))))).getValue()){ + return ((IList)($elm_add_alist(((IConstructor)lhead_2),((IList)($me.difference(((IList)ltail_3), ((IList)r_1))))))); + + } + if((((IBool)($aint_less_aint(((IInteger)(((IInteger)($aadt_get_field(((IConstructor)lhead_2), "begin"))))),((IInteger)(((IInteger)($aadt_get_field(((IConstructor)rhead_4), "begin")))))).not()))).getValue()){ + if((((IBool)($aint_lessequal_aint(((IInteger)(((IInteger)($aadt_get_field(((IConstructor)lhead_2), "end"))))),((IInteger)(((IInteger)($aadt_get_field(((IConstructor)rhead_4), "end"))))))))).getValue()){ + return ((IList)($me.difference(((IList)ltail_3), ((IList)r_1)))); + + } + + } + if((((IBool)($aint_less_aint(((IInteger)(((IInteger)($aadt_get_field(((IConstructor)rhead_4), "begin"))))),((IInteger)(((IInteger)($aadt_get_field(((IConstructor)lhead_2), "begin")))))).not()))).getValue()){ + if((((IBool)($aint_lessequal_aint(((IInteger)(((IInteger)($aadt_get_field(((IConstructor)rhead_4), "end"))))),((IInteger)(((IInteger)($aadt_get_field(((IConstructor)lhead_2), "end"))))))))).getValue()){ + return ((IList)($elm_add_alist(((IConstructor)($me.new_range(((IInteger)(((IInteger)($aadt_get_field(((IConstructor)lhead_2), "begin"))))), ((IInteger)(((IInteger) ((IInteger)(((IInteger)($aadt_get_field(((IConstructor)rhead_4), "begin"))))).subtract(((IInteger)$constants.get(3)/*1*/)))))))),((IList)($me.difference(((IList)($elm_add_alist(((IConstructor)($me.new_range(((IInteger)($aint_add_aint(((IInteger)(((IInteger)($aadt_get_field(((IConstructor)rhead_4), "end"))))),((IInteger)$constants.get(3)/*1*/)))), ((IInteger)(((IInteger)($aadt_get_field(((IConstructor)lhead_2), "end")))))))),((IList)ltail_3)))), ((IList)rtail_5))))))); + + } + + } + if((((IBool)($aint_less_aint(((IInteger)(((IInteger)($aadt_get_field(((IConstructor)lhead_2), "end"))))),((IInteger)(((IInteger)($aadt_get_field(((IConstructor)rhead_4), "end"))))))))).getValue()){ + return ((IList)($elm_add_alist(((IConstructor)($me.new_range(((IInteger)(((IInteger)($aadt_get_field(((IConstructor)lhead_2), "begin"))))), ((IInteger)(((IInteger) ((IInteger)(((IInteger)($aadt_get_field(((IConstructor)rhead_4), "begin"))))).subtract(((IInteger)$constants.get(3)/*1*/)))))))),((IList)($me.difference(((IList)ltail_3), ((IList)r_1))))))); + + } + if((((IBool)($aint_lessequal_aint(((IInteger)(((IInteger)($aadt_get_field(((IConstructor)lhead_2), "begin"))))),((IInteger)(((IInteger)($aadt_get_field(((IConstructor)rhead_4), "begin")))))).not()))).getValue()){ + return ((IList)($me.difference(((IList)($elm_add_alist(((IConstructor)($RVF.constructor(M_ParseTree.CharRange_range_int_int, new IValue[]{((IInteger)($aint_add_aint(((IInteger)(((IInteger)($aadt_get_field(((IConstructor)rhead_4), "end"))))),((IInteger)$constants.get(3)/*1*/)))), ((IInteger)(((IInteger)($aadt_get_field(((IConstructor)lhead_2), "end")))))}))),((IList)ltail_3)))), ((IList)rtail_5)))); + + } + final Template $template50 = (Template)new Template($RVF, "did not expect to end up here! "); + $template50.beginIndent(" "); + $template50.addVal(l_0); + $template50.endIndent(" "); + $template50.addStr(" - "); + $template50.beginIndent(" "); + $template50.addVal(r_1); + $template50.endIndent(" "); + throw new Throw($template50.close()); + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/lang/rascal/grammar/definition/Characters.rsc|(10924,580,<339,0>,<349,1>) + public IConstructor lang_rascal_grammar_definition_Characters_cc2ranges$54a54e4321a65bcb(ITree cc_0){ + + + final ITree $switchVal51 = ((ITree)cc_0); + boolean noCaseMatched_$switchVal51 = true; + SWITCH48: switch(Fingerprint.getFingerprint($switchVal51)){ + + case 0: + if(noCaseMatched_$switchVal51){ + noCaseMatched_$switchVal51 = false; + + } + + + default: if($isSubtypeOf($switchVal51.getType(),M_lang_rascal_syntax_Rascal.NT_Class)){ + /*muExists*/CASE_0_0: + do { + if($nonterminal_has_name_and_arity($switchVal51, "simpleCharclass", 1)){ + IValue $arg0_59 = (IValue)($nonterminal_get_arg(((ITree)((ITree)($switchVal51))), ((IInteger)$constants.get(5)/*0*/).intValue())); + if($isComparable($arg0_59.getType(), $T5)){ + ITree ranges_1 = ((ITree)($arg0_59)); + final IListWriter $listwriter53 = (IListWriter)$RVF.listWriter(); + final ITree $exp56 = ((ITree)($arg0_59)); + final int $last57 = (int)((ITree)($exp56)).getArgs().length() - 1; + $LCOMP54_GEN11055: + + for(int $i58 = 0; $i58 <= $last57; $i58 += 2){ + final ITree $elem55 = ((ITree)($iter_subscript($exp56, $i58))); + ITree r_2 = ((ITree)($elem55)); + $listwriter53.append($me.range(((ITree)r_2))); + + } + + return ((IConstructor)($me.new_char_class(((IList)($listwriter53.done()))))); + + } + + } + + } while(false); + + } + if($isSubtypeOf($switchVal51.getType(),M_lang_rascal_syntax_Rascal.NT_Class)){ + /*muExists*/CASE_0_1: + do { + if($nonterminal_has_name_and_arity($switchVal51, "bracket", 1)){ + IValue $arg0_60 = (IValue)($nonterminal_get_arg(((ITree)((ITree)($switchVal51))), ((IInteger)$constants.get(5)/*0*/).intValue())); + if($isComparable($arg0_60.getType(), M_lang_rascal_syntax_Rascal.NT_Class)){ + ITree c_3 = ((ITree)($arg0_60)); + return ((IConstructor)($me.cc2ranges(((ITree)($arg0_60))))); + + } + + } + + } while(false); + + } + if($isSubtypeOf($switchVal51.getType(),M_lang_rascal_syntax_Rascal.NT_Class)){ + /*muExists*/CASE_0_2: + do { + if($nonterminal_has_name_and_arity($switchVal51, "complement", 1)){ + IValue $arg0_61 = (IValue)($nonterminal_get_arg(((ITree)((ITree)($switchVal51))), ((IInteger)$constants.get(5)/*0*/).intValue())); + if($isComparable($arg0_61.getType(), M_lang_rascal_syntax_Rascal.NT_Class)){ + ITree c_4 = ((ITree)($arg0_61)); + return ((IConstructor)($me.complement(((IConstructor)($me.cc2ranges(((ITree)($arg0_61)))))))); + + } + + } + + } while(false); + + } + if($isSubtypeOf($switchVal51.getType(),M_lang_rascal_syntax_Rascal.NT_Class)){ + /*muExists*/CASE_0_3: + do { + if($nonterminal_has_name_and_arity($switchVal51, "intersection", 2)){ + IValue $arg0_63 = (IValue)($nonterminal_get_arg(((ITree)((ITree)($switchVal51))), ((IInteger)$constants.get(5)/*0*/).intValue())); + if($isComparable($arg0_63.getType(), M_lang_rascal_syntax_Rascal.NT_Class)){ + ITree l_5 = ((ITree)($arg0_63)); + IValue $arg1_62 = (IValue)($nonterminal_get_arg(((ITree)((ITree)($switchVal51))), ((IInteger)$constants.get(3)/*1*/).intValue())); + if($isComparable($arg1_62.getType(), M_lang_rascal_syntax_Rascal.NT_Class)){ + ITree r_6 = ((ITree)($arg1_62)); + return ((IConstructor)($me.intersection(((IConstructor)($me.cc2ranges(((ITree)($arg0_63))))), ((IConstructor)($me.cc2ranges(((ITree)($arg1_62)))))))); + + } + + } + + } + + } while(false); + + } + if($isSubtypeOf($switchVal51.getType(),M_lang_rascal_syntax_Rascal.NT_Class)){ + /*muExists*/CASE_0_4: + do { + if($nonterminal_has_name_and_arity($switchVal51, "union", 2)){ + IValue $arg0_65 = (IValue)($nonterminal_get_arg(((ITree)((ITree)($switchVal51))), ((IInteger)$constants.get(5)/*0*/).intValue())); + if($isComparable($arg0_65.getType(), M_lang_rascal_syntax_Rascal.NT_Class)){ + ITree l_7 = ((ITree)($arg0_65)); + IValue $arg1_64 = (IValue)($nonterminal_get_arg(((ITree)((ITree)($switchVal51))), ((IInteger)$constants.get(3)/*1*/).intValue())); + if($isComparable($arg1_64.getType(), M_lang_rascal_syntax_Rascal.NT_Class)){ + ITree r_8 = ((ITree)($arg1_64)); + return ((IConstructor)($me.union(((IConstructor)($me.cc2ranges(((ITree)($arg0_65))))), ((IConstructor)($me.cc2ranges(((ITree)($arg1_64)))))))); + + } + + } + + } + + } while(false); + + } + if($isSubtypeOf($switchVal51.getType(),M_lang_rascal_syntax_Rascal.NT_Class)){ + /*muExists*/CASE_0_5: + do { + if($nonterminal_has_name_and_arity($switchVal51, "difference", 2)){ + IValue $arg0_67 = (IValue)($nonterminal_get_arg(((ITree)((ITree)($switchVal51))), ((IInteger)$constants.get(5)/*0*/).intValue())); + if($isComparable($arg0_67.getType(), M_lang_rascal_syntax_Rascal.NT_Class)){ + ITree l_9 = ((ITree)($arg0_67)); + IValue $arg1_66 = (IValue)($nonterminal_get_arg(((ITree)((ITree)($switchVal51))), ((IInteger)$constants.get(3)/*1*/).intValue())); + if($isComparable($arg1_66.getType(), M_lang_rascal_syntax_Rascal.NT_Class)){ + ITree r_10 = ((ITree)($arg1_66)); + return ((IConstructor)($me.difference(((IConstructor)($me.cc2ranges(((ITree)($arg0_67))))), ((IConstructor)($me.cc2ranges(((ITree)($arg1_66)))))))); + + } + + } + + } + + } while(false); + + } + final Template $template52 = (Template)new Template($RVF, "cc2ranges, missed a case "); + $template52.beginIndent(" "); + $template52.addVal(cc_0); + $template52.endIndent(" "); + throw new Throw($template52.close()); + } + + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/lang/rascal/grammar/definition/Characters.rsc|(11512,414,<351,0>,<361,1>) + public IConstructor lang_rascal_grammar_definition_Characters_range$1a0b128882305baa(ITree r_0){ + + + final ITree $switchVal68 = ((ITree)r_0); + boolean noCaseMatched_$switchVal68 = true; + SWITCH49: switch(Fingerprint.getFingerprint($switchVal68)){ + + case 0: + if(noCaseMatched_$switchVal68){ + noCaseMatched_$switchVal68 = false; + + } + + + default: if($isSubtypeOf($switchVal68.getType(),M_lang_rascal_syntax_Rascal.NT_Range)){ + /*muExists*/CASE_0_0: + do { + if($nonterminal_has_name_and_arity($switchVal68, "character", 1)){ + IValue $arg0_70 = (IValue)($nonterminal_get_arg(((ITree)((ITree)($switchVal68))), ((IInteger)$constants.get(5)/*0*/).intValue())); + if($isComparable($arg0_70.getType(), M_lang_rascal_syntax_Rascal.NT_Char)){ + ITree c_1 = ((ITree)($arg0_70)); + return ((IConstructor)($RVF.constructor(M_ParseTree.CharRange_range_int_int, new IValue[]{((IInteger)($me.charToInt(((ITree)($arg0_70))))), ((IInteger)($me.charToInt(((ITree)($arg0_70)))))}))); + + } + + } + + } while(false); + + } + if($isSubtypeOf($switchVal68.getType(),M_lang_rascal_syntax_Rascal.NT_Range)){ + /*muExists*/CASE_0_1: + do { + if($nonterminal_has_name_and_arity($switchVal68, "fromTo", 2)){ + IValue $arg0_74 = (IValue)($nonterminal_get_arg(((ITree)((ITree)($switchVal68))), ((IInteger)$constants.get(5)/*0*/).intValue())); + if($isComparable($arg0_74.getType(), M_lang_rascal_syntax_Rascal.NT_Char)){ + ITree l1_2 = ((ITree)($arg0_74)); + IValue $arg1_73 = (IValue)($nonterminal_get_arg(((ITree)((ITree)($switchVal68))), ((IInteger)$constants.get(3)/*1*/).intValue())); + if($isComparable($arg1_73.getType(), M_lang_rascal_syntax_Rascal.NT_Char)){ + ITree r1_3 = ((ITree)($arg1_73)); + ITuple $TMP71 = (ITuple)($RVF.tuple(((IInteger)($me.charToInt(((ITree)($arg0_74))))), ((IInteger)($me.charToInt(((ITree)($arg1_73))))))); + IInteger cL_4 = ((IInteger)($atuple_subscript_int(((ITuple)($TMP71)),0))); + IInteger cR_5 = ((IInteger)($atuple_subscript_int(((ITuple)($TMP71)),1))); + /*muExists*/$RET72: + do { + if((((IBool)($aint_lessequal_aint(((IInteger)cL_4),((IInteger)cR_5))))).getValue()){ + return ((IConstructor)($RVF.constructor(M_ParseTree.CharRange_range_int_int, new IValue[]{((IInteger)cL_4), ((IInteger)cR_5)}))); + + } + + } while(false); + return ((IConstructor)($RVF.constructor(M_ParseTree.CharRange_range_int_int, new IValue[]{((IInteger)cR_5), ((IInteger)cL_4)}))); + + } + + } + + } + + } while(false); + + } + final Template $template69 = (Template)new Template($RVF, "range, missed a case "); + $template69.beginIndent(" "); + $template69.addVal(r_0); + $template69.endIndent(" "); + throw new Throw($template69.close()); + } + + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/lang/rascal/grammar/definition/Characters.rsc|(11930,890,<363,0>,<379,1>) + public IInteger lang_rascal_grammar_definition_Characters_charToInt$e48d9965143ec1dd(ITree c_0){ + + + final ITree $switchVal75 = ((ITree)c_0); + boolean noCaseMatched_$switchVal75 = true; + SWITCH50: switch(Fingerprint.getConcreteFingerprint($switchVal75)){ + + case 0: + if(noCaseMatched_$switchVal75){ + noCaseMatched_$switchVal75 = false; + + } + + + default: if($isSubtypeOf($switchVal75.getType(),M_lang_rascal_syntax_Rascal.NT_Char)){ + /*muExists*/CASE_0_0: + do { + if($isSubtypeOf($switchVal75.getType(),M_lang_rascal_syntax_Rascal.NT_Char)){ + final Matcher $matcher77 = (Matcher)$regExpCompile("^([^\"\'\\-\\[\\]\\\\\\>\\< ])", org.rascalmpl.values.parsetrees.TreeAdapter.yield($switchVal75)); + boolean $found78 = true; + + while($found78){ + $found78 = $matcher77.find(); + if($found78){ + IString ch_1 = ((IString)($RVF.string($matcher77.group(1)))); + return ((IInteger)(M_String.charAt(((IString)ch_1), ((IInteger)$constants.get(5)/*0*/)))); + + } + + } + + } + + } while(false); + + } + if($isSubtypeOf($switchVal75.getType(),M_lang_rascal_syntax_Rascal.NT_Char)){ + /*muExists*/CASE_0_1: + do { + if($isSubtypeOf($switchVal75.getType(),M_lang_rascal_syntax_Rascal.NT_Char)){ + final Matcher $matcher79 = (Matcher)$regExpCompile("^\\\\n", org.rascalmpl.values.parsetrees.TreeAdapter.yield($switchVal75)); + boolean $found80 = true; + + while($found80){ + $found80 = $matcher79.find(); + if($found80){ + return ((IInteger)(M_String.charAt(((IString)$constants.get(6)/*" + "*/), ((IInteger)$constants.get(5)/*0*/)))); + + } + + } + + } + + } while(false); + + } + if($isSubtypeOf($switchVal75.getType(),M_lang_rascal_syntax_Rascal.NT_Char)){ + /*muExists*/CASE_0_2: + do { + if($isSubtypeOf($switchVal75.getType(),M_lang_rascal_syntax_Rascal.NT_Char)){ + final Matcher $matcher81 = (Matcher)$regExpCompile("^\\\\t", org.rascalmpl.values.parsetrees.TreeAdapter.yield($switchVal75)); + boolean $found82 = true; + + while($found82){ + $found82 = $matcher81.find(); + if($found82){ + return ((IInteger)(M_String.charAt(((IString)$constants.get(7)/*" "*/), ((IInteger)$constants.get(5)/*0*/)))); + + } + + } + + } + + } while(false); + + } + if($isSubtypeOf($switchVal75.getType(),M_lang_rascal_syntax_Rascal.NT_Char)){ + /*muExists*/CASE_0_3: + do { + if($isSubtypeOf($switchVal75.getType(),M_lang_rascal_syntax_Rascal.NT_Char)){ + final Matcher $matcher83 = (Matcher)$regExpCompile("^\\\\b", org.rascalmpl.values.parsetrees.TreeAdapter.yield($switchVal75)); + boolean $found84 = true; + + while($found84){ + $found84 = $matcher83.find(); + if($found84){ + return ((IInteger)(M_String.charAt(((IString)$constants.get(8)/*""*/), ((IInteger)$constants.get(5)/*0*/)))); + + } + + } + + } + + } while(false); + + } + if($isSubtypeOf($switchVal75.getType(),M_lang_rascal_syntax_Rascal.NT_Char)){ + /*muExists*/CASE_0_4: + do { + if($isSubtypeOf($switchVal75.getType(),M_lang_rascal_syntax_Rascal.NT_Char)){ + final Matcher $matcher85 = (Matcher)$regExpCompile("^\\\\r", org.rascalmpl.values.parsetrees.TreeAdapter.yield($switchVal75)); + boolean $found86 = true; + + while($found86){ + $found86 = $matcher85.find(); + if($found86){ + return ((IInteger)(M_String.charAt(((IString)$constants.get(9)/*" "*/), ((IInteger)$constants.get(5)/*0*/)))); + + } + + } + + } + + } while(false); + + } + if($isSubtypeOf($switchVal75.getType(),M_lang_rascal_syntax_Rascal.NT_Char)){ + /*muExists*/CASE_0_5: + do { + if($isSubtypeOf($switchVal75.getType(),M_lang_rascal_syntax_Rascal.NT_Char)){ + final Matcher $matcher87 = (Matcher)$regExpCompile("^\\\\f", org.rascalmpl.values.parsetrees.TreeAdapter.yield($switchVal75)); + boolean $found88 = true; + + while($found88){ + $found88 = $matcher87.find(); + if($found88){ + return ((IInteger)(M_String.charAt(((IString)$constants.get(10)/*" "*/), ((IInteger)$constants.get(5)/*0*/)))); + + } + + } + + } + + } while(false); + + } + if($isSubtypeOf($switchVal75.getType(),M_lang_rascal_syntax_Rascal.NT_Char)){ + /*muExists*/CASE_0_6: + do { + if($isSubtypeOf($switchVal75.getType(),M_lang_rascal_syntax_Rascal.NT_Char)){ + final Matcher $matcher89 = (Matcher)$regExpCompile("^\\\\\\>", org.rascalmpl.values.parsetrees.TreeAdapter.yield($switchVal75)); + boolean $found90 = true; + + while($found90){ + $found90 = $matcher89.find(); + if($found90){ + return ((IInteger)(M_String.charAt(((IString)$constants.get(11)/*">"*/), ((IInteger)$constants.get(5)/*0*/)))); + + } + + } + + } + + } while(false); + + } + if($isSubtypeOf($switchVal75.getType(),M_lang_rascal_syntax_Rascal.NT_Char)){ + /*muExists*/CASE_0_7: + do { + if($isSubtypeOf($switchVal75.getType(),M_lang_rascal_syntax_Rascal.NT_Char)){ + final Matcher $matcher91 = (Matcher)$regExpCompile("^\\\\\\<", org.rascalmpl.values.parsetrees.TreeAdapter.yield($switchVal75)); + boolean $found92 = true; + + while($found92){ + $found92 = $matcher91.find(); + if($found92){ + return ((IInteger)(M_String.charAt(((IString)$constants.get(12)/*"<"*/), ((IInteger)$constants.get(5)/*0*/)))); + + } + + } + + } + + } while(false); + + } + if($isSubtypeOf($switchVal75.getType(),M_lang_rascal_syntax_Rascal.NT_Char)){ + /*muExists*/CASE_0_8: + do { + if($isSubtypeOf($switchVal75.getType(),M_lang_rascal_syntax_Rascal.NT_Char)){ + final Matcher $matcher93 = (Matcher)$regExpCompile("^\\\\([\"\'\\-\\[\\]\\\\ ])", org.rascalmpl.values.parsetrees.TreeAdapter.yield($switchVal75)); + boolean $found94 = true; + + while($found94){ + $found94 = $matcher93.find(); + if($found94){ + IString esc_2 = ((IString)($RVF.string($matcher93.group(1)))); + return ((IInteger)(M_String.charAt(((IString)esc_2), ((IInteger)$constants.get(5)/*0*/)))); + + } + + } + + } + + } while(false); + + } + if($isSubtypeOf($switchVal75.getType(),M_lang_rascal_syntax_Rascal.NT_Char)){ + /*muExists*/CASE_0_9: + do { + if($isSubtypeOf($switchVal75.getType(),M_lang_rascal_syntax_Rascal.NT_Char)){ + final Matcher $matcher96 = (Matcher)$regExpCompile("^\\\\u([0-9a-fA-F][0-9a-fA-F][0-9a-fA-F][0-9a-fA-F])", org.rascalmpl.values.parsetrees.TreeAdapter.yield($switchVal75)); + boolean $found97 = true; + + while($found97){ + $found97 = $matcher96.find(); + if($found97){ + IString hex_3 = ((IString)($RVF.string($matcher96.group(1)))); + final Template $template95 = (Template)new Template($RVF, "0x"); + $template95.beginIndent(" "); + $template95.addStr(((IString)hex_3).getValue()); + $template95.endIndent(" "); + return ((IInteger)(M_String.toInt(((IString)($template95.close()))))); + + } + + } + + } + + } while(false); + + } + if($isSubtypeOf($switchVal75.getType(),M_lang_rascal_syntax_Rascal.NT_Char)){ + /*muExists*/CASE_0_10: + do { + if($isSubtypeOf($switchVal75.getType(),M_lang_rascal_syntax_Rascal.NT_Char)){ + final Matcher $matcher99 = (Matcher)$regExpCompile("^\\\\U([0-9a-fA-F][0-9a-fA-F][0-9a-fA-F][0-9a-fA-F][0-9a-fA-F][0-9a-fA-F])", org.rascalmpl.values.parsetrees.TreeAdapter.yield($switchVal75)); + boolean $found100 = true; + + while($found100){ + $found100 = $matcher99.find(); + if($found100){ + IString hex_4 = ((IString)($RVF.string($matcher99.group(1)))); + final Template $template98 = (Template)new Template($RVF, "0x"); + $template98.beginIndent(" "); + $template98.addStr(((IString)hex_4).getValue()); + $template98.endIndent(" "); + return ((IInteger)(M_String.toInt(((IString)($template98.close()))))); + + } + + } + + } + + } while(false); + + } + if($isSubtypeOf($switchVal75.getType(),M_lang_rascal_syntax_Rascal.NT_Char)){ + /*muExists*/CASE_0_11: + do { + if($isSubtypeOf($switchVal75.getType(),M_lang_rascal_syntax_Rascal.NT_Char)){ + final Matcher $matcher102 = (Matcher)$regExpCompile("^\\\\a([0-7][0-9a-fA-F])", org.rascalmpl.values.parsetrees.TreeAdapter.yield($switchVal75)); + boolean $found103 = true; + + while($found103){ + $found103 = $matcher102.find(); + if($found103){ + IString hex_5 = ((IString)($RVF.string($matcher102.group(1)))); + final Template $template101 = (Template)new Template($RVF, "0x"); + $template101.beginIndent(" "); + $template101.addStr(((IString)hex_5).getValue()); + $template101.endIndent(" "); + return ((IInteger)(M_String.toInt(((IString)($template101.close()))))); + + } + + } + + } + + } while(false); + + } + final Template $template76 = (Template)new Template($RVF, "charToInt, missed a case "); + $template76.beginIndent(" "); + $template76.addVal(c_0); + $template76.endIndent(" "); + throw new Throw($template76.close()); + } + + + } + + + public static void main(String[] args) { + throw new RuntimeException("No function `main` found in Rascal module `lang::rascal::grammar::definition::Characters`"); + } +} \ No newline at end of file diff --git a/src/rascal/lang/rascal/grammar/definition/$Characters.tpl b/src/rascal/lang/rascal/grammar/definition/$Characters.tpl new file mode 100644 index 00000000000..ca05b9cced3 Binary files /dev/null and b/src/rascal/lang/rascal/grammar/definition/$Characters.tpl differ diff --git a/src/rascal/lang/rascal/grammar/definition/$Characters_$I.java b/src/rascal/lang/rascal/grammar/definition/$Characters_$I.java new file mode 100644 index 00000000000..30b498a4eb6 --- /dev/null +++ b/src/rascal/lang/rascal/grammar/definition/$Characters_$I.java @@ -0,0 +1,18 @@ +package rascal.lang.rascal.grammar.definition; +import io.usethesource.vallang.*; +import org.rascalmpl.runtime.function.*; + +@SuppressWarnings("unused") +public interface $Characters_$I { + IValue cc2ranges(IValue $0); + IValue charToInt(IValue $0); + IValue complement(IValue $0); + IValue difference(IValue $0, IValue $1); + IValue intersect(IValue $0, IValue $1); + IValue intersection(IValue $0, IValue $1); + IValue lessThan(IValue $0, IValue $1); + IValue new_char_class(IValue $0); + IValue new_range(IValue $0, IValue $1); + IValue range(IValue $0); + IValue union(IValue $0, IValue $1); +} \ No newline at end of file diff --git a/src/rascal/lang/rascal/grammar/definition/$Keywords.constants b/src/rascal/lang/rascal/grammar/definition/$Keywords.constants new file mode 100644 index 00000000000..4452874a51a Binary files /dev/null and b/src/rascal/lang/rascal/grammar/definition/$Keywords.constants differ diff --git a/src/rascal/lang/rascal/grammar/definition/$Keywords.java b/src/rascal/lang/rascal/grammar/definition/$Keywords.java new file mode 100644 index 00000000000..c257ac96e96 --- /dev/null +++ b/src/rascal/lang/rascal/grammar/definition/$Keywords.java @@ -0,0 +1,1100 @@ +package rascal.lang.rascal.grammar.definition; +import java.io.PrintWriter; +import java.io.StringWriter; +import java.io.InputStreamReader; +import java.io.PrintWriter; +import java.util.*; +import java.util.regex.Matcher; +import io.usethesource.vallang.*; +import io.usethesource.vallang.type.*; +import org.rascalmpl.runtime.*; +import org.rascalmpl.runtime.RascalExecutionContext; +import org.rascalmpl.runtime.function.*; +import org.rascalmpl.runtime.traverse.*; +import org.rascalmpl.runtime.utils.*; +import org.rascalmpl.exceptions.RuntimeExceptionFactory; +import org.rascalmpl.exceptions.Throw; +import org.rascalmpl.runtime.RascalExecutionContext; +import org.rascalmpl.interpreter.control_exceptions.Filtered; +import org.rascalmpl.types.NonTerminalType; +import org.rascalmpl.types.RascalTypeFactory; +import org.rascalmpl.util.ExpiringFunctionResultCache; +import org.rascalmpl.values.RascalValueFactory; +import org.rascalmpl.values.ValueFactoryFactory; +import org.rascalmpl.values.parsetrees.ITree; +import org.rascalmpl.values.parsetrees.TreeAdapter; + + + +@SuppressWarnings({"unused","unchecked","deprecation"}) +public class $Keywords + extends + org.rascalmpl.runtime.$RascalModule + implements + rascal.lang.rascal.grammar.definition.$Keywords_$I { + + private final $Keywords_$I $me; + private final IList $constants; + + + public final rascal.$Node M_Node; + public final rascal.$ParseTree M_ParseTree; + public final rascal.lang.rascal.grammar.definition.$Symbols M_lang_rascal_grammar_definition_Symbols; + public final rascal.$Type M_Type; + public final rascal.$List M_List; + public final rascal.$Grammar M_Grammar; + public final rascal.$Message M_Message; + + + + public final io.usethesource.vallang.type.Type $T6; /*avalue()*/ + public final io.usethesource.vallang.type.Type $T5; /*astr()*/ + public final io.usethesource.vallang.type.Type ADT_Replacement; /*aadt("Replacement",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Replacement; /*aadt("Replacement",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Tree; /*aadt("Tree",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type $T3; /*aparameter("T",aadt("Tree",[],dataSyntax()),closed=true)*/ + public final io.usethesource.vallang.type.Type ADT_KeywordArguments_1; /*aadt("KeywordArguments",[aparameter("T",aadt("Tree",[],dataSyntax()),closed=true)],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_KeywordArguments_1; /*aadt("KeywordArguments",[aparameter("T",aadt("Tree",[],dataSyntax()),closed=true)],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_FunctionType; /*aadt("FunctionType",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_FunctionType; /*aadt("FunctionType",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_ProtocolChars; /*aadt("ProtocolChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_ProtocolChars; /*aadt("ProtocolChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Expression; /*aadt("Expression",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Expression; /*aadt("Expression",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Mapping_Expression; /*aadt("Mapping",[aadt("Expression",[],contextFreeSyntax())],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Mapping_Expression; /*aadt("Mapping",[aadt("Expression",[],contextFreeSyntax())],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Attr; /*aadt("Attr",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_BooleanLiteral; /*aadt("BooleanLiteral",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_BooleanLiteral; /*aadt("BooleanLiteral",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_MidStringChars; /*aadt("MidStringChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_MidStringChars; /*aadt("MidStringChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Visibility; /*aadt("Visibility",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Visibility; /*aadt("Visibility",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_LocalVariableDeclaration; /*aadt("LocalVariableDeclaration",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_LocalVariableDeclaration; /*aadt("LocalVariableDeclaration",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_LocationChangeType; /*aadt("LocationChangeType",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_LAYOUT; /*aadt("LAYOUT",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_LAYOUT; /*aadt("LAYOUT",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_TagString; /*aadt("TagString",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_TagString; /*aadt("TagString",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_IOCapability; /*aadt("IOCapability",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_PostProtocolChars; /*aadt("PostProtocolChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_PostProtocolChars; /*aadt("PostProtocolChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Strategy; /*aadt("Strategy",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Strategy; /*aadt("Strategy",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Concrete; /*aadt("Concrete",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Concrete; /*aadt("Concrete",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Pattern; /*aadt("Pattern",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Pattern; /*aadt("Pattern",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Mapping_Pattern; /*aadt("Mapping",[aadt("Pattern",[],contextFreeSyntax())],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Mapping_Pattern; /*aadt("Mapping",[aadt("Pattern",[],contextFreeSyntax())],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Range; /*aadt("Range",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Range; /*aadt("Range",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_DatePart; /*aadt("DatePart",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_DatePart; /*aadt("DatePart",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Output; /*aadt("Output",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Output; /*aadt("Output",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_RationalLiteral; /*aadt("RationalLiteral",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_RationalLiteral; /*aadt("RationalLiteral",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_RegExpLiteral; /*aadt("RegExpLiteral",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_RegExpLiteral; /*aadt("RegExpLiteral",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Item; /*aadt("Item",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Prod; /*aadt("Prod",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Prod; /*aadt("Prod",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_LocationChangeEvent; /*aadt("LocationChangeEvent",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type $T4; /*aparameter("T",aadt("Tree",[],dataSyntax()),closed=false)*/ + public final io.usethesource.vallang.type.Type ADT_SyntaxDefinition; /*aadt("SyntaxDefinition",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_SyntaxDefinition; /*aadt("SyntaxDefinition",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_ModuleParameters; /*aadt("ModuleParameters",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_ModuleParameters; /*aadt("ModuleParameters",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Mapping_1; /*aadt("Mapping",[aparameter("T",aadt("Tree",[],dataSyntax()),closed=true)],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Mapping_1; /*aadt("Mapping",[aparameter("T",aadt("Tree",[],dataSyntax()),closed=true)],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_TimePartNoTZ; /*aadt("TimePartNoTZ",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_TimePartNoTZ; /*aadt("TimePartNoTZ",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Case; /*aadt("Case",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Case; /*aadt("Case",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_ImportedModule; /*aadt("ImportedModule",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_ImportedModule; /*aadt("ImportedModule",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Declarator; /*aadt("Declarator",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Declarator; /*aadt("Declarator",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_GrammarModule; /*aadt("GrammarModule",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_IntegerLiteral; /*aadt("IntegerLiteral",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_IntegerLiteral; /*aadt("IntegerLiteral",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_KeywordArguments_Expression; /*aadt("KeywordArguments",[aadt("Expression",[],contextFreeSyntax())],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_KeywordArguments_Expression; /*aadt("KeywordArguments",[aadt("Expression",[],contextFreeSyntax())],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Target; /*aadt("Target",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Target; /*aadt("Target",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_KeywordFormals; /*aadt("KeywordFormals",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_KeywordFormals; /*aadt("KeywordFormals",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_DataTarget; /*aadt("DataTarget",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_DataTarget; /*aadt("DataTarget",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Renaming; /*aadt("Renaming",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Renaming; /*aadt("Renaming",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Catch; /*aadt("Catch",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Catch; /*aadt("Catch",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Production; /*aadt("Production",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Renamings; /*aadt("Renamings",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Renamings; /*aadt("Renamings",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_KeywordFormal; /*aadt("KeywordFormal",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_KeywordFormal; /*aadt("KeywordFormal",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_OptionalExpression; /*aadt("OptionalExpression",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_OptionalExpression; /*aadt("OptionalExpression",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_GrammarDefinition; /*aadt("GrammarDefinition",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Field; /*aadt("Field",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Field; /*aadt("Field",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_FunctionBody; /*aadt("FunctionBody",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_FunctionBody; /*aadt("FunctionBody",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_LocationLiteral; /*aadt("LocationLiteral",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_LocationLiteral; /*aadt("LocationLiteral",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Tag; /*aadt("Tag",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Tag; /*aadt("Tag",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Type; /*aadt("Type",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Type; /*aadt("Type",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_HexIntegerLiteral; /*aadt("HexIntegerLiteral",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_HexIntegerLiteral; /*aadt("HexIntegerLiteral",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_PostStringChars; /*aadt("PostStringChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_PostStringChars; /*aadt("PostStringChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_TimeZonePart; /*aadt("TimeZonePart",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_TimeZonePart; /*aadt("TimeZonePart",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Declaration; /*aadt("Declaration",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Declaration; /*aadt("Declaration",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_ShellCommand; /*aadt("ShellCommand",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_ShellCommand; /*aadt("ShellCommand",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Nonterminal; /*aadt("Nonterminal",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Nonterminal; /*aadt("Nonterminal",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_RegExp; /*aadt("RegExp",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_RegExp; /*aadt("RegExp",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_PreStringChars; /*aadt("PreStringChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_PreStringChars; /*aadt("PreStringChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_KeywordArguments_Pattern; /*aadt("KeywordArguments",[aadt("Pattern",[],contextFreeSyntax())],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_KeywordArguments_Pattern; /*aadt("KeywordArguments",[aadt("Pattern",[],contextFreeSyntax())],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_StringLiteral; /*aadt("StringLiteral",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_StringLiteral; /*aadt("StringLiteral",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Variable; /*aadt("Variable",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Variable; /*aadt("Variable",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Name; /*aadt("Name",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Name; /*aadt("Name",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_NonterminalLabel; /*aadt("NonterminalLabel",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_NonterminalLabel; /*aadt("NonterminalLabel",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Bound; /*aadt("Bound",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Bound; /*aadt("Bound",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_TypeArg; /*aadt("TypeArg",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_TypeArg; /*aadt("TypeArg",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_KeywordArgument_1; /*aadt("KeywordArgument",[aparameter("T",aadt("Tree",[],dataSyntax()),closed=true)],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_KeywordArgument_1; /*aadt("KeywordArgument",[aparameter("T",aadt("Tree",[],dataSyntax()),closed=true)],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_PathPart; /*aadt("PathPart",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_PathPart; /*aadt("PathPart",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Signature; /*aadt("Signature",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Signature; /*aadt("Signature",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Symbol; /*aadt("Symbol",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Associativity; /*aadt("Associativity",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_ModuleActuals; /*aadt("ModuleActuals",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_ModuleActuals; /*aadt("ModuleActuals",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Tags; /*aadt("Tags",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Tags; /*aadt("Tags",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_URLChars; /*aadt("URLChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_URLChars; /*aadt("URLChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Class; /*aadt("Class",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Class; /*aadt("Class",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Condition; /*aadt("Condition",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type $T8; /*alist(aadt("Symbol",[],dataSyntax(),alabel="s"))*/ + public final io.usethesource.vallang.type.Type ADT_Start; /*aadt("Start",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Start; /*aadt("Start",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Body; /*aadt("Body",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Body; /*aadt("Body",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_PrePathChars; /*aadt("PrePathChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_PrePathChars; /*aadt("PrePathChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_StringConstant; /*aadt("StringConstant",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_StringConstant; /*aadt("StringConstant",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_OptionalComma; /*aadt("OptionalComma",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_OptionalComma; /*aadt("OptionalComma",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Backslash; /*aadt("Backslash",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Backslash; /*aadt("Backslash",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_DateAndTime; /*aadt("DateAndTime",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_DateAndTime; /*aadt("DateAndTime",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_StringTail; /*aadt("StringTail",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_StringTail; /*aadt("StringTail",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_CaseInsensitiveStringConstant; /*aadt("CaseInsensitiveStringConstant",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_CaseInsensitiveStringConstant; /*aadt("CaseInsensitiveStringConstant",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Char; /*aadt("Char",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Char; /*aadt("Char",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Assignment; /*aadt("Assignment",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Assignment; /*aadt("Assignment",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Header; /*aadt("Header",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Header; /*aadt("Header",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Exception; /*aadt("Exception",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_PatternWithAction; /*aadt("PatternWithAction",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_PatternWithAction; /*aadt("PatternWithAction",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type $T1; /*aset(aadt("Symbol",[],dataSyntax()))*/ + public final io.usethesource.vallang.type.Type $T7; /*aset(aadt("Production",[],dataSyntax()))*/ + public final io.usethesource.vallang.type.Type ADT_FunctionDeclaration; /*aadt("FunctionDeclaration",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_FunctionDeclaration; /*aadt("FunctionDeclaration",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_TypeVar; /*aadt("TypeVar",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_TypeVar; /*aadt("TypeVar",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_LocationType; /*aadt("LocationType",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_JustDate; /*aadt("JustDate",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_JustDate; /*aadt("JustDate",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_CharRange; /*aadt("CharRange",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Grammar; /*aadt("Grammar",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_UserType; /*aadt("UserType",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_UserType; /*aadt("UserType",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Import; /*aadt("Import",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Import; /*aadt("Import",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Variant; /*aadt("Variant",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Variant; /*aadt("Variant",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_DataTypeSelector; /*aadt("DataTypeSelector",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_DataTypeSelector; /*aadt("DataTypeSelector",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_LAYOUTLIST; /*aadt("LAYOUTLIST",[],layoutSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_TreeSearchResult_1; /*aadt("TreeSearchResult",[aparameter("T",aadt("Tree",[],dataSyntax()),closed=true)],dataSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Message; /*aadt("Message",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_ConcreteHole; /*aadt("ConcreteHole",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_ConcreteHole; /*aadt("ConcreteHole",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Sym; /*aadt("Sym",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Sym; /*aadt("Sym",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type $T2; /*alist(aadt("Symbol",[],dataSyntax()))*/ + public final io.usethesource.vallang.type.Type ADT_RealLiteral; /*aadt("RealLiteral",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_RealLiteral; /*aadt("RealLiteral",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_StringMiddle; /*aadt("StringMiddle",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_StringMiddle; /*aadt("StringMiddle",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_FunctionModifiers; /*aadt("FunctionModifiers",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_FunctionModifiers; /*aadt("FunctionModifiers",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Comprehension; /*aadt("Comprehension",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Comprehension; /*aadt("Comprehension",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Formals; /*aadt("Formals",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Formals; /*aadt("Formals",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_MidPathChars; /*aadt("MidPathChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_MidPathChars; /*aadt("MidPathChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_QualifiedName; /*aadt("QualifiedName",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_QualifiedName; /*aadt("QualifiedName",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_ProtocolPart; /*aadt("ProtocolPart",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_ProtocolPart; /*aadt("ProtocolPart",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_NamedBackslash; /*aadt("NamedBackslash",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_NamedBackslash; /*aadt("NamedBackslash",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_MidProtocolChars; /*aadt("MidProtocolChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_MidProtocolChars; /*aadt("MidProtocolChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_RascalKeywords; /*aadt("RascalKeywords",[],keywordSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_StructuredType; /*aadt("StructuredType",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_StructuredType; /*aadt("StructuredType",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Visit; /*aadt("Visit",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Visit; /*aadt("Visit",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Command; /*aadt("Command",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Command; /*aadt("Command",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_StringTemplate; /*aadt("StringTemplate",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_StringTemplate; /*aadt("StringTemplate",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_OctalIntegerLiteral; /*aadt("OctalIntegerLiteral",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_OctalIntegerLiteral; /*aadt("OctalIntegerLiteral",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_DecimalIntegerLiteral; /*aadt("DecimalIntegerLiteral",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_DecimalIntegerLiteral; /*aadt("DecimalIntegerLiteral",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Assoc; /*aadt("Assoc",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Assoc; /*aadt("Assoc",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_DateTimeLiteral; /*aadt("DateTimeLiteral",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_DateTimeLiteral; /*aadt("DateTimeLiteral",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Label; /*aadt("Label",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Label; /*aadt("Label",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Kind; /*aadt("Kind",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Kind; /*aadt("Kind",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_PathTail; /*aadt("PathTail",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_PathTail; /*aadt("PathTail",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Parameters; /*aadt("Parameters",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Parameters; /*aadt("Parameters",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_PreProtocolChars; /*aadt("PreProtocolChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_PreProtocolChars; /*aadt("PreProtocolChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_RuntimeException; /*aadt("RuntimeException",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_NamedRegExp; /*aadt("NamedRegExp",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_NamedRegExp; /*aadt("NamedRegExp",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_PathChars; /*aadt("PathChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_PathChars; /*aadt("PathChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Toplevel; /*aadt("Toplevel",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Toplevel; /*aadt("Toplevel",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type $T0; /*aset(aadt("Condition",[],dataSyntax()))*/ + public final io.usethesource.vallang.type.Type ADT_EvalCommand; /*aadt("EvalCommand",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_EvalCommand; /*aadt("EvalCommand",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_PostPathChars; /*aadt("PostPathChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_PostPathChars; /*aadt("PostPathChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_StringCharacter; /*aadt("StringCharacter",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_StringCharacter; /*aadt("StringCharacter",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Module; /*aadt("Module",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Module; /*aadt("Module",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Statement; /*aadt("Statement",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Statement; /*aadt("Statement",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_ConcretePart; /*aadt("ConcretePart",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_ConcretePart; /*aadt("ConcretePart",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Literal; /*aadt("Literal",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Literal; /*aadt("Literal",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_BasicType; /*aadt("BasicType",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_BasicType; /*aadt("BasicType",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_CommonKeywordParameters; /*aadt("CommonKeywordParameters",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_CommonKeywordParameters; /*aadt("CommonKeywordParameters",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_ProtocolTail; /*aadt("ProtocolTail",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_ProtocolTail; /*aadt("ProtocolTail",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Comment; /*aadt("Comment",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Comment; /*aadt("Comment",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Commands; /*aadt("Commands",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Commands; /*aadt("Commands",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_JustTime; /*aadt("JustTime",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_JustTime; /*aadt("JustTime",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_FunctionModifier; /*aadt("FunctionModifier",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_FunctionModifier; /*aadt("FunctionModifier",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_ProdModifier; /*aadt("ProdModifier",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_ProdModifier; /*aadt("ProdModifier",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Assignable; /*aadt("Assignable",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Assignable; /*aadt("Assignable",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_UnicodeEscape; /*aadt("UnicodeEscape",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_UnicodeEscape; /*aadt("UnicodeEscape",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_RegExpModifier; /*aadt("RegExpModifier",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_RegExpModifier; /*aadt("RegExpModifier",[],lexicalSyntax())*/ + + public $Keywords(RascalExecutionContext rex){ + this(rex, null); + } + + public $Keywords(RascalExecutionContext rex, Object extended){ + super(rex); + this.$me = extended == null ? this : ($Keywords_$I)extended; + ModuleStore mstore = rex.getModuleStore(); + mstore.put(rascal.lang.rascal.grammar.definition.$Keywords.class, this); + + mstore.importModule(rascal.$Node.class, rex, rascal.$Node::new); + mstore.importModule(rascal.$ParseTree.class, rex, rascal.$ParseTree::new); + mstore.importModule(rascal.lang.rascal.grammar.definition.$Symbols.class, rex, rascal.lang.rascal.grammar.definition.$Symbols::new); + mstore.importModule(rascal.$Type.class, rex, rascal.$Type::new); + mstore.importModule(rascal.$List.class, rex, rascal.$List::new); + mstore.importModule(rascal.$Grammar.class, rex, rascal.$Grammar::new); + mstore.importModule(rascal.$Message.class, rex, rascal.$Message::new); + + M_Node = mstore.getModule(rascal.$Node.class); + M_ParseTree = mstore.getModule(rascal.$ParseTree.class); + M_lang_rascal_grammar_definition_Symbols = mstore.getModule(rascal.lang.rascal.grammar.definition.$Symbols.class); + M_Type = mstore.getModule(rascal.$Type.class); + M_List = mstore.getModule(rascal.$List.class); + M_Grammar = mstore.getModule(rascal.$Grammar.class); + M_Message = mstore.getModule(rascal.$Message.class); + + + + $TS.importStore(M_Node.$TS); + $TS.importStore(M_ParseTree.$TS); + $TS.importStore(M_lang_rascal_grammar_definition_Symbols.$TS); + $TS.importStore(M_Type.$TS); + $TS.importStore(M_List.$TS); + $TS.importStore(M_Grammar.$TS); + $TS.importStore(M_Message.$TS); + + $constants = readBinaryConstantsFile(this.getClass(), "rascal/lang/rascal/grammar/definition/$Keywords.constants", 1, "a21cafb4c405e6997671a02e578b9b1e"); + NT_Replacement = $sort("Replacement"); + ADT_Replacement = $adt("Replacement"); + ADT_Tree = $adt("Tree"); + NT_FunctionType = $sort("FunctionType"); + ADT_FunctionType = $adt("FunctionType"); + NT_ProtocolChars = $lex("ProtocolChars"); + ADT_ProtocolChars = $adt("ProtocolChars"); + NT_Expression = $sort("Expression"); + ADT_Expression = $adt("Expression"); + ADT_Attr = $adt("Attr"); + NT_BooleanLiteral = $lex("BooleanLiteral"); + ADT_BooleanLiteral = $adt("BooleanLiteral"); + NT_MidStringChars = $lex("MidStringChars"); + ADT_MidStringChars = $adt("MidStringChars"); + NT_Visibility = $sort("Visibility"); + ADT_Visibility = $adt("Visibility"); + NT_LocalVariableDeclaration = $sort("LocalVariableDeclaration"); + ADT_LocalVariableDeclaration = $adt("LocalVariableDeclaration"); + ADT_LocationChangeType = $adt("LocationChangeType"); + NT_LAYOUT = $lex("LAYOUT"); + ADT_LAYOUT = $adt("LAYOUT"); + NT_TagString = $lex("TagString"); + ADT_TagString = $adt("TagString"); + ADT_IOCapability = $adt("IOCapability"); + NT_PostProtocolChars = $lex("PostProtocolChars"); + ADT_PostProtocolChars = $adt("PostProtocolChars"); + NT_Strategy = $sort("Strategy"); + ADT_Strategy = $adt("Strategy"); + NT_Concrete = $lex("Concrete"); + ADT_Concrete = $adt("Concrete"); + NT_Pattern = $sort("Pattern"); + ADT_Pattern = $adt("Pattern"); + NT_Range = $sort("Range"); + ADT_Range = $adt("Range"); + NT_DatePart = $lex("DatePart"); + ADT_DatePart = $adt("DatePart"); + NT_Output = $lex("Output"); + ADT_Output = $adt("Output"); + NT_RationalLiteral = $lex("RationalLiteral"); + ADT_RationalLiteral = $adt("RationalLiteral"); + NT_RegExpLiteral = $lex("RegExpLiteral"); + ADT_RegExpLiteral = $adt("RegExpLiteral"); + ADT_Item = $adt("Item"); + NT_Prod = $sort("Prod"); + ADT_Prod = $adt("Prod"); + ADT_LocationChangeEvent = $adt("LocationChangeEvent"); + NT_SyntaxDefinition = $sort("SyntaxDefinition"); + ADT_SyntaxDefinition = $adt("SyntaxDefinition"); + NT_ModuleParameters = $sort("ModuleParameters"); + ADT_ModuleParameters = $adt("ModuleParameters"); + NT_TimePartNoTZ = $lex("TimePartNoTZ"); + ADT_TimePartNoTZ = $adt("TimePartNoTZ"); + NT_Case = $sort("Case"); + ADT_Case = $adt("Case"); + NT_ImportedModule = $sort("ImportedModule"); + ADT_ImportedModule = $adt("ImportedModule"); + NT_Declarator = $sort("Declarator"); + ADT_Declarator = $adt("Declarator"); + ADT_GrammarModule = $adt("GrammarModule"); + NT_IntegerLiteral = $sort("IntegerLiteral"); + ADT_IntegerLiteral = $adt("IntegerLiteral"); + NT_Target = $sort("Target"); + ADT_Target = $adt("Target"); + NT_KeywordFormals = $sort("KeywordFormals"); + ADT_KeywordFormals = $adt("KeywordFormals"); + NT_DataTarget = $sort("DataTarget"); + ADT_DataTarget = $adt("DataTarget"); + NT_Renaming = $sort("Renaming"); + ADT_Renaming = $adt("Renaming"); + NT_Catch = $sort("Catch"); + ADT_Catch = $adt("Catch"); + ADT_Production = $adt("Production"); + NT_Renamings = $sort("Renamings"); + ADT_Renamings = $adt("Renamings"); + NT_KeywordFormal = $sort("KeywordFormal"); + ADT_KeywordFormal = $adt("KeywordFormal"); + NT_OptionalExpression = $sort("OptionalExpression"); + ADT_OptionalExpression = $adt("OptionalExpression"); + ADT_GrammarDefinition = $adt("GrammarDefinition"); + NT_Field = $sort("Field"); + ADT_Field = $adt("Field"); + NT_FunctionBody = $sort("FunctionBody"); + ADT_FunctionBody = $adt("FunctionBody"); + NT_LocationLiteral = $sort("LocationLiteral"); + ADT_LocationLiteral = $adt("LocationLiteral"); + NT_Tag = $sort("Tag"); + ADT_Tag = $adt("Tag"); + NT_Type = $sort("Type"); + ADT_Type = $adt("Type"); + NT_HexIntegerLiteral = $lex("HexIntegerLiteral"); + ADT_HexIntegerLiteral = $adt("HexIntegerLiteral"); + NT_PostStringChars = $lex("PostStringChars"); + ADT_PostStringChars = $adt("PostStringChars"); + NT_TimeZonePart = $lex("TimeZonePart"); + ADT_TimeZonePart = $adt("TimeZonePart"); + NT_Declaration = $sort("Declaration"); + ADT_Declaration = $adt("Declaration"); + NT_ShellCommand = $sort("ShellCommand"); + ADT_ShellCommand = $adt("ShellCommand"); + NT_Nonterminal = $lex("Nonterminal"); + ADT_Nonterminal = $adt("Nonterminal"); + NT_RegExp = $lex("RegExp"); + ADT_RegExp = $adt("RegExp"); + NT_PreStringChars = $lex("PreStringChars"); + ADT_PreStringChars = $adt("PreStringChars"); + NT_StringLiteral = $sort("StringLiteral"); + ADT_StringLiteral = $adt("StringLiteral"); + NT_Variable = $sort("Variable"); + ADT_Variable = $adt("Variable"); + NT_Name = $lex("Name"); + ADT_Name = $adt("Name"); + NT_NonterminalLabel = $lex("NonterminalLabel"); + ADT_NonterminalLabel = $adt("NonterminalLabel"); + NT_Bound = $sort("Bound"); + ADT_Bound = $adt("Bound"); + NT_TypeArg = $sort("TypeArg"); + ADT_TypeArg = $adt("TypeArg"); + NT_PathPart = $sort("PathPart"); + ADT_PathPart = $adt("PathPart"); + NT_Signature = $sort("Signature"); + ADT_Signature = $adt("Signature"); + ADT_Symbol = $adt("Symbol"); + ADT_Associativity = $adt("Associativity"); + NT_ModuleActuals = $sort("ModuleActuals"); + ADT_ModuleActuals = $adt("ModuleActuals"); + NT_Tags = $sort("Tags"); + ADT_Tags = $adt("Tags"); + NT_URLChars = $lex("URLChars"); + ADT_URLChars = $adt("URLChars"); + NT_Class = $sort("Class"); + ADT_Class = $adt("Class"); + ADT_Condition = $adt("Condition"); + NT_Start = $sort("Start"); + ADT_Start = $adt("Start"); + NT_Body = $sort("Body"); + ADT_Body = $adt("Body"); + NT_PrePathChars = $lex("PrePathChars"); + ADT_PrePathChars = $adt("PrePathChars"); + NT_StringConstant = $lex("StringConstant"); + ADT_StringConstant = $adt("StringConstant"); + NT_OptionalComma = $lex("OptionalComma"); + ADT_OptionalComma = $adt("OptionalComma"); + NT_Backslash = $lex("Backslash"); + ADT_Backslash = $adt("Backslash"); + NT_DateAndTime = $lex("DateAndTime"); + ADT_DateAndTime = $adt("DateAndTime"); + NT_StringTail = $sort("StringTail"); + ADT_StringTail = $adt("StringTail"); + NT_CaseInsensitiveStringConstant = $lex("CaseInsensitiveStringConstant"); + ADT_CaseInsensitiveStringConstant = $adt("CaseInsensitiveStringConstant"); + NT_Char = $lex("Char"); + ADT_Char = $adt("Char"); + NT_Assignment = $sort("Assignment"); + ADT_Assignment = $adt("Assignment"); + NT_Header = $sort("Header"); + ADT_Header = $adt("Header"); + ADT_Exception = $adt("Exception"); + NT_PatternWithAction = $sort("PatternWithAction"); + ADT_PatternWithAction = $adt("PatternWithAction"); + NT_FunctionDeclaration = $sort("FunctionDeclaration"); + ADT_FunctionDeclaration = $adt("FunctionDeclaration"); + NT_TypeVar = $sort("TypeVar"); + ADT_TypeVar = $adt("TypeVar"); + ADT_LocationType = $adt("LocationType"); + NT_JustDate = $lex("JustDate"); + ADT_JustDate = $adt("JustDate"); + ADT_CharRange = $adt("CharRange"); + ADT_Grammar = $adt("Grammar"); + NT_UserType = $sort("UserType"); + ADT_UserType = $adt("UserType"); + NT_Import = $sort("Import"); + ADT_Import = $adt("Import"); + NT_Variant = $sort("Variant"); + ADT_Variant = $adt("Variant"); + NT_DataTypeSelector = $sort("DataTypeSelector"); + ADT_DataTypeSelector = $adt("DataTypeSelector"); + ADT_LAYOUTLIST = $layouts("LAYOUTLIST"); + ADT_Message = $adt("Message"); + NT_ConcreteHole = $sort("ConcreteHole"); + ADT_ConcreteHole = $adt("ConcreteHole"); + NT_Sym = $sort("Sym"); + ADT_Sym = $adt("Sym"); + NT_RealLiteral = $lex("RealLiteral"); + ADT_RealLiteral = $adt("RealLiteral"); + NT_StringMiddle = $sort("StringMiddle"); + ADT_StringMiddle = $adt("StringMiddle"); + NT_FunctionModifiers = $sort("FunctionModifiers"); + ADT_FunctionModifiers = $adt("FunctionModifiers"); + NT_Comprehension = $sort("Comprehension"); + ADT_Comprehension = $adt("Comprehension"); + NT_Formals = $sort("Formals"); + ADT_Formals = $adt("Formals"); + NT_MidPathChars = $lex("MidPathChars"); + ADT_MidPathChars = $adt("MidPathChars"); + NT_QualifiedName = $sort("QualifiedName"); + ADT_QualifiedName = $adt("QualifiedName"); + NT_ProtocolPart = $sort("ProtocolPart"); + ADT_ProtocolPart = $adt("ProtocolPart"); + NT_NamedBackslash = $lex("NamedBackslash"); + ADT_NamedBackslash = $adt("NamedBackslash"); + NT_MidProtocolChars = $lex("MidProtocolChars"); + ADT_MidProtocolChars = $adt("MidProtocolChars"); + ADT_RascalKeywords = $keywords("RascalKeywords"); + NT_StructuredType = $sort("StructuredType"); + ADT_StructuredType = $adt("StructuredType"); + NT_Visit = $sort("Visit"); + ADT_Visit = $adt("Visit"); + NT_Command = $sort("Command"); + ADT_Command = $adt("Command"); + NT_StringTemplate = $sort("StringTemplate"); + ADT_StringTemplate = $adt("StringTemplate"); + NT_OctalIntegerLiteral = $lex("OctalIntegerLiteral"); + ADT_OctalIntegerLiteral = $adt("OctalIntegerLiteral"); + NT_DecimalIntegerLiteral = $lex("DecimalIntegerLiteral"); + ADT_DecimalIntegerLiteral = $adt("DecimalIntegerLiteral"); + NT_Assoc = $sort("Assoc"); + ADT_Assoc = $adt("Assoc"); + NT_DateTimeLiteral = $sort("DateTimeLiteral"); + ADT_DateTimeLiteral = $adt("DateTimeLiteral"); + NT_Label = $sort("Label"); + ADT_Label = $adt("Label"); + NT_Kind = $sort("Kind"); + ADT_Kind = $adt("Kind"); + NT_PathTail = $sort("PathTail"); + ADT_PathTail = $adt("PathTail"); + NT_Parameters = $sort("Parameters"); + ADT_Parameters = $adt("Parameters"); + NT_PreProtocolChars = $lex("PreProtocolChars"); + ADT_PreProtocolChars = $adt("PreProtocolChars"); + ADT_RuntimeException = $adt("RuntimeException"); + NT_NamedRegExp = $lex("NamedRegExp"); + ADT_NamedRegExp = $adt("NamedRegExp"); + NT_PathChars = $lex("PathChars"); + ADT_PathChars = $adt("PathChars"); + NT_Toplevel = $sort("Toplevel"); + ADT_Toplevel = $adt("Toplevel"); + NT_EvalCommand = $sort("EvalCommand"); + ADT_EvalCommand = $adt("EvalCommand"); + NT_PostPathChars = $lex("PostPathChars"); + ADT_PostPathChars = $adt("PostPathChars"); + NT_StringCharacter = $lex("StringCharacter"); + ADT_StringCharacter = $adt("StringCharacter"); + NT_Module = $sort("Module"); + ADT_Module = $adt("Module"); + NT_Statement = $sort("Statement"); + ADT_Statement = $adt("Statement"); + NT_ConcretePart = $lex("ConcretePart"); + ADT_ConcretePart = $adt("ConcretePart"); + NT_Literal = $sort("Literal"); + ADT_Literal = $adt("Literal"); + NT_BasicType = $sort("BasicType"); + ADT_BasicType = $adt("BasicType"); + NT_CommonKeywordParameters = $sort("CommonKeywordParameters"); + ADT_CommonKeywordParameters = $adt("CommonKeywordParameters"); + NT_ProtocolTail = $sort("ProtocolTail"); + ADT_ProtocolTail = $adt("ProtocolTail"); + NT_Comment = $lex("Comment"); + ADT_Comment = $adt("Comment"); + NT_Commands = $sort("Commands"); + ADT_Commands = $adt("Commands"); + NT_JustTime = $lex("JustTime"); + ADT_JustTime = $adt("JustTime"); + NT_FunctionModifier = $sort("FunctionModifier"); + ADT_FunctionModifier = $adt("FunctionModifier"); + NT_ProdModifier = $sort("ProdModifier"); + ADT_ProdModifier = $adt("ProdModifier"); + NT_Assignable = $sort("Assignable"); + ADT_Assignable = $adt("Assignable"); + NT_UnicodeEscape = $lex("UnicodeEscape"); + ADT_UnicodeEscape = $adt("UnicodeEscape"); + NT_RegExpModifier = $lex("RegExpModifier"); + ADT_RegExpModifier = $adt("RegExpModifier"); + $T6 = $TF.valueType(); + $T5 = $TF.stringType(); + $T3 = $TF.parameterType("T", ADT_Tree); + NT_KeywordArguments_1 = $parameterizedSort("KeywordArguments", new Type[] { $T3 }, $RVF.list($RVF.constructor(RascalValueFactory.Symbol_Parameter, $RVF.string("T"), $RVF.constructor(RascalValueFactory.Symbol_Adt, $RVF.string("Tree"), $RVF.list())))); + NT_Mapping_Expression = $parameterizedSort("Mapping", new Type[] { ADT_Expression }, $RVF.list($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Expression")))); + NT_Mapping_Pattern = $parameterizedSort("Mapping", new Type[] { ADT_Pattern }, $RVF.list($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Pattern")))); + $T4 = $TF.parameterType("T", ADT_Tree); + NT_Mapping_1 = $parameterizedSort("Mapping", new Type[] { $T3 }, $RVF.list($RVF.constructor(RascalValueFactory.Symbol_Parameter, $RVF.string("T"), $RVF.constructor(RascalValueFactory.Symbol_Adt, $RVF.string("Tree"), $RVF.list())))); + NT_KeywordArguments_Expression = $parameterizedSort("KeywordArguments", new Type[] { ADT_Expression }, $RVF.list($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Expression")))); + NT_KeywordArguments_Pattern = $parameterizedSort("KeywordArguments", new Type[] { ADT_Pattern }, $RVF.list($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Pattern")))); + NT_KeywordArgument_1 = $parameterizedSort("KeywordArgument", new Type[] { $T3 }, $RVF.list($RVF.constructor(RascalValueFactory.Symbol_Parameter, $RVF.string("T"), $RVF.constructor(RascalValueFactory.Symbol_Adt, $RVF.string("Tree"), $RVF.list())))); + $T8 = $TF.listType(ADT_Symbol); + $T1 = $TF.setType(ADT_Symbol); + $T7 = $TF.setType(ADT_Production); + ADT_TreeSearchResult_1 = $parameterizedAdt("TreeSearchResult", new Type[] { $T3 }); + $T2 = $TF.listType(ADT_Symbol); + $T0 = $TF.setType(ADT_Condition); + ADT_KeywordArguments_1 = $TF.abstractDataType($TS, "KeywordArguments", new Type[] { $T3 }); + ADT_Mapping_Expression = $TF.abstractDataType($TS, "Mapping", new Type[] { ADT_Expression }); + ADT_Mapping_Pattern = $TF.abstractDataType($TS, "Mapping", new Type[] { ADT_Pattern }); + ADT_Mapping_1 = $TF.abstractDataType($TS, "Mapping", new Type[] { $T3 }); + ADT_KeywordArguments_Expression = $TF.abstractDataType($TS, "KeywordArguments", new Type[] { ADT_Expression }); + ADT_KeywordArguments_Pattern = $TF.abstractDataType($TS, "KeywordArguments", new Type[] { ADT_Pattern }); + ADT_KeywordArgument_1 = $TF.abstractDataType($TS, "KeywordArgument", new Type[] { $T3 }); + + + + } + public IBool isTypeVar(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isTypeVar($P0); + } + public IList addLabels(IValue $P0, IValue $P1){ // Generated by Resolver + return (IList) M_Type.addLabels($P0, $P1); + } + public IBool sameType(IValue $P0, IValue $P1){ // Generated by Resolver + return (IBool) M_ParseTree.sameType($P0, $P1); + } + public ISet getKeywords(IValue $P0){ // Generated by Resolver + ISet $result = null; + Type $P0Type = $P0.getType(); + if($isSubtypeOf($P0Type, M_Grammar.ADT_Grammar)){ + $result = (ISet)lang_rascal_grammar_definition_Keywords_getKeywords$a82d0dfce6283f31((IConstructor) $P0); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0)); + } + public IBool isAliasType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isAliasType($P0); + } + public IBool isStrType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isStrType($P0); + } + public IConstructor choice(IValue $P0, IValue $P1){ // Generated by Resolver + return (IConstructor) M_Type.choice($P0, $P1); + } + public IBool isValueType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isValueType($P0); + } + public IBool isADTType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isADTType($P0); + } + public IBool isListType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isListType($P0); + } + public IBool isRealType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isRealType($P0); + } + public IConstructor priority(IValue $P0, IValue $P1){ // Generated by Resolver + return (IConstructor) M_ParseTree.priority($P0, $P1); + } + public IConstructor expandKeywords(IValue $P0){ // Generated by Resolver + IConstructor $result = null; + Type $P0Type = $P0.getType(); + if($isSubtypeOf($P0Type, M_Grammar.ADT_Grammar)){ + $result = (IConstructor)lang_rascal_grammar_definition_Keywords_expandKeywords$ff72ffb26b3e3b0a((IConstructor) $P0); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0)); + } + public ISet expandKeywords(IValue $P0, IValue $P1){ // Generated by Resolver + ISet $result = null; + Type $P0Type = $P0.getType(); + Type $P1Type = $P1.getType(); + if($isSubtypeOf($P0Type, M_Grammar.ADT_Grammar) && $isSubtypeOf($P1Type,$T0)){ + $result = (ISet)lang_rascal_grammar_definition_Keywords_expandKeywords$1bcbc30f3beb3889((IConstructor) $P0, (ISet) $P1); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0, $P1)); + } + public IBool isNodeType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isNodeType($P0); + } + public IConstructor conditional(IValue $P0, IValue $P1){ // Generated by Resolver + IConstructor $result = null; + Type $P0Type = $P0.getType(); + Type $P1Type = $P1.getType(); + if($isSubtypeOf($P0Type, M_ParseTree.ADT_Symbol) && $isSubtypeOf($P1Type,$T0)){ + $result = (IConstructor)M_lang_rascal_grammar_definition_Symbols.lang_rascal_grammar_definition_Symbols_conditional$f9ac60504818807f((IConstructor) $P0, (ISet) $P1); + if($result != null) return $result; + } + if($isSubtypeOf($P0Type, M_ParseTree.ADT_Symbol) && $isSubtypeOf($P1Type,$T0)){ + $result = (IConstructor)M_lang_rascal_grammar_definition_Symbols.lang_rascal_grammar_definition_Symbols_conditional$a78f69e7726562ef((IConstructor) $P0, (ISet) $P1); + if($result != null) return $result; + return $RVF.constructor(M_ParseTree.Symbol_conditional_Symbol_set_Condition, new IValue[]{(IConstructor) $P0, (ISet) $P1}); + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0, $P1)); + } + public IValue unsetRec(IValue $P0){ // Generated by Resolver + return (IValue) M_Node.unsetRec($P0); + } + public INode unsetRec(IValue $P0, IValue $P1){ // Generated by Resolver + return (INode) M_Node.unsetRec($P0, $P1); + } + public IBool isReifiedType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isReifiedType($P0); + } + public IConstructor alt(IValue $P0){ // Generated by Resolver + IConstructor $result = null; + Type $P0Type = $P0.getType(); + if($isSubtypeOf($P0Type,$T1)){ + $result = (IConstructor)M_lang_rascal_grammar_definition_Symbols.lang_rascal_grammar_definition_Symbols_alt$01fd93bf17a1bf85((ISet) $P0); + if($result != null) return $result; + } + if($isSubtypeOf($P0Type,$T1)){ + return $RVF.constructor(M_ParseTree.Symbol_alt_set_Symbol, new IValue[]{(ISet) $P0}); + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0)); + } + public IBool isRelType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isRelType($P0); + } + public IBool isConstructorType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isConstructorType($P0); + } + public IBool isListRelType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isListRelType($P0); + } + public IList addParamLabels(IValue $P0, IValue $P1){ // Generated by Resolver + return (IList) M_Type.addParamLabels($P0, $P1); + } + public IBool isMapType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isMapType($P0); + } + public IBool isBoolType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isBoolType($P0); + } + public IBool isLocType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isLocType($P0); + } + public IConstructor treeAt(IValue $P0, IValue $P1, IValue $P2){ // Generated by Resolver + return (IConstructor) M_ParseTree.treeAt($P0, $P1, $P2); + } + public IBool isSetType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isSetType($P0); + } + public IBool isRatType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isRatType($P0); + } + public IBool isNumType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isNumType($P0); + } + public IBool isTupleType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isTupleType($P0); + } + public IBool isBagType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isBagType($P0); + } + public IBool isVoidType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isVoidType($P0); + } + public IConstructor strip(IValue $P0){ // Generated by Resolver + return (IConstructor) M_lang_rascal_grammar_definition_Symbols.strip($P0); + } + public IBool isNonTerminalType(IValue $P0){ // Generated by Resolver + return (IBool) M_ParseTree.isNonTerminalType($P0); + } + public IValue lub(IValue $P0, IValue $P1){ // Generated by Resolver + return (IValue) M_Type.lub($P0, $P1); + } + public IBool subtype(IValue $P0, IValue $P1){ // Generated by Resolver + return (IBool) M_Type.subtype($P0, $P1); + } + public IConstructor associativity(IValue $P0, IValue $P1, IValue $P2){ // Generated by Resolver + return (IConstructor) M_ParseTree.associativity($P0, $P1, $P2); + } + public IBool isFunctionType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isFunctionType($P0); + } + public IValue glb(IValue $P0, IValue $P1){ // Generated by Resolver + return (IValue) M_Type.glb($P0, $P1); + } + public IConstructor seq(IValue $P0){ // Generated by Resolver + IConstructor $result = null; + Type $P0Type = $P0.getType(); + if($isSubtypeOf($P0Type,$T2)){ + $result = (IConstructor)M_lang_rascal_grammar_definition_Symbols.lang_rascal_grammar_definition_Symbols_seq$5dde90ea795fac79((IList) $P0); + if($result != null) return $result; + } + if($isSubtypeOf($P0Type,$T2)){ + return $RVF.constructor(M_ParseTree.Symbol_seq_list_Symbol, new IValue[]{(IList) $P0}); + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0)); + } + public IBool isIntType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isIntType($P0); + } + public IBool isDateTimeType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isDateTimeType($P0); + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/lang/rascal/grammar/definition/Keywords.rsc|(435,149,<15,0>,<19,1>) + public IConstructor lang_rascal_grammar_definition_Keywords_expandKeywords$ff72ffb26b3e3b0a(IConstructor $aux_g_0){ + ValueRef g_0 = new ValueRef("g_0", $aux_g_0); + + + try { + IValue $visitResult = $TRAVERSE.traverse(DIRECTION.BottomUp, PROGRESS.Continuing, FIXEDPOINT.No, REBUILD.Yes, + new DescendantDescriptorAlwaysTrue($RVF.bool(false)), + g_0.getValue(), + (IVisitFunction) (IValue $VISIT0_subject, TraversalState $traversalState) -> { + VISIT0:switch(Fingerprint.getFingerprint($VISIT0_subject)){ + + case -2144737184: + if($isSubtypeOf($VISIT0_subject.getType(),M_ParseTree.ADT_Symbol)){ + /*muExists*/CASE_2144737184_0: + do { + if($has_type_and_arity($VISIT0_subject, M_ParseTree.Symbol_conditional_Symbol_set_Condition, 2)){ + IValue $arg0_2 = (IValue)($aadt_subscript_int(((IConstructor)($VISIT0_subject)),0)); + if($isComparable($arg0_2.getType(), M_ParseTree.ADT_Symbol)){ + IConstructor sym_1 = ((IConstructor)($arg0_2)); + IValue $arg1_1 = (IValue)($aadt_subscript_int(((IConstructor)($VISIT0_subject)),1)); + if($isComparable($arg1_1.getType(), $T0)){ + ISet conds_2 = ((ISet)($arg1_1)); + IConstructor $replacement0 = (IConstructor)(conditional(((IConstructor)($arg0_2)), ((ISet)($me.expandKeywords(g_0.getValue(), ((ISet)($arg1_1))))))); + if($isSubtypeOf($replacement0.getType(),$VISIT0_subject.getType())){ + $traversalState.setMatchedAndChanged(true, true); + return $replacement0; + + } else { + break VISIT0;// switch + + } + } + + } + + } + + } while(false); + + } + + + + } + return $VISIT0_subject; + }); + return (IConstructor)$visitResult; + + } catch (ReturnFromTraversalException e) { + return (IConstructor) e.getValue(); + } + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/lang/rascal/grammar/definition/Keywords.rsc|(586,540,<21,0>,<42,1>) + public ISet lang_rascal_grammar_definition_Keywords_expandKeywords$1bcbc30f3beb3889(IConstructor g_0, ISet conds_1){ + + + ISet names_2 = ((ISet)$constants.get(0)/*{}*/); + ISet done_3 = ((ISet)$constants.get(0)/*{}*/); + ISet todo_4 = ((ISet)conds_1); + int $iterations3 = 1000000; + if($iterations3 <= 0){ + throw RuntimeExceptionFactory.indexOutOfBounds($RVF.integer($iterations3)); + } + boolean $change4 = true; + while1: + while($change4 && $iterations3 >= 0){ + $change4 = false; + ISet $todo5 = (ISet)(todo_4); + /*muExists*/FOR2: + do { + FOR2_GEN729: + for(IValue $elem18_for : ((ISet)todo_4)){ + IConstructor $elem18 = (IConstructor) $elem18_for; + IConstructor cond_5 = ((IConstructor)($elem18)); + if((((IBool)($RVF.bool(!(((ISet)done_3)).contains(((IConstructor)cond_5)))))).getValue()){ + todo_4 = ((ISet)(((ISet)todo_4).subtract(((ISet)($RVF.set(((IConstructor)cond_5))))))); + if($aadt_has_field(((IConstructor)cond_5),"symbol")){ + final IConstructor $subject_val16 = ((IConstructor)(((IConstructor)($aadt_get_field(((IConstructor)cond_5), "symbol"))))); + if($has_type_and_arity($subject_val16, M_ParseTree.Symbol_keywords_str, 1)){ + IValue $arg0_17 = (IValue)($aadt_subscript_int(((IConstructor)($subject_val16)),0)); + if($isComparable($arg0_17.getType(), $T5)){ + if(true){ + IString name_6 = ((IString)($arg0_17)); + if((((IBool)($RVF.bool(!(((ISet)names_2)).contains(((IString)($arg0_17))))))).getValue()){ + names_2 = ((ISet)($aset_add_aset(((ISet)names_2),((ISet)($RVF.set(((IString)($arg0_17)))))))); + final ISetWriter $setwriter6 = (ISetWriter)$RVF.setWriter(); + ; + /*muExists*/$SCOMP7: + do { + final IConstructor $subject_val13 = ((IConstructor)($amap_subscript(((IMap)(((IMap)($aadt_get_field(((IConstructor)g_0), "rules"))))),((IConstructor)(M_Node.unsetRec(((IValue)(((IConstructor)($aadt_get_field(((IConstructor)cond_5), "symbol"))))))))))); + if($has_type_and_arity($subject_val13, M_Type.Production_choice_Symbol_set_Production, 2)){ + IValue $arg0_15 = (IValue)($aadt_subscript_int(((IConstructor)($subject_val13)),0)); + if($isComparable($arg0_15.getType(), $T6)){ + IValue $arg1_14 = (IValue)($aadt_subscript_int(((IConstructor)($subject_val13)),1)); + if($isComparable($arg1_14.getType(), $T7)){ + ISet alts_7 = null; + $SCOMP7_GEN1015: + for(IValue $elem8_for : ((ISet)($arg1_14))){ + IConstructor $elem8 = (IConstructor) $elem8_for; + if($has_type_and_arity($elem8, M_ParseTree.Production_prod_Symbol_list_Symbol_set_Attr, 3)){ + IValue $arg0_12 = (IValue)($aadt_subscript_int(((IConstructor)($elem8)),0)); + if($isComparable($arg0_12.getType(), $T6)){ + IValue $arg1_10 = (IValue)($aadt_subscript_int(((IConstructor)($elem8)),1)); + if($isComparable($arg1_10.getType(), $T8)){ + final IList $subject11 = ((IList)($arg1_10)); + int $subject11_cursor = 0; + if($isSubtypeOf($subject11.getType(),$T8)){ + final int $subject11_len = (int)((IList)($subject11)).length(); + if($subject11_len == 1){ + if($subject11_cursor < $subject11_len){ + IConstructor s_8 = ((IConstructor)($alist_subscript_int(((IList)($subject11)),$subject11_cursor))); + $subject11_cursor += 1; + if($subject11_cursor == $subject11_len){ + IValue $arg2_9 = (IValue)($aadt_subscript_int(((IConstructor)($elem8)),2)); + if($isComparable($arg2_9.getType(), $T6)){ + $setwriter6.insert(((IConstructor)($aadt_field_update("symbol", s_8, ((IConstructor)cond_5))))); + + } else { + continue $SCOMP7_GEN1015; + } + } else { + continue $SCOMP7_GEN1015;/*list match1*/ + } + } else { + continue $SCOMP7_GEN1015; + } + } else { + continue $SCOMP7_GEN1015; + } + } else { + continue $SCOMP7_GEN1015; + } + } else { + continue $SCOMP7_GEN1015; + } + } else { + continue $SCOMP7_GEN1015; + } + } else { + continue $SCOMP7_GEN1015; + } + } + continue $SCOMP7; + + } + + } + + } + + } while(false); + todo_4 = ((ISet)($aset_add_aset(((ISet)todo_4),((ISet)($setwriter6.done()))))); + + } + + } else { + done_3 = ((ISet)($aset_add_elm(((ISet)done_3),((IConstructor)cond_5)))); + + } + } else { + done_3 = ((ISet)($aset_add_elm(((ISet)done_3),((IConstructor)cond_5)))); + + } + } else { + done_3 = ((ISet)($aset_add_elm(((ISet)done_3),((IConstructor)cond_5)))); + + } + } else { + done_3 = ((ISet)($aset_add_elm(((ISet)done_3),((IConstructor)cond_5)))); + + } + } else { + continue FOR2_GEN729; + } + + } + continue FOR2; + + } while(false); + /* void: muCon([]) */if((((IBool)($equal(((ISet)($todo5)),((ISet)todo_4)).not()))).getValue()){ + $change4 = true; + + } + $iterations3 += -1; + + } + return ((ISet)done_3); + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/lang/rascal/grammar/definition/Keywords.rsc|(1128,110,<44,0>,<46,1>) + public ISet lang_rascal_grammar_definition_Keywords_getKeywords$a82d0dfce6283f31(IConstructor g_0){ + + + final ISetWriter $setwriter19 = (ISetWriter)$RVF.setWriter(); + ; + /*muExists*/$SCOMP20_GEN1209_CONS_keywords: + do { + $SCOMP20_GEN1209: + for(IValue $elem21_for : ((IMap)(((IMap)($aadt_get_field(((IConstructor)g_0), "rules")))))){ + IConstructor $elem21 = (IConstructor) $elem21_for; + if($has_type_and_arity($elem21, M_ParseTree.Symbol_keywords_str, 1)){ + IValue $arg0_22 = (IValue)($aadt_subscript_int(((IConstructor)($elem21)),0)); + if($isComparable($arg0_22.getType(), $T6)){ + IConstructor s_1 = ((IConstructor)($elem21)); + $setwriter19.insert($amap_subscript(((IMap)(((IMap)($aadt_get_field(((IConstructor)g_0), "rules"))))),((IConstructor)(M_Node.unsetRec(((IValue)s_1)))))); + + } else { + continue $SCOMP20_GEN1209; + } + } else { + continue $SCOMP20_GEN1209; + } + } + + + } while(false); + return ((ISet)($setwriter19.done())); + + } + + + public static void main(String[] args) { + throw new RuntimeException("No function `main` found in Rascal module `lang::rascal::grammar::definition::Keywords`"); + } +} \ No newline at end of file diff --git a/src/rascal/lang/rascal/grammar/definition/$Keywords.tpl b/src/rascal/lang/rascal/grammar/definition/$Keywords.tpl new file mode 100644 index 00000000000..60a44599762 Binary files /dev/null and b/src/rascal/lang/rascal/grammar/definition/$Keywords.tpl differ diff --git a/src/rascal/lang/rascal/grammar/definition/$Keywords_$I.java b/src/rascal/lang/rascal/grammar/definition/$Keywords_$I.java new file mode 100644 index 00000000000..cfa88f6ed50 --- /dev/null +++ b/src/rascal/lang/rascal/grammar/definition/$Keywords_$I.java @@ -0,0 +1,10 @@ +package rascal.lang.rascal.grammar.definition; +import io.usethesource.vallang.*; +import org.rascalmpl.runtime.function.*; + +@SuppressWarnings("unused") +public interface $Keywords_$I { + IValue expandKeywords(IValue $0); + IValue expandKeywords(IValue $0, IValue $1); + IValue getKeywords(IValue $0); +} \ No newline at end of file diff --git a/src/rascal/lang/rascal/grammar/definition/$Layout.constants b/src/rascal/lang/rascal/grammar/definition/$Layout.constants new file mode 100644 index 00000000000..5f804bf7664 Binary files /dev/null and b/src/rascal/lang/rascal/grammar/definition/$Layout.constants differ diff --git a/src/rascal/lang/rascal/grammar/definition/$Layout.java b/src/rascal/lang/rascal/grammar/definition/$Layout.java new file mode 100644 index 00000000000..6ed4159c9c2 --- /dev/null +++ b/src/rascal/lang/rascal/grammar/definition/$Layout.java @@ -0,0 +1,2016 @@ +package rascal.lang.rascal.grammar.definition; +import java.io.PrintWriter; +import java.io.StringWriter; +import java.io.InputStreamReader; +import java.io.PrintWriter; +import java.util.*; +import java.util.regex.Matcher; +import io.usethesource.vallang.*; +import io.usethesource.vallang.type.*; +import org.rascalmpl.runtime.*; +import org.rascalmpl.runtime.RascalExecutionContext; +import org.rascalmpl.runtime.function.*; +import org.rascalmpl.runtime.traverse.*; +import org.rascalmpl.runtime.utils.*; +import org.rascalmpl.exceptions.RuntimeExceptionFactory; +import org.rascalmpl.exceptions.Throw; +import org.rascalmpl.runtime.RascalExecutionContext; +import org.rascalmpl.interpreter.control_exceptions.Filtered; +import org.rascalmpl.types.NonTerminalType; +import org.rascalmpl.types.RascalTypeFactory; +import org.rascalmpl.util.ExpiringFunctionResultCache; +import org.rascalmpl.values.RascalValueFactory; +import org.rascalmpl.values.ValueFactoryFactory; +import org.rascalmpl.values.parsetrees.ITree; +import org.rascalmpl.values.parsetrees.TreeAdapter; + + + +@SuppressWarnings({"unused","unchecked","deprecation"}) +public class $Layout + extends + org.rascalmpl.runtime.$RascalModule + implements + rascal.lang.rascal.grammar.definition.$Layout_$I { + + private final $Layout_$I $me; + private final IList $constants; + + + public final rascal.lang.rascal.syntax.$Rascal M_lang_rascal_syntax_Rascal; + public final rascal.$ParseTree M_ParseTree; + public final rascal.$Type M_Type; + public final rascal.$List M_List; + public final rascal.$Grammar M_Grammar; + public final rascal.$Message M_Message; + + + + public final io.usethesource.vallang.type.Type $T6; /*avalue()*/ + public final io.usethesource.vallang.type.Type $T3; /*astr()*/ + public final io.usethesource.vallang.type.Type $T7; /*aparameter("T",avalue(),closed=false)*/ + public final io.usethesource.vallang.type.Type ADT_FunctionType; /*aadt("FunctionType",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_FunctionType; /*aadt("FunctionType",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Replacement; /*aadt("Replacement",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Replacement; /*aadt("Replacement",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Visibility; /*aadt("Visibility",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Visibility; /*aadt("Visibility",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_ProtocolChars; /*aadt("ProtocolChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_ProtocolChars; /*aadt("ProtocolChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Attr; /*aadt("Attr",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Expression; /*aadt("Expression",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Expression; /*aadt("Expression",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Mapping_Expression; /*aadt("Mapping",[aadt("Expression",[],contextFreeSyntax())],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Mapping_Expression; /*aadt("Mapping",[aadt("Expression",[],contextFreeSyntax())],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Strategy; /*aadt("Strategy",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Strategy; /*aadt("Strategy",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type $T2; /*aset(astr())*/ + public final io.usethesource.vallang.type.Type ADT_MidStringChars; /*aadt("MidStringChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_MidStringChars; /*aadt("MidStringChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_LocationChangeType; /*aadt("LocationChangeType",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_LAYOUT; /*aadt("LAYOUT",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_LAYOUT; /*aadt("LAYOUT",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Tree; /*aadt("Tree",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_TagString; /*aadt("TagString",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_TagString; /*aadt("TagString",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_IOCapability; /*aadt("IOCapability",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_PostProtocolChars; /*aadt("PostProtocolChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_PostProtocolChars; /*aadt("PostProtocolChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type $T8; /*aparameter("T",aadt("Tree",[],dataSyntax()),closed=true)*/ + public final io.usethesource.vallang.type.Type ADT_KeywordArguments_1; /*aadt("KeywordArguments",[aparameter("T",aadt("Tree",[],dataSyntax()),closed=true)],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_KeywordArguments_1; /*aadt("KeywordArguments",[aparameter("T",aadt("Tree",[],dataSyntax()),closed=true)],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Concrete; /*aadt("Concrete",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Concrete; /*aadt("Concrete",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Pattern; /*aadt("Pattern",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Pattern; /*aadt("Pattern",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Mapping_Pattern; /*aadt("Mapping",[aadt("Pattern",[],contextFreeSyntax())],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Mapping_Pattern; /*aadt("Mapping",[aadt("Pattern",[],contextFreeSyntax())],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Range; /*aadt("Range",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Range; /*aadt("Range",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Name; /*aadt("Name",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Name; /*aadt("Name",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_RationalLiteral; /*aadt("RationalLiteral",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_RationalLiteral; /*aadt("RationalLiteral",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_DatePart; /*aadt("DatePart",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_DatePart; /*aadt("DatePart",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Item; /*aadt("Item",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_GrammarModule; /*aadt("GrammarModule",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_RegExpLiteral; /*aadt("RegExpLiteral",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_RegExpLiteral; /*aadt("RegExpLiteral",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type $T9; /*aparameter("T",aadt("Tree",[],dataSyntax()),closed=false)*/ + public final io.usethesource.vallang.type.Type ADT_Prod; /*aadt("Prod",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Prod; /*aadt("Prod",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_ModuleParameters; /*aadt("ModuleParameters",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_ModuleParameters; /*aadt("ModuleParameters",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Output; /*aadt("Output",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Output; /*aadt("Output",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_SyntaxDefinition; /*aadt("SyntaxDefinition",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_SyntaxDefinition; /*aadt("SyntaxDefinition",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Mapping_1; /*aadt("Mapping",[aparameter("T",aadt("Tree",[],dataSyntax()),closed=true)],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Mapping_1; /*aadt("Mapping",[aparameter("T",aadt("Tree",[],dataSyntax()),closed=true)],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_ImportedModule; /*aadt("ImportedModule",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_ImportedModule; /*aadt("ImportedModule",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_BooleanLiteral; /*aadt("BooleanLiteral",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_BooleanLiteral; /*aadt("BooleanLiteral",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Case; /*aadt("Case",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Case; /*aadt("Case",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_IntegerLiteral; /*aadt("IntegerLiteral",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_IntegerLiteral; /*aadt("IntegerLiteral",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Declarator; /*aadt("Declarator",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Declarator; /*aadt("Declarator",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Target; /*aadt("Target",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Target; /*aadt("Target",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_TimePartNoTZ; /*aadt("TimePartNoTZ",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_TimePartNoTZ; /*aadt("TimePartNoTZ",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_KeywordArguments_Expression; /*aadt("KeywordArguments",[aadt("Expression",[],contextFreeSyntax())],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_KeywordArguments_Expression; /*aadt("KeywordArguments",[aadt("Expression",[],contextFreeSyntax())],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_LocalVariableDeclaration; /*aadt("LocalVariableDeclaration",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_LocalVariableDeclaration; /*aadt("LocalVariableDeclaration",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_KeywordFormals; /*aadt("KeywordFormals",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_KeywordFormals; /*aadt("KeywordFormals",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_DataTarget; /*aadt("DataTarget",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_DataTarget; /*aadt("DataTarget",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Renaming; /*aadt("Renaming",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Renaming; /*aadt("Renaming",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Catch; /*aadt("Catch",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Catch; /*aadt("Catch",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Production; /*aadt("Production",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Renamings; /*aadt("Renamings",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Renamings; /*aadt("Renamings",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_KeywordFormal; /*aadt("KeywordFormal",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_KeywordFormal; /*aadt("KeywordFormal",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_OptionalExpression; /*aadt("OptionalExpression",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_OptionalExpression; /*aadt("OptionalExpression",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_GrammarDefinition; /*aadt("GrammarDefinition",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Field; /*aadt("Field",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Field; /*aadt("Field",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_FunctionBody; /*aadt("FunctionBody",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_FunctionBody; /*aadt("FunctionBody",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_LocationLiteral; /*aadt("LocationLiteral",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_LocationLiteral; /*aadt("LocationLiteral",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Tag; /*aadt("Tag",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Tag; /*aadt("Tag",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Type; /*aadt("Type",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Type; /*aadt("Type",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_HexIntegerLiteral; /*aadt("HexIntegerLiteral",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_HexIntegerLiteral; /*aadt("HexIntegerLiteral",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_PostStringChars; /*aadt("PostStringChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_PostStringChars; /*aadt("PostStringChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_TimeZonePart; /*aadt("TimeZonePart",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_TimeZonePart; /*aadt("TimeZonePart",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Declaration; /*aadt("Declaration",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Declaration; /*aadt("Declaration",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_ShellCommand; /*aadt("ShellCommand",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_ShellCommand; /*aadt("ShellCommand",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_PreStringChars; /*aadt("PreStringChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_PreStringChars; /*aadt("PreStringChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Nonterminal; /*aadt("Nonterminal",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Nonterminal; /*aadt("Nonterminal",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_StringLiteral; /*aadt("StringLiteral",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_StringLiteral; /*aadt("StringLiteral",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_KeywordArguments_Pattern; /*aadt("KeywordArguments",[aadt("Pattern",[],contextFreeSyntax())],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_KeywordArguments_Pattern; /*aadt("KeywordArguments",[aadt("Pattern",[],contextFreeSyntax())],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type $T5; /*alist(aparameter("T",avalue(),closed=false))*/ + public final io.usethesource.vallang.type.Type ADT_NonterminalLabel; /*aadt("NonterminalLabel",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_NonterminalLabel; /*aadt("NonterminalLabel",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Variable; /*aadt("Variable",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Variable; /*aadt("Variable",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_TypeArg; /*aadt("TypeArg",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_TypeArg; /*aadt("TypeArg",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_RegExp; /*aadt("RegExp",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_RegExp; /*aadt("RegExp",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Bound; /*aadt("Bound",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Bound; /*aadt("Bound",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_PathPart; /*aadt("PathPart",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_PathPart; /*aadt("PathPart",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Class; /*aadt("Class",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Class; /*aadt("Class",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_KeywordArgument_1; /*aadt("KeywordArgument",[aparameter("T",aadt("Tree",[],dataSyntax()),closed=true)],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_KeywordArgument_1; /*aadt("KeywordArgument",[aparameter("T",aadt("Tree",[],dataSyntax()),closed=true)],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Associativity; /*aadt("Associativity",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Signature; /*aadt("Signature",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Signature; /*aadt("Signature",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_ModuleActuals; /*aadt("ModuleActuals",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_ModuleActuals; /*aadt("ModuleActuals",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Tags; /*aadt("Tags",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Tags; /*aadt("Tags",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_URLChars; /*aadt("URLChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_URLChars; /*aadt("URLChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Symbol; /*aadt("Symbol",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Condition; /*aadt("Condition",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type $T11; /*alist(aadt("Symbol",[],dataSyntax(),alabel="sep"))*/ + public final io.usethesource.vallang.type.Type ADT_Body; /*aadt("Body",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Body; /*aadt("Body",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_DataTypeSelector; /*aadt("DataTypeSelector",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_DataTypeSelector; /*aadt("DataTypeSelector",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Start; /*aadt("Start",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Start; /*aadt("Start",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_OptionalComma; /*aadt("OptionalComma",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_OptionalComma; /*aadt("OptionalComma",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_PrePathChars; /*aadt("PrePathChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_PrePathChars; /*aadt("PrePathChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Backslash; /*aadt("Backslash",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Backslash; /*aadt("Backslash",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_DateAndTime; /*aadt("DateAndTime",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_DateAndTime; /*aadt("DateAndTime",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_StringTail; /*aadt("StringTail",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_StringTail; /*aadt("StringTail",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_CaseInsensitiveStringConstant; /*aadt("CaseInsensitiveStringConstant",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_CaseInsensitiveStringConstant; /*aadt("CaseInsensitiveStringConstant",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Char; /*aadt("Char",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Char; /*aadt("Char",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Assignment; /*aadt("Assignment",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Assignment; /*aadt("Assignment",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Header; /*aadt("Header",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Header; /*aadt("Header",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Exception; /*aadt("Exception",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_PatternWithAction; /*aadt("PatternWithAction",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_PatternWithAction; /*aadt("PatternWithAction",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type $T1; /*aset(aadt("Symbol",[],dataSyntax()))*/ + public final io.usethesource.vallang.type.Type ADT_FunctionDeclaration; /*aadt("FunctionDeclaration",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_FunctionDeclaration; /*aadt("FunctionDeclaration",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_StringConstant; /*aadt("StringConstant",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_StringConstant; /*aadt("StringConstant",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_TypeVar; /*aadt("TypeVar",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_TypeVar; /*aadt("TypeVar",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_LocationType; /*aadt("LocationType",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_JustDate; /*aadt("JustDate",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_JustDate; /*aadt("JustDate",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_UserType; /*aadt("UserType",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_UserType; /*aadt("UserType",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_CharRange; /*aadt("CharRange",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Variant; /*aadt("Variant",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Variant; /*aadt("Variant",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type $T4; /*aset(aadt("Attr",[],dataSyntax()))*/ + public final io.usethesource.vallang.type.Type ADT_Import; /*aadt("Import",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Import; /*aadt("Import",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_TreeSearchResult_1; /*aadt("TreeSearchResult",[aparameter("T",aadt("Tree",[],dataSyntax()),closed=true)],dataSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_LAYOUTLIST; /*aadt("LAYOUTLIST",[],layoutSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_ConcreteHole; /*aadt("ConcreteHole",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_ConcreteHole; /*aadt("ConcreteHole",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Grammar; /*aadt("Grammar",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Message; /*aadt("Message",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Sym; /*aadt("Sym",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Sym; /*aadt("Sym",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type $T0; /*alist(aadt("Symbol",[],dataSyntax()))*/ + public final io.usethesource.vallang.type.Type ADT_RealLiteral; /*aadt("RealLiteral",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_RealLiteral; /*aadt("RealLiteral",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_StringMiddle; /*aadt("StringMiddle",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_StringMiddle; /*aadt("StringMiddle",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_FunctionModifiers; /*aadt("FunctionModifiers",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_FunctionModifiers; /*aadt("FunctionModifiers",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Comprehension; /*aadt("Comprehension",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Comprehension; /*aadt("Comprehension",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Formals; /*aadt("Formals",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Formals; /*aadt("Formals",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_MidPathChars; /*aadt("MidPathChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_MidPathChars; /*aadt("MidPathChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_QualifiedName; /*aadt("QualifiedName",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_QualifiedName; /*aadt("QualifiedName",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Module; /*aadt("Module",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Module; /*aadt("Module",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_NamedBackslash; /*aadt("NamedBackslash",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_NamedBackslash; /*aadt("NamedBackslash",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_RascalKeywords; /*aadt("RascalKeywords",[],keywordSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Parameters; /*aadt("Parameters",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Parameters; /*aadt("Parameters",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_MidProtocolChars; /*aadt("MidProtocolChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_MidProtocolChars; /*aadt("MidProtocolChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Command; /*aadt("Command",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Command; /*aadt("Command",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_StructuredType; /*aadt("StructuredType",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_StructuredType; /*aadt("StructuredType",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_OctalIntegerLiteral; /*aadt("OctalIntegerLiteral",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_OctalIntegerLiteral; /*aadt("OctalIntegerLiteral",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_ProtocolPart; /*aadt("ProtocolPart",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_ProtocolPart; /*aadt("ProtocolPart",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_StringTemplate; /*aadt("StringTemplate",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_StringTemplate; /*aadt("StringTemplate",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_DateTimeLiteral; /*aadt("DateTimeLiteral",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_DateTimeLiteral; /*aadt("DateTimeLiteral",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_DecimalIntegerLiteral; /*aadt("DecimalIntegerLiteral",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_DecimalIntegerLiteral; /*aadt("DecimalIntegerLiteral",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Kind; /*aadt("Kind",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Kind; /*aadt("Kind",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_RegExpModifier; /*aadt("RegExpModifier",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_RegExpModifier; /*aadt("RegExpModifier",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Label; /*aadt("Label",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Label; /*aadt("Label",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_PreProtocolChars; /*aadt("PreProtocolChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_PreProtocolChars; /*aadt("PreProtocolChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_PathTail; /*aadt("PathTail",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_PathTail; /*aadt("PathTail",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_NamedRegExp; /*aadt("NamedRegExp",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_NamedRegExp; /*aadt("NamedRegExp",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Assoc; /*aadt("Assoc",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Assoc; /*aadt("Assoc",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_RuntimeException; /*aadt("RuntimeException",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Toplevel; /*aadt("Toplevel",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Toplevel; /*aadt("Toplevel",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_ConcretePart; /*aadt("ConcretePart",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_ConcretePart; /*aadt("ConcretePart",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_PathChars; /*aadt("PathChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_PathChars; /*aadt("PathChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_FunctionModifier; /*aadt("FunctionModifier",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_FunctionModifier; /*aadt("FunctionModifier",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_EvalCommand; /*aadt("EvalCommand",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_EvalCommand; /*aadt("EvalCommand",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_StringCharacter; /*aadt("StringCharacter",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_StringCharacter; /*aadt("StringCharacter",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_PostPathChars; /*aadt("PostPathChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_PostPathChars; /*aadt("PostPathChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Statement; /*aadt("Statement",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Statement; /*aadt("Statement",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Literal; /*aadt("Literal",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Literal; /*aadt("Literal",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type $T10; /*alist(aadt("Symbol",[],dataSyntax(),alabel="x"))*/ + public final io.usethesource.vallang.type.Type ADT_ProtocolTail; /*aadt("ProtocolTail",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_ProtocolTail; /*aadt("ProtocolTail",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_BasicType; /*aadt("BasicType",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_BasicType; /*aadt("BasicType",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Commands; /*aadt("Commands",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Commands; /*aadt("Commands",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Visit; /*aadt("Visit",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Visit; /*aadt("Visit",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Comment; /*aadt("Comment",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Comment; /*aadt("Comment",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_ProdModifier; /*aadt("ProdModifier",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_ProdModifier; /*aadt("ProdModifier",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_JustTime; /*aadt("JustTime",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_JustTime; /*aadt("JustTime",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_UnicodeEscape; /*aadt("UnicodeEscape",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_UnicodeEscape; /*aadt("UnicodeEscape",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_CommonKeywordParameters; /*aadt("CommonKeywordParameters",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_CommonKeywordParameters; /*aadt("CommonKeywordParameters",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Assignable; /*aadt("Assignable",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Assignable; /*aadt("Assignable",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_LocationChangeEvent; /*aadt("LocationChangeEvent",[],dataSyntax())*/ + + public $Layout(RascalExecutionContext rex){ + this(rex, null); + } + + public $Layout(RascalExecutionContext rex, Object extended){ + super(rex); + this.$me = extended == null ? this : ($Layout_$I)extended; + ModuleStore mstore = rex.getModuleStore(); + mstore.put(rascal.lang.rascal.grammar.definition.$Layout.class, this); + + mstore.importModule(rascal.lang.rascal.syntax.$Rascal.class, rex, rascal.lang.rascal.syntax.$Rascal::new); + mstore.importModule(rascal.$ParseTree.class, rex, rascal.$ParseTree::new); + mstore.importModule(rascal.$Type.class, rex, rascal.$Type::new); + mstore.importModule(rascal.$List.class, rex, rascal.$List::new); + mstore.importModule(rascal.$Grammar.class, rex, rascal.$Grammar::new); + mstore.importModule(rascal.$Message.class, rex, rascal.$Message::new); + + M_lang_rascal_syntax_Rascal = mstore.getModule(rascal.lang.rascal.syntax.$Rascal.class); + M_ParseTree = mstore.getModule(rascal.$ParseTree.class); + M_Type = mstore.getModule(rascal.$Type.class); + M_List = mstore.getModule(rascal.$List.class); + M_Grammar = mstore.getModule(rascal.$Grammar.class); + M_Message = mstore.getModule(rascal.$Message.class); + + + + $TS.importStore(M_lang_rascal_syntax_Rascal.$TS); + $TS.importStore(M_ParseTree.$TS); + $TS.importStore(M_Type.$TS); + $TS.importStore(M_List.$TS); + $TS.importStore(M_Grammar.$TS); + $TS.importStore(M_Message.$TS); + + $constants = readBinaryConstantsFile(this.getClass(), "rascal/lang/rascal/grammar/definition/$Layout.constants", 6, "aef30cd4ac2750082470e27f0f9016dc"); + NT_FunctionType = $sort("FunctionType"); + ADT_FunctionType = $adt("FunctionType"); + NT_Replacement = $sort("Replacement"); + ADT_Replacement = $adt("Replacement"); + NT_Visibility = $sort("Visibility"); + ADT_Visibility = $adt("Visibility"); + NT_ProtocolChars = $lex("ProtocolChars"); + ADT_ProtocolChars = $adt("ProtocolChars"); + ADT_Attr = $adt("Attr"); + NT_Expression = $sort("Expression"); + ADT_Expression = $adt("Expression"); + NT_Strategy = $sort("Strategy"); + ADT_Strategy = $adt("Strategy"); + NT_MidStringChars = $lex("MidStringChars"); + ADT_MidStringChars = $adt("MidStringChars"); + ADT_LocationChangeType = $adt("LocationChangeType"); + NT_LAYOUT = $lex("LAYOUT"); + ADT_LAYOUT = $adt("LAYOUT"); + ADT_Tree = $adt("Tree"); + NT_TagString = $lex("TagString"); + ADT_TagString = $adt("TagString"); + ADT_IOCapability = $adt("IOCapability"); + NT_PostProtocolChars = $lex("PostProtocolChars"); + ADT_PostProtocolChars = $adt("PostProtocolChars"); + NT_Concrete = $lex("Concrete"); + ADT_Concrete = $adt("Concrete"); + NT_Pattern = $sort("Pattern"); + ADT_Pattern = $adt("Pattern"); + NT_Range = $sort("Range"); + ADT_Range = $adt("Range"); + NT_Name = $lex("Name"); + ADT_Name = $adt("Name"); + NT_RationalLiteral = $lex("RationalLiteral"); + ADT_RationalLiteral = $adt("RationalLiteral"); + NT_DatePart = $lex("DatePart"); + ADT_DatePart = $adt("DatePart"); + ADT_Item = $adt("Item"); + ADT_GrammarModule = $adt("GrammarModule"); + NT_RegExpLiteral = $lex("RegExpLiteral"); + ADT_RegExpLiteral = $adt("RegExpLiteral"); + NT_Prod = $sort("Prod"); + ADT_Prod = $adt("Prod"); + NT_ModuleParameters = $sort("ModuleParameters"); + ADT_ModuleParameters = $adt("ModuleParameters"); + NT_Output = $lex("Output"); + ADT_Output = $adt("Output"); + NT_SyntaxDefinition = $sort("SyntaxDefinition"); + ADT_SyntaxDefinition = $adt("SyntaxDefinition"); + NT_ImportedModule = $sort("ImportedModule"); + ADT_ImportedModule = $adt("ImportedModule"); + NT_BooleanLiteral = $lex("BooleanLiteral"); + ADT_BooleanLiteral = $adt("BooleanLiteral"); + NT_Case = $sort("Case"); + ADT_Case = $adt("Case"); + NT_IntegerLiteral = $sort("IntegerLiteral"); + ADT_IntegerLiteral = $adt("IntegerLiteral"); + NT_Declarator = $sort("Declarator"); + ADT_Declarator = $adt("Declarator"); + NT_Target = $sort("Target"); + ADT_Target = $adt("Target"); + NT_TimePartNoTZ = $lex("TimePartNoTZ"); + ADT_TimePartNoTZ = $adt("TimePartNoTZ"); + NT_LocalVariableDeclaration = $sort("LocalVariableDeclaration"); + ADT_LocalVariableDeclaration = $adt("LocalVariableDeclaration"); + NT_KeywordFormals = $sort("KeywordFormals"); + ADT_KeywordFormals = $adt("KeywordFormals"); + NT_DataTarget = $sort("DataTarget"); + ADT_DataTarget = $adt("DataTarget"); + NT_Renaming = $sort("Renaming"); + ADT_Renaming = $adt("Renaming"); + NT_Catch = $sort("Catch"); + ADT_Catch = $adt("Catch"); + ADT_Production = $adt("Production"); + NT_Renamings = $sort("Renamings"); + ADT_Renamings = $adt("Renamings"); + NT_KeywordFormal = $sort("KeywordFormal"); + ADT_KeywordFormal = $adt("KeywordFormal"); + NT_OptionalExpression = $sort("OptionalExpression"); + ADT_OptionalExpression = $adt("OptionalExpression"); + ADT_GrammarDefinition = $adt("GrammarDefinition"); + NT_Field = $sort("Field"); + ADT_Field = $adt("Field"); + NT_FunctionBody = $sort("FunctionBody"); + ADT_FunctionBody = $adt("FunctionBody"); + NT_LocationLiteral = $sort("LocationLiteral"); + ADT_LocationLiteral = $adt("LocationLiteral"); + NT_Tag = $sort("Tag"); + ADT_Tag = $adt("Tag"); + NT_Type = $sort("Type"); + ADT_Type = $adt("Type"); + NT_HexIntegerLiteral = $lex("HexIntegerLiteral"); + ADT_HexIntegerLiteral = $adt("HexIntegerLiteral"); + NT_PostStringChars = $lex("PostStringChars"); + ADT_PostStringChars = $adt("PostStringChars"); + NT_TimeZonePart = $lex("TimeZonePart"); + ADT_TimeZonePart = $adt("TimeZonePart"); + NT_Declaration = $sort("Declaration"); + ADT_Declaration = $adt("Declaration"); + NT_ShellCommand = $sort("ShellCommand"); + ADT_ShellCommand = $adt("ShellCommand"); + NT_PreStringChars = $lex("PreStringChars"); + ADT_PreStringChars = $adt("PreStringChars"); + NT_Nonterminal = $lex("Nonterminal"); + ADT_Nonterminal = $adt("Nonterminal"); + NT_StringLiteral = $sort("StringLiteral"); + ADT_StringLiteral = $adt("StringLiteral"); + NT_NonterminalLabel = $lex("NonterminalLabel"); + ADT_NonterminalLabel = $adt("NonterminalLabel"); + NT_Variable = $sort("Variable"); + ADT_Variable = $adt("Variable"); + NT_TypeArg = $sort("TypeArg"); + ADT_TypeArg = $adt("TypeArg"); + NT_RegExp = $lex("RegExp"); + ADT_RegExp = $adt("RegExp"); + NT_Bound = $sort("Bound"); + ADT_Bound = $adt("Bound"); + NT_PathPart = $sort("PathPart"); + ADT_PathPart = $adt("PathPart"); + NT_Class = $sort("Class"); + ADT_Class = $adt("Class"); + ADT_Associativity = $adt("Associativity"); + NT_Signature = $sort("Signature"); + ADT_Signature = $adt("Signature"); + NT_ModuleActuals = $sort("ModuleActuals"); + ADT_ModuleActuals = $adt("ModuleActuals"); + NT_Tags = $sort("Tags"); + ADT_Tags = $adt("Tags"); + NT_URLChars = $lex("URLChars"); + ADT_URLChars = $adt("URLChars"); + ADT_Symbol = $adt("Symbol"); + ADT_Condition = $adt("Condition"); + NT_Body = $sort("Body"); + ADT_Body = $adt("Body"); + NT_DataTypeSelector = $sort("DataTypeSelector"); + ADT_DataTypeSelector = $adt("DataTypeSelector"); + NT_Start = $sort("Start"); + ADT_Start = $adt("Start"); + NT_OptionalComma = $lex("OptionalComma"); + ADT_OptionalComma = $adt("OptionalComma"); + NT_PrePathChars = $lex("PrePathChars"); + ADT_PrePathChars = $adt("PrePathChars"); + NT_Backslash = $lex("Backslash"); + ADT_Backslash = $adt("Backslash"); + NT_DateAndTime = $lex("DateAndTime"); + ADT_DateAndTime = $adt("DateAndTime"); + NT_StringTail = $sort("StringTail"); + ADT_StringTail = $adt("StringTail"); + NT_CaseInsensitiveStringConstant = $lex("CaseInsensitiveStringConstant"); + ADT_CaseInsensitiveStringConstant = $adt("CaseInsensitiveStringConstant"); + NT_Char = $lex("Char"); + ADT_Char = $adt("Char"); + NT_Assignment = $sort("Assignment"); + ADT_Assignment = $adt("Assignment"); + NT_Header = $sort("Header"); + ADT_Header = $adt("Header"); + ADT_Exception = $adt("Exception"); + NT_PatternWithAction = $sort("PatternWithAction"); + ADT_PatternWithAction = $adt("PatternWithAction"); + NT_FunctionDeclaration = $sort("FunctionDeclaration"); + ADT_FunctionDeclaration = $adt("FunctionDeclaration"); + NT_StringConstant = $lex("StringConstant"); + ADT_StringConstant = $adt("StringConstant"); + NT_TypeVar = $sort("TypeVar"); + ADT_TypeVar = $adt("TypeVar"); + ADT_LocationType = $adt("LocationType"); + NT_JustDate = $lex("JustDate"); + ADT_JustDate = $adt("JustDate"); + NT_UserType = $sort("UserType"); + ADT_UserType = $adt("UserType"); + ADT_CharRange = $adt("CharRange"); + NT_Variant = $sort("Variant"); + ADT_Variant = $adt("Variant"); + NT_Import = $sort("Import"); + ADT_Import = $adt("Import"); + ADT_LAYOUTLIST = $layouts("LAYOUTLIST"); + NT_ConcreteHole = $sort("ConcreteHole"); + ADT_ConcreteHole = $adt("ConcreteHole"); + ADT_Grammar = $adt("Grammar"); + ADT_Message = $adt("Message"); + NT_Sym = $sort("Sym"); + ADT_Sym = $adt("Sym"); + NT_RealLiteral = $lex("RealLiteral"); + ADT_RealLiteral = $adt("RealLiteral"); + NT_StringMiddle = $sort("StringMiddle"); + ADT_StringMiddle = $adt("StringMiddle"); + NT_FunctionModifiers = $sort("FunctionModifiers"); + ADT_FunctionModifiers = $adt("FunctionModifiers"); + NT_Comprehension = $sort("Comprehension"); + ADT_Comprehension = $adt("Comprehension"); + NT_Formals = $sort("Formals"); + ADT_Formals = $adt("Formals"); + NT_MidPathChars = $lex("MidPathChars"); + ADT_MidPathChars = $adt("MidPathChars"); + NT_QualifiedName = $sort("QualifiedName"); + ADT_QualifiedName = $adt("QualifiedName"); + NT_Module = $sort("Module"); + ADT_Module = $adt("Module"); + NT_NamedBackslash = $lex("NamedBackslash"); + ADT_NamedBackslash = $adt("NamedBackslash"); + ADT_RascalKeywords = $keywords("RascalKeywords"); + NT_Parameters = $sort("Parameters"); + ADT_Parameters = $adt("Parameters"); + NT_MidProtocolChars = $lex("MidProtocolChars"); + ADT_MidProtocolChars = $adt("MidProtocolChars"); + NT_Command = $sort("Command"); + ADT_Command = $adt("Command"); + NT_StructuredType = $sort("StructuredType"); + ADT_StructuredType = $adt("StructuredType"); + NT_OctalIntegerLiteral = $lex("OctalIntegerLiteral"); + ADT_OctalIntegerLiteral = $adt("OctalIntegerLiteral"); + NT_ProtocolPart = $sort("ProtocolPart"); + ADT_ProtocolPart = $adt("ProtocolPart"); + NT_StringTemplate = $sort("StringTemplate"); + ADT_StringTemplate = $adt("StringTemplate"); + NT_DateTimeLiteral = $sort("DateTimeLiteral"); + ADT_DateTimeLiteral = $adt("DateTimeLiteral"); + NT_DecimalIntegerLiteral = $lex("DecimalIntegerLiteral"); + ADT_DecimalIntegerLiteral = $adt("DecimalIntegerLiteral"); + NT_Kind = $sort("Kind"); + ADT_Kind = $adt("Kind"); + NT_RegExpModifier = $lex("RegExpModifier"); + ADT_RegExpModifier = $adt("RegExpModifier"); + NT_Label = $sort("Label"); + ADT_Label = $adt("Label"); + NT_PreProtocolChars = $lex("PreProtocolChars"); + ADT_PreProtocolChars = $adt("PreProtocolChars"); + NT_PathTail = $sort("PathTail"); + ADT_PathTail = $adt("PathTail"); + NT_NamedRegExp = $lex("NamedRegExp"); + ADT_NamedRegExp = $adt("NamedRegExp"); + NT_Assoc = $sort("Assoc"); + ADT_Assoc = $adt("Assoc"); + ADT_RuntimeException = $adt("RuntimeException"); + NT_Toplevel = $sort("Toplevel"); + ADT_Toplevel = $adt("Toplevel"); + NT_ConcretePart = $lex("ConcretePart"); + ADT_ConcretePart = $adt("ConcretePart"); + NT_PathChars = $lex("PathChars"); + ADT_PathChars = $adt("PathChars"); + NT_FunctionModifier = $sort("FunctionModifier"); + ADT_FunctionModifier = $adt("FunctionModifier"); + NT_EvalCommand = $sort("EvalCommand"); + ADT_EvalCommand = $adt("EvalCommand"); + NT_StringCharacter = $lex("StringCharacter"); + ADT_StringCharacter = $adt("StringCharacter"); + NT_PostPathChars = $lex("PostPathChars"); + ADT_PostPathChars = $adt("PostPathChars"); + NT_Statement = $sort("Statement"); + ADT_Statement = $adt("Statement"); + NT_Literal = $sort("Literal"); + ADT_Literal = $adt("Literal"); + NT_ProtocolTail = $sort("ProtocolTail"); + ADT_ProtocolTail = $adt("ProtocolTail"); + NT_BasicType = $sort("BasicType"); + ADT_BasicType = $adt("BasicType"); + NT_Commands = $sort("Commands"); + ADT_Commands = $adt("Commands"); + NT_Visit = $sort("Visit"); + ADT_Visit = $adt("Visit"); + NT_Comment = $lex("Comment"); + ADT_Comment = $adt("Comment"); + NT_ProdModifier = $sort("ProdModifier"); + ADT_ProdModifier = $adt("ProdModifier"); + NT_JustTime = $lex("JustTime"); + ADT_JustTime = $adt("JustTime"); + NT_UnicodeEscape = $lex("UnicodeEscape"); + ADT_UnicodeEscape = $adt("UnicodeEscape"); + NT_CommonKeywordParameters = $sort("CommonKeywordParameters"); + ADT_CommonKeywordParameters = $adt("CommonKeywordParameters"); + NT_Assignable = $sort("Assignable"); + ADT_Assignable = $adt("Assignable"); + ADT_LocationChangeEvent = $adt("LocationChangeEvent"); + $T6 = $TF.valueType(); + $T3 = $TF.stringType(); + $T7 = $TF.parameterType("T", $T6); + NT_Mapping_Expression = $parameterizedSort("Mapping", new Type[] { ADT_Expression }, $RVF.list($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Expression")))); + $T2 = $TF.setType($T3); + $T8 = $TF.parameterType("T", ADT_Tree); + NT_KeywordArguments_1 = $parameterizedSort("KeywordArguments", new Type[] { $T8 }, $RVF.list($RVF.constructor(RascalValueFactory.Symbol_Parameter, $RVF.string("T"), $RVF.constructor(RascalValueFactory.Symbol_Adt, $RVF.string("Tree"), $RVF.list())))); + NT_Mapping_Pattern = $parameterizedSort("Mapping", new Type[] { ADT_Pattern }, $RVF.list($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Pattern")))); + $T9 = $TF.parameterType("T", ADT_Tree); + NT_Mapping_1 = $parameterizedSort("Mapping", new Type[] { $T8 }, $RVF.list($RVF.constructor(RascalValueFactory.Symbol_Parameter, $RVF.string("T"), $RVF.constructor(RascalValueFactory.Symbol_Adt, $RVF.string("Tree"), $RVF.list())))); + NT_KeywordArguments_Expression = $parameterizedSort("KeywordArguments", new Type[] { ADT_Expression }, $RVF.list($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Expression")))); + NT_KeywordArguments_Pattern = $parameterizedSort("KeywordArguments", new Type[] { ADT_Pattern }, $RVF.list($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Pattern")))); + $T5 = $TF.listType($T7); + NT_KeywordArgument_1 = $parameterizedSort("KeywordArgument", new Type[] { $T8 }, $RVF.list($RVF.constructor(RascalValueFactory.Symbol_Parameter, $RVF.string("T"), $RVF.constructor(RascalValueFactory.Symbol_Adt, $RVF.string("Tree"), $RVF.list())))); + $T11 = $TF.listType(ADT_Symbol); + $T1 = $TF.setType(ADT_Symbol); + $T4 = $TF.setType(ADT_Attr); + ADT_TreeSearchResult_1 = $parameterizedAdt("TreeSearchResult", new Type[] { $T8 }); + $T0 = $TF.listType(ADT_Symbol); + $T10 = $TF.listType(ADT_Symbol); + ADT_Mapping_Expression = $TF.abstractDataType($TS, "Mapping", new Type[] { ADT_Expression }); + ADT_KeywordArguments_1 = $TF.abstractDataType($TS, "KeywordArguments", new Type[] { $T8 }); + ADT_Mapping_Pattern = $TF.abstractDataType($TS, "Mapping", new Type[] { ADT_Pattern }); + ADT_Mapping_1 = $TF.abstractDataType($TS, "Mapping", new Type[] { $T8 }); + ADT_KeywordArguments_Expression = $TF.abstractDataType($TS, "KeywordArguments", new Type[] { ADT_Expression }); + ADT_KeywordArguments_Pattern = $TF.abstractDataType($TS, "KeywordArguments", new Type[] { ADT_Pattern }); + ADT_KeywordArgument_1 = $TF.abstractDataType($TS, "KeywordArgument", new Type[] { $T8 }); + + + + } + public IBool isTypeVar(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isTypeVar($P0); + } + public IBool sameType(IValue $P0, IValue $P1){ // Generated by Resolver + return (IBool) M_ParseTree.sameType($P0, $P1); + } + public IValue head(IValue $P0){ // Generated by Resolver + return (IValue) M_List.head($P0); + } + public IBool isAliasType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isAliasType($P0); + } + public IList addLabels(IValue $P0, IValue $P1){ // Generated by Resolver + return (IList) M_Type.addLabels($P0, $P1); + } + public IList intermix(IValue $P0, IValue $P1, IValue $P2){ // Generated by Resolver + IList $result = null; + Type $P0Type = $P0.getType(); + Type $P1Type = $P1.getType(); + Type $P2Type = $P2.getType(); + if($isSubtypeOf($P0Type,$T0) && $isSubtypeOf($P1Type, M_ParseTree.ADT_Symbol) && $isSubtypeOf($P2Type,$T1)){ + $result = (IList)lang_rascal_grammar_definition_Layout_intermix$06d1dda5e7a58de1((IList) $P0, (IConstructor) $P1, (ISet) $P2); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0, $P1, $P2)); + } + public IBool isStrType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isStrType($P0); + } + public IConstructor choice(IValue $P0, IValue $P1){ // Generated by Resolver + return (IConstructor) M_Type.choice($P0, $P1); + } + public IBool isValueType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isValueType($P0); + } + public IBool isADTType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isADTType($P0); + } + public IBool isListType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isListType($P0); + } + public IBool isRealType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isRealType($P0); + } + public IConstructor priority(IValue $P0, IValue $P1){ // Generated by Resolver + return (IConstructor) M_ParseTree.priority($P0, $P1); + } + public IBool sepInOthers(IValue $P0, IValue $P1){ // Generated by Resolver + IBool $result = null; + Type $P0Type = $P0.getType(); + Type $P1Type = $P1.getType(); + if($isSubtypeOf($P0Type, M_ParseTree.ADT_Symbol) && $isSubtypeOf($P1Type,$T1)){ + $result = (IBool)lang_rascal_grammar_definition_Layout_sepInOthers$77348538892e7a01((IConstructor) $P0, (ISet) $P1); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0, $P1)); + } + public IBool isNodeType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isNodeType($P0); + } + public ISet allLayouts(IValue $P0, IValue $P1){ // Generated by Resolver + ISet $result = null; + Type $P0Type = $P0.getType(); + Type $P1Type = $P1.getType(); + if($isSubtypeOf($P0Type,$T2) && $isSubtypeOf($P1Type, M_Grammar.ADT_GrammarDefinition)){ + $result = (ISet)lang_rascal_grammar_definition_Layout_allLayouts$88ae4a4dba60dc36((ISet) $P0, (IConstructor) $P1); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0, $P1)); + } + public IBool isReifiedType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isReifiedType($P0); + } + public IBool isRelType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isRelType($P0); + } + public INode layouts(IValue $P0){ // Generated by Resolver + INode $result = null; + Type $P0Type = $P0.getType(); + if($isSubtypeOf($P0Type, M_Grammar.ADT_GrammarDefinition)){ + $result = (INode)lang_rascal_grammar_definition_Layout_layouts$a6e96418ea183c23((IConstructor) $P0); + if($result != null) return $result; + } + if($isSubtypeOf($P0Type,$T3)){ + return $RVF.constructor(M_ParseTree.Symbol_layouts_str, new IValue[]{(IString) $P0}); + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0)); + } + public IConstructor layouts(IValue $P0, IValue $P1, IValue $P2){ // Generated by Resolver + IConstructor $result = null; + Type $P0Type = $P0.getType(); + Type $P1Type = $P1.getType(); + Type $P2Type = $P2.getType(); + if($isSubtypeOf($P0Type, M_Grammar.ADT_Grammar) && $isSubtypeOf($P1Type, M_ParseTree.ADT_Symbol) && $isSubtypeOf($P2Type,$T1)){ + $result = (IConstructor)lang_rascal_grammar_definition_Layout_layouts$05fdb6399102471a((IConstructor) $P0, (IConstructor) $P1, (ISet) $P2); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0, $P1, $P2)); + } + public IBool isConstructorType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isConstructorType($P0); + } + public IBool isListRelType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isListRelType($P0); + } + public IList addParamLabels(IValue $P0, IValue $P1){ // Generated by Resolver + return (IList) M_Type.addParamLabels($P0, $P1); + } + public IBool isMapType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isMapType($P0); + } + public IBool isBoolType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isBoolType($P0); + } + public IList tail(IValue $P0){ // Generated by Resolver + return (IList) M_List.tail($P0); + } + public IBool lang_rascal_grammar_definition_Layout_activeLayout$74d077129237df15_isManual(IValue $P0){ // Generated by Resolver + IBool $result = null; + Type $P0Type = $P0.getType(); + if($isSubtypeOf($P0Type,$T4)){ + $result = (IBool)lang_rascal_grammar_definition_Layout_isManual$a3dc33f0f7e5db9f((ISet) $P0); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0)); + } + public IConstructor activeLayout(IValue $P0, IValue $P1, IValue $P2){ // Generated by Resolver + IConstructor $result = null; + Type $P0Type = $P0.getType(); + Type $P1Type = $P1.getType(); + Type $P2Type = $P2.getType(); + if($isSubtypeOf($P0Type,$T3) && $isSubtypeOf($P1Type,$T2) && $isSubtypeOf($P2Type, M_Grammar.ADT_GrammarDefinition)){ + $result = (IConstructor)lang_rascal_grammar_definition_Layout_activeLayout$74d077129237df15((IString) $P0, (ISet) $P1, (IConstructor) $P2); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0, $P1, $P2)); + } + public IBool isLocType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isLocType($P0); + } + public ITuple headTail(IValue $P0){ // Generated by Resolver + return (ITuple) M_List.headTail($P0); + } + public IConstructor treeAt(IValue $P0, IValue $P1, IValue $P2){ // Generated by Resolver + return (IConstructor) M_ParseTree.treeAt($P0, $P1, $P2); + } + public IBool isSetType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isSetType($P0); + } + public IBool isRatType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isRatType($P0); + } + public IBool isNumType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isNumType($P0); + } + public IConstructor regulars(IValue $P0, IValue $P1, IValue $P2){ // Generated by Resolver + IConstructor $result = null; + Type $P0Type = $P0.getType(); + Type $P1Type = $P1.getType(); + Type $P2Type = $P2.getType(); + if($isSubtypeOf($P0Type, M_ParseTree.ADT_Symbol) && $isSubtypeOf($P1Type, M_ParseTree.ADT_Symbol) && $isSubtypeOf($P2Type,$T1)){ + $result = (IConstructor)lang_rascal_grammar_definition_Layout_regulars$602edae583c47845((IConstructor) $P0, (IConstructor) $P1, (ISet) $P2); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0, $P1, $P2)); + } + public IBool lang_rascal_grammar_definition_Layout_activeLayout$74d077129237df15_isDefault(IValue $P0){ // Generated by Resolver + IBool $result = null; + Type $P0Type = $P0.getType(); + if($isSubtypeOf($P0Type, M_ParseTree.ADT_Symbol)){ + $result = (IBool)lang_rascal_grammar_definition_Layout_isDefault$bd3ab635f3493f69((IConstructor) $P0); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0)); + } + public IBool isTupleType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isTupleType($P0); + } + public IBool isBagType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isBagType($P0); + } + public IBool isVoidType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isVoidType($P0); + } + public IBool isNonTerminalType(IValue $P0){ // Generated by Resolver + return (IBool) M_ParseTree.isNonTerminalType($P0); + } + public IValue lub(IValue $P0, IValue $P1){ // Generated by Resolver + return (IValue) M_Type.lub($P0, $P1); + } + public IBool subtype(IValue $P0, IValue $P1){ // Generated by Resolver + return (IBool) M_Type.subtype($P0, $P1); + } + public IConstructor associativity(IValue $P0, IValue $P1, IValue $P2){ // Generated by Resolver + return (IConstructor) M_ParseTree.associativity($P0, $P1, $P2); + } + public IBool isFunctionType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isFunctionType($P0); + } + public IValue glb(IValue $P0, IValue $P1){ // Generated by Resolver + return (IValue) M_Type.glb($P0, $P1); + } + public IValue sort(IValue $P0){ // Generated by Resolver + IValue $result = null; + Type $P0Type = $P0.getType(); + if($isSubtypeOf($P0Type,$T5)){ + $result = (IValue)M_List.List_sort$1fe4426c8c8039da((IList) $P0); + if($result != null) return $result; + } + if($isSubtypeOf($P0Type,$T3)){ + return $RVF.constructor(M_ParseTree.Symbol_sort_str, new IValue[]{(IString) $P0}); + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0)); + } + public IList sort(IValue $P0, IValue $P1){ // Generated by Resolver + return (IList) M_List.sort($P0, $P1); + } + public IBool isIntType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isIntType($P0); + } + public IBool isDateTimeType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isDateTimeType($P0); + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/lang/rascal/grammar/definition/Layout.rsc|(465,446,<15,0>,<26,1>) + public IConstructor lang_rascal_grammar_definition_Layout_layouts$a6e96418ea183c23(IConstructor def_0){ + + + ISet deps_1 = ((ISet)(M_Grammar.dependencies(((IConstructor)def_0)))); + /*muExists*/FOR0: + do { + FOR0_GEN665: + for(IValue $elem0_for : ((IMap)(((IMap)($aadt_get_field(((IConstructor)def_0), "modules")))))){ + IString $elem0 = (IString) $elem0_for; + IString name_2 = ((IString)($elem0)); + def_0 = ((IConstructor)(((IConstructor)($aadt_field_update("modules", $amap_update(name_2,((IConstructor)($aadt_field_update("grammar", $me.layouts(((IConstructor)(((IConstructor)($aadt_get_field(((IConstructor)($amap_subscript(((IMap)(((IMap)($aadt_get_field(((IConstructor)def_0), "modules"))))),((IString)name_2)))), "grammar"))))), ((IConstructor)($me.activeLayout(((IString)name_2), ((ISet)($arel_subscript1_noset(((ISet)deps_1),((IString)name_2)))), ((IConstructor)def_0)))), ((ISet)($me.allLayouts(((ISet)($aset_add_aset(((ISet)($arel_subscript1_noset(((ISet)deps_1),((IString)name_2)))),((ISet)($RVF.set(((IString)name_2))))))), ((IConstructor)def_0))))), ((IConstructor)($amap_subscript(((IMap)(((IMap)($aadt_get_field(((IConstructor)def_0), "modules"))))),((IString)name_2))))))), ((IMap)(((IMap)($aadt_get_field(((IConstructor)def_0), "modules")))))), ((IConstructor)def_0)))))); + + } + continue FOR0; + + } while(false); + /* void: muCon([]) */return ((IConstructor)def_0); + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/lang/rascal/grammar/definition/Layout.rsc|(913,371,<28,0>,<32,3>) + public ISet lang_rascal_grammar_definition_Layout_allLayouts$88ae4a4dba60dc36(ISet defs_0, IConstructor def_1){ + + + final ISetWriter $setwriter1 = (ISetWriter)$RVF.setWriter(); + ; + $SCOMP2_GEN1109: + for(IValue $elem9_for : ((ISet)defs_0)){ + IString $elem9 = (IString) $elem9_for; + IString m_2 = null; + if($is_defined_value($guarded_map_subscript(((IMap)(((IMap)($aadt_get_field(((IConstructor)def_1), "modules"))))),((IString)($elem9))))){ + final IConstructor $subject_val3 = ((IConstructor)($amap_subscript(((IMap)(((IMap)($aadt_get_field(((IConstructor)def_1), "modules"))))),((IString)($elem9))))); + $SCOMP2_GEN1109_DESC1137: + for(IValue $elem4 : new DescendantMatchIterator($subject_val3, + new DescendantDescriptorAlwaysTrue($RVF.bool(false)))){ + if($isComparable($elem4.getType(), M_ParseTree.ADT_Production)){ + if($has_type_and_arity($elem4, M_ParseTree.Production_prod_Symbol_list_Symbol_set_Attr, 3)){ + IValue $arg0_7 = (IValue)($subscript_int(((IValue)($elem4)),0)); + if($isComparable($arg0_7.getType(), M_ParseTree.ADT_Symbol)){ + if($has_type_and_arity($arg0_7, M_ParseTree.Symbol_layouts_str, 1)){ + IValue $arg0_8 = (IValue)($aadt_subscript_int(((IConstructor)($arg0_7)),0)); + if($isComparable($arg0_8.getType(), $T3)){ + if(true){ + IString l_3 = null; + IValue $arg1_6 = (IValue)($subscript_int(((IValue)($elem4)),1)); + if($isComparable($arg1_6.getType(), $T6)){ + IValue $arg2_5 = (IValue)($subscript_int(((IValue)($elem4)),2)); + if($isComparable($arg2_5.getType(), $T6)){ + $setwriter1.insert($RVF.constructor(M_ParseTree.Symbol_sort_str, new IValue[]{((IString)($arg0_8))})); + + } else { + continue $SCOMP2_GEN1109_DESC1137; + } + } else { + continue $SCOMP2_GEN1109_DESC1137; + } + } else { + continue $SCOMP2_GEN1109_DESC1137; + } + } else { + continue $SCOMP2_GEN1109_DESC1137; + } + } else { + continue $SCOMP2_GEN1109_DESC1137; + } + } else { + continue $SCOMP2_GEN1109_DESC1137; + } + } else { + continue $SCOMP2_GEN1109_DESC1137; + } + } else { + continue $SCOMP2_GEN1109_DESC1137; + } + } + continue $SCOMP2_GEN1109; + + } else { + continue $SCOMP2_GEN1109; + } + + } + + final ISetWriter $setwriter10 = (ISetWriter)$RVF.setWriter(); + ; + $SCOMP11_GEN1198: + for(IValue $elem20_for : ((ISet)defs_0)){ + IString $elem20 = (IString) $elem20_for; + IString m_4 = null; + if($is_defined_value($guarded_map_subscript(((IMap)(((IMap)($aadt_get_field(((IConstructor)def_1), "modules"))))),((IString)($elem20))))){ + final IConstructor $subject_val12 = ((IConstructor)($amap_subscript(((IMap)(((IMap)($aadt_get_field(((IConstructor)def_1), "modules"))))),((IString)($elem20))))); + $SCOMP11_GEN1198_DESC1226: + for(IValue $elem13 : new DescendantMatchIterator($subject_val12, + new DescendantDescriptorAlwaysTrue($RVF.bool(false)))){ + if($isComparable($elem13.getType(), M_ParseTree.ADT_Production)){ + if($has_type_and_arity($elem13, M_ParseTree.Production_prod_Symbol_list_Symbol_set_Attr, 3)){ + IValue $arg0_16 = (IValue)($subscript_int(((IValue)($elem13)),0)); + if($isComparable($arg0_16.getType(), M_ParseTree.ADT_Symbol)){ + if($has_type_and_arity($arg0_16, M_Type.Symbol_label_str_Symbol, 2)){ + IValue $arg0_19 = (IValue)($aadt_subscript_int(((IConstructor)($arg0_16)),0)); + if($isComparable($arg0_19.getType(), $T6)){ + IValue $arg1_17 = (IValue)($aadt_subscript_int(((IConstructor)($arg0_16)),1)); + if($isComparable($arg1_17.getType(), M_ParseTree.ADT_Symbol)){ + if($has_type_and_arity($arg1_17, M_ParseTree.Symbol_layouts_str, 1)){ + IValue $arg0_18 = (IValue)($aadt_subscript_int(((IConstructor)($arg1_17)),0)); + if($isComparable($arg0_18.getType(), $T3)){ + if(true){ + IString l_5 = null; + IValue $arg1_15 = (IValue)($subscript_int(((IValue)($elem13)),1)); + if($isComparable($arg1_15.getType(), $T6)){ + IValue $arg2_14 = (IValue)($subscript_int(((IValue)($elem13)),2)); + if($isComparable($arg2_14.getType(), $T6)){ + $setwriter10.insert($RVF.constructor(M_ParseTree.Symbol_sort_str, new IValue[]{((IString)($arg0_18))})); + + } else { + continue $SCOMP11_GEN1198_DESC1226; + } + } else { + continue $SCOMP11_GEN1198_DESC1226; + } + } else { + continue $SCOMP11_GEN1198_DESC1226; + } + } else { + continue $SCOMP11_GEN1198_DESC1226; + } + } else { + continue $SCOMP11_GEN1198_DESC1226; + } + } else { + continue $SCOMP11_GEN1198_DESC1226; + } + } else { + continue $SCOMP11_GEN1198_DESC1226; + } + } else { + continue $SCOMP11_GEN1198_DESC1226; + } + } else { + continue $SCOMP11_GEN1198_DESC1226; + } + } else { + continue $SCOMP11_GEN1198_DESC1226; + } + } else { + continue $SCOMP11_GEN1198_DESC1226; + } + } + continue $SCOMP11_GEN1198; + + } else { + continue $SCOMP11_GEN1198; + } + + } + + return ((ISet)($aset_add_aset(((ISet)($setwriter1.done())),((ISet)($setwriter10.done()))))); + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/lang/rascal/grammar/definition/Layout.rsc|(2252,61,<47,4>,<47,65>) + public IBool lang_rascal_grammar_definition_Layout_isManual$a3dc33f0f7e5db9f(ISet as_0){ + + + return ((IBool)($RVF.bool(((ISet)as_0).contains(((IConstructor)($RVF.constructor(M_Type.Attr_tag_value, new IValue[]{((INode)$constants.get(0)/*"manual"()*/)}))))))); + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/lang/rascal/grammar/definition/Layout.rsc|(2318,55,<48,4>,<48,59>) + public IBool lang_rascal_grammar_definition_Layout_isDefault$bd3ab635f3493f69(IConstructor s_0){ + + + return ((IBool)($equal(((IConstructor)s_0), ((IConstructor)$constants.get(1)/*layouts("$default$")*/)))); + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/lang/rascal/grammar/definition/Layout.rsc|(1619,1282,<40,0>,<60,1>) + public IConstructor lang_rascal_grammar_definition_Layout_activeLayout$74d077129237df15(IString name_0, ISet deps_1, IConstructor def_2){ + + + /*muExists*/IF4: + do { + final IConstructor $subject_val45 = ((IConstructor)($amap_subscript(((IMap)(((IMap)($aadt_get_field(((IConstructor)def_2), "modules"))))),((IString)name_0)))); + IF4_DESC2383: + for(IValue $elem46 : new DescendantMatchIterator($subject_val45, + new DescendantDescriptorAlwaysTrue($RVF.bool(false)))){ + if($isComparable($elem46.getType(), M_ParseTree.ADT_Production)){ + if($has_type_and_arity($elem46, M_ParseTree.Production_prod_Symbol_list_Symbol_set_Attr, 3)){ + IValue $arg0_49 = (IValue)($subscript_int(((IValue)($elem46)),0)); + if($isComparable($arg0_49.getType(), M_ParseTree.ADT_Symbol)){ + if($has_type_and_arity($arg0_49, M_ParseTree.Symbol_layouts_str, 1)){ + IValue $arg0_50 = (IValue)($aadt_subscript_int(((IConstructor)($arg0_49)),0)); + if($isComparable($arg0_50.getType(), $T6)){ + IConstructor l_3 = ((IConstructor)($arg0_49)); + IValue $arg1_48 = (IValue)($subscript_int(((IValue)($elem46)),1)); + if($isComparable($arg1_48.getType(), $T6)){ + IValue $arg2_47 = (IValue)($subscript_int(((IValue)($elem46)),2)); + if($isComparable($arg2_47.getType(), $T4)){ + ISet as_4 = ((ISet)($arg2_47)); + if((((IBool)(lang_rascal_grammar_definition_Layout_activeLayout$74d077129237df15_isDefault(((IConstructor)($arg0_49)))))).getValue()){ + continue IF4_DESC2383; + } else { + if((((IBool)(lang_rascal_grammar_definition_Layout_activeLayout$74d077129237df15_isManual(((ISet)($arg2_47)))))).getValue()){ + continue IF4_DESC2383; + } else { + return ((IConstructor)($arg0_49)); + + } + } + } else { + continue IF4_DESC2383; + } + } else { + continue IF4_DESC2383; + } + } else { + continue IF4_DESC2383; + } + } else { + continue IF4_DESC2383; + } + } else { + continue IF4_DESC2383; + } + } else { + continue IF4_DESC2383; + } + } else { + continue IF4_DESC2383; + } + } + + + } while(false); + /*muExists*/IF3: + do { + final IConstructor $subject_val37 = ((IConstructor)($amap_subscript(((IMap)(((IMap)($aadt_get_field(((IConstructor)def_2), "modules"))))),((IString)name_0)))); + IF3_DESC2486: + for(IValue $elem38 : new DescendantMatchIterator($subject_val37, + new DescendantDescriptorAlwaysTrue($RVF.bool(false)))){ + if($isComparable($elem38.getType(), M_ParseTree.ADT_Production)){ + if($has_type_and_arity($elem38, M_ParseTree.Production_prod_Symbol_list_Symbol_set_Attr, 3)){ + IValue $arg0_41 = (IValue)($subscript_int(((IValue)($elem38)),0)); + if($isComparable($arg0_41.getType(), M_ParseTree.ADT_Symbol)){ + if($has_type_and_arity($arg0_41, M_Type.Symbol_label_str_Symbol, 2)){ + IValue $arg0_44 = (IValue)($aadt_subscript_int(((IConstructor)($arg0_41)),0)); + if($isComparable($arg0_44.getType(), $T6)){ + IValue $arg1_42 = (IValue)($aadt_subscript_int(((IConstructor)($arg0_41)),1)); + if($isComparable($arg1_42.getType(), M_ParseTree.ADT_Symbol)){ + if($has_type_and_arity($arg1_42, M_ParseTree.Symbol_layouts_str, 1)){ + IValue $arg0_43 = (IValue)($aadt_subscript_int(((IConstructor)($arg1_42)),0)); + if($isComparable($arg0_43.getType(), $T6)){ + IConstructor l_5 = ((IConstructor)($arg1_42)); + IValue $arg1_40 = (IValue)($subscript_int(((IValue)($elem38)),1)); + if($isComparable($arg1_40.getType(), $T6)){ + IValue $arg2_39 = (IValue)($subscript_int(((IValue)($elem38)),2)); + if($isComparable($arg2_39.getType(), $T4)){ + ISet as_6 = ((ISet)($arg2_39)); + if((((IBool)(lang_rascal_grammar_definition_Layout_activeLayout$74d077129237df15_isDefault(((IConstructor)($arg1_42)))))).getValue()){ + continue IF3_DESC2486; + } else { + if((((IBool)(lang_rascal_grammar_definition_Layout_activeLayout$74d077129237df15_isManual(((ISet)($arg2_39)))))).getValue()){ + continue IF3_DESC2486; + } else { + return ((IConstructor)($arg1_42)); + + } + } + } else { + continue IF3_DESC2486; + } + } else { + continue IF3_DESC2486; + } + } else { + continue IF3_DESC2486; + } + } else { + continue IF3_DESC2486; + } + } else { + continue IF3_DESC2486; + } + } else { + continue IF3_DESC2486; + } + } else { + continue IF3_DESC2486; + } + } else { + continue IF3_DESC2486; + } + } else { + continue IF3_DESC2486; + } + } else { + continue IF3_DESC2486; + } + } + + + } while(false); + /*muExists*/IF2: + do { + IF2_GEN2600: + for(IValue $elem36_for : ((ISet)deps_1)){ + IString $elem36 = (IString) $elem36_for; + IString i_7 = ((IString)($elem36)); + if($is_defined_value($guarded_map_subscript(((IMap)(((IMap)($aadt_get_field(((IConstructor)def_2), "modules"))))),((IString)i_7)))){ + final IConstructor $subject_val30 = ((IConstructor)($amap_subscript(((IMap)(((IMap)($aadt_get_field(((IConstructor)def_2), "modules"))))),((IString)i_7)))); + IF2_GEN2600_DESC2628: + for(IValue $elem31 : new DescendantMatchIterator($subject_val30, + new DescendantDescriptorAlwaysTrue($RVF.bool(false)))){ + if($isComparable($elem31.getType(), M_ParseTree.ADT_Production)){ + if($has_type_and_arity($elem31, M_ParseTree.Production_prod_Symbol_list_Symbol_set_Attr, 3)){ + IValue $arg0_34 = (IValue)($subscript_int(((IValue)($elem31)),0)); + if($isComparable($arg0_34.getType(), M_ParseTree.ADT_Symbol)){ + if($has_type_and_arity($arg0_34, M_ParseTree.Symbol_layouts_str, 1)){ + IValue $arg0_35 = (IValue)($aadt_subscript_int(((IConstructor)($arg0_34)),0)); + if($isComparable($arg0_35.getType(), $T6)){ + IConstructor l_8 = ((IConstructor)($arg0_34)); + IValue $arg1_33 = (IValue)($subscript_int(((IValue)($elem31)),1)); + if($isComparable($arg1_33.getType(), $T6)){ + IValue $arg2_32 = (IValue)($subscript_int(((IValue)($elem31)),2)); + if($isComparable($arg2_32.getType(), $T4)){ + ISet as_9 = ((ISet)($arg2_32)); + if((((IBool)(lang_rascal_grammar_definition_Layout_activeLayout$74d077129237df15_isDefault(((IConstructor)($arg0_34)))))).getValue()){ + continue IF2_GEN2600_DESC2628; + } else { + if((((IBool)(lang_rascal_grammar_definition_Layout_activeLayout$74d077129237df15_isManual(((ISet)($arg2_32)))))).getValue()){ + continue IF2_GEN2600_DESC2628; + } else { + return ((IConstructor)($arg0_34)); + + } + } + } else { + continue IF2_GEN2600_DESC2628; + } + } else { + continue IF2_GEN2600_DESC2628; + } + } else { + continue IF2_GEN2600_DESC2628; + } + } else { + continue IF2_GEN2600_DESC2628; + } + } else { + continue IF2_GEN2600_DESC2628; + } + } else { + continue IF2_GEN2600_DESC2628; + } + } else { + continue IF2_GEN2600_DESC2628; + } + } + continue IF2_GEN2600; + + } else { + continue IF2_GEN2600; + } + } + + + } while(false); + /*muExists*/IF1: + do { + IF1_GEN2729: + for(IValue $elem29_for : ((ISet)deps_1)){ + IString $elem29 = (IString) $elem29_for; + IString i_10 = ((IString)($elem29)); + if($is_defined_value($guarded_map_subscript(((IMap)(((IMap)($aadt_get_field(((IConstructor)def_2), "modules"))))),((IString)i_10)))){ + final IConstructor $subject_val21 = ((IConstructor)($amap_subscript(((IMap)(((IMap)($aadt_get_field(((IConstructor)def_2), "modules"))))),((IString)i_10)))); + IF1_GEN2729_DESC2758: + for(IValue $elem22 : new DescendantMatchIterator($subject_val21, + new DescendantDescriptorAlwaysTrue($RVF.bool(false)))){ + if($isComparable($elem22.getType(), M_ParseTree.ADT_Production)){ + if($has_type_and_arity($elem22, M_ParseTree.Production_prod_Symbol_list_Symbol_set_Attr, 3)){ + IValue $arg0_25 = (IValue)($subscript_int(((IValue)($elem22)),0)); + if($isComparable($arg0_25.getType(), M_ParseTree.ADT_Symbol)){ + if($has_type_and_arity($arg0_25, M_Type.Symbol_label_str_Symbol, 2)){ + IValue $arg0_28 = (IValue)($aadt_subscript_int(((IConstructor)($arg0_25)),0)); + if($isComparable($arg0_28.getType(), $T6)){ + IValue $arg1_26 = (IValue)($aadt_subscript_int(((IConstructor)($arg0_25)),1)); + if($isComparable($arg1_26.getType(), M_ParseTree.ADT_Symbol)){ + if($has_type_and_arity($arg1_26, M_ParseTree.Symbol_layouts_str, 1)){ + IValue $arg0_27 = (IValue)($aadt_subscript_int(((IConstructor)($arg1_26)),0)); + if($isComparable($arg0_27.getType(), $T6)){ + IConstructor l_11 = ((IConstructor)($arg1_26)); + IValue $arg1_24 = (IValue)($subscript_int(((IValue)($elem22)),1)); + if($isComparable($arg1_24.getType(), $T6)){ + IValue $arg2_23 = (IValue)($subscript_int(((IValue)($elem22)),2)); + if($isComparable($arg2_23.getType(), $T4)){ + ISet as_12 = ((ISet)($arg2_23)); + if((((IBool)(lang_rascal_grammar_definition_Layout_activeLayout$74d077129237df15_isDefault(((IConstructor)($arg1_26)))))).getValue()){ + continue IF1_GEN2729_DESC2758; + } else { + if((((IBool)(lang_rascal_grammar_definition_Layout_activeLayout$74d077129237df15_isManual(((ISet)($arg2_23)))))).getValue()){ + continue IF1_GEN2729_DESC2758; + } else { + return ((IConstructor)($arg1_26)); + + } + } + } else { + continue IF1_GEN2729_DESC2758; + } + } else { + continue IF1_GEN2729_DESC2758; + } + } else { + continue IF1_GEN2729_DESC2758; + } + } else { + continue IF1_GEN2729_DESC2758; + } + } else { + continue IF1_GEN2729_DESC2758; + } + } else { + continue IF1_GEN2729_DESC2758; + } + } else { + continue IF1_GEN2729_DESC2758; + } + } else { + continue IF1_GEN2729_DESC2758; + } + } else { + continue IF1_GEN2729_DESC2758; + } + } else { + continue IF1_GEN2729_DESC2758; + } + } + continue IF1_GEN2729; + + } else { + continue IF1_GEN2729; + } + } + + + } while(false); + return ((IConstructor)$constants.get(1)/*layouts("$default$")*/); + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/lang/rascal/grammar/definition/Layout.rsc|(2905,708,<62,0>,<71,1>) + public IConstructor lang_rascal_grammar_definition_Layout_layouts$05fdb6399102471a(IConstructor g_0, IConstructor $aux_l_1, ISet $aux_others_2){ + ValueRef l_1 = new ValueRef("l_1", $aux_l_1); + ValueRef others_2 = new ValueRef("others_2", $aux_others_2); + + + try { + IValue $visitResult = $TRAVERSE.traverse(DIRECTION.TopDown, PROGRESS.Breaking, FIXEDPOINT.No, REBUILD.Yes, + new DescendantDescriptorAlwaysTrue($RVF.bool(false)), + g_0, + (IVisitFunction) (IValue $VISIT5_subject, TraversalState $traversalState) -> { + VISIT5:switch(Fingerprint.getFingerprint($VISIT5_subject)){ + + case 110389984: + if($isSubtypeOf($VISIT5_subject.getType(),M_ParseTree.ADT_Production)){ + /*muExists*/CASE_110389984_0: + do { + if($has_type_and_arity($VISIT5_subject, M_ParseTree.Production_prod_Symbol_list_Symbol_set_Attr, 3)){ + IValue $arg0_55 = (IValue)($aadt_subscript_int(((IConstructor)($VISIT5_subject)),0)); + if($isComparable($arg0_55.getType(), M_ParseTree.ADT_Symbol)){ + if($has_type_and_arity($arg0_55, M_ParseTree.Symbol_start_Symbol, 1)){ + IValue $arg0_56 = (IValue)($aadt_subscript_int(((IConstructor)($arg0_55)),0)); + if($isComparable($arg0_56.getType(), M_ParseTree.ADT_Symbol)){ + ValueRef y_3 = new ValueRef(); + IValue $arg1_53 = (IValue)($aadt_subscript_int(((IConstructor)($VISIT5_subject)),1)); + if($isComparable($arg1_53.getType(), $T10)){ + final IList $subject54 = ((IList)($arg1_53)); + int $subject54_cursor = 0; + if($isSubtypeOf($subject54.getType(),$T10)){ + final int $subject54_len = (int)((IList)($subject54)).length(); + if($subject54_len == 1){ + if($subject54_cursor < $subject54_len){ + IConstructor x_4 = ((IConstructor)($alist_subscript_int(((IList)($subject54)),$subject54_cursor))); + $subject54_cursor += 1; + if($subject54_cursor == $subject54_len){ + IValue $arg2_52 = (IValue)($aadt_subscript_int(((IConstructor)($VISIT5_subject)),2)); + if($isComparable($arg2_52.getType(), $T4)){ + ValueRef as_5 = new ValueRef(); + IConstructor $replacement51 = (IConstructor)($RVF.constructor(M_ParseTree.Production_prod_Symbol_list_Symbol_set_Attr, new IValue[]{((IConstructor)($RVF.constructor(M_ParseTree.Symbol_start_Symbol, new IValue[]{((IConstructor)($arg0_56))}))), ((IList)($RVF.list(l_1.getValue(), x_4, l_1.getValue()))), ((ISet)($arg2_52))})); + if($isSubtypeOf($replacement51.getType(),$VISIT5_subject.getType())){ + $traversalState.setMatchedAndChanged(true, true); + return $replacement51; + + } else { + break VISIT5;// switch + + } + } + + } else { + continue CASE_110389984_0;/*list match1*/ + } + } + + } + + } + + } + + } + + } + + } + + } + + } while(false); + + } + if($isSubtypeOf($VISIT5_subject.getType(),M_ParseTree.ADT_Production)){ + /*muExists*/CASE_110389984_1: + do { + if($has_type_and_arity($VISIT5_subject, M_ParseTree.Production_prod_Symbol_list_Symbol_set_Attr, 3)){ + IValue $arg0_60 = (IValue)($aadt_subscript_int(((IConstructor)($VISIT5_subject)),0)); + if($isComparable($arg0_60.getType(), M_ParseTree.ADT_Symbol)){ + if($has_type_and_arity($arg0_60, M_ParseTree.Symbol_sort_str, 1)){ + IValue $arg0_61 = (IValue)($aadt_subscript_int(((IConstructor)($arg0_60)),0)); + if($isComparable($arg0_61.getType(), $T3)){ + IString s_6 = ((IString)($arg0_61)); + IValue $arg1_59 = (IValue)($aadt_subscript_int(((IConstructor)($VISIT5_subject)),1)); + if($isComparable($arg1_59.getType(), $T0)){ + IList lhs_7 = ((IList)($arg1_59)); + IValue $arg2_58 = (IValue)($aadt_subscript_int(((IConstructor)($VISIT5_subject)),2)); + if($isComparable($arg2_58.getType(), $T4)){ + ISet as_8 = ((ISet)($arg2_58)); + IConstructor $replacement57 = (IConstructor)($RVF.constructor(M_ParseTree.Production_prod_Symbol_list_Symbol_set_Attr, new IValue[]{((IConstructor)($RVF.constructor(M_ParseTree.Symbol_sort_str, new IValue[]{((IString)($arg0_61))}))), ((IList)($me.intermix(((IList)($arg1_59)), l_1.getValue(), others_2.getValue()))), ((ISet)($arg2_58))})); + if($isSubtypeOf($replacement57.getType(),$VISIT5_subject.getType())){ + $traversalState.setMatchedAndChanged(true, true); + return $replacement57; + + } else { + break VISIT5;// switch + + } + } + + } + + } + + } + + } + + } + + } while(false); + + } + if($isSubtypeOf($VISIT5_subject.getType(),M_ParseTree.ADT_Production)){ + /*muExists*/CASE_110389984_2: + do { + if($has_type_and_arity($VISIT5_subject, M_ParseTree.Production_prod_Symbol_list_Symbol_set_Attr, 3)){ + IValue $arg0_65 = (IValue)($aadt_subscript_int(((IConstructor)($VISIT5_subject)),0)); + if($isComparable($arg0_65.getType(), M_ParseTree.ADT_Symbol)){ + if($has_type_and_arity($arg0_65, M_ParseTree.Symbol_parameterized_sort_str_list_Symbol, 2)){ + IValue $arg0_67 = (IValue)($aadt_subscript_int(((IConstructor)($arg0_65)),0)); + if($isComparable($arg0_67.getType(), $T3)){ + IString s_9 = ((IString)($arg0_67)); + IValue $arg1_66 = (IValue)($aadt_subscript_int(((IConstructor)($arg0_65)),1)); + if($isComparable($arg1_66.getType(), $T0)){ + IList n_10 = ((IList)($arg1_66)); + IValue $arg1_64 = (IValue)($aadt_subscript_int(((IConstructor)($VISIT5_subject)),1)); + if($isComparable($arg1_64.getType(), $T0)){ + IList lhs_11 = ((IList)($arg1_64)); + IValue $arg2_63 = (IValue)($aadt_subscript_int(((IConstructor)($VISIT5_subject)),2)); + if($isComparable($arg2_63.getType(), $T4)){ + ISet as_12 = ((ISet)($arg2_63)); + IConstructor $replacement62 = (IConstructor)($RVF.constructor(M_ParseTree.Production_prod_Symbol_list_Symbol_set_Attr, new IValue[]{((IConstructor)($RVF.constructor(M_ParseTree.Symbol_parameterized_sort_str_list_Symbol, new IValue[]{((IString)($arg0_67)), ((IList)($arg1_66))}))), ((IList)($me.intermix(((IList)($arg1_64)), l_1.getValue(), others_2.getValue()))), ((ISet)($arg2_63))})); + if($isSubtypeOf($replacement62.getType(),$VISIT5_subject.getType())){ + $traversalState.setMatchedAndChanged(true, true); + return $replacement62; + + } else { + break VISIT5;// switch + + } + } + + } + + } + + } + + } + + } + + } + + } while(false); + + } + if($isSubtypeOf($VISIT5_subject.getType(),M_ParseTree.ADT_Production)){ + /*muExists*/CASE_110389984_3: + do { + if($has_type_and_arity($VISIT5_subject, M_ParseTree.Production_prod_Symbol_list_Symbol_set_Attr, 3)){ + IValue $arg0_71 = (IValue)($aadt_subscript_int(((IConstructor)($VISIT5_subject)),0)); + if($isComparable($arg0_71.getType(), M_ParseTree.ADT_Symbol)){ + if($has_type_and_arity($arg0_71, M_Type.Symbol_label_str_Symbol, 2)){ + IValue $arg0_74 = (IValue)($aadt_subscript_int(((IConstructor)($arg0_71)),0)); + if($isComparable($arg0_74.getType(), $T3)){ + IString t_13 = ((IString)($arg0_74)); + IValue $arg1_72 = (IValue)($aadt_subscript_int(((IConstructor)($arg0_71)),1)); + if($isComparable($arg1_72.getType(), M_ParseTree.ADT_Symbol)){ + if($has_type_and_arity($arg1_72, M_ParseTree.Symbol_sort_str, 1)){ + IValue $arg0_73 = (IValue)($aadt_subscript_int(((IConstructor)($arg1_72)),0)); + if($isComparable($arg0_73.getType(), $T3)){ + IString s_14 = ((IString)($arg0_73)); + IValue $arg1_70 = (IValue)($aadt_subscript_int(((IConstructor)($VISIT5_subject)),1)); + if($isComparable($arg1_70.getType(), $T0)){ + IList lhs_15 = ((IList)($arg1_70)); + IValue $arg2_69 = (IValue)($aadt_subscript_int(((IConstructor)($VISIT5_subject)),2)); + if($isComparable($arg2_69.getType(), $T4)){ + ISet as_16 = ((ISet)($arg2_69)); + IConstructor $replacement68 = (IConstructor)($RVF.constructor(M_ParseTree.Production_prod_Symbol_list_Symbol_set_Attr, new IValue[]{((IConstructor)($RVF.constructor(M_Type.Symbol_label_str_Symbol, new IValue[]{((IString)($arg0_74)), ((IConstructor)($RVF.constructor(M_ParseTree.Symbol_sort_str, new IValue[]{((IString)($arg0_73))})))}))), ((IList)($me.intermix(((IList)($arg1_70)), l_1.getValue(), others_2.getValue()))), ((ISet)($arg2_69))})); + if($isSubtypeOf($replacement68.getType(),$VISIT5_subject.getType())){ + $traversalState.setMatchedAndChanged(true, true); + return $replacement68; + + } else { + break VISIT5;// switch + + } + } + + } + + } + + } + + } + + } + + } + + } + + } + + } while(false); + + } + if($isSubtypeOf($VISIT5_subject.getType(),M_ParseTree.ADT_Production)){ + /*muExists*/CASE_110389984_4: + do { + if($has_type_and_arity($VISIT5_subject, M_ParseTree.Production_prod_Symbol_list_Symbol_set_Attr, 3)){ + IValue $arg0_78 = (IValue)($aadt_subscript_int(((IConstructor)($VISIT5_subject)),0)); + if($isComparable($arg0_78.getType(), M_ParseTree.ADT_Symbol)){ + if($has_type_and_arity($arg0_78, M_Type.Symbol_label_str_Symbol, 2)){ + IValue $arg0_82 = (IValue)($aadt_subscript_int(((IConstructor)($arg0_78)),0)); + if($isComparable($arg0_82.getType(), $T3)){ + IString t_17 = ((IString)($arg0_82)); + IValue $arg1_79 = (IValue)($aadt_subscript_int(((IConstructor)($arg0_78)),1)); + if($isComparable($arg1_79.getType(), M_ParseTree.ADT_Symbol)){ + if($has_type_and_arity($arg1_79, M_ParseTree.Symbol_parameterized_sort_str_list_Symbol, 2)){ + IValue $arg0_81 = (IValue)($aadt_subscript_int(((IConstructor)($arg1_79)),0)); + if($isComparable($arg0_81.getType(), $T3)){ + IString s_18 = ((IString)($arg0_81)); + IValue $arg1_80 = (IValue)($aadt_subscript_int(((IConstructor)($arg1_79)),1)); + if($isComparable($arg1_80.getType(), $T0)){ + IList n_19 = ((IList)($arg1_80)); + IValue $arg1_77 = (IValue)($aadt_subscript_int(((IConstructor)($VISIT5_subject)),1)); + if($isComparable($arg1_77.getType(), $T0)){ + IList lhs_20 = ((IList)($arg1_77)); + IValue $arg2_76 = (IValue)($aadt_subscript_int(((IConstructor)($VISIT5_subject)),2)); + if($isComparable($arg2_76.getType(), $T4)){ + ISet as_21 = ((ISet)($arg2_76)); + IConstructor $replacement75 = (IConstructor)($RVF.constructor(M_ParseTree.Production_prod_Symbol_list_Symbol_set_Attr, new IValue[]{((IConstructor)($RVF.constructor(M_Type.Symbol_label_str_Symbol, new IValue[]{((IString)($arg0_82)), ((IConstructor)($RVF.constructor(M_ParseTree.Symbol_parameterized_sort_str_list_Symbol, new IValue[]{((IString)($arg0_81)), ((IList)($arg1_80))})))}))), ((IList)($me.intermix(((IList)($arg1_77)), l_1.getValue(), others_2.getValue()))), ((ISet)($arg2_76))})); + if($isSubtypeOf($replacement75.getType(),$VISIT5_subject.getType())){ + $traversalState.setMatchedAndChanged(true, true); + return $replacement75; + + } else { + break VISIT5;// switch + + } + } + + } + + } + + } + + } + + } + + } + + } + + } + + } + + } while(false); + + } + + + + } + return $VISIT5_subject; + }); + return (IConstructor)$visitResult; + + } catch (ReturnFromTraversalException e) { + return (IConstructor) e.getValue(); + } + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/lang/rascal/grammar/definition/Layout.rsc|(3616,540,<73,0>,<87,1>) + public IList lang_rascal_grammar_definition_Layout_intermix$06d1dda5e7a58de1(IList syms_0, IConstructor l_1, ISet others_2){ + + + if((((IBool)($equal(((IList)syms_0), ((IList)$constants.get(2)/*[]*/))))).getValue()){ + return ((IList)syms_0); + + } + final IListWriter $listwriter83 = (IListWriter)$RVF.listWriter(); + $LCOMP84_GEN3791: + for(IValue $elem86_for : ((IList)syms_0)){ + IConstructor $elem86 = (IConstructor) $elem86_for; + IConstructor sym_3 = ((IConstructor)($elem86)); + $listwriter83.append(($is(((IConstructor)sym_3),((IString)$constants.get(3)/*"layouts"*/)) ? sym_3 : $me.regulars(((IConstructor)sym_3), ((IConstructor)l_1), ((ISet)others_2)))); + + } + + syms_0 = ((IList)($listwriter83.done())); + others_2 = ((ISet)($aset_add_aset(((ISet)others_2),((ISet)($RVF.set(((IConstructor)l_1))))))); + WHILE7: + //WHILE7_BT: + while(true){ + WHILE7_BT: + do { + final IList $subject89 = ((IList)syms_0); + int $subject89_cursor = 0; + if($isSubtypeOf($subject89.getType(),$T0)){ + final int $subject89_len = (int)((IList)($subject89)).length(); + if($subject89_len >= 2){ + final int $pre_491_start = (int)$subject89_cursor; + WHILE7_BT_LIST_MVARpre: + + for(int $pre_491_len = 0; $pre_491_len <= $subject89_len - $pre_491_start - 2; $pre_491_len += 1){ + IList pre_4 = ((IList)($subject89.sublist($pre_491_start, $pre_491_len))); + $subject89_cursor = $pre_491_start + $pre_491_len; + if($subject89_cursor < $subject89_len){ + IConstructor sym1_5 = ((IConstructor)($alist_subscript_int(((IList)($subject89)),$subject89_cursor))); + $subject89_cursor += 1; + if($subject89_cursor < $subject89_len){ + IConstructor sym2_6 = ((IConstructor)($alist_subscript_int(((IList)($subject89)),$subject89_cursor))); + $subject89_cursor += 1; + final int $pst_790_start = (int)$subject89_cursor; + WHILE7_BT_LIST_MVARpre_VARsym1_VARsym2_MVARpst: + + for(int $pst_790_len = 0; $pst_790_len <= $subject89_len - $pst_790_start - 0; $pst_790_len += 1){ + IList pst_7 = ((IList)($subject89.sublist($pst_790_start, $pst_790_len))); + $subject89_cursor = $pst_790_start + $pst_790_len; + if($subject89_cursor == $subject89_len){ + if((((IBool)($RVF.bool(((ISet)others_2).contains(((IConstructor)sym1_5)))))).getValue()){ + continue WHILE7_BT_LIST_MVARpre_VARsym1_VARsym2_MVARpst; + } else { + if((((IBool)($RVF.bool(((ISet)others_2).contains(((IConstructor)sym2_6)))))).getValue()){ + continue WHILE7_BT_LIST_MVARpre_VARsym1_VARsym2_MVARpst; + } else { + final IListWriter $writer87 = (IListWriter)$RVF.listWriter(); + $listwriter_splice($writer87,pre_4); + $writer87.append(sym1_5); + $writer87.append(l_1); + $writer87.append(sym2_6); + $listwriter_splice($writer87,pst_7); + syms_0 = ((IList)($writer87.done())); + continue WHILE7; + + } + } + } else { + continue WHILE7_BT_LIST_MVARpre_VARsym1_VARsym2_MVARpst;/*list match1*/ + } + } + continue WHILE7_BT_LIST_MVARpre;/*computeFail*/ + + } else { + continue WHILE7_BT_LIST_MVARpre;/*computeFail*/ + } + } else { + continue WHILE7_BT_LIST_MVARpre;/*computeFail*/ + } + } + break WHILE7; // muBreak + + + } else { + break WHILE7; // muBreak + + } + } else { + break WHILE7; // muBreak + + } + //break WHILE7; //muWhileDo + } while(false); + + } + /* void: muCon([]) */return ((IList)syms_0); + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/lang/rascal/grammar/definition/Layout.rsc|(4158,308,<89,0>,<95,5>) + public IBool lang_rascal_grammar_definition_Layout_sepInOthers$77348538892e7a01(IConstructor sep_0, ISet others_1){ + + + if((((IBool)($RVF.bool(((ISet)others_1).contains(((IConstructor)sep_0)))))).getValue()){ + return ((IBool)$constants.get(4)/*true*/); + + } + /*muExists*/IF9: + do { + if($has_type_and_arity(sep_0, M_ParseTree.Symbol_seq_list_Symbol, 1)){ + IValue $arg0_94 = (IValue)($aadt_subscript_int(((IConstructor)sep_0),0)); + if($isComparable($arg0_94.getType(), $T0)){ + final IList $subject95 = ((IList)($arg0_94)); + int $subject95_cursor = 0; + if($isSubtypeOf($subject95.getType(),$T0)){ + final int $subject95_len = (int)((IList)($subject95)).length(); + if($subject95_len == 3){ + if($subject95_cursor < $subject95_len){ + IConstructor a_2 = ((IConstructor)($alist_subscript_int(((IList)($subject95)),$subject95_cursor))); + $subject95_cursor += 1; + if($subject95_cursor < $subject95_len){ + $subject95_cursor += 1; + if($subject95_cursor < $subject95_len){ + IConstructor b_3 = ((IConstructor)($alist_subscript_int(((IList)($subject95)),$subject95_cursor))); + $subject95_cursor += 1; + if($subject95_cursor == $subject95_len){ + if((((IBool)($RVF.bool(((ISet)others_1).contains(((IConstructor)a_2)))))).getValue()){ + return ((IBool)$constants.get(4)/*true*/); + + } else { + return ((IBool)($RVF.bool(((ISet)others_1).contains(((IConstructor)b_3))))); + + } + } else { + continue IF9;/*list match1*/ + } + } + + } + + } + + } + + } + + } + + } + + } while(false); + return ((IBool)$constants.get(5)/*false*/); + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/lang/rascal/grammar/definition/Layout.rsc|(4468,482,<97,0>,<105,1>) + public IConstructor lang_rascal_grammar_definition_Layout_regulars$602edae583c47845(IConstructor s_0, IConstructor $aux_l_1, ISet $aux_others_2){ + ValueRef l_1 = new ValueRef("l_1", $aux_l_1); + ValueRef others_2 = new ValueRef("others_2", $aux_others_2); + + + try { + IValue $visitResult = $TRAVERSE.traverse(DIRECTION.BottomUp, PROGRESS.Continuing, FIXEDPOINT.No, REBUILD.Yes, + new DescendantDescriptor(new io.usethesource.vallang.type.Type[]{$TF.listType(ADT_Symbol), M_Type.ADT_Exception, $TF.setType(ADT_Symbol), $TF.setType(ADT_Condition), M_lang_rascal_syntax_Rascal.ADT_KeywordArguments_1, M_ParseTree.ADT_Tree, M_ParseTree.ADT_TreeSearchResult_1, M_ParseTree.ADT_Condition, M_ParseTree.ADT_Production, M_ParseTree.ADT_Symbol, M_Grammar.ADT_Grammar, M_ParseTree.ADT_CharRange, M_Grammar.ADT_Item, M_Grammar.ADT_GrammarModule, $TF.listType(ADT_CharRange), M_Grammar.ADT_GrammarDefinition}, + new io.usethesource.vallang.IConstructor[]{}, + $RVF.bool(false)), + s_0, + (IVisitFunction) (IValue $VISIT10_subject, TraversalState $traversalState) -> { + VISIT10:switch(Fingerprint.getFingerprint($VISIT10_subject)){ + + case -964239440: + if($isSubtypeOf($VISIT10_subject.getType(),M_ParseTree.ADT_Symbol)){ + /*muExists*/CASE_964239440_3: + do { + if($has_type_and_arity($VISIT10_subject, M_ParseTree.Symbol_iter_star_seps_Symbol_list_Symbol, 2)){ + IValue $arg0_107 = (IValue)($aadt_subscript_int(((IConstructor)($VISIT10_subject)),0)); + if($isComparable($arg0_107.getType(), M_ParseTree.ADT_Symbol)){ + IConstructor n_7 = ((IConstructor)($arg0_107)); + IValue $arg1_105 = (IValue)($aadt_subscript_int(((IConstructor)($VISIT10_subject)),1)); + if($isComparable($arg1_105.getType(), $T11)){ + final IList $subject106 = ((IList)($arg1_105)); + int $subject106_cursor = 0; + if($isSubtypeOf($subject106.getType(),$T11)){ + final int $subject106_len = (int)((IList)($subject106)).length(); + if($subject106_len == 1){ + if($subject106_cursor < $subject106_len){ + IConstructor sep_8 = ((IConstructor)($alist_subscript_int(((IList)($subject106)),$subject106_cursor))); + $subject106_cursor += 1; + if($subject106_cursor == $subject106_len){ + if((((IBool)($me.sepInOthers(((IConstructor)sep_8), others_2.getValue())))).getValue()){ + + } else { + IConstructor $replacement104 = (IConstructor)($RVF.constructor(M_ParseTree.Symbol_iter_star_seps_Symbol_list_Symbol, new IValue[]{((IConstructor)($arg0_107)), ((IList)($RVF.list(l_1.getValue(), sep_8, l_1.getValue())))})); + if($isSubtypeOf($replacement104.getType(),$VISIT10_subject.getType())){ + $traversalState.setMatchedAndChanged(true, true); + return $replacement104; + + } else { + break VISIT10;// switch + + } + } + } else { + continue CASE_964239440_3;/*list match1*/ + } + } + + } + + } + + } + + } + + } + + } while(false); + + } + + + case 25942208: + if($isSubtypeOf($VISIT10_subject.getType(),M_ParseTree.ADT_Symbol)){ + /*muExists*/CASE_25942208_0: + do { + if($has_type_and_arity($VISIT10_subject, M_ParseTree.Symbol_iter_Symbol, 1)){ + IValue $arg0_97 = (IValue)($aadt_subscript_int(((IConstructor)($VISIT10_subject)),0)); + if($isComparable($arg0_97.getType(), M_ParseTree.ADT_Symbol)){ + ValueRef n_3 = new ValueRef(); + IConstructor $replacement96 = (IConstructor)($RVF.constructor(M_ParseTree.Symbol_iter_seps_Symbol_list_Symbol, new IValue[]{((IConstructor)($arg0_97)), ((IList)($RVF.list(l_1.getValue())))})); + if($isSubtypeOf($replacement96.getType(),$VISIT10_subject.getType())){ + $traversalState.setMatchedAndChanged(true, true); + return $replacement96; + + } else { + break VISIT10;// switch + + } + } + + } + + } while(false); + + } + + + case 910072: + if($isSubtypeOf($VISIT10_subject.getType(),M_ParseTree.ADT_Symbol)){ + /*muExists*/CASE_910072_4: + do { + if($has_type_and_arity($VISIT10_subject, M_ParseTree.Symbol_seq_list_Symbol, 1)){ + IValue $arg0_109 = (IValue)($aadt_subscript_int(((IConstructor)($VISIT10_subject)),0)); + if($isComparable($arg0_109.getType(), $T0)){ + IList elems_9 = ((IList)($arg0_109)); + IConstructor $replacement108 = (IConstructor)($RVF.constructor(M_ParseTree.Symbol_seq_list_Symbol, new IValue[]{((IList)($me.intermix(((IList)($arg0_109)), l_1.getValue(), others_2.getValue())))})); + if($isSubtypeOf($replacement108.getType(),$VISIT10_subject.getType())){ + $traversalState.setMatchedAndChanged(true, true); + return $replacement108; + + } else { + break VISIT10;// switch + + } + } + + } + + } while(false); + + } + + + case 826203960: + if($isSubtypeOf($VISIT10_subject.getType(),M_ParseTree.ADT_Symbol)){ + /*muExists*/CASE_826203960_1: + do { + if($has_type_and_arity($VISIT10_subject, M_ParseTree.Symbol_iter_star_Symbol, 1)){ + IValue $arg0_99 = (IValue)($aadt_subscript_int(((IConstructor)($VISIT10_subject)),0)); + if($isComparable($arg0_99.getType(), M_ParseTree.ADT_Symbol)){ + ValueRef n_4 = new ValueRef(); + IConstructor $replacement98 = (IConstructor)($RVF.constructor(M_ParseTree.Symbol_iter_star_seps_Symbol_list_Symbol, new IValue[]{((IConstructor)($arg0_99)), ((IList)($RVF.list(l_1.getValue())))})); + if($isSubtypeOf($replacement98.getType(),$VISIT10_subject.getType())){ + $traversalState.setMatchedAndChanged(true, true); + return $replacement98; + + } else { + break VISIT10;// switch + + } + } + + } + + } while(false); + + } + + + case 1652184736: + if($isSubtypeOf($VISIT10_subject.getType(),M_ParseTree.ADT_Symbol)){ + /*muExists*/CASE_1652184736_2: + do { + if($has_type_and_arity($VISIT10_subject, M_ParseTree.Symbol_iter_seps_Symbol_list_Symbol, 2)){ + IValue $arg0_103 = (IValue)($aadt_subscript_int(((IConstructor)($VISIT10_subject)),0)); + if($isComparable($arg0_103.getType(), M_ParseTree.ADT_Symbol)){ + IConstructor n_5 = ((IConstructor)($arg0_103)); + IValue $arg1_101 = (IValue)($aadt_subscript_int(((IConstructor)($VISIT10_subject)),1)); + if($isComparable($arg1_101.getType(), $T11)){ + final IList $subject102 = ((IList)($arg1_101)); + int $subject102_cursor = 0; + if($isSubtypeOf($subject102.getType(),$T11)){ + final int $subject102_len = (int)((IList)($subject102)).length(); + if($subject102_len == 1){ + if($subject102_cursor < $subject102_len){ + IConstructor sep_6 = ((IConstructor)($alist_subscript_int(((IList)($subject102)),$subject102_cursor))); + $subject102_cursor += 1; + if($subject102_cursor == $subject102_len){ + if((((IBool)($me.sepInOthers(((IConstructor)sep_6), others_2.getValue())))).getValue()){ + + } else { + IConstructor $replacement100 = (IConstructor)($RVF.constructor(M_ParseTree.Symbol_iter_seps_Symbol_list_Symbol, new IValue[]{((IConstructor)($arg0_103)), ((IList)($RVF.list(l_1.getValue(), sep_6, l_1.getValue())))})); + if($isSubtypeOf($replacement100.getType(),$VISIT10_subject.getType())){ + $traversalState.setMatchedAndChanged(true, true); + return $replacement100; + + } else { + break VISIT10;// switch + + } + } + } else { + continue CASE_1652184736_2;/*list match1*/ + } + } + + } + + } + + } + + } + + } + + } while(false); + + } + + + + } + return $VISIT10_subject; + }); + return (IConstructor)$visitResult; + + } catch (ReturnFromTraversalException e) { + return (IConstructor) e.getValue(); + } + + } + + + public static void main(String[] args) { + throw new RuntimeException("No function `main` found in Rascal module `lang::rascal::grammar::definition::Layout`"); + } +} \ No newline at end of file diff --git a/src/rascal/lang/rascal/grammar/definition/$Layout.tpl b/src/rascal/lang/rascal/grammar/definition/$Layout.tpl new file mode 100644 index 00000000000..acb0a709cf3 Binary files /dev/null and b/src/rascal/lang/rascal/grammar/definition/$Layout.tpl differ diff --git a/src/rascal/lang/rascal/grammar/definition/$Layout_$I.java b/src/rascal/lang/rascal/grammar/definition/$Layout_$I.java new file mode 100644 index 00000000000..847ed68a699 --- /dev/null +++ b/src/rascal/lang/rascal/grammar/definition/$Layout_$I.java @@ -0,0 +1,14 @@ +package rascal.lang.rascal.grammar.definition; +import io.usethesource.vallang.*; +import org.rascalmpl.runtime.function.*; + +@SuppressWarnings("unused") +public interface $Layout_$I { + IValue activeLayout(IValue $0, IValue $1, IValue $2); + IValue allLayouts(IValue $0, IValue $1); + IValue intermix(IValue $0, IValue $1, IValue $2); + IValue layouts(IValue $0, IValue $1, IValue $2); + IValue layouts(IValue $0); + IValue regulars(IValue $0, IValue $1, IValue $2); + IValue sepInOthers(IValue $0, IValue $1); +} \ No newline at end of file diff --git a/src/rascal/lang/rascal/grammar/definition/$Literals.constants b/src/rascal/lang/rascal/grammar/definition/$Literals.constants new file mode 100644 index 00000000000..73a255a409b Binary files /dev/null and b/src/rascal/lang/rascal/grammar/definition/$Literals.constants differ diff --git a/src/rascal/lang/rascal/grammar/definition/$Literals.java b/src/rascal/lang/rascal/grammar/definition/$Literals.java new file mode 100644 index 00000000000..2a7a591784d --- /dev/null +++ b/src/rascal/lang/rascal/grammar/definition/$Literals.java @@ -0,0 +1,1745 @@ +package rascal.lang.rascal.grammar.definition; +import java.io.PrintWriter; +import java.io.StringWriter; +import java.io.InputStreamReader; +import java.io.PrintWriter; +import java.util.*; +import java.util.regex.Matcher; +import io.usethesource.vallang.*; +import io.usethesource.vallang.type.*; +import org.rascalmpl.runtime.*; +import org.rascalmpl.runtime.RascalExecutionContext; +import org.rascalmpl.runtime.function.*; +import org.rascalmpl.runtime.traverse.*; +import org.rascalmpl.runtime.utils.*; +import org.rascalmpl.exceptions.RuntimeExceptionFactory; +import org.rascalmpl.exceptions.Throw; +import org.rascalmpl.runtime.RascalExecutionContext; +import org.rascalmpl.interpreter.control_exceptions.Filtered; +import org.rascalmpl.types.NonTerminalType; +import org.rascalmpl.types.RascalTypeFactory; +import org.rascalmpl.util.ExpiringFunctionResultCache; +import org.rascalmpl.values.RascalValueFactory; +import org.rascalmpl.values.ValueFactoryFactory; +import org.rascalmpl.values.parsetrees.ITree; +import org.rascalmpl.values.parsetrees.TreeAdapter; + + + +@SuppressWarnings({"unused","unchecked","deprecation"}) +public class $Literals + extends + org.rascalmpl.runtime.$RascalModule + implements + rascal.lang.rascal.grammar.definition.$Literals_$I { + + private final $Literals_$I $me; + private final IList $constants; + + + public final rascal.lang.rascal.syntax.$Rascal M_lang_rascal_syntax_Rascal; + public final rascal.$Exception M_Exception; + public final rascal.$Type M_Type; + public final rascal.$List M_List; + public final rascal.$Grammar M_Grammar; + public final rascal.$Message M_Message; + public final rascal.$String M_String; + public final rascal.$ParseTree M_ParseTree; + + + + public final io.usethesource.vallang.type.Type $T2; /*avalue()*/ + public final io.usethesource.vallang.type.Type $T3; /*aparameter("T",avalue(),closed=false)*/ + public final io.usethesource.vallang.type.Type $T0; /*astr()*/ + public final io.usethesource.vallang.type.Type ADT_PostProtocolChars; /*aadt("PostProtocolChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_PostProtocolChars; /*aadt("PostProtocolChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_ProtocolChars; /*aadt("ProtocolChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_ProtocolChars; /*aadt("ProtocolChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Visibility; /*aadt("Visibility",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Visibility; /*aadt("Visibility",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_FunctionType; /*aadt("FunctionType",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_FunctionType; /*aadt("FunctionType",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Attr; /*aadt("Attr",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Expression; /*aadt("Expression",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Expression; /*aadt("Expression",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Mapping_Expression; /*aadt("Mapping",[aadt("Expression",[],contextFreeSyntax())],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Mapping_Expression; /*aadt("Mapping",[aadt("Expression",[],contextFreeSyntax())],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Strategy; /*aadt("Strategy",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Strategy; /*aadt("Strategy",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Tree; /*aadt("Tree",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type $T4; /*aparameter("T",aadt("Tree",[],dataSyntax()),closed=true)*/ + public final io.usethesource.vallang.type.Type ADT_KeywordArguments_1; /*aadt("KeywordArguments",[aparameter("T",aadt("Tree",[],dataSyntax()),closed=true)],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_KeywordArguments_1; /*aadt("KeywordArguments",[aparameter("T",aadt("Tree",[],dataSyntax()),closed=true)],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_MidStringChars; /*aadt("MidStringChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_MidStringChars; /*aadt("MidStringChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_LocationChangeType; /*aadt("LocationChangeType",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_IOCapability; /*aadt("IOCapability",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Name; /*aadt("Name",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Name; /*aadt("Name",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_TagString; /*aadt("TagString",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_TagString; /*aadt("TagString",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Concrete; /*aadt("Concrete",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Concrete; /*aadt("Concrete",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Replacement; /*aadt("Replacement",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Replacement; /*aadt("Replacement",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Range; /*aadt("Range",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Range; /*aadt("Range",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_LAYOUT; /*aadt("LAYOUT",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_LAYOUT; /*aadt("LAYOUT",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Pattern; /*aadt("Pattern",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Pattern; /*aadt("Pattern",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Mapping_Pattern; /*aadt("Mapping",[aadt("Pattern",[],contextFreeSyntax())],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Mapping_Pattern; /*aadt("Mapping",[aadt("Pattern",[],contextFreeSyntax())],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Item; /*aadt("Item",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_RationalLiteral; /*aadt("RationalLiteral",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_RationalLiteral; /*aadt("RationalLiteral",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_RegExpLiteral; /*aadt("RegExpLiteral",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_RegExpLiteral; /*aadt("RegExpLiteral",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Declarator; /*aadt("Declarator",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Declarator; /*aadt("Declarator",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_GrammarModule; /*aadt("GrammarModule",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_ModuleParameters; /*aadt("ModuleParameters",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_ModuleParameters; /*aadt("ModuleParameters",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type $T5; /*aparameter("T",aadt("Tree",[],dataSyntax()),closed=false)*/ + public final io.usethesource.vallang.type.Type ADT_SyntaxDefinition; /*aadt("SyntaxDefinition",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_SyntaxDefinition; /*aadt("SyntaxDefinition",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_DatePart; /*aadt("DatePart",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_DatePart; /*aadt("DatePart",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Output; /*aadt("Output",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Output; /*aadt("Output",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_ImportedModule; /*aadt("ImportedModule",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_ImportedModule; /*aadt("ImportedModule",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Case; /*aadt("Case",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Case; /*aadt("Case",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_LocalVariableDeclaration; /*aadt("LocalVariableDeclaration",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_LocalVariableDeclaration; /*aadt("LocalVariableDeclaration",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_BooleanLiteral; /*aadt("BooleanLiteral",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_BooleanLiteral; /*aadt("BooleanLiteral",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Target; /*aadt("Target",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Target; /*aadt("Target",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_IntegerLiteral; /*aadt("IntegerLiteral",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_IntegerLiteral; /*aadt("IntegerLiteral",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_KeywordArguments_Expression; /*aadt("KeywordArguments",[aadt("Expression",[],contextFreeSyntax())],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_KeywordArguments_Expression; /*aadt("KeywordArguments",[aadt("Expression",[],contextFreeSyntax())],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Mapping_1; /*aadt("Mapping",[aparameter("T",aadt("Tree",[],dataSyntax()),closed=true)],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Mapping_1; /*aadt("Mapping",[aparameter("T",aadt("Tree",[],dataSyntax()),closed=true)],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_TimePartNoTZ; /*aadt("TimePartNoTZ",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_TimePartNoTZ; /*aadt("TimePartNoTZ",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Renaming; /*aadt("Renaming",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Renaming; /*aadt("Renaming",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_KeywordFormals; /*aadt("KeywordFormals",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_KeywordFormals; /*aadt("KeywordFormals",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Catch; /*aadt("Catch",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Catch; /*aadt("Catch",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Production; /*aadt("Production",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_PostStringChars; /*aadt("PostStringChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_PostStringChars; /*aadt("PostStringChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_OptionalExpression; /*aadt("OptionalExpression",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_OptionalExpression; /*aadt("OptionalExpression",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Renamings; /*aadt("Renamings",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Renamings; /*aadt("Renamings",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_GrammarDefinition; /*aadt("GrammarDefinition",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_DataTarget; /*aadt("DataTarget",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_DataTarget; /*aadt("DataTarget",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_LocationLiteral; /*aadt("LocationLiteral",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_LocationLiteral; /*aadt("LocationLiteral",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Field; /*aadt("Field",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Field; /*aadt("Field",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Tag; /*aadt("Tag",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Tag; /*aadt("Tag",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Type; /*aadt("Type",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Type; /*aadt("Type",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Symbol; /*aadt("Symbol",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_TimeZonePart; /*aadt("TimeZonePart",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_TimeZonePart; /*aadt("TimeZonePart",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_HexIntegerLiteral; /*aadt("HexIntegerLiteral",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_HexIntegerLiteral; /*aadt("HexIntegerLiteral",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Declaration; /*aadt("Declaration",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Declaration; /*aadt("Declaration",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_ShellCommand; /*aadt("ShellCommand",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_ShellCommand; /*aadt("ShellCommand",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_FunctionBody; /*aadt("FunctionBody",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_FunctionBody; /*aadt("FunctionBody",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_PreStringChars; /*aadt("PreStringChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_PreStringChars; /*aadt("PreStringChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Nonterminal; /*aadt("Nonterminal",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Nonterminal; /*aadt("Nonterminal",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type $T1; /*alist(aparameter("T",avalue(),closed=false))*/ + public final io.usethesource.vallang.type.Type ADT_StringLiteral; /*aadt("StringLiteral",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_StringLiteral; /*aadt("StringLiteral",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_KeywordArguments_Pattern; /*aadt("KeywordArguments",[aadt("Pattern",[],contextFreeSyntax())],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_KeywordArguments_Pattern; /*aadt("KeywordArguments",[aadt("Pattern",[],contextFreeSyntax())],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_NonterminalLabel; /*aadt("NonterminalLabel",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_NonterminalLabel; /*aadt("NonterminalLabel",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Variable; /*aadt("Variable",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Variable; /*aadt("Variable",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Bound; /*aadt("Bound",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Bound; /*aadt("Bound",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_TypeArg; /*aadt("TypeArg",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_TypeArg; /*aadt("TypeArg",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_RegExp; /*aadt("RegExp",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_RegExp; /*aadt("RegExp",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_KeywordArgument_1; /*aadt("KeywordArgument",[aparameter("T",aadt("Tree",[],dataSyntax()),closed=true)],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_KeywordArgument_1; /*aadt("KeywordArgument",[aparameter("T",aadt("Tree",[],dataSyntax()),closed=true)],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_PathPart; /*aadt("PathPart",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_PathPart; /*aadt("PathPart",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Associativity; /*aadt("Associativity",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Signature; /*aadt("Signature",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Signature; /*aadt("Signature",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_KeywordFormal; /*aadt("KeywordFormal",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_KeywordFormal; /*aadt("KeywordFormal",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_ModuleActuals; /*aadt("ModuleActuals",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_ModuleActuals; /*aadt("ModuleActuals",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Tags; /*aadt("Tags",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Tags; /*aadt("Tags",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Condition; /*aadt("Condition",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_URLChars; /*aadt("URLChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_URLChars; /*aadt("URLChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Class; /*aadt("Class",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Class; /*aadt("Class",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_PrePathChars; /*aadt("PrePathChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_PrePathChars; /*aadt("PrePathChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Start; /*aadt("Start",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Start; /*aadt("Start",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_StringConstant; /*aadt("StringConstant",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_StringConstant; /*aadt("StringConstant",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_OptionalComma; /*aadt("OptionalComma",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_OptionalComma; /*aadt("OptionalComma",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_FunctionDeclaration; /*aadt("FunctionDeclaration",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_FunctionDeclaration; /*aadt("FunctionDeclaration",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Char; /*aadt("Char",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Char; /*aadt("Char",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_StringTail; /*aadt("StringTail",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_StringTail; /*aadt("StringTail",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_DataTypeSelector; /*aadt("DataTypeSelector",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_DataTypeSelector; /*aadt("DataTypeSelector",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_CaseInsensitiveStringConstant; /*aadt("CaseInsensitiveStringConstant",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_CaseInsensitiveStringConstant; /*aadt("CaseInsensitiveStringConstant",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Body; /*aadt("Body",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Body; /*aadt("Body",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_PatternWithAction; /*aadt("PatternWithAction",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_PatternWithAction; /*aadt("PatternWithAction",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Exception; /*aadt("Exception",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_PostPathChars; /*aadt("PostPathChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_PostPathChars; /*aadt("PostPathChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Module; /*aadt("Module",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Module; /*aadt("Module",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_StringCharacter; /*aadt("StringCharacter",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_StringCharacter; /*aadt("StringCharacter",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_JustDate; /*aadt("JustDate",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_JustDate; /*aadt("JustDate",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_TypeVar; /*aadt("TypeVar",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_TypeVar; /*aadt("TypeVar",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Header; /*aadt("Header",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Header; /*aadt("Header",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_LocationType; /*aadt("LocationType",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Assignment; /*aadt("Assignment",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Assignment; /*aadt("Assignment",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_UserType; /*aadt("UserType",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_UserType; /*aadt("UserType",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_CharRange; /*aadt("CharRange",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Import; /*aadt("Import",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Import; /*aadt("Import",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Variant; /*aadt("Variant",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Variant; /*aadt("Variant",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Comprehension; /*aadt("Comprehension",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Comprehension; /*aadt("Comprehension",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_TreeSearchResult_1; /*aadt("TreeSearchResult",[aparameter("T",aadt("Tree",[],dataSyntax()),closed=true)],dataSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_LAYOUTLIST; /*aadt("LAYOUTLIST",[],layoutSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Message; /*aadt("Message",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_ConcreteHole; /*aadt("ConcreteHole",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_ConcreteHole; /*aadt("ConcreteHole",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Grammar; /*aadt("Grammar",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_StringMiddle; /*aadt("StringMiddle",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_StringMiddle; /*aadt("StringMiddle",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Sym; /*aadt("Sym",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Sym; /*aadt("Sym",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_DateAndTime; /*aadt("DateAndTime",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_DateAndTime; /*aadt("DateAndTime",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_RealLiteral; /*aadt("RealLiteral",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_RealLiteral; /*aadt("RealLiteral",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Backslash; /*aadt("Backslash",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Backslash; /*aadt("Backslash",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Formals; /*aadt("Formals",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Formals; /*aadt("Formals",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_FunctionModifiers; /*aadt("FunctionModifiers",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_FunctionModifiers; /*aadt("FunctionModifiers",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_MidPathChars; /*aadt("MidPathChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_MidPathChars; /*aadt("MidPathChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_QualifiedName; /*aadt("QualifiedName",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_QualifiedName; /*aadt("QualifiedName",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_MidProtocolChars; /*aadt("MidProtocolChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_MidProtocolChars; /*aadt("MidProtocolChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_RascalKeywords; /*aadt("RascalKeywords",[],keywordSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_PathTail; /*aadt("PathTail",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_PathTail; /*aadt("PathTail",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Parameters; /*aadt("Parameters",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Parameters; /*aadt("Parameters",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_PreProtocolChars; /*aadt("PreProtocolChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_PreProtocolChars; /*aadt("PreProtocolChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_StringTemplate; /*aadt("StringTemplate",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_StringTemplate; /*aadt("StringTemplate",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_OctalIntegerLiteral; /*aadt("OctalIntegerLiteral",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_OctalIntegerLiteral; /*aadt("OctalIntegerLiteral",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_ProtocolPart; /*aadt("ProtocolPart",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_ProtocolPart; /*aadt("ProtocolPart",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_NamedBackslash; /*aadt("NamedBackslash",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_NamedBackslash; /*aadt("NamedBackslash",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Label; /*aadt("Label",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Label; /*aadt("Label",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Kind; /*aadt("Kind",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Kind; /*aadt("Kind",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_LocationChangeEvent; /*aadt("LocationChangeEvent",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_RegExpModifier; /*aadt("RegExpModifier",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_RegExpModifier; /*aadt("RegExpModifier",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Prod; /*aadt("Prod",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Prod; /*aadt("Prod",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_RuntimeException; /*aadt("RuntimeException",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_NamedRegExp; /*aadt("NamedRegExp",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_NamedRegExp; /*aadt("NamedRegExp",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_DecimalIntegerLiteral; /*aadt("DecimalIntegerLiteral",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_DecimalIntegerLiteral; /*aadt("DecimalIntegerLiteral",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Assoc; /*aadt("Assoc",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Assoc; /*aadt("Assoc",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_DateTimeLiteral; /*aadt("DateTimeLiteral",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_DateTimeLiteral; /*aadt("DateTimeLiteral",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_EvalCommand; /*aadt("EvalCommand",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_EvalCommand; /*aadt("EvalCommand",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_PathChars; /*aadt("PathChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_PathChars; /*aadt("PathChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_JustTime; /*aadt("JustTime",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_JustTime; /*aadt("JustTime",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_FunctionModifier; /*aadt("FunctionModifier",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_FunctionModifier; /*aadt("FunctionModifier",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_ProdModifier; /*aadt("ProdModifier",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_ProdModifier; /*aadt("ProdModifier",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Statement; /*aadt("Statement",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Statement; /*aadt("Statement",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_ConcretePart; /*aadt("ConcretePart",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_ConcretePart; /*aadt("ConcretePart",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Literal; /*aadt("Literal",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Literal; /*aadt("Literal",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Toplevel; /*aadt("Toplevel",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Toplevel; /*aadt("Toplevel",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Comment; /*aadt("Comment",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Comment; /*aadt("Comment",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Commands; /*aadt("Commands",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Commands; /*aadt("Commands",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_StructuredType; /*aadt("StructuredType",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_StructuredType; /*aadt("StructuredType",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Visit; /*aadt("Visit",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Visit; /*aadt("Visit",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Command; /*aadt("Command",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Command; /*aadt("Command",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Assignable; /*aadt("Assignable",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Assignable; /*aadt("Assignable",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_UnicodeEscape; /*aadt("UnicodeEscape",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_UnicodeEscape; /*aadt("UnicodeEscape",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_BasicType; /*aadt("BasicType",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_BasicType; /*aadt("BasicType",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_CommonKeywordParameters; /*aadt("CommonKeywordParameters",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_CommonKeywordParameters; /*aadt("CommonKeywordParameters",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_ProtocolTail; /*aadt("ProtocolTail",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_ProtocolTail; /*aadt("ProtocolTail",[],contextFreeSyntax())*/ + + public $Literals(RascalExecutionContext rex){ + this(rex, null); + } + + public $Literals(RascalExecutionContext rex, Object extended){ + super(rex); + this.$me = extended == null ? this : ($Literals_$I)extended; + ModuleStore mstore = rex.getModuleStore(); + mstore.put(rascal.lang.rascal.grammar.definition.$Literals.class, this); + + mstore.importModule(rascal.lang.rascal.syntax.$Rascal.class, rex, rascal.lang.rascal.syntax.$Rascal::new); + mstore.importModule(rascal.$Exception.class, rex, rascal.$Exception::new); + mstore.importModule(rascal.$Type.class, rex, rascal.$Type::new); + mstore.importModule(rascal.$List.class, rex, rascal.$List::new); + mstore.importModule(rascal.$Grammar.class, rex, rascal.$Grammar::new); + mstore.importModule(rascal.$Message.class, rex, rascal.$Message::new); + mstore.importModule(rascal.$String.class, rex, rascal.$String::new); + mstore.importModule(rascal.$ParseTree.class, rex, rascal.$ParseTree::new); + + M_lang_rascal_syntax_Rascal = mstore.getModule(rascal.lang.rascal.syntax.$Rascal.class); + M_Exception = mstore.getModule(rascal.$Exception.class); + M_Type = mstore.getModule(rascal.$Type.class); + M_List = mstore.getModule(rascal.$List.class); + M_Grammar = mstore.getModule(rascal.$Grammar.class); + M_Message = mstore.getModule(rascal.$Message.class); + M_String = mstore.getModule(rascal.$String.class); + M_ParseTree = mstore.getModule(rascal.$ParseTree.class); + + + + $TS.importStore(M_lang_rascal_syntax_Rascal.$TS); + $TS.importStore(M_Exception.$TS); + $TS.importStore(M_Type.$TS); + $TS.importStore(M_List.$TS); + $TS.importStore(M_Grammar.$TS); + $TS.importStore(M_Message.$TS); + $TS.importStore(M_String.$TS); + $TS.importStore(M_ParseTree.$TS); + + $constants = readBinaryConstantsFile(this.getClass(), "rascal/lang/rascal/grammar/definition/$Literals.constants", 25, "91c33619d90ec2b18e2e9ff4d2adcbee"); + NT_PostProtocolChars = $lex("PostProtocolChars"); + ADT_PostProtocolChars = $adt("PostProtocolChars"); + NT_ProtocolChars = $lex("ProtocolChars"); + ADT_ProtocolChars = $adt("ProtocolChars"); + NT_Visibility = $sort("Visibility"); + ADT_Visibility = $adt("Visibility"); + NT_FunctionType = $sort("FunctionType"); + ADT_FunctionType = $adt("FunctionType"); + ADT_Attr = $adt("Attr"); + NT_Expression = $sort("Expression"); + ADT_Expression = $adt("Expression"); + NT_Strategy = $sort("Strategy"); + ADT_Strategy = $adt("Strategy"); + ADT_Tree = $adt("Tree"); + NT_MidStringChars = $lex("MidStringChars"); + ADT_MidStringChars = $adt("MidStringChars"); + ADT_LocationChangeType = $adt("LocationChangeType"); + ADT_IOCapability = $adt("IOCapability"); + NT_Name = $lex("Name"); + ADT_Name = $adt("Name"); + NT_TagString = $lex("TagString"); + ADT_TagString = $adt("TagString"); + NT_Concrete = $lex("Concrete"); + ADT_Concrete = $adt("Concrete"); + NT_Replacement = $sort("Replacement"); + ADT_Replacement = $adt("Replacement"); + NT_Range = $sort("Range"); + ADT_Range = $adt("Range"); + NT_LAYOUT = $lex("LAYOUT"); + ADT_LAYOUT = $adt("LAYOUT"); + NT_Pattern = $sort("Pattern"); + ADT_Pattern = $adt("Pattern"); + ADT_Item = $adt("Item"); + NT_RationalLiteral = $lex("RationalLiteral"); + ADT_RationalLiteral = $adt("RationalLiteral"); + NT_RegExpLiteral = $lex("RegExpLiteral"); + ADT_RegExpLiteral = $adt("RegExpLiteral"); + NT_Declarator = $sort("Declarator"); + ADT_Declarator = $adt("Declarator"); + ADT_GrammarModule = $adt("GrammarModule"); + NT_ModuleParameters = $sort("ModuleParameters"); + ADT_ModuleParameters = $adt("ModuleParameters"); + NT_SyntaxDefinition = $sort("SyntaxDefinition"); + ADT_SyntaxDefinition = $adt("SyntaxDefinition"); + NT_DatePart = $lex("DatePart"); + ADT_DatePart = $adt("DatePart"); + NT_Output = $lex("Output"); + ADT_Output = $adt("Output"); + NT_ImportedModule = $sort("ImportedModule"); + ADT_ImportedModule = $adt("ImportedModule"); + NT_Case = $sort("Case"); + ADT_Case = $adt("Case"); + NT_LocalVariableDeclaration = $sort("LocalVariableDeclaration"); + ADT_LocalVariableDeclaration = $adt("LocalVariableDeclaration"); + NT_BooleanLiteral = $lex("BooleanLiteral"); + ADT_BooleanLiteral = $adt("BooleanLiteral"); + NT_Target = $sort("Target"); + ADT_Target = $adt("Target"); + NT_IntegerLiteral = $sort("IntegerLiteral"); + ADT_IntegerLiteral = $adt("IntegerLiteral"); + NT_TimePartNoTZ = $lex("TimePartNoTZ"); + ADT_TimePartNoTZ = $adt("TimePartNoTZ"); + NT_Renaming = $sort("Renaming"); + ADT_Renaming = $adt("Renaming"); + NT_KeywordFormals = $sort("KeywordFormals"); + ADT_KeywordFormals = $adt("KeywordFormals"); + NT_Catch = $sort("Catch"); + ADT_Catch = $adt("Catch"); + ADT_Production = $adt("Production"); + NT_PostStringChars = $lex("PostStringChars"); + ADT_PostStringChars = $adt("PostStringChars"); + NT_OptionalExpression = $sort("OptionalExpression"); + ADT_OptionalExpression = $adt("OptionalExpression"); + NT_Renamings = $sort("Renamings"); + ADT_Renamings = $adt("Renamings"); + ADT_GrammarDefinition = $adt("GrammarDefinition"); + NT_DataTarget = $sort("DataTarget"); + ADT_DataTarget = $adt("DataTarget"); + NT_LocationLiteral = $sort("LocationLiteral"); + ADT_LocationLiteral = $adt("LocationLiteral"); + NT_Field = $sort("Field"); + ADT_Field = $adt("Field"); + NT_Tag = $sort("Tag"); + ADT_Tag = $adt("Tag"); + NT_Type = $sort("Type"); + ADT_Type = $adt("Type"); + ADT_Symbol = $adt("Symbol"); + NT_TimeZonePart = $lex("TimeZonePart"); + ADT_TimeZonePart = $adt("TimeZonePart"); + NT_HexIntegerLiteral = $lex("HexIntegerLiteral"); + ADT_HexIntegerLiteral = $adt("HexIntegerLiteral"); + NT_Declaration = $sort("Declaration"); + ADT_Declaration = $adt("Declaration"); + NT_ShellCommand = $sort("ShellCommand"); + ADT_ShellCommand = $adt("ShellCommand"); + NT_FunctionBody = $sort("FunctionBody"); + ADT_FunctionBody = $adt("FunctionBody"); + NT_PreStringChars = $lex("PreStringChars"); + ADT_PreStringChars = $adt("PreStringChars"); + NT_Nonterminal = $lex("Nonterminal"); + ADT_Nonterminal = $adt("Nonterminal"); + NT_StringLiteral = $sort("StringLiteral"); + ADT_StringLiteral = $adt("StringLiteral"); + NT_NonterminalLabel = $lex("NonterminalLabel"); + ADT_NonterminalLabel = $adt("NonterminalLabel"); + NT_Variable = $sort("Variable"); + ADT_Variable = $adt("Variable"); + NT_Bound = $sort("Bound"); + ADT_Bound = $adt("Bound"); + NT_TypeArg = $sort("TypeArg"); + ADT_TypeArg = $adt("TypeArg"); + NT_RegExp = $lex("RegExp"); + ADT_RegExp = $adt("RegExp"); + NT_PathPart = $sort("PathPart"); + ADT_PathPart = $adt("PathPart"); + ADT_Associativity = $adt("Associativity"); + NT_Signature = $sort("Signature"); + ADT_Signature = $adt("Signature"); + NT_KeywordFormal = $sort("KeywordFormal"); + ADT_KeywordFormal = $adt("KeywordFormal"); + NT_ModuleActuals = $sort("ModuleActuals"); + ADT_ModuleActuals = $adt("ModuleActuals"); + NT_Tags = $sort("Tags"); + ADT_Tags = $adt("Tags"); + ADT_Condition = $adt("Condition"); + NT_URLChars = $lex("URLChars"); + ADT_URLChars = $adt("URLChars"); + NT_Class = $sort("Class"); + ADT_Class = $adt("Class"); + NT_PrePathChars = $lex("PrePathChars"); + ADT_PrePathChars = $adt("PrePathChars"); + NT_Start = $sort("Start"); + ADT_Start = $adt("Start"); + NT_StringConstant = $lex("StringConstant"); + ADT_StringConstant = $adt("StringConstant"); + NT_OptionalComma = $lex("OptionalComma"); + ADT_OptionalComma = $adt("OptionalComma"); + NT_FunctionDeclaration = $sort("FunctionDeclaration"); + ADT_FunctionDeclaration = $adt("FunctionDeclaration"); + NT_Char = $lex("Char"); + ADT_Char = $adt("Char"); + NT_StringTail = $sort("StringTail"); + ADT_StringTail = $adt("StringTail"); + NT_DataTypeSelector = $sort("DataTypeSelector"); + ADT_DataTypeSelector = $adt("DataTypeSelector"); + NT_CaseInsensitiveStringConstant = $lex("CaseInsensitiveStringConstant"); + ADT_CaseInsensitiveStringConstant = $adt("CaseInsensitiveStringConstant"); + NT_Body = $sort("Body"); + ADT_Body = $adt("Body"); + NT_PatternWithAction = $sort("PatternWithAction"); + ADT_PatternWithAction = $adt("PatternWithAction"); + ADT_Exception = $adt("Exception"); + NT_PostPathChars = $lex("PostPathChars"); + ADT_PostPathChars = $adt("PostPathChars"); + NT_Module = $sort("Module"); + ADT_Module = $adt("Module"); + NT_StringCharacter = $lex("StringCharacter"); + ADT_StringCharacter = $adt("StringCharacter"); + NT_JustDate = $lex("JustDate"); + ADT_JustDate = $adt("JustDate"); + NT_TypeVar = $sort("TypeVar"); + ADT_TypeVar = $adt("TypeVar"); + NT_Header = $sort("Header"); + ADT_Header = $adt("Header"); + ADT_LocationType = $adt("LocationType"); + NT_Assignment = $sort("Assignment"); + ADT_Assignment = $adt("Assignment"); + NT_UserType = $sort("UserType"); + ADT_UserType = $adt("UserType"); + ADT_CharRange = $adt("CharRange"); + NT_Import = $sort("Import"); + ADT_Import = $adt("Import"); + NT_Variant = $sort("Variant"); + ADT_Variant = $adt("Variant"); + NT_Comprehension = $sort("Comprehension"); + ADT_Comprehension = $adt("Comprehension"); + ADT_LAYOUTLIST = $layouts("LAYOUTLIST"); + ADT_Message = $adt("Message"); + NT_ConcreteHole = $sort("ConcreteHole"); + ADT_ConcreteHole = $adt("ConcreteHole"); + ADT_Grammar = $adt("Grammar"); + NT_StringMiddle = $sort("StringMiddle"); + ADT_StringMiddle = $adt("StringMiddle"); + NT_Sym = $sort("Sym"); + ADT_Sym = $adt("Sym"); + NT_DateAndTime = $lex("DateAndTime"); + ADT_DateAndTime = $adt("DateAndTime"); + NT_RealLiteral = $lex("RealLiteral"); + ADT_RealLiteral = $adt("RealLiteral"); + NT_Backslash = $lex("Backslash"); + ADT_Backslash = $adt("Backslash"); + NT_Formals = $sort("Formals"); + ADT_Formals = $adt("Formals"); + NT_FunctionModifiers = $sort("FunctionModifiers"); + ADT_FunctionModifiers = $adt("FunctionModifiers"); + NT_MidPathChars = $lex("MidPathChars"); + ADT_MidPathChars = $adt("MidPathChars"); + NT_QualifiedName = $sort("QualifiedName"); + ADT_QualifiedName = $adt("QualifiedName"); + NT_MidProtocolChars = $lex("MidProtocolChars"); + ADT_MidProtocolChars = $adt("MidProtocolChars"); + ADT_RascalKeywords = $keywords("RascalKeywords"); + NT_PathTail = $sort("PathTail"); + ADT_PathTail = $adt("PathTail"); + NT_Parameters = $sort("Parameters"); + ADT_Parameters = $adt("Parameters"); + NT_PreProtocolChars = $lex("PreProtocolChars"); + ADT_PreProtocolChars = $adt("PreProtocolChars"); + NT_StringTemplate = $sort("StringTemplate"); + ADT_StringTemplate = $adt("StringTemplate"); + NT_OctalIntegerLiteral = $lex("OctalIntegerLiteral"); + ADT_OctalIntegerLiteral = $adt("OctalIntegerLiteral"); + NT_ProtocolPart = $sort("ProtocolPart"); + ADT_ProtocolPart = $adt("ProtocolPart"); + NT_NamedBackslash = $lex("NamedBackslash"); + ADT_NamedBackslash = $adt("NamedBackslash"); + NT_Label = $sort("Label"); + ADT_Label = $adt("Label"); + NT_Kind = $sort("Kind"); + ADT_Kind = $adt("Kind"); + ADT_LocationChangeEvent = $adt("LocationChangeEvent"); + NT_RegExpModifier = $lex("RegExpModifier"); + ADT_RegExpModifier = $adt("RegExpModifier"); + NT_Prod = $sort("Prod"); + ADT_Prod = $adt("Prod"); + ADT_RuntimeException = $adt("RuntimeException"); + NT_NamedRegExp = $lex("NamedRegExp"); + ADT_NamedRegExp = $adt("NamedRegExp"); + NT_DecimalIntegerLiteral = $lex("DecimalIntegerLiteral"); + ADT_DecimalIntegerLiteral = $adt("DecimalIntegerLiteral"); + NT_Assoc = $sort("Assoc"); + ADT_Assoc = $adt("Assoc"); + NT_DateTimeLiteral = $sort("DateTimeLiteral"); + ADT_DateTimeLiteral = $adt("DateTimeLiteral"); + NT_EvalCommand = $sort("EvalCommand"); + ADT_EvalCommand = $adt("EvalCommand"); + NT_PathChars = $lex("PathChars"); + ADT_PathChars = $adt("PathChars"); + NT_JustTime = $lex("JustTime"); + ADT_JustTime = $adt("JustTime"); + NT_FunctionModifier = $sort("FunctionModifier"); + ADT_FunctionModifier = $adt("FunctionModifier"); + NT_ProdModifier = $sort("ProdModifier"); + ADT_ProdModifier = $adt("ProdModifier"); + NT_Statement = $sort("Statement"); + ADT_Statement = $adt("Statement"); + NT_ConcretePart = $lex("ConcretePart"); + ADT_ConcretePart = $adt("ConcretePart"); + NT_Literal = $sort("Literal"); + ADT_Literal = $adt("Literal"); + NT_Toplevel = $sort("Toplevel"); + ADT_Toplevel = $adt("Toplevel"); + NT_Comment = $lex("Comment"); + ADT_Comment = $adt("Comment"); + NT_Commands = $sort("Commands"); + ADT_Commands = $adt("Commands"); + NT_StructuredType = $sort("StructuredType"); + ADT_StructuredType = $adt("StructuredType"); + NT_Visit = $sort("Visit"); + ADT_Visit = $adt("Visit"); + NT_Command = $sort("Command"); + ADT_Command = $adt("Command"); + NT_Assignable = $sort("Assignable"); + ADT_Assignable = $adt("Assignable"); + NT_UnicodeEscape = $lex("UnicodeEscape"); + ADT_UnicodeEscape = $adt("UnicodeEscape"); + NT_BasicType = $sort("BasicType"); + ADT_BasicType = $adt("BasicType"); + NT_CommonKeywordParameters = $sort("CommonKeywordParameters"); + ADT_CommonKeywordParameters = $adt("CommonKeywordParameters"); + NT_ProtocolTail = $sort("ProtocolTail"); + ADT_ProtocolTail = $adt("ProtocolTail"); + $T2 = $TF.valueType(); + $T3 = $TF.parameterType("T", $T2); + $T0 = $TF.stringType(); + NT_Mapping_Expression = $parameterizedSort("Mapping", new Type[] { ADT_Expression }, $RVF.list($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Expression")))); + $T4 = $TF.parameterType("T", ADT_Tree); + NT_KeywordArguments_1 = $parameterizedSort("KeywordArguments", new Type[] { $T4 }, $RVF.list($RVF.constructor(RascalValueFactory.Symbol_Parameter, $RVF.string("T"), $RVF.constructor(RascalValueFactory.Symbol_Adt, $RVF.string("Tree"), $RVF.list())))); + NT_Mapping_Pattern = $parameterizedSort("Mapping", new Type[] { ADT_Pattern }, $RVF.list($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Pattern")))); + $T5 = $TF.parameterType("T", ADT_Tree); + NT_KeywordArguments_Expression = $parameterizedSort("KeywordArguments", new Type[] { ADT_Expression }, $RVF.list($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Expression")))); + NT_Mapping_1 = $parameterizedSort("Mapping", new Type[] { $T4 }, $RVF.list($RVF.constructor(RascalValueFactory.Symbol_Parameter, $RVF.string("T"), $RVF.constructor(RascalValueFactory.Symbol_Adt, $RVF.string("Tree"), $RVF.list())))); + $T1 = $TF.listType($T3); + NT_KeywordArguments_Pattern = $parameterizedSort("KeywordArguments", new Type[] { ADT_Pattern }, $RVF.list($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Pattern")))); + NT_KeywordArgument_1 = $parameterizedSort("KeywordArgument", new Type[] { $T4 }, $RVF.list($RVF.constructor(RascalValueFactory.Symbol_Parameter, $RVF.string("T"), $RVF.constructor(RascalValueFactory.Symbol_Adt, $RVF.string("Tree"), $RVF.list())))); + ADT_TreeSearchResult_1 = $parameterizedAdt("TreeSearchResult", new Type[] { $T4 }); + ADT_Mapping_Expression = $TF.abstractDataType($TS, "Mapping", new Type[] { ADT_Expression }); + ADT_KeywordArguments_1 = $TF.abstractDataType($TS, "KeywordArguments", new Type[] { $T4 }); + ADT_Mapping_Pattern = $TF.abstractDataType($TS, "Mapping", new Type[] { ADT_Pattern }); + ADT_KeywordArguments_Expression = $TF.abstractDataType($TS, "KeywordArguments", new Type[] { ADT_Expression }); + ADT_Mapping_1 = $TF.abstractDataType($TS, "Mapping", new Type[] { $T4 }); + ADT_KeywordArguments_Pattern = $TF.abstractDataType($TS, "KeywordArguments", new Type[] { ADT_Pattern }); + ADT_KeywordArgument_1 = $TF.abstractDataType($TS, "KeywordArgument", new Type[] { $T4 }); + + + + } + public IBool isTypeVar(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isTypeVar($P0); + } + public IList addLabels(IValue $P0, IValue $P1){ // Generated by Resolver + return (IList) M_Type.addLabels($P0, $P1); + } + public IBool sameType(IValue $P0, IValue $P1){ // Generated by Resolver + return (IBool) M_ParseTree.sameType($P0, $P1); + } + public IValue head(IValue $P0){ // Generated by Resolver + return (IValue) M_List.head($P0); + } + public IBool isAliasType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isAliasType($P0); + } + public IInteger size(IValue $P0){ // Generated by Resolver + IInteger $result = null; + Type $P0Type = $P0.getType(); + if($isSubtypeOf($P0Type,$T0)){ + $result = (IInteger)M_String.String_size$4611676944e933d5((IString) $P0); + if($result != null) return $result; + } + if($isSubtypeOf($P0Type,$T1)){ + $result = (IInteger)M_List.List_size$ba7443328d8b4a27((IList) $P0); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0)); + } + public IBool isStrType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isStrType($P0); + } + public IConstructor choice(IValue $P0, IValue $P1){ // Generated by Resolver + return (IConstructor) M_Type.choice($P0, $P1); + } + public IBool isValueType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isValueType($P0); + } + public IBool isADTType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isADTType($P0); + } + public IBool isListType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isListType($P0); + } + public IBool isRealType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isRealType($P0); + } + public IConstructor literals(IValue $P0){ // Generated by Resolver + IConstructor $result = null; + Type $P0Type = $P0.getType(); + if($isSubtypeOf($P0Type, M_Grammar.ADT_Grammar)){ + $result = (IConstructor)lang_rascal_grammar_definition_Literals_literals$e024186903b8b684((IConstructor) $P0); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0)); + } + public IConstructor priority(IValue $P0, IValue $P1){ // Generated by Resolver + return (IConstructor) M_ParseTree.priority($P0, $P1); + } + public IBool isNodeType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isNodeType($P0); + } + public IConstructor grammar(IValue $P0){ // Generated by Resolver + return (IConstructor) M_Grammar.grammar($P0); + } + public IConstructor grammar(IValue $P0, IValue $P1){ // Generated by Resolver + return (IConstructor) M_Grammar.grammar($P0, $P1); + } + public IBool isReifiedType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isReifiedType($P0); + } + public IConstructor ciliteral(IValue $P0){ // Generated by Resolver + IConstructor $result = null; + Type $P0Type = $P0.getType(); + if($isSubtypeOf($P0Type,$T0)){ + $result = (IConstructor)lang_rascal_grammar_definition_Literals_ciliteral$0db2671e2383e06a((IString) $P0); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0)); + } + public IBool isRelType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isRelType($P0); + } + public IValue character(IValue $P0){ // Generated by Resolver + IValue $result = null; + Type $P0Type = $P0.getType(); + if($isNonTerminal($P0Type, ((IConstructor)$constants.get(0)/*lex("StringCharacter")*/))){ + $result = (IValue)lang_rascal_grammar_definition_Literals_character$d5195547a7cb317f((ITree) $P0); + if($result != null) return $result; + } + if($isNonTerminal($P0Type, ((IConstructor)$constants.get(1)/*lex("Char")*/))){ + return $RVF.constructor(M_lang_rascal_syntax_Rascal.Range_character_Char, new IValue[]{(ITree) $P0}); + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0)); + } + public IBool isConstructorType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isConstructorType($P0); + } + public IBool isListRelType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isListRelType($P0); + } + public IList addParamLabels(IValue $P0, IValue $P1){ // Generated by Resolver + return (IList) M_Type.addParamLabels($P0, $P1); + } + public IBool isMapType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isMapType($P0); + } + public IList str2syms(IValue $P0){ // Generated by Resolver + IList $result = null; + Type $P0Type = $P0.getType(); + if($isSubtypeOf($P0Type,$T0)){ + $result = (IList)lang_rascal_grammar_definition_Literals_str2syms$dee81798dbf5a1ce((IString) $P0); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0)); + } + public IBool isBoolType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isBoolType($P0); + } + public INode literal(IValue $P0){ // Generated by Resolver + INode $result = null; + Type $P0Type = $P0.getType(); + if($isSubtypeOf($P0Type,$T0)){ + $result = (INode)lang_rascal_grammar_definition_Literals_literal$e1a9d9e83f386de5((IString) $P0); + if($result != null) return $result; + } + if($isNonTerminal($P0Type, ((IConstructor)$constants.get(2)/*lex("StringConstant")*/))){ + return $RVF.constructor(M_lang_rascal_syntax_Rascal.Sym_literal_StringConstant, new IValue[]{(ITree) $P0}); + } + if($isNonTerminal($P0Type, M_lang_rascal_syntax_Rascal.NT_Literal)){ + throw new RuntimeException("Constructor `literal` is overloaded and can only be called with qualifier"); + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0)); + } + public IList tail(IValue $P0){ // Generated by Resolver + return (IList) M_List.tail($P0); + } + public IBool isLocType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isLocType($P0); + } + public ITuple headTail(IValue $P0){ // Generated by Resolver + return (ITuple) M_List.headTail($P0); + } + public IConstructor treeAt(IValue $P0, IValue $P1, IValue $P2){ // Generated by Resolver + return (IConstructor) M_ParseTree.treeAt($P0, $P1, $P2); + } + public IBool isSetType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isSetType($P0); + } + public IList cistr2syms(IValue $P0){ // Generated by Resolver + IList $result = null; + Type $P0Type = $P0.getType(); + if($isSubtypeOf($P0Type,$T0)){ + $result = (IList)lang_rascal_grammar_definition_Literals_cistr2syms$2389f577bccc5335((IString) $P0); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0)); + } + public IInteger toInt(IValue $P0){ // Generated by Resolver + return (IInteger) M_String.toInt($P0); + } + public IInteger toInt(IValue $P0, IValue $P1){ // Generated by Resolver + return (IInteger) M_String.toInt($P0, $P1); + } + public IBool isRatType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isRatType($P0); + } + public IString unescapeLiteral(IValue $P0){ // Generated by Resolver + IString $result = null; + Type $P0Type = $P0.getType(); + if($isNonTerminal($P0Type, ((IConstructor)$constants.get(3)/*lex("CaseInsensitiveStringConstant")*/))){ + $result = (IString)lang_rascal_grammar_definition_Literals_unescapeLiteral$1ee78916103732f2((ITree) $P0); + if($result != null) return $result; + } + if($isSubtypeOf($P0Type,$T0)){ + $result = (IString)lang_rascal_grammar_definition_Literals_unescapeLiteral$e6a60df99649b8e5((IString) $P0); + if($result != null) return $result; + } + if($isNonTerminal($P0Type, ((IConstructor)$constants.get(2)/*lex("StringConstant")*/))){ + $result = (IString)lang_rascal_grammar_definition_Literals_unescapeLiteral$f2188665ba46f5ed((ITree) $P0); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0)); + } + public IBool isNumType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isNumType($P0); + } + public IBool isTupleType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isTupleType($P0); + } + public IBool isBagType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isBagType($P0); + } + public IBool isVoidType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isVoidType($P0); + } + public IBool isNonTerminalType(IValue $P0){ // Generated by Resolver + return (IBool) M_ParseTree.isNonTerminalType($P0); + } + public IValue lub(IValue $P0, IValue $P1){ // Generated by Resolver + return (IValue) M_Type.lub($P0, $P1); + } + public IBool subtype(IValue $P0, IValue $P1){ // Generated by Resolver + return (IBool) M_Type.subtype($P0, $P1); + } + public IConstructor associativity(IValue $P0, IValue $P1, IValue $P2){ // Generated by Resolver + return (IConstructor) M_ParseTree.associativity($P0, $P1, $P2); + } + public IBool isFunctionType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isFunctionType($P0); + } + public IValue glb(IValue $P0, IValue $P1){ // Generated by Resolver + return (IValue) M_Type.glb($P0, $P1); + } + public IBool isIntType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isIntType($P0); + } + public IBool isDateTimeType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isDateTimeType($P0); + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/lang/rascal/grammar/definition/Literals.rsc|(482,135,<16,0>,<18,1>) + public IConstructor lang_rascal_grammar_definition_Literals_literals$e024186903b8b684(IConstructor g_0){ + + + final ISetWriter $setwriter0 = (ISetWriter)$RVF.setWriter(); + ; + $SCOMP1_GEN565: + for(IValue $elem2_for : ((IConstructor)g_0)){ + IValue $elem2 = (IValue) $elem2_for; + $SCOMP1_GEN565_DESC565: + for(IValue $elem3 : new DescendantMatchIterator($elem2, + new DescendantDescriptorAlwaysTrue($RVF.bool(false)))){ + if($isComparable($elem3.getType(), M_ParseTree.ADT_Symbol)){ + if($has_type_and_arity($elem3, M_ParseTree.Symbol_lit_str, 1)){ + IValue $arg0_4 = (IValue)($subscript_int(((IValue)($elem3)),0)); + if($isComparable($arg0_4.getType(), $T0)){ + IString s_1 = ((IString)($arg0_4)); + $setwriter0.insert($me.literal(((IString)($arg0_4)))); + + } else { + continue $SCOMP1_GEN565_DESC565; + } + } else { + continue $SCOMP1_GEN565_DESC565; + } + } else { + continue $SCOMP1_GEN565_DESC565; + } + } + continue $SCOMP1_GEN565; + + } + + final ISetWriter $setwriter5 = (ISetWriter)$RVF.setWriter(); + ; + $SCOMP6_GEN597: + for(IValue $elem7_for : ((IConstructor)g_0)){ + IValue $elem7 = (IValue) $elem7_for; + $SCOMP6_GEN597_DESC597: + for(IValue $elem8 : new DescendantMatchIterator($elem7, + new DescendantDescriptorAlwaysTrue($RVF.bool(false)))){ + if($isComparable($elem8.getType(), M_ParseTree.ADT_Symbol)){ + if($has_type_and_arity($elem8, M_ParseTree.Symbol_cilit_str, 1)){ + IValue $arg0_9 = (IValue)($subscript_int(((IValue)($elem8)),0)); + if($isComparable($arg0_9.getType(), $T0)){ + IString s_2 = ((IString)($arg0_9)); + $setwriter5.insert($me.ciliteral(((IString)($arg0_9)))); + + } else { + continue $SCOMP6_GEN597_DESC597; + } + } else { + continue $SCOMP6_GEN597_DESC597; + } + } else { + continue $SCOMP6_GEN597_DESC597; + } + } + continue $SCOMP6_GEN597; + + } + + return ((IConstructor)(M_Grammar.compose(((IConstructor)g_0), ((IConstructor)(M_Grammar.grammar(((ISet)$constants.get(4)/*{}*/), ((ISet)($aset_add_aset(((ISet)($setwriter0.done())),((ISet)($setwriter5.done()))))))))))); + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/lang/rascal/grammar/definition/Literals.rsc|(619,63,<20,0>,<20,63>) + public IConstructor lang_rascal_grammar_definition_Literals_literal$e1a9d9e83f386de5(IString s_0){ + + + return ((IConstructor)($RVF.constructor(M_ParseTree.Production_prod_Symbol_list_Symbol_set_Attr, new IValue[]{((IConstructor)($RVF.constructor(M_ParseTree.Symbol_lit_str, new IValue[]{((IString)s_0)}))), ((IList)($me.str2syms(((IString)s_0)))), ((ISet)$constants.get(4)/*{}*/)}))); + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/lang/rascal/grammar/definition/Literals.rsc|(683,69,<21,0>,<21,69>) + public IConstructor lang_rascal_grammar_definition_Literals_ciliteral$0db2671e2383e06a(IString s_0){ + + + return ((IConstructor)($RVF.constructor(M_ParseTree.Production_prod_Symbol_list_Symbol_set_Attr, new IValue[]{((IConstructor)($RVF.constructor(M_ParseTree.Symbol_cilit_str, new IValue[]{((IString)s_0)}))), ((IList)($me.cistr2syms(((IString)s_0)))), ((ISet)$constants.get(4)/*{}*/)}))); + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/lang/rascal/grammar/definition/Literals.rsc|(754,145,<23,0>,<26,1>) + public IList lang_rascal_grammar_definition_Literals_str2syms$dee81798dbf5a1ce(IString x_0){ + + + if((((IBool)($equal(((IString)x_0), ((IString)$constants.get(5)/*""*/))))).getValue()){ + return ((IList)$constants.get(6)/*[]*/); + + } + final IListWriter $listwriter10 = (IListWriter)$RVF.listWriter(); + final IInteger $lst2 = ((IInteger)(M_String.size(((IString)x_0)))); + final boolean $dir3 = ((IInteger)$constants.get(7)/*0*/).less($lst2).getValue(); + + $LCOMP11_GEN856: + for(IInteger $elem13 = ((IInteger)$constants.get(7)/*0*/); $dir3 ? $aint_less_aint($elem13,$lst2).getValue() + : $aint_lessequal_aint($elem13,$lst2).not().getValue(); $elem13 = $aint_add_aint($elem13,$dir3 ? ((IInteger)$constants.get(8)/*1*/) : ((IInteger)$constants.get(9)/*-1*/))){ + IInteger i_1 = ((IInteger)($elem13)); + final IInteger $subject_val12 = ((IInteger)(M_String.charAt(((IString)x_0), ((IInteger)i_1)))); + IInteger c_2 = null; + $listwriter10.append($RVF.constructor(M_ParseTree.Symbol_char_class_list_CharRange, new IValue[]{((IList)($RVF.list(((IConstructor)($RVF.constructor(M_ParseTree.CharRange_range_int_int, new IValue[]{((IInteger)($subject_val12)), ((IInteger)($subject_val12))}))))))})); + } + + return ((IList)($listwriter10.done())); + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/lang/rascal/grammar/definition/Literals.rsc|(901,344,<28,0>,<37,1>) + public IList lang_rascal_grammar_definition_Literals_cistr2syms$2389f577bccc5335(IString x_0){ + + + final IListWriter listwriter_FOR1 = (IListWriter)$RVF.listWriter(); + /*muExists*/FOR1: + do { + final IInteger $lst7 = ((IInteger)(M_String.size(((IString)x_0)))); + final boolean $dir8 = ((IInteger)$constants.get(7)/*0*/).less($lst7).getValue(); + + FOR1_GEN948: + for(IInteger $elem15 = ((IInteger)$constants.get(7)/*0*/); $dir8 ? $aint_less_aint($elem15,$lst7).getValue() + : $aint_lessequal_aint($elem15,$lst7).not().getValue(); $elem15 = $aint_add_aint($elem15,$dir8 ? ((IInteger)$constants.get(8)/*1*/) : ((IInteger)$constants.get(9)/*-1*/))){ + IInteger i_1 = ((IInteger)($elem15)); + final IInteger $subject_val14 = ((IInteger)(M_String.charAt(((IString)x_0), ((IInteger)i_1)))); + IInteger c_2 = null; + if((((IBool)($aint_less_aint(((IInteger)($subject_val14)),((IInteger)$constants.get(10)/*65*/)).not()))).getValue()){ + if((((IBool)($aint_lessequal_aint(((IInteger)($subject_val14)),((IInteger)$constants.get(11)/*90*/))))).getValue()){ + listwriter_FOR1.append($RVF.constructor(M_ParseTree.Symbol_char_class_list_CharRange, new IValue[]{((IList)($RVF.list(((IConstructor)($RVF.constructor(M_ParseTree.CharRange_range_int_int, new IValue[]{((IInteger)($subject_val14)), ((IInteger)($subject_val14))}))), $RVF.constructor(M_ParseTree.CharRange_range_int_int, new IValue[]{((IInteger)($aint_add_aint(((IInteger)($subject_val14)),((IInteger)$constants.get(12)/*32*/)))), ((IInteger)($aint_add_aint(((IInteger)($subject_val14)),((IInteger)$constants.get(12)/*32*/))))}))))})); + + } else { + if((((IBool)($aint_less_aint(((IInteger)($subject_val14)),((IInteger)$constants.get(13)/*97*/)).not()))).getValue()){ + if((((IBool)($aint_lessequal_aint(((IInteger)($subject_val14)),((IInteger)$constants.get(14)/*122*/))))).getValue()){ + listwriter_FOR1.append($RVF.constructor(M_ParseTree.Symbol_char_class_list_CharRange, new IValue[]{((IList)($RVF.list(((IConstructor)($RVF.constructor(M_ParseTree.CharRange_range_int_int, new IValue[]{((IInteger)($subject_val14)), ((IInteger)($subject_val14))}))), $RVF.constructor(M_ParseTree.CharRange_range_int_int, new IValue[]{((IInteger)(((IInteger) ((IInteger)($subject_val14)).subtract(((IInteger)$constants.get(12)/*32*/))))), ((IInteger)(((IInteger) ((IInteger)($subject_val14)).subtract(((IInteger)$constants.get(12)/*32*/)))))}))))})); + + } else { + listwriter_FOR1.append($RVF.constructor(M_ParseTree.Symbol_char_class_list_CharRange, new IValue[]{((IList)($RVF.list(((IConstructor)($RVF.constructor(M_ParseTree.CharRange_range_int_int, new IValue[]{((IInteger)($subject_val14)), ((IInteger)($subject_val14))}))))))})); + + } + } else { + listwriter_FOR1.append($RVF.constructor(M_ParseTree.Symbol_char_class_list_CharRange, new IValue[]{((IList)($RVF.list(((IConstructor)($RVF.constructor(M_ParseTree.CharRange_range_int_int, new IValue[]{((IInteger)($subject_val14)), ((IInteger)($subject_val14))}))))))})); + + } + } + } else { + if((((IBool)($aint_less_aint(((IInteger)($subject_val14)),((IInteger)$constants.get(13)/*97*/)).not()))).getValue()){ + if((((IBool)($aint_lessequal_aint(((IInteger)($subject_val14)),((IInteger)$constants.get(14)/*122*/))))).getValue()){ + listwriter_FOR1.append($RVF.constructor(M_ParseTree.Symbol_char_class_list_CharRange, new IValue[]{((IList)($RVF.list(((IConstructor)($RVF.constructor(M_ParseTree.CharRange_range_int_int, new IValue[]{((IInteger)($subject_val14)), ((IInteger)($subject_val14))}))), $RVF.constructor(M_ParseTree.CharRange_range_int_int, new IValue[]{((IInteger)(((IInteger) ((IInteger)($subject_val14)).subtract(((IInteger)$constants.get(12)/*32*/))))), ((IInteger)(((IInteger) ((IInteger)($subject_val14)).subtract(((IInteger)$constants.get(12)/*32*/)))))}))))})); + + } else { + listwriter_FOR1.append($RVF.constructor(M_ParseTree.Symbol_char_class_list_CharRange, new IValue[]{((IList)($RVF.list(((IConstructor)($RVF.constructor(M_ParseTree.CharRange_range_int_int, new IValue[]{((IInteger)($subject_val14)), ((IInteger)($subject_val14))}))))))})); + + } + } else { + listwriter_FOR1.append($RVF.constructor(M_ParseTree.Symbol_char_class_list_CharRange, new IValue[]{((IList)($RVF.list(((IConstructor)($RVF.constructor(M_ParseTree.CharRange_range_int_int, new IValue[]{((IInteger)($subject_val14)), ((IInteger)($subject_val14))}))))))})); + + } + }} + continue FOR1; + + } while(false); + return ((IList)(listwriter_FOR1.done())); + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/lang/rascal/grammar/definition/Literals.rsc|(1247,122,<39,0>,<39,122>) + public IString lang_rascal_grammar_definition_Literals_unescapeLiteral$1ee78916103732f2(ITree s_0){ + + + final Template $template16 = (Template)new Template($RVF, ""); + /*muExists*/LAB4: + do { + final ITree $exp18 = ((ITree)(((ITree)($aadt_get_field(((ITree)s_0), "chars"))))); + final int $last19 = (int)((ITree)($exp18)).getArgs().length() - 1; + LAB4_GEN1316: + + for(int $i20 = 0; $i20 <= $last19; $i20 += 1){ + final ITree $elem17 = ((ITree)($iter_subscript($exp18, $i20))); + ITree ch_1 = ((ITree)($elem17)); + ;$template16.addStr(((IString)($me.character(((ITree)ch_1)))).getValue()); + + } + continue LAB4; + + } while(false); + return ((IString)($template16.close())); + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/lang/rascal/grammar/definition/Literals.rsc|(1371,107,<41,0>,<41,107>) + public IString lang_rascal_grammar_definition_Literals_unescapeLiteral$f2188665ba46f5ed(ITree s_0){ + + + final Template $template21 = (Template)new Template($RVF, ""); + /*muExists*/LAB5: + do { + final ITree $exp23 = ((ITree)(((ITree)($aadt_get_field(((ITree)s_0), "chars"))))); + final int $last24 = (int)((ITree)($exp23)).getArgs().length() - 1; + LAB5_GEN1425: + + for(int $i25 = 0; $i25 <= $last24; $i25 += 1){ + final ITree $elem22 = ((ITree)($iter_subscript($exp23, $i25))); + ITree ch_1 = ((ITree)($elem22)); + ;$template21.addStr(((IString)($me.character(((ITree)ch_1)))).getValue()); + + } + continue LAB5; + + } while(false); + return ((IString)($template21.close())); + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/lang/rascal/grammar/definition/Literals.rsc|(1480,1032,<43,0>,<60,1>) + public IString lang_rascal_grammar_definition_Literals_character$d5195547a7cb317f(ITree c_0){ + + + final ITree $switchVal26 = ((ITree)c_0); + boolean noCaseMatched_$switchVal26 = true; + SWITCH6: switch(Fingerprint.getConcreteFingerprint($switchVal26)){ + + case 0: + if(noCaseMatched_$switchVal26){ + noCaseMatched_$switchVal26 = false; + + } + + + default: if($isSubtypeOf($switchVal26.getType(),M_lang_rascal_syntax_Rascal.NT_StringCharacter)){ + /*muExists*/CASE_0_0: + do { + if($isSubtypeOf($switchVal26.getType(),M_lang_rascal_syntax_Rascal.NT_StringCharacter)){ + final Matcher $matcher29 = (Matcher)$regExpCompile("^([^\"\'\\\\\\>\\<])", org.rascalmpl.values.parsetrees.TreeAdapter.yield($switchVal26)); + boolean $found30 = true; + + while($found30){ + $found30 = $matcher29.find(); + if($found30){ + IString ch_1 = ((IString)($RVF.string($matcher29.group(1)))); + final Template $template28 = (Template)new Template($RVF, ""); + $template28.addStr(((IString)ch_1).getValue()); + return ((IString)($template28.close())); + + } + + } + + } + + } while(false); + + } + if($isSubtypeOf($switchVal26.getType(),M_lang_rascal_syntax_Rascal.NT_StringCharacter)){ + /*muExists*/CASE_0_1: + do { + if($isSubtypeOf($switchVal26.getType(),M_lang_rascal_syntax_Rascal.NT_StringCharacter)){ + final Matcher $matcher31 = (Matcher)$regExpCompile("^\\\\n", org.rascalmpl.values.parsetrees.TreeAdapter.yield($switchVal26)); + boolean $found32 = true; + + while($found32){ + $found32 = $matcher31.find(); + if($found32){ + return ((IString)$constants.get(15)/*" + "*/); + + } + + } + + } + + } while(false); + + } + if($isSubtypeOf($switchVal26.getType(),M_lang_rascal_syntax_Rascal.NT_StringCharacter)){ + /*muExists*/CASE_0_2: + do { + if($isSubtypeOf($switchVal26.getType(),M_lang_rascal_syntax_Rascal.NT_StringCharacter)){ + final Matcher $matcher33 = (Matcher)$regExpCompile("^\\\\t", org.rascalmpl.values.parsetrees.TreeAdapter.yield($switchVal26)); + boolean $found34 = true; + + while($found34){ + $found34 = $matcher33.find(); + if($found34){ + return ((IString)$constants.get(16)/*" "*/); + + } + + } + + } + + } while(false); + + } + if($isSubtypeOf($switchVal26.getType(),M_lang_rascal_syntax_Rascal.NT_StringCharacter)){ + /*muExists*/CASE_0_3: + do { + if($isSubtypeOf($switchVal26.getType(),M_lang_rascal_syntax_Rascal.NT_StringCharacter)){ + final Matcher $matcher35 = (Matcher)$regExpCompile("^\\\\b", org.rascalmpl.values.parsetrees.TreeAdapter.yield($switchVal26)); + boolean $found36 = true; + + while($found36){ + $found36 = $matcher35.find(); + if($found36){ + return ((IString)$constants.get(17)/*""*/); + + } + + } + + } + + } while(false); + + } + if($isSubtypeOf($switchVal26.getType(),M_lang_rascal_syntax_Rascal.NT_StringCharacter)){ + /*muExists*/CASE_0_4: + do { + if($isSubtypeOf($switchVal26.getType(),M_lang_rascal_syntax_Rascal.NT_StringCharacter)){ + final Matcher $matcher37 = (Matcher)$regExpCompile("^\\\\r", org.rascalmpl.values.parsetrees.TreeAdapter.yield($switchVal26)); + boolean $found38 = true; + + while($found38){ + $found38 = $matcher37.find(); + if($found38){ + return ((IString)$constants.get(18)/*" "*/); + + } + + } + + } + + } while(false); + + } + if($isSubtypeOf($switchVal26.getType(),M_lang_rascal_syntax_Rascal.NT_StringCharacter)){ + /*muExists*/CASE_0_5: + do { + if($isSubtypeOf($switchVal26.getType(),M_lang_rascal_syntax_Rascal.NT_StringCharacter)){ + final Matcher $matcher39 = (Matcher)$regExpCompile("^\\\\f", org.rascalmpl.values.parsetrees.TreeAdapter.yield($switchVal26)); + boolean $found40 = true; + + while($found40){ + $found40 = $matcher39.find(); + if($found40){ + return ((IString)$constants.get(19)/*" "*/); + + } + + } + + } + + } while(false); + + } + if($isSubtypeOf($switchVal26.getType(),M_lang_rascal_syntax_Rascal.NT_StringCharacter)){ + /*muExists*/CASE_0_6: + do { + if($isSubtypeOf($switchVal26.getType(),M_lang_rascal_syntax_Rascal.NT_StringCharacter)){ + final Matcher $matcher41 = (Matcher)$regExpCompile("^\\\\\\>", org.rascalmpl.values.parsetrees.TreeAdapter.yield($switchVal26)); + boolean $found42 = true; + + while($found42){ + $found42 = $matcher41.find(); + if($found42){ + return ((IString)$constants.get(20)/*">"*/); + + } + + } + + } + + } while(false); + + } + if($isSubtypeOf($switchVal26.getType(),M_lang_rascal_syntax_Rascal.NT_StringCharacter)){ + /*muExists*/CASE_0_7: + do { + if($isSubtypeOf($switchVal26.getType(),M_lang_rascal_syntax_Rascal.NT_StringCharacter)){ + final Matcher $matcher43 = (Matcher)$regExpCompile("^\\\\\\<", org.rascalmpl.values.parsetrees.TreeAdapter.yield($switchVal26)); + boolean $found44 = true; + + while($found44){ + $found44 = $matcher43.find(); + if($found44){ + return ((IString)$constants.get(21)/*"<"*/); + + } + + } + + } + + } while(false); + + } + if($isSubtypeOf($switchVal26.getType(),M_lang_rascal_syntax_Rascal.NT_StringCharacter)){ + /*muExists*/CASE_0_8: + do { + if($isSubtypeOf($switchVal26.getType(),M_lang_rascal_syntax_Rascal.NT_StringCharacter)){ + final Matcher $matcher46 = (Matcher)$regExpCompile("^\\\\([\"\'\\\\ ])", org.rascalmpl.values.parsetrees.TreeAdapter.yield($switchVal26)); + boolean $found47 = true; + + while($found47){ + $found47 = $matcher46.find(); + if($found47){ + IString esc_2 = ((IString)($RVF.string($matcher46.group(1)))); + final Template $template45 = (Template)new Template($RVF, ""); + $template45.addStr(((IString)esc_2).getValue()); + return ((IString)($template45.close())); + + } + + } + + } + + } while(false); + + } + if($isSubtypeOf($switchVal26.getType(),M_lang_rascal_syntax_Rascal.NT_StringCharacter)){ + /*muExists*/CASE_0_9: + do { + if($isSubtypeOf($switchVal26.getType(),M_lang_rascal_syntax_Rascal.NT_StringCharacter)){ + final Matcher $matcher49 = (Matcher)$regExpCompile("^\\\\u([0-9a-fA-F][0-9a-fA-F][0-9a-fA-F][0-9a-fA-F])", org.rascalmpl.values.parsetrees.TreeAdapter.yield($switchVal26)); + boolean $found50 = true; + + while($found50){ + $found50 = $matcher49.find(); + if($found50){ + IString hex_3 = ((IString)($RVF.string($matcher49.group(1)))); + final Template $template48 = (Template)new Template($RVF, "0x"); + $template48.beginIndent(" "); + $template48.addStr(((IString)hex_3).getValue()); + $template48.endIndent(" "); + return ((IString)(M_String.stringChar(((IInteger)(M_String.toInt(((IString)($template48.close())))))))); + + } + + } + + } + + } while(false); + + } + if($isSubtypeOf($switchVal26.getType(),M_lang_rascal_syntax_Rascal.NT_StringCharacter)){ + /*muExists*/CASE_0_10: + do { + if($isSubtypeOf($switchVal26.getType(),M_lang_rascal_syntax_Rascal.NT_StringCharacter)){ + final Matcher $matcher52 = (Matcher)$regExpCompile("^\\\\U([0-9a-fA-F][0-9a-fA-F][0-9a-fA-F][0-9a-fA-F][0-9a-fA-F][0-9a-fA-F])", org.rascalmpl.values.parsetrees.TreeAdapter.yield($switchVal26)); + boolean $found53 = true; + + while($found53){ + $found53 = $matcher52.find(); + if($found53){ + IString hex_4 = ((IString)($RVF.string($matcher52.group(1)))); + final Template $template51 = (Template)new Template($RVF, "0x"); + $template51.beginIndent(" "); + $template51.addStr(((IString)hex_4).getValue()); + $template51.endIndent(" "); + return ((IString)(M_String.stringChar(((IInteger)(M_String.toInt(((IString)($template51.close())))))))); + + } + + } + + } + + } while(false); + + } + if($isSubtypeOf($switchVal26.getType(),M_lang_rascal_syntax_Rascal.NT_StringCharacter)){ + /*muExists*/CASE_0_11: + do { + if($isSubtypeOf($switchVal26.getType(),M_lang_rascal_syntax_Rascal.NT_StringCharacter)){ + final Matcher $matcher55 = (Matcher)$regExpCompile("^\\\\a([0-7][0-9a-fA-F])", org.rascalmpl.values.parsetrees.TreeAdapter.yield($switchVal26)); + boolean $found56 = true; + + while($found56){ + $found56 = $matcher55.find(); + if($found56){ + IString hex_5 = ((IString)($RVF.string($matcher55.group(1)))); + final Template $template54 = (Template)new Template($RVF, "0x"); + $template54.beginIndent(" "); + $template54.addStr(((IString)hex_5).getValue()); + $template54.endIndent(" "); + return ((IString)(M_String.stringChar(((IInteger)(M_String.toInt(((IString)($template54.close())))))))); + + } + + } + + } + + } while(false); + + } + if($isSubtypeOf($switchVal26.getType(),M_lang_rascal_syntax_Rascal.NT_StringCharacter)){ + /*muExists*/CASE_0_12: + do { + if($isSubtypeOf($switchVal26.getType(),M_lang_rascal_syntax_Rascal.NT_StringCharacter)){ + final Matcher $matcher57 = (Matcher)$regExpCompile("^\n[ \t]* \'", org.rascalmpl.values.parsetrees.TreeAdapter.yield($switchVal26)); + boolean $found58 = true; + + while($found58){ + $found58 = $matcher57.find(); + if($found58){ + return ((IString)$constants.get(15)/*" + "*/); + + } + + } + + } + + } while(false); + + } + final Template $template27 = (Template)new Template($RVF, "character, missed a case "); + $template27.beginIndent(" "); + $template27.addVal(c_0); + $template27.endIndent(" "); + throw new Throw($template27.close()); + } + + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/lang/rascal/grammar/definition/Literals.rsc|(2514,315,<62,0>,<75,1>) + public IString lang_rascal_grammar_definition_Literals_unescapeLiteral$e6a60df99649b8e5(IString s_0){ + + + try { + IValue $visitResult = $TRAVERSE.traverse(DIRECTION.BottomUp, PROGRESS.Continuing, FIXEDPOINT.No, REBUILD.Yes, + new DescendantDescriptor(new io.usethesource.vallang.type.Type[]{$TF.stringType()}, + new io.usethesource.vallang.IConstructor[]{}, + $RVF.bool(false)), + s_0, + (IVisitFunction) (IValue $VISIT20_subject, TraversalState $traversalState) -> { + VISIT20:switch(Fingerprint.getFingerprint($VISIT20_subject)){ + + case 0: + + + default: + if($isSubtypeOf($VISIT20_subject.getType(),$T0)){ + /*muExists*/CASE_0_0: + do { + final Matcher $matcher60 = (Matcher)$regExpCompile("\\\\b", ((IString)($VISIT20_subject)).getValue()); + boolean $found61 = true; + + while($found61){ + $found61 = $matcher60.find(); + if($found61){ + $traversalState.setBegin($matcher60.start()); + $traversalState.setEnd($matcher60.end()); + IString $replacement59 = (IString)(((IString)$constants.get(17)/*""*/)); + if($isSubtypeOf($replacement59.getType(),$VISIT20_subject.getType())){ + $traversalState.setMatchedAndChanged(true, true); + return $replacement59; + + } else { + break VISIT20;// switch + + } + } + + } + + } while(false); + + } + if($isSubtypeOf($VISIT20_subject.getType(),$T0)){ + /*muExists*/CASE_0_1: + do { + final Matcher $matcher63 = (Matcher)$regExpCompile("\\\\f", ((IString)($VISIT20_subject)).getValue()); + boolean $found64 = true; + + while($found64){ + $found64 = $matcher63.find(); + if($found64){ + $traversalState.setBegin($matcher63.start()); + $traversalState.setEnd($matcher63.end()); + IString $replacement62 = (IString)(((IString)$constants.get(19)/*" "*/)); + if($isSubtypeOf($replacement62.getType(),$VISIT20_subject.getType())){ + $traversalState.setMatchedAndChanged(true, true); + return $replacement62; + + } else { + break VISIT20;// switch + + } + } + + } + + } while(false); + + } + if($isSubtypeOf($VISIT20_subject.getType(),$T0)){ + /*muExists*/CASE_0_2: + do { + final Matcher $matcher66 = (Matcher)$regExpCompile("\\\\n", ((IString)($VISIT20_subject)).getValue()); + boolean $found67 = true; + + while($found67){ + $found67 = $matcher66.find(); + if($found67){ + $traversalState.setBegin($matcher66.start()); + $traversalState.setEnd($matcher66.end()); + IString $replacement65 = (IString)(((IString)$constants.get(15)/*" + "*/)); + if($isSubtypeOf($replacement65.getType(),$VISIT20_subject.getType())){ + $traversalState.setMatchedAndChanged(true, true); + return $replacement65; + + } else { + break VISIT20;// switch + + } + } + + } + + } while(false); + + } + if($isSubtypeOf($VISIT20_subject.getType(),$T0)){ + /*muExists*/CASE_0_3: + do { + final Matcher $matcher69 = (Matcher)$regExpCompile("\\\\t", ((IString)($VISIT20_subject)).getValue()); + boolean $found70 = true; + + while($found70){ + $found70 = $matcher69.find(); + if($found70){ + $traversalState.setBegin($matcher69.start()); + $traversalState.setEnd($matcher69.end()); + IString $replacement68 = (IString)(((IString)$constants.get(16)/*" "*/)); + if($isSubtypeOf($replacement68.getType(),$VISIT20_subject.getType())){ + $traversalState.setMatchedAndChanged(true, true); + return $replacement68; + + } else { + break VISIT20;// switch + + } + } + + } + + } while(false); + + } + if($isSubtypeOf($VISIT20_subject.getType(),$T0)){ + /*muExists*/CASE_0_4: + do { + final Matcher $matcher72 = (Matcher)$regExpCompile("\\\\r", ((IString)($VISIT20_subject)).getValue()); + boolean $found73 = true; + + while($found73){ + $found73 = $matcher72.find(); + if($found73){ + $traversalState.setBegin($matcher72.start()); + $traversalState.setEnd($matcher72.end()); + IString $replacement71 = (IString)(((IString)$constants.get(18)/*" "*/)); + if($isSubtypeOf($replacement71.getType(),$VISIT20_subject.getType())){ + $traversalState.setMatchedAndChanged(true, true); + return $replacement71; + + } else { + break VISIT20;// switch + + } + } + + } + + } while(false); + + } + if($isSubtypeOf($VISIT20_subject.getType(),$T0)){ + /*muExists*/CASE_0_5: + do { + final Matcher $matcher75 = (Matcher)$regExpCompile("\\\\\"", ((IString)($VISIT20_subject)).getValue()); + boolean $found76 = true; + + while($found76){ + $found76 = $matcher75.find(); + if($found76){ + $traversalState.setBegin($matcher75.start()); + $traversalState.setEnd($matcher75.end()); + IString $replacement74 = (IString)(((IString)$constants.get(22)/*"""*/)); + if($isSubtypeOf($replacement74.getType(),$VISIT20_subject.getType())){ + $traversalState.setMatchedAndChanged(true, true); + return $replacement74; + + } else { + break VISIT20;// switch + + } + } + + } + + } while(false); + + } + if($isSubtypeOf($VISIT20_subject.getType(),$T0)){ + /*muExists*/CASE_0_6: + do { + final Matcher $matcher78 = (Matcher)$regExpCompile("\\\\\'", ((IString)($VISIT20_subject)).getValue()); + boolean $found79 = true; + + while($found79){ + $found79 = $matcher78.find(); + if($found79){ + $traversalState.setBegin($matcher78.start()); + $traversalState.setEnd($matcher78.end()); + IString $replacement77 = (IString)(((IString)$constants.get(23)/*"'"*/)); + if($isSubtypeOf($replacement77.getType(),$VISIT20_subject.getType())){ + $traversalState.setMatchedAndChanged(true, true); + return $replacement77; + + } else { + break VISIT20;// switch + + } + } + + } + + } while(false); + + } + if($isSubtypeOf($VISIT20_subject.getType(),$T0)){ + /*muExists*/CASE_0_7: + do { + final Matcher $matcher81 = (Matcher)$regExpCompile("\\\\\\\\", ((IString)($VISIT20_subject)).getValue()); + boolean $found82 = true; + + while($found82){ + $found82 = $matcher81.find(); + if($found82){ + $traversalState.setBegin($matcher81.start()); + $traversalState.setEnd($matcher81.end()); + IString $replacement80 = (IString)(((IString)$constants.get(24)/*"\"*/)); + if($isSubtypeOf($replacement80.getType(),$VISIT20_subject.getType())){ + $traversalState.setMatchedAndChanged(true, true); + return $replacement80; + + } else { + break VISIT20;// switch + + } + } + + } + + } while(false); + + } + if($isSubtypeOf($VISIT20_subject.getType(),$T0)){ + /*muExists*/CASE_0_8: + do { + final Matcher $matcher84 = (Matcher)$regExpCompile("\\\\\\<", ((IString)($VISIT20_subject)).getValue()); + boolean $found85 = true; + + while($found85){ + $found85 = $matcher84.find(); + if($found85){ + $traversalState.setBegin($matcher84.start()); + $traversalState.setEnd($matcher84.end()); + IString $replacement83 = (IString)(((IString)$constants.get(21)/*"<"*/)); + if($isSubtypeOf($replacement83.getType(),$VISIT20_subject.getType())){ + $traversalState.setMatchedAndChanged(true, true); + return $replacement83; + + } else { + break VISIT20;// switch + + } + } + + } + + } while(false); + + } + if($isSubtypeOf($VISIT20_subject.getType(),$T0)){ + /*muExists*/CASE_0_9: + do { + final Matcher $matcher87 = (Matcher)$regExpCompile("\\\\\\>", ((IString)($VISIT20_subject)).getValue()); + boolean $found88 = true; + + while($found88){ + $found88 = $matcher87.find(); + if($found88){ + $traversalState.setBegin($matcher87.start()); + $traversalState.setEnd($matcher87.end()); + IString $replacement86 = (IString)(((IString)$constants.get(20)/*">"*/)); + if($isSubtypeOf($replacement86.getType(),$VISIT20_subject.getType())){ + $traversalState.setMatchedAndChanged(true, true); + return $replacement86; + + } else { + break VISIT20;// switch + + } + } + + } + + } while(false); + + } + + } + return $VISIT20_subject; + }); + return (IString)$visitResult; + + } catch (ReturnFromTraversalException e) { + return (IString) e.getValue(); + } + + } + + + public static void main(String[] args) { + throw new RuntimeException("No function `main` found in Rascal module `lang::rascal::grammar::definition::Literals`"); + } +} \ No newline at end of file diff --git a/src/rascal/lang/rascal/grammar/definition/$Literals.tpl b/src/rascal/lang/rascal/grammar/definition/$Literals.tpl new file mode 100644 index 00000000000..efcf099f9fc Binary files /dev/null and b/src/rascal/lang/rascal/grammar/definition/$Literals.tpl differ diff --git a/src/rascal/lang/rascal/grammar/definition/$Literals_$I.java b/src/rascal/lang/rascal/grammar/definition/$Literals_$I.java new file mode 100644 index 00000000000..c66c860d654 --- /dev/null +++ b/src/rascal/lang/rascal/grammar/definition/$Literals_$I.java @@ -0,0 +1,14 @@ +package rascal.lang.rascal.grammar.definition; +import io.usethesource.vallang.*; +import org.rascalmpl.runtime.function.*; + +@SuppressWarnings("unused") +public interface $Literals_$I { + IValue character(IValue $0); + IValue ciliteral(IValue $0); + IValue cistr2syms(IValue $0); + IValue literal(IValue $0); + IValue literals(IValue $0); + IValue str2syms(IValue $0); + IValue unescapeLiteral(IValue $0); +} \ No newline at end of file diff --git a/src/rascal/lang/rascal/grammar/definition/$Modules.constants b/src/rascal/lang/rascal/grammar/definition/$Modules.constants new file mode 100644 index 00000000000..66a814737f2 Binary files /dev/null and b/src/rascal/lang/rascal/grammar/definition/$Modules.constants differ diff --git a/src/rascal/lang/rascal/grammar/definition/$Modules.java b/src/rascal/lang/rascal/grammar/definition/$Modules.java new file mode 100644 index 00000000000..4136d4281e4 --- /dev/null +++ b/src/rascal/lang/rascal/grammar/definition/$Modules.java @@ -0,0 +1,1522 @@ +package rascal.lang.rascal.grammar.definition; +import java.io.PrintWriter; +import java.io.StringWriter; +import java.io.InputStreamReader; +import java.io.PrintWriter; +import java.util.*; +import java.util.regex.Matcher; +import io.usethesource.vallang.*; +import io.usethesource.vallang.type.*; +import org.rascalmpl.runtime.*; +import org.rascalmpl.runtime.RascalExecutionContext; +import org.rascalmpl.runtime.function.*; +import org.rascalmpl.runtime.traverse.*; +import org.rascalmpl.runtime.utils.*; +import org.rascalmpl.exceptions.RuntimeExceptionFactory; +import org.rascalmpl.exceptions.Throw; +import org.rascalmpl.runtime.RascalExecutionContext; +import org.rascalmpl.interpreter.control_exceptions.Filtered; +import org.rascalmpl.types.NonTerminalType; +import org.rascalmpl.types.RascalTypeFactory; +import org.rascalmpl.util.ExpiringFunctionResultCache; +import org.rascalmpl.values.RascalValueFactory; +import org.rascalmpl.values.ValueFactoryFactory; +import org.rascalmpl.values.parsetrees.ITree; +import org.rascalmpl.values.parsetrees.TreeAdapter; + + + +@SuppressWarnings({"unused","unchecked","deprecation"}) +public class $Modules + extends + org.rascalmpl.runtime.$RascalModule + implements + rascal.lang.rascal.grammar.definition.$Modules_$I { + + private final $Modules_$I $me; + private final IList $constants; + + + public final rascal.$Set M_Set; + public final rascal.lang.rascal.syntax.$Rascal M_lang_rascal_syntax_Rascal; + public final rascal.lang.rascal.grammar.definition.$Layout M_lang_rascal_grammar_definition_Layout; + public final rascal.$ParseTree M_ParseTree; + public final rascal.lang.rascal.grammar.definition.$Productions M_lang_rascal_grammar_definition_Productions; + public final rascal.$Type M_Type; + public final rascal.$List M_List; + public final rascal.lang.rascal.grammar.definition.$Names M_lang_rascal_grammar_definition_Names; + public final rascal.lang.rascal.grammar.definition.$Literals M_lang_rascal_grammar_definition_Literals; + public final rascal.$Grammar M_Grammar; + public final rascal.$Message M_Message; + + + + public final io.usethesource.vallang.type.Type $T3; /*avalue()*/ + public final io.usethesource.vallang.type.Type $T6; /*astr()*/ + public final io.usethesource.vallang.type.Type $T11; /*astr(alabel="name")*/ + public final io.usethesource.vallang.type.Type $T18; /*aparameter("A",avalue(),closed=true)*/ + public final io.usethesource.vallang.type.Type $T7; /*aparameter("A",avalue(),closed=false)*/ + public final io.usethesource.vallang.type.Type $T4; /*aparameter("T",avalue(),closed=false)*/ + public final io.usethesource.vallang.type.Type ADT_Visibility; /*aadt("Visibility",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Visibility; /*aadt("Visibility",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Replacement; /*aadt("Replacement",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Replacement; /*aadt("Replacement",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Name; /*aadt("Name",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Name; /*aadt("Name",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_PostProtocolChars; /*aadt("PostProtocolChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_PostProtocolChars; /*aadt("PostProtocolChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_FunctionType; /*aadt("FunctionType",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_FunctionType; /*aadt("FunctionType",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Strategy; /*aadt("Strategy",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Strategy; /*aadt("Strategy",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Import; /*aadt("Import",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Import; /*aadt("Import",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type $T1; /*aset(aadt("Import",[],contextFreeSyntax()))*/ + public final io.usethesource.vallang.type.Type ADT_MidStringChars; /*aadt("MidStringChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_MidStringChars; /*aadt("MidStringChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Variable; /*aadt("Variable",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Variable; /*aadt("Variable",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Tree; /*aadt("Tree",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type $T16; /*aparameter("T",aadt("Tree",[],dataSyntax()),closed=true)*/ + public final io.usethesource.vallang.type.Type ADT_KeywordArguments_1; /*aadt("KeywordArguments",[aparameter("T",aadt("Tree",[],dataSyntax()),closed=true)],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_KeywordArguments_1; /*aadt("KeywordArguments",[aparameter("T",aadt("Tree",[],dataSyntax()),closed=true)],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Range; /*aadt("Range",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Range; /*aadt("Range",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type $T13; /*aset(astr(),alabel="extends")*/ + public final io.usethesource.vallang.type.Type ADT_Pattern; /*aadt("Pattern",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Pattern; /*aadt("Pattern",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Mapping_Pattern; /*aadt("Mapping",[aadt("Pattern",[],contextFreeSyntax())],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Mapping_Pattern; /*aadt("Mapping",[aadt("Pattern",[],contextFreeSyntax())],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_LocationChangeType; /*aadt("LocationChangeType",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_ProtocolChars; /*aadt("ProtocolChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_ProtocolChars; /*aadt("ProtocolChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_TagString; /*aadt("TagString",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_TagString; /*aadt("TagString",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type $T12; /*aset(astr(),alabel="imports")*/ + public final io.usethesource.vallang.type.Type ADT_SyntaxDefinition; /*aadt("SyntaxDefinition",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_SyntaxDefinition; /*aadt("SyntaxDefinition",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type $T14; /*aset(aadt("SyntaxDefinition",[],contextFreeSyntax()),alabel="defs")*/ + public final io.usethesource.vallang.type.Type $T15; /*atuple(atypeList([aset(astr(),alabel="imports"),aset(astr(),alabel="extends"),aset(aadt("SyntaxDefinition",[],contextFreeSyntax()),alabel="defs")]),alabel="mod")*/ + public final io.usethesource.vallang.type.Type $T10; /*amap(astr(alabel="name"),atuple(atypeList([aset(astr(),alabel="imports"),aset(astr(),alabel="extends"),aset(aadt("SyntaxDefinition",[],contextFreeSyntax()),alabel="defs")]),alabel="mod"))*/ + public final io.usethesource.vallang.type.Type ADT_Concrete; /*aadt("Concrete",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Concrete; /*aadt("Concrete",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_IOCapability; /*aadt("IOCapability",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_RegExpLiteral; /*aadt("RegExpLiteral",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_RegExpLiteral; /*aadt("RegExpLiteral",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Item; /*aadt("Item",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_GrammarModule; /*aadt("GrammarModule",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_IntegerLiteral; /*aadt("IntegerLiteral",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_IntegerLiteral; /*aadt("IntegerLiteral",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Declarator; /*aadt("Declarator",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Declarator; /*aadt("Declarator",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Target; /*aadt("Target",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Target; /*aadt("Target",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_ModuleParameters; /*aadt("ModuleParameters",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_ModuleParameters; /*aadt("ModuleParameters",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type $T17; /*aparameter("T",aadt("Tree",[],dataSyntax()),closed=false)*/ + public final io.usethesource.vallang.type.Type ADT_DatePart; /*aadt("DatePart",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_DatePart; /*aadt("DatePart",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Output; /*aadt("Output",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Output; /*aadt("Output",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_RationalLiteral; /*aadt("RationalLiteral",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_RationalLiteral; /*aadt("RationalLiteral",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_BooleanLiteral; /*aadt("BooleanLiteral",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_BooleanLiteral; /*aadt("BooleanLiteral",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_LocalVariableDeclaration; /*aadt("LocalVariableDeclaration",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_LocalVariableDeclaration; /*aadt("LocalVariableDeclaration",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Attr; /*aadt("Attr",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Expression; /*aadt("Expression",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Expression; /*aadt("Expression",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Mapping_Expression; /*aadt("Mapping",[aadt("Expression",[],contextFreeSyntax())],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Mapping_Expression; /*aadt("Mapping",[aadt("Expression",[],contextFreeSyntax())],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_LAYOUT; /*aadt("LAYOUT",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_LAYOUT; /*aadt("LAYOUT",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_TimePartNoTZ; /*aadt("TimePartNoTZ",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_TimePartNoTZ; /*aadt("TimePartNoTZ",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_KeywordArguments_Expression; /*aadt("KeywordArguments",[aadt("Expression",[],contextFreeSyntax())],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_KeywordArguments_Expression; /*aadt("KeywordArguments",[aadt("Expression",[],contextFreeSyntax())],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Mapping_1; /*aadt("Mapping",[aparameter("T",aadt("Tree",[],dataSyntax()),closed=true)],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Mapping_1; /*aadt("Mapping",[aparameter("T",aadt("Tree",[],dataSyntax()),closed=true)],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_ImportedModule; /*aadt("ImportedModule",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_ImportedModule; /*aadt("ImportedModule",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Case; /*aadt("Case",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Case; /*aadt("Case",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_KeywordFormals; /*aadt("KeywordFormals",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_KeywordFormals; /*aadt("KeywordFormals",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_DataTarget; /*aadt("DataTarget",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_DataTarget; /*aadt("DataTarget",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Renaming; /*aadt("Renaming",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Renaming; /*aadt("Renaming",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Production; /*aadt("Production",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Maybe_1; /*aadt("Maybe",[aparameter("A",avalue(),closed=true)],dataSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Renamings; /*aadt("Renamings",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Renamings; /*aadt("Renamings",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_KeywordFormal; /*aadt("KeywordFormal",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_KeywordFormal; /*aadt("KeywordFormal",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_OptionalExpression; /*aadt("OptionalExpression",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_OptionalExpression; /*aadt("OptionalExpression",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_GrammarDefinition; /*aadt("GrammarDefinition",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Catch; /*aadt("Catch",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Catch; /*aadt("Catch",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Field; /*aadt("Field",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Field; /*aadt("Field",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_FunctionBody; /*aadt("FunctionBody",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_FunctionBody; /*aadt("FunctionBody",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_LocationLiteral; /*aadt("LocationLiteral",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_LocationLiteral; /*aadt("LocationLiteral",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Tag; /*aadt("Tag",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Tag; /*aadt("Tag",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Type; /*aadt("Type",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Type; /*aadt("Type",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_HexIntegerLiteral; /*aadt("HexIntegerLiteral",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_HexIntegerLiteral; /*aadt("HexIntegerLiteral",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_PostStringChars; /*aadt("PostStringChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_PostStringChars; /*aadt("PostStringChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_TimeZonePart; /*aadt("TimeZonePart",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_TimeZonePart; /*aadt("TimeZonePart",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Declaration; /*aadt("Declaration",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Declaration; /*aadt("Declaration",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_ShellCommand; /*aadt("ShellCommand",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_ShellCommand; /*aadt("ShellCommand",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Symbol; /*aadt("Symbol",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_PreStringChars; /*aadt("PreStringChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_PreStringChars; /*aadt("PreStringChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Nonterminal; /*aadt("Nonterminal",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Nonterminal; /*aadt("Nonterminal",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_StringLiteral; /*aadt("StringLiteral",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_StringLiteral; /*aadt("StringLiteral",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Module; /*aadt("Module",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Module; /*aadt("Module",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type $T0; /*start(aadt("Module",[],contextFreeSyntax()))*/ + public final io.usethesource.vallang.type.Type ADT_TypeArg; /*aadt("TypeArg",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_TypeArg; /*aadt("TypeArg",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_NonterminalLabel; /*aadt("NonterminalLabel",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_NonterminalLabel; /*aadt("NonterminalLabel",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Bound; /*aadt("Bound",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Bound; /*aadt("Bound",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_RegExp; /*aadt("RegExp",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_RegExp; /*aadt("RegExp",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_KeywordArguments_Pattern; /*aadt("KeywordArguments",[aadt("Pattern",[],contextFreeSyntax())],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_KeywordArguments_Pattern; /*aadt("KeywordArguments",[aadt("Pattern",[],contextFreeSyntax())],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Class; /*aadt("Class",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Class; /*aadt("Class",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Condition; /*aadt("Condition",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_PathPart; /*aadt("PathPart",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_PathPart; /*aadt("PathPart",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Signature; /*aadt("Signature",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Signature; /*aadt("Signature",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_KeywordArgument_1; /*aadt("KeywordArgument",[aparameter("T",aadt("Tree",[],dataSyntax()),closed=true)],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_KeywordArgument_1; /*aadt("KeywordArgument",[aparameter("T",aadt("Tree",[],dataSyntax()),closed=true)],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Tags; /*aadt("Tags",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Tags; /*aadt("Tags",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type $T5; /*alist(aparameter("T",avalue(),closed=false))*/ + public final io.usethesource.vallang.type.Type ADT_ModuleActuals; /*aadt("ModuleActuals",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_ModuleActuals; /*aadt("ModuleActuals",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Maybe_Symbol; /*aadt("Maybe",[aadt("Symbol",[],dataSyntax())],dataSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_URLChars; /*aadt("URLChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_URLChars; /*aadt("URLChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Body; /*aadt("Body",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Body; /*aadt("Body",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Maybe_Associativity; /*aadt("Maybe",[aadt("Associativity",[],dataSyntax(),alabel="a")],dataSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Start; /*aadt("Start",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Start; /*aadt("Start",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_OptionalComma; /*aadt("OptionalComma",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_OptionalComma; /*aadt("OptionalComma",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_PrePathChars; /*aadt("PrePathChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_PrePathChars; /*aadt("PrePathChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_StringConstant; /*aadt("StringConstant",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_StringConstant; /*aadt("StringConstant",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Backslash; /*aadt("Backslash",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Backslash; /*aadt("Backslash",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_DateAndTime; /*aadt("DateAndTime",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_DateAndTime; /*aadt("DateAndTime",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_StringTail; /*aadt("StringTail",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_StringTail; /*aadt("StringTail",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_CaseInsensitiveStringConstant; /*aadt("CaseInsensitiveStringConstant",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_CaseInsensitiveStringConstant; /*aadt("CaseInsensitiveStringConstant",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Char; /*aadt("Char",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Char; /*aadt("Char",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Assignment; /*aadt("Assignment",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Assignment; /*aadt("Assignment",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Header; /*aadt("Header",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Header; /*aadt("Header",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Exception; /*aadt("Exception",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_PatternWithAction; /*aadt("PatternWithAction",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_PatternWithAction; /*aadt("PatternWithAction",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_PostPathChars; /*aadt("PostPathChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_PostPathChars; /*aadt("PostPathChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_FunctionDeclaration; /*aadt("FunctionDeclaration",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_FunctionDeclaration; /*aadt("FunctionDeclaration",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_DataTypeSelector; /*aadt("DataTypeSelector",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_DataTypeSelector; /*aadt("DataTypeSelector",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type $T8; /*aset(aadt("Production",[],dataSyntax()))*/ + public final io.usethesource.vallang.type.Type ADT_JustDate; /*aadt("JustDate",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_JustDate; /*aadt("JustDate",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_TypeVar; /*aadt("TypeVar",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_TypeVar; /*aadt("TypeVar",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Variant; /*aadt("Variant",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Variant; /*aadt("Variant",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_UserType; /*aadt("UserType",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_UserType; /*aadt("UserType",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_FunctionModifiers; /*aadt("FunctionModifiers",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_FunctionModifiers; /*aadt("FunctionModifiers",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Comprehension; /*aadt("Comprehension",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Comprehension; /*aadt("Comprehension",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Maybe_Attr; /*aadt("Maybe",[aadt("Attr",[],dataSyntax())],dataSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_TreeSearchResult_1; /*aadt("TreeSearchResult",[aparameter("T",aadt("Tree",[],dataSyntax()),closed=true)],dataSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_LAYOUTLIST; /*aadt("LAYOUTLIST",[],layoutSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_ConcreteHole; /*aadt("ConcreteHole",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_ConcreteHole; /*aadt("ConcreteHole",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Grammar; /*aadt("Grammar",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Message; /*aadt("Message",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_StringMiddle; /*aadt("StringMiddle",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_StringMiddle; /*aadt("StringMiddle",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Sym; /*aadt("Sym",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Sym; /*aadt("Sym",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_RealLiteral; /*aadt("RealLiteral",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_RealLiteral; /*aadt("RealLiteral",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type $T19; /*\iter-star-seps(aadt("Import",[],contextFreeSyntax()),[aadt("LAYOUTLIST",[],layoutSyntax())])*/ + public final io.usethesource.vallang.type.Type ADT_LocationType; /*aadt("LocationType",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Formals; /*aadt("Formals",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Formals; /*aadt("Formals",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_CharRange; /*aadt("CharRange",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_QualifiedName; /*aadt("QualifiedName",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_QualifiedName; /*aadt("QualifiedName",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_MidPathChars; /*aadt("MidPathChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_MidPathChars; /*aadt("MidPathChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Parameters; /*aadt("Parameters",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Parameters; /*aadt("Parameters",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_MidProtocolChars; /*aadt("MidProtocolChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_MidProtocolChars; /*aadt("MidProtocolChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type Maybe_Symbol_just_Symbol; /*acons(aadt("Maybe",[aadt("Symbol",[],dataSyntax())],dataSyntax()),[aadt("Symbol",[],dataSyntax(),alabel="val")],[],alabel="just")*/ + public final io.usethesource.vallang.type.Type ADT_PathTail; /*aadt("PathTail",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_PathTail; /*aadt("PathTail",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type $T2; /*aset(aparameter("T",avalue(),closed=false))*/ + public final io.usethesource.vallang.type.Type ADT_PreProtocolChars; /*aadt("PreProtocolChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_PreProtocolChars; /*aadt("PreProtocolChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_StringTemplate; /*aadt("StringTemplate",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_StringTemplate; /*aadt("StringTemplate",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_OctalIntegerLiteral; /*aadt("OctalIntegerLiteral",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_OctalIntegerLiteral; /*aadt("OctalIntegerLiteral",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_ProtocolPart; /*aadt("ProtocolPart",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_ProtocolPart; /*aadt("ProtocolPart",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_NamedBackslash; /*aadt("NamedBackslash",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_NamedBackslash; /*aadt("NamedBackslash",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Label; /*aadt("Label",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Label; /*aadt("Label",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Kind; /*aadt("Kind",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Kind; /*aadt("Kind",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_RegExpModifier; /*aadt("RegExpModifier",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_RegExpModifier; /*aadt("RegExpModifier",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Prod; /*aadt("Prod",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Prod; /*aadt("Prod",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_LocationChangeEvent; /*aadt("LocationChangeEvent",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Associativity; /*aadt("Associativity",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_NamedRegExp; /*aadt("NamedRegExp",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_NamedRegExp; /*aadt("NamedRegExp",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_RascalKeywords; /*aadt("RascalKeywords",[],keywordSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_RuntimeException; /*aadt("RuntimeException",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_DecimalIntegerLiteral; /*aadt("DecimalIntegerLiteral",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_DecimalIntegerLiteral; /*aadt("DecimalIntegerLiteral",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Assoc; /*aadt("Assoc",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Assoc; /*aadt("Assoc",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_EvalCommand; /*aadt("EvalCommand",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_EvalCommand; /*aadt("EvalCommand",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_PathChars; /*aadt("PathChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_PathChars; /*aadt("PathChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_FunctionModifier; /*aadt("FunctionModifier",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_FunctionModifier; /*aadt("FunctionModifier",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_ProdModifier; /*aadt("ProdModifier",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_ProdModifier; /*aadt("ProdModifier",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_JustTime; /*aadt("JustTime",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_JustTime; /*aadt("JustTime",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_UnicodeEscape; /*aadt("UnicodeEscape",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_UnicodeEscape; /*aadt("UnicodeEscape",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_StringCharacter; /*aadt("StringCharacter",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_StringCharacter; /*aadt("StringCharacter",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Statement; /*aadt("Statement",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Statement; /*aadt("Statement",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_ConcretePart; /*aadt("ConcretePart",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_ConcretePart; /*aadt("ConcretePart",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Literal; /*aadt("Literal",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Literal; /*aadt("Literal",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Comment; /*aadt("Comment",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Comment; /*aadt("Comment",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Commands; /*aadt("Commands",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Commands; /*aadt("Commands",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Visit; /*aadt("Visit",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Visit; /*aadt("Visit",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Command; /*aadt("Command",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Command; /*aadt("Command",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_StructuredType; /*aadt("StructuredType",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_StructuredType; /*aadt("StructuredType",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_DateTimeLiteral; /*aadt("DateTimeLiteral",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_DateTimeLiteral; /*aadt("DateTimeLiteral",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Assignable; /*aadt("Assignable",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Assignable; /*aadt("Assignable",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Toplevel; /*aadt("Toplevel",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Toplevel; /*aadt("Toplevel",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_CommonKeywordParameters; /*aadt("CommonKeywordParameters",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_CommonKeywordParameters; /*aadt("CommonKeywordParameters",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type $T9; /*aset(start(aadt("Module",[],contextFreeSyntax())))*/ + public final io.usethesource.vallang.type.Type ADT_BasicType; /*aadt("BasicType",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_BasicType; /*aadt("BasicType",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_ProtocolTail; /*aadt("ProtocolTail",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_ProtocolTail; /*aadt("ProtocolTail",[],contextFreeSyntax())*/ + + public $Modules(RascalExecutionContext rex){ + this(rex, null); + } + + public $Modules(RascalExecutionContext rex, Object extended){ + super(rex); + this.$me = extended == null ? this : ($Modules_$I)extended; + ModuleStore mstore = rex.getModuleStore(); + mstore.put(rascal.lang.rascal.grammar.definition.$Modules.class, this); + + mstore.importModule(rascal.$Set.class, rex, rascal.$Set::new); + mstore.importModule(rascal.lang.rascal.syntax.$Rascal.class, rex, rascal.lang.rascal.syntax.$Rascal::new); + mstore.importModule(rascal.lang.rascal.grammar.definition.$Layout.class, rex, rascal.lang.rascal.grammar.definition.$Layout::new); + mstore.importModule(rascal.$ParseTree.class, rex, rascal.$ParseTree::new); + mstore.importModule(rascal.lang.rascal.grammar.definition.$Productions.class, rex, rascal.lang.rascal.grammar.definition.$Productions::new); + mstore.importModule(rascal.$Type.class, rex, rascal.$Type::new); + mstore.importModule(rascal.$List.class, rex, rascal.$List::new); + mstore.importModule(rascal.lang.rascal.grammar.definition.$Names.class, rex, rascal.lang.rascal.grammar.definition.$Names::new); + mstore.importModule(rascal.lang.rascal.grammar.definition.$Literals.class, rex, rascal.lang.rascal.grammar.definition.$Literals::new); + mstore.importModule(rascal.$Grammar.class, rex, rascal.$Grammar::new); + mstore.importModule(rascal.$Message.class, rex, rascal.$Message::new); + + M_Set = mstore.getModule(rascal.$Set.class); + M_lang_rascal_syntax_Rascal = mstore.getModule(rascal.lang.rascal.syntax.$Rascal.class); + M_lang_rascal_grammar_definition_Layout = mstore.getModule(rascal.lang.rascal.grammar.definition.$Layout.class); + M_ParseTree = mstore.getModule(rascal.$ParseTree.class); + M_lang_rascal_grammar_definition_Productions = mstore.getModule(rascal.lang.rascal.grammar.definition.$Productions.class); + M_Type = mstore.getModule(rascal.$Type.class); + M_List = mstore.getModule(rascal.$List.class); + M_lang_rascal_grammar_definition_Names = mstore.getModule(rascal.lang.rascal.grammar.definition.$Names.class); + M_lang_rascal_grammar_definition_Literals = mstore.getModule(rascal.lang.rascal.grammar.definition.$Literals.class); + M_Grammar = mstore.getModule(rascal.$Grammar.class); + M_Message = mstore.getModule(rascal.$Message.class); + + + + $TS.importStore(M_Set.$TS); + $TS.importStore(M_lang_rascal_syntax_Rascal.$TS); + $TS.importStore(M_lang_rascal_grammar_definition_Layout.$TS); + $TS.importStore(M_ParseTree.$TS); + $TS.importStore(M_lang_rascal_grammar_definition_Productions.$TS); + $TS.importStore(M_Type.$TS); + $TS.importStore(M_List.$TS); + $TS.importStore(M_lang_rascal_grammar_definition_Names.$TS); + $TS.importStore(M_lang_rascal_grammar_definition_Literals.$TS); + $TS.importStore(M_Grammar.$TS); + $TS.importStore(M_Message.$TS); + + $constants = readBinaryConstantsFile(this.getClass(), "rascal/lang/rascal/grammar/definition/$Modules.constants", 1777, "a2cb44e64d7df9b1b7b28f08bb78e774"); + NT_Visibility = $sort("Visibility"); + ADT_Visibility = $adt("Visibility"); + NT_Replacement = $sort("Replacement"); + ADT_Replacement = $adt("Replacement"); + NT_Name = $lex("Name"); + ADT_Name = $adt("Name"); + NT_PostProtocolChars = $lex("PostProtocolChars"); + ADT_PostProtocolChars = $adt("PostProtocolChars"); + NT_FunctionType = $sort("FunctionType"); + ADT_FunctionType = $adt("FunctionType"); + NT_Strategy = $sort("Strategy"); + ADT_Strategy = $adt("Strategy"); + NT_Import = $sort("Import"); + ADT_Import = $adt("Import"); + NT_MidStringChars = $lex("MidStringChars"); + ADT_MidStringChars = $adt("MidStringChars"); + NT_Variable = $sort("Variable"); + ADT_Variable = $adt("Variable"); + ADT_Tree = $adt("Tree"); + NT_Range = $sort("Range"); + ADT_Range = $adt("Range"); + NT_Pattern = $sort("Pattern"); + ADT_Pattern = $adt("Pattern"); + ADT_LocationChangeType = $adt("LocationChangeType"); + NT_ProtocolChars = $lex("ProtocolChars"); + ADT_ProtocolChars = $adt("ProtocolChars"); + NT_TagString = $lex("TagString"); + ADT_TagString = $adt("TagString"); + NT_SyntaxDefinition = $sort("SyntaxDefinition"); + ADT_SyntaxDefinition = $adt("SyntaxDefinition"); + NT_Concrete = $lex("Concrete"); + ADT_Concrete = $adt("Concrete"); + ADT_IOCapability = $adt("IOCapability"); + NT_RegExpLiteral = $lex("RegExpLiteral"); + ADT_RegExpLiteral = $adt("RegExpLiteral"); + ADT_Item = $adt("Item"); + ADT_GrammarModule = $adt("GrammarModule"); + NT_IntegerLiteral = $sort("IntegerLiteral"); + ADT_IntegerLiteral = $adt("IntegerLiteral"); + NT_Declarator = $sort("Declarator"); + ADT_Declarator = $adt("Declarator"); + NT_Target = $sort("Target"); + ADT_Target = $adt("Target"); + NT_ModuleParameters = $sort("ModuleParameters"); + ADT_ModuleParameters = $adt("ModuleParameters"); + NT_DatePart = $lex("DatePart"); + ADT_DatePart = $adt("DatePart"); + NT_Output = $lex("Output"); + ADT_Output = $adt("Output"); + NT_RationalLiteral = $lex("RationalLiteral"); + ADT_RationalLiteral = $adt("RationalLiteral"); + NT_BooleanLiteral = $lex("BooleanLiteral"); + ADT_BooleanLiteral = $adt("BooleanLiteral"); + NT_LocalVariableDeclaration = $sort("LocalVariableDeclaration"); + ADT_LocalVariableDeclaration = $adt("LocalVariableDeclaration"); + ADT_Attr = $adt("Attr"); + NT_Expression = $sort("Expression"); + ADT_Expression = $adt("Expression"); + NT_LAYOUT = $lex("LAYOUT"); + ADT_LAYOUT = $adt("LAYOUT"); + NT_TimePartNoTZ = $lex("TimePartNoTZ"); + ADT_TimePartNoTZ = $adt("TimePartNoTZ"); + NT_ImportedModule = $sort("ImportedModule"); + ADT_ImportedModule = $adt("ImportedModule"); + NT_Case = $sort("Case"); + ADT_Case = $adt("Case"); + NT_KeywordFormals = $sort("KeywordFormals"); + ADT_KeywordFormals = $adt("KeywordFormals"); + NT_DataTarget = $sort("DataTarget"); + ADT_DataTarget = $adt("DataTarget"); + NT_Renaming = $sort("Renaming"); + ADT_Renaming = $adt("Renaming"); + ADT_Production = $adt("Production"); + NT_Renamings = $sort("Renamings"); + ADT_Renamings = $adt("Renamings"); + NT_KeywordFormal = $sort("KeywordFormal"); + ADT_KeywordFormal = $adt("KeywordFormal"); + NT_OptionalExpression = $sort("OptionalExpression"); + ADT_OptionalExpression = $adt("OptionalExpression"); + ADT_GrammarDefinition = $adt("GrammarDefinition"); + NT_Catch = $sort("Catch"); + ADT_Catch = $adt("Catch"); + NT_Field = $sort("Field"); + ADT_Field = $adt("Field"); + NT_FunctionBody = $sort("FunctionBody"); + ADT_FunctionBody = $adt("FunctionBody"); + NT_LocationLiteral = $sort("LocationLiteral"); + ADT_LocationLiteral = $adt("LocationLiteral"); + NT_Tag = $sort("Tag"); + ADT_Tag = $adt("Tag"); + NT_Type = $sort("Type"); + ADT_Type = $adt("Type"); + NT_HexIntegerLiteral = $lex("HexIntegerLiteral"); + ADT_HexIntegerLiteral = $adt("HexIntegerLiteral"); + NT_PostStringChars = $lex("PostStringChars"); + ADT_PostStringChars = $adt("PostStringChars"); + NT_TimeZonePart = $lex("TimeZonePart"); + ADT_TimeZonePart = $adt("TimeZonePart"); + NT_Declaration = $sort("Declaration"); + ADT_Declaration = $adt("Declaration"); + NT_ShellCommand = $sort("ShellCommand"); + ADT_ShellCommand = $adt("ShellCommand"); + ADT_Symbol = $adt("Symbol"); + NT_PreStringChars = $lex("PreStringChars"); + ADT_PreStringChars = $adt("PreStringChars"); + NT_Nonterminal = $lex("Nonterminal"); + ADT_Nonterminal = $adt("Nonterminal"); + NT_StringLiteral = $sort("StringLiteral"); + ADT_StringLiteral = $adt("StringLiteral"); + NT_Module = $sort("Module"); + ADT_Module = $adt("Module"); + NT_TypeArg = $sort("TypeArg"); + ADT_TypeArg = $adt("TypeArg"); + NT_NonterminalLabel = $lex("NonterminalLabel"); + ADT_NonterminalLabel = $adt("NonterminalLabel"); + NT_Bound = $sort("Bound"); + ADT_Bound = $adt("Bound"); + NT_RegExp = $lex("RegExp"); + ADT_RegExp = $adt("RegExp"); + NT_Class = $sort("Class"); + ADT_Class = $adt("Class"); + ADT_Condition = $adt("Condition"); + NT_PathPart = $sort("PathPart"); + ADT_PathPart = $adt("PathPart"); + NT_Signature = $sort("Signature"); + ADT_Signature = $adt("Signature"); + NT_Tags = $sort("Tags"); + ADT_Tags = $adt("Tags"); + NT_ModuleActuals = $sort("ModuleActuals"); + ADT_ModuleActuals = $adt("ModuleActuals"); + NT_URLChars = $lex("URLChars"); + ADT_URLChars = $adt("URLChars"); + NT_Body = $sort("Body"); + ADT_Body = $adt("Body"); + NT_Start = $sort("Start"); + ADT_Start = $adt("Start"); + NT_OptionalComma = $lex("OptionalComma"); + ADT_OptionalComma = $adt("OptionalComma"); + NT_PrePathChars = $lex("PrePathChars"); + ADT_PrePathChars = $adt("PrePathChars"); + NT_StringConstant = $lex("StringConstant"); + ADT_StringConstant = $adt("StringConstant"); + NT_Backslash = $lex("Backslash"); + ADT_Backslash = $adt("Backslash"); + NT_DateAndTime = $lex("DateAndTime"); + ADT_DateAndTime = $adt("DateAndTime"); + NT_StringTail = $sort("StringTail"); + ADT_StringTail = $adt("StringTail"); + NT_CaseInsensitiveStringConstant = $lex("CaseInsensitiveStringConstant"); + ADT_CaseInsensitiveStringConstant = $adt("CaseInsensitiveStringConstant"); + NT_Char = $lex("Char"); + ADT_Char = $adt("Char"); + NT_Assignment = $sort("Assignment"); + ADT_Assignment = $adt("Assignment"); + NT_Header = $sort("Header"); + ADT_Header = $adt("Header"); + ADT_Exception = $adt("Exception"); + NT_PatternWithAction = $sort("PatternWithAction"); + ADT_PatternWithAction = $adt("PatternWithAction"); + NT_PostPathChars = $lex("PostPathChars"); + ADT_PostPathChars = $adt("PostPathChars"); + NT_FunctionDeclaration = $sort("FunctionDeclaration"); + ADT_FunctionDeclaration = $adt("FunctionDeclaration"); + NT_DataTypeSelector = $sort("DataTypeSelector"); + ADT_DataTypeSelector = $adt("DataTypeSelector"); + NT_JustDate = $lex("JustDate"); + ADT_JustDate = $adt("JustDate"); + NT_TypeVar = $sort("TypeVar"); + ADT_TypeVar = $adt("TypeVar"); + NT_Variant = $sort("Variant"); + ADT_Variant = $adt("Variant"); + NT_UserType = $sort("UserType"); + ADT_UserType = $adt("UserType"); + NT_FunctionModifiers = $sort("FunctionModifiers"); + ADT_FunctionModifiers = $adt("FunctionModifiers"); + NT_Comprehension = $sort("Comprehension"); + ADT_Comprehension = $adt("Comprehension"); + ADT_LAYOUTLIST = $layouts("LAYOUTLIST"); + NT_ConcreteHole = $sort("ConcreteHole"); + ADT_ConcreteHole = $adt("ConcreteHole"); + ADT_Grammar = $adt("Grammar"); + ADT_Message = $adt("Message"); + NT_StringMiddle = $sort("StringMiddle"); + ADT_StringMiddle = $adt("StringMiddle"); + NT_Sym = $sort("Sym"); + ADT_Sym = $adt("Sym"); + NT_RealLiteral = $lex("RealLiteral"); + ADT_RealLiteral = $adt("RealLiteral"); + ADT_LocationType = $adt("LocationType"); + NT_Formals = $sort("Formals"); + ADT_Formals = $adt("Formals"); + ADT_CharRange = $adt("CharRange"); + NT_QualifiedName = $sort("QualifiedName"); + ADT_QualifiedName = $adt("QualifiedName"); + NT_MidPathChars = $lex("MidPathChars"); + ADT_MidPathChars = $adt("MidPathChars"); + NT_Parameters = $sort("Parameters"); + ADT_Parameters = $adt("Parameters"); + NT_MidProtocolChars = $lex("MidProtocolChars"); + ADT_MidProtocolChars = $adt("MidProtocolChars"); + NT_PathTail = $sort("PathTail"); + ADT_PathTail = $adt("PathTail"); + NT_PreProtocolChars = $lex("PreProtocolChars"); + ADT_PreProtocolChars = $adt("PreProtocolChars"); + NT_StringTemplate = $sort("StringTemplate"); + ADT_StringTemplate = $adt("StringTemplate"); + NT_OctalIntegerLiteral = $lex("OctalIntegerLiteral"); + ADT_OctalIntegerLiteral = $adt("OctalIntegerLiteral"); + NT_ProtocolPart = $sort("ProtocolPart"); + ADT_ProtocolPart = $adt("ProtocolPart"); + NT_NamedBackslash = $lex("NamedBackslash"); + ADT_NamedBackslash = $adt("NamedBackslash"); + NT_Label = $sort("Label"); + ADT_Label = $adt("Label"); + NT_Kind = $sort("Kind"); + ADT_Kind = $adt("Kind"); + NT_RegExpModifier = $lex("RegExpModifier"); + ADT_RegExpModifier = $adt("RegExpModifier"); + NT_Prod = $sort("Prod"); + ADT_Prod = $adt("Prod"); + ADT_LocationChangeEvent = $adt("LocationChangeEvent"); + ADT_Associativity = $adt("Associativity"); + NT_NamedRegExp = $lex("NamedRegExp"); + ADT_NamedRegExp = $adt("NamedRegExp"); + ADT_RascalKeywords = $keywords("RascalKeywords"); + ADT_RuntimeException = $adt("RuntimeException"); + NT_DecimalIntegerLiteral = $lex("DecimalIntegerLiteral"); + ADT_DecimalIntegerLiteral = $adt("DecimalIntegerLiteral"); + NT_Assoc = $sort("Assoc"); + ADT_Assoc = $adt("Assoc"); + NT_EvalCommand = $sort("EvalCommand"); + ADT_EvalCommand = $adt("EvalCommand"); + NT_PathChars = $lex("PathChars"); + ADT_PathChars = $adt("PathChars"); + NT_FunctionModifier = $sort("FunctionModifier"); + ADT_FunctionModifier = $adt("FunctionModifier"); + NT_ProdModifier = $sort("ProdModifier"); + ADT_ProdModifier = $adt("ProdModifier"); + NT_JustTime = $lex("JustTime"); + ADT_JustTime = $adt("JustTime"); + NT_UnicodeEscape = $lex("UnicodeEscape"); + ADT_UnicodeEscape = $adt("UnicodeEscape"); + NT_StringCharacter = $lex("StringCharacter"); + ADT_StringCharacter = $adt("StringCharacter"); + NT_Statement = $sort("Statement"); + ADT_Statement = $adt("Statement"); + NT_ConcretePart = $lex("ConcretePart"); + ADT_ConcretePart = $adt("ConcretePart"); + NT_Literal = $sort("Literal"); + ADT_Literal = $adt("Literal"); + NT_Comment = $lex("Comment"); + ADT_Comment = $adt("Comment"); + NT_Commands = $sort("Commands"); + ADT_Commands = $adt("Commands"); + NT_Visit = $sort("Visit"); + ADT_Visit = $adt("Visit"); + NT_Command = $sort("Command"); + ADT_Command = $adt("Command"); + NT_StructuredType = $sort("StructuredType"); + ADT_StructuredType = $adt("StructuredType"); + NT_DateTimeLiteral = $sort("DateTimeLiteral"); + ADT_DateTimeLiteral = $adt("DateTimeLiteral"); + NT_Assignable = $sort("Assignable"); + ADT_Assignable = $adt("Assignable"); + NT_Toplevel = $sort("Toplevel"); + ADT_Toplevel = $adt("Toplevel"); + NT_CommonKeywordParameters = $sort("CommonKeywordParameters"); + ADT_CommonKeywordParameters = $adt("CommonKeywordParameters"); + NT_BasicType = $sort("BasicType"); + ADT_BasicType = $adt("BasicType"); + NT_ProtocolTail = $sort("ProtocolTail"); + ADT_ProtocolTail = $adt("ProtocolTail"); + $T3 = $TF.valueType(); + $T6 = $TF.stringType(); + $T11 = $TF.stringType(); + $T18 = $TF.parameterType("A", $T3); + $T7 = $TF.parameterType("A", $T3); + $T4 = $TF.parameterType("T", $T3); + $T1 = $TF.setType(NT_Import); + $T16 = $TF.parameterType("T", ADT_Tree); + NT_KeywordArguments_1 = $parameterizedSort("KeywordArguments", new Type[] { $T16 }, $RVF.list($RVF.constructor(RascalValueFactory.Symbol_Parameter, $RVF.string("T"), $RVF.constructor(RascalValueFactory.Symbol_Adt, $RVF.string("Tree"), $RVF.list())))); + $T13 = $TF.setType($T6); + NT_Mapping_Pattern = $parameterizedSort("Mapping", new Type[] { ADT_Pattern }, $RVF.list($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Pattern")))); + $T12 = $TF.setType($T6); + $T14 = $TF.setType(NT_SyntaxDefinition); + $T15 = $TF.tupleType($T12, $T13, $T14); + $T10 = $TF.mapType($T11, "name", $T15, "mod"); + $T17 = $TF.parameterType("T", ADT_Tree); + NT_Mapping_Expression = $parameterizedSort("Mapping", new Type[] { ADT_Expression }, $RVF.list($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Expression")))); + NT_KeywordArguments_Expression = $parameterizedSort("KeywordArguments", new Type[] { ADT_Expression }, $RVF.list($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Expression")))); + NT_Mapping_1 = $parameterizedSort("Mapping", new Type[] { $T16 }, $RVF.list($RVF.constructor(RascalValueFactory.Symbol_Parameter, $RVF.string("T"), $RVF.constructor(RascalValueFactory.Symbol_Adt, $RVF.string("Tree"), $RVF.list())))); + ADT_Maybe_1 = $parameterizedAdt("Maybe", new Type[] { $T18 }); + $T0 = $TF.fromSymbol($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Module")), $TS, p -> Collections.emptySet()); + NT_KeywordArguments_Pattern = $parameterizedSort("KeywordArguments", new Type[] { ADT_Pattern }, $RVF.list($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Pattern")))); + NT_KeywordArgument_1 = $parameterizedSort("KeywordArgument", new Type[] { $T16 }, $RVF.list($RVF.constructor(RascalValueFactory.Symbol_Parameter, $RVF.string("T"), $RVF.constructor(RascalValueFactory.Symbol_Adt, $RVF.string("Tree"), $RVF.list())))); + $T5 = $TF.listType($T4); + ADT_Maybe_Symbol = $parameterizedAdt("Maybe", new Type[] { ADT_Symbol }); + ADT_Maybe_Associativity = $parameterizedAdt("Maybe", new Type[] { ADT_Associativity }); + $T8 = $TF.setType(ADT_Production); + ADT_Maybe_Attr = $parameterizedAdt("Maybe", new Type[] { ADT_Attr }); + ADT_TreeSearchResult_1 = $parameterizedAdt("TreeSearchResult", new Type[] { $T16 }); + $T19 = $RTF.nonTerminalType($RVF.constructor(RascalValueFactory.Symbol_IterStarSeps, $RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Import")), $RVF.list($RVF.constructor(RascalValueFactory.Symbol_Layouts, $RVF.string("LAYOUTLIST"))))); + $T2 = $TF.setType($T4); + $T9 = $TF.setType($T0); + ADT_KeywordArguments_1 = $TF.abstractDataType($TS, "KeywordArguments", new Type[] { $T16 }); + ADT_Mapping_Pattern = $TF.abstractDataType($TS, "Mapping", new Type[] { ADT_Pattern }); + ADT_Mapping_Expression = $TF.abstractDataType($TS, "Mapping", new Type[] { ADT_Expression }); + ADT_KeywordArguments_Expression = $TF.abstractDataType($TS, "KeywordArguments", new Type[] { ADT_Expression }); + ADT_Mapping_1 = $TF.abstractDataType($TS, "Mapping", new Type[] { $T16 }); + ADT_KeywordArguments_Pattern = $TF.abstractDataType($TS, "KeywordArguments", new Type[] { ADT_Pattern }); + ADT_KeywordArgument_1 = $TF.abstractDataType($TS, "KeywordArgument", new Type[] { $T16 }); + Maybe_Symbol_just_Symbol = $TF.constructor($TS, ADT_Maybe_Symbol, "just", M_ParseTree.ADT_Symbol, "val"); + + + + } + public IList addLabels(IValue $P0, IValue $P1){ // Generated by Resolver + return (IList) M_Type.addLabels($P0, $P1); + } + public IBool sameType(IValue $P0, IValue $P1){ // Generated by Resolver + return (IBool) M_ParseTree.sameType($P0, $P1); + } + public IValue head(IValue $P0){ // Generated by Resolver + return (IValue) M_List.head($P0); + } + public IBool isAliasType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isAliasType($P0); + } + public IBool isStrType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isStrType($P0); + } + public IBool isADTType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isADTType($P0); + } + public IConstructor fuse(IValue $P0){ // Generated by Resolver + IConstructor $result = null; + Type $P0Type = $P0.getType(); + if($isSubtypeOf($P0Type, M_Grammar.ADT_GrammarDefinition)){ + $result = (IConstructor)lang_rascal_grammar_definition_Modules_fuse$9ee7a01b63c7e42d((IConstructor) $P0); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0)); + } + public IConstructor module2grammar(IValue $P0){ // Generated by Resolver + IConstructor $result = null; + Type $P0Type = $P0.getType(); + if($isSubtypeOf($P0Type,$T0)){ + $result = (IConstructor)lang_rascal_grammar_definition_Modules_module2grammar$3c550cf85c31c8d8((ITree) $P0); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0)); + } + public IConstructor choice(IValue $P0, IValue $P1){ // Generated by Resolver + return (IConstructor) M_Type.choice($P0, $P1); + } + public IBool isValueType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isValueType($P0); + } + public IBool isListType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isListType($P0); + } + public IBool isRealType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isRealType($P0); + } + public IBool isTypeVar(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isTypeVar($P0); + } + public IConstructor imports2grammar(IValue $P0){ // Generated by Resolver + IConstructor $result = null; + Type $P0Type = $P0.getType(); + if($isSubtypeOf($P0Type,$T1)){ + $result = (IConstructor)lang_rascal_grammar_definition_Modules_imports2grammar$71cc9c7471b0ea07((ISet) $P0); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0)); + } + public IConstructor priority(IValue $P0, IValue $P1){ // Generated by Resolver + return (IConstructor) M_ParseTree.priority($P0, $P1); + } + public IBool isNodeType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isNodeType($P0); + } + public IConstructor grammar(IValue $P0){ // Generated by Resolver + return (IConstructor) M_Grammar.grammar($P0); + } + public IConstructor grammar(IValue $P0, IValue $P1){ // Generated by Resolver + return (IConstructor) M_Grammar.grammar($P0, $P1); + } + public IBool isReifiedType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isReifiedType($P0); + } + public ITuple takeOneFrom(IValue $P0){ // Generated by Resolver + ITuple $result = null; + Type $P0Type = $P0.getType(); + if($isSubtypeOf($P0Type,$T2)){ + $result = (ITuple)M_Set.Set_takeOneFrom$291ddec83a7e9a61((ISet) $P0); + if($result != null) return $result; + } + if($isSubtypeOf($P0Type,$T5)){ + $result = (ITuple)M_List.List_takeOneFrom$48bb3b6062ea97b1((IList) $P0); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0)); + } + public IBool isRelType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isRelType($P0); + } + public INode layouts(IValue $P0){ // Generated by Resolver + INode $result = null; + Type $P0Type = $P0.getType(); + if($isSubtypeOf($P0Type, M_Grammar.ADT_GrammarDefinition)){ + $result = (INode)M_lang_rascal_grammar_definition_Layout.lang_rascal_grammar_definition_Layout_layouts$a6e96418ea183c23((IConstructor) $P0); + if($result != null) return $result; + } + if($isSubtypeOf($P0Type,$T6)){ + return $RVF.constructor(M_ParseTree.Symbol_layouts_str, new IValue[]{(IString) $P0}); + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0)); + } + public IConstructor layouts(IValue $P0, IValue $P1, IValue $P2){ // Generated by Resolver + return (IConstructor) M_lang_rascal_grammar_definition_Layout.layouts($P0, $P1, $P2); + } + public ISet collect(IValue $P0){ // Generated by Resolver + ISet $result = null; + Type $P0Type = $P0.getType(); + if($isSubtypeOf($P0Type,$T0)){ + $result = (ISet)lang_rascal_grammar_definition_Modules_collect$b7817bf58b452605((ITree) $P0); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0)); + } + public IBool isConstructorType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isConstructorType($P0); + } + public IBool isListRelType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isListRelType($P0); + } + public IList addParamLabels(IValue $P0, IValue $P1){ // Generated by Resolver + return (IList) M_Type.addParamLabels($P0, $P1); + } + public IBool isMapType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isMapType($P0); + } + public IBool isBoolType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isBoolType($P0); + } + public IList tail(IValue $P0){ // Generated by Resolver + return (IList) M_List.tail($P0); + } + public IBool isLocType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isLocType($P0); + } + public ITuple headTail(IValue $P0){ // Generated by Resolver + return (ITuple) M_List.headTail($P0); + } + public IConstructor treeAt(IValue $P0, IValue $P1, IValue $P2){ // Generated by Resolver + return (IConstructor) M_ParseTree.treeAt($P0, $P1, $P2); + } + public IBool isSetType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isSetType($P0); + } + public IBool isRatType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isRatType($P0); + } + public IBool isNumType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isNumType($P0); + } + public IBool isTupleType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isTupleType($P0); + } + public IBool isBagType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isBagType($P0); + } + public IBool isVoidType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isVoidType($P0); + } + public IBool isNonTerminalType(IValue $P0){ // Generated by Resolver + return (IBool) M_ParseTree.isNonTerminalType($P0); + } + public IValue lub(IValue $P0, IValue $P1){ // Generated by Resolver + return (IValue) M_Type.lub($P0, $P1); + } + public IBool subtype(IValue $P0, IValue $P1){ // Generated by Resolver + return (IBool) M_Type.subtype($P0, $P1); + } + public IConstructor associativity(IValue $P0, IValue $P1, IValue $P2){ // Generated by Resolver + IConstructor $result = null; + Type $P0Type = $P0.getType(); + Type $P1Type = $P1.getType(); + Type $P2Type = $P2.getType(); + if($isSubtypeOf($P0Type, M_ParseTree.ADT_Symbol) && $isSubtypeOf($P1Type, ADT_Maybe_1) && $isSubtypeOf($P2Type, M_ParseTree.ADT_Production)){ + $result = (IConstructor)M_lang_rascal_grammar_definition_Productions.lang_rascal_grammar_definition_Productions_associativity$09cd814bba935894((IConstructor) $P0, (IConstructor) $P1, (IConstructor) $P2); + if($result != null) return $result; + } + if($isSubtypeOf($P0Type, M_ParseTree.ADT_Symbol) && $isSubtypeOf($P1Type, M_ParseTree.ADT_Associativity) && $isSubtypeOf($P2Type,$T8)){ + $result = (IConstructor)M_ParseTree.ParseTree_associativity$9299e943b00366a7((IConstructor) $P0, (IConstructor) $P1, (ISet) $P2); + if($result != null) return $result; + $result = (IConstructor)M_ParseTree.ParseTree_associativity$95843a2f3959b22f((IConstructor) $P0, (IConstructor) $P1, (ISet) $P2); + if($result != null) return $result; + $result = (IConstructor)M_ParseTree.ParseTree_associativity$05ee42b13b7e96fb((IConstructor) $P0, (IConstructor) $P1, (ISet) $P2); + if($result != null) return $result; + } + if($isSubtypeOf($P0Type, M_ParseTree.ADT_Symbol) && $isSubtypeOf($P1Type, ADT_Maybe_Associativity) && $isSubtypeOf($P2Type, M_ParseTree.ADT_Production)){ + $result = (IConstructor)M_lang_rascal_grammar_definition_Productions.lang_rascal_grammar_definition_Productions_associativity$fe1234ba22a8be5e((IConstructor) $P0, (IConstructor) $P1, (IConstructor) $P2); + if($result != null) return $result; + } + if($isSubtypeOf($P0Type, M_ParseTree.ADT_Symbol) && $isSubtypeOf($P1Type, M_ParseTree.ADT_Associativity) && $isSubtypeOf($P2Type,$T8)){ + return $RVF.constructor(M_ParseTree.Production_associativity_Symbol_Associativity_set_Production, new IValue[]{(IConstructor) $P0, (IConstructor) $P1, (ISet) $P2}); + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0, $P1, $P2)); + } + public ITuple getModuleMetaInf(IValue $P0){ // Generated by Resolver + ITuple $result = null; + Type $P0Type = $P0.getType(); + if($isSubtypeOf($P0Type,$T0)){ + $result = (ITuple)lang_rascal_grammar_definition_Modules_getModuleMetaInf$57fe6e2936821b52((ITree) $P0); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0)); + } + public ISet getModuleSyntaxDefinitions(IValue $P0){ // Generated by Resolver + ISet $result = null; + Type $P0Type = $P0.getType(); + if($isSubtypeOf($P0Type,$T0)){ + $result = (ISet)lang_rascal_grammar_definition_Modules_getModuleSyntaxDefinitions$be12600ac17b4c6d((ITree) $P0); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0)); + } + public IString deslash(IValue $P0){ // Generated by Resolver + IString $result = null; + Type $P0Type = $P0.getType(); + if($isSubtypeOf($P0Type,$T6)){ + $result = (IString)lang_rascal_grammar_definition_Modules_deslash$836f5a6d7e3d0227((IString) $P0); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0)); + } + public IConstructor modules2grammar(IValue $P0, IValue $P1){ // Generated by Resolver + IConstructor $result = null; + Type $P0Type = $P0.getType(); + Type $P1Type = $P1.getType(); + if($isSubtypeOf($P0Type,$T6) && $isSubtypeOf($P1Type,$T9)){ + $result = (IConstructor)lang_rascal_grammar_definition_Modules_modules2grammar$ef4b475df081e853((IString) $P0, (ISet) $P1); + if($result != null) return $result; + } + if($isSubtypeOf($P0Type,$T6) && $isSubtypeOf($P1Type,$T10)){ + $result = (IConstructor)lang_rascal_grammar_definition_Modules_modules2grammar$4d282ab3aff12876((IString) $P0, (IMap) $P1); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0, $P1)); + } + public IBool isFunctionType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isFunctionType($P0); + } + public IValue glb(IValue $P0, IValue $P1){ // Generated by Resolver + return (IValue) M_Type.glb($P0, $P1); + } + public IConstructor modules2definition(IValue $P0, IValue $P1){ // Generated by Resolver + IConstructor $result = null; + Type $P0Type = $P0.getType(); + Type $P1Type = $P1.getType(); + if($isSubtypeOf($P0Type,$T6) && $isSubtypeOf($P1Type,$T9)){ + $result = (IConstructor)lang_rascal_grammar_definition_Modules_modules2definition$fc81bfed4569bcf7((IString) $P0, (ISet) $P1); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0, $P1)); + } + public IBool isIntType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isIntType($P0); + } + public IBool isDateTimeType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isDateTimeType($P0); + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/lang/rascal/grammar/definition/Modules.rsc|(667,735,<19,0>,<31,1>) + private final ExpiringFunctionResultCache $memo_lang_rascal_grammar_definition_Modules_modules2grammar$4d282ab3aff12876 = new ExpiringFunctionResultCache(-1, -1); + public IConstructor lang_rascal_grammar_definition_Modules_modules2grammar$4d282ab3aff12876(IString main_0, IMap mods_1){ + + + final IValue[] $actuals = new IValue[] {main_0,mods_1}; + IValue $memoVal = $memo_lang_rascal_grammar_definition_Modules_modules2grammar$4d282ab3aff12876.lookup($actuals, Collections.emptyMap()); + if($memoVal != null) return (IConstructor) $memoVal; + final IMapWriter $mapwriter0 = (IMapWriter)$RVF.mapWriter(); + $MCOMP1_GEN1350: + for(IValue $elem2_for : ((IMap)mods_1)){ + IString $elem2 = (IString) $elem2_for; + IString m_3 = ((IString)($elem2)); + $mapwriter0.insert($RVF.tuple(m_3, $RVF.constructor(M_Grammar.GrammarModule_module_str_set_str_set_str_Grammar, new IValue[]{((IString)m_3), ((ISet)($atuple_field_project((ITuple)((ITuple)($amap_subscript(((IMap)mods_1),((IString)m_3)))), ((IInteger)$constants.get(0)/*0*/)))), ((ISet)($atuple_field_project((ITuple)((ITuple)($amap_subscript(((IMap)mods_1),((IString)m_3)))), ((IInteger)$constants.get(1)/*1*/)))), ((IConstructor)(M_lang_rascal_grammar_definition_Productions.syntax2grammar(((ISet)($atuple_field_project((ITuple)((ITuple)($amap_subscript(((IMap)mods_1),((IString)m_3)))), ((IInteger)$constants.get(2)/*2*/)))))))}))); + + } + + IConstructor def_2 = ((IConstructor)($RVF.constructor(M_Grammar.GrammarDefinition_definition_str_map_str_GrammarModule, new IValue[]{((IString)main_0), ((IMap)($mapwriter0.done()))}))); + $memoVal = M_lang_rascal_grammar_definition_Names.resolve(((IConstructor)($me.fuse(((IConstructor)(M_lang_rascal_grammar_definition_Layout.layouts(((IConstructor)def_2)))))))); + $memo_lang_rascal_grammar_definition_Modules_modules2grammar$4d282ab3aff12876.store($actuals, Collections.emptyMap(), $memoVal); + return (IConstructor)$memoVal; + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/lang/rascal/grammar/definition/Modules.rsc|(1404,242,<33,0>,<37,1>) + private final ExpiringFunctionResultCache $memo_lang_rascal_grammar_definition_Modules_modules2grammar$ef4b475df081e853 = new ExpiringFunctionResultCache(-1, -1); + public IConstructor lang_rascal_grammar_definition_Modules_modules2grammar$ef4b475df081e853(IString main_0, ISet modules_1){ + + + final IValue[] $actuals = new IValue[] {main_0,modules_1}; + IValue $memoVal = $memo_lang_rascal_grammar_definition_Modules_modules2grammar$ef4b475df081e853.lookup($actuals, Collections.emptyMap()); + if($memoVal != null) return (IConstructor) $memoVal; + $memoVal = M_lang_rascal_grammar_definition_Names.resolve(((IConstructor)($me.fuse(((IConstructor)(M_lang_rascal_grammar_definition_Layout.layouts(((IConstructor)($me.modules2definition(((IString)main_0), ((ISet)modules_1))))))))))); + $memo_lang_rascal_grammar_definition_Modules_modules2grammar$ef4b475df081e853.store($actuals, Collections.emptyMap(), $memoVal); + return (IConstructor)$memoVal; + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/lang/rascal/grammar/definition/Modules.rsc|(1648,246,<39,0>,<42,1>) + public IConstructor lang_rascal_grammar_definition_Modules_modules2definition$fc81bfed4569bcf7(IString main_0, ISet modules_1){ + + + final IMapWriter $mapwriter5 = (IMapWriter)$RVF.mapWriter(); + $MCOMP6_GEN1850: + for(IValue $elem8_for : ((ISet)modules_1)){ + ITree $elem8 = (ITree) $elem8_for; + ITree m_2 = ((ITree)($elem8)); + final IConstructor $subject_val7 = ((IConstructor)($me.module2grammar(((ITree)m_2)))); + IConstructor mod_3 = null; + $mapwriter5.insert($RVF.tuple(((IString)($aadt_get_field(((IConstructor)($subject_val7)), "name"))), $subject_val7)); + + } + + return ((IConstructor)($RVF.constructor(M_Grammar.GrammarDefinition_definition_str_map_str_GrammarModule, new IValue[]{((IString)main_0), ((IMap)($mapwriter5.done()))}))); + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/lang/rascal/grammar/definition/Modules.rsc|(1896,600,<44,0>,<63,1>) + public IConstructor lang_rascal_grammar_definition_Modules_fuse$9ee7a01b63c7e42d(IConstructor def_0){ + + + IConstructor result_1 = ((IConstructor)$constants.get(3)/*grammar({},())*/); + ISet todo_2 = ((ISet)($RVF.set(((IString)(((IString)($aadt_get_field(((IConstructor)def_0), "main")))))))); + ISet done_3 = ((ISet)$constants.get(4)/*{}*/); + ISet deps_4 = ((ISet)(M_Grammar.dependencies(((IConstructor)def_0)))); + /*muExists*/WHILE0_BT: + do { + WHILE0: + while((((IBool)($equal(((ISet)todo_2),((ISet)$constants.get(4)/*{}*/)).not()))).getValue()){ + ITuple $TMP9 = (ITuple)(M_Set.takeOneFrom(((ISet)todo_2))); + IString nm_5 = ((IString)($atuple_subscript_int(((ITuple)($TMP9)),0))); + todo_2 = ((ISet)($atuple_subscript_int(((ITuple)($TMP9)),1))); + done_3 = ((ISet)($aset_add_elm(((ISet)done_3),((IString)nm_5)))); + if($is_defined_value($guarded_map_subscript(((IMap)(((IMap)($aadt_get_field(((IConstructor)def_0), "modules"))))),((IString)nm_5)))){ + IConstructor mod_6 = ((IConstructor)($amap_subscript(((IMap)(((IMap)($aadt_get_field(((IConstructor)def_0), "modules"))))),((IString)nm_5)))); + IConstructor $reducer11 = (IConstructor)(M_Grammar.compose(((IConstructor)result_1), ((IConstructor)(((IConstructor)($aadt_get_field(((IConstructor)mod_6), "grammar"))))))); + $REDUCER10_GEN2393: + for(IValue $elem12_for : ((ISet)($arel_subscript1_noset(((ISet)deps_4),((IString)nm_5))))){ + IString $elem12 = (IString) $elem12_for; + IString i_8 = ((IString)($elem12)); + if($is_defined_value($guarded_map_subscript(((IMap)(((IMap)($aadt_get_field(((IConstructor)def_0), "modules"))))),((IString)i_8)))){ + $reducer11 = ((IConstructor)(M_Grammar.compose(((IConstructor)($reducer11)), ((IConstructor)(((IConstructor)($aadt_get_field(((IConstructor)($amap_subscript(((IMap)(((IMap)($aadt_get_field(((IConstructor)def_0), "modules"))))),((IString)i_8)))), "grammar")))))))); + + } else { + continue $REDUCER10_GEN2393; + } + + } + + result_1 = ((IConstructor)($reducer11)); + todo_2 = ((ISet)($aset_add_aset(((ISet)todo_2),((ISet)(((ISet)(((ISet)($aadt_get_field(((IConstructor)mod_6), "extends"))))).subtract(((ISet)done_3))))))); + + } + + } + + } while(false); + /* void: muCon([]) */return ((IConstructor)result_1); + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/lang/rascal/grammar/definition/Modules.rsc|(2501,162,<67,0>,<70,1>) + public IConstructor lang_rascal_grammar_definition_Modules_module2grammar$3c550cf85c31c8d8(ITree mod_0){ + + + ITuple $TMP13 = (ITuple)($me.getModuleMetaInf(((ITree)mod_0))); + IString nm_1 = ((IString)($atuple_subscript_int(((ITuple)($TMP13)),0))); + ISet imps_2 = ((ISet)($atuple_subscript_int(((ITuple)($TMP13)),1))); + ISet exts_3 = ((ISet)($atuple_subscript_int(((ITuple)($TMP13)),2))); + return ((IConstructor)($RVF.constructor(M_Grammar.GrammarModule_module_str_set_str_set_str_Grammar, new IValue[]{((IString)nm_1), ((ISet)imps_2), ((ISet)exts_3), ((IConstructor)(M_lang_rascal_grammar_definition_Productions.syntax2grammar(((ISet)($me.collect(((ITree)mod_0)))))))}))); + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/lang/rascal/grammar/definition/Modules.rsc|(2666,735,<72,0>,<85,1>) + public ITuple lang_rascal_grammar_definition_Modules_getModuleMetaInf$57fe6e2936821b52(ITree mod_0){ + + + final ITree $switchVal14 = ((ITree)mod_0); + boolean noCaseMatched_$switchVal14 = true; + SWITCH2: switch(Fingerprint.getFingerprint($switchVal14)){ + + case 0: + if(noCaseMatched_$switchVal14){ + noCaseMatched_$switchVal14 = false; + + } + + + default: if($isSubtypeOf($switchVal14.getType(),$T0)){ + /*muExists*/CASE_0_0: + do { + if($nonterminal_has_name_and_arity($switchVal14, "default", 2)){ + IValue $arg0_35 = (IValue)($nonterminal_get_arg(((ITree)((ITree)($switchVal14))), ((IInteger)$constants.get(0)/*0*/).intValue())); + if($isComparable($arg0_35.getType(), M_lang_rascal_syntax_Rascal.NT_Header)){ + if($nonterminal_has_name_and_arity($arg0_35, "parameters", 4)){ + IValue $arg0_39 = (IValue)($nonterminal_get_arg(((ITree)((ITree)($arg0_35))), ((IInteger)$constants.get(0)/*0*/).intValue())); + if($isComparable($arg0_39.getType(), $T3)){ + IValue $arg1_38 = (IValue)($nonterminal_get_arg(((ITree)((ITree)($arg0_35))), ((IInteger)$constants.get(1)/*1*/).intValue())); + if($isComparable($arg1_38.getType(), M_lang_rascal_syntax_Rascal.NT_QualifiedName)){ + ITree name_1 = ((ITree)($arg1_38)); + IValue $arg2_37 = (IValue)($nonterminal_get_arg(((ITree)((ITree)($arg0_35))), ((IInteger)$constants.get(2)/*2*/).intValue())); + if($isComparable($arg2_37.getType(), $T3)){ + IValue $arg3_36 = (IValue)($nonterminal_get_arg(((ITree)((ITree)($arg0_35))), ((IInteger)$constants.get(5)/*3*/).intValue())); + if($isComparable($arg3_36.getType(), $T19)){ + ITree is_2 = ((ITree)($arg3_36)); + IValue $arg1_34 = (IValue)($nonterminal_get_arg(((ITree)((ITree)($switchVal14))), ((IInteger)$constants.get(1)/*1*/).intValue())); + if($isComparable($arg1_34.getType(), $T3)){ + final Template $template15 = (Template)new Template($RVF, ""); + $template15.addVal($arg1_38); + final ISetWriter $setwriter16 = (ISetWriter)$RVF.setWriter(); + ; + /*muExists*/$SCOMP17_GEN2994_CONS_$default: + do { + final ITree $exp20 = ((ITree)($arg3_36)); + final int $last21 = (int)((ITree)($exp20)).getArgs().length() - 1; + $SCOMP17_GEN2994: + + for(int $i22 = 0; $i22 <= $last21; $i22 += 2){ + final ITree $elem19 = ((ITree)($iter_subscript($exp20, $i22))); + if($elem19 instanceof INode && ((INode)$elem19).arity() == 1 && ((INode)$elem19).getName().equals("default")){ + IValue $arg0_23 = (IValue)($nonterminal_get_arg(((ITree)((ITree)($elem19))), ((IInteger)$constants.get(0)/*0*/).intValue())); + if($isComparable($arg0_23.getType(), M_lang_rascal_syntax_Rascal.NT_ImportedModule)){ + if($arg0_23 instanceof INode && ((INode)$arg0_23).arity() == 1 && ((INode)$arg0_23).getName().equals("default")){ + IValue $arg0_24 = (IValue)($nonterminal_get_arg(((ITree)((ITree)($arg0_23))), ((IInteger)$constants.get(0)/*0*/).intValue())); + if($isComparable($arg0_24.getType(), M_lang_rascal_syntax_Rascal.NT_QualifiedName)){ + ITree i_3 = null; + final Template $template18 = (Template)new Template($RVF, ""); + $template18.addVal($arg0_24); + $setwriter16.insert($template18.close()); + + } else { + continue $SCOMP17_GEN2994; + } + } else { + continue $SCOMP17_GEN2994; + } + } else { + continue $SCOMP17_GEN2994; + } + } else { + continue $SCOMP17_GEN2994; + } + } + + + } while(false); + final ISetWriter $setwriter25 = (ISetWriter)$RVF.setWriter(); + ; + /*muExists*/$SCOMP26_GEN3071_CONS_extend: + do { + final ITree $exp29 = ((ITree)($arg3_36)); + final int $last30 = (int)((ITree)($exp29)).getArgs().length() - 1; + $SCOMP26_GEN3071: + + for(int $i31 = 0; $i31 <= $last30; $i31 += 2){ + final ITree $elem28 = ((ITree)($iter_subscript($exp29, $i31))); + if($nonterminal_has_name_and_arity($elem28, "extend", 1)){ + IValue $arg0_32 = (IValue)($nonterminal_get_arg(((ITree)((ITree)($elem28))), ((IInteger)$constants.get(0)/*0*/).intValue())); + if($isComparable($arg0_32.getType(), M_lang_rascal_syntax_Rascal.NT_ImportedModule)){ + if($arg0_32 instanceof INode && ((INode)$arg0_32).arity() == 1 && ((INode)$arg0_32).getName().equals("default")){ + IValue $arg0_33 = (IValue)($nonterminal_get_arg(((ITree)((ITree)($arg0_32))), ((IInteger)$constants.get(0)/*0*/).intValue())); + if($isComparable($arg0_33.getType(), M_lang_rascal_syntax_Rascal.NT_QualifiedName)){ + ITree i_4 = null; + final Template $template27 = (Template)new Template($RVF, ""); + $template27.addVal($arg0_33); + $setwriter25.insert($template27.close()); + + } else { + continue $SCOMP26_GEN3071; + } + } else { + continue $SCOMP26_GEN3071; + } + } else { + continue $SCOMP26_GEN3071; + } + } else { + continue $SCOMP26_GEN3071; + } + } + + + } while(false); + return ((ITuple)($RVF.tuple(((IString)($me.deslash(((IString)($template15.close()))))), ((ISet)($setwriter16.done())), ((ISet)($setwriter25.done()))))); + + } + + } + + } + + } + + } + + } + + } + + } + + } while(false); + + } + if($isSubtypeOf($switchVal14.getType(),$T0)){ + /*muExists*/CASE_0_1: + do { + if($nonterminal_has_name_and_arity($switchVal14, "default", 2)){ + IValue $arg0_60 = (IValue)($nonterminal_get_arg(((ITree)((ITree)($switchVal14))), ((IInteger)$constants.get(0)/*0*/).intValue())); + if($isComparable($arg0_60.getType(), M_lang_rascal_syntax_Rascal.NT_Header)){ + if($nonterminal_has_name_and_arity($arg0_60, "default", 3)){ + IValue $arg0_63 = (IValue)($nonterminal_get_arg(((ITree)((ITree)($arg0_60))), ((IInteger)$constants.get(0)/*0*/).intValue())); + if($isComparable($arg0_63.getType(), $T3)){ + IValue $arg1_62 = (IValue)($nonterminal_get_arg(((ITree)((ITree)($arg0_60))), ((IInteger)$constants.get(1)/*1*/).intValue())); + if($isComparable($arg1_62.getType(), M_lang_rascal_syntax_Rascal.NT_QualifiedName)){ + ITree name_5 = ((ITree)($arg1_62)); + IValue $arg2_61 = (IValue)($nonterminal_get_arg(((ITree)((ITree)($arg0_60))), ((IInteger)$constants.get(2)/*2*/).intValue())); + if($isComparable($arg2_61.getType(), $T19)){ + ITree is_6 = ((ITree)($arg2_61)); + IValue $arg1_59 = (IValue)($nonterminal_get_arg(((ITree)((ITree)($switchVal14))), ((IInteger)$constants.get(1)/*1*/).intValue())); + if($isComparable($arg1_59.getType(), $T3)){ + final Template $template40 = (Template)new Template($RVF, ""); + $template40.addVal($arg1_62); + final ISetWriter $setwriter41 = (ISetWriter)$RVF.setWriter(); + ; + /*muExists*/$SCOMP42_GEN3227_CONS_$default: + do { + final ITree $exp45 = ((ITree)($arg2_61)); + final int $last46 = (int)((ITree)($exp45)).getArgs().length() - 1; + $SCOMP42_GEN3227: + + for(int $i47 = 0; $i47 <= $last46; $i47 += 2){ + final ITree $elem44 = ((ITree)($iter_subscript($exp45, $i47))); + if($elem44 instanceof INode && ((INode)$elem44).arity() == 1 && ((INode)$elem44).getName().equals("default")){ + IValue $arg0_48 = (IValue)($nonterminal_get_arg(((ITree)((ITree)($elem44))), ((IInteger)$constants.get(0)/*0*/).intValue())); + if($isComparable($arg0_48.getType(), M_lang_rascal_syntax_Rascal.NT_ImportedModule)){ + if($arg0_48 instanceof INode && ((INode)$arg0_48).arity() == 1 && ((INode)$arg0_48).getName().equals("default")){ + IValue $arg0_49 = (IValue)($nonterminal_get_arg(((ITree)((ITree)($arg0_48))), ((IInteger)$constants.get(0)/*0*/).intValue())); + if($isComparable($arg0_49.getType(), M_lang_rascal_syntax_Rascal.NT_QualifiedName)){ + ITree i_7 = null; + final Template $template43 = (Template)new Template($RVF, ""); + $template43.addVal($arg0_49); + $setwriter41.insert($template43.close()); + + } else { + continue $SCOMP42_GEN3227; + } + } else { + continue $SCOMP42_GEN3227; + } + } else { + continue $SCOMP42_GEN3227; + } + } else { + continue $SCOMP42_GEN3227; + } + } + + + } while(false); + final ISetWriter $setwriter50 = (ISetWriter)$RVF.setWriter(); + ; + /*muExists*/$SCOMP51_GEN3304_CONS_extend: + do { + final ITree $exp54 = ((ITree)($arg2_61)); + final int $last55 = (int)((ITree)($exp54)).getArgs().length() - 1; + $SCOMP51_GEN3304: + + for(int $i56 = 0; $i56 <= $last55; $i56 += 2){ + final ITree $elem53 = ((ITree)($iter_subscript($exp54, $i56))); + if($nonterminal_has_name_and_arity($elem53, "extend", 1)){ + IValue $arg0_57 = (IValue)($nonterminal_get_arg(((ITree)((ITree)($elem53))), ((IInteger)$constants.get(0)/*0*/).intValue())); + if($isComparable($arg0_57.getType(), M_lang_rascal_syntax_Rascal.NT_ImportedModule)){ + if($arg0_57 instanceof INode && ((INode)$arg0_57).arity() == 1 && ((INode)$arg0_57).getName().equals("default")){ + IValue $arg0_58 = (IValue)($nonterminal_get_arg(((ITree)((ITree)($arg0_57))), ((IInteger)$constants.get(0)/*0*/).intValue())); + if($isComparable($arg0_58.getType(), M_lang_rascal_syntax_Rascal.NT_QualifiedName)){ + ITree i_8 = null; + final Template $template52 = (Template)new Template($RVF, ""); + $template52.addVal($arg0_58); + $setwriter50.insert($template52.close()); + + } else { + continue $SCOMP51_GEN3304; + } + } else { + continue $SCOMP51_GEN3304; + } + } else { + continue $SCOMP51_GEN3304; + } + } else { + continue $SCOMP51_GEN3304; + } + } + + + } while(false); + return ((ITuple)($RVF.tuple(((IString)($me.deslash(((IString)($template40.close()))))), ((ISet)($setwriter41.done())), ((ISet)($setwriter50.done()))))); + + } + + } + + } + + } + + } + + } + + } + + } while(false); + + } + + } + + final Template $template64 = (Template)new Template($RVF, "unexpected module syntax "); + $template64.beginIndent(" "); + $template64.addVal(mod_0); + $template64.endIndent(" "); + throw new Throw($template64.close()); + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/lang/rascal/grammar/definition/Modules.rsc|(3404,85,<87,0>,<87,85>) + public ISet lang_rascal_grammar_definition_Modules_getModuleSyntaxDefinitions$be12600ac17b4c6d(ITree mod_0){ + + + return ((ISet)($me.collect(((ITree)mod_0)))); + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/lang/rascal/grammar/definition/Modules.rsc|(3492,74,<89,0>,<93,1>) + public IString lang_rascal_grammar_definition_Modules_deslash$836f5a6d7e3d0227(IString input_0){ + + + try { + IValue $visitResult = $TRAVERSE.traverse(DIRECTION.BottomUp, PROGRESS.Continuing, FIXEDPOINT.No, REBUILD.Yes, + new DescendantDescriptor(new io.usethesource.vallang.type.Type[]{$TF.stringType()}, + new io.usethesource.vallang.IConstructor[]{}, + $RVF.bool(false)), + input_0, + (IVisitFunction) (IValue $VISIT3_subject, TraversalState $traversalState) -> { + VISIT3:switch(Fingerprint.getFingerprint($VISIT3_subject)){ + + case 0: + + + default: + if($isSubtypeOf($VISIT3_subject.getType(),$T6)){ + /*muExists*/CASE_0_0: + do { + final Matcher $matcher66 = (Matcher)$regExpCompile("\\\\", ((IString)($VISIT3_subject)).getValue()); + boolean $found67 = true; + + while($found67){ + $found67 = $matcher66.find(); + if($found67){ + $traversalState.setBegin($matcher66.start()); + $traversalState.setEnd($matcher66.end()); + IString $replacement65 = (IString)(((IString)$constants.get(6)/*""*/)); + if($isSubtypeOf($replacement65.getType(),$VISIT3_subject.getType())){ + $traversalState.setMatchedAndChanged(true, true); + return $replacement65; + + } else { + break VISIT3;// switch + + } + } + + } + + } while(false); + + } + + } + return $VISIT3_subject; + }); + return (IString)$visitResult; + + } catch (ReturnFromTraversalException e) { + return (IString) e.getValue(); + } + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/lang/rascal/grammar/definition/Modules.rsc|(3568,127,<95,0>,<97,1>) + public IConstructor lang_rascal_grammar_definition_Modules_imports2grammar$71cc9c7471b0ea07(ISet imports_0){ + + + final ISetWriter $setwriter68 = (ISetWriter)$RVF.setWriter(); + ; + /*muExists*/$SCOMP69_GEN3652_CONS_syntax: + do { + $SCOMP69_GEN3652: + for(IValue $elem70_for : ((ISet)imports_0)){ + ITree $elem70 = (ITree) $elem70_for; + if($nonterminal_has_name_and_arity($elem70, "syntax", 1)){ + IValue $arg0_71 = (IValue)($nonterminal_get_arg(((ITree)((ITree)($elem70))), ((IInteger)$constants.get(0)/*0*/).intValue())); + if($isComparable($arg0_71.getType(), M_lang_rascal_syntax_Rascal.NT_SyntaxDefinition)){ + ITree s_1 = null; + $setwriter68.insert($arg0_71); + + } else { + continue $SCOMP69_GEN3652; + } + } else { + continue $SCOMP69_GEN3652; + } + } + + + } while(false); + return ((IConstructor)(M_lang_rascal_grammar_definition_Productions.syntax2grammar(((ISet)($setwriter68.done()))))); + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/lang/rascal/grammar/definition/Modules.rsc|(3698,212,<99,0>,<107,1>) + public ISet lang_rascal_grammar_definition_Modules_collect$b7817bf58b452605(ITree mod_0){ + + + try { + final ValueRef result_1 = new ValueRef("result", ((ISet)$constants.get(4)/*{}*/)); + $TRAVERSE.traverse(DIRECTION.TopDown, PROGRESS.Breaking, FIXEDPOINT.No, REBUILD.Yes, + new DescendantDescriptor(new io.usethesource.vallang.type.Type[]{}, + new io.usethesource.vallang.IConstructor[]{((IConstructor)$constants.get(7)/*prod(label("empty",sort("Tag")),[lit("@"),layouts("LAYOUTLIST"),label("name",lex("Name"))],{tag("Fol ...*/), ((IConstructor)$constants.get(14)/*prod(label("default",sort("Import")),[lit("import"),layouts("LAYOUTLIST"),label("module",sort("Impor ...*/), ((IConstructor)$constants.get(21)/*prod(keywords("RascalKeywords"),[lit("tuple")],{})*/), ((IConstructor)$constants.get(24)/*prod(label("undeclare",sort("ShellCommand")),[lit("undeclare"),layouts("LAYOUTLIST"),label("name",so ...*/), ((IConstructor)$constants.get(30)/*prod(lex("RegExp"),[lit("\<"),lex("Name"),lit(":"),\iter-star(lex("NamedRegExp")),lit("\>")],{})*/), ((IConstructor)$constants.get(37)/*choice(sort("Class"),{prod(label("simpleCharclass",sort("Class")),[lit("["),layouts("LAYOUTLIST"),la ...*/), ((IConstructor)$constants.get(50)/*prod(label("intersection",sort("Class")),[label("lhs",sort("Class")),layouts("LAYOUTLIST"),lit("&&") ...*/), ((IConstructor)$constants.get(55)/*prod(label("default",sort("Catch")),[lit("catch"),layouts("LAYOUTLIST"),lit(":"),layouts("LAYOUTLIST ...*/), ((IConstructor)$constants.get(61)/*prod(label("outermost",sort("Strategy")),[lit("outermost")],{})*/), ((IConstructor)$constants.get(65)/*prod(label("default",sort("StructuredType")),[label("basicType",sort("BasicType")),layouts("LAYOUTLI ...*/), ((IConstructor)$constants.get(74)/*prod(label("dateTime",sort("BasicType")),[lit("datetime")],{})*/), ((IConstructor)$constants.get(77)/*prod(lex("DecimalIntegerLiteral"),[conditional(lit("0"),{\not-follow(\char-class([range(48,57),range ...*/), ((IConstructor)$constants.get(82)/*prod(label("iter",sort("Sym")),[label("symbol",sort("Sym")),layouts("LAYOUTLIST"),lit("+")],{})*/), ((IConstructor)$constants.get(87)/*prod(label("expression",sort("OptionalExpression")),[label("expression",sort("Expression"))],{})*/), ((IConstructor)$constants.get(92)/*prod(lex("HexIntegerLiteral"),[\char-class([range(48,48)]),\char-class([range(88,88),range(120,120)] ...*/), ((IConstructor)$constants.get(99)/*prod(label("absent",sort("Start")),[],{})*/), ((IConstructor)$constants.get(102)/*prod(label("symbol",sort("Type")),[label("symbol",conditional(sort("Sym"),{except("labeled"),except( ...*/), ((IConstructor)$constants.get(107)/*prod(label("ifThenElse",sort("StringTemplate")),[lit("if"),layouts("LAYOUTLIST"),lit("("),layouts("L ...*/), ((IConstructor)$constants.get(126)/*prod(label("fieldUpdate",sort("Expression")),[label("expression",sort("Expression")),layouts("LAYOUT ...*/), ((IConstructor)$constants.get(131)/*prod(label("subscript",sort("Expression")),[conditional(label("expression",sort("Expression")),{exce ...*/), ((IConstructor)$constants.get(135)/*prod(label("join",sort("Expression")),[label("lhs",sort("Expression")),layouts("LAYOUTLIST"),lit("jo ...*/), ((IConstructor)$constants.get(140)/*prod(label("bool",sort("BasicType")),[lit("bool")],{})*/), ((IConstructor)$constants.get(143)/*prod(label("right",sort("Assoc")),[lit("right")],{})*/), ((IConstructor)$constants.get(147)/*prod(lex("PostPathChars"),[lit("\>"),lex("URLChars"),lit("|")],{})*/), ((IConstructor)$constants.get(151)/*prod(keywords("RascalKeywords"),[lit("int")],{})*/), ((IConstructor)$constants.get(153)/*prod(label("function",sort("Declaration")),[label("functionDeclaration",sort("FunctionDeclaration")) ...*/), ((IConstructor)$constants.get(158)/*prod(keywords("RascalKeywords"),[lit("syntax")],{})*/), ((IConstructor)$constants.get(160)/*associativity(sort("Expression"),\non-assoc(),{prod(label("in",sort("Expression")),[label("lhs",sort ...*/), ((IConstructor)$constants.get(167)/*prod(label("labeled",sort("Sym")),[label("symbol",sort("Sym")),layouts("LAYOUTLIST"),label("label",l ...*/), ((IConstructor)$constants.get(171)/*prod(label("literal",sort("Pattern")),[label("literal",sort("Literal"))],{})*/), ((IConstructor)$constants.get(176)/*prod(label("default",sort("Parameters")),[lit("("),layouts("LAYOUTLIST"),label("formals",sort("Forma ...*/), ((IConstructor)$constants.get(183)/*prod(label("intersection",sort("Assignment")),[lit("&=")],{})*/), ((IConstructor)$constants.get(187)/*prod(label("subtraction",sort("Assignment")),[lit("-=")],{})*/), ((IConstructor)$constants.get(190)/*prod(label("initialized",sort("Variable")),[label("name",lex("Name")),layouts("LAYOUTLIST"),lit("=") ...*/), ((IConstructor)$constants.get(194)/*prod(label("globalDirective",sort("Statement")),[lit("global"),layouts("LAYOUTLIST"),label("type",so ...*/), ((IConstructor)$constants.get(200)/*prod(keywords("RascalKeywords"),[lit("num")],{})*/), ((IConstructor)$constants.get(202)/*prod(label("template",sort("StringMiddle")),[label("mid",lex("MidStringChars")),layouts("LAYOUTLIST" ...*/), ((IConstructor)$constants.get(208)/*prod(keywords("RascalKeywords"),[lit("tag")],{})*/), ((IConstructor)$constants.get(210)/*prod(label("hole",lex("ConcretePart")),[label("hole",sort("ConcreteHole"))],{tag("category"("variabl ...*/), ((IConstructor)$constants.get(215)/*prod(label("union",sort("Class")),[label("lhs",sort("Class")),layouts("LAYOUTLIST"),lit("||"),layout ...*/), ((IConstructor)$constants.get(218)/*prod(label("alternative",sort("Sym")),[lit("("),layouts("LAYOUTLIST"),label("first",sort("Sym")),lay ...*/), ((IConstructor)$constants.get(223)/*associativity(sort("Class"),left(),{prod(label("union",sort("Class")),[label("lhs",sort("Class")),la ...*/), ((IConstructor)$constants.get(224)/*prod(label("startOfLine",sort("Sym")),[lit("^"),layouts("LAYOUTLIST"),label("symbol",sort("Sym"))],{ ...*/), ((IConstructor)$constants.get(227)/*choice(sort("Class"),{associativity(sort("Class"),left(),{prod(label("union",sort("Class")),[label(" ...*/), ((IConstructor)$constants.get(230)/*prod(start(sort("Commands")),[layouts("LAYOUTLIST"),label("top",sort("Commands")),layouts("LAYOUTLIS ...*/), ((IConstructor)$constants.get(234)/*prod(keywords("RascalKeywords"),[lit("import")],{})*/), ((IConstructor)$constants.get(235)/*prod(label("midTemplate",sort("StringTail")),[label("mid",lex("MidStringChars")),layouts("LAYOUTLIST ...*/), ((IConstructor)$constants.get(229)/*prod(label("bracket",sort("Class")),[lit("("),layouts("LAYOUTLIST"),label("charClass",sort("Class")) ...*/), ((IConstructor)$constants.get(239)/*prod(label("fieldAccess",sort("Assignable")),[label("receiver",sort("Assignable")),layouts("LAYOUTLI ...*/), ((IConstructor)$constants.get(245)/*prod(label("bracket",sort("Assignable")),[lit("("),layouts("LAYOUTLIST"),label("arg",sort("Assignabl ...*/), ((IConstructor)$constants.get(248)/*prod(label("replacing",sort("PatternWithAction")),[label("pattern",sort("Pattern")),layouts("LAYOUTL ...*/), ((IConstructor)$constants.get(255)/*prod(keywords("RascalKeywords"),[lit("data")],{})*/), ((IConstructor)$constants.get(257)/*prod(label("reifyType",sort("Expression")),[lit("#"),layouts("LAYOUTLIST"),conditional(label("type", ...*/), ((IConstructor)$constants.get(261)/*associativity(sort("Expression"),\non-assoc(),{prod(label("lessThan",sort("Expression")),[label("lhs ...*/), ((IConstructor)$constants.get(274)/*regular(\iter-seps(sort("Case"),[layouts("LAYOUTLIST")]))*/), ((IConstructor)$constants.get(277)/*prod(label("fieldAccess",sort("Expression")),[label("expression",sort("Expression")),layouts("LAYOUT ...*/), ((IConstructor)$constants.get(279)/*prod(lex("PostProtocolChars"),[lit("\>"),lex("URLChars"),lit("://")],{})*/), ((IConstructor)$constants.get(282)/*regular(\iter-seps(\parameterized-sort("KeywordArgument",[sort("Pattern")]),[layouts("LAYOUTLIST"),l ...*/), ((IConstructor)$constants.get(285)/*prod(label("public",sort("Visibility")),[lit("public")],{})*/), ((IConstructor)$constants.get(289)/*prod(keywords("RascalKeywords"),[lit("assert")],{})*/), ((IConstructor)$constants.get(291)/*prod(label("break",sort("Statement")),[lit("break"),layouts("LAYOUTLIST"),label("target",sort("Targe ...*/), ((IConstructor)$constants.get(296)/*prod(label("addition",sort("Assignment")),[lit("+=")],{})*/), ((IConstructor)$constants.get(299)/*prod(keywords("RascalKeywords"),[lit("loc")],{})*/), ((IConstructor)$constants.get(301)/*regular(\iter-star-seps(sort("Statement"),[layouts("LAYOUTLIST")]))*/), ((IConstructor)$constants.get(302)/*prod(label("default",\parameterized-sort("KeywordArgument",[parameter("T",adt("Tree",[]))])),[label( ...*/), ((IConstructor)$constants.get(308)/*prod(label("asType",sort("Expression")),[lit("["),layouts("LAYOUTLIST"),label("type",sort("Type")),l ...*/), ((IConstructor)$constants.get(312)/*prod(label("tag",sort("Kind")),[lit("tag")],{})*/), ((IConstructor)$constants.get(315)/*prod(label("map",sort("Comprehension")),[lit("("),layouts("LAYOUTLIST"),label("from",sort("Expressio ...*/), ((IConstructor)$constants.get(321)/*regular(\iter-star-seps(sort("FunctionModifier"),[layouts("LAYOUTLIST")]))*/), ((IConstructor)$constants.get(324)/*prod(lex("RegExp"),[lit("\<"),lex("Name"),lit("\>")],{})*/), ((IConstructor)$constants.get(325)/*regular(\iter-star-seps(sort("Toplevel"),[layouts("LAYOUTLIST")]))*/), ((IConstructor)$constants.get(328)/*prod(label("syntax",sort("Import")),[label("syntax",sort("SyntaxDefinition"))],{})*/), ((IConstructor)$constants.get(166)/*prod(label("notIn",sort("Expression")),[label("lhs",sort("Expression")),layouts("LAYOUTLIST"),lit("n ...*/), ((IConstructor)$constants.get(332)/*prod(label("variable",sort("Declaration")),[label("tags",sort("Tags")),layouts("LAYOUTLIST"),label(" ...*/), ((IConstructor)$constants.get(339)/*prod(label("expression",sort("Statement")),[label("expression",conditional(sort("Expression"),{excep ...*/), ((IConstructor)$constants.get(343)/*prod(label("bs",lex("ConcretePart")),[lit("\\\\")],{tag("category"("string"))})*/), ((IConstructor)$constants.get(346)/*prod(label("index",sort("Field")),[label("fieldIndex",sort("IntegerLiteral"))],{})*/), ((IConstructor)$constants.get(351)/*prod(label("all",sort("Kind")),[lit("all")],{})*/), ((IConstructor)$constants.get(354)/*prod(label("append",sort("Assignment")),[lit("\<\<=")],{})*/), ((IConstructor)$constants.get(357)/*prod(label("stderrOutput",lex("Output")),[conditional(lit("⚠"),{\begin-of-line()}),\iter-star(\char- ...*/), ((IConstructor)$constants.get(365)/*prod(keywords("RascalKeywords"),[lit("filter")],{})*/), ((IConstructor)$constants.get(367)/*regular(\iter-star(\char-class([range(9,9),range(32,32),range(160,160),range(5760,5760),range(8192,8 ...*/), ((IConstructor)$constants.get(370)/*prod(lex("LAYOUT"),[\char-class([range(9,13),range(32,32),range(133,133),range(160,160),range(5760,5 ...*/), ((IConstructor)$constants.get(373)/*regular(\iter-star-seps(sort("ProdModifier"),[layouts("LAYOUTLIST")]))*/), ((IConstructor)$constants.get(376)/*associativity(sort("Expression"),\non-assoc(),{prod(label("noMatch",sort("Expression")),[label("patt ...*/), ((IConstructor)$constants.get(386)/*prod(label("iterSep",sort("Sym")),[lit("{"),layouts("LAYOUTLIST"),label("symbol",sort("Sym")),layout ...*/), ((IConstructor)$constants.get(389)/*prod(label("unequal",sort("Sym")),[label("symbol",sort("Sym")),layouts("LAYOUTLIST"),lit("\\"),layou ...*/), ((IConstructor)$constants.get(393)/*prod(label("empty",sort("Sym")),[lit("("),layouts("LAYOUTLIST"),lit(")")],{})*/), ((IConstructor)$constants.get(395)/*prod(label("default",sort("QualifiedName")),[conditional(label("names",\iter-seps(lex("Name"),[layou ...*/), ((IConstructor)$constants.get(401)/*prod(label("test",sort("FunctionModifier")),[lit("test")],{})*/), ((IConstructor)$constants.get(404)/*prod(label("typedVariableBecomes",sort("Pattern")),[label("type",sort("Type")),layouts("LAYOUTLIST") ...*/), ((IConstructor)$constants.get(406)/*prod(label("default",sort("Assignment")),[lit("=")],{})*/), ((IConstructor)$constants.get(408)/*prod(keywords("RascalKeywords"),[lit("datetime")],{})*/), ((IConstructor)$constants.get(409)/*prod(label("mid",sort("StringMiddle")),[label("mid",lex("MidStringChars"))],{})*/), ((IConstructor)$constants.get(411)/*prod(lex("StringCharacter"),[\char-class([range(10,10)]),\iter-star(\char-class([range(9,9),range(32 ...*/), ((IConstructor)$constants.get(414)/*prod(keywords("RascalKeywords"),[lit("fail")],{})*/), ((IConstructor)$constants.get(416)/*prod(label("all",sort("Expression")),[lit("all"),layouts("LAYOUTLIST"),lit("("),layouts("LAYOUTLIST" ...*/), ((IConstructor)$constants.get(418)/*prod(label("bq",lex("ConcretePart")),[lit("\\`")],{tag("category"("string"))})*/), ((IConstructor)$constants.get(421)/*prod(label("external",sort("Import")),[lit("import"),layouts("LAYOUTLIST"),label("name",sort("Qualif ...*/), ((IConstructor)$constants.get(425)/*regular(\iter-seps(sort("Pattern"),[layouts("LAYOUTLIST"),lit(","),layouts("LAYOUTLIST")]))*/), ((IConstructor)$constants.get(427)/*prod(label("modulo",sort("Expression")),[label("lhs",sort("Expression")),layouts("LAYOUTLIST"),lit(" ...*/), ((IConstructor)$constants.get(430)/*prod(label("name",sort("Field")),[label("fieldName",lex("Name"))],{})*/), ((IConstructor)$constants.get(433)/*associativity(sort("Statement"),\non-assoc(),{prod(label("try",sort("Statement")),[lit("try"),layout ...*/), ((IConstructor)$constants.get(439)/*prod(label("present",sort("CommonKeywordParameters")),[lit("("),layouts("LAYOUTLIST"),label("keyword ...*/), ((IConstructor)$constants.get(445)/*priority(sort("Expression"),[choice(sort("Expression"),{prod(label("it",sort("Expression")),[conditi ...*/), ((IConstructor)$constants.get(625)/*prod(lex("RegExpLiteral"),[lit("/"),\iter-star(lex("RegExp")),lit("/"),lex("RegExpModifier")],{})*/), ((IConstructor)$constants.get(629)/*prod(label("import",sort("EvalCommand")),[label("imported",sort("Import"))],{})*/), ((IConstructor)$constants.get(633)/*prod(keywords("RascalKeywords"),[lit("append")],{})*/), ((IConstructor)$constants.get(635)/*prod(label("template",sort("StringLiteral")),[label("pre",lex("PreStringChars")),layouts("LAYOUTLIST ...*/), ((IConstructor)$constants.get(640)/*prod(label("quit",sort("ShellCommand")),[lit("quit")],{})*/), ((IConstructor)$constants.get(643)/*prod(lex("MidProtocolChars"),[lit("\>"),lex("URLChars"),lit("\<")],{})*/), ((IConstructor)$constants.get(547)/*prod(label("range",sort("Expression")),[lit("["),layouts("LAYOUTLIST"),label("first",sort("Expressio ...*/), ((IConstructor)$constants.get(645)/*prod(lex("JustTime"),[lit("$T"),lex("TimePartNoTZ"),lex("TimeZonePart"),lit("$")],{})*/), ((IConstructor)$constants.get(651)/*prod(label("utf16",lex("UnicodeEscape")),[lit("\\"),\char-class([range(117,117)]),\char-class([range ...*/), ((IConstructor)$constants.get(655)/*prod(label("tag",sort("Declaration")),[label("tags",sort("Tags")),layouts("LAYOUTLIST"),label("visib ...*/), ((IConstructor)$constants.get(661)/*prod(label("emptyStatement",sort("Statement")),[lit(";")],{})*/), ((IConstructor)$constants.get(663)/*prod(label("empty",sort("Label")),[],{})*/), ((IConstructor)$constants.get(665)/*prod(label("list",sort("Pattern")),[lit("["),layouts("LAYOUTLIST"),label("elements0",\iter-star-seps ...*/), ((IConstructor)$constants.get(669)/*prod(keywords("RascalKeywords"),[lit("mod")],{})*/), ((IConstructor)$constants.get(670)/*prod(keywords("RascalKeywords"),[lit("extend")],{})*/), ((IConstructor)$constants.get(672)/*prod(label("iterStar",sort("Sym")),[label("symbol",sort("Sym")),layouts("LAYOUTLIST"),lit("*")],{})*/), ((IConstructor)$constants.get(674)/*prod(keywords("RascalKeywords"),[lit("while")],{})*/), ((IConstructor)$constants.get(676)/*prod(keywords("RascalKeywords"),[lit("notin")],{})*/), ((IConstructor)$constants.get(677)/*prod(label("tuple",sort("Assignable")),[lit("\<"),layouts("LAYOUTLIST"),label("elements",\iter-seps( ...*/), ((IConstructor)$constants.get(681)/*associativity(sort("Statement"),\non-assoc(),{prod(label("throw",sort("Statement")),[lit("throw"),la ...*/), ((IConstructor)$constants.get(697)/*prod(label("variable",sort("Kind")),[lit("variable")],{})*/), ((IConstructor)$constants.get(700)/*prod(keywords("RascalKeywords"),[lit("type")],{})*/), ((IConstructor)$constants.get(701)/*prod(label("bracket",sort("ProdModifier")),[lit("bracket")],{})*/), ((IConstructor)$constants.get(704)/*prod(label("default",sort("LocationLiteral")),[label("protocolPart",sort("ProtocolPart")),layouts("L ...*/), ((IConstructor)$constants.get(710)/*prod(keywords("RascalKeywords"),[lit("switch")],{})*/), ((IConstructor)$constants.get(712)/*prod(label("history",sort("ShellCommand")),[lit("history")],{})*/), ((IConstructor)$constants.get(715)/*prod(label("default",sort("FunctionBody")),[lit("{"),layouts("LAYOUTLIST"),label("statements",\iter- ...*/), ((IConstructor)$constants.get(719)/*prod(keywords("RascalKeywords"),[lit("layout")],{})*/), ((IConstructor)$constants.get(721)/*prod(keywords("RascalKeywords"),[lit("case")],{})*/), ((IConstructor)$constants.get(723)/*prod(label("associativity",sort("ProdModifier")),[label("associativity",sort("Assoc"))],{})*/), ((IConstructor)$constants.get(726)/*prod(label("labeled",sort("DataTarget")),[label("label",lex("Name")),layouts("LAYOUTLIST"),lit(":")] ...*/), ((IConstructor)$constants.get(729)/*regular(\iter-seps(sort("Catch"),[layouts("LAYOUTLIST")]))*/), ((IConstructor)$constants.get(521)/*prod(label("getAnnotation",sort("Expression")),[conditional(label("expression",sort("Expression")),{ ...*/), ((IConstructor)$constants.get(730)/*prod(label("nAryConstructor",sort("Variant")),[label("name",lex("Name")),layouts("LAYOUTLIST"),lit(" ...*/), ((IConstructor)$constants.get(502)/*prod(label("slice",sort("Expression")),[conditional(label("expression",sort("Expression")),{except(" ...*/), ((IConstructor)$constants.get(497)/*prod(label("is",sort("Expression")),[label("expression",sort("Expression")),layouts("LAYOUTLIST"),li ...*/), ((IConstructor)$constants.get(385)/*prod(label("match",sort("Expression")),[label("pattern",sort("Pattern")),layouts("LAYOUTLIST"),lit(" ...*/), ((IConstructor)$constants.get(736)/*prod(label("structured",sort("Type")),[label("structured",sort("StructuredType"))],{})*/), ((IConstructor)$constants.get(739)/*choice(sort("Pattern"),{prod(label("list",sort("Pattern")),[lit("["),layouts("LAYOUTLIST"),label("el ...*/), ((IConstructor)$constants.get(773)/*prod(label("innermost",sort("Strategy")),[lit("innermost")],{})*/), ((IConstructor)$constants.get(757)/*prod(label("reifiedType",sort("Pattern")),[lit("type"),layouts("LAYOUTLIST"),lit("("),layouts("LAYOU ...*/), ((IConstructor)$constants.get(598)/*prod(label("nonEquals",sort("Expression")),[label("lhs",sort("Expression")),layouts("LAYOUTLIST"),li ...*/), ((IConstructor)$constants.get(776)/*prod(label("dateAndTimeLiteral",sort("DateTimeLiteral")),[label("dateAndTime",lex("DateAndTime"))],{ ...*/), ((IConstructor)$constants.get(781)/*prod(start(sort("Command")),[layouts("LAYOUTLIST"),label("top",sort("Command")),layouts("LAYOUTLIST" ...*/), ((IConstructor)$constants.get(785)/*prod(label("nonInterpolated",sort("PathPart")),[label("pathChars",lex("PathChars"))],{})*/), ((IConstructor)$constants.get(789)/*prod(label("product",sort("Assignment")),[lit("*=")],{})*/), ((IConstructor)$constants.get(792)/*prod(label("optional",sort("Sym")),[label("symbol",sort("Sym")),layouts("LAYOUTLIST"),lit("?")],{})*/), ((IConstructor)$constants.get(794)/*prod(lex("BooleanLiteral"),[lit("true")],{})*/), ((IConstructor)$constants.get(797)/*prod(label("empty",sort("Bound")),[],{})*/), ((IConstructor)$constants.get(800)/*prod(lex("PreStringChars"),[\char-class([range(34,34)]),\iter-star(lex("StringCharacter")),\char-cla ...*/), ((IConstructor)$constants.get(804)/*regular(alt({conditional(\char-class([range(42,42)]),{\not-follow(\char-class([range(47,47)]))}),\ch ...*/), ((IConstructor)$constants.get(810)/*prod(label("alias",sort("Kind")),[lit("alias")],{})*/), ((IConstructor)$constants.get(813)/*prod(label("interpolated",sort("ProtocolPart")),[label("pre",lex("PreProtocolChars")),layouts("LAYOU ...*/), ((IConstructor)$constants.get(819)/*prod(label("test",sort("ShellCommand")),[lit("test")],{})*/), ((IConstructor)$constants.get(821)/*prod(label("givenStrategy",sort("Visit")),[label("strategy",sort("Strategy")),layouts("LAYOUTLIST"), ...*/), ((IConstructor)$constants.get(827)/*prod(label("declaration",sort("Command")),[label("declaration",sort("Declaration"))],{})*/), ((IConstructor)$constants.get(830)/*prod(label("data",sort("Declaration")),[label("tags",sort("Tags")),layouts("LAYOUTLIST"),label("visi ...*/), ((IConstructor)$constants.get(837)/*prod(label("notFollow",sort("Sym")),[label("symbol",sort("Sym")),layouts("LAYOUTLIST"),lit("!\>\>"), ...*/), ((IConstructor)$constants.get(840)/*prod(label("parametric",sort("UserType")),[conditional(label("name",sort("QualifiedName")),{follow(l ...*/), ((IConstructor)$constants.get(844)/*prod(keywords("RascalKeywords"),[lit("bool")],{})*/), ((IConstructor)$constants.get(845)/*prod(label("nonInterpolated",sort("ProtocolPart")),[label("protocolChars",lex("ProtocolChars"))],{})*/), ((IConstructor)$constants.get(745)/*prod(label("callOrTree",sort("Pattern")),[label("expression",sort("Pattern")),layouts("LAYOUTLIST"), ...*/), ((IConstructor)$constants.get(849)/*prod(label("functionDeclaration",sort("Statement")),[label("functionDeclaration",sort("FunctionDecla ...*/), ((IConstructor)$constants.get(696)/*prod(label("insert",sort("Statement")),[lit("insert"),layouts("LAYOUTLIST"),label("dataTarget",sort( ...*/), ((IConstructor)$constants.get(543)/*prod(label("any",sort("Expression")),[lit("any"),layouts("LAYOUTLIST"),lit("("),layouts("LAYOUTLIST" ...*/), ((IConstructor)$constants.get(614)/*prod(label("and",sort("Expression")),[label("lhs",sort("Expression")),layouts("LAYOUTLIST"),lit("&&" ...*/), ((IConstructor)$constants.get(851)/*prod(label("start",sort("Sym")),[lit("start"),layouts("LAYOUTLIST"),lit("["),layouts("LAYOUTLIST"),l ...*/), ((IConstructor)$constants.get(856)/*prod(label("annotation",sort("Assignable")),[label("receiver",sort("Assignable")),layouts("LAYOUTLIS ...*/), ((IConstructor)$constants.get(563)/*associativity(sort("Expression"),left(),{prod(label("composition",sort("Expression")),[label("lhs",s ...*/), ((IConstructor)$constants.get(859)/*prod(label("none",\parameterized-sort("KeywordArguments",[sort("Pattern")])),[],{})*/), ((IConstructor)$constants.get(861)/*prod(keywords("RascalKeywords"),[lit("throw")],{})*/), ((IConstructor)$constants.get(602)/*associativity(sort("Expression"),\non-assoc(),{prod(label("nonEquals",sort("Expression")),[label("lh ...*/), ((IConstructor)$constants.get(551)/*prod(label("isDefined",sort("Expression")),[label("argument",sort("Expression")),layouts("LAYOUTLIST ...*/), ((IConstructor)$constants.get(772)/*prod(label("splicePlus",sort("Pattern")),[lit("+"),layouts("LAYOUTLIST"),label("argument",sort("Patt ...*/), ((IConstructor)$constants.get(862)/*prod(label("interpolated",sort("PathPart")),[label("pre",lex("PrePathChars")),layouts("LAYOUTLIST"), ...*/), ((IConstructor)$constants.get(868)/*prod(label("variable",sort("Type")),[label("typeVar",sort("TypeVar"))],{})*/), ((IConstructor)$constants.get(872)/*prod(label("dataAbstract",sort("Declaration")),[label("tags",sort("Tags")),layouts("LAYOUTLIST"),lab ...*/), ((IConstructor)$constants.get(874)/*prod(label("user",sort("Type")),[label("user",sort("UserType"))],{})*/), ((IConstructor)$constants.get(876)/*prod(label("extend",sort("Import")),[lit("extend"),layouts("LAYOUTLIST"),label("module",sort("Import ...*/), ((IConstructor)$constants.get(878)/*prod(label("present",sort("Start")),[lit("start")],{})*/), ((IConstructor)$constants.get(880)/*prod(label("left",sort("Assoc")),[lit("left")],{})*/), ((IConstructor)$constants.get(494)/*prod(label("sliceStep",sort("Expression")),[conditional(label("expression",sort("Expression")),{exce ...*/), ((IConstructor)$constants.get(883)/*prod(lex("Comment"),[lit("/*"),\iter-star(alt({conditional(\char-class([range(42,42)]),{\not-follow( ...*/), ((IConstructor)$constants.get(888)/*prod(lex("TimePartNoTZ"),[\char-class([range(48,50)]),\char-class([range(48,57)]),lit(":"),\char-cla ...*/), ((IConstructor)$constants.get(898)/*regular(\iter-seps(sort("Variable"),[layouts("LAYOUTLIST"),lit(","),layouts("LAYOUTLIST")]))*/), ((IConstructor)$constants.get(899)/*prod(label("selector",sort("Type")),[label("selector",sort("DataTypeSelector"))],{})*/), ((IConstructor)$constants.get(511)/*prod(label("stepRange",sort("Expression")),[lit("["),layouts("LAYOUTLIST"),label("first",sort("Expre ...*/), ((IConstructor)$constants.get(593)/*prod(label("appendAfter",sort("Expression")),[label("lhs",sort("Expression")),layouts("LAYOUTLIST"), ...*/), ((IConstructor)$constants.get(480)/*prod(label("nonEmptyBlock",sort("Expression")),[lit("{"),layouts("LAYOUTLIST"),label("statements",\i ...*/), ((IConstructor)$constants.get(903)/*regular(\iter-seps(sort("TypeArg"),[layouts("LAYOUTLIST"),lit(","),layouts("LAYOUTLIST")]))*/), ((IConstructor)$constants.get(904)/*regular(iter(\char-class([range(48,55)])))*/), ((IConstructor)$constants.get(907)/*prod(label("nonEmptyBlock",sort("Statement")),[label("label",sort("Label")),layouts("LAYOUTLIST"),li ...*/), ((IConstructor)$constants.get(909)/*prod(lex("MidStringChars"),[\char-class([range(62,62)]),\iter-star(lex("StringCharacter")),\char-cla ...*/), ((IConstructor)$constants.get(693)/*prod(label("return",sort("Statement")),[lit("return"),layouts("LAYOUTLIST"),label("statement",condit ...*/), ((IConstructor)$constants.get(624)/*associativity(sort("Expression"),right(),{prod(label("ifThenElse",sort("Expression")),[label("condit ...*/), ((IConstructor)$constants.get(911)/*prod(label("rational",sort("BasicType")),[lit("rat")],{})*/), ((IConstructor)$constants.get(914)/*associativity(sort("Class"),left(),{prod(label("intersection",sort("Class")),[label("lhs",sort("Clas ...*/), ((IConstructor)$constants.get(915)/*prod(label("post",sort("PathTail")),[label("post",lex("PostPathChars"))],{})*/), ((IConstructor)$constants.get(918)/*prod(label("set",sort("Comprehension")),[lit("{"),layouts("LAYOUTLIST"),label("results",\iter-seps(s ...*/), ((IConstructor)$constants.get(921)/*prod(label("binding",sort("Catch")),[lit("catch"),layouts("LAYOUTLIST"),label("pattern",sort("Patter ...*/), ((IConstructor)$constants.get(923)/*prod(lex("URLChars"),[\iter-star(\char-class([range(1,8),range(11,12),range(14,31),range(33,59),rang ...*/), ((IConstructor)$constants.get(926)/*prod(label("doWhile",sort("StringTemplate")),[lit("do"),layouts("LAYOUTLIST"),lit("{"),layouts("LAYO ...*/), ((IConstructor)$constants.get(932)/*prod(lex("MidPathChars"),[lit("\>"),lex("URLChars"),lit("\<")],{})*/), ((IConstructor)$constants.get(934)/*prod(label("concrete",sort("Expression")),[label("concrete",lex("Concrete"))],{})*/), ((IConstructor)$constants.get(938)/*prod(keywords("RascalKeywords"),[lit("insert")],{})*/), ((IConstructor)$constants.get(939)/*prod(keywords("RascalKeywords"),[lit("anno")],{})*/), ((IConstructor)$constants.get(941)/*prod(lex("RealLiteral"),[conditional(lit("."),{\not-precede(\char-class([range(46,46)]))}),iter(\cha ...*/), ((IConstructor)$constants.get(948)/*prod(lex("RealLiteral"),[iter(\char-class([range(48,57)])),lit("."),\iter-star(\char-class([range(48 ...*/), ((IConstructor)$constants.get(953)/*prod(label("regExp",sort("Literal")),[label("regExpLiteral",lex("RegExpLiteral"))],{tag("category"(" ...*/), ((IConstructor)$constants.get(956)/*prod(keywords("RascalKeywords"),[lit("catch")],{})*/), ((IConstructor)$constants.get(957)/*prod(label("precede",sort("Sym")),[label("match",sort("Sym")),layouts("LAYOUTLIST"),lit("\<\<"),layo ...*/), ((IConstructor)$constants.get(959)/*choice(sort("Sym"),{prod(label("except",sort("Sym")),[label("symbol",sort("Sym")),layouts("LAYOUTLIS ...*/), ((IConstructor)$constants.get(993)/*regular(iter(\char-class([range(48,57),range(65,70),range(97,102)])))*/), ((IConstructor)$constants.get(994)/*prod(keywords("RascalKeywords"),[lit("default")],{})*/), ((IConstructor)$constants.get(996)/*prod(lex("TimeZonePart"),[\char-class([range(43,43),range(45,45)]),\char-class([range(48,49)]),\char ...*/), ((IConstructor)$constants.get(998)/*prod(label("num",sort("BasicType")),[lit("num")],{})*/), ((IConstructor)$constants.get(583)/*prod(label("insertBefore",sort("Expression")),[label("lhs",sort("Expression")),layouts("LAYOUTLIST") ...*/), ((IConstructor)$constants.get(1000)/*prod(lex("CaseInsensitiveStringConstant"),[lit("\'"),label("chars",\iter-star(lex("StringCharacter") ...*/), ((IConstructor)$constants.get(1003)/*regular(\iter-seps(sort("Type"),[layouts("LAYOUTLIST"),lit(","),layouts("LAYOUTLIST")]))*/), ((IConstructor)$constants.get(1004)/*regular(alt({seq([lit("\\"),\char-class([range(123,123),range(125,125)])]),lex("TagString"),\char-cl ...*/), ((IConstructor)$constants.get(1010)/*prod(label("list",sort("BasicType")),[lit("list")],{})*/), ((IConstructor)$constants.get(1013)/*regular(\iter-seps(sort("Field"),[layouts("LAYOUTLIST"),lit(","),layouts("LAYOUTLIST")]))*/), ((IConstructor)$constants.get(1014)/*prod(keywords("RascalKeywords"),[lit("alias")],{})*/), ((IConstructor)$constants.get(1015)/*prod(label("for",sort("StringTemplate")),[lit("for"),layouts("LAYOUTLIST"),lit("("),layouts("LAYOUTL ...*/), ((IConstructor)$constants.get(1018)/*prod(label("default",sort("Module")),[label("header",sort("Header")),layouts("LAYOUTLIST"),label("bo ...*/), ((IConstructor)$constants.get(559)/*choice(sort("Expression"),{prod(label("asType",sort("Expression")),[lit("["),layouts("LAYOUTLIST"),l ...*/), ((IConstructor)$constants.get(1025)/*prod(keywords("RascalKeywords"),[lit("throws")],{})*/), ((IConstructor)$constants.get(518)/*prod(label("setAnnotation",sort("Expression")),[label("expression",sort("Expression")),layouts("LAYO ...*/), ((IConstructor)$constants.get(1027)/*choice(sort("Pattern"),{prod(label("descendant",sort("Pattern")),[lit("/"),layouts("LAYOUTLIST"),lab ...*/), ((IConstructor)$constants.get(1036)/*prod(label("lt",lex("ConcretePart")),[lit("\\\<")],{tag("category"("string"))})*/), ((IConstructor)$constants.get(1039)/*regular(\iter-star-seps(sort("Sym"),[layouts("LAYOUTLIST")]))*/), ((IConstructor)$constants.get(1041)/*prod(label("conditional",sort("FunctionDeclaration")),[label("tags",sort("Tags")),layouts("LAYOUTLIS ...*/), ((IConstructor)$constants.get(1046)/*prod(label("assertWithMessage",sort("Statement")),[lit("assert"),layouts("LAYOUTLIST"),label("expres ...*/), ((IConstructor)$constants.get(1049)/*regular(\iter-star(\char-class([range(1,9),range(11,12),range(14,1114111)])))*/), ((IConstructor)$constants.get(1050)/*prod(lex("RegExp"),[lex("Backslash")],{})*/), ((IConstructor)$constants.get(1052)/*prod(label("arbitrary",sort("PatternWithAction")),[label("pattern",sort("Pattern")),layouts("LAYOUTL ...*/), ((IConstructor)$constants.get(1055)/*prod(lex("StringCharacter"),[\char-class([range(1,33),range(35,38),range(40,59),range(61,61),range(6 ...*/), ((IConstructor)$constants.get(507)/*prod(label("comprehension",sort("Expression")),[label("comprehension",sort("Comprehension"))],{})*/), ((IConstructor)$constants.get(1057)/*regular(\iter-seps(sort("Renaming"),[layouts("LAYOUTLIST"),lit(","),layouts("LAYOUTLIST")]))*/), ((IConstructor)$constants.get(750)/*prod(label("set",sort("Pattern")),[lit("{"),layouts("LAYOUTLIST"),label("elements0",\iter-star-seps( ...*/), ((IConstructor)$constants.get(1060)/*prod(label("default",sort("Bound")),[lit(";"),layouts("LAYOUTLIST"),label("expression",sort("Express ...*/), ((IConstructor)$constants.get(1062)/*prod(keywords("RascalKeywords"),[lit("module")],{})*/), ((IConstructor)$constants.get(1064)/*prod(keywords("RascalKeywords"),[lit("one")],{})*/), ((IConstructor)$constants.get(1066)/*prod(keywords("RascalKeywords"),[lit("public")],{})*/), ((IConstructor)$constants.get(617)/*prod(label("or",sort("Expression")),[label("lhs",sort("Expression")),layouts("LAYOUTLIST"),lit("||") ...*/), ((IConstructor)$constants.get(1067)/*prod(lex("Char"),[lex("UnicodeEscape")],{tag("category"("string"))})*/), ((IConstructor)$constants.get(1069)/*prod(label("labeled",sort("Target")),[label("name",lex("Name"))],{})*/), ((IConstructor)$constants.get(1071)/*regular(\iter-seps(\parameterized-sort("KeywordArgument",[sort("Expression")]),[layouts("LAYOUTLIST" ...*/), ((IConstructor)$constants.get(1074)/*prod(label("post",sort("ProtocolTail")),[label("post",lex("PostProtocolChars"))],{})*/), ((IConstructor)$constants.get(1077)/*prod(label("free",sort("TypeVar")),[lit("&"),layouts("LAYOUTLIST"),label("name",lex("Name"))],{})*/), ((IConstructor)$constants.get(1079)/*regular(\iter-star(lex("NamedRegExp")))*/), ((IConstructor)$constants.get(1080)/*prod(lex("TimeZonePart"),[lit("Z")],{})*/), ((IConstructor)$constants.get(1082)/*prod(lex("BooleanLiteral"),[lit("false")],{})*/), ((IConstructor)$constants.get(1084)/*prod(label("actualsRenaming",sort("ImportedModule")),[label("name",sort("QualifiedName")),layouts("L ...*/), ((IConstructor)$constants.get(1090)/*prod(label("text",lex("ConcretePart")),[conditional(iter(\char-class([range(1,9),range(11,59),range( ...*/), ((IConstructor)$constants.get(1095)/*prod(label("nonInterpolated",sort("StringLiteral")),[label("constant",lex("StringConstant"))],{})*/), ((IConstructor)$constants.get(1098)/*regular(\iter-seps(sort("Expression"),[layouts("LAYOUTLIST"),lit(","),layouts("LAYOUTLIST")]))*/), ((IConstructor)$constants.get(1099)/*prod(lex("TagString"),[conditional(lit("{"),{\not-precede(lit("\\"))}),label("contents",\iter-star(a ...*/), ((IConstructor)$constants.get(1104)/*prod(lex("Backslash"),[conditional(\char-class([range(92,92)]),{\not-follow(\char-class([range(47,47 ...*/), ((IConstructor)$constants.get(1108)/*prod(lex("NamedRegExp"),[lex("NamedBackslash")],{})*/), ((IConstructor)$constants.get(1110)/*prod(label("language",sort("SyntaxDefinition")),[label("start",sort("Start")),layouts("LAYOUTLIST"), ...*/), ((IConstructor)$constants.get(1116)/*regular(\iter-star-seps(sort("Import"),[layouts("LAYOUTLIST")]))*/), ((IConstructor)$constants.get(1118)/*regular(\iter-seps(sort("KeywordFormal"),[layouts("LAYOUTLIST"),lit(","),layouts("LAYOUTLIST")]))*/), ((IConstructor)$constants.get(768)/*prod(label("map",sort("Pattern")),[lit("("),layouts("LAYOUTLIST"),label("mappings",\iter-star-seps(\ ...*/), ((IConstructor)$constants.get(1119)/*prod(label("mid",sort("PathTail")),[label("mid",lex("MidPathChars")),layouts("LAYOUTLIST"),label("ex ...*/), ((IConstructor)$constants.get(273)/*prod(label("lessThanOrEq",sort("Expression")),[label("lhs",sort("Expression")),layouts("LAYOUTLIST") ...*/), ((IConstructor)$constants.get(1122)/*prod(label("default",sort("KeywordFormal")),[label("type",sort("Type")),layouts("LAYOUTLIST"),label( ...*/), ((IConstructor)$constants.get(1124)/*prod(keywords("RascalKeywords"),[lit("node")],{})*/), ((IConstructor)$constants.get(1126)/*prod(label("reference",sort("Prod")),[lit(":"),layouts("LAYOUTLIST"),label("referenced",lex("Name")) ...*/), ((IConstructor)$constants.get(1129)/*prod(start(sort("Module")),[layouts("LAYOUTLIST"),label("top",sort("Module")),layouts("LAYOUTLIST")] ...*/), ((IConstructor)$constants.get(557)/*prod(label("splice",sort("Expression")),[lit("*"),layouts("LAYOUTLIST"),label("argument",sort("Expre ...*/), ((IConstructor)$constants.get(1132)/*prod(label("commandlist",sort("Commands")),[label("commands",\iter-seps(sort("EvalCommand"),[layouts ...*/), ((IConstructor)$constants.get(1136)/*prod(label("renamings",sort("ImportedModule")),[label("name",sort("QualifiedName")),layouts("LAYOUTL ...*/), ((IConstructor)$constants.get(1138)/*prod(label("absent",sort("CommonKeywordParameters")),[],{})*/), ((IConstructor)$constants.get(1140)/*prod(lex("RationalLiteral"),[\char-class([range(49,57)]),\iter-star(\char-class([range(48,57)])),\ch ...*/), ((IConstructor)$constants.get(1145)/*prod(lex("DateAndTime"),[lit("$"),lex("DatePart"),lit("T"),conditional(lex("TimePartNoTZ"),{\not-fol ...*/), ((IConstructor)$constants.get(1149)/*prod(label("while",sort("Statement")),[label("label",sort("Label")),layouts("LAYOUTLIST"),lit("while ...*/), ((IConstructor)$constants.get(571)/*prod(label("product",sort("Expression")),[label("lhs",sort("Expression")),layouts("LAYOUTLIST"),lit( ...*/), ((IConstructor)$constants.get(1152)/*regular(\iter-star(\char-class([range(1,8),range(11,12),range(14,31),range(33,59),range(61,123),rang ...*/), ((IConstructor)$constants.get(1153)/*prod(lex("StringConstant"),[lit("\""),label("chars",\iter-star(lex("StringCharacter"))),lit("\"")],{ ...*/), ((IConstructor)$constants.get(1035)/*prod(label("anti",sort("Pattern")),[lit("!"),layouts("LAYOUTLIST"),label("pattern",sort("Pattern"))] ...*/), ((IConstructor)$constants.get(558)/*associativity(sort("Expression"),\non-assoc(),{prod(label("splice",sort("Expression")),[lit("*"),lay ...*/), ((IConstructor)$constants.get(1155)/*prod(label("default",sort("KeywordFormals")),[label("optionalComma",lex("OptionalComma")),layouts("L ...*/), ((IConstructor)$constants.get(1161)/*prod(keywords("RascalKeywords"),[lit("str")],{})*/), ((IConstructor)$constants.get(1163)/*prod(label("default",\parameterized-sort("Mapping",[sort("Expression")])),[label("from",conditional( ...*/), ((IConstructor)$constants.get(1167)/*regular(\iter-star(lex("StringCharacter")))*/), ((IConstructor)$constants.get(574)/*prod(label("remainder",sort("Expression")),[label("lhs",sort("Expression")),layouts("LAYOUTLIST"),li ...*/), ((IConstructor)$constants.get(1168)/*prod(label("typed",lex("Concrete")),[lit("("),label("l1",layouts("LAYOUTLIST")),label("symbol",sort( ...*/), ((IConstructor)$constants.get(1176)/*prod(label("first",sort("Prod")),[label("lhs",sort("Prod")),layouts("LAYOUTLIST"),conditional(lit("\ ...*/), ((IConstructor)$constants.get(1181)/*prod(lex("NamedRegExp"),[lit("\<"),lex("Name"),lit("\>")],{})*/), ((IConstructor)$constants.get(1182)/*regular(\iter-star(lex("ConcretePart")))*/), ((IConstructor)$constants.get(763)/*prod(label("negative",sort("Pattern")),[lit("-"),layouts("LAYOUTLIST"),label("argument",sort("Patter ...*/), ((IConstructor)$constants.get(1183)/*prod(label("tag",sort("ProdModifier")),[label("tag",sort("Tag"))],{})*/), ((IConstructor)$constants.get(1186)/*prod(label("statement",sort("EvalCommand")),[label("statement",conditional(sort("Statement"),{except ...*/), ((IConstructor)$constants.get(1190)/*prod(label("for",sort("Statement")),[label("label",sort("Label")),layouts("LAYOUTLIST"),lit("for"),l ...*/), ((IConstructor)$constants.get(1192)/*prod(label("default",sort("Renaming")),[label("from",lex("Name")),layouts("LAYOUTLIST"),lit("=\>"),l ...*/), ((IConstructor)$constants.get(612)/*associativity(sort("Expression"),\non-assoc(),{prod(label("implication",sort("Expression")),[label(" ...*/), ((IConstructor)$constants.get(1196)/*prod(label("view",sort("Kind")),[lit("view")],{})*/), ((IConstructor)$constants.get(1199)/*prod(label("visit",sort("Statement")),[label("label",sort("Label")),layouts("LAYOUTLIST"),label("vis ...*/), ((IConstructor)$constants.get(1201)/*prod(label("clear",sort("ShellCommand")),[lit("clear")],{})*/), ((IConstructor)$constants.get(515)/*prod(label("fieldProject",sort("Expression")),[conditional(label("expression",sort("Expression")),{e ...*/), ((IConstructor)$constants.get(1204)/*prod(lex("RealLiteral"),[iter(\char-class([range(48,57)])),\char-class([range(69,69),range(101,101)] ...*/), ((IConstructor)$constants.get(1205)/*prod(lex("RealLiteral"),[iter(\char-class([range(48,57)])),conditional(lit("."),{\not-follow(lit("." ...*/), ((IConstructor)$constants.get(1207)/*prod(label("bottomUp",sort("Strategy")),[lit("bottom-up")],{})*/), ((IConstructor)$constants.get(1210)/*prod(lex("JustDate"),[lit("$"),lex("DatePart"),lit("$")],{})*/), ((IConstructor)$constants.get(1212)/*prod(label("associative",sort("Assoc")),[lit("assoc")],{})*/), ((IConstructor)$constants.get(1215)/*prod(label("map",sort("BasicType")),[lit("map")],{})*/), ((IConstructor)$constants.get(1218)/*prod(label("tuple",sort("BasicType")),[lit("tuple")],{})*/), ((IConstructor)$constants.get(488)/*prod(label("reifiedType",sort("Expression")),[lit("type"),layouts("LAYOUTLIST"),lit("("),layouts("LA ...*/), ((IConstructor)$constants.get(1220)/*priority(sort("Sym"),[choice(sort("Sym"),{prod(label("except",sort("Sym")),[label("symbol",sort("Sym ...*/), ((IConstructor)$constants.get(1228)/*prod(label("nonAssociative",sort("Assoc")),[lit("non-assoc")],{})*/), ((IConstructor)$constants.get(1231)/*prod(label("ifThenElse",sort("Statement")),[label("label",sort("Label")),layouts("LAYOUTLIST"),lit(" ...*/), ((IConstructor)$constants.get(1235)/*prod(lex("OctalIntegerLiteral"),[\char-class([range(48,48)]),conditional(iter(\char-class([range(48, ...*/), ((IConstructor)$constants.get(1238)/*prod(lex("PreProtocolChars"),[lit("|"),lex("URLChars"),lit("\<")],{})*/), ((IConstructor)$constants.get(770)/*prod(label("qualifiedName",sort("Pattern")),[label("qualifiedName",sort("QualifiedName"))],{})*/), ((IConstructor)$constants.get(1239)/*prod(label("listDeclarations",sort("ShellCommand")),[lit("declarations")],{})*/), ((IConstructor)$constants.get(1242)/*prod(label("parameters",sort("Header")),[label("tags",sort("Tags")),layouts("LAYOUTLIST"),lit("modul ...*/), ((IConstructor)$constants.get(379)/*prod(label("noMatch",sort("Expression")),[label("pattern",sort("Pattern")),layouts("LAYOUTLIST"),lit ...*/), ((IConstructor)$constants.get(1247)/*regular(\iter-seps(sort("QualifiedName"),[layouts("LAYOUTLIST"),lit(","),layouts("LAYOUTLIST")]))*/), ((IConstructor)$constants.get(690)/*prod(label("append",sort("Statement")),[lit("append"),layouts("LAYOUTLIST"),label("dataTarget",sort( ...*/), ((IConstructor)$constants.get(1248)/*regular(\iter-seps(sort("Sym"),[layouts("LAYOUTLIST"),lit(","),layouts("LAYOUTLIST")]))*/), ((IConstructor)$constants.get(1249)/*prod(label("shell",sort("Command")),[lit(":"),layouts("LAYOUTLIST"),label("command",sort("ShellComma ...*/), ((IConstructor)$constants.get(1252)/*regular(\iter-star-seps(sort("Tag"),[layouts("LAYOUTLIST")]))*/), ((IConstructor)$constants.get(1254)/*prod(lex("TimeZonePart"),[\char-class([range(43,43),range(45,45)]),\char-class([range(48,49)]),\char ...*/), ((IConstructor)$constants.get(1255)/*prod(keywords("RascalKeywords"),[lit("any")],{})*/), ((IConstructor)$constants.get(966)/*prod(label("parametrized",sort("Sym")),[conditional(label("nonterminal",lex("Nonterminal")),{follow( ...*/), ((IConstructor)$constants.get(1256)/*prod(label("private",sort("Visibility")),[lit("private")],{})*/), ((IConstructor)$constants.get(1259)/*prod(lex("Name"),[conditional(seq([conditional(\char-class([range(65,90),range(95,95),range(97,122)] ...*/), ((IConstructor)$constants.get(1265)/*prod(lex("RegExp"),[\char-class([range(92,92)]),\char-class([range(47,47),range(60,60),range(62,62), ...*/), ((IConstructor)$constants.get(608)/*prod(label("implication",sort("Expression")),[label("lhs",sort("Expression")),layouts("LAYOUTLIST"), ...*/), ((IConstructor)$constants.get(1266)/*prod(label("withThrows",sort("Signature")),[label("modifiers",sort("FunctionModifiers")),layouts("LA ...*/), ((IConstructor)$constants.get(1271)/*prod(keywords("RascalKeywords"),[lit("keyword")],{})*/), ((IConstructor)$constants.get(1273)/*priority(sort("Class"),[choice(sort("Class"),{prod(label("simpleCharclass",sort("Class")),[lit("["), ...*/), ((IConstructor)$constants.get(1277)/*prod(keywords("RascalKeywords"),[lit("void")],{})*/), ((IConstructor)$constants.get(1279)/*prod(label("rational",sort("Literal")),[label("rationalLiteral",lex("RationalLiteral"))],{tag("categ ...*/), ((IConstructor)$constants.get(1282)/*prod(lex("StringCharacter"),[lit("\\"),\char-class([range(34,34),range(39,39),range(60,60),range(62, ...*/), ((IConstructor)$constants.get(265)/*prod(label("lessThan",sort("Expression")),[label("lhs",sort("Expression")),layouts("LAYOUTLIST"),con ...*/), ((IConstructor)$constants.get(1284)/*prod(label("octalIntegerLiteral",sort("IntegerLiteral")),[label("octal",lex("OctalIntegerLiteral"))] ...*/), ((IConstructor)$constants.get(1287)/*prod(label("edit",sort("ShellCommand")),[lit("edit"),layouts("LAYOUTLIST"),label("name",sort("Qualif ...*/), ((IConstructor)$constants.get(1290)/*regular(\iter-star-seps(sort("TypeArg"),[layouts("LAYOUTLIST"),lit(","),layouts("LAYOUTLIST")]))*/), ((IConstructor)$constants.get(1291)/*regular(\iter-star(alt({conditional(\char-class([range(42,42)]),{\not-follow(\char-class([range(47,4 ...*/), ((IConstructor)$constants.get(1292)/*prod(lex("Name"),[\char-class([range(92,92)]),\char-class([range(65,90),range(95,95),range(97,122)]) ...*/), ((IConstructor)$constants.get(1296)/*prod(lex("NamedBackslash"),[conditional(\char-class([range(92,92)]),{\not-follow(\char-class([range( ...*/), ((IConstructor)$constants.get(984)/*prod(label("sequence",sort("Sym")),[lit("("),layouts("LAYOUTLIST"),label("first",sort("Sym")),layout ...*/), ((IConstructor)$constants.get(1299)/*prod(lex("RegExp"),[\char-class([range(1,46),range(48,59),range(61,61),range(63,91),range(93,1114111 ...*/), ((IConstructor)$constants.get(1301)/*prod(keywords("RascalKeywords"),[lit("finally")],{})*/), ((IConstructor)$constants.get(1303)/*prod(label("default",lex("OptionalComma")),[opt(lit(","))],{})*/), ((IConstructor)$constants.get(1306)/*prod(keywords("RascalKeywords"),[lit("real")],{})*/), ((IConstructor)$constants.get(978)/*prod(label("endOfLine",sort("Sym")),[label("symbol",sort("Sym")),layouts("LAYOUTLIST"),lit("$")],{})*/), ((IConstructor)$constants.get(1308)/*prod(label("assert",sort("Statement")),[lit("assert"),layouts("LAYOUTLIST"),label("expression",sort( ...*/), ((IConstructor)$constants.get(1310)/*prod(label("lexical",sort("SyntaxDefinition")),[lit("lexical"),layouts("LAYOUTLIST"),label("defined" ...*/), ((IConstructor)$constants.get(1313)/*prod(label("value",sort("BasicType")),[lit("value")],{})*/), ((IConstructor)$constants.get(1316)/*prod(keywords("RascalKeywords"),[lit("true")],{})*/), ((IConstructor)$constants.get(580)/*associativity(sort("Expression"),left(),{prod(label("intersection",sort("Expression")),[label("lhs", ...*/), ((IConstructor)$constants.get(1226)/*associativity(sort("Sym"),left(),{prod(label("notFollow",sort("Sym")),[label("symbol",sort("Sym")),l ...*/), ((IConstructor)$constants.get(1317)/*prod(keywords("RascalKeywords"),[lit("private")],{})*/), ((IConstructor)$constants.get(1318)/*prod(label("timeLiteral",sort("DateTimeLiteral")),[label("time",lex("JustTime"))],{})*/), ((IConstructor)$constants.get(1321)/*prod(keywords("RascalKeywords"),[lit("try")],{})*/), ((IConstructor)$constants.get(611)/*prod(label("equivalence",sort("Expression")),[label("lhs",sort("Expression")),layouts("LAYOUTLIST"), ...*/), ((IConstructor)$constants.get(1322)/*prod(label("noThrows",sort("Signature")),[label("modifiers",sort("FunctionModifiers")),layouts("LAYO ...*/), ((IConstructor)$constants.get(1324)/*prod(label("midInterpolated",sort("StringTail")),[label("mid",lex("MidStringChars")),layouts("LAYOUT ...*/), ((IConstructor)$constants.get(466)/*prod(label("closure",sort("Expression")),[label("type",sort("Type")),layouts("LAYOUTLIST"),label("pa ...*/), ((IConstructor)$constants.get(1326)/*prod(keywords("RascalKeywords"),[lit("all")],{})*/), ((IConstructor)$constants.get(1327)/*regular(\iter-star-seps(\parameterized-sort("Mapping",[sort("Pattern")]),[layouts("LAYOUTLIST"),lit( ...*/), ((IConstructor)$constants.get(1328)/*prod(label("named",sort("TypeArg")),[label("type",sort("Type")),layouts("LAYOUTLIST"),label("name",l ...*/), ((IConstructor)$constants.get(686)/*prod(label("throw",sort("Statement")),[lit("throw"),layouts("LAYOUTLIST"),label("statement",conditio ...*/), ((IConstructor)$constants.get(1330)/*prod(label("anno",sort("Kind")),[lit("anno")],{})*/), ((IConstructor)$constants.get(1332)/*prod(label("modifierlist",sort("FunctionModifiers")),[label("modifiers",\iter-star-seps(sort("Functi ...*/), ((IConstructor)$constants.get(1335)/*prod(label("default",\parameterized-sort("Mapping",[sort("Pattern")])),[label("from",conditional(sor ...*/), ((IConstructor)$constants.get(973)/*prod(label("nonterminal",sort("Sym")),[conditional(label("nonterminal",lex("Nonterminal")),{\not-fol ...*/), ((IConstructor)$constants.get(1339)/*prod(label("variable",sort("Assignable")),[label("qualifiedName",sort("QualifiedName"))],{})*/), ((IConstructor)$constants.get(1341)/*prod(label("ifDefined",sort("Assignment")),[lit("?=")],{})*/), ((IConstructor)$constants.get(1344)/*prod(label("patternWithAction",sort("Case")),[lit("case"),layouts("LAYOUTLIST"),label("patternWithAc ...*/), ((IConstructor)$constants.get(1347)/*prod(lex("Comment"),[lit("//"),conditional(\iter-star(\char-class([range(1,9),range(11,1114111)])),{ ...*/), ((IConstructor)$constants.get(1353)/*prod(label("concrete",sort("Pattern")),[label("concrete",lex("Concrete"))],{})*/), ((IConstructor)$constants.get(453)/*prod(label("tuple",sort("Expression")),[lit("\<"),layouts("LAYOUTLIST"),label("elements",\iter-seps( ...*/), ((IConstructor)$constants.get(1355)/*regular(\iter-star(\char-class([range(1,9),range(11,1114111)])))*/), ((IConstructor)$constants.get(1356)/*prod(label("ifThen",sort("Statement")),[label("label",sort("Label")),layouts("LAYOUTLIST"),lit("if") ...*/), ((IConstructor)$constants.get(1360)/*prod(label("default",sort("Formals")),[label("formals",\iter-star-seps(sort("Pattern"),[layouts("LAY ...*/), ((IConstructor)$constants.get(1363)/*regular(\iter-seps(sort("Sym"),[layouts("LAYOUTLIST"),lit("|"),layouts("LAYOUTLIST")]))*/), ((IConstructor)$constants.get(1364)/*prod(keywords("RascalKeywords"),[lit("visit")],{})*/), ((IConstructor)$constants.get(1365)/*priority(sort("Pattern"),[choice(sort("Pattern"),{prod(label("list",sort("Pattern")),[lit("["),layou ...*/), ((IConstructor)$constants.get(1366)/*prod(label("default",sort("Label")),[label("name",lex("Name")),layouts("LAYOUTLIST"),lit(":")],{})*/), ((IConstructor)$constants.get(1368)/*prod(label("function",sort("Kind")),[lit("function")],{})*/), ((IConstructor)$constants.get(1371)/*prod(label("unInitialized",sort("Variable")),[label("name",lex("Name"))],{})*/), ((IConstructor)$constants.get(1373)/*prod(label("givenVisibility",sort("Toplevel")),[label("declaration",sort("Declaration"))],{})*/), ((IConstructor)$constants.get(1375)/*prod(lex("DecimalIntegerLiteral"),[\char-class([range(49,57)]),conditional(\iter-star(\char-class([r ...*/), ((IConstructor)$constants.get(1376)/*prod(keywords("RascalKeywords"),[lit("map")],{})*/), ((IConstructor)$constants.get(1377)/*prod(label("string",sort("BasicType")),[lit("str")],{})*/), ((IConstructor)$constants.get(1379)/*prod(label("while",sort("StringTemplate")),[lit("while"),layouts("LAYOUTLIST"),lit("("),layouts("LAY ...*/), ((IConstructor)$constants.get(1381)/*regular(\iter-seps(sort("Sym"),[layouts("LAYOUTLIST")]))*/), ((IConstructor)$constants.get(461)/*prod(label("visit",sort("Expression")),[label("label",sort("Label")),layouts("LAYOUTLIST"),label("vi ...*/), ((IConstructor)$constants.get(1382)/*prod(label("loc",sort("BasicType")),[lit("loc")],{})*/), ((IConstructor)$constants.get(604)/*prod(label("ifDefinedOtherwise",sort("Expression")),[label("lhs",sort("Expression")),layouts("LAYOUT ...*/), ((IConstructor)$constants.get(1222)/*prod(label("follow",sort("Sym")),[label("symbol",sort("Sym")),layouts("LAYOUTLIST"),lit("\>\>"),layo ...*/), ((IConstructor)$constants.get(1384)/*prod(label("real",sort("BasicType")),[lit("real")],{})*/), ((IConstructor)$constants.get(1386)/*prod(label("list",sort("Comprehension")),[lit("["),layouts("LAYOUTLIST"),label("results",\iter-seps( ...*/), ((IConstructor)$constants.get(1388)/*prod(lex("RealLiteral"),[conditional(lit("."),{\not-precede(\char-class([range(46,46)]))}),iter(\cha ...*/), ((IConstructor)$constants.get(1389)/*prod(label("default",sort("FunctionDeclaration")),[label("tags",sort("Tags")),layouts("LAYOUTLIST"), ...*/), ((IConstructor)$constants.get(1392)/*prod(layouts("$default$"),[],{})*/), ((IConstructor)$constants.get(438)/*prod(label("try",sort("Statement")),[lit("try"),layouts("LAYOUTLIST"),label("body",sort("Statement") ...*/), ((IConstructor)$constants.get(1394)/*prod(label("declaration",sort("EvalCommand")),[label("declaration",sort("Declaration"))],{})*/), ((IConstructor)$constants.get(1396)/*regular(\iter-star(lex("LAYOUT")))*/), ((IConstructor)$constants.get(618)/*associativity(sort("Expression"),left(),{prod(label("or",sort("Expression")),[label("lhs",sort("Expr ...*/), ((IConstructor)$constants.get(615)/*associativity(sort("Expression"),left(),{prod(label("and",sort("Expression")),[label("lhs",sort("Exp ...*/), ((IConstructor)$constants.get(761)/*prod(label("multiVariable",sort("Pattern")),[label("qualifiedName",sort("QualifiedName")),layouts("L ...*/), ((IConstructor)$constants.get(500)/*prod(label("voidClosure",sort("Expression")),[label("parameters",sort("Parameters")),layouts("LAYOUT ...*/), ((IConstructor)$constants.get(540)/*prod(label("transitiveClosure",sort("Expression")),[label("argument",sort("Expression")),layouts("LA ...*/), ((IConstructor)$constants.get(1398)/*prod(lex("DatePart"),[\char-class([range(48,57)]),\char-class([range(48,57)]),\char-class([range(48, ...*/), ((IConstructor)$constants.get(1400)/*prod(label("set",sort("BasicType")),[lit("set")],{})*/), ((IConstructor)$constants.get(1403)/*prod(label("assignment",sort("Statement")),[label("assignable",sort("Assignable")),layouts("LAYOUTLI ...*/), ((IConstructor)$constants.get(1407)/*prod(label("annotation",sort("Declaration")),[label("tags",sort("Tags")),layouts("LAYOUTLIST"),label ...*/), ((IConstructor)$constants.get(1411)/*regular(\iter-star(\char-class([range(48,57),range(65,90),range(95,95),range(97,122)])))*/), ((IConstructor)$constants.get(1412)/*prod(label("default",sort("Tags")),[label("tags",\iter-star-seps(sort("Tag"),[layouts("LAYOUTLIST")] ...*/), ((IConstructor)$constants.get(1415)/*prod(layouts("LAYOUTLIST"),[conditional(\iter-star(lex("LAYOUT")),{\not-follow(\char-class([range(9, ...*/), ((IConstructor)$constants.get(1417)/*prod(label("default",sort("Renamings")),[lit("renaming"),layouts("LAYOUTLIST"),label("renamings",\it ...*/), ((IConstructor)$constants.get(1275)/*prod(label("difference",sort("Class")),[label("lhs",sort("Class")),layouts("LAYOUTLIST"),lit("-"),la ...*/), ((IConstructor)$constants.get(1421)/*prod(keywords("RascalKeywords"),[lit("lexical")],{})*/), ((IConstructor)$constants.get(1422)/*prod(label("filter",sort("Statement")),[lit("filter"),layouts("LAYOUTLIST"),lit(";")],{tag("breakabl ...*/), ((IConstructor)$constants.get(1424)/*regular(\iter-star(\char-class([range(45,45),range(48,57),range(65,90),range(95,95),range(97,122)])) ...*/), ((IConstructor)$constants.get(504)/*prod(label("list",sort("Expression")),[lit("["),layouts("LAYOUTLIST"),label("elements0",\iter-star-s ...*/), ((IConstructor)$constants.get(990)/*prod(label("caseInsensitiveLiteral",sort("Sym")),[label("cistring",lex("CaseInsensitiveStringConstan ...*/), ((IConstructor)$constants.get(1425)/*prod(keywords("RascalKeywords"),[lit("value")],{})*/), ((IConstructor)$constants.get(270)/*prod(label("greaterThan",sort("Expression")),[label("lhs",sort("Expression")),layouts("LAYOUTLIST"), ...*/), ((IConstructor)$constants.get(1426)/*prod(label("ifDefinedOrDefault",sort("Assignable")),[label("receiver",sort("Assignable")),layouts("L ...*/), ((IConstructor)$constants.get(1429)/*regular(\iter-star-seps(sort("Expression"),[layouts("LAYOUTLIST"),lit(","),layouts("LAYOUTLIST")]))*/), ((IConstructor)$constants.get(1430)/*prod(label("dateTime",sort("Literal")),[label("dateTimeLiteral",sort("DateTimeLiteral"))],{})*/), ((IConstructor)$constants.get(1433)/*prod(lex("RegExpModifier"),[\iter-star(\char-class([range(100,100),range(105,105),range(109,109),ran ...*/), ((IConstructor)$constants.get(1436)/*prod(lex("StringCharacter"),[lex("UnicodeEscape")],{})*/), ((IConstructor)$constants.get(1437)/*prod(label("dateLiteral",sort("DateTimeLiteral")),[label("date",lex("JustDate"))],{})*/), ((IConstructor)$constants.get(483)/*prod(label("set",sort("Expression")),[lit("{"),layouts("LAYOUTLIST"),label("elements0",\iter-star-se ...*/), ((IConstructor)$constants.get(1440)/*regular(\iter-seps(sort("Variant"),[layouts("LAYOUTLIST"),lit("|"),layouts("LAYOUTLIST")]))*/), ((IConstructor)$constants.get(1033)/*prod(label("variableBecomes",sort("Pattern")),[label("name",lex("Name")),layouts("LAYOUTLIST"),lit(" ...*/), ((IConstructor)$constants.get(585)/*prod(label("addition",sort("Expression")),[label("lhs",sort("Expression")),layouts("LAYOUTLIST"),lit ...*/), ((IConstructor)$constants.get(1441)/*prod(keywords("RascalKeywords"),[lit("non-assoc")],{})*/), ((IConstructor)$constants.get(1442)/*associativity(sort("Prod"),left(),{prod(label("first",sort("Prod")),[label("lhs",sort("Prod")),layou ...*/), ((IConstructor)$constants.get(1443)/*prod(label("toplevels",sort("Body")),[label("toplevels",\iter-star-seps(sort("Toplevel"),[layouts("L ...*/), ((IConstructor)$constants.get(1446)/*prod(label("java",sort("FunctionModifier")),[lit("java")],{})*/), ((IConstructor)$constants.get(1449)/*prod(label("output",sort("EvalCommand")),[lex("Output")],{})*/), ((IConstructor)$constants.get(1451)/*prod(label("real",sort("Literal")),[label("realLiteral",lex("RealLiteral"))],{tag("category"("number ...*/), ((IConstructor)$constants.get(1454)/*prod(lex("PrePathChars"),[lex("URLChars"),lit("\<")],{})*/), ((IConstructor)$constants.get(1455)/*prod(keywords("RascalKeywords"),[lit("if")],{})*/), ((IConstructor)$constants.get(1225)/*prod(label("notPrecede",sort("Sym")),[label("match",sort("Sym")),layouts("LAYOUTLIST"),lit("!\<\<"), ...*/), ((IConstructor)$constants.get(1456)/*prod(label("relation",sort("BasicType")),[lit("rel")],{})*/), ((IConstructor)$constants.get(1459)/*prod(label("expression",sort("FunctionDeclaration")),[label("tags",sort("Tags")),layouts("LAYOUTLIST ...*/), ((IConstructor)$constants.get(1461)/*prod(label("void",sort("BasicType")),[lit("void")],{})*/), ((IConstructor)$constants.get(1463)/*regular(\iter-star-seps(sort("Range"),[layouts("LAYOUTLIST")]))*/), ((IConstructor)$constants.get(1464)/*prod(label("post",sort("StringTail")),[label("post",lex("PostStringChars"))],{})*/), ((IConstructor)$constants.get(1468)/*prod(label("ifThen",sort("StringTemplate")),[lit("if"),layouts("LAYOUTLIST"),lit("("),layouts("LAYOU ...*/), ((IConstructor)$constants.get(1470)/*choice(sort("Prod"),{prod(label("associativityGroup",sort("Prod")),[label("associativity",sort("Asso ...*/), ((IConstructor)$constants.get(1480)/*prod(label("default",sort("Declarator")),[label("type",sort("Type")),layouts("LAYOUTLIST"),label("va ...*/), ((IConstructor)$constants.get(1483)/*prod(keywords("RascalKeywords"),[lit("join")],{})*/), ((IConstructor)$constants.get(1484)/*prod(label("unconditional",sort("Replacement")),[label("replacementExpression",sort("Expression"))], ...*/), ((IConstructor)$constants.get(1487)/*prod(label("decimalIntegerLiteral",sort("IntegerLiteral")),[label("decimal",lex("DecimalIntegerLiter ...*/), ((IConstructor)$constants.get(589)/*prod(label("subtraction",sort("Expression")),[label("lhs",conditional(sort("Expression"),{except("tr ...*/), ((IConstructor)$constants.get(1490)/*prod(label("data",sort("Kind")),[lit("data")],{})*/), ((IConstructor)$constants.get(1492)/*prod(label("setOption",sort("ShellCommand")),[lit("set"),layouts("LAYOUTLIST"),label("name",sort("Qu ...*/), ((IConstructor)$constants.get(1494)/*prod(lex("DateAndTime"),[lit("$"),lex("DatePart"),lit("T"),lex("TimePartNoTZ"),lex("TimeZonePart"),l ...*/), ((IConstructor)$constants.get(1495)/*prod(label("module",sort("Kind")),[lit("module")],{})*/), ((IConstructor)$constants.get(1497)/*prod(keywords("RascalKeywords"),[lit("else")],{})*/), ((IConstructor)$constants.get(1498)/*prod(keywords("RascalKeywords"),[lit("in")],{})*/), ((IConstructor)$constants.get(1499)/*prod(keywords("RascalKeywords"),[lit("it")],{})*/), ((IConstructor)$constants.get(1500)/*prod(keywords("RascalKeywords"),[lit("false")],{})*/), ((IConstructor)$constants.get(1501)/*prod(label("empty",sort("Target")),[],{})*/), ((IConstructor)$constants.get(1503)/*prod(keywords("RascalKeywords"),[lit("return")],{})*/), ((IConstructor)$constants.get(1504)/*prod(label("default",sort("TypeArg")),[label("type",sort("Type"))],{})*/), ((IConstructor)$constants.get(1506)/*prod(label("continue",sort("Statement")),[lit("continue"),layouts("LAYOUTLIST"),label("target",sort( ...*/), ((IConstructor)$constants.get(555)/*prod(label("negation",sort("Expression")),[lit("!"),layouts("LAYOUTLIST"),label("argument",condition ...*/), ((IConstructor)$constants.get(1509)/*prod(lex("DatePart"),[\char-class([range(48,57)]),\char-class([range(48,57)]),\char-class([range(48, ...*/), ((IConstructor)$constants.get(1510)/*prod(keywords("RascalKeywords"),[lit("for")],{})*/), ((IConstructor)$constants.get(1511)/*prod(label("newline",lex("ConcretePart")),[lit("\n"),\iter-star(\char-class([range(9,9),range(32,32) ...*/), ((IConstructor)$constants.get(1514)/*prod(label("doWhile",sort("Statement")),[label("label",sort("Label")),layouts("LAYOUTLIST"),lit("do" ...*/), ((IConstructor)$constants.get(1516)/*prod(label("int",sort("BasicType")),[lit("int")],{})*/), ((IConstructor)$constants.get(1518)/*prod(label("bounded",sort("TypeVar")),[lit("&"),layouts("LAYOUTLIST"),label("name",lex("Name")),layo ...*/), ((IConstructor)$constants.get(1522)/*prod(label("one",sort("ConcreteHole")),[lit("\<"),layouts("LAYOUTLIST"),label("symbol",sort("Sym")), ...*/), ((IConstructor)$constants.get(1524)/*prod(label("hexIntegerLiteral",sort("IntegerLiteral")),[label("hex",lex("HexIntegerLiteral"))],{})*/), ((IConstructor)$constants.get(1527)/*prod(label("location",sort("Literal")),[label("locationLiteral",sort("LocationLiteral"))],{tag("cate ...*/), ((IConstructor)$constants.get(1530)/*prod(label("default",sort("FunctionModifier")),[lit("default")],{})*/), ((IConstructor)$constants.get(1532)/*prod(label("default",sort("Visibility")),[],{})*/), ((IConstructor)$constants.get(1534)/*regular(\iter-star(lex("RegExp")))*/), ((IConstructor)$constants.get(1535)/*prod(label("interpolated",sort("StringMiddle")),[label("mid",lex("MidStringChars")),layouts("LAYOUTL ...*/), ((IConstructor)$constants.get(961)/*prod(label("except",sort("Sym")),[label("symbol",sort("Sym")),layouts("LAYOUTLIST"),lit("!"),layouts ...*/), ((IConstructor)$constants.get(532)/*prod(label("qualifiedName",sort("Expression")),[label("qualifiedName",sort("QualifiedName"))],{})*/), ((IConstructor)$constants.get(1537)/*prod(label("conditional",sort("Replacement")),[label("replacementExpression",sort("Expression")),lay ...*/), ((IConstructor)$constants.get(1539)/*prod(keywords("RascalKeywords"),[lit("break")],{})*/), ((IConstructor)$constants.get(1540)/*prod(label("tryFinally",sort("Statement")),[lit("try"),layouts("LAYOUTLIST"),label("body",sort("Stat ...*/), ((IConstructor)$constants.get(1543)/*prod(label("default",sort("Tag")),[lit("@"),layouts("LAYOUTLIST"),label("name",lex("Name")),layouts( ...*/), ((IConstructor)$constants.get(1546)/*prod(label("name",sort("UserType")),[label("name",sort("QualifiedName"))],{})*/), ((IConstructor)$constants.get(1548)/*prod(label("dynamic",sort("LocalVariableDeclaration")),[lit("dynamic"),layouts("LAYOUTLIST"),label(" ...*/), ((IConstructor)$constants.get(537)/*prod(label("map",sort("Expression")),[lit("("),layouts("LAYOUTLIST"),label("mappings",\iter-star-sep ...*/), ((IConstructor)$constants.get(1553)/*prod(label("variableDeclaration",sort("Statement")),[label("declaration",sort("LocalVariableDeclarat ...*/), ((IConstructor)$constants.get(575)/*associativity(sort("Expression"),left(),{prod(label("division",sort("Expression")),[label("lhs",sort ...*/), ((IConstructor)$constants.get(1556)/*prod(lex("LAYOUT"),[lex("Comment")],{})*/), ((IConstructor)$constants.get(1557)/*prod(lex("NamedRegExp"),[\char-class([range(1,46),range(48,59),range(61,61),range(63,91),range(93,11 ...*/), ((IConstructor)$constants.get(623)/*prod(label("ifThenElse",sort("Expression")),[label("condition",sort("Expression")),layouts("LAYOUTLI ...*/), ((IConstructor)$constants.get(1558)/*prod(label("keyword",sort("SyntaxDefinition")),[lit("keyword"),layouts("LAYOUTLIST"),label("defined" ...*/), ((IConstructor)$constants.get(455)/*prod(label("literal",sort("Expression")),[label("literal",sort("Literal"))],{})*/), ((IConstructor)$constants.get(1560)/*prod(lex("TimeZonePart"),[\char-class([range(43,43),range(45,45)]),\char-class([range(48,49)]),\char ...*/), ((IConstructor)$constants.get(562)/*prod(label("composition",sort("Expression")),[label("lhs",sort("Expression")),layouts("LAYOUTLIST"), ...*/), ((IConstructor)$constants.get(1561)/*prod(label("fail",sort("Statement")),[lit("fail"),layouts("LAYOUTLIST"),label("target",sort("Target" ...*/), ((IConstructor)$constants.get(1563)/*prod(label("bracket",sort("Type")),[lit("("),layouts("LAYOUTLIST"),label("type",sort("Type")),layout ...*/), ((IConstructor)$constants.get(1565)/*prod(label("resultOutput",lex("Output")),[lit("⇨"),\iter-star(\char-class([range(1,9),range(11,12),r ...*/), ((IConstructor)$constants.get(1568)/*prod(label("empty",sort("DataTarget")),[],{})*/), ((IConstructor)$constants.get(1570)/*prod(keywords("RascalKeywords"),[lit("test")],{})*/), ((IConstructor)$constants.get(1571)/*prod(label("all",sort("Prod")),[label("lhs",sort("Prod")),layouts("LAYOUTLIST"),lit("|"),layouts("LA ...*/), ((IConstructor)$constants.get(986)/*prod(label("characterClass",sort("Sym")),[label("charClass",sort("Class"))],{})*/), ((IConstructor)$constants.get(566)/*prod(label("division",sort("Expression")),[label("lhs",sort("Expression")),layouts("LAYOUTLIST"),lit ...*/), ((IConstructor)$constants.get(1573)/*prod(lex("Char"),[lit("\\"),\char-class([range(32,32),range(34,34),range(39,39),range(45,45),range(6 ...*/), ((IConstructor)$constants.get(1575)/*prod(label("import",sort("Command")),[label("imported",sort("Import"))],{})*/), ((IConstructor)$constants.get(1577)/*prod(label("selector",sort("DataTypeSelector")),[label("sort",sort("QualifiedName")),layouts("LAYOUT ...*/), ((IConstructor)$constants.get(1276)/*associativity(sort("Class"),left(),{prod(label("difference",sort("Class")),[label("lhs",sort("Class" ...*/), ((IConstructor)$constants.get(268)/*prod(label("greaterThanOrEq",sort("Expression")),[label("lhs",sort("Expression")),layouts("LAYOUTLIS ...*/), ((IConstructor)$constants.get(1580)/*prod(lex("NamedRegExp"),[\char-class([range(92,92)]),\char-class([range(47,47),range(60,60),range(62 ...*/), ((IConstructor)$constants.get(748)/*prod(label("tuple",sort("Pattern")),[lit("\<"),layouts("LAYOUTLIST"),label("elements",\iter-seps(sor ...*/), ((IConstructor)$constants.get(1581)/*prod(label("default",sort("ImportedModule")),[label("name",sort("QualifiedName"))],{})*/), ((IConstructor)$constants.get(1583)/*prod(label("default",\parameterized-sort("KeywordArguments",[sort("Expression")])),[label("optionalC ...*/), ((IConstructor)$constants.get(1587)/*prod(label("function",sort("Type")),[label("function",sort("FunctionType"))],{})*/), ((IConstructor)$constants.get(992)/*prod(label("parameter",sort("Sym")),[lit("&"),layouts("LAYOUTLIST"),label("nonterminal",lex("Nonterm ...*/), ((IConstructor)$constants.get(524)/*prod(label("has",sort("Expression")),[label("expression",sort("Expression")),layouts("LAYOUTLIST"),l ...*/), ((IConstructor)$constants.get(1591)/*prod(label("switch",sort("Statement")),[label("label",sort("Label")),layouts("LAYOUTLIST"),lit("swit ...*/), ((IConstructor)$constants.get(1593)/*prod(empty(),[],{})*/), ((IConstructor)$constants.get(1594)/*prod(keywords("RascalKeywords"),[sort("BasicType")],{})*/), ((IConstructor)$constants.get(1595)/*prod(keywords("RascalKeywords"),[lit("list")],{})*/), ((IConstructor)$constants.get(1596)/*prod(keywords("RascalKeywords"),[lit("rel")],{})*/), ((IConstructor)$constants.get(553)/*prod(label("negative",sort("Expression")),[lit("-"),layouts("LAYOUTLIST"),label("argument",sort("Exp ...*/), ((IConstructor)$constants.get(1597)/*regular(\iter-star(\char-class([range(100,100),range(105,105),range(109,109),range(115,115)])))*/), ((IConstructor)$constants.get(1598)/*prod(label("none",sort("KeywordFormals")),[],{})*/), ((IConstructor)$constants.get(1600)/*prod(label("default",sort("Case")),[lit("default"),layouts("LAYOUTLIST"),lit(":"),layouts("LAYOUTLIS ...*/), ((IConstructor)$constants.get(1031)/*prod(label("asType",sort("Pattern")),[lit("["),layouts("LAYOUTLIST"),label("type",sort("Type")),layo ...*/), ((IConstructor)$constants.get(579)/*prod(label("intersection",sort("Expression")),[label("lhs",sort("Expression")),layouts("LAYOUTLIST") ...*/), ((IConstructor)$constants.get(1602)/*prod(label("actuals",sort("ImportedModule")),[label("name",sort("QualifiedName")),layouts("LAYOUTLIS ...*/), ((IConstructor)$constants.get(1604)/*prod(label("listRelation",sort("BasicType")),[lit("lrel")],{})*/), ((IConstructor)$constants.get(1607)/*priority(sort("Prod"),[choice(sort("Prod"),{prod(label("associativityGroup",sort("Prod")),[label("as ...*/), ((IConstructor)$constants.get(1609)/*prod(label("topDownBreak",sort("Strategy")),[lit("top-down-break")],{})*/), ((IConstructor)$constants.get(1612)/*prod(label("none",\parameterized-sort("KeywordArguments",[sort("Expression")])),[],{})*/), ((IConstructor)$constants.get(1614)/*prod(label("default",sort("LocalVariableDeclaration")),[label("declarator",sort("Declarator"))],{})*/), ((IConstructor)$constants.get(1616)/*prod(label("division",sort("Assignment")),[lit("/=")],{})*/), ((IConstructor)$constants.get(1619)/*prod(keywords("RascalKeywords"),[lit("lrel")],{})*/), ((IConstructor)$constants.get(1620)/*prod(label("stdoutOutput",lex("Output")),[conditional(lit("≫"),{\begin-of-line()}),\iter-star(\char- ...*/), ((IConstructor)$constants.get(1624)/*prod(lex("RealLiteral"),[iter(\char-class([range(48,57)])),\char-class([range(68,68),range(70,70),ra ...*/), ((IConstructor)$constants.get(1608)/*associativity(sort("Prod"),left(),{prod(label("all",sort("Prod")),[label("lhs",sort("Prod")),layouts ...*/), ((IConstructor)$constants.get(1625)/*prod(label("slice",sort("Assignable")),[label("receiver",sort("Assignable")),layouts("LAYOUTLIST"),l ...*/), ((IConstructor)$constants.get(1627)/*prod(label("bottomUpBreak",sort("Strategy")),[lit("bottom-up-break")],{})*/), ((IConstructor)$constants.get(976)/*prod(label("column",sort("Sym")),[label("symbol",sort("Sym")),layouts("LAYOUTLIST"),lit("@"),layouts ...*/), ((IConstructor)$constants.get(1630)/*regular(iter(\char-class([range(48,57)])))*/), ((IConstructor)$constants.get(1631)/*prod(keywords("RascalKeywords"),[lit("bracket")],{})*/), ((IConstructor)$constants.get(1632)/*prod(keywords("RascalKeywords"),[lit("continue")],{})*/), ((IConstructor)$constants.get(1633)/*prod(label("mid",sort("ProtocolTail")),[label("mid",lex("MidProtocolChars")),layouts("LAYOUTLIST"),l ...*/), ((IConstructor)$constants.get(1636)/*prod(label("gt",lex("ConcretePart")),[lit("\\\>")],{tag("category"("string"))})*/), ((IConstructor)$constants.get(1639)/*regular(\iter-seps(sort("TypeVar"),[layouts("LAYOUTLIST"),lit(","),layouts("LAYOUTLIST")]))*/), ((IConstructor)$constants.get(1641)/*prod(label("unimport",sort("ShellCommand")),[lit("unimport"),layouts("LAYOUTLIST"),label("name",sort ...*/), ((IConstructor)$constants.get(1644)/*regular(\iter-seps(sort("EvalCommand"),[layouts("LAYOUTLIST")]))*/), ((IConstructor)$constants.get(45)/*prod(label("simpleCharclass",sort("Class")),[lit("["),layouts("LAYOUTLIST"),label("ranges",\iter-sta ...*/), ((IConstructor)$constants.get(1645)/*prod(label("default",sort("ModuleActuals")),[lit("["),layouts("LAYOUTLIST"),label("types",\iter-seps ...*/), ((IConstructor)$constants.get(1647)/*prod(label("subscript",sort("Assignable")),[label("receiver",sort("Assignable")),layouts("LAYOUTLIST ...*/), ((IConstructor)$constants.get(1649)/*prod(label("node",sort("BasicType")),[lit("node")],{})*/), ((IConstructor)$constants.get(1651)/*prod(lex("NonterminalLabel"),[\char-class([range(97,122)]),conditional(\iter-star(\char-class([range ...*/), ((IConstructor)$constants.get(1653)/*prod(label("help",sort("ShellCommand")),[lit("help")],{})*/), ((IConstructor)$constants.get(1656)/*prod(label("default",sort("ModuleParameters")),[lit("["),layouts("LAYOUTLIST"),label("parameters",\i ...*/), ((IConstructor)$constants.get(545)/*prod(label("bracket",sort("Expression")),[lit("("),layouts("LAYOUTLIST"),label("expression",sort("Ex ...*/), ((IConstructor)$constants.get(1659)/*prod(label("statement",sort("Command")),[label("statement",conditional(sort("Statement"),{except("va ...*/), ((IConstructor)$constants.get(1477)/*prod(label("unlabeled",sort("Prod")),[label("modifiers",\iter-star-seps(sort("ProdModifier"),[layout ...*/), ((IConstructor)$constants.get(601)/*prod(label("equals",sort("Expression")),[label("lhs",sort("Expression")),layouts("LAYOUTLIST"),lit(" ...*/), ((IConstructor)$constants.get(1661)/*prod(label("topDown",sort("Strategy")),[lit("top-down")],{})*/), ((IConstructor)$constants.get(1664)/*regular(\iter-seps(lex("Name"),[layouts("LAYOUTLIST"),lit("::"),layouts("LAYOUTLIST")]))*/), ((IConstructor)$constants.get(1665)/*prod(label("interpolated",sort("StringLiteral")),[label("pre",lex("PreStringChars")),layouts("LAYOUT ...*/), ((IConstructor)$constants.get(1667)/*prod(label("string",sort("Literal")),[label("stringLiteral",sort("StringLiteral"))],{})*/), ((IConstructor)$constants.get(1670)/*prod(label("layout",sort("SyntaxDefinition")),[label("vis",sort("Visibility")),layouts("LAYOUTLIST") ...*/), ((IConstructor)$constants.get(1479)/*prod(label("labeled",sort("Prod")),[label("modifiers",\iter-star-seps(sort("ProdModifier"),[layouts( ...*/), ((IConstructor)$constants.get(753)/*prod(label("splice",sort("Pattern")),[lit("*"),layouts("LAYOUTLIST"),label("argument",sort("Pattern" ...*/), ((IConstructor)$constants.get(970)/*prod(label("literal",sort("Sym")),[label("string",lex("StringConstant"))],{})*/), ((IConstructor)$constants.get(1673)/*prod(label("basic",sort("Type")),[label("basic",sort("BasicType"))],{})*/), ((IConstructor)$constants.get(1676)/*regular(\iter-seps(sort("Statement"),[layouts("LAYOUTLIST")]))*/), ((IConstructor)$constants.get(1677)/*prod(keywords("RascalKeywords"),[lit("start")],{})*/), ((IConstructor)$constants.get(1678)/*prod(label("default",\parameterized-sort("KeywordArguments",[sort("Pattern")])),[label("optionalComm ...*/), ((IConstructor)$constants.get(1682)/*prod(label("defaultStrategy",sort("Visit")),[lit("visit"),layouts("LAYOUTLIST"),lit("("),layouts("LA ...*/), ((IConstructor)$constants.get(1684)/*prod(keywords("RascalKeywords"),[lit("o")],{})*/), ((IConstructor)$constants.get(1685)/*prod(label("boolean",sort("Literal")),[label("booleanLiteral",lex("BooleanLiteral"))],{})*/), ((IConstructor)$constants.get(1688)/*prod(lex("TimePartNoTZ"),[\char-class([range(48,50)]),\char-class([range(48,57)]),\char-class([range ...*/), ((IConstructor)$constants.get(1689)/*prod(label("fromTo",sort("Range")),[label("start",lex("Char")),layouts("LAYOUTLIST"),lit("-"),layout ...*/), ((IConstructor)$constants.get(1693)/*prod(keywords("RascalKeywords"),[lit("set")],{})*/), ((IConstructor)$constants.get(1694)/*prod(label("constructor",sort("Assignable")),[label("name",lex("Name")),layouts("LAYOUTLIST"),lit("( ...*/), ((IConstructor)$constants.get(1697)/*regular(\iter-star(\char-class([range(48,57)])))*/), ((IConstructor)$constants.get(1698)/*prod(lex("Char"),[\char-class([range(1,31),range(33,33),range(35,38),range(40,44),range(46,59),range ...*/), ((IConstructor)$constants.get(1700)/*prod(lex("RationalLiteral"),[\char-class([range(48,57)]),\iter-star(\char-class([range(48,57)])),\ch ...*/), ((IConstructor)$constants.get(1701)/*prod(label("sliceStep",sort("Assignable")),[label("receiver",sort("Assignable")),layouts("LAYOUTLIST ...*/), ((IConstructor)$constants.get(1703)/*regular(\iter-star-seps(\parameterized-sort("Mapping",[sort("Expression")]),[layouts("LAYOUTLIST"),l ...*/), ((IConstructor)$constants.get(1029)/*prod(label("descendant",sort("Pattern")),[lit("/"),layouts("LAYOUTLIST"),label("pattern",sort("Patte ...*/), ((IConstructor)$constants.get(1704)/*prod(label("noExpression",sort("OptionalExpression")),[],{})*/), ((IConstructor)$constants.get(1706)/*regular(\iter-star(alt({seq([lit("\\"),\char-class([range(123,123),range(125,125)])]),lex("TagString ...*/), ((IConstructor)$constants.get(1707)/*prod(label("integer",sort("Literal")),[label("integerLiteral",sort("IntegerLiteral"))],{tag("categor ...*/), ((IConstructor)$constants.get(1710)/*prod(label("expression",sort("Tag")),[lit("@"),layouts("LAYOUTLIST"),label("name",lex("Name")),layou ...*/), ((IConstructor)$constants.get(1713)/*prod(label("solve",sort("Statement")),[lit("solve"),layouts("LAYOUTLIST"),lit("("),layouts("LAYOUTLI ...*/), ((IConstructor)$constants.get(1718)/*regular(\iter-star-seps(sort("Pattern"),[layouts("LAYOUTLIST"),lit(","),layouts("LAYOUTLIST")]))*/), ((IConstructor)$constants.get(1719)/*prod(keywords("RascalKeywords"),[lit("assoc")],{})*/), ((IConstructor)$constants.get(759)/*prod(label("typedVariable",sort("Pattern")),[label("type",sort("Type")),layouts("LAYOUTLIST"),label( ...*/), ((IConstructor)$constants.get(163)/*prod(label("in",sort("Expression")),[label("lhs",sort("Expression")),layouts("LAYOUTLIST"),lit("in") ...*/), ((IConstructor)$constants.get(1720)/*prod(label("character",sort("Range")),[label("character",lex("Char"))],{})*/), ((IConstructor)$constants.get(1723)/*prod(keywords("RascalKeywords"),[lit("bag")],{})*/), ((IConstructor)$constants.get(1725)/*prod(label("ascii",lex("UnicodeEscape")),[lit("\\"),\char-class([range(97,97)]),\char-class([range(4 ...*/), ((IConstructor)$constants.get(1728)/*prod(lex("PostStringChars"),[\char-class([range(62,62)]),\iter-star(lex("StringCharacter")),\char-cl ...*/), ((IConstructor)$constants.get(1729)/*prod(label("listModules",sort("ShellCommand")),[lit("modules")],{})*/), ((IConstructor)$constants.get(450)/*prod(label("it",sort("Expression")),[conditional(lit("it"),{\not-precede(\char-class([range(65,90),r ...*/), ((IConstructor)$constants.get(1732)/*prod(label("bag",sort("BasicType")),[lit("bag")],{})*/), ((IConstructor)$constants.get(595)/*associativity(sort("Expression"),left(),{prod(label("modulo",sort("Expression")),[label("lhs",sort(" ...*/), ((IConstructor)$constants.get(1734)/*prod(label("expression",sort("Command")),[label("expression",conditional(sort("Expression"),{except( ...*/), ((IConstructor)$constants.get(382)/*prod(label("enumerator",sort("Expression")),[label("pattern",sort("Pattern")),layouts("LAYOUTLIST"), ...*/), ((IConstructor)$constants.get(1738)/*prod(lex("JustTime"),[lit("$T"),conditional(lex("TimePartNoTZ"),{\not-follow(\char-class([range(43,4 ...*/), ((IConstructor)$constants.get(1739)/*prod(label("alias",sort("Declaration")),[label("tags",sort("Tags")),layouts("LAYOUTLIST"),label("vis ...*/), ((IConstructor)$constants.get(1742)/*prod(keywords("RascalKeywords"),[lit("dynamic")],{})*/), ((IConstructor)$constants.get(980)/*prod(label("iterStarSep",sort("Sym")),[lit("{"),layouts("LAYOUTLIST"),label("symbol",sort("Sym")),la ...*/), ((IConstructor)$constants.get(49)/*prod(label("complement",sort("Class")),[lit("!"),layouts("LAYOUTLIST"),label("charClass",sort("Class ...*/), ((IConstructor)$constants.get(1743)/*prod(label("typeArguments",sort("FunctionType")),[label("type",sort("Type")),layouts("LAYOUTLIST"),l ...*/), ((IConstructor)$constants.get(478)/*prod(label("callOrTree",sort("Expression")),[label("expression",conditional(sort("Expression"),{exce ...*/), ((IConstructor)$constants.get(1227)/*associativity(sort("Sym"),left(),{prod(label("unequal",sort("Sym")),[label("symbol",sort("Sym")),lay ...*/), ((IConstructor)$constants.get(1745)/*prod(label("default",sort("Header")),[label("tags",sort("Tags")),layouts("LAYOUTLIST"),lit("module") ...*/), ((IConstructor)$constants.get(1747)/*prod(keywords("RascalKeywords"),[lit("solve")],{})*/), ((IConstructor)$constants.get(1748)/*prod(label("abstract",sort("FunctionDeclaration")),[label("tags",sort("Tags")),layouts("LAYOUTLIST") ...*/), ((IConstructor)$constants.get(605)/*associativity(sort("Expression"),\non-assoc(),{prod(label("ifDefinedOtherwise",sort("Expression")),[ ...*/), ((IConstructor)$constants.get(1750)/*regular(\iter-seps(sort("Assignable"),[layouts("LAYOUTLIST"),lit(","),layouts("LAYOUTLIST")]))*/), ((IConstructor)$constants.get(1751)/*prod(start(sort("EvalCommand")),[layouts("LAYOUTLIST"),label("top",sort("EvalCommand")),layouts("LAY ...*/), ((IConstructor)$constants.get(529)/*prod(label("transitiveReflexiveClosure",sort("Expression")),[label("argument",sort("Expression")),la ...*/), ((IConstructor)$constants.get(1754)/*prod(lex("ProtocolChars"),[\char-class([range(124,124)]),lex("URLChars"),conditional(lit("://"),{\no ...*/), ((IConstructor)$constants.get(1473)/*prod(label("associativityGroup",sort("Prod")),[label("associativity",sort("Assoc")),layouts("LAYOUTL ...*/), ((IConstructor)$constants.get(1758)/*prod(label("varArgs",sort("Parameters")),[lit("("),layouts("LAYOUTLIST"),label("formals",sort("Forma ...*/), ((IConstructor)$constants.get(594)/*associativity(sort("Expression"),left(),{prod(label("insertBefore",sort("Expression")),[label("lhs", ...*/), ((IConstructor)$constants.get(1761)/*prod(lex("PathChars"),[lex("URLChars"),\char-class([range(124,124)])],{})*/), ((IConstructor)$constants.get(470)/*prod(label("reducer",sort("Expression")),[lit("("),layouts("LAYOUTLIST"),label("init",sort("Expressi ...*/), ((IConstructor)$constants.get(1762)/*prod(lex("Nonterminal"),[conditional(seq([conditional(\char-class([range(65,90)]),{\not-precede(\cha ...*/), ((IConstructor)$constants.get(1767)/*prod(label("utf32",lex("UnicodeEscape")),[lit("\\"),\char-class([range(85,85)]),alt({lit("10"),seq([ ...*/), ((IConstructor)$constants.get(548)/*choice(sort("Expression"),{prod(label("it",sort("Expression")),[conditional(lit("it"),{\not-precede( ...*/), ((IConstructor)$constants.get(1773)/*regular(iter(\char-class([range(1,9),range(11,59),range(61,61),range(63,91),range(93,95),range(97,11 ...*/), ((IConstructor)$constants.get(1774)/*prod(keywords("RascalKeywords"),[lit("rat")],{})*/), ((IConstructor)$constants.get(1775)/*prod(label("type",sort("BasicType")),[lit("type")],{})*/)}, + $RVF.bool(true)), + mod_0, + (IVisitFunction) (IValue $VISIT5_subject, TraversalState $traversalState) -> { + VISIT5:switch(Fingerprint.getConcreteFingerprint($VISIT5_subject)){ + + case 0: + + + default: + if($isSubtypeOf($VISIT5_subject.getType(),M_lang_rascal_syntax_Rascal.NT_SyntaxDefinition)){ + /*muExists*/CASE_0_0: + do { + ValueRef s_2 = new ValueRef(); + ITree $aux_1 = ((ITree)($VISIT5_subject)); + result_1.setValue($aset_add_elm(result_1.getValue(),$aux_1)); + $traversalState.setMatched(true); + break VISIT5; + } while(false); + + } + if($isSubtypeOf($VISIT5_subject.getType(),M_lang_rascal_syntax_Rascal.NT_Body)){ + /*muExists*/CASE_0_1: + do { + ValueRef b_3 = new ValueRef(); + ITree $replacement72 = (ITree)($VISIT5_subject); + if($isSubtypeOf($replacement72.getType(),$VISIT5_subject.getType())){ + $traversalState.setMatchedAndChanged(true, true); + return $replacement72; + + } else { + break VISIT5;// switch + + } + } while(false); + + } + + } + return $VISIT5_subject; + });return result_1.getValue(); + + } catch (ReturnFromTraversalException e) { + return (ISet) e.getValue(); + } + + } + + + public static void main(String[] args) { + throw new RuntimeException("No function `main` found in Rascal module `lang::rascal::grammar::definition::Modules`"); + } +} \ No newline at end of file diff --git a/src/rascal/lang/rascal/grammar/definition/$Modules.tpl b/src/rascal/lang/rascal/grammar/definition/$Modules.tpl new file mode 100644 index 00000000000..90cd9995a86 Binary files /dev/null and b/src/rascal/lang/rascal/grammar/definition/$Modules.tpl differ diff --git a/src/rascal/lang/rascal/grammar/definition/$Modules_$I.java b/src/rascal/lang/rascal/grammar/definition/$Modules_$I.java new file mode 100644 index 00000000000..94023ee595d --- /dev/null +++ b/src/rascal/lang/rascal/grammar/definition/$Modules_$I.java @@ -0,0 +1,16 @@ +package rascal.lang.rascal.grammar.definition; +import io.usethesource.vallang.*; +import org.rascalmpl.runtime.function.*; + +@SuppressWarnings("unused") +public interface $Modules_$I { + IValue collect(IValue $0); + IValue deslash(IValue $0); + IValue fuse(IValue $0); + IValue getModuleMetaInf(IValue $0); + IValue getModuleSyntaxDefinitions(IValue $0); + IValue imports2grammar(IValue $0); + IValue module2grammar(IValue $0); + IValue modules2definition(IValue $0, IValue $1); + IValue modules2grammar(IValue $0, IValue $1); +} \ No newline at end of file diff --git a/src/rascal/lang/rascal/grammar/definition/$Names.constants b/src/rascal/lang/rascal/grammar/definition/$Names.constants new file mode 100644 index 00000000000..8b4bc9a8c17 Binary files /dev/null and b/src/rascal/lang/rascal/grammar/definition/$Names.constants differ diff --git a/src/rascal/lang/rascal/grammar/definition/$Names.java b/src/rascal/lang/rascal/grammar/definition/$Names.java new file mode 100644 index 00000000000..e25c15e537c --- /dev/null +++ b/src/rascal/lang/rascal/grammar/definition/$Names.java @@ -0,0 +1,612 @@ +package rascal.lang.rascal.grammar.definition; +import java.io.PrintWriter; +import java.io.StringWriter; +import java.io.InputStreamReader; +import java.io.PrintWriter; +import java.util.*; +import java.util.regex.Matcher; +import io.usethesource.vallang.*; +import io.usethesource.vallang.type.*; +import org.rascalmpl.runtime.*; +import org.rascalmpl.runtime.RascalExecutionContext; +import org.rascalmpl.runtime.function.*; +import org.rascalmpl.runtime.traverse.*; +import org.rascalmpl.runtime.utils.*; +import org.rascalmpl.exceptions.RuntimeExceptionFactory; +import org.rascalmpl.exceptions.Throw; +import org.rascalmpl.runtime.RascalExecutionContext; +import org.rascalmpl.interpreter.control_exceptions.Filtered; +import org.rascalmpl.types.NonTerminalType; +import org.rascalmpl.types.RascalTypeFactory; +import org.rascalmpl.util.ExpiringFunctionResultCache; +import org.rascalmpl.values.RascalValueFactory; +import org.rascalmpl.values.ValueFactoryFactory; +import org.rascalmpl.values.parsetrees.ITree; +import org.rascalmpl.values.parsetrees.TreeAdapter; + + + +@SuppressWarnings({"unused","unchecked","deprecation"}) +public class $Names + extends + org.rascalmpl.runtime.$RascalModule + implements + rascal.lang.rascal.grammar.definition.$Names_$I { + + private final $Names_$I $me; + private final IList $constants; + + + public final rascal.$ParseTree M_ParseTree; + public final rascal.$Type M_Type; + public final rascal.$List M_List; + public final rascal.$Grammar M_Grammar; + public final rascal.$Message M_Message; + + + + public final io.usethesource.vallang.type.Type $T0; /*astr()*/ + public final io.usethesource.vallang.type.Type $T2; /*avalue()*/ + public final io.usethesource.vallang.type.Type $T3; /*aparameter("T",avalue(),closed=false)*/ + public final io.usethesource.vallang.type.Type ADT_LocationType; /*aadt("LocationType",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Exception; /*aadt("Exception",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_CharRange; /*aadt("CharRange",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Grammar; /*aadt("Grammar",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Associativity; /*aadt("Associativity",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_GrammarDefinition; /*aadt("GrammarDefinition",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_IOCapability; /*aadt("IOCapability",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_GrammarModule; /*aadt("GrammarModule",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Tree; /*aadt("Tree",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Item; /*aadt("Item",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Attr; /*aadt("Attr",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_LocationChangeType; /*aadt("LocationChangeType",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_LocationChangeEvent; /*aadt("LocationChangeEvent",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type $T4; /*aparameter("T",aadt("Tree",[],dataSyntax()),closed=true)*/ + public final io.usethesource.vallang.type.Type ADT_RuntimeException; /*aadt("RuntimeException",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Symbol; /*aadt("Symbol",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type $T5; /*alist(aadt("Symbol",[],dataSyntax()))*/ + public final io.usethesource.vallang.type.Type ADT_Message; /*aadt("Message",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Production; /*aadt("Production",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type $T1; /*alist(aparameter("T",avalue(),closed=false))*/ + public final io.usethesource.vallang.type.Type ADT_Condition; /*aadt("Condition",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_TreeSearchResult_1; /*aadt("TreeSearchResult",[aparameter("T",aadt("Tree",[],dataSyntax()),closed=true)],dataSyntax())*/ + + public $Names(RascalExecutionContext rex){ + this(rex, null); + } + + public $Names(RascalExecutionContext rex, Object extended){ + super(rex); + this.$me = extended == null ? this : ($Names_$I)extended; + ModuleStore mstore = rex.getModuleStore(); + mstore.put(rascal.lang.rascal.grammar.definition.$Names.class, this); + + mstore.importModule(rascal.$ParseTree.class, rex, rascal.$ParseTree::new); + mstore.importModule(rascal.$Type.class, rex, rascal.$Type::new); + mstore.importModule(rascal.$List.class, rex, rascal.$List::new); + mstore.importModule(rascal.$Grammar.class, rex, rascal.$Grammar::new); + mstore.importModule(rascal.$Message.class, rex, rascal.$Message::new); + + M_ParseTree = mstore.getModule(rascal.$ParseTree.class); + M_Type = mstore.getModule(rascal.$Type.class); + M_List = mstore.getModule(rascal.$List.class); + M_Grammar = mstore.getModule(rascal.$Grammar.class); + M_Message = mstore.getModule(rascal.$Message.class); + + + + $TS.importStore(M_ParseTree.$TS); + $TS.importStore(M_Type.$TS); + $TS.importStore(M_List.$TS); + $TS.importStore(M_Grammar.$TS); + $TS.importStore(M_Message.$TS); + + $constants = readBinaryConstantsFile(this.getClass(), "rascal/lang/rascal/grammar/definition/$Names.constants", 0, "d751713988987e9331980363e24189ce"); + ADT_LocationType = $adt("LocationType"); + ADT_Exception = $adt("Exception"); + ADT_CharRange = $adt("CharRange"); + ADT_Grammar = $adt("Grammar"); + ADT_Associativity = $adt("Associativity"); + ADT_GrammarDefinition = $adt("GrammarDefinition"); + ADT_IOCapability = $adt("IOCapability"); + ADT_GrammarModule = $adt("GrammarModule"); + ADT_Tree = $adt("Tree"); + ADT_Item = $adt("Item"); + ADT_Attr = $adt("Attr"); + ADT_LocationChangeType = $adt("LocationChangeType"); + ADT_LocationChangeEvent = $adt("LocationChangeEvent"); + ADT_RuntimeException = $adt("RuntimeException"); + ADT_Symbol = $adt("Symbol"); + ADT_Message = $adt("Message"); + ADT_Production = $adt("Production"); + ADT_Condition = $adt("Condition"); + $T0 = $TF.stringType(); + $T2 = $TF.valueType(); + $T3 = $TF.parameterType("T", $T2); + $T4 = $TF.parameterType("T", ADT_Tree); + $T5 = $TF.listType(ADT_Symbol); + $T1 = $TF.listType($T3); + ADT_TreeSearchResult_1 = $parameterizedAdt("TreeSearchResult", new Type[] { $T4 }); + + + + } + public IBool isTypeVar(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isTypeVar($P0); + } + public IList addLabels(IValue $P0, IValue $P1){ // Generated by Resolver + return (IList) M_Type.addLabels($P0, $P1); + } + public IBool sameType(IValue $P0, IValue $P1){ // Generated by Resolver + return (IBool) M_ParseTree.sameType($P0, $P1); + } + public IValue head(IValue $P0){ // Generated by Resolver + return (IValue) M_List.head($P0); + } + public IBool isAliasType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isAliasType($P0); + } + public IBool isStrType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isStrType($P0); + } + public IConstructor choice(IValue $P0, IValue $P1){ // Generated by Resolver + return (IConstructor) M_Type.choice($P0, $P1); + } + public IBool isValueType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isValueType($P0); + } + public IBool isADTType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isADTType($P0); + } + public IBool isListType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isListType($P0); + } + public IBool isRealType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isRealType($P0); + } + public IConstructor priority(IValue $P0, IValue $P1){ // Generated by Resolver + return (IConstructor) M_ParseTree.priority($P0, $P1); + } + public IBool isNodeType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isNodeType($P0); + } + public IBool isReifiedType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isReifiedType($P0); + } + public IBool isRelType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isRelType($P0); + } + public IBool isConstructorType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isConstructorType($P0); + } + public IBool isListRelType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isListRelType($P0); + } + public IList addParamLabels(IValue $P0, IValue $P1){ // Generated by Resolver + return (IList) M_Type.addParamLabels($P0, $P1); + } + public IConstructor resolve(IValue $P0){ // Generated by Resolver + IConstructor $result = null; + Type $P0Type = $P0.getType(); + if($isSubtypeOf($P0Type, M_Grammar.ADT_Grammar)){ + $result = (IConstructor)lang_rascal_grammar_definition_Names_resolve$b1807eb13cb5ba05((IConstructor) $P0); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0)); + } + public IBool isMapType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isMapType($P0); + } + public IBool isBoolType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isBoolType($P0); + } + public IList tail(IValue $P0){ // Generated by Resolver + return (IList) M_List.tail($P0); + } + public IBool isLocType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isLocType($P0); + } + public ITuple headTail(IValue $P0){ // Generated by Resolver + return (ITuple) M_List.headTail($P0); + } + public IConstructor treeAt(IValue $P0, IValue $P1, IValue $P2){ // Generated by Resolver + return (IConstructor) M_ParseTree.treeAt($P0, $P1, $P2); + } + public IBool isSetType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isSetType($P0); + } + public IBool isRatType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isRatType($P0); + } + public IBool isNumType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isNumType($P0); + } + public IBool isTupleType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isTupleType($P0); + } + public IBool isBagType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isBagType($P0); + } + public IBool isVoidType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isVoidType($P0); + } + public IBool isNonTerminalType(IValue $P0){ // Generated by Resolver + return (IBool) M_ParseTree.isNonTerminalType($P0); + } + public IValue lub(IValue $P0, IValue $P1){ // Generated by Resolver + return (IValue) M_Type.lub($P0, $P1); + } + public IString unescape(IValue $P0){ // Generated by Resolver + IString $result = null; + Type $P0Type = $P0.getType(); + if($isSubtypeOf($P0Type,$T0)){ + $result = (IString)lang_rascal_grammar_definition_Names_unescape$24eb09f0489e62c1((IString) $P0); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0)); + } + public IBool subtype(IValue $P0, IValue $P1){ // Generated by Resolver + return (IBool) M_Type.subtype($P0, $P1); + } + public IConstructor associativity(IValue $P0, IValue $P1, IValue $P2){ // Generated by Resolver + return (IConstructor) M_ParseTree.associativity($P0, $P1, $P2); + } + public IBool isFunctionType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isFunctionType($P0); + } + public IValue glb(IValue $P0, IValue $P1){ // Generated by Resolver + return (IValue) M_Type.glb($P0, $P1); + } + public IValue sort(IValue $P0){ // Generated by Resolver + IValue $result = null; + Type $P0Type = $P0.getType(); + if($isSubtypeOf($P0Type,$T1)){ + $result = (IValue)M_List.List_sort$1fe4426c8c8039da((IList) $P0); + if($result != null) return $result; + } + if($isSubtypeOf($P0Type,$T0)){ + return $RVF.constructor(M_ParseTree.Symbol_sort_str, new IValue[]{(IString) $P0}); + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0)); + } + public IList sort(IValue $P0, IValue $P1){ // Generated by Resolver + return (IList) M_List.sort($P0, $P1); + } + public IBool isIntType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isIntType($P0); + } + public IBool isDateTimeType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isDateTimeType($P0); + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/lang/rascal/grammar/definition/Names.rsc|(368,1102,<13,0>,<47,1>) + public IConstructor lang_rascal_grammar_definition_Names_resolve$b1807eb13cb5ba05(IConstructor d_0){ + + + try { + final ISetWriter $setwriter0 = (ISetWriter)$RVF.setWriter(); + ; + /*muExists*/$SCOMP1_GEN685_CONS_sort: + do { + $SCOMP1_GEN685: + for(IValue $elem2_for : ((IMap)(((IMap)($aadt_get_field(((IConstructor)d_0), "rules")))))){ + IConstructor $elem2 = (IConstructor) $elem2_for; + if($has_type_and_arity($elem2, M_ParseTree.Symbol_sort_str, 1)){ + IValue $arg0_3 = (IValue)($aadt_subscript_int(((IConstructor)($elem2)),0)); + if($isComparable($arg0_3.getType(), $T0)){ + IString n_2 = null; + $setwriter0.insert($arg0_3); + + } else { + continue $SCOMP1_GEN685; + } + } else { + continue $SCOMP1_GEN685; + } + } + + + } while(false); + final ValueRef cd_1 = new ValueRef("cd", ((ISet)($setwriter0.done()))); + final ISetWriter $setwriter4 = (ISetWriter)$RVF.setWriter(); + ; + /*muExists*/$SCOMP5_GEN720_CONS_parameterized_sort: + do { + $SCOMP5_GEN720: + for(IValue $elem6_for : ((IMap)(((IMap)($aadt_get_field(((IConstructor)d_0), "rules")))))){ + IConstructor $elem6 = (IConstructor) $elem6_for; + if($has_type_and_arity($elem6, M_ParseTree.Symbol_parameterized_sort_str_list_Symbol, 2)){ + IValue $arg0_8 = (IValue)($aadt_subscript_int(((IConstructor)($elem6)),0)); + if($isComparable($arg0_8.getType(), $T0)){ + IString n_4 = null; + IValue $arg1_7 = (IValue)($aadt_subscript_int(((IConstructor)($elem6)),1)); + if($isComparable($arg1_7.getType(), $T2)){ + $setwriter4.insert($arg0_8); + + } else { + continue $SCOMP5_GEN720; + } + } else { + continue $SCOMP5_GEN720; + } + } else { + continue $SCOMP5_GEN720; + } + } + + + } while(false); + final ValueRef pcd_3 = new ValueRef("pcd", ((ISet)($setwriter4.done()))); + final ISetWriter $setwriter9 = (ISetWriter)$RVF.setWriter(); + ; + /*muExists*/$SCOMP10_GEN770_CONS_lex: + do { + $SCOMP10_GEN770: + for(IValue $elem11_for : ((IMap)(((IMap)($aadt_get_field(((IConstructor)d_0), "rules")))))){ + IConstructor $elem11 = (IConstructor) $elem11_for; + if($has_type_and_arity($elem11, M_ParseTree.Symbol_lex_str, 1)){ + IValue $arg0_12 = (IValue)($aadt_subscript_int(((IConstructor)($elem11)),0)); + if($isComparable($arg0_12.getType(), $T0)){ + IString n_6 = null; + $setwriter9.insert($arg0_12); + + } else { + continue $SCOMP10_GEN770; + } + } else { + continue $SCOMP10_GEN770; + } + } + + + } while(false); + final ValueRef lx_5 = new ValueRef("lx", ((ISet)($setwriter9.done()))); + final ISetWriter $setwriter13 = (ISetWriter)$RVF.setWriter(); + ; + /*muExists*/$SCOMP14_GEN804_CONS_parameterized_lex: + do { + $SCOMP14_GEN804: + for(IValue $elem15_for : ((IMap)(((IMap)($aadt_get_field(((IConstructor)d_0), "rules")))))){ + IConstructor $elem15 = (IConstructor) $elem15_for; + if($has_type_and_arity($elem15, M_ParseTree.Symbol_parameterized_lex_str_list_Symbol, 2)){ + IValue $arg0_17 = (IValue)($aadt_subscript_int(((IConstructor)($elem15)),0)); + if($isComparable($arg0_17.getType(), $T0)){ + IString n_8 = null; + IValue $arg1_16 = (IValue)($aadt_subscript_int(((IConstructor)($elem15)),1)); + if($isComparable($arg1_16.getType(), $T2)){ + $setwriter13.insert($arg0_17); + + } else { + continue $SCOMP14_GEN804; + } + } else { + continue $SCOMP14_GEN804; + } + } else { + continue $SCOMP14_GEN804; + } + } + + + } while(false); + final ValueRef plx_7 = new ValueRef("plx", ((ISet)($setwriter13.done()))); + final ISetWriter $setwriter18 = (ISetWriter)$RVF.setWriter(); + ; + /*muExists*/$SCOMP19_GEN853_CONS_keywords: + do { + $SCOMP19_GEN853: + for(IValue $elem20_for : ((IMap)(((IMap)($aadt_get_field(((IConstructor)d_0), "rules")))))){ + IConstructor $elem20 = (IConstructor) $elem20_for; + if($has_type_and_arity($elem20, M_ParseTree.Symbol_keywords_str, 1)){ + IValue $arg0_21 = (IValue)($aadt_subscript_int(((IConstructor)($elem20)),0)); + if($isComparable($arg0_21.getType(), $T0)){ + IString n_10 = null; + $setwriter18.insert($arg0_21); + + } else { + continue $SCOMP19_GEN853; + } + } else { + continue $SCOMP19_GEN853; + } + } + + + } while(false); + final ValueRef ks_9 = new ValueRef("ks", ((ISet)($setwriter18.done()))); + final ISetWriter $setwriter22 = (ISetWriter)$RVF.setWriter(); + ; + /*muExists*/$SCOMP23_GEN891_CONS_layouts: + do { + $SCOMP23_GEN891: + for(IValue $elem24_for : ((IMap)(((IMap)($aadt_get_field(((IConstructor)d_0), "rules")))))){ + IConstructor $elem24 = (IConstructor) $elem24_for; + if($has_type_and_arity($elem24, M_ParseTree.Symbol_layouts_str, 1)){ + IValue $arg0_25 = (IValue)($aadt_subscript_int(((IConstructor)($elem24)),0)); + if($isComparable($arg0_25.getType(), $T0)){ + IString n_12 = null; + $setwriter22.insert($arg0_25); + + } else { + continue $SCOMP23_GEN891; + } + } else { + continue $SCOMP23_GEN891; + } + } + + + } while(false); + final ValueRef ls_11 = new ValueRef("ls", ((ISet)($setwriter22.done()))); + IValue $visitResult = $TRAVERSE.traverse(DIRECTION.BottomUp, PROGRESS.Continuing, FIXEDPOINT.No, REBUILD.Yes, + new DescendantDescriptorAlwaysTrue($RVF.bool(false)), + d_0, + (IVisitFunction) (IValue $VISIT0_subject, TraversalState $traversalState) -> { + VISIT0:switch(Fingerprint.getFingerprint($VISIT0_subject)){ + + case 1444258592: + if($isSubtypeOf($VISIT0_subject.getType(),M_ParseTree.ADT_Symbol)){ + /*muExists*/CASE_1444258592_1: + do { + if($has_type_and_arity($VISIT0_subject, M_ParseTree.Symbol_parameterized_sort_str_list_Symbol, 2)){ + IValue $arg0_28 = (IValue)($aadt_subscript_int(((IConstructor)($VISIT0_subject)),0)); + if($isComparable($arg0_28.getType(), $T0)){ + ValueRef n_14 = new ValueRef(); + IValue $arg1_27 = (IValue)($aadt_subscript_int(((IConstructor)($VISIT0_subject)),1)); + if($isComparable($arg1_27.getType(), $T5)){ + ValueRef ps_15 = new ValueRef(); + if((((IBool)($RVF.bool(plx_7.getValue().contains(((IString)($arg0_28))))))).getValue()){ + $traversalState.setMatchedAndChanged(true, true); + return $RVF.constructor(M_ParseTree.Symbol_parameterized_lex_str_list_Symbol, new IValue[]{((IString)($arg0_28)), ((IList)($arg1_27))}); + + } + continue CASE_1444258592_1; + } + + } + + } + + } while(false); + + } + + + case 856312: + if($isSubtypeOf($VISIT0_subject.getType(),M_ParseTree.ADT_Symbol)){ + /*muExists*/CASE_856312_2: + do { + if($has_type_and_arity($VISIT0_subject, M_ParseTree.Symbol_lex_str, 1)){ + IValue $arg0_29 = (IValue)($aadt_subscript_int(((IConstructor)($VISIT0_subject)),0)); + if($isComparable($arg0_29.getType(), $T0)){ + ValueRef n_16 = new ValueRef(); + if((((IBool)($RVF.bool(cd_1.getValue().contains(((IString)($arg0_29))))))).getValue()){ + $traversalState.setMatchedAndChanged(true, true); + return $RVF.constructor(M_ParseTree.Symbol_sort_str, new IValue[]{((IString)($arg0_29))}); + + } + if((((IBool)($RVF.bool(ks_9.getValue().contains(((IString)($arg0_29))))))).getValue()){ + $traversalState.setMatchedAndChanged(true, true); + return $RVF.constructor(M_ParseTree.Symbol_keywords_str, new IValue[]{((IString)($arg0_29))}); + + } + if((((IBool)($RVF.bool(ls_11.getValue().contains(((IString)($arg0_29))))))).getValue()){ + $traversalState.setMatchedAndChanged(true, true); + return $RVF.constructor(M_ParseTree.Symbol_layouts_str, new IValue[]{((IString)($arg0_29))}); + + } + continue CASE_856312_2; + } + + } + + } while(false); + + } + + + case 1154855088: + if($isSubtypeOf($VISIT0_subject.getType(),M_ParseTree.ADT_Symbol)){ + /*muExists*/CASE_1154855088_3: + do { + if($has_type_and_arity($VISIT0_subject, M_ParseTree.Symbol_parameterized_lex_str_list_Symbol, 2)){ + IValue $arg0_31 = (IValue)($aadt_subscript_int(((IConstructor)($VISIT0_subject)),0)); + if($isComparable($arg0_31.getType(), $T0)){ + ValueRef n_17 = new ValueRef(); + IValue $arg1_30 = (IValue)($aadt_subscript_int(((IConstructor)($VISIT0_subject)),1)); + if($isComparable($arg1_30.getType(), $T5)){ + ValueRef ps_18 = new ValueRef(); + if((((IBool)($RVF.bool(pcd_3.getValue().contains(((IString)($arg0_31))))))).getValue()){ + $traversalState.setMatchedAndChanged(true, true); + return $RVF.constructor(M_ParseTree.Symbol_parameterized_sort_str_list_Symbol, new IValue[]{((IString)($arg0_31)), ((IList)($arg1_30))}); + + } + continue CASE_1154855088_3; + } + + } + + } + + } while(false); + + } + + + case 28290288: + if($isSubtypeOf($VISIT0_subject.getType(),M_ParseTree.ADT_Symbol)){ + /*muExists*/CASE_28290288_0: + do { + if($has_type_and_arity($VISIT0_subject, M_ParseTree.Symbol_sort_str, 1)){ + IValue $arg0_26 = (IValue)($aadt_subscript_int(((IConstructor)($VISIT0_subject)),0)); + if($isComparable($arg0_26.getType(), $T0)){ + ValueRef n_13 = new ValueRef(); + if((((IBool)($RVF.bool(lx_5.getValue().contains(((IString)($arg0_26))))))).getValue()){ + $traversalState.setMatchedAndChanged(true, true); + return $RVF.constructor(M_ParseTree.Symbol_lex_str, new IValue[]{((IString)($arg0_26))}); + + } + if((((IBool)($RVF.bool(ks_9.getValue().contains(((IString)($arg0_26))))))).getValue()){ + $traversalState.setMatchedAndChanged(true, true); + return $RVF.constructor(M_ParseTree.Symbol_keywords_str, new IValue[]{((IString)($arg0_26))}); + + } + if((((IBool)($RVF.bool(ls_11.getValue().contains(((IString)($arg0_26))))))).getValue()){ + $traversalState.setMatchedAndChanged(true, true); + return $RVF.constructor(M_ParseTree.Symbol_layouts_str, new IValue[]{((IString)($arg0_26))}); + + } + continue CASE_28290288_0; + } + + } + + } while(false); + + } + + + + } + return $VISIT0_subject; + }); + return (IConstructor)$visitResult; + + } catch (ReturnFromTraversalException e) { + return (IConstructor) e.getValue(); + } + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/lang/rascal/grammar/definition/Names.rsc|(1472,91,<49,0>,<52,1>) + public IString lang_rascal_grammar_definition_Names_unescape$24eb09f0489e62c1(IString name_0){ + + + /*muExists*/IF9: + do { + final Matcher $matcher32 = (Matcher)$regExpCompile("\\\\(.*)", ((IString)name_0).getValue()); + boolean $found33 = true; + + while($found33){ + $found33 = $matcher32.find(); + if($found33){ + IString rest_1 = ((IString)($RVF.string($matcher32.group(1)))); + return ((IString)rest_1); + + } + + } + + } while(false); + return ((IString)name_0); + + } + + + public static void main(String[] args) { + throw new RuntimeException("No function `main` found in Rascal module `lang::rascal::grammar::definition::Names`"); + } +} \ No newline at end of file diff --git a/src/rascal/lang/rascal/grammar/definition/$Names.tpl b/src/rascal/lang/rascal/grammar/definition/$Names.tpl new file mode 100644 index 00000000000..1e561731661 Binary files /dev/null and b/src/rascal/lang/rascal/grammar/definition/$Names.tpl differ diff --git a/src/rascal/lang/rascal/grammar/definition/$Names_$I.java b/src/rascal/lang/rascal/grammar/definition/$Names_$I.java new file mode 100644 index 00000000000..39fa2df77bf --- /dev/null +++ b/src/rascal/lang/rascal/grammar/definition/$Names_$I.java @@ -0,0 +1,9 @@ +package rascal.lang.rascal.grammar.definition; +import io.usethesource.vallang.*; +import org.rascalmpl.runtime.function.*; + +@SuppressWarnings("unused") +public interface $Names_$I { + IValue resolve(IValue $0); + IValue unescape(IValue $0); +} \ No newline at end of file diff --git a/src/rascal/lang/rascal/grammar/definition/$Parameters.constants b/src/rascal/lang/rascal/grammar/definition/$Parameters.constants new file mode 100644 index 00000000000..299bbe7f0d2 Binary files /dev/null and b/src/rascal/lang/rascal/grammar/definition/$Parameters.constants differ diff --git a/src/rascal/lang/rascal/grammar/definition/$Parameters.java b/src/rascal/lang/rascal/grammar/definition/$Parameters.java new file mode 100644 index 00000000000..6a6d11e8292 --- /dev/null +++ b/src/rascal/lang/rascal/grammar/definition/$Parameters.java @@ -0,0 +1,525 @@ +package rascal.lang.rascal.grammar.definition; +import java.io.PrintWriter; +import java.io.StringWriter; +import java.io.InputStreamReader; +import java.io.PrintWriter; +import java.util.*; +import java.util.regex.Matcher; +import io.usethesource.vallang.*; +import io.usethesource.vallang.type.*; +import org.rascalmpl.runtime.*; +import org.rascalmpl.runtime.RascalExecutionContext; +import org.rascalmpl.runtime.function.*; +import org.rascalmpl.runtime.traverse.*; +import org.rascalmpl.runtime.utils.*; +import org.rascalmpl.exceptions.RuntimeExceptionFactory; +import org.rascalmpl.exceptions.Throw; +import org.rascalmpl.runtime.RascalExecutionContext; +import org.rascalmpl.interpreter.control_exceptions.Filtered; +import org.rascalmpl.types.NonTerminalType; +import org.rascalmpl.types.RascalTypeFactory; +import org.rascalmpl.util.ExpiringFunctionResultCache; +import org.rascalmpl.values.RascalValueFactory; +import org.rascalmpl.values.ValueFactoryFactory; +import org.rascalmpl.values.parsetrees.ITree; +import org.rascalmpl.values.parsetrees.TreeAdapter; + + + +@SuppressWarnings({"unused","unchecked","deprecation"}) +public class $Parameters + extends + org.rascalmpl.runtime.$RascalModule + implements + rascal.lang.rascal.grammar.definition.$Parameters_$I { + + private final $Parameters_$I $me; + private final IList $constants; + + + public final rascal.$Set M_Set; + public final rascal.$ParseTree M_ParseTree; + public final rascal.$Type M_Type; + public final rascal.$List M_List; + public final rascal.$Grammar M_Grammar; + public final rascal.$Message M_Message; + + + + public final io.usethesource.vallang.type.Type $T1; /*avalue()*/ + public final io.usethesource.vallang.type.Type $T2; /*aparameter("T",avalue(),closed=false)*/ + public final io.usethesource.vallang.type.Type ADT_RuntimeException; /*aadt("RuntimeException",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type $T3; /*aset(aparameter("T",avalue(),closed=false))*/ + public final io.usethesource.vallang.type.Type ADT_LocationType; /*aadt("LocationType",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Exception; /*aadt("Exception",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Production; /*aadt("Production",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type $T4; /*aset(aadt("Production",[],dataSyntax()))*/ + public final io.usethesource.vallang.type.Type ADT_Associativity; /*aadt("Associativity",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_GrammarDefinition; /*aadt("GrammarDefinition",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_IOCapability; /*aadt("IOCapability",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_GrammarModule; /*aadt("GrammarModule",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Tree; /*aadt("Tree",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Item; /*aadt("Item",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type $T5; /*aparameter("T",aadt("Tree",[],dataSyntax()),closed=true)*/ + public final io.usethesource.vallang.type.Type ADT_TreeSearchResult_1; /*aadt("TreeSearchResult",[aparameter("T",aadt("Tree",[],dataSyntax()),closed=true)],dataSyntax())*/ + public final io.usethesource.vallang.type.Type $T0; /*alist(aparameter("T",avalue(),closed=false))*/ + public final io.usethesource.vallang.type.Type ADT_LocationChangeType; /*aadt("LocationChangeType",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_LocationChangeEvent; /*aadt("LocationChangeEvent",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Attr; /*aadt("Attr",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Grammar; /*aadt("Grammar",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_CharRange; /*aadt("CharRange",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Message; /*aadt("Message",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Symbol; /*aadt("Symbol",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Condition; /*aadt("Condition",[],dataSyntax())*/ + + public $Parameters(RascalExecutionContext rex){ + this(rex, null); + } + + public $Parameters(RascalExecutionContext rex, Object extended){ + super(rex); + this.$me = extended == null ? this : ($Parameters_$I)extended; + ModuleStore mstore = rex.getModuleStore(); + mstore.put(rascal.lang.rascal.grammar.definition.$Parameters.class, this); + + mstore.importModule(rascal.$Set.class, rex, rascal.$Set::new); + mstore.importModule(rascal.$ParseTree.class, rex, rascal.$ParseTree::new); + mstore.importModule(rascal.$Type.class, rex, rascal.$Type::new); + mstore.importModule(rascal.$List.class, rex, rascal.$List::new); + mstore.importModule(rascal.$Grammar.class, rex, rascal.$Grammar::new); + mstore.importModule(rascal.$Message.class, rex, rascal.$Message::new); + + M_Set = mstore.getModule(rascal.$Set.class); + M_ParseTree = mstore.getModule(rascal.$ParseTree.class); + M_Type = mstore.getModule(rascal.$Type.class); + M_List = mstore.getModule(rascal.$List.class); + M_Grammar = mstore.getModule(rascal.$Grammar.class); + M_Message = mstore.getModule(rascal.$Message.class); + + + + $TS.importStore(M_Set.$TS); + $TS.importStore(M_ParseTree.$TS); + $TS.importStore(M_Type.$TS); + $TS.importStore(M_List.$TS); + $TS.importStore(M_Grammar.$TS); + $TS.importStore(M_Message.$TS); + + $constants = readBinaryConstantsFile(this.getClass(), "rascal/lang/rascal/grammar/definition/$Parameters.constants", 3, "f29fa42e0a6e8f26df0b155f045fe2af"); + ADT_RuntimeException = $adt("RuntimeException"); + ADT_LocationType = $adt("LocationType"); + ADT_Exception = $adt("Exception"); + ADT_Production = $adt("Production"); + ADT_Associativity = $adt("Associativity"); + ADT_GrammarDefinition = $adt("GrammarDefinition"); + ADT_IOCapability = $adt("IOCapability"); + ADT_GrammarModule = $adt("GrammarModule"); + ADT_Tree = $adt("Tree"); + ADT_Item = $adt("Item"); + ADT_LocationChangeType = $adt("LocationChangeType"); + ADT_LocationChangeEvent = $adt("LocationChangeEvent"); + ADT_Attr = $adt("Attr"); + ADT_Grammar = $adt("Grammar"); + ADT_CharRange = $adt("CharRange"); + ADT_Message = $adt("Message"); + ADT_Symbol = $adt("Symbol"); + ADT_Condition = $adt("Condition"); + $T1 = $TF.valueType(); + $T2 = $TF.parameterType("T", $T1); + $T3 = $TF.setType($T2); + $T4 = $TF.setType(ADT_Production); + $T5 = $TF.parameterType("T", ADT_Tree); + ADT_TreeSearchResult_1 = $parameterizedAdt("TreeSearchResult", new Type[] { $T5 }); + $T0 = $TF.listType($T2); + + + + } + public IBool isTypeVar(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isTypeVar($P0); + } + public IList addLabels(IValue $P0, IValue $P1){ // Generated by Resolver + return (IList) M_Type.addLabels($P0, $P1); + } + public IBool sameType(IValue $P0, IValue $P1){ // Generated by Resolver + return (IBool) M_ParseTree.sameType($P0, $P1); + } + public IBool isAliasType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isAliasType($P0); + } + public IBool isStrType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isStrType($P0); + } + public IConstructor choice(IValue $P0, IValue $P1){ // Generated by Resolver + return (IConstructor) M_Type.choice($P0, $P1); + } + public IBool isValueType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isValueType($P0); + } + public IBool isADTType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isADTType($P0); + } + public IBool isListType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isListType($P0); + } + public IBool isRealType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isRealType($P0); + } + public IConstructor priority(IValue $P0, IValue $P1){ // Generated by Resolver + return (IConstructor) M_ParseTree.priority($P0, $P1); + } + public IBool isNodeType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isNodeType($P0); + } + public IConstructor grammar(IValue $P0){ // Generated by Resolver + return (IConstructor) M_Grammar.grammar($P0); + } + public IConstructor grammar(IValue $P0, IValue $P1){ // Generated by Resolver + return (IConstructor) M_Grammar.grammar($P0, $P1); + } + public IBool isReifiedType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isReifiedType($P0); + } + public IBool isRelType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isRelType($P0); + } + public IBool isConstructorType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isConstructorType($P0); + } + public IBool isListRelType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isListRelType($P0); + } + public IList addParamLabels(IValue $P0, IValue $P1){ // Generated by Resolver + return (IList) M_Type.addParamLabels($P0, $P1); + } + public IBool isMapType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isMapType($P0); + } + public IBool isBoolType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isBoolType($P0); + } + public IBool isLocType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isLocType($P0); + } + public IConstructor treeAt(IValue $P0, IValue $P1, IValue $P2){ // Generated by Resolver + return (IConstructor) M_ParseTree.treeAt($P0, $P1, $P2); + } + public IValue index(IValue $P0){ // Generated by Resolver + IValue $result = null; + Type $P0Type = $P0.getType(); + if($isSubtypeOf($P0Type,$T0)){ + $result = (IValue)M_List.List_index$90228c781d131b76((IList) $P0); + if($result != null) return $result; + } + if($isSubtypeOf($P0Type,$T3)){ + $result = (IValue)M_Set.Set_index$31fadea181d3071e((ISet) $P0); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0)); + } + public IBool isSetType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isSetType($P0); + } + public IConstructor delabel(IValue $P0){ // Generated by Resolver + IConstructor $result = null; + Type $P0Type = $P0.getType(); + if($isSubtypeOf($P0Type, M_ParseTree.ADT_Symbol)){ + $result = (IConstructor)lang_rascal_grammar_definition_Parameters_delabel$d4fe44035e1f8895((IConstructor) $P0); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0)); + } + public IBool isRatType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isRatType($P0); + } + public IBool isNumType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isNumType($P0); + } + public IBool isTupleType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isTupleType($P0); + } + public IBool isBagType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isBagType($P0); + } + public IBool isVoidType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isVoidType($P0); + } + public IBool isNonTerminalType(IValue $P0){ // Generated by Resolver + return (IBool) M_ParseTree.isNonTerminalType($P0); + } + public IValue lub(IValue $P0, IValue $P1){ // Generated by Resolver + return (IValue) M_Type.lub($P0, $P1); + } + public IBool subtype(IValue $P0, IValue $P1){ // Generated by Resolver + return (IBool) M_Type.subtype($P0, $P1); + } + public ISet expand(IValue $P0){ // Generated by Resolver + ISet $result = null; + Type $P0Type = $P0.getType(); + if($isSubtypeOf($P0Type,$T4)){ + $result = (ISet)lang_rascal_grammar_definition_Parameters_expand$392da946a1e90c8a((ISet) $P0); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0)); + } + public IConstructor associativity(IValue $P0, IValue $P1, IValue $P2){ // Generated by Resolver + return (IConstructor) M_ParseTree.associativity($P0, $P1, $P2); + } + public IConstructor expandParameterizedSymbols(IValue $P0){ // Generated by Resolver + IConstructor $result = null; + Type $P0Type = $P0.getType(); + if($isSubtypeOf($P0Type, M_Grammar.ADT_Grammar)){ + $result = (IConstructor)lang_rascal_grammar_definition_Parameters_expandParameterizedSymbols$14dfc979f558f73f((IConstructor) $P0); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0)); + } + public IBool isFunctionType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isFunctionType($P0); + } + public IValue glb(IValue $P0, IValue $P1){ // Generated by Resolver + return (IValue) M_Type.glb($P0, $P1); + } + public IBool isIntType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isIntType($P0); + } + public IBool isDateTimeType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isDateTimeType($P0); + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/lang/rascal/grammar/definition/Parameters.rsc|(592,123,<18,0>,<20,1>) + public IConstructor lang_rascal_grammar_definition_Parameters_expandParameterizedSymbols$14dfc979f558f73f(IConstructor g_0){ + + + final ISetWriter $setwriter0 = (ISetWriter)$RVF.setWriter(); + ; + $SCOMP1_GEN696: + for(IValue $elem2_for : ((IMap)(((IMap)($aadt_get_field(((IConstructor)g_0), "rules")))))){ + IConstructor $elem2 = (IConstructor) $elem2_for; + IConstructor nt_1 = null; + $setwriter0.insert($amap_subscript(((IMap)(((IMap)($aadt_get_field(((IConstructor)g_0), "rules"))))),((IConstructor)($elem2)))); + + } + + return ((IConstructor)(M_Grammar.grammar(((ISet)(((ISet)($aadt_get_field(((IConstructor)g_0), "starts"))))), ((ISet)($me.expand(((ISet)($setwriter0.done())))))))); + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/lang/rascal/grammar/definition/Parameters.rsc|(718,72,<22,0>,<24,1>) + public IConstructor lang_rascal_grammar_definition_Parameters_delabel$d4fe44035e1f8895(IConstructor l_0){ + + + /*muExists*/$RET3: + do { + if($has_type_and_arity(l_0, M_Type.Symbol_label_str_Symbol, 2)){ + IValue $arg0_5 = (IValue)($aadt_subscript_int(((IConstructor)l_0),0)); + if($isComparable($arg0_5.getType(), $T1)){ + IValue $arg1_4 = (IValue)($aadt_subscript_int(((IConstructor)l_0),1)); + if($isComparable($arg1_4.getType(), M_ParseTree.ADT_Symbol)){ + IConstructor m_1 = null; + return ((IConstructor)($arg1_4)); + + } + + } + + } + + } while(false); + return ((IConstructor)l_0); + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/lang/rascal/grammar/definition/Parameters.rsc|(792,1381,<26,0>,<58,1>) + public ISet lang_rascal_grammar_definition_Parameters_expand$392da946a1e90c8a(ISet prods_0){ + + + try { + final ISetWriter $setwriter6 = (ISetWriter)$RVF.setWriter(); + ; + $SCOMP7_GEN910: + for(IValue $elem9_for : ((ISet)prods_0)){ + IConstructor $elem9 = (IConstructor) $elem9_for; + IConstructor p_2 = ((IConstructor)($elem9)); + final IConstructor $subject_val8 = ((IConstructor)($me.delabel(((IConstructor)(((IConstructor)($aadt_get_field(((IConstructor)p_2), "def")))))))); + if(true){ + IConstructor s_3 = null; + if($is(((IConstructor)($subject_val8)),((IString)$constants.get(0)/*"parameterized-sort"*/))){ + $setwriter6.insert(p_2); + + } else { + if($is(((IConstructor)($subject_val8)),((IString)$constants.get(1)/*"parameterized-lex"*/))){ + $setwriter6.insert(p_2); + + } else { + continue $SCOMP7_GEN910; + } + + } + + } else { + continue $SCOMP7_GEN910; + } + } + + ISet defs_1 = ((ISet)($setwriter6.done())); + ISet result_4 = ((ISet)(((ISet)prods_0).subtract(((ISet)defs_1)))); + final ISetWriter $setwriter10 = (ISetWriter)$RVF.setWriter(); + ; + $SCOMP11_GEN1130: + for(IValue $elem12_for : ((ISet)result_4)){ + IConstructor $elem12 = (IConstructor) $elem12_for; + $SCOMP11_GEN1130_DESC1130: + for(IValue $elem13 : new DescendantMatchIterator($elem12, + new DescendantDescriptorAlwaysTrue($RVF.bool(false)))){ + if($isComparable($elem13.getType(), M_ParseTree.ADT_Symbol)){ + if($isSubtypeOf($elem13.getType(),M_ParseTree.ADT_Symbol)){ + IConstructor s_6 = null; + if($is(((IConstructor)($elem13)),((IString)$constants.get(0)/*"parameterized-sort"*/))){ + $setwriter10.insert($elem13); + + } else { + if($is(((IConstructor)($elem13)),((IString)$constants.get(1)/*"parameterized-lex"*/))){ + $setwriter10.insert($elem13); + + } else { + continue $SCOMP11_GEN1130_DESC1130; + } + + } + + } else { + continue $SCOMP11_GEN1130_DESC1130; + } + } else { + continue $SCOMP11_GEN1130_DESC1130; + } + } + continue $SCOMP11_GEN1130; + + } + + ISet uses_5 = ((ISet)($setwriter10.done())); + ISet instantiated_7 = ((ISet)$constants.get(2)/*{}*/); + /*muExists*/WHILE0_BT: + do { + WHILE0: + while((((IBool)($equal(((ISet)uses_5),((ISet)$constants.get(2)/*{}*/)).not()))).getValue()){ + ISet instances_8 = ((ISet)$constants.get(2)/*{}*/); + /*muExists*/FOR1: + do { + FOR1_GEN1513: + for(IValue $elem22_for : ((ISet)uses_5)){ + IConstructor $elem22 = (IConstructor) $elem22_for; + IConstructor u_9 = ((IConstructor)($elem22)); + FOR1_GEN1513_GEN1524: + for(IValue $elem21_for : ((ISet)defs_1)){ + IConstructor $elem21 = (IConstructor) $elem21_for; + IConstructor def_10 = ((IConstructor)($elem21)); + if((((IBool)($equal(((IString)(((IString)($aadt_get_field(((IConstructor)(((IConstructor)($aadt_get_field(((IConstructor)def_10), "def"))))), "name"))))), ((IString)(((IString)($aadt_get_field(((IConstructor)u_9), "name"))))))))).getValue()){ + IString name_11 = ((IString)(((IString)($aadt_get_field(((IConstructor)u_9), "name"))))); + IList actuals_12 = ((IList)(((IList)($aadt_get_field(((IConstructor)u_9), "parameters"))))); + IList formals_13 = ((IList)(((IList)($aadt_get_field(((IConstructor)(((IConstructor)($aadt_get_field(((IConstructor)def_10), "def"))))), "parameters"))))); + instantiated_7 = ((ISet)($aset_add_aset(((ISet)instantiated_7),((ISet)($RVF.set(((IConstructor)u_9))))))); + final IMapWriter $mapwriter14 = (IMapWriter)$RVF.mapWriter(); + $MCOMP15_GEN1722: + for(IValue $elem16_for : ((IList)(((IList)(M_List.index(((IList)actuals_12)))).intersect(((IList)(M_List.index(((IList)formals_13)))))))){ + IInteger $elem16 = (IInteger) $elem16_for; + IInteger i_15 = null; + $mapwriter14.insert($RVF.tuple($alist_subscript_int(((IList)formals_13),((IInteger)($elem16)).intValue()), $alist_subscript_int(((IList)actuals_12),((IInteger)($elem16)).intValue()))); + + } + + final ValueRef substs_14 = new ValueRef("substs", ((IMap)($mapwriter14.done()))); + final ISetWriter $writer17 = (ISetWriter)$RVF.setWriter(); + ; + $setwriter_splice($writer17,instances_8); + $writer17.insert($TRAVERSE.traverse(DIRECTION.BottomUp, PROGRESS.Continuing, FIXEDPOINT.No, REBUILD.Yes, + new DescendantDescriptorAlwaysTrue($RVF.bool(false)), + def_10, + (IVisitFunction) (IValue $VISIT2_subject, TraversalState $traversalState) -> { + VISIT2:switch(Fingerprint.getFingerprint($VISIT2_subject)){ + + case 1206598288: + if($isSubtypeOf($VISIT2_subject.getType(),M_ParseTree.ADT_Symbol)){ + /*muExists*/CASE_1206598288_0: + do { + if($has_type_and_arity($VISIT2_subject, M_Type.Symbol_parameter_str_Symbol, 2)){ + IValue $arg0_20 = (IValue)($aadt_subscript_int(((IConstructor)($VISIT2_subject)),0)); + if($isComparable($arg0_20.getType(), $T1)){ + IValue $arg1_19 = (IValue)($aadt_subscript_int(((IConstructor)($VISIT2_subject)),1)); + if($isComparable($arg1_19.getType(), $T1)){ + IConstructor par_16 = ((IConstructor)($VISIT2_subject)); + GuardedIValue guarded3 = $guarded_map_subscript(substs_14.getValue(),((IConstructor)par_16)); + IConstructor $replacement18 = null; + if($is_defined_value(guarded3)){ + $replacement18 = ((IConstructor)(((IConstructor)$get_defined_value(guarded3)))); + + } else { + $replacement18 = ((IConstructor)par_16); + + }if($isSubtypeOf($replacement18.getType(),$VISIT2_subject.getType())){ + $traversalState.setMatchedAndChanged(true, true); + return $replacement18; + + } else { + break VISIT2;// switch + + } + } + + } + + } + + } while(false); + + } + + + + } + return $VISIT2_subject; + })); + instances_8 = ((ISet)($writer17.done())); + + } else { + continue FOR1_GEN1513_GEN1524; + } + + } + continue FOR1_GEN1513; + + } + continue FOR1; + + } while(false); + /* void: muCon([]) */final ISetWriter $setwriter23 = (ISetWriter)$RVF.setWriter(); + ; + /*muExists*/$SCOMP24_GEN2023_DESC2023: + do { + + } while(false); + uses_5 = ((ISet)($setwriter23.done())); + result_4 = ((ISet)($aset_add_aset(((ISet)result_4),((ISet)instances_8)))); + + } + + } while(false); + /* void: muCon([]) */return ((ISet)result_4); + + } catch (ReturnFromTraversalException e) { + return (ISet) e.getValue(); + } + + } + + + public static void main(String[] args) { + throw new RuntimeException("No function `main` found in Rascal module `lang::rascal::grammar::definition::Parameters`"); + } +} \ No newline at end of file diff --git a/src/rascal/lang/rascal/grammar/definition/$Parameters.tpl b/src/rascal/lang/rascal/grammar/definition/$Parameters.tpl new file mode 100644 index 00000000000..6969ce89c3b Binary files /dev/null and b/src/rascal/lang/rascal/grammar/definition/$Parameters.tpl differ diff --git a/src/rascal/lang/rascal/grammar/definition/$Parameters_$I.java b/src/rascal/lang/rascal/grammar/definition/$Parameters_$I.java new file mode 100644 index 00000000000..62b60e828fe --- /dev/null +++ b/src/rascal/lang/rascal/grammar/definition/$Parameters_$I.java @@ -0,0 +1,10 @@ +package rascal.lang.rascal.grammar.definition; +import io.usethesource.vallang.*; +import org.rascalmpl.runtime.function.*; + +@SuppressWarnings("unused") +public interface $Parameters_$I { + IValue delabel(IValue $0); + IValue expand(IValue $0); + IValue expandParameterizedSymbols(IValue $0); +} \ No newline at end of file diff --git a/src/rascal/lang/rascal/grammar/definition/$Priorities.constants b/src/rascal/lang/rascal/grammar/definition/$Priorities.constants new file mode 100644 index 00000000000..5fad71c4b14 Binary files /dev/null and b/src/rascal/lang/rascal/grammar/definition/$Priorities.constants differ diff --git a/src/rascal/lang/rascal/grammar/definition/$Priorities.java b/src/rascal/lang/rascal/grammar/definition/$Priorities.java new file mode 100644 index 00000000000..82692b20e67 --- /dev/null +++ b/src/rascal/lang/rascal/grammar/definition/$Priorities.java @@ -0,0 +1,3639 @@ +package rascal.lang.rascal.grammar.definition; +import java.io.PrintWriter; +import java.io.StringWriter; +import java.io.InputStreamReader; +import java.io.PrintWriter; +import java.util.*; +import java.util.regex.Matcher; +import io.usethesource.vallang.*; +import io.usethesource.vallang.type.*; +import org.rascalmpl.runtime.*; +import org.rascalmpl.runtime.RascalExecutionContext; +import org.rascalmpl.runtime.function.*; +import org.rascalmpl.runtime.traverse.*; +import org.rascalmpl.runtime.utils.*; +import org.rascalmpl.exceptions.RuntimeExceptionFactory; +import org.rascalmpl.exceptions.Throw; +import org.rascalmpl.runtime.RascalExecutionContext; +import org.rascalmpl.interpreter.control_exceptions.Filtered; +import org.rascalmpl.types.NonTerminalType; +import org.rascalmpl.types.RascalTypeFactory; +import org.rascalmpl.util.ExpiringFunctionResultCache; +import org.rascalmpl.values.RascalValueFactory; +import org.rascalmpl.values.ValueFactoryFactory; +import org.rascalmpl.values.parsetrees.ITree; +import org.rascalmpl.values.parsetrees.TreeAdapter; + + + +@SuppressWarnings({"unused","unchecked","deprecation"}) +public class $Priorities + extends + org.rascalmpl.runtime.$RascalModule + implements + rascal.lang.rascal.grammar.definition.$Priorities_$I, + rascal.$Message_$I, + rascal.$ParseTree_$I, + rascal.$Type_$I, + rascal.$List_$I { + + private final $Priorities_$I $me; + private final IList $constants; + + + public final rascal.$Set M_Set; + public final rascal.lang.rascal.grammar.definition.$References M_lang_rascal_grammar_definition_References; + public final rascal.$ParseTree M_ParseTree; + public final rascal.lang.rascal.grammar.definition.$Symbols M_lang_rascal_grammar_definition_Symbols; + public final rascal.$Type M_Type; + public final rascal.$List M_List; + public final rascal.$IO M_IO; + public final rascal.util.$Maybe M_util_Maybe; + public final rascal.$Grammar M_Grammar; + public final rascal.$Message M_Message; + public final rascal.lang.rascal.format.$Grammar M_lang_rascal_format_Grammar; + public final rascal.lang.rascal.grammar.definition.$Productions M_lang_rascal_grammar_definition_Productions; + + + + public final io.usethesource.vallang.type.Type $T1; /*avalue()*/ + public final io.usethesource.vallang.type.Type $T2; /*aparameter("T",avalue(),closed=false)*/ + public final io.usethesource.vallang.type.Type $T15; /*aparameter("A",avalue(),closed=true)*/ + public final io.usethesource.vallang.type.Type $T6; /*astr()*/ + public final io.usethesource.vallang.type.Type $T11; /*aparameter("A",avalue(),closed=false)*/ + public final io.usethesource.vallang.type.Type $T10; /*aparameter("U",avalue(),closed=false)*/ + public final io.usethesource.vallang.type.Type ADT_MidStringChars; /*aadt("MidStringChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_MidStringChars; /*aadt("MidStringChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Replacement; /*aadt("Replacement",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Replacement; /*aadt("Replacement",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Tree; /*aadt("Tree",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type $T13; /*aparameter("T",aadt("Tree",[],dataSyntax()),closed=true)*/ + public final io.usethesource.vallang.type.Type ADT_KeywordArguments_1; /*aadt("KeywordArguments",[aparameter("T",aadt("Tree",[],dataSyntax()),closed=true)],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_KeywordArguments_1; /*aadt("KeywordArguments",[aparameter("T",aadt("Tree",[],dataSyntax()),closed=true)],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_ProtocolChars; /*aadt("ProtocolChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_ProtocolChars; /*aadt("ProtocolChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_LocalVariableDeclaration; /*aadt("LocalVariableDeclaration",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_LocalVariableDeclaration; /*aadt("LocalVariableDeclaration",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_BooleanLiteral; /*aadt("BooleanLiteral",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_BooleanLiteral; /*aadt("BooleanLiteral",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Attr; /*aadt("Attr",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Expression; /*aadt("Expression",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Expression; /*aadt("Expression",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Mapping_Expression; /*aadt("Mapping",[aadt("Expression",[],contextFreeSyntax())],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Mapping_Expression; /*aadt("Mapping",[aadt("Expression",[],contextFreeSyntax())],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_LAYOUT; /*aadt("LAYOUT",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_LAYOUT; /*aadt("LAYOUT",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_LocationChangeType; /*aadt("LocationChangeType",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Range; /*aadt("Range",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Range; /*aadt("Range",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_IOCapability; /*aadt("IOCapability",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_TagString; /*aadt("TagString",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_TagString; /*aadt("TagString",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Pattern; /*aadt("Pattern",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Pattern; /*aadt("Pattern",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Mapping_Pattern; /*aadt("Mapping",[aadt("Pattern",[],contextFreeSyntax())],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Mapping_Pattern; /*aadt("Mapping",[aadt("Pattern",[],contextFreeSyntax())],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_FunctionType; /*aadt("FunctionType",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_FunctionType; /*aadt("FunctionType",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_PostProtocolChars; /*aadt("PostProtocolChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_PostProtocolChars; /*aadt("PostProtocolChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Strategy; /*aadt("Strategy",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Strategy; /*aadt("Strategy",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Concrete; /*aadt("Concrete",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Concrete; /*aadt("Concrete",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Visibility; /*aadt("Visibility",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Visibility; /*aadt("Visibility",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Production; /*aadt("Production",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Maybe_Production; /*aadt("Maybe",[aadt("Production",[],dataSyntax())],dataSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Case; /*aadt("Case",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Case; /*aadt("Case",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_SyntaxDefinition; /*aadt("SyntaxDefinition",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_SyntaxDefinition; /*aadt("SyntaxDefinition",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_ModuleParameters; /*aadt("ModuleParameters",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_ModuleParameters; /*aadt("ModuleParameters",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Output; /*aadt("Output",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Output; /*aadt("Output",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_RationalLiteral; /*aadt("RationalLiteral",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_RationalLiteral; /*aadt("RationalLiteral",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_DatePart; /*aadt("DatePart",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_DatePart; /*aadt("DatePart",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Item; /*aadt("Item",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Label; /*aadt("Label",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Label; /*aadt("Label",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Kind; /*aadt("Kind",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Kind; /*aadt("Kind",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_RegExpModifier; /*aadt("RegExpModifier",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_RegExpModifier; /*aadt("RegExpModifier",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Prod; /*aadt("Prod",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Prod; /*aadt("Prod",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_LocationChangeEvent; /*aadt("LocationChangeEvent",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_KeywordArguments_Expression; /*aadt("KeywordArguments",[aadt("Expression",[],contextFreeSyntax())],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_KeywordArguments_Expression; /*aadt("KeywordArguments",[aadt("Expression",[],contextFreeSyntax())],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Target; /*aadt("Target",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Target; /*aadt("Target",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_TimePartNoTZ; /*aadt("TimePartNoTZ",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_TimePartNoTZ; /*aadt("TimePartNoTZ",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Mapping_1; /*aadt("Mapping",[aparameter("T",aadt("Tree",[],dataSyntax()),closed=true)],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Mapping_1; /*aadt("Mapping",[aparameter("T",aadt("Tree",[],dataSyntax()),closed=true)],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_ImportedModule; /*aadt("ImportedModule",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_ImportedModule; /*aadt("ImportedModule",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type Maybe_Production_just_Production; /*acons(aadt("Maybe",[aadt("Production",[],dataSyntax())],dataSyntax()),[aadt("Production",[],dataSyntax(),alabel="val")],[],alabel="just")*/ + public final io.usethesource.vallang.type.Type $T14; /*aparameter("T",aadt("Tree",[],dataSyntax()),closed=false)*/ + public final io.usethesource.vallang.type.Type ADT_RegExpLiteral; /*aadt("RegExpLiteral",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_RegExpLiteral; /*aadt("RegExpLiteral",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Declarator; /*aadt("Declarator",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Declarator; /*aadt("Declarator",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_GrammarModule; /*aadt("GrammarModule",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_KeywordFormals; /*aadt("KeywordFormals",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_KeywordFormals; /*aadt("KeywordFormals",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_DataTarget; /*aadt("DataTarget",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_DataTarget; /*aadt("DataTarget",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Renaming; /*aadt("Renaming",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Renaming; /*aadt("Renaming",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Maybe_1; /*aadt("Maybe",[aparameter("A",avalue(),closed=true)],dataSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Catch; /*aadt("Catch",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Catch; /*aadt("Catch",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_KeywordFormal; /*aadt("KeywordFormal",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_KeywordFormal; /*aadt("KeywordFormal",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Associativity; /*aadt("Associativity",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Renamings; /*aadt("Renamings",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Renamings; /*aadt("Renamings",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_OptionalExpression; /*aadt("OptionalExpression",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_OptionalExpression; /*aadt("OptionalExpression",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Field; /*aadt("Field",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Field; /*aadt("Field",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_FunctionBody; /*aadt("FunctionBody",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_FunctionBody; /*aadt("FunctionBody",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_LocationLiteral; /*aadt("LocationLiteral",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_LocationLiteral; /*aadt("LocationLiteral",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Tag; /*aadt("Tag",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Tag; /*aadt("Tag",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Type; /*aadt("Type",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Type; /*aadt("Type",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Symbol; /*aadt("Symbol",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_PostStringChars; /*aadt("PostStringChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_PostStringChars; /*aadt("PostStringChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_GrammarDefinition; /*aadt("GrammarDefinition",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_HexIntegerLiteral; /*aadt("HexIntegerLiteral",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_HexIntegerLiteral; /*aadt("HexIntegerLiteral",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_ShellCommand; /*aadt("ShellCommand",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_ShellCommand; /*aadt("ShellCommand",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_TimeZonePart; /*aadt("TimeZonePart",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_TimeZonePart; /*aadt("TimeZonePart",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Nonterminal; /*aadt("Nonterminal",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Nonterminal; /*aadt("Nonterminal",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_RegExp; /*aadt("RegExp",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_RegExp; /*aadt("RegExp",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_PreStringChars; /*aadt("PreStringChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_PreStringChars; /*aadt("PreStringChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_StringLiteral; /*aadt("StringLiteral",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_StringLiteral; /*aadt("StringLiteral",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type $T3; /*alist(aparameter("T",avalue(),closed=false))*/ + public final io.usethesource.vallang.type.Type ADT_Name; /*aadt("Name",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Name; /*aadt("Name",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_IntegerLiteral; /*aadt("IntegerLiteral",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_IntegerLiteral; /*aadt("IntegerLiteral",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Variable; /*aadt("Variable",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Variable; /*aadt("Variable",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_TypeArg; /*aadt("TypeArg",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_TypeArg; /*aadt("TypeArg",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_NonterminalLabel; /*aadt("NonterminalLabel",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_NonterminalLabel; /*aadt("NonterminalLabel",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Class; /*aadt("Class",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Class; /*aadt("Class",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Condition; /*aadt("Condition",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_PathPart; /*aadt("PathPart",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_PathPart; /*aadt("PathPart",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Signature; /*aadt("Signature",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Signature; /*aadt("Signature",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_KeywordArgument_1; /*aadt("KeywordArgument",[aparameter("T",aadt("Tree",[],dataSyntax()),closed=true)],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_KeywordArgument_1; /*aadt("KeywordArgument",[aparameter("T",aadt("Tree",[],dataSyntax()),closed=true)],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Declaration; /*aadt("Declaration",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Declaration; /*aadt("Declaration",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_KeywordArguments_Pattern; /*aadt("KeywordArguments",[aadt("Pattern",[],contextFreeSyntax())],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_KeywordArguments_Pattern; /*aadt("KeywordArguments",[aadt("Pattern",[],contextFreeSyntax())],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Bound; /*aadt("Bound",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Bound; /*aadt("Bound",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Tags; /*aadt("Tags",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Tags; /*aadt("Tags",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_URLChars; /*aadt("URLChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_URLChars; /*aadt("URLChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_ModuleActuals; /*aadt("ModuleActuals",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_ModuleActuals; /*aadt("ModuleActuals",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Maybe_Symbol; /*aadt("Maybe",[aadt("Symbol",[],dataSyntax())],dataSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Maybe_Associativity; /*aadt("Maybe",[aadt("Associativity",[],dataSyntax(),alabel="a")],dataSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_DataTypeSelector; /*aadt("DataTypeSelector",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_DataTypeSelector; /*aadt("DataTypeSelector",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Body; /*aadt("Body",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Body; /*aadt("Body",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_PrePathChars; /*aadt("PrePathChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_PrePathChars; /*aadt("PrePathChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Start; /*aadt("Start",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Start; /*aadt("Start",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_OptionalComma; /*aadt("OptionalComma",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_OptionalComma; /*aadt("OptionalComma",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_DateAndTime; /*aadt("DateAndTime",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_DateAndTime; /*aadt("DateAndTime",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type $T16; /*alist(aadt("Production",[],dataSyntax()))*/ + public final io.usethesource.vallang.type.Type ADT_Backslash; /*aadt("Backslash",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Backslash; /*aadt("Backslash",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Char; /*aadt("Char",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Char; /*aadt("Char",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_StringTail; /*aadt("StringTail",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_StringTail; /*aadt("StringTail",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type $T9; /*areified(aparameter("U",avalue(),closed=false))*/ + public final io.usethesource.vallang.type.Type ADT_JustDate; /*aadt("JustDate",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_JustDate; /*aadt("JustDate",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_LocationType; /*aadt("LocationType",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Assignment; /*aadt("Assignment",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Assignment; /*aadt("Assignment",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Header; /*aadt("Header",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Header; /*aadt("Header",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Exception; /*aadt("Exception",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_StringConstant; /*aadt("StringConstant",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_StringConstant; /*aadt("StringConstant",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_CaseInsensitiveStringConstant; /*aadt("CaseInsensitiveStringConstant",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_CaseInsensitiveStringConstant; /*aadt("CaseInsensitiveStringConstant",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_FunctionDeclaration; /*aadt("FunctionDeclaration",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_FunctionDeclaration; /*aadt("FunctionDeclaration",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type $T12; /*aset(aadt("Production",[],dataSyntax()))*/ + public final io.usethesource.vallang.type.Type Associativity_prio_; /*acons(aadt("Associativity",[],dataSyntax()),[],[],alabel="prio")*/ + public final io.usethesource.vallang.type.Type ADT_Variant; /*aadt("Variant",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Variant; /*aadt("Variant",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_UserType; /*aadt("UserType",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_UserType; /*aadt("UserType",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Import; /*aadt("Import",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Import; /*aadt("Import",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Comprehension; /*aadt("Comprehension",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Comprehension; /*aadt("Comprehension",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type $T17; /*aset(aadt("Attr",[],dataSyntax()))*/ + public final io.usethesource.vallang.type.Type ADT_FunctionModifiers; /*aadt("FunctionModifiers",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_FunctionModifiers; /*aadt("FunctionModifiers",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_TreeSearchResult_1; /*aadt("TreeSearchResult",[aparameter("T",aadt("Tree",[],dataSyntax()),closed=true)],dataSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_LAYOUTLIST; /*aadt("LAYOUTLIST",[],layoutSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_ConcreteHole; /*aadt("ConcreteHole",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_ConcreteHole; /*aadt("ConcreteHole",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Grammar; /*aadt("Grammar",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Message; /*aadt("Message",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Sym; /*aadt("Sym",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Sym; /*aadt("Sym",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type $T7; /*alist(aadt("Symbol",[],dataSyntax()))*/ + public final io.usethesource.vallang.type.Type ADT_RealLiteral; /*aadt("RealLiteral",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_RealLiteral; /*aadt("RealLiteral",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_StringMiddle; /*aadt("StringMiddle",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_StringMiddle; /*aadt("StringMiddle",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_TypeVar; /*aadt("TypeVar",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_TypeVar; /*aadt("TypeVar",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Maybe_Attr; /*aadt("Maybe",[aadt("Attr",[],dataSyntax())],dataSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_CharRange; /*aadt("CharRange",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Formals; /*aadt("Formals",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Formals; /*aadt("Formals",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_MidPathChars; /*aadt("MidPathChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_MidPathChars; /*aadt("MidPathChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_QualifiedName; /*aadt("QualifiedName",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_QualifiedName; /*aadt("QualifiedName",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_StringTemplate; /*aadt("StringTemplate",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_StringTemplate; /*aadt("StringTemplate",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_OctalIntegerLiteral; /*aadt("OctalIntegerLiteral",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_OctalIntegerLiteral; /*aadt("OctalIntegerLiteral",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_ProtocolPart; /*aadt("ProtocolPart",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_ProtocolPart; /*aadt("ProtocolPart",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_NamedBackslash; /*aadt("NamedBackslash",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_NamedBackslash; /*aadt("NamedBackslash",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_RascalKeywords; /*aadt("RascalKeywords",[],keywordSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Commands; /*aadt("Commands",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Commands; /*aadt("Commands",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type $T8; /*areified(aparameter("T",avalue(),closed=false))*/ + public final io.usethesource.vallang.type.Type ADT_Comment; /*aadt("Comment",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Comment; /*aadt("Comment",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_StructuredType; /*aadt("StructuredType",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_StructuredType; /*aadt("StructuredType",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Visit; /*aadt("Visit",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Visit; /*aadt("Visit",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_NamedRegExp; /*aadt("NamedRegExp",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_NamedRegExp; /*aadt("NamedRegExp",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_PreProtocolChars; /*aadt("PreProtocolChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_PreProtocolChars; /*aadt("PreProtocolChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_RuntimeException; /*aadt("RuntimeException",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_DecimalIntegerLiteral; /*aadt("DecimalIntegerLiteral",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_DecimalIntegerLiteral; /*aadt("DecimalIntegerLiteral",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Assoc; /*aadt("Assoc",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Assoc; /*aadt("Assoc",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_DateTimeLiteral; /*aadt("DateTimeLiteral",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_DateTimeLiteral; /*aadt("DateTimeLiteral",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_MidProtocolChars; /*aadt("MidProtocolChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_MidProtocolChars; /*aadt("MidProtocolChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Command; /*aadt("Command",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Command; /*aadt("Command",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Parameters; /*aadt("Parameters",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Parameters; /*aadt("Parameters",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type $T0; /*aset(aparameter("T",avalue(),closed=false))*/ + public final io.usethesource.vallang.type.Type Maybe_Symbol_just_Symbol; /*acons(aadt("Maybe",[aadt("Symbol",[],dataSyntax())],dataSyntax()),[aadt("Symbol",[],dataSyntax(),alabel="val")],[],alabel="just")*/ + public final io.usethesource.vallang.type.Type ADT_Toplevel; /*aadt("Toplevel",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Toplevel; /*aadt("Toplevel",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_ConcretePart; /*aadt("ConcretePart",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_ConcretePart; /*aadt("ConcretePart",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_PathChars; /*aadt("PathChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_PathChars; /*aadt("PathChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_PostPathChars; /*aadt("PostPathChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_PostPathChars; /*aadt("PostPathChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type $T4; /*aset(aadt("Condition",[],dataSyntax()))*/ + public final io.usethesource.vallang.type.Type ADT_$default$; /*aadt("$default$",[],layoutSyntax())*/ + public final io.usethesource.vallang.type.Type $T5; /*aset(aadt("Symbol",[],dataSyntax()))*/ + public final io.usethesource.vallang.type.Type ADT_PatternWithAction; /*aadt("PatternWithAction",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_PatternWithAction; /*aadt("PatternWithAction",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Statement; /*aadt("Statement",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Statement; /*aadt("Statement",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Module; /*aadt("Module",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Module; /*aadt("Module",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Assignable; /*aadt("Assignable",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Assignable; /*aadt("Assignable",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_UnicodeEscape; /*aadt("UnicodeEscape",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_UnicodeEscape; /*aadt("UnicodeEscape",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_CommonKeywordParameters; /*aadt("CommonKeywordParameters",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_CommonKeywordParameters; /*aadt("CommonKeywordParameters",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_ProtocolTail; /*aadt("ProtocolTail",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_ProtocolTail; /*aadt("ProtocolTail",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_BasicType; /*aadt("BasicType",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_BasicType; /*aadt("BasicType",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_PathTail; /*aadt("PathTail",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_PathTail; /*aadt("PathTail",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_StringCharacter; /*aadt("StringCharacter",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_StringCharacter; /*aadt("StringCharacter",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Literal; /*aadt("Literal",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Literal; /*aadt("Literal",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_EvalCommand; /*aadt("EvalCommand",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_EvalCommand; /*aadt("EvalCommand",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_JustTime; /*aadt("JustTime",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_JustTime; /*aadt("JustTime",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_FunctionModifier; /*aadt("FunctionModifier",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_FunctionModifier; /*aadt("FunctionModifier",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_ProdModifier; /*aadt("ProdModifier",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_ProdModifier; /*aadt("ProdModifier",[],contextFreeSyntax())*/ + + public $Priorities(RascalExecutionContext rex){ + this(rex, null); + } + + public $Priorities(RascalExecutionContext rex, Object extended){ + super(rex); + this.$me = extended == null ? this : ($Priorities_$I)extended; + ModuleStore mstore = rex.getModuleStore(); + mstore.put(rascal.lang.rascal.grammar.definition.$Priorities.class, this); + + mstore.importModule(rascal.$Set.class, rex, rascal.$Set::new); + mstore.importModule(rascal.lang.rascal.grammar.definition.$References.class, rex, rascal.lang.rascal.grammar.definition.$References::new); + mstore.importModule(rascal.lang.rascal.grammar.definition.$Symbols.class, rex, rascal.lang.rascal.grammar.definition.$Symbols::new); + mstore.importModule(rascal.$IO.class, rex, rascal.$IO::new); + mstore.importModule(rascal.util.$Maybe.class, rex, rascal.util.$Maybe::new); + mstore.importModule(rascal.$Grammar.class, rex, rascal.$Grammar::new); + mstore.importModule(rascal.lang.rascal.format.$Grammar.class, rex, rascal.lang.rascal.format.$Grammar::new); + mstore.importModule(rascal.lang.rascal.grammar.definition.$Productions.class, rex, rascal.lang.rascal.grammar.definition.$Productions::new); + + M_Set = mstore.getModule(rascal.$Set.class); + M_lang_rascal_grammar_definition_References = mstore.getModule(rascal.lang.rascal.grammar.definition.$References.class); + M_lang_rascal_grammar_definition_Symbols = mstore.getModule(rascal.lang.rascal.grammar.definition.$Symbols.class); + M_IO = mstore.getModule(rascal.$IO.class); + M_util_Maybe = mstore.getModule(rascal.util.$Maybe.class); + M_Grammar = mstore.getModule(rascal.$Grammar.class); + M_lang_rascal_format_Grammar = mstore.getModule(rascal.lang.rascal.format.$Grammar.class); + M_lang_rascal_grammar_definition_Productions = mstore.getModule(rascal.lang.rascal.grammar.definition.$Productions.class); + + M_Message = mstore.extendModule(rascal.$Message.class, rex, rascal.$Message::new, $me); + M_ParseTree = mstore.extendModule(rascal.$ParseTree.class, rex, rascal.$ParseTree::new, $me); + M_Type = mstore.extendModule(rascal.$Type.class, rex, rascal.$Type::new, $me); + M_List = mstore.extendModule(rascal.$List.class, rex, rascal.$List::new, $me); + + + $TS.importStore(M_Set.$TS); + $TS.importStore(M_lang_rascal_grammar_definition_References.$TS); + $TS.importStore(M_ParseTree.$TS); + $TS.importStore(M_lang_rascal_grammar_definition_Symbols.$TS); + $TS.importStore(M_Type.$TS); + $TS.importStore(M_List.$TS); + $TS.importStore(M_IO.$TS); + $TS.importStore(M_util_Maybe.$TS); + $TS.importStore(M_Grammar.$TS); + $TS.importStore(M_Message.$TS); + $TS.importStore(M_lang_rascal_format_Grammar.$TS); + $TS.importStore(M_lang_rascal_grammar_definition_Productions.$TS); + + $constants = readBinaryConstantsFile(this.getClass(), "rascal/lang/rascal/grammar/definition/$Priorities.constants", 5, "5a671e7b791df5802d0f8bf8e26b68e7"); + NT_MidStringChars = $lex("MidStringChars"); + ADT_MidStringChars = $adt("MidStringChars"); + NT_Replacement = $sort("Replacement"); + ADT_Replacement = $adt("Replacement"); + ADT_Tree = $adt("Tree"); + NT_ProtocolChars = $lex("ProtocolChars"); + ADT_ProtocolChars = $adt("ProtocolChars"); + NT_LocalVariableDeclaration = $sort("LocalVariableDeclaration"); + ADT_LocalVariableDeclaration = $adt("LocalVariableDeclaration"); + NT_BooleanLiteral = $lex("BooleanLiteral"); + ADT_BooleanLiteral = $adt("BooleanLiteral"); + ADT_Attr = $adt("Attr"); + NT_Expression = $sort("Expression"); + ADT_Expression = $adt("Expression"); + NT_LAYOUT = $lex("LAYOUT"); + ADT_LAYOUT = $adt("LAYOUT"); + ADT_LocationChangeType = $adt("LocationChangeType"); + NT_Range = $sort("Range"); + ADT_Range = $adt("Range"); + ADT_IOCapability = $adt("IOCapability"); + NT_TagString = $lex("TagString"); + ADT_TagString = $adt("TagString"); + NT_Pattern = $sort("Pattern"); + ADT_Pattern = $adt("Pattern"); + NT_FunctionType = $sort("FunctionType"); + ADT_FunctionType = $adt("FunctionType"); + NT_PostProtocolChars = $lex("PostProtocolChars"); + ADT_PostProtocolChars = $adt("PostProtocolChars"); + NT_Strategy = $sort("Strategy"); + ADT_Strategy = $adt("Strategy"); + NT_Concrete = $lex("Concrete"); + ADT_Concrete = $adt("Concrete"); + NT_Visibility = $sort("Visibility"); + ADT_Visibility = $adt("Visibility"); + ADT_Production = $adt("Production"); + NT_Case = $sort("Case"); + ADT_Case = $adt("Case"); + NT_SyntaxDefinition = $sort("SyntaxDefinition"); + ADT_SyntaxDefinition = $adt("SyntaxDefinition"); + NT_ModuleParameters = $sort("ModuleParameters"); + ADT_ModuleParameters = $adt("ModuleParameters"); + NT_Output = $lex("Output"); + ADT_Output = $adt("Output"); + NT_RationalLiteral = $lex("RationalLiteral"); + ADT_RationalLiteral = $adt("RationalLiteral"); + NT_DatePart = $lex("DatePart"); + ADT_DatePart = $adt("DatePart"); + ADT_Item = $adt("Item"); + NT_Label = $sort("Label"); + ADT_Label = $adt("Label"); + NT_Kind = $sort("Kind"); + ADT_Kind = $adt("Kind"); + NT_RegExpModifier = $lex("RegExpModifier"); + ADT_RegExpModifier = $adt("RegExpModifier"); + NT_Prod = $sort("Prod"); + ADT_Prod = $adt("Prod"); + ADT_LocationChangeEvent = $adt("LocationChangeEvent"); + NT_Target = $sort("Target"); + ADT_Target = $adt("Target"); + NT_TimePartNoTZ = $lex("TimePartNoTZ"); + ADT_TimePartNoTZ = $adt("TimePartNoTZ"); + NT_ImportedModule = $sort("ImportedModule"); + ADT_ImportedModule = $adt("ImportedModule"); + NT_RegExpLiteral = $lex("RegExpLiteral"); + ADT_RegExpLiteral = $adt("RegExpLiteral"); + NT_Declarator = $sort("Declarator"); + ADT_Declarator = $adt("Declarator"); + ADT_GrammarModule = $adt("GrammarModule"); + NT_KeywordFormals = $sort("KeywordFormals"); + ADT_KeywordFormals = $adt("KeywordFormals"); + NT_DataTarget = $sort("DataTarget"); + ADT_DataTarget = $adt("DataTarget"); + NT_Renaming = $sort("Renaming"); + ADT_Renaming = $adt("Renaming"); + NT_Catch = $sort("Catch"); + ADT_Catch = $adt("Catch"); + NT_KeywordFormal = $sort("KeywordFormal"); + ADT_KeywordFormal = $adt("KeywordFormal"); + ADT_Associativity = $adt("Associativity"); + NT_Renamings = $sort("Renamings"); + ADT_Renamings = $adt("Renamings"); + NT_OptionalExpression = $sort("OptionalExpression"); + ADT_OptionalExpression = $adt("OptionalExpression"); + NT_Field = $sort("Field"); + ADT_Field = $adt("Field"); + NT_FunctionBody = $sort("FunctionBody"); + ADT_FunctionBody = $adt("FunctionBody"); + NT_LocationLiteral = $sort("LocationLiteral"); + ADT_LocationLiteral = $adt("LocationLiteral"); + NT_Tag = $sort("Tag"); + ADT_Tag = $adt("Tag"); + NT_Type = $sort("Type"); + ADT_Type = $adt("Type"); + ADT_Symbol = $adt("Symbol"); + NT_PostStringChars = $lex("PostStringChars"); + ADT_PostStringChars = $adt("PostStringChars"); + ADT_GrammarDefinition = $adt("GrammarDefinition"); + NT_HexIntegerLiteral = $lex("HexIntegerLiteral"); + ADT_HexIntegerLiteral = $adt("HexIntegerLiteral"); + NT_ShellCommand = $sort("ShellCommand"); + ADT_ShellCommand = $adt("ShellCommand"); + NT_TimeZonePart = $lex("TimeZonePart"); + ADT_TimeZonePart = $adt("TimeZonePart"); + NT_Nonterminal = $lex("Nonterminal"); + ADT_Nonterminal = $adt("Nonterminal"); + NT_RegExp = $lex("RegExp"); + ADT_RegExp = $adt("RegExp"); + NT_PreStringChars = $lex("PreStringChars"); + ADT_PreStringChars = $adt("PreStringChars"); + NT_StringLiteral = $sort("StringLiteral"); + ADT_StringLiteral = $adt("StringLiteral"); + NT_Name = $lex("Name"); + ADT_Name = $adt("Name"); + NT_IntegerLiteral = $sort("IntegerLiteral"); + ADT_IntegerLiteral = $adt("IntegerLiteral"); + NT_Variable = $sort("Variable"); + ADT_Variable = $adt("Variable"); + NT_TypeArg = $sort("TypeArg"); + ADT_TypeArg = $adt("TypeArg"); + NT_NonterminalLabel = $lex("NonterminalLabel"); + ADT_NonterminalLabel = $adt("NonterminalLabel"); + NT_Class = $sort("Class"); + ADT_Class = $adt("Class"); + ADT_Condition = $adt("Condition"); + NT_PathPart = $sort("PathPart"); + ADT_PathPart = $adt("PathPart"); + NT_Signature = $sort("Signature"); + ADT_Signature = $adt("Signature"); + NT_Declaration = $sort("Declaration"); + ADT_Declaration = $adt("Declaration"); + NT_Bound = $sort("Bound"); + ADT_Bound = $adt("Bound"); + NT_Tags = $sort("Tags"); + ADT_Tags = $adt("Tags"); + NT_URLChars = $lex("URLChars"); + ADT_URLChars = $adt("URLChars"); + NT_ModuleActuals = $sort("ModuleActuals"); + ADT_ModuleActuals = $adt("ModuleActuals"); + NT_DataTypeSelector = $sort("DataTypeSelector"); + ADT_DataTypeSelector = $adt("DataTypeSelector"); + NT_Body = $sort("Body"); + ADT_Body = $adt("Body"); + NT_PrePathChars = $lex("PrePathChars"); + ADT_PrePathChars = $adt("PrePathChars"); + NT_Start = $sort("Start"); + ADT_Start = $adt("Start"); + NT_OptionalComma = $lex("OptionalComma"); + ADT_OptionalComma = $adt("OptionalComma"); + NT_DateAndTime = $lex("DateAndTime"); + ADT_DateAndTime = $adt("DateAndTime"); + NT_Backslash = $lex("Backslash"); + ADT_Backslash = $adt("Backslash"); + NT_Char = $lex("Char"); + ADT_Char = $adt("Char"); + NT_StringTail = $sort("StringTail"); + ADT_StringTail = $adt("StringTail"); + NT_JustDate = $lex("JustDate"); + ADT_JustDate = $adt("JustDate"); + ADT_LocationType = $adt("LocationType"); + NT_Assignment = $sort("Assignment"); + ADT_Assignment = $adt("Assignment"); + NT_Header = $sort("Header"); + ADT_Header = $adt("Header"); + ADT_Exception = $adt("Exception"); + NT_StringConstant = $lex("StringConstant"); + ADT_StringConstant = $adt("StringConstant"); + NT_CaseInsensitiveStringConstant = $lex("CaseInsensitiveStringConstant"); + ADT_CaseInsensitiveStringConstant = $adt("CaseInsensitiveStringConstant"); + NT_FunctionDeclaration = $sort("FunctionDeclaration"); + ADT_FunctionDeclaration = $adt("FunctionDeclaration"); + NT_Variant = $sort("Variant"); + ADT_Variant = $adt("Variant"); + NT_UserType = $sort("UserType"); + ADT_UserType = $adt("UserType"); + NT_Import = $sort("Import"); + ADT_Import = $adt("Import"); + NT_Comprehension = $sort("Comprehension"); + ADT_Comprehension = $adt("Comprehension"); + NT_FunctionModifiers = $sort("FunctionModifiers"); + ADT_FunctionModifiers = $adt("FunctionModifiers"); + ADT_LAYOUTLIST = $layouts("LAYOUTLIST"); + NT_ConcreteHole = $sort("ConcreteHole"); + ADT_ConcreteHole = $adt("ConcreteHole"); + ADT_Grammar = $adt("Grammar"); + ADT_Message = $adt("Message"); + NT_Sym = $sort("Sym"); + ADT_Sym = $adt("Sym"); + NT_RealLiteral = $lex("RealLiteral"); + ADT_RealLiteral = $adt("RealLiteral"); + NT_StringMiddle = $sort("StringMiddle"); + ADT_StringMiddle = $adt("StringMiddle"); + NT_TypeVar = $sort("TypeVar"); + ADT_TypeVar = $adt("TypeVar"); + ADT_CharRange = $adt("CharRange"); + NT_Formals = $sort("Formals"); + ADT_Formals = $adt("Formals"); + NT_MidPathChars = $lex("MidPathChars"); + ADT_MidPathChars = $adt("MidPathChars"); + NT_QualifiedName = $sort("QualifiedName"); + ADT_QualifiedName = $adt("QualifiedName"); + NT_StringTemplate = $sort("StringTemplate"); + ADT_StringTemplate = $adt("StringTemplate"); + NT_OctalIntegerLiteral = $lex("OctalIntegerLiteral"); + ADT_OctalIntegerLiteral = $adt("OctalIntegerLiteral"); + NT_ProtocolPart = $sort("ProtocolPart"); + ADT_ProtocolPart = $adt("ProtocolPart"); + NT_NamedBackslash = $lex("NamedBackslash"); + ADT_NamedBackslash = $adt("NamedBackslash"); + ADT_RascalKeywords = $keywords("RascalKeywords"); + NT_Commands = $sort("Commands"); + ADT_Commands = $adt("Commands"); + NT_Comment = $lex("Comment"); + ADT_Comment = $adt("Comment"); + NT_StructuredType = $sort("StructuredType"); + ADT_StructuredType = $adt("StructuredType"); + NT_Visit = $sort("Visit"); + ADT_Visit = $adt("Visit"); + NT_NamedRegExp = $lex("NamedRegExp"); + ADT_NamedRegExp = $adt("NamedRegExp"); + NT_PreProtocolChars = $lex("PreProtocolChars"); + ADT_PreProtocolChars = $adt("PreProtocolChars"); + ADT_RuntimeException = $adt("RuntimeException"); + NT_DecimalIntegerLiteral = $lex("DecimalIntegerLiteral"); + ADT_DecimalIntegerLiteral = $adt("DecimalIntegerLiteral"); + NT_Assoc = $sort("Assoc"); + ADT_Assoc = $adt("Assoc"); + NT_DateTimeLiteral = $sort("DateTimeLiteral"); + ADT_DateTimeLiteral = $adt("DateTimeLiteral"); + NT_MidProtocolChars = $lex("MidProtocolChars"); + ADT_MidProtocolChars = $adt("MidProtocolChars"); + NT_Command = $sort("Command"); + ADT_Command = $adt("Command"); + NT_Parameters = $sort("Parameters"); + ADT_Parameters = $adt("Parameters"); + NT_Toplevel = $sort("Toplevel"); + ADT_Toplevel = $adt("Toplevel"); + NT_ConcretePart = $lex("ConcretePart"); + ADT_ConcretePart = $adt("ConcretePart"); + NT_PathChars = $lex("PathChars"); + ADT_PathChars = $adt("PathChars"); + NT_PostPathChars = $lex("PostPathChars"); + ADT_PostPathChars = $adt("PostPathChars"); + ADT_$default$ = $layouts("$default$"); + NT_PatternWithAction = $sort("PatternWithAction"); + ADT_PatternWithAction = $adt("PatternWithAction"); + NT_Statement = $sort("Statement"); + ADT_Statement = $adt("Statement"); + NT_Module = $sort("Module"); + ADT_Module = $adt("Module"); + NT_Assignable = $sort("Assignable"); + ADT_Assignable = $adt("Assignable"); + NT_UnicodeEscape = $lex("UnicodeEscape"); + ADT_UnicodeEscape = $adt("UnicodeEscape"); + NT_CommonKeywordParameters = $sort("CommonKeywordParameters"); + ADT_CommonKeywordParameters = $adt("CommonKeywordParameters"); + NT_ProtocolTail = $sort("ProtocolTail"); + ADT_ProtocolTail = $adt("ProtocolTail"); + NT_BasicType = $sort("BasicType"); + ADT_BasicType = $adt("BasicType"); + NT_PathTail = $sort("PathTail"); + ADT_PathTail = $adt("PathTail"); + NT_StringCharacter = $lex("StringCharacter"); + ADT_StringCharacter = $adt("StringCharacter"); + NT_Literal = $sort("Literal"); + ADT_Literal = $adt("Literal"); + NT_EvalCommand = $sort("EvalCommand"); + ADT_EvalCommand = $adt("EvalCommand"); + NT_JustTime = $lex("JustTime"); + ADT_JustTime = $adt("JustTime"); + NT_FunctionModifier = $sort("FunctionModifier"); + ADT_FunctionModifier = $adt("FunctionModifier"); + NT_ProdModifier = $sort("ProdModifier"); + ADT_ProdModifier = $adt("ProdModifier"); + $T1 = $TF.valueType(); + $T2 = $TF.parameterType("T", $T1); + $T15 = $TF.parameterType("A", $T1); + $T6 = $TF.stringType(); + $T11 = $TF.parameterType("A", $T1); + $T10 = $TF.parameterType("U", $T1); + $T13 = $TF.parameterType("T", ADT_Tree); + NT_KeywordArguments_1 = $parameterizedSort("KeywordArguments", new Type[] { $T13 }, $RVF.list($RVF.constructor(RascalValueFactory.Symbol_Parameter, $RVF.string("T"), $RVF.constructor(RascalValueFactory.Symbol_Adt, $RVF.string("Tree"), $RVF.list())))); + NT_Mapping_Expression = $parameterizedSort("Mapping", new Type[] { ADT_Expression }, $RVF.list($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Expression")))); + NT_Mapping_Pattern = $parameterizedSort("Mapping", new Type[] { ADT_Pattern }, $RVF.list($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Pattern")))); + ADT_Maybe_Production = $parameterizedAdt("Maybe", new Type[] { ADT_Production }); + NT_KeywordArguments_Expression = $parameterizedSort("KeywordArguments", new Type[] { ADT_Expression }, $RVF.list($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Expression")))); + NT_Mapping_1 = $parameterizedSort("Mapping", new Type[] { $T13 }, $RVF.list($RVF.constructor(RascalValueFactory.Symbol_Parameter, $RVF.string("T"), $RVF.constructor(RascalValueFactory.Symbol_Adt, $RVF.string("Tree"), $RVF.list())))); + $T14 = $TF.parameterType("T", ADT_Tree); + ADT_Maybe_1 = $parameterizedAdt("Maybe", new Type[] { $T15 }); + $T3 = $TF.listType($T2); + NT_KeywordArgument_1 = $parameterizedSort("KeywordArgument", new Type[] { $T13 }, $RVF.list($RVF.constructor(RascalValueFactory.Symbol_Parameter, $RVF.string("T"), $RVF.constructor(RascalValueFactory.Symbol_Adt, $RVF.string("Tree"), $RVF.list())))); + NT_KeywordArguments_Pattern = $parameterizedSort("KeywordArguments", new Type[] { ADT_Pattern }, $RVF.list($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Pattern")))); + ADT_Maybe_Symbol = $parameterizedAdt("Maybe", new Type[] { ADT_Symbol }); + ADT_Maybe_Associativity = $parameterizedAdt("Maybe", new Type[] { ADT_Associativity }); + $T16 = $TF.listType(ADT_Production); + $T9 = $RTF.reifiedType($T10); + $T12 = $TF.setType(ADT_Production); + $T17 = $TF.setType(ADT_Attr); + ADT_TreeSearchResult_1 = $parameterizedAdt("TreeSearchResult", new Type[] { $T13 }); + $T7 = $TF.listType(ADT_Symbol); + ADT_Maybe_Attr = $parameterizedAdt("Maybe", new Type[] { ADT_Attr }); + $T8 = $RTF.reifiedType($T2); + $T0 = $TF.setType($T2); + $T4 = $TF.setType(ADT_Condition); + $T5 = $TF.setType(ADT_Symbol); + ADT_KeywordArguments_1 = $TF.abstractDataType($TS, "KeywordArguments", new Type[] { $T13 }); + ADT_Mapping_Expression = $TF.abstractDataType($TS, "Mapping", new Type[] { ADT_Expression }); + ADT_Mapping_Pattern = $TF.abstractDataType($TS, "Mapping", new Type[] { ADT_Pattern }); + ADT_KeywordArguments_Expression = $TF.abstractDataType($TS, "KeywordArguments", new Type[] { ADT_Expression }); + ADT_Mapping_1 = $TF.abstractDataType($TS, "Mapping", new Type[] { $T13 }); + ADT_KeywordArgument_1 = $TF.abstractDataType($TS, "KeywordArgument", new Type[] { $T13 }); + ADT_KeywordArguments_Pattern = $TF.abstractDataType($TS, "KeywordArguments", new Type[] { ADT_Pattern }); + Maybe_Production_just_Production = $TF.constructor($TS, ADT_Maybe_Production, "just", M_ParseTree.ADT_Production, "val"); + Associativity_prio_ = $TF.constructor($TS, ADT_Associativity, "prio"); + Maybe_Symbol_just_Symbol = $TF.constructor($TS, ADT_Maybe_Symbol, "just", M_ParseTree.ADT_Symbol, "val"); + + + + } + public IList addLabels(IValue $P0, IValue $P1){ // Generated by Resolver + return (IList) M_Type.addLabels($P0, $P1); + } + public IBool isAliasType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isAliasType($P0); + } + public IString intercalate(IValue $P0, IValue $P1){ // Generated by Resolver + return (IString) M_List.intercalate($P0, $P1); + } + public IValue head(IValue $P0){ // Generated by Resolver + return (IValue) M_List.head($P0); + } + public IList head(IValue $P0, IValue $P1){ // Generated by Resolver + return (IList) M_List.head($P0, $P1); + } + public IBool sameType(IValue $P0, IValue $P1){ // Generated by Resolver + return (IBool) M_ParseTree.sameType($P0, $P1); + } + public ISet doNotNest(IValue $P0){ // Generated by Resolver + ISet $result = null; + Type $P0Type = $P0.getType(); + if($isSubtypeOf($P0Type, M_Grammar.ADT_Grammar)){ + $result = (ISet)lang_rascal_grammar_definition_Priorities_doNotNest$df93cb6da09e0418((IConstructor) $P0); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0)); + } + public IInteger size(IValue $P0){ // Generated by Resolver + IInteger $result = null; + Type $P0Type = $P0.getType(); + if($isSubtypeOf($P0Type,$T0)){ + $result = (IInteger)M_Set.Set_size$215788d71e8b2455((ISet) $P0); + if($result != null) return $result; + } + if($isSubtypeOf($P0Type,$T3)){ + $result = (IInteger)M_List.List_size$ba7443328d8b4a27((IList) $P0); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0)); + } + public IMap toMap(IValue $P0){ // Generated by Resolver + return (IMap) M_List.toMap($P0); + } + public IConstructor choice(IValue $P0, IValue $P1){ // Generated by Resolver + return (IConstructor) M_Type.choice($P0, $P1); + } + public IBool isADTType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isADTType($P0); + } + public IBool isStrType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isStrType($P0); + } + public ISet extract(IValue $P0){ // Generated by Resolver + ISet $result = null; + Type $P0Type = $P0.getType(); + switch(Fingerprint.getFingerprint($P0)){ + + case -1467508160: + if($isSubtypeOf($P0Type, M_ParseTree.ADT_Production)){ + $result = (ISet)lang_rascal_grammar_definition_Priorities_extract$19a14b263980567d((IConstructor) $P0); + if($result != null) return $result; + } + break; + case -304752112: + if($isSubtypeOf($P0Type, M_ParseTree.ADT_Production)){ + $result = (ISet)lang_rascal_grammar_definition_Priorities_extract$e8d93f1e481f9bb2((IConstructor) $P0); + if($result != null) return $result; + } + break; + case -2132978880: + if($isSubtypeOf($P0Type, M_ParseTree.ADT_Production)){ + $result = (ISet)lang_rascal_grammar_definition_Priorities_extract$5fa91fb6afb2d93e((IConstructor) $P0); + if($result != null) return $result; + } + break; + } + if($isSubtypeOf($P0Type, M_ParseTree.ADT_Production)){ + $result = (ISet)lang_rascal_grammar_definition_Priorities_extract$da2f1f8fc36631e7((IConstructor) $P0); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0)); + } + public ISet extract(IValue $P0, IValue $P1){ // Generated by Resolver + ISet $result = null; + Type $P0Type = $P0.getType(); + Type $P1Type = $P1.getType(); + switch(Fingerprint.getFingerprint($P0)){ + + case -1467508160: + if($isSubtypeOf($P0Type, M_ParseTree.ADT_Production) && $isSubtypeOf($P1Type, M_ParseTree.ADT_Production)){ + $result = (ISet)lang_rascal_grammar_definition_Priorities_extract$9e6eea9680f2b4fa((IConstructor) $P0, (IConstructor) $P1); + if($result != null) return $result; + } + break; + case 110389984: + if($isSubtypeOf($P0Type, M_ParseTree.ADT_Production) && $isSubtypeOf($P1Type, M_ParseTree.ADT_Production)){ + $result = (ISet)lang_rascal_grammar_definition_Priorities_extract$f29edf1180859f93((IConstructor) $P0, (IConstructor) $P1); + if($result != null) return $result; + } + break; + case -304752112: + if($isSubtypeOf($P0Type, M_ParseTree.ADT_Production) && $isSubtypeOf($P1Type, M_ParseTree.ADT_Production)){ + $result = (ISet)lang_rascal_grammar_definition_Priorities_extract$900bce388ccaedd1((IConstructor) $P0, (IConstructor) $P1); + if($result != null) return $result; + } + break; + case -2132978880: + if($isSubtypeOf($P0Type, M_ParseTree.ADT_Production) && $isSubtypeOf($P1Type, M_ParseTree.ADT_Production)){ + $result = (ISet)lang_rascal_grammar_definition_Priorities_extract$76e3aed9aff9f2b4((IConstructor) $P0, (IConstructor) $P1); + if($result != null) return $result; + } + break; + } + if($isSubtypeOf($P0Type, M_ParseTree.ADT_Production) && $isSubtypeOf($P1Type, M_ParseTree.ADT_Production)){ + $result = (ISet)lang_rascal_grammar_definition_Priorities_extract$c40ceff4a08d5372((IConstructor) $P0, (IConstructor) $P1); + if($result != null) return $result; + $result = (ISet)lang_rascal_grammar_definition_Priorities_extract$e523d0effa5fdd4c((IConstructor) $P0, (IConstructor) $P1); + if($result != null) return $result; + $result = (ISet)lang_rascal_grammar_definition_Priorities_extract$364798eeb6e85038((IConstructor) $P0, (IConstructor) $P1); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0, $P1)); + } + public IBool isValueType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isValueType($P0); + } + public IList mapper(IValue $P0, IValue $P1){ // Generated by Resolver + return (IList) M_List.mapper($P0, $P1); + } + public IBool isListType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isListType($P0); + } + public IBool isRealType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isRealType($P0); + } + public IList reverse(IValue $P0){ // Generated by Resolver + return (IList) M_List.reverse($P0); + } + public IBool isTypeVar(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isTypeVar($P0); + } + public TypedFunctionInstance2 firstAmbiguityFinder(IValue $P0, java.util.Map $kwpActuals){ // Generated by Resolver + return (TypedFunctionInstance2) M_ParseTree.firstAmbiguityFinder($P0, $kwpActuals); + } + public IBool isEmpty(IValue $P0){ // Generated by Resolver + return (IBool) M_List.isEmpty($P0); + } + public IList remove(IValue $P0, IValue $P1){ // Generated by Resolver + return (IList) M_List.remove($P0, $P1); + } + public IValue max(IValue $P0){ // Generated by Resolver + return (IValue) M_List.max($P0); + } + public IConstructor priority(IValue $P0, IValue $P1){ // Generated by Resolver + return (IConstructor) M_ParseTree.priority($P0, $P1); + } + public IValue getFirstFrom(IValue $P0){ // Generated by Resolver + return (IValue) M_List.getFirstFrom($P0); + } + public IMap distribution(IValue $P0){ // Generated by Resolver + return (IMap) M_List.distribution($P0); + } + public TypedFunctionInstance2 loadParser(IValue $P0, IValue $P1, java.util.Map $kwpActuals){ // Generated by Resolver + return (TypedFunctionInstance2) M_ParseTree.loadParser($P0, $P1, $kwpActuals); + } + public IString printSymbol(IValue $P0, IValue $P1){ // Generated by Resolver + return (IString) M_ParseTree.printSymbol($P0, $P1); + } + public IBool same(IValue $P0, IValue $P1){ // Generated by Resolver + IBool $result = null; + Type $P0Type = $P0.getType(); + Type $P1Type = $P1.getType(); + if($isSubtypeOf($P0Type, M_ParseTree.ADT_Symbol) && $isSubtypeOf($P1Type, M_ParseTree.ADT_Symbol)){ + $result = (IBool)lang_rascal_grammar_definition_Priorities_same$80dbb97d81d5c413((IConstructor) $P0, (IConstructor) $P1); + if($result != null) return $result; + } + if($isSubtypeOf($P0Type, M_ParseTree.ADT_Production) && $isSubtypeOf($P1Type, M_ParseTree.ADT_Production)){ + $result = (IBool)M_lang_rascal_format_Grammar.lang_rascal_format_Grammar_same$2f0264ee40551335((IConstructor) $P0, (IConstructor) $P1); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0, $P1)); + } + public IBool isNodeType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isNodeType($P0); + } + public IConstructor conditional(IValue $P0, IValue $P1){ // Generated by Resolver + IConstructor $result = null; + Type $P0Type = $P0.getType(); + Type $P1Type = $P1.getType(); + if($isSubtypeOf($P0Type, M_ParseTree.ADT_Symbol) && $isSubtypeOf($P1Type,$T4)){ + $result = (IConstructor)M_lang_rascal_grammar_definition_Symbols.lang_rascal_grammar_definition_Symbols_conditional$f9ac60504818807f((IConstructor) $P0, (ISet) $P1); + if($result != null) return $result; + } + if($isSubtypeOf($P0Type, M_ParseTree.ADT_Symbol) && $isSubtypeOf($P1Type,$T4)){ + $result = (IConstructor)M_lang_rascal_grammar_definition_Symbols.lang_rascal_grammar_definition_Symbols_conditional$a78f69e7726562ef((IConstructor) $P0, (ISet) $P1); + if($result != null) return $result; + return $RVF.constructor(M_ParseTree.Symbol_conditional_Symbol_set_Condition, new IValue[]{(IConstructor) $P0, (ISet) $P1}); + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0, $P1)); + } + public IBool isSorted(IValue $P0, java.util.Map $kwpActuals){ // Generated by Resolver + return (IBool) M_List.isSorted($P0, $kwpActuals); + } + public IList take(IValue $P0, IValue $P1){ // Generated by Resolver + return (IList) M_List.take($P0, $P1); + } + public ISet toSet(IValue $P0){ // Generated by Resolver + return (ISet) M_List.toSet($P0); + } + public IBool isReifiedType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isReifiedType($P0); + } + public ITuple takeOneFrom(IValue $P0){ // Generated by Resolver + return (ITuple) M_List.takeOneFrom($P0); + } + public IConstructor alt(IValue $P0){ // Generated by Resolver + IConstructor $result = null; + Type $P0Type = $P0.getType(); + if($isSubtypeOf($P0Type,$T5)){ + $result = (IConstructor)M_lang_rascal_grammar_definition_Symbols.lang_rascal_grammar_definition_Symbols_alt$01fd93bf17a1bf85((ISet) $P0); + if($result != null) return $result; + } + if($isSubtypeOf($P0Type,$T5)){ + return $RVF.constructor(M_ParseTree.Symbol_alt_set_Symbol, new IValue[]{(ISet) $P0}); + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0)); + } + public IInteger indexOf(IValue $P0, IValue $P1){ // Generated by Resolver + return (IInteger) M_List.indexOf($P0, $P1); + } + public IBool isRelType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isRelType($P0); + } + public ITuple unzip2(IValue $P0){ // Generated by Resolver + return (ITuple) M_List.unzip2($P0); + } + public IBool isConstructorType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isConstructorType($P0); + } + public IConstructor var_func(IValue $P0, IValue $P1, IValue $P2){ // Generated by Resolver + return (IConstructor) M_Type.var_func($P0, $P1, $P2); + } + public IBool equivalent(IValue $P0, IValue $P1){ // Generated by Resolver + return (IBool) M_Type.equivalent($P0, $P1); + } + public IList takeWhile(IValue $P0, IValue $P1){ // Generated by Resolver + return (IList) M_List.takeWhile($P0, $P1); + } + public INumber sum(IValue $P0){ // Generated by Resolver + return (INumber) M_List.sum($P0); + } + public IList addParamLabels(IValue $P0, IValue $P1){ // Generated by Resolver + return (IList) M_Type.addParamLabels($P0, $P1); + } + public IList delete(IValue $P0, IValue $P1){ // Generated by Resolver + return (IList) M_List.delete($P0, $P1); + } + public IBool keepParams(IValue $P0, IValue $P1){ // Generated by Resolver + return (IBool) M_Type.keepParams($P0, $P1); + } + public IBool isListRelType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isListRelType($P0); + } + public ITuple unzip3(IValue $P0){ // Generated by Resolver + return (ITuple) M_List.unzip3($P0); + } + public IBool eq(IValue $P0, IValue $P1){ // Generated by Resolver + return (IBool) M_Type.eq($P0, $P1); + } + public IList insertAt(IValue $P0, IValue $P1, IValue $P2){ // Generated by Resolver + return (IList) M_List.insertAt($P0, $P1, $P2); + } + public IBool isMapType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isMapType($P0); + } + public IValue reducer(IValue $P0, IValue $P1, IValue $P2){ // Generated by Resolver + return (IValue) M_List.reducer($P0, $P1, $P2); + } + public IString toString(IValue $P0){ // Generated by Resolver + return (IString) M_List.toString($P0); + } + public ISet permutations(IValue $P0){ // Generated by Resolver + return (ISet) M_List.permutations($P0); + } + public TypedFunctionInstance3 loadParsers(IValue $P0, java.util.Map $kwpActuals){ // Generated by Resolver + return (TypedFunctionInstance3) M_ParseTree.loadParsers($P0, $kwpActuals); + } + public IBool isBoolType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isBoolType($P0); + } + public IValue make(IValue $P0, IValue $P1, IValue $P2){ // Generated by Resolver + return (IValue) M_Type.make($P0, $P1, $P2); + } + public IValue make(IValue $P0, IValue $P1, IValue $P2, IValue $P3){ // Generated by Resolver + return (IValue) M_Type.make($P0, $P1, $P2, $P3); + } + public IList drop(IValue $P0, IValue $P1){ // Generated by Resolver + return (IList) M_List.drop($P0, $P1); + } + public IValue elementAt(IValue $P0, IValue $P1){ // Generated by Resolver + return (IValue) M_List.elementAt($P0, $P1); + } + public void println(IValue $P0){ // Generated by Resolver + M_IO.println($P0); + } + public void println(){ // Generated by Resolver + M_IO.println(); + } + public IBool isLocType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isLocType($P0); + } + public IValue implode(IValue $P0, IValue $P1){ // Generated by Resolver + return (IValue) M_ParseTree.implode($P0, $P1); + } + public TypedFunctionInstance3 firstAmbiguityFinders(IValue $P0, java.util.Map $kwpActuals){ // Generated by Resolver + return (TypedFunctionInstance3) M_ParseTree.firstAmbiguityFinders($P0, $kwpActuals); + } + public IList upTill(IValue $P0){ // Generated by Resolver + return (IList) M_List.upTill($P0); + } + public IList tail(IValue $P0){ // Generated by Resolver + return (IList) M_List.tail($P0); + } + public IList tail(IValue $P0, IValue $P1){ // Generated by Resolver + return (IList) M_List.tail($P0, $P1); + } + public ITuple headTail(IValue $P0){ // Generated by Resolver + return (ITuple) M_List.headTail($P0); + } + public IList zip2(IValue $P0, IValue $P1){ // Generated by Resolver + return (IList) M_List.zip2($P0, $P1); + } + public ITuple pop(IValue $P0){ // Generated by Resolver + return (ITuple) M_List.pop($P0); + } + public IConstructor typeOf(IValue $P0){ // Generated by Resolver + return (IConstructor) M_Type.typeOf($P0); + } + public IConstructor treeAt(IValue $P0, IValue $P1, IValue $P2){ // Generated by Resolver + return (IConstructor) M_ParseTree.treeAt($P0, $P1, $P2); + } + public IMap toMapUnique(IValue $P0){ // Generated by Resolver + return (IMap) M_List.toMapUnique($P0); + } + public IValue index(IValue $P0){ // Generated by Resolver + IValue $result = null; + Type $P0Type = $P0.getType(); + if($isSubtypeOf($P0Type,$T0)){ + $result = (IValue)M_Set.Set_index$31fadea181d3071e((ISet) $P0); + if($result != null) return $result; + } + if($isSubtypeOf($P0Type,$T3)){ + $result = (IValue)M_List.List_index$90228c781d131b76((IList) $P0); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0)); + } + public IList slice(IValue $P0, IValue $P1, IValue $P2){ // Generated by Resolver + return (IList) M_List.slice($P0, $P1, $P2); + } + public IBool allLabeled(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.allLabeled($P0); + } + public IValue min(IValue $P0){ // Generated by Resolver + return (IValue) M_List.min($P0); + } + public IList prefix(IValue $P0){ // Generated by Resolver + return (IList) M_List.prefix($P0); + } + public IList zip3(IValue $P0, IValue $P1, IValue $P2){ // Generated by Resolver + return (IList) M_List.zip3($P0, $P1, $P2); + } + public IBool isSetType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isSetType($P0); + } + public void storeParsers(IValue $P0, IValue $P1){ // Generated by Resolver + M_ParseTree.storeParsers($P0, $P1); + } + public IInteger lastIndexOf(IValue $P0, IValue $P1){ // Generated by Resolver + return (IInteger) M_List.lastIndexOf($P0, $P1); + } + public ITree parse(IValue $P0, IValue $P1, IValue $P2, java.util.Map $kwpActuals){ // Generated by Resolver + return (ITree) M_ParseTree.parse($P0, $P1, $P2, $kwpActuals); + } + public ITree parse(IValue $P0, IValue $P1, java.util.Map $kwpActuals){ // Generated by Resolver + return (ITree) M_ParseTree.parse($P0, $P1, $kwpActuals); + } + public TypedFunctionInstance3 parsers(IValue $P0, java.util.Map $kwpActuals){ // Generated by Resolver + return (TypedFunctionInstance3) M_ParseTree.parsers($P0, $kwpActuals); + } + public IList concat(IValue $P0){ // Generated by Resolver + return (IList) M_List.concat($P0); + } + public IBool isRatType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isRatType($P0); + } + public IValue top(IValue $P0){ // Generated by Resolver + return (IValue) M_List.top($P0); + } + public IString itoString(IValue $P0){ // Generated by Resolver + return (IString) M_List.itoString($P0); + } + public IList getLabels(IValue $P0){ // Generated by Resolver + return (IList) M_Type.getLabels($P0); + } + public IValue last(IValue $P0){ // Generated by Resolver + return (IValue) M_List.last($P0); + } + public IList getParamLabels(IValue $P0){ // Generated by Resolver + return (IList) M_Type.getParamLabels($P0); + } + public IBool isNumType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isNumType($P0); + } + public IList stripLabels(IValue $P0){ // Generated by Resolver + return (IList) M_Type.stripLabels($P0); + } + public IBool isTupleType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isTupleType($P0); + } + public IBool isBagType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isBagType($P0); + } + public IList intersperse(IValue $P0, IValue $P1){ // Generated by Resolver + return (IList) M_List.intersperse($P0, $P1); + } + public IList merge(IValue $P0, IValue $P1, IValue $P2){ // Generated by Resolver + return (IList) M_List.merge($P0, $P1, $P2); + } + public IList merge(IValue $P0, IValue $P1){ // Generated by Resolver + return (IList) M_List.merge($P0, $P1); + } + public IBool isVoidType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isVoidType($P0); + } + public IConstructor strip(IValue $P0){ // Generated by Resolver + return (IConstructor) M_lang_rascal_grammar_definition_Symbols.strip($P0); + } + public IBool isNonTerminalType(IValue $P0){ // Generated by Resolver + return (IBool) M_ParseTree.isNonTerminalType($P0); + } + public IValue typeCast(IValue $P0, IValue $P1){ // Generated by Resolver + return (IValue) M_Type.typeCast($P0, $P1); + } + public IValue lub(IValue $P0, IValue $P1){ // Generated by Resolver + return (IValue) M_Type.lub($P0, $P1); + } + public ISet except(IValue $P0, IValue $P1){ // Generated by Resolver + ISet $result = null; + Type $P0Type = $P0.getType(); + Type $P1Type = $P1.getType(); + switch(Fingerprint.getFingerprint($P0)){ + + case 101776608: + if($isSubtypeOf($P0Type, M_ParseTree.ADT_Production) && $isSubtypeOf($P1Type, M_Grammar.ADT_Grammar)){ + $result = (ISet)lang_rascal_grammar_definition_Priorities_except$777b44f0a7dd4b2b((IConstructor) $P0, (IConstructor) $P1); + if($result != null) return $result; + } + break; + case 110389984: + if($isSubtypeOf($P0Type, M_ParseTree.ADT_Production) && $isSubtypeOf($P1Type, M_Grammar.ADT_Grammar)){ + $result = (ISet)lang_rascal_grammar_definition_Priorities_except$c747c63a3928b276((IConstructor) $P0, (IConstructor) $P1); + if($result != null) return $result; + } + break; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0, $P1)); + } + public ISourceLocation find(IValue $P0, IValue $P1){ // Generated by Resolver + return (ISourceLocation) M_IO.find($P0, $P1); + } + public IConstructor find(IValue $P0, IValue $P1, IValue $P2, IValue $P3){ // Generated by Resolver + IConstructor $result = null; + Type $P0Type = $P0.getType(); + Type $P1Type = $P1.getType(); + Type $P2Type = $P2.getType(); + Type $P3Type = $P3.getType(); + if($isSubtypeOf($P0Type,$T6) && $isSubtypeOf($P1Type, M_ParseTree.ADT_Symbol) && $isSubtypeOf($P2Type, M_ParseTree.ADT_Symbol) && $isSubtypeOf($P3Type, M_Grammar.ADT_Grammar)){ + $result = (IConstructor)lang_rascal_grammar_definition_Priorities_find$90024f178f1ba5eb((IString) $P0, (IConstructor) $P1, (IConstructor) $P2, (IConstructor) $P3); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0, $P1, $P2, $P3)); + } + public IList shuffle(IValue $P0){ // Generated by Resolver + return (IList) M_List.shuffle($P0); + } + public IList shuffle(IValue $P0, IValue $P1){ // Generated by Resolver + return (IList) M_List.shuffle($P0, $P1); + } + public IBool comparable(IValue $P0, IValue $P1){ // Generated by Resolver + return (IBool) M_Type.comparable($P0, $P1); + } + public IBool subtype(IValue $P0, IValue $P1){ // Generated by Resolver + IBool $result = null; + Type $P0Type = $P0.getType(); + Type $P1Type = $P1.getType(); + switch(Fingerprint.getFingerprint($P0)){ + + case 1643638592: + if($isSubtypeOf($P0Type, M_ParseTree.ADT_Symbol) && $isSubtypeOf($P1Type, M_ParseTree.ADT_Symbol)){ + $result = (IBool)M_Type.Type_subtype$162da85a0f5a9f0d((IConstructor) $P0, (IConstructor) $P1); + if($result != null) return $result; + } + break; + case 26576112: + if($isSubtypeOf($P0Type, M_ParseTree.ADT_Symbol) && $isSubtypeOf($P1Type, M_ParseTree.ADT_Symbol)){ + $result = (IBool)M_Type.Type_subtype$258479665eae36af((IConstructor) $P0, (IConstructor) $P1); + if($result != null) return $result; + $result = (IBool)M_Type.Type_subtype$0462d461bde80a82((IConstructor) $P0, (IConstructor) $P1); + if($result != null) return $result; + } + break; + case 1725888: + if($isSubtypeOf($P0Type, M_ParseTree.ADT_Symbol) && $isSubtypeOf($P1Type, M_ParseTree.ADT_Symbol)){ + $result = (IBool)M_Type.Type_subtype$f6957636a33615ae((IConstructor) $P0, (IConstructor) $P1); + if($result != null) return $result; + } + break; + case 1206598288: + if($isSubtypeOf($P0Type, M_ParseTree.ADT_Symbol) && $isSubtypeOf($P1Type, M_ParseTree.ADT_Symbol)){ + $result = (IBool)M_Type.Type_subtype$b674428cffef84bc((IConstructor) $P0, (IConstructor) $P1); + if($result != null) return $result; + } + break; + case 97904160: + if($isSubtypeOf($P0Type, M_ParseTree.ADT_Symbol) && $isSubtypeOf($P1Type, M_ParseTree.ADT_Symbol)){ + $result = (IBool)M_Type.Type_subtype$98167e340333c9a5((IConstructor) $P0, (IConstructor) $P1); + if($result != null) return $result; + $result = (IBool)M_Type.Type_subtype$4fe5b133e2ee1de9((IConstructor) $P0, (IConstructor) $P1); + if($result != null) return $result; + } + break; + case 28290288: + if($isSubtypeOf($P0Type, M_ParseTree.ADT_Symbol) && $isSubtypeOf($P1Type, M_ParseTree.ADT_Symbol)){ + $result = (IBool)M_ParseTree.ParseTree_subtype$384d8d76f0c7a053((IConstructor) $P0, (IConstructor) $P1); + if($result != null) return $result; + } + break; + case 910096: + if($isSubtypeOf($P0Type, M_ParseTree.ADT_Symbol) && $isSubtypeOf($P1Type, M_ParseTree.ADT_Symbol)){ + $result = (IBool)M_Type.Type_subtype$ca59d9bf5276e15d((IConstructor) $P0, (IConstructor) $P1); + if($result != null) return $result; + $result = (IBool)M_Type.Type_subtype$e77633ea9a4ac6a5((IConstructor) $P0, (IConstructor) $P1); + if($result != null) return $result; + } + break; + case 902344: + if($isSubtypeOf($P0Type, M_ParseTree.ADT_Symbol) && $isSubtypeOf($P1Type, M_ParseTree.ADT_Symbol)){ + $result = (IBool)M_Type.Type_subtype$21c6b8b775030d1d((IConstructor) $P0, (IConstructor) $P1); + if($result != null) return $result; + $result = (IBool)M_Type.Type_subtype$98e19b11a09faf67((IConstructor) $P0, (IConstructor) $P1); + if($result != null) return $result; + } + break; + case -1322071552: + if($isSubtypeOf($P0Type, M_ParseTree.ADT_Symbol) && $isSubtypeOf($P1Type, M_ParseTree.ADT_Symbol)){ + $result = (IBool)M_Type.Type_subtype$0862159b9fa78cf9((IConstructor) $P0, (IConstructor) $P1); + if($result != null) return $result; + } + break; + case 26641768: + if($isSubtypeOf($P0Type, M_ParseTree.ADT_Symbol) && $isSubtypeOf($P1Type, M_ParseTree.ADT_Symbol)){ + $result = (IBool)M_Type.Type_subtype$ab363c241c416a71((IConstructor) $P0, (IConstructor) $P1); + if($result != null) return $result; + $result = (IBool)M_Type.Type_subtype$4de9a977591be6e5((IConstructor) $P0, (IConstructor) $P1); + if($result != null) return $result; + } + break; + case 778304: + if($isSubtypeOf($P0Type, M_ParseTree.ADT_Symbol) && $isSubtypeOf($P1Type, M_ParseTree.ADT_Symbol)){ + $result = (IBool)M_Type.Type_subtype$23f59dc1171dc69d((IConstructor) $P0, (IConstructor) $P1); + if($result != null) return $result; + } + break; + case 100948096: + if($isSubtypeOf($P0Type, M_ParseTree.ADT_Symbol) && $isSubtypeOf($P1Type, M_ParseTree.ADT_Symbol)){ + $result = (IBool)M_Type.Type_subtype$ddf53e134f4d5416((IConstructor) $P0, (IConstructor) $P1); + if($result != null) return $result; + } + break; + case 112955840: + if($isSubtypeOf($P0Type, M_ParseTree.ADT_Symbol) && $isSubtypeOf($P1Type, M_ParseTree.ADT_Symbol)){ + $result = (IBool)M_Type.Type_subtype$bc5943e83a6df899((IConstructor) $P0, (IConstructor) $P1); + if($result != null) return $result; + $result = (IBool)M_Type.Type_subtype$282ad33dd55efdcc((IConstructor) $P0, (IConstructor) $P1); + if($result != null) return $result; + } + break; + case 1542928: + if($isSubtypeOf($P0Type, M_ParseTree.ADT_Symbol) && $isSubtypeOf($P1Type, M_ParseTree.ADT_Symbol)){ + $result = (IBool)M_Type.Type_subtype$5f5250bbf1aff423((IConstructor) $P0, (IConstructor) $P1); + if($result != null) return $result; + $result = (IBool)M_Type.Type_subtype$15cedff9916fdbee((IConstructor) $P0, (IConstructor) $P1); + if($result != null) return $result; + } + break; + case 885800512: + if($isSubtypeOf($P0Type, M_ParseTree.ADT_Symbol) && $isSubtypeOf($P1Type, M_ParseTree.ADT_Symbol)){ + $result = (IBool)M_Type.Type_subtype$44422dfea95218a8((IConstructor) $P0, (IConstructor) $P1); + if($result != null) return $result; + } + break; + } + if($isSubtypeOf($P0Type,$T7) && $isSubtypeOf($P1Type,$T7)){ + $result = (IBool)M_Type.Type_subtype$e6962df5576407da((IList) $P0, (IList) $P1); + if($result != null) return $result; + } + if($isSubtypeOf($P0Type, M_ParseTree.ADT_Symbol) && $isSubtypeOf($P1Type, M_ParseTree.ADT_Symbol)){ + $result = (IBool)M_Type.Type_subtype$cfecefb3bc3fa773((IConstructor) $P0, (IConstructor) $P1); + if($result != null) return $result; + $result = (IBool)M_Type.Type_subtype$53c4de769757bddc((IConstructor) $P0, (IConstructor) $P1); + if($result != null) return $result; + $result = (IBool)M_Type.Type_subtype$2750c116f0b05084((IConstructor) $P0, (IConstructor) $P1); + if($result != null) return $result; + $result = (IBool)M_Type.Type_subtype$39fbab80e9db10e1((IConstructor) $P0, (IConstructor) $P1); + if($result != null) return $result; + $result = (IBool)M_Type.Type_subtype$3eada106dbc66d2d((IConstructor) $P0, (IConstructor) $P1); + if($result != null) return $result; + $result = (IBool)M_Type.Type_subtype$30215aaed6c33fd7((IConstructor) $P0, (IConstructor) $P1); + if($result != null) return $result; + $result = (IBool)M_Type.Type_subtype$1b2387a35f10c1e0((IConstructor) $P0, (IConstructor) $P1); + if($result != null) return $result; + $result = (IBool)M_Type.Type_subtype$80633493313ebd18((IConstructor) $P0, (IConstructor) $P1); + if($result != null) return $result; + $result = (IBool)M_Type.Type_subtype$3aa09e73e41fcf84((IConstructor) $P0, (IConstructor) $P1); + if($result != null) return $result; + } + if($isSubtypeOf($P0Type,$T8) && $isSubtypeOf($P1Type,$T9)){ + $result = (IBool)M_Type.Type_subtype$7b9c005ac35dd586((IConstructor) $P0, (IConstructor) $P1); + if($result != null) return $result; + } + if($isSubtypeOf($P0Type, M_ParseTree.ADT_Symbol) && $isSubtypeOf($P1Type, M_ParseTree.ADT_Symbol)){ + $result = (IBool)M_Type.Type_subtype$06d2c71d010480ef((IConstructor) $P0, (IConstructor) $P1); + if($result != null) return $result; + } + if($isSubtypeOf($P0Type,$T7) && $isSubtypeOf($P1Type,$T7)){ + $result = (IBool)M_Type.Type_subtype$812a7f34ff841fdb((IList) $P0, (IList) $P1); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0, $P1)); + } + public IConstructor associativity(IValue $P0, IValue $P1, IValue $P2){ // Generated by Resolver + IConstructor $result = null; + Type $P0Type = $P0.getType(); + Type $P1Type = $P1.getType(); + Type $P2Type = $P2.getType(); + if($isSubtypeOf($P0Type, M_ParseTree.ADT_Symbol) && $isSubtypeOf($P1Type, M_util_Maybe.ADT_Maybe_1) && $isSubtypeOf($P2Type, M_ParseTree.ADT_Production)){ + $result = (IConstructor)M_lang_rascal_grammar_definition_Productions.lang_rascal_grammar_definition_Productions_associativity$09cd814bba935894((IConstructor) $P0, (IConstructor) $P1, (IConstructor) $P2); + if($result != null) return $result; + } + if($isSubtypeOf($P0Type, M_ParseTree.ADT_Symbol) && $isSubtypeOf($P1Type, M_ParseTree.ADT_Associativity) && $isSubtypeOf($P2Type,$T12)){ + $result = (IConstructor)M_ParseTree.ParseTree_associativity$9299e943b00366a7((IConstructor) $P0, (IConstructor) $P1, (ISet) $P2); + if($result != null) return $result; + $result = (IConstructor)M_ParseTree.ParseTree_associativity$95843a2f3959b22f((IConstructor) $P0, (IConstructor) $P1, (ISet) $P2); + if($result != null) return $result; + $result = (IConstructor)M_ParseTree.ParseTree_associativity$05ee42b13b7e96fb((IConstructor) $P0, (IConstructor) $P1, (ISet) $P2); + if($result != null) return $result; + } + if($isSubtypeOf($P0Type, M_ParseTree.ADT_Symbol) && $isSubtypeOf($P1Type, ADT_Maybe_Associativity) && $isSubtypeOf($P2Type, M_ParseTree.ADT_Production)){ + $result = (IConstructor)M_lang_rascal_grammar_definition_Productions.lang_rascal_grammar_definition_Productions_associativity$fe1234ba22a8be5e((IConstructor) $P0, (IConstructor) $P1, (IConstructor) $P2); + if($result != null) return $result; + } + if($isSubtypeOf($P0Type, M_ParseTree.ADT_Symbol) && $isSubtypeOf($P1Type, M_ParseTree.ADT_Associativity) && $isSubtypeOf($P2Type,$T12)){ + return $RVF.constructor(M_ParseTree.Production_associativity_Symbol_Associativity_set_Production, new IValue[]{(IConstructor) $P0, (IConstructor) $P1, (ISet) $P2}); + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0, $P1, $P2)); + } + public IValue getOneFrom(IValue $P0){ // Generated by Resolver + return (IValue) M_List.getOneFrom($P0); + } + public IString unparse(IValue $P0){ // Generated by Resolver + return (IString) M_ParseTree.unparse($P0); + } + public IMap removeFromBag(IValue $P0, IValue $P1, IValue $P2){ // Generated by Resolver + return (IMap) M_List.removeFromBag($P0, $P1, $P2); + } + public IMap removeFromBag(IValue $P0, IValue $P1){ // Generated by Resolver + return (IMap) M_List.removeFromBag($P0, $P1); + } + public ITuple split(IValue $P0){ // Generated by Resolver + return (ITuple) M_List.split($P0); + } + public IList push(IValue $P0, IValue $P1){ // Generated by Resolver + return (IList) M_List.push($P0, $P1); + } + public IBool noneLabeled(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.noneLabeled($P0); + } + public ISet permutationsBag(IValue $P0){ // Generated by Resolver + return (ISet) M_List.permutationsBag($P0); + } + public IBool isdef(IValue $P0, IValue $P1){ // Generated by Resolver + IBool $result = null; + Type $P0Type = $P0.getType(); + Type $P1Type = $P1.getType(); + if($isSubtypeOf($P0Type, M_Grammar.ADT_Grammar) && $isSubtypeOf($P1Type, M_ParseTree.ADT_Symbol)){ + $result = (IBool)lang_rascal_grammar_definition_Priorities_isdef$bf6946c1ef3bec76((IConstructor) $P0, (IConstructor) $P1); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0, $P1)); + } + public IList mix(IValue $P0, IValue $P1){ // Generated by Resolver + return (IList) M_List.mix($P0, $P1); + } + public IInteger mainMessageHandler(IValue $P0, java.util.Map $kwpActuals){ // Generated by Resolver + return (IInteger) M_Message.mainMessageHandler($P0, $kwpActuals); + } + public IBool isFunctionType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isFunctionType($P0); + } + public IValue glb(IValue $P0, IValue $P1){ // Generated by Resolver + return (IValue) M_Type.glb($P0, $P1); + } + public ITree firstAmbiguity(IValue $P0, IValue $P1){ // Generated by Resolver + return (ITree) M_ParseTree.firstAmbiguity($P0, $P1); + } + public ISet toRel(IValue $P0){ // Generated by Resolver + return (ISet) M_List.toRel($P0); + } + public IValue sort(IValue $P0){ // Generated by Resolver + IValue $result = null; + Type $P0Type = $P0.getType(); + if($isSubtypeOf($P0Type,$T3)){ + $result = (IValue)M_List.List_sort$1fe4426c8c8039da((IList) $P0); + if($result != null) return $result; + } + if($isSubtypeOf($P0Type,$T6)){ + return $RVF.constructor(M_ParseTree.Symbol_sort_str, new IValue[]{(IString) $P0}); + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0)); + } + public IList sort(IValue $P0, IValue $P1){ // Generated by Resolver + return (IList) M_List.sort($P0, $P1); + } + public TypedFunctionInstance2 parser(IValue $P0, java.util.Map $kwpActuals){ // Generated by Resolver + return (TypedFunctionInstance2) M_ParseTree.parser($P0, $kwpActuals); + } + public IConstructor seq(IValue $P0){ // Generated by Resolver + IConstructor $result = null; + Type $P0Type = $P0.getType(); + if($isSubtypeOf($P0Type,$T7)){ + $result = (IConstructor)M_lang_rascal_grammar_definition_Symbols.lang_rascal_grammar_definition_Symbols_seq$5dde90ea795fac79((IList) $P0); + if($result != null) return $result; + } + if($isSubtypeOf($P0Type,$T7)){ + return $RVF.constructor(M_ParseTree.Symbol_seq_list_Symbol, new IValue[]{(IList) $P0}); + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0)); + } + public IList dup(IValue $P0){ // Generated by Resolver + return (IList) M_List.dup($P0); + } + public IBool isIntType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isIntType($P0); + } + public IBool isDateTimeType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isDateTimeType($P0); + } + public IString write(IValue $P0, java.util.Map $kwpActuals){ // Generated by Resolver + return (IString) M_Message.write($P0, $kwpActuals); + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/lang/rascal/grammar/definition/Priorities.rsc|(845,5644,<28,0>,<131,1>) + public ISet lang_rascal_grammar_definition_Priorities_doNotNest$df93cb6da09e0418(IConstructor g_0){ + + + g_0 = ((IConstructor)(M_lang_rascal_grammar_definition_References.references(((IConstructor)g_0)))); + ISet result_1 = ((ISet)$constants.get(0)/*{}*/); + /*muExists*/FOR0: + do { + FOR0_GEN2039: + for(IValue $elem63_for : ((IMap)(((IMap)($aadt_get_field(((IConstructor)g_0), "rules")))))){ + IConstructor $elem63 = (IConstructor) $elem63_for; + IConstructor s_2 = ((IConstructor)($elem63)); + ISet defined_3 = ((ISet)($me.extract(((IConstructor)($amap_subscript(((IMap)(((IMap)($aadt_get_field(((IConstructor)g_0), "rules"))))),((IConstructor)s_2))))))); + final ISetWriter $setwriter0 = (ISetWriter)$RVF.setWriter(); + ; + $SCOMP1_GEN2754: + for(IValue $elem2_for : ((ISet)defined_3)){ + IValue $elem2 = (IValue) $elem2_for; + final IValue $tuple_subject3 = ((IValue)($elem2)); + if($tuple_subject3 instanceof ITuple && ((ITuple)$tuple_subject3).arity() == 3){ + /*muExists*/$SCOMP1_GEN2754_TUPLE: + do { + IConstructor f_5 = null; + final IConstructor $subject4 = ((IConstructor)($subscript_int(((IValue)($tuple_subject3)),1))); + if($has_type_and_arity($subject4, M_ParseTree.Associativity_left_, 0)){ + IConstructor c_6 = null; + $setwriter0.insert($RVF.tuple(((IConstructor)($subscript_int(((IValue)($tuple_subject3)),0))), ((IConstructor)($subscript_int(((IValue)($tuple_subject3)),2))))); + + } else { + continue $SCOMP1_GEN2754_TUPLE;/*computeFail*/ + } + } while(false); + + } else { + continue $SCOMP1_GEN2754; + } + } + + ISet lefts_4 = ((ISet)(((ISet)($setwriter0.done())).asRelation().closure())); + final ISetWriter $setwriter5 = (ISetWriter)$RVF.setWriter(); + ; + $SCOMP6_GEN2812: + for(IValue $elem7_for : ((ISet)defined_3)){ + IValue $elem7 = (IValue) $elem7_for; + final IValue $tuple_subject8 = ((IValue)($elem7)); + if($tuple_subject8 instanceof ITuple && ((ITuple)$tuple_subject8).arity() == 3){ + /*muExists*/$SCOMP6_GEN2812_TUPLE: + do { + IConstructor f_8 = null; + final IConstructor $subject9 = ((IConstructor)($subscript_int(((IValue)($tuple_subject8)),1))); + if($has_type_and_arity($subject9, M_ParseTree.Associativity_right_, 0)){ + IConstructor c_9 = null; + $setwriter5.insert($RVF.tuple(((IConstructor)($subscript_int(((IValue)($tuple_subject8)),0))), ((IConstructor)($subscript_int(((IValue)($tuple_subject8)),2))))); + + } else { + continue $SCOMP6_GEN2812_TUPLE;/*computeFail*/ + } + } while(false); + + } else { + continue $SCOMP6_GEN2812; + } + } + + ISet rights_7 = ((ISet)(((ISet)($setwriter5.done())).asRelation().closure())); + final ISetWriter $setwriter10 = (ISetWriter)$RVF.setWriter(); + ; + $SCOMP11_GEN2871: + for(IValue $elem12_for : ((ISet)defined_3)){ + IValue $elem12 = (IValue) $elem12_for; + final IValue $tuple_subject13 = ((IValue)($elem12)); + if($tuple_subject13 instanceof ITuple && ((ITuple)$tuple_subject13).arity() == 3){ + /*muExists*/$SCOMP11_GEN2871_TUPLE: + do { + IConstructor f_11 = null; + final IConstructor $subject14 = ((IConstructor)($subscript_int(((IValue)($tuple_subject13)),1))); + if($has_type_and_arity($subject14, M_ParseTree.Associativity_non_assoc_, 0)){ + IConstructor c_12 = null; + $setwriter10.insert($RVF.tuple(((IConstructor)($subscript_int(((IValue)($tuple_subject13)),0))), ((IConstructor)($subscript_int(((IValue)($tuple_subject13)),2))))); + + } else { + continue $SCOMP11_GEN2871_TUPLE;/*computeFail*/ + } + } while(false); + + } else { + continue $SCOMP11_GEN2871; + } + } + + ISet nons_10 = ((ISet)(((ISet)($setwriter10.done())).asRelation().closure())); + final ISetWriter $setwriter15 = (ISetWriter)$RVF.setWriter(); + ; + $SCOMP16_GEN2929: + for(IValue $elem17_for : ((ISet)defined_3)){ + IValue $elem17 = (IValue) $elem17_for; + final IValue $tuple_subject18 = ((IValue)($elem17)); + if($tuple_subject18 instanceof ITuple && ((ITuple)$tuple_subject18).arity() == 3){ + /*muExists*/$SCOMP16_GEN2929_TUPLE: + do { + IConstructor f_14 = null; + final IConstructor $subject19 = ((IConstructor)($subscript_int(((IValue)($tuple_subject18)),1))); + if($has_type_and_arity($subject19, Associativity_prio_, 0)){ + IConstructor c_15 = null; + $setwriter15.insert($RVF.tuple(((IConstructor)($subscript_int(((IValue)($tuple_subject18)),0))), ((IConstructor)($subscript_int(((IValue)($tuple_subject18)),2))))); + + } else { + continue $SCOMP16_GEN2929_TUPLE;/*computeFail*/ + } + } while(false); + + } else { + continue $SCOMP16_GEN2929; + } + } + + ISet prios_13 = ((ISet)($setwriter15.done())); + ISet groups_16 = ((ISet)($aset_add_aset(((ISet)($aset_add_aset(((ISet)lefts_4),((ISet)rights_7)))),((ISet)nons_10)))); + prios_13 = ((ISet)($aset_add_aset(((ISet)prios_13),((ISet)($aset_add_aset(((ISet)(((ISet)prios_13).asRelation().compose(((ISet)groups_16).asRelation()))),((ISet)(((ISet)groups_16).asRelation().compose(((ISet)prios_13).asRelation()))))))))); + prios_13 = ((ISet)(((ISet)prios_13).asRelation().closure())); + /*muExists*/FOR1: + do { + FOR1_GEN3524: + for(IValue $elem22_for : ((ISet)(((ISet)lefts_4).intersect(((ISet)rights_7))))){ + IValue $elem22 = (IValue) $elem22_for; + final IValue $tuple_subject23 = ((IValue)($elem22)); + if($tuple_subject23 instanceof ITuple && ((ITuple)$tuple_subject23).arity() == 2){ + /*muExists*/FOR1_GEN3524_TUPLE: + do { + IConstructor f_17 = ((IConstructor)($subscript_int(((IValue)($tuple_subject23)),0))); + IConstructor c_18 = ((IConstructor)($subscript_int(((IValue)($tuple_subject23)),1))); + if((((IBool)($equal(((IConstructor)f_17), ((IConstructor)c_18))))).getValue()){ + final Template $template21 = (Template)new Template($RVF, "warning, not syntax-safe: "); + $template21.beginIndent(" "); + $template21.addStr(((IString)(M_lang_rascal_format_Grammar.prod2rascal(((IConstructor)f_17)))).getValue()); + $template21.endIndent(" "); + $template21.addStr(" is both left and right associative."); + M_IO.println(((IValue)($template21.close()))); + + } else { + final Template $template20 = (Template)new Template($RVF, "warning, not syntax-safe: "); + $template20.beginIndent(" "); + $template20.addStr(((IString)(M_lang_rascal_format_Grammar.prod2rascal(((IConstructor)f_17)))).getValue()); + $template20.endIndent(" "); + $template20.addStr(" and "); + $template20.beginIndent(" "); + $template20.addStr(((IString)(M_lang_rascal_format_Grammar.prod2rascal(((IConstructor)c_18)))).getValue()); + $template20.endIndent(" "); + $template20.addStr(" are both left and right associative to eachother."); + M_IO.println(((IValue)($template20.close()))); + + } + } while(false); + + } else { + continue FOR1_GEN3524; + } + } + continue FOR1; + + } while(false); + /* void: muCon([]) *//*muExists*/FOR3: + do { + FOR3_GEN3989: + for(IValue $elem26_for : ((ISet)(((ISet)prios_13).intersect(((ISet)($arel_field_project((ISet)((ISet)prios_13), ((IInteger)$constants.get(1)/*1*/), ((IInteger)$constants.get(2)/*0*/)))))))){ + IValue $elem26 = (IValue) $elem26_for; + final IValue $tuple_subject27 = ((IValue)($elem26)); + if($tuple_subject27 instanceof ITuple && ((ITuple)$tuple_subject27).arity() == 2){ + /*muExists*/FOR3_GEN3989_TUPLE: + do { + IConstructor f_19 = ((IConstructor)($subscript_int(((IValue)($tuple_subject27)),0))); + IConstructor c_20 = ((IConstructor)($subscript_int(((IValue)($tuple_subject27)),1))); + if((((IBool)($equal(((IConstructor)f_19), ((IConstructor)c_20))))).getValue()){ + final Template $template25 = (Template)new Template($RVF, "warning, not syntax-safe: "); + $template25.beginIndent(" "); + $template25.addStr(((IString)(M_lang_rascal_format_Grammar.prod2rascal(((IConstructor)f_19)))).getValue()); + $template25.endIndent(" "); + $template25.addStr(" > "); + $template25.beginIndent(" "); + $template25.addStr(((IString)(M_lang_rascal_format_Grammar.prod2rascal(((IConstructor)c_20)))).getValue()); + $template25.endIndent(" "); + $template25.addStr(", has a priority with itself."); + M_IO.println(((IValue)($template25.close()))); + + } else { + final Template $template24 = (Template)new Template($RVF, "warning, not syntax-safe: "); + $template24.beginIndent(" "); + $template24.addStr(((IString)(M_lang_rascal_format_Grammar.prod2rascal(((IConstructor)f_19)))).getValue()); + $template24.endIndent(" "); + $template24.addStr(" {<,>} "); + $template24.beginIndent(" "); + $template24.addStr(((IString)(M_lang_rascal_format_Grammar.prod2rascal(((IConstructor)c_20)))).getValue()); + $template24.endIndent(" "); + $template24.addStr(", reflexive priority."); + M_IO.println(((IValue)($template24.close()))); + + } + } while(false); + + } else { + continue FOR3_GEN3989; + } + } + continue FOR3; + + } while(false); + /* void: muCon([]) */final ISetWriter $setwriter28 = (ISetWriter)$RVF.setWriter(); + ; + $SCOMP29_GEN4551: + for(IValue $elem32_for : ((ISet)($aset_add_aset(((ISet)($aset_add_aset(((ISet)prios_13),((ISet)rights_7)))),((ISet)nons_10))))){ + IValue $elem32 = (IValue) $elem32_for; + final IValue $tuple_subject33 = ((IValue)($elem32)); + if($tuple_subject33 instanceof ITuple && ((ITuple)$tuple_subject33).arity() == 2){ + /*muExists*/$SCOMP29_GEN4551_TUPLE: + do { + final IConstructor $subject40 = ((IConstructor)($subscript_int(((IValue)($tuple_subject33)),0))); + if($has_type_and_arity($subject40, M_ParseTree.Production_prod_Symbol_list_Symbol_set_Attr, 3)){ + IValue $arg0_45 = (IValue)($aadt_subscript_int(((IConstructor)($subject40)),0)); + if($isComparable($arg0_45.getType(), M_ParseTree.ADT_Symbol)){ + if(true){ + IConstructor ss_22 = ((IConstructor)($arg0_45)); + IValue $arg1_42 = (IValue)($aadt_subscript_int(((IConstructor)($subject40)),1)); + if($isComparable($arg1_42.getType(), $T7)){ + final IList $subject43 = ((IList)($arg1_42)); + int $subject43_cursor = 0; + if($isSubtypeOf($subject43.getType(),$T7)){ + final int $subject43_len = (int)((IList)($subject43)).length(); + if($subject43_len >= 1){ + if($subject43_cursor < $subject43_len){ + IConstructor lr_23 = ((IConstructor)($alist_subscript_int(((IList)($subject43)),$subject43_cursor))); + $subject43_cursor += 1; + final int $__144_start = (int)$subject43_cursor; + final int $__144_len = (int)$subject43_len - $__144_start - 0; + $subject43_cursor = $__144_start + $__144_len; + /*muExists*/$SCOMP29_GEN4551_TUPLE_CONS_prod_LIST_VARlr_MVAR$_30: + do { + if($subject43_cursor == $subject43_len){ + IValue $arg2_41 = (IValue)($aadt_subscript_int(((IConstructor)($subject40)),2)); + if($isComparable($arg2_41.getType(), $T1)){ + IConstructor f_21 = ((IConstructor)($subscript_int(((IValue)($tuple_subject33)),0))); + final IConstructor $subject34 = ((IConstructor)($subscript_int(((IValue)($tuple_subject33)),1))); + if($has_type_and_arity($subject34, M_ParseTree.Production_prod_Symbol_list_Symbol_set_Attr, 3)){ + IValue $arg0_39 = (IValue)($aadt_subscript_int(((IConstructor)($subject34)),0)); + if($isComparable($arg0_39.getType(), M_ParseTree.ADT_Symbol)){ + if(true){ + IConstructor t_25 = ((IConstructor)($arg0_39)); + IValue $arg1_36 = (IValue)($aadt_subscript_int(((IConstructor)($subject34)),1)); + if($isComparable($arg1_36.getType(), $T7)){ + final IList $subject37 = ((IList)($arg1_36)); + int $subject37_cursor = 0; + if($isSubtypeOf($subject37.getType(),$T7)){ + final int $subject37_len = (int)((IList)($subject37)).length(); + if($subject37_len >= 1){ + final int $__138_start = (int)$subject37_cursor; + final int $__138_len = (int)$subject37_len - $__138_start - 1; + $subject37_cursor = $__138_start + $__138_len; + /*muExists*/$SCOMP29_GEN4551_TUPLE_CONS_prod_CONS_prod_LIST_MVAR$_31: + do { + if($subject37_cursor < $subject37_len){ + IConstructor rr_26 = ((IConstructor)($alist_subscript_int(((IList)($subject37)),$subject37_cursor))); + $subject37_cursor += 1; + if($subject37_cursor == $subject37_len){ + IValue $arg2_35 = (IValue)($aadt_subscript_int(((IConstructor)($subject34)),2)); + if($isComparable($arg2_35.getType(), $T1)){ + IConstructor c_24 = ((IConstructor)($subscript_int(((IValue)($tuple_subject33)),1))); + if((((IBool)($me.same(((IConstructor)($arg0_45)), ((IConstructor)lr_23))))).getValue()){ + if((((IBool)($me.same(((IConstructor)($arg0_39)), ((IConstructor)rr_26))))).getValue()){ + if((((IBool)($me.same(((IConstructor)($arg0_45)), ((IConstructor)($arg0_39)))))).getValue()){ + $setwriter28.insert($RVF.tuple(((IConstructor)f_21), ((IInteger)$constants.get(2)/*0*/), ((IConstructor)c_24))); + + } else { + continue $SCOMP29_GEN4551_TUPLE_CONS_prod_CONS_prod_LIST_MVAR$_31; + } + + } else { + continue $SCOMP29_GEN4551_TUPLE_CONS_prod_CONS_prod_LIST_MVAR$_31; + } + + } else { + continue $SCOMP29_GEN4551_TUPLE_CONS_prod_CONS_prod_LIST_MVAR$_31; + } + + } else { + continue $SCOMP29_GEN4551_TUPLE_CONS_prod_CONS_prod_LIST_MVAR$_31;/*computeFail*/ + } + } else { + continue $SCOMP29_GEN4551_TUPLE_CONS_prod_CONS_prod_LIST_MVAR$_31;/*list match1*/ + } + } else { + continue $SCOMP29_GEN4551_TUPLE_CONS_prod_CONS_prod_LIST_MVAR$_31;/*computeFail*/ + } + } while(false); + continue $SCOMP29_GEN4551_TUPLE_CONS_prod_LIST_VARlr_MVAR$_30;/*computeFail*/ + } else { + continue $SCOMP29_GEN4551_TUPLE_CONS_prod_LIST_VARlr_MVAR$_30;/*computeFail*/ + } + } else { + continue $SCOMP29_GEN4551_TUPLE_CONS_prod_LIST_VARlr_MVAR$_30;/*computeFail*/ + } + } else { + continue $SCOMP29_GEN4551_TUPLE_CONS_prod_LIST_VARlr_MVAR$_30;/*computeFail*/ + } + } else { + continue $SCOMP29_GEN4551_TUPLE_CONS_prod_LIST_VARlr_MVAR$_30;/*computeFail*/ + } + } else { + continue $SCOMP29_GEN4551_TUPLE_CONS_prod_LIST_VARlr_MVAR$_30;/*computeFail*/ + } + } else { + continue $SCOMP29_GEN4551_TUPLE_CONS_prod_LIST_VARlr_MVAR$_30;/*computeFail*/ + } + } else { + continue $SCOMP29_GEN4551_TUPLE_CONS_prod_LIST_VARlr_MVAR$_30;/*computeFail*/ + } + } else { + continue $SCOMP29_GEN4551_TUPLE_CONS_prod_LIST_VARlr_MVAR$_30;/*list match1*/ + } + } while(false); + continue $SCOMP29_GEN4551; + } else { + continue $SCOMP29_GEN4551; + } + } else { + continue $SCOMP29_GEN4551; + } + } else { + continue $SCOMP29_GEN4551; + } + } else { + continue $SCOMP29_GEN4551; + } + } else { + continue $SCOMP29_GEN4551; + } + } else { + continue $SCOMP29_GEN4551; + } + } else { + continue $SCOMP29_GEN4551; + } + } while(false); + + } else { + continue $SCOMP29_GEN4551; + } + } + + final ISetWriter $setwriter46 = (ISetWriter)$RVF.setWriter(); + ; + $SCOMP47_GEN4835: + for(IValue $elem49_for : ((ISet)($aset_add_aset(((ISet)($aset_add_aset(((ISet)prios_13),((ISet)lefts_4)))),((ISet)nons_10))))){ + IValue $elem49 = (IValue) $elem49_for; + final IValue $tuple_subject50 = ((IValue)($elem49)); + if($tuple_subject50 instanceof ITuple && ((ITuple)$tuple_subject50).arity() == 2){ + /*muExists*/$SCOMP47_GEN4835_TUPLE: + do { + final IConstructor $subject57 = ((IConstructor)($subscript_int(((IValue)($tuple_subject50)),0))); + if($has_type_and_arity($subject57, M_ParseTree.Production_prod_Symbol_list_Symbol_set_Attr, 3)){ + IValue $arg0_62 = (IValue)($aadt_subscript_int(((IConstructor)($subject57)),0)); + if($isComparable($arg0_62.getType(), M_ParseTree.ADT_Symbol)){ + if(true){ + IConstructor ss_28 = ((IConstructor)($arg0_62)); + IValue $arg1_59 = (IValue)($aadt_subscript_int(((IConstructor)($subject57)),1)); + if($isComparable($arg1_59.getType(), $T7)){ + final IList $subject60 = ((IList)($arg1_59)); + int $subject60_cursor = 0; + if($isSubtypeOf($subject60.getType(),$T7)){ + final int $subject60_len = (int)((IList)($subject60)).length(); + if($subject60_len >= 1){ + final int $pre_2961_start = (int)$subject60_cursor; + $SCOMP47_GEN4835_TUPLE_CONS_prod_LIST_MVARpre: + + for(int $pre_2961_len = 0; $pre_2961_len <= $subject60_len - $pre_2961_start - 1; $pre_2961_len += 1){ + IList pre_29 = ((IList)($subject60.sublist($pre_2961_start, $pre_2961_len))); + $subject60_cursor = $pre_2961_start + $pre_2961_len; + if($subject60_cursor < $subject60_len){ + IConstructor rr_30 = ((IConstructor)($alist_subscript_int(((IList)($subject60)),$subject60_cursor))); + $subject60_cursor += 1; + if($subject60_cursor == $subject60_len){ + IValue $arg2_58 = (IValue)($aadt_subscript_int(((IConstructor)($subject57)),2)); + if($isComparable($arg2_58.getType(), $T1)){ + IConstructor f_27 = ((IConstructor)($subscript_int(((IValue)($tuple_subject50)),0))); + final IConstructor $subject51 = ((IConstructor)($subscript_int(((IValue)($tuple_subject50)),1))); + if($has_type_and_arity($subject51, M_ParseTree.Production_prod_Symbol_list_Symbol_set_Attr, 3)){ + IValue $arg0_56 = (IValue)($aadt_subscript_int(((IConstructor)($subject51)),0)); + if($isComparable($arg0_56.getType(), M_ParseTree.ADT_Symbol)){ + if(true){ + IConstructor t_32 = ((IConstructor)($arg0_56)); + IValue $arg1_53 = (IValue)($aadt_subscript_int(((IConstructor)($subject51)),1)); + if($isComparable($arg1_53.getType(), $T7)){ + final IList $subject54 = ((IList)($arg1_53)); + int $subject54_cursor = 0; + if($isSubtypeOf($subject54.getType(),$T7)){ + final int $subject54_len = (int)((IList)($subject54)).length(); + if($subject54_len >= 1){ + if($subject54_cursor < $subject54_len){ + IConstructor lr_33 = ((IConstructor)($alist_subscript_int(((IList)($subject54)),$subject54_cursor))); + $subject54_cursor += 1; + final int $__155_start = (int)$subject54_cursor; + final int $__155_len = (int)$subject54_len - $__155_start - 0; + $subject54_cursor = $__155_start + $__155_len; + /*muExists*/$SCOMP47_GEN4835_TUPLE_CONS_prod_CONS_prod_LIST_VARlr_MVAR$_48: + do { + if($subject54_cursor == $subject54_len){ + IValue $arg2_52 = (IValue)($aadt_subscript_int(((IConstructor)($subject51)),2)); + if($isComparable($arg2_52.getType(), $T1)){ + IConstructor c_31 = ((IConstructor)($subscript_int(((IValue)($tuple_subject50)),1))); + if((((IBool)($me.same(((IConstructor)($arg0_62)), ((IConstructor)rr_30))))).getValue()){ + if((((IBool)($me.same(((IConstructor)($arg0_56)), ((IConstructor)lr_33))))).getValue()){ + if((((IBool)($me.same(((IConstructor)($arg0_62)), ((IConstructor)($arg0_56)))))).getValue()){ + $setwriter46.insert($RVF.tuple(((IConstructor)f_27), ((IInteger)($me.size(((IList)pre_29)))), ((IConstructor)c_31))); + + } else { + continue $SCOMP47_GEN4835_TUPLE_CONS_prod_CONS_prod_LIST_VARlr_MVAR$_48; + } + + } else { + continue $SCOMP47_GEN4835_TUPLE_CONS_prod_CONS_prod_LIST_VARlr_MVAR$_48; + } + + } else { + continue $SCOMP47_GEN4835_TUPLE_CONS_prod_CONS_prod_LIST_VARlr_MVAR$_48; + } + + } else { + continue $SCOMP47_GEN4835_TUPLE_CONS_prod_CONS_prod_LIST_VARlr_MVAR$_48;/*computeFail*/ + } + } else { + continue $SCOMP47_GEN4835_TUPLE_CONS_prod_CONS_prod_LIST_VARlr_MVAR$_48;/*list match1*/ + } + } while(false); + continue $SCOMP47_GEN4835_TUPLE_CONS_prod_LIST_MVARpre;/*computeFail*/ + } else { + continue $SCOMP47_GEN4835_TUPLE_CONS_prod_LIST_MVARpre;/*computeFail*/ + } + } else { + continue $SCOMP47_GEN4835_TUPLE_CONS_prod_LIST_MVARpre;/*computeFail*/ + } + } else { + continue $SCOMP47_GEN4835_TUPLE_CONS_prod_LIST_MVARpre;/*computeFail*/ + } + } else { + continue $SCOMP47_GEN4835_TUPLE_CONS_prod_LIST_MVARpre;/*computeFail*/ + } + } else { + continue $SCOMP47_GEN4835_TUPLE_CONS_prod_LIST_MVARpre;/*computeFail*/ + } + } else { + continue $SCOMP47_GEN4835_TUPLE_CONS_prod_LIST_MVARpre;/*computeFail*/ + } + } else { + continue $SCOMP47_GEN4835_TUPLE_CONS_prod_LIST_MVARpre;/*computeFail*/ + } + } else { + continue $SCOMP47_GEN4835_TUPLE_CONS_prod_LIST_MVARpre;/*computeFail*/ + } + } else { + continue $SCOMP47_GEN4835_TUPLE_CONS_prod_LIST_MVARpre;/*list match1*/ + } + } else { + continue $SCOMP47_GEN4835_TUPLE_CONS_prod_LIST_MVARpre;/*computeFail*/ + } + } + continue $SCOMP47_GEN4835; + + } else { + continue $SCOMP47_GEN4835; + } + } else { + continue $SCOMP47_GEN4835; + } + } else { + continue $SCOMP47_GEN4835; + } + } else { + continue $SCOMP47_GEN4835; + } + } else { + continue $SCOMP47_GEN4835; + } + } else { + continue $SCOMP47_GEN4835; + } + } while(false); + + } else { + continue $SCOMP47_GEN4835; + } + } + + result_1 = ((ISet)($aset_add_aset(((ISet)result_1),((ISet)($aset_add_aset(((ISet)($setwriter28.done())),((ISet)($setwriter46.done())))))))); + + } + continue FOR0; + + } while(false); + /* void: muCon([]) */final ISetWriter $setwriter64 = (ISetWriter)$RVF.setWriter(); + ; + $SCOMP65_GEN6440: + for(IValue $elem66_for : ((IConstructor)g_0)){ + IValue $elem66 = (IValue) $elem66_for; + $SCOMP65_GEN6440_DESC6440: + for(IValue $elem67 : new DescendantMatchIterator($elem66, + new DescendantDescriptorAlwaysTrue($RVF.bool(false)))){ + if($isComparable($elem67.getType(), M_ParseTree.ADT_Production)){ + if($isSubtypeOf($elem67.getType(),M_ParseTree.ADT_Production)){ + IConstructor p_34 = null; + if($is(((IConstructor)($elem67)),((IString)$constants.get(3)/*"prod"*/))){ + $setwriter_splice($setwriter64,$me.except(((IConstructor)($elem67)), ((IConstructor)g_0))); + + } else { + if($is(((IConstructor)($elem67)),((IString)$constants.get(4)/*"regular"*/))){ + $setwriter_splice($setwriter64,$me.except(((IConstructor)($elem67)), ((IConstructor)g_0))); + + } else { + continue $SCOMP65_GEN6440_DESC6440; + } + + } + + } else { + continue $SCOMP65_GEN6440_DESC6440; + } + } else { + continue $SCOMP65_GEN6440_DESC6440; + } + } + continue $SCOMP65_GEN6440; + + } + + return ((ISet)($aset_add_aset(((ISet)result_1),((ISet)($setwriter64.done()))))); + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/lang/rascal/grammar/definition/Priorities.rsc|(6491,45,<133,0>,<133,45>) + public ISet lang_rascal_grammar_definition_Priorities_extract$da2f1f8fc36631e7(IConstructor $__0){ + + + return ((ISet)$constants.get(0)/*{}*/); + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/lang/rascal/grammar/definition/Priorities.rsc|(6539,89,<135,0>,<136,30>) + public ISet lang_rascal_grammar_definition_Priorities_extract$e8d93f1e481f9bb2(IConstructor $0){ + + + if($has_type_and_arity($0, M_Type.Production_choice_Symbol_set_Production, 2)){ + IValue $arg0_72 = (IValue)($aadt_subscript_int(((IConstructor)$0),0)); + if($isComparable($arg0_72.getType(), M_ParseTree.ADT_Symbol)){ + IConstructor s_0 = null; + IValue $arg1_71 = (IValue)($aadt_subscript_int(((IConstructor)$0),1)); + if($isComparable($arg1_71.getType(), $T12)){ + ISet alts_1 = null; + final ISetWriter $setwriter68 = (ISetWriter)$RVF.setWriter(); + ; + $SCOMP69_GEN6617: + for(IValue $elem70_for : ((ISet)($arg1_71))){ + IConstructor $elem70 = (IConstructor) $elem70_for; + IConstructor a_2 = null; + $setwriter_splice($setwriter68,$me.extract(((IConstructor)($elem70)))); + + } + + return ((ISet)($setwriter68.done())); + + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/lang/rascal/grammar/definition/Priorities.rsc|(6736,124,<139,0>,<140,40>) + public ISet lang_rascal_grammar_definition_Priorities_extract$5fa91fb6afb2d93e(IConstructor $0){ + + + if($has_type_and_arity($0, M_ParseTree.Production_associativity_Symbol_Associativity_set_Production, 3)){ + IValue $arg0_79 = (IValue)($aadt_subscript_int(((IConstructor)$0),0)); + if($isComparable($arg0_79.getType(), M_ParseTree.ADT_Symbol)){ + if(true){ + IConstructor s_0 = null; + IValue $arg1_78 = (IValue)($aadt_subscript_int(((IConstructor)$0),1)); + if($isComparable($arg1_78.getType(), M_ParseTree.ADT_Associativity)){ + if(true){ + IConstructor a_1 = null; + IValue $arg2_77 = (IValue)($aadt_subscript_int(((IConstructor)$0),2)); + if($isComparable($arg2_77.getType(), $T12)){ + if(true){ + ISet alts_2 = null; + final ISetWriter $setwriter73 = (ISetWriter)$RVF.setWriter(); + ; + $SCOMP74_GEN6837: + for(IValue $elem75_for : ((ISet)($aset_product_aset(((ISet)($arg2_77)),((ISet)($arg2_77)))))){ + IValue $elem75 = (IValue) $elem75_for; + final IValue $tuple_subject76 = ((IValue)($elem75)); + if($tuple_subject76 instanceof ITuple && ((ITuple)$tuple_subject76).arity() == 2){ + /*muExists*/$SCOMP74_GEN6837_TUPLE: + do { + IConstructor x_3 = null; + IConstructor y_4 = null; + $setwriter73.insert($RVF.tuple(((IConstructor)($subscript_int(((IValue)($tuple_subject76)),0))), ((IConstructor)($arg1_78)), ((IConstructor)($subscript_int(((IValue)($tuple_subject76)),1))))); + + } while(false); + + } else { + continue $SCOMP74_GEN6837; + } + } + + return ((ISet)($setwriter73.done())); + + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/lang/rascal/grammar/definition/Priorities.rsc|(6862,144,<142,0>,<143,80>) + public ISet lang_rascal_grammar_definition_Priorities_extract$19a14b263980567d(IConstructor $0){ + + + if($has_type_and_arity($0, M_ParseTree.Production_priority_Symbol_list_Production, 2)){ + IValue $arg0_88 = (IValue)($aadt_subscript_int(((IConstructor)$0),0)); + if($isComparable($arg0_88.getType(), M_ParseTree.ADT_Symbol)){ + if(true){ + IConstructor s_0 = null; + IValue $arg1_87 = (IValue)($aadt_subscript_int(((IConstructor)$0),1)); + if($isComparable($arg1_87.getType(), $T16)){ + if(true){ + IList levels_1 = null; + final ISetWriter $setwriter80 = (ISetWriter)$RVF.setWriter(); + ; + /*muExists*/$SCOMP81: + do { + final IList $subject84 = ((IList)($arg1_87)); + int $subject84_cursor = 0; + if($isSubtypeOf($subject84.getType(),$T16)){ + final int $subject84_len = (int)((IList)($subject84)).length(); + if($subject84_len >= 2){ + final int $__186_start = (int)$subject84_cursor; + $SCOMP81_LIST_MVAR$_82: + + for(int $__186_len = 0; $__186_len <= $subject84_len - $__186_start - 2; $__186_len += 1){ + $subject84_cursor = $__186_start + $__186_len; + if($subject84_cursor < $subject84_len){ + IConstructor high_2 = ((IConstructor)($alist_subscript_int(((IList)($subject84)),$subject84_cursor))); + $subject84_cursor += 1; + if($subject84_cursor < $subject84_len){ + IConstructor low_3 = ((IConstructor)($alist_subscript_int(((IList)($subject84)),$subject84_cursor))); + $subject84_cursor += 1; + final int $__185_start = (int)$subject84_cursor; + final int $__185_len = (int)$subject84_len - $__185_start - 0; + $subject84_cursor = $__185_start + $__185_len; + /*muExists*/$SCOMP81_LIST_MVAR$_82_VARhigh_VARlow_MVAR$_83: + do { + if($subject84_cursor == $subject84_len){ + $setwriter_splice($setwriter80,$me.extract(((IConstructor)high_2), ((IConstructor)low_3))); + + } else { + continue $SCOMP81_LIST_MVAR$_82_VARhigh_VARlow_MVAR$_83;/*list match1*/ + } + } while(false); + continue $SCOMP81_LIST_MVAR$_82;/*computeFail*/ + } else { + continue $SCOMP81_LIST_MVAR$_82;/*computeFail*/ + } + } else { + continue $SCOMP81_LIST_MVAR$_82;/*computeFail*/ + } + } + + + } + + } + + } while(false); + return ((ISet)($setwriter80.done())); + + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/lang/rascal/grammar/definition/Priorities.rsc|(7201,80,<147,0>,<148,26>) + public ISet lang_rascal_grammar_definition_Priorities_extract$f29edf1180859f93(IConstructor high_0, IConstructor low_1){ + + + if($has_type_and_arity(high_0, M_ParseTree.Production_prod_Symbol_list_Symbol_set_Attr, 3)){ + IValue $arg0_94 = (IValue)($aadt_subscript_int(((IConstructor)high_0),0)); + if($isComparable($arg0_94.getType(), $T1)){ + IValue $arg1_93 = (IValue)($aadt_subscript_int(((IConstructor)high_0),1)); + if($isComparable($arg1_93.getType(), $T1)){ + IValue $arg2_92 = (IValue)($aadt_subscript_int(((IConstructor)high_0),2)); + if($isComparable($arg2_92.getType(), $T1)){ + if($has_type_and_arity(low_1, M_ParseTree.Production_prod_Symbol_list_Symbol_set_Attr, 3)){ + IValue $arg0_91 = (IValue)($aadt_subscript_int(((IConstructor)low_1),0)); + if($isComparable($arg0_91.getType(), $T1)){ + IValue $arg1_90 = (IValue)($aadt_subscript_int(((IConstructor)low_1),1)); + if($isComparable($arg1_90.getType(), $T1)){ + IValue $arg2_89 = (IValue)($aadt_subscript_int(((IConstructor)low_1),2)); + if($isComparable($arg2_89.getType(), $T1)){ + return ((ISet)($RVF.set(((IValue)($RVF.tuple(((IConstructor)high_0), ((IConstructor)($RVF.constructor(Associativity_prio_, new IValue[]{}))), ((IConstructor)low_1))))))); + + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/lang/rascal/grammar/definition/Priorities.rsc|(7285,108,<150,0>,<151,41>) + public ISet lang_rascal_grammar_definition_Priorities_extract$900bce388ccaedd1(IConstructor $0, IConstructor low_1){ + + + if($has_type_and_arity($0, M_Type.Production_choice_Symbol_set_Production, 2)){ + IValue $arg0_99 = (IValue)($aadt_subscript_int(((IConstructor)$0),0)); + if($isComparable($arg0_99.getType(), $T1)){ + IValue $arg1_98 = (IValue)($aadt_subscript_int(((IConstructor)$0),1)); + if($isComparable($arg1_98.getType(), $T12)){ + ISet alts_0 = null; + final ISetWriter $setwriter95 = (ISetWriter)$RVF.setWriter(); + ; + $SCOMP96_GEN7379: + for(IValue $elem97_for : ((ISet)($arg1_98))){ + IConstructor $elem97 = (IConstructor) $elem97_for; + IConstructor high_2 = null; + $setwriter_splice($setwriter95,$me.extract(((IConstructor)($elem97)), ((IConstructor)low_1))); + + } + + return ((ISet)($setwriter95.done())); + + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/lang/rascal/grammar/definition/Priorities.rsc|(7398,108,<153,0>,<154,40>) + public ISet lang_rascal_grammar_definition_Priorities_extract$c40ceff4a08d5372(IConstructor high_0, IConstructor $1){ + + + if($has_type_and_arity($1, M_Type.Production_choice_Symbol_set_Production, 2)){ + IValue $arg0_104 = (IValue)($aadt_subscript_int(((IConstructor)$1),0)); + if($isComparable($arg0_104.getType(), $T1)){ + IValue $arg1_103 = (IValue)($aadt_subscript_int(((IConstructor)$1),1)); + if($isComparable($arg1_103.getType(), $T12)){ + ISet alts_1 = null; + final ISetWriter $setwriter100 = (ISetWriter)$RVF.setWriter(); + ; + $SCOMP101_GEN7493: + for(IValue $elem102_for : ((ISet)($arg1_103))){ + IConstructor $elem102 = (IConstructor) $elem102_for; + IConstructor low_2 = null; + $setwriter_splice($setwriter100,$me.extract(((IConstructor)high_0), ((IConstructor)($elem102)))); + + } + + return ((ISet)($setwriter100.done())); + + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/lang/rascal/grammar/definition/Priorities.rsc|(7509,146,<156,0>,<158,15>) + public ISet lang_rascal_grammar_definition_Priorities_extract$76e3aed9aff9f2b4(IConstructor a_0, IConstructor low_2){ + + + if($has_type_and_arity(a_0, M_ParseTree.Production_associativity_Symbol_Associativity_set_Production, 3)){ + IValue $arg0_110 = (IValue)($aadt_subscript_int(((IConstructor)a_0),0)); + if($isComparable($arg0_110.getType(), $T1)){ + IValue $arg1_109 = (IValue)($aadt_subscript_int(((IConstructor)a_0),1)); + if($isComparable($arg1_109.getType(), $T1)){ + IValue $arg2_108 = (IValue)($aadt_subscript_int(((IConstructor)a_0),2)); + if($isComparable($arg2_108.getType(), $T12)){ + ISet alts_1 = null; + final ISetWriter $setwriter105 = (ISetWriter)$RVF.setWriter(); + ; + $SCOMP106_GEN7626: + for(IValue $elem107_for : ((ISet)($arg2_108))){ + IConstructor $elem107 = (IConstructor) $elem107_for; + IConstructor high_3 = null; + $setwriter_splice($setwriter105,$me.extract(((IConstructor)($elem107)), ((IConstructor)low_2))); + + } + + return ((ISet)($aset_add_aset(((ISet)($setwriter105.done())),((ISet)($me.extract(((IConstructor)a_0))))))); + + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/lang/rascal/grammar/definition/Priorities.rsc|(7660,146,<160,0>,<162,15>) + public ISet lang_rascal_grammar_definition_Priorities_extract$e523d0effa5fdd4c(IConstructor high_0, IConstructor a_1){ + + + if($has_type_and_arity(a_1, M_ParseTree.Production_associativity_Symbol_Associativity_set_Production, 3)){ + IValue $arg0_116 = (IValue)($aadt_subscript_int(((IConstructor)a_1),0)); + if($isComparable($arg0_116.getType(), $T1)){ + IValue $arg1_115 = (IValue)($aadt_subscript_int(((IConstructor)a_1),1)); + if($isComparable($arg1_115.getType(), $T1)){ + IValue $arg2_114 = (IValue)($aadt_subscript_int(((IConstructor)a_1),2)); + if($isComparable($arg2_114.getType(), $T12)){ + ISet alts_2 = null; + final ISetWriter $setwriter111 = (ISetWriter)$RVF.setWriter(); + ; + $SCOMP112_GEN7778: + for(IValue $elem113_for : ((ISet)($arg2_114))){ + IConstructor $elem113 = (IConstructor) $elem113_for; + IConstructor low_3 = null; + $setwriter_splice($setwriter111,$me.extract(((IConstructor)high_0), ((IConstructor)($elem113)))); + + } + + return ((ISet)($aset_add_aset(((ISet)($setwriter111.done())),((ISet)($me.extract(((IConstructor)a_1))))))); + + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/lang/rascal/grammar/definition/Priorities.rsc|(7810,146,<164,0>,<166,41>) + public ISet lang_rascal_grammar_definition_Priorities_extract$9e6eea9680f2b4fa(IConstructor p_0, IConstructor low_2){ + + + if($has_type_and_arity(p_0, M_ParseTree.Production_priority_Symbol_list_Production, 2)){ + IValue $arg0_121 = (IValue)($aadt_subscript_int(((IConstructor)p_0),0)); + if($isComparable($arg0_121.getType(), M_ParseTree.ADT_Symbol)){ + IValue $arg1_120 = (IValue)($aadt_subscript_int(((IConstructor)p_0),1)); + if($isComparable($arg1_120.getType(), $T16)){ + IList alts_1 = null; + final ISetWriter $setwriter117 = (ISetWriter)$RVF.setWriter(); + ; + $SCOMP118_GEN7942: + for(IValue $elem119_for : ((IList)($arg1_120))){ + IConstructor $elem119 = (IConstructor) $elem119_for; + IConstructor high_3 = null; + $setwriter_splice($setwriter117,$me.extract(((IConstructor)($elem119)), ((IConstructor)low_2))); + + } + + return ((ISet)($aset_add_aset(((ISet)($me.extract(((IConstructor)p_0)))),((ISet)($setwriter117.done()))))); + + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/lang/rascal/grammar/definition/Priorities.rsc|(7961,146,<168,0>,<170,40>) + public ISet lang_rascal_grammar_definition_Priorities_extract$364798eeb6e85038(IConstructor high_0, IConstructor p_1){ + + + if($has_type_and_arity(p_1, M_ParseTree.Production_priority_Symbol_list_Production, 2)){ + IValue $arg0_126 = (IValue)($aadt_subscript_int(((IConstructor)p_1),0)); + if($isComparable($arg0_126.getType(), M_ParseTree.ADT_Symbol)){ + IValue $arg1_125 = (IValue)($aadt_subscript_int(((IConstructor)p_1),1)); + if($isComparable($arg1_125.getType(), $T16)){ + IList alts_2 = null; + final ISetWriter $setwriter122 = (ISetWriter)$RVF.setWriter(); + ; + $SCOMP123_GEN8094: + for(IValue $elem124_for : ((IList)($arg1_125))){ + IConstructor $elem124 = (IConstructor) $elem124_for; + IConstructor low_3 = null; + $setwriter_splice($setwriter122,$me.extract(((IConstructor)high_0), ((IConstructor)($elem124)))); + + } + + return ((ISet)($aset_add_aset(((ISet)($me.extract(((IConstructor)p_1)))),((ISet)($setwriter122.done()))))); + + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/lang/rascal/grammar/definition/Priorities.rsc|(8117,506,<173,0>,<178,80>) + public ISet lang_rascal_grammar_definition_Priorities_except$c747c63a3928b276(IConstructor p_0, IConstructor g_2){ + + + if($has_type_and_arity(p_0, M_ParseTree.Production_prod_Symbol_list_Symbol_set_Attr, 3)){ + IValue $arg0_144 = (IValue)($aadt_subscript_int(((IConstructor)p_0),0)); + if($isComparable($arg0_144.getType(), M_ParseTree.ADT_Symbol)){ + IValue $arg1_143 = (IValue)($aadt_subscript_int(((IConstructor)p_0),1)); + if($isComparable($arg1_143.getType(), $T7)){ + if(true){ + IList lhs_1 = ((IList)($arg1_143)); + IValue $arg2_142 = (IValue)($aadt_subscript_int(((IConstructor)p_0),2)); + if($isComparable($arg2_142.getType(), $T17)){ + final ISetWriter $setwriter127 = (ISetWriter)$RVF.setWriter(); + ; + $SCOMP128_GEN8470: + for(IValue $elem141_for : ((IList)($me.index(((IList)($arg1_143)))))){ + IInteger $elem141 = (IInteger) $elem141_for; + IInteger i_3 = ((IInteger)($elem141)); + final IConstructor $subject_val138 = ((IConstructor)(M_lang_rascal_grammar_definition_Symbols.delabel(((IConstructor)($alist_subscript_int(((IList)($arg1_143)),((IInteger)i_3).intValue())))))); + if($has_type_and_arity($subject_val138, M_ParseTree.Symbol_conditional_Symbol_set_Condition, 2)){ + IValue $arg0_140 = (IValue)($aadt_subscript_int(((IConstructor)($subject_val138)),0)); + if($isComparable($arg0_140.getType(), M_ParseTree.ADT_Symbol)){ + IConstructor s_4 = ((IConstructor)($arg0_140)); + IValue $arg1_139 = (IValue)($aadt_subscript_int(((IConstructor)($subject_val138)),1)); + if($isComparable($arg1_139.getType(), $T4)){ + ISet excepts_5 = ((ISet)($arg1_139)); + if((((IBool)($me.isdef(((IConstructor)g_2), ((IConstructor)($arg0_140)))))).getValue()){ + $SCOMP128_GEN8470_GEN8562: + for(IValue $elem136_for : ((ISet)($arg1_139))){ + IConstructor $elem136 = (IConstructor) $elem136_for; + if($has_type_and_arity($elem136, M_ParseTree.Condition_except_str, 1)){ + IValue $arg0_137 = (IValue)($aadt_subscript_int(((IConstructor)($elem136)),0)); + if($isComparable($arg0_137.getType(), $T6)){ + IString c_6 = null; + final IConstructor $subject_val129 = ((IConstructor)($amap_subscript(((IMap)(((IMap)($aadt_get_field(((IConstructor)g_2), "rules"))))),((IConstructor)($arg0_140))))); + $SCOMP128_GEN8470_GEN8562_CONS_except_DESC8584: + for(IValue $elem130 : new DescendantMatchIterator($subject_val129, + new DescendantDescriptorAlwaysTrue($RVF.bool(false)))){ + if($isComparable($elem130.getType(), M_ParseTree.ADT_Production)){ + if($has_type_and_arity($elem130, M_ParseTree.Production_prod_Symbol_list_Symbol_set_Attr, 3)){ + IValue $arg0_133 = (IValue)($subscript_int(((IValue)($elem130)),0)); + if($isComparable($arg0_133.getType(), M_ParseTree.ADT_Symbol)){ + if($has_type_and_arity($arg0_133, M_Type.Symbol_label_str_Symbol, 2)){ + IValue $arg0_135 = (IValue)($aadt_subscript_int(((IConstructor)($arg0_133)),0)); + if($isComparable($arg0_135.getType(), $T6)){ + if(($arg0_137 != null)){ + if($arg0_137.match($arg0_135)){ + IValue $arg1_134 = (IValue)($aadt_subscript_int(((IConstructor)($arg0_133)),1)); + if($isComparable($arg1_134.getType(), M_ParseTree.ADT_Symbol)){ + if(($arg0_140 != null)){ + if($arg0_140.match($arg1_134)){ + IValue $arg1_132 = (IValue)($subscript_int(((IValue)($elem130)),1)); + if($isComparable($arg1_132.getType(), $T1)){ + IValue $arg2_131 = (IValue)($subscript_int(((IValue)($elem130)),2)); + if($isComparable($arg2_131.getType(), $T1)){ + IConstructor q_7 = ((IConstructor)($elem130)); + $setwriter127.insert($RVF.tuple(((IConstructor)p_0), ((IInteger)i_3), ((IConstructor)q_7))); + + } else { + continue $SCOMP128_GEN8470_GEN8562_CONS_except_DESC8584; + } + } else { + continue $SCOMP128_GEN8470_GEN8562_CONS_except_DESC8584; + } + } else { + continue $SCOMP128_GEN8470_GEN8562_CONS_except_DESC8584; + } + } else { + $arg0_140 = ((IValue)($arg1_134)); + IValue $arg1_132 = (IValue)($subscript_int(((IValue)($elem130)),1)); + if($isComparable($arg1_132.getType(), $T1)){ + IValue $arg2_131 = (IValue)($subscript_int(((IValue)($elem130)),2)); + if($isComparable($arg2_131.getType(), $T1)){ + IConstructor q_7 = ((IConstructor)($elem130)); + $setwriter127.insert($RVF.tuple(((IConstructor)p_0), ((IInteger)i_3), ((IConstructor)q_7))); + + } else { + continue $SCOMP128_GEN8470_GEN8562_CONS_except_DESC8584; + } + } else { + continue $SCOMP128_GEN8470_GEN8562_CONS_except_DESC8584; + } + } + } else { + continue $SCOMP128_GEN8470_GEN8562_CONS_except_DESC8584; + } + } else { + continue $SCOMP128_GEN8470_GEN8562_CONS_except_DESC8584; + } + } else { + $arg0_137 = ((IValue)($arg0_135)); + IValue $arg1_134 = (IValue)($aadt_subscript_int(((IConstructor)($arg0_133)),1)); + if($isComparable($arg1_134.getType(), M_ParseTree.ADT_Symbol)){ + if(($arg0_140 != null)){ + if($arg0_140.match($arg1_134)){ + IValue $arg1_132 = (IValue)($subscript_int(((IValue)($elem130)),1)); + if($isComparable($arg1_132.getType(), $T1)){ + IValue $arg2_131 = (IValue)($subscript_int(((IValue)($elem130)),2)); + if($isComparable($arg2_131.getType(), $T1)){ + IConstructor q_7 = ((IConstructor)($elem130)); + $setwriter127.insert($RVF.tuple(((IConstructor)p_0), ((IInteger)i_3), ((IConstructor)q_7))); + + } else { + continue $SCOMP128_GEN8470_GEN8562_CONS_except_DESC8584; + } + } else { + continue $SCOMP128_GEN8470_GEN8562_CONS_except_DESC8584; + } + } else { + continue $SCOMP128_GEN8470_GEN8562_CONS_except_DESC8584; + } + } else { + $arg0_140 = ((IValue)($arg1_134)); + IValue $arg1_132 = (IValue)($subscript_int(((IValue)($elem130)),1)); + if($isComparable($arg1_132.getType(), $T1)){ + IValue $arg2_131 = (IValue)($subscript_int(((IValue)($elem130)),2)); + if($isComparable($arg2_131.getType(), $T1)){ + IConstructor q_7 = ((IConstructor)($elem130)); + $setwriter127.insert($RVF.tuple(((IConstructor)p_0), ((IInteger)i_3), ((IConstructor)q_7))); + + } else { + continue $SCOMP128_GEN8470_GEN8562_CONS_except_DESC8584; + } + } else { + continue $SCOMP128_GEN8470_GEN8562_CONS_except_DESC8584; + } + } + } else { + continue $SCOMP128_GEN8470_GEN8562_CONS_except_DESC8584; + } + } + } else { + continue $SCOMP128_GEN8470_GEN8562_CONS_except_DESC8584; + } + } else { + continue $SCOMP128_GEN8470_GEN8562_CONS_except_DESC8584; + } + } else { + continue $SCOMP128_GEN8470_GEN8562_CONS_except_DESC8584; + } + } else { + continue $SCOMP128_GEN8470_GEN8562_CONS_except_DESC8584; + } + } else { + continue $SCOMP128_GEN8470_GEN8562_CONS_except_DESC8584; + } + } + continue $SCOMP128_GEN8470_GEN8562; + + } else { + continue $SCOMP128_GEN8470_GEN8562; + } + } else { + continue $SCOMP128_GEN8470_GEN8562; + } + } + continue $SCOMP128_GEN8470; + + } else { + continue $SCOMP128_GEN8470; + } + + } else { + continue $SCOMP128_GEN8470; + } + } else { + continue $SCOMP128_GEN8470; + } + } else { + continue $SCOMP128_GEN8470; + } + } + + return ((ISet)($setwriter127.done())); + + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/lang/rascal/grammar/definition/Priorities.rsc|(8679,46,<181,0>,<181,46>) + public IBool lang_rascal_grammar_definition_Priorities_isdef$bf6946c1ef3bec76(IConstructor g_0, IConstructor s_1){ + + + return $RVF.bool($is_defined_value($guarded_map_subscript(((IMap)(((IMap)($aadt_get_field(((IConstructor)g_0), "rules"))))),((IConstructor)s_1)))); + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/lang/rascal/grammar/definition/Priorities.rsc|(8780,221,<184,0>,<191,1>) + public IConstructor lang_rascal_grammar_definition_Priorities_find$90024f178f1ba5eb(IString c_0, IConstructor s_1, IConstructor t_2, IConstructor g_3){ + + + GuardedIValue guarded5 = $guarded_map_subscript(((IMap)(((IMap)($aadt_get_field(((IConstructor)g_3), "rules"))))),((IConstructor)t_2)); + IConstructor rules_4 = null; + if($is_defined_value(guarded5)){ + rules_4 = ((IConstructor)(((IConstructor)$get_defined_value(guarded5)))); + + } else { + rules_4 = ((IConstructor)($me.choice(((IConstructor)s_1), ((ISet)$constants.get(0)/*{}*/)))); + + }/*muExists*/IF6: + do { + IF6_DESC8887: + for(IValue $elem145 : new DescendantMatchIterator(rules_4, + new DescendantDescriptorAlwaysTrue($RVF.bool(false)))){ + if($isComparable($elem145.getType(), M_ParseTree.ADT_Production)){ + if($isSubtypeOf($elem145.getType(),M_ParseTree.ADT_Production)){ + if($has_type_and_arity($elem145, M_ParseTree.Production_prod_Symbol_list_Symbol_set_Attr, 3)){ + IValue $arg0_148 = (IValue)($subscript_int(((IValue)($elem145)),0)); + if($isComparable($arg0_148.getType(), M_ParseTree.ADT_Symbol)){ + if($has_type_and_arity($arg0_148, M_Type.Symbol_label_str_Symbol, 2)){ + IValue $arg0_150 = (IValue)($aadt_subscript_int(((IConstructor)($arg0_148)),0)); + if($isComparable($arg0_150.getType(), $T6)){ + if((c_0 != null)){ + if(c_0.match($arg0_150)){ + IValue $arg1_149 = (IValue)($aadt_subscript_int(((IConstructor)($arg0_148)),1)); + if($isComparable($arg1_149.getType(), M_ParseTree.ADT_Symbol)){ + if((t_2 != null)){ + if(t_2.match($arg1_149)){ + IValue $arg1_147 = (IValue)($subscript_int(((IValue)($elem145)),1)); + if($isComparable($arg1_147.getType(), $T1)){ + IValue $arg2_146 = (IValue)($subscript_int(((IValue)($elem145)),2)); + if($isComparable($arg2_146.getType(), $T1)){ + IConstructor q_5 = ((IConstructor)($elem145)); + return ((IConstructor)($RVF.constructor(Maybe_Production_just_Production, new IValue[]{((IConstructor)q_5)}))); + + } else { + continue IF6_DESC8887; + } + } else { + continue IF6_DESC8887; + } + } else { + continue IF6_DESC8887; + } + } else { + t_2 = ((IConstructor)($arg1_149)); + IValue $arg1_147 = (IValue)($subscript_int(((IValue)($elem145)),1)); + if($isComparable($arg1_147.getType(), $T1)){ + IValue $arg2_146 = (IValue)($subscript_int(((IValue)($elem145)),2)); + if($isComparable($arg2_146.getType(), $T1)){ + IConstructor q_5 = ((IConstructor)($elem145)); + return ((IConstructor)($RVF.constructor(Maybe_Production_just_Production, new IValue[]{((IConstructor)q_5)}))); + + } else { + continue IF6_DESC8887; + } + } else { + continue IF6_DESC8887; + } + } + } else { + continue IF6_DESC8887; + } + } else { + continue IF6_DESC8887; + } + } else { + c_0 = ((IString)($arg0_150)); + IValue $arg1_149 = (IValue)($aadt_subscript_int(((IConstructor)($arg0_148)),1)); + if($isComparable($arg1_149.getType(), M_ParseTree.ADT_Symbol)){ + if((t_2 != null)){ + if(t_2.match($arg1_149)){ + IValue $arg1_147 = (IValue)($subscript_int(((IValue)($elem145)),1)); + if($isComparable($arg1_147.getType(), $T1)){ + IValue $arg2_146 = (IValue)($subscript_int(((IValue)($elem145)),2)); + if($isComparable($arg2_146.getType(), $T1)){ + IConstructor q_5 = ((IConstructor)($elem145)); + return ((IConstructor)($RVF.constructor(Maybe_Production_just_Production, new IValue[]{((IConstructor)q_5)}))); + + } else { + continue IF6_DESC8887; + } + } else { + continue IF6_DESC8887; + } + } else { + continue IF6_DESC8887; + } + } else { + t_2 = ((IConstructor)($arg1_149)); + IValue $arg1_147 = (IValue)($subscript_int(((IValue)($elem145)),1)); + if($isComparable($arg1_147.getType(), $T1)){ + IValue $arg2_146 = (IValue)($subscript_int(((IValue)($elem145)),2)); + if($isComparable($arg2_146.getType(), $T1)){ + IConstructor q_5 = ((IConstructor)($elem145)); + return ((IConstructor)($RVF.constructor(Maybe_Production_just_Production, new IValue[]{((IConstructor)q_5)}))); + + } else { + continue IF6_DESC8887; + } + } else { + continue IF6_DESC8887; + } + } + } else { + continue IF6_DESC8887; + } + } + } else { + continue IF6_DESC8887; + } + } else { + continue IF6_DESC8887; + } + } else { + continue IF6_DESC8887; + } + } else { + continue IF6_DESC8887; + } + } else { + continue IF6_DESC8887; + } + } else { + continue IF6_DESC8887; + } + } + + + } while(false); + return ((IConstructor)($RVF.constructor(M_util_Maybe.Maybe_1_nothing_, new IValue[]{}))); + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/lang/rascal/grammar/definition/Priorities.rsc|(9003,1564,<193,0>,<218,1>) + public ISet lang_rascal_grammar_definition_Priorities_except$777b44f0a7dd4b2b(IConstructor p_0, IConstructor g_2){ + + + if($has_type_and_arity(p_0, M_ParseTree.Production_regular_Symbol, 1)){ + IValue $arg0_264 = (IValue)($aadt_subscript_int(((IConstructor)p_0),0)); + if($isComparable($arg0_264.getType(), M_ParseTree.ADT_Symbol)){ + if(true){ + IConstructor s_1 = ((IConstructor)($arg0_264)); + final IConstructor $switchVal151 = ((IConstructor)($arg0_264)); + boolean noCaseMatched_$switchVal151 = true; + SWITCH7: switch(Fingerprint.getFingerprint($switchVal151)){ + + case -964239440: + if(noCaseMatched_$switchVal151){ + noCaseMatched_$switchVal151 = false; + if($isSubtypeOf($switchVal151.getType(),M_ParseTree.ADT_Symbol)){ + /*muExists*/CASE_964239440_5: + do { + if($has_type_and_arity($switchVal151, M_ParseTree.Symbol_iter_star_seps_Symbol_list_Symbol, 2)){ + IValue $arg0_228 = (IValue)($aadt_subscript_int(((IConstructor)($switchVal151)),0)); + if($isComparable($arg0_228.getType(), M_ParseTree.ADT_Symbol)){ + if($has_type_and_arity($arg0_228, M_ParseTree.Symbol_conditional_Symbol_set_Condition, 2)){ + IValue $arg0_230 = (IValue)($aadt_subscript_int(((IConstructor)($arg0_228)),0)); + if($isComparable($arg0_230.getType(), M_ParseTree.ADT_Symbol)){ + IConstructor t_31 = ((IConstructor)($arg0_230)); + IValue $arg1_229 = (IValue)($aadt_subscript_int(((IConstructor)($arg0_228)),1)); + if($isComparable($arg1_229.getType(), $T4)){ + ISet cs_32 = ((ISet)($arg1_229)); + IValue $arg1_227 = (IValue)($aadt_subscript_int(((IConstructor)($switchVal151)),1)); + if($isComparable($arg1_227.getType(), $T7)){ + IList ss_33 = ((IList)($arg1_227)); + final ISetWriter $setwriter211 = (ISetWriter)$RVF.setWriter(); + ; + /*muExists*/$SCOMP212_GEN9921_CONS_except: + do { + $SCOMP212_GEN9921: + for(IValue $elem215_for : ((ISet)($arg1_229))){ + IConstructor $elem215 = (IConstructor) $elem215_for; + if($has_type_and_arity($elem215, M_ParseTree.Condition_except_str, 1)){ + IValue $arg0_216 = (IValue)($aadt_subscript_int(((IConstructor)($elem215)),0)); + if($isComparable($arg0_216.getType(), $T6)){ + IString c_34 = ((IString)($arg0_216)); + final IConstructor $subject_val213 = ((IConstructor)($me.find(((IString)($arg0_216)), ((IConstructor)($arg0_264)), ((IConstructor)($arg0_230)), ((IConstructor)g_2)))); + if($has_type_and_arity($subject_val213, Maybe_Production_just_Production, 1)){ + IValue $arg0_214 = (IValue)($aadt_subscript_int(((IConstructor)($subject_val213)),0)); + if($isComparable($arg0_214.getType(), M_ParseTree.ADT_Production)){ + IConstructor q_35 = null; + $setwriter211.insert($RVF.tuple(((IConstructor)p_0), ((IInteger)$constants.get(2)/*0*/), ((IConstructor)($arg0_214)))); + + } else { + continue $SCOMP212_GEN9921; + } + } else { + continue $SCOMP212_GEN9921; + } + } else { + continue $SCOMP212_GEN9921; + } + } else { + continue $SCOMP212_GEN9921; + } + } + + + } while(false); + final ISetWriter $setwriter217 = (ISetWriter)$RVF.setWriter(); + ; + $SCOMP218_GEN10001: + for(IValue $elem226_for : ((IList)($me.index(((IList)($arg1_227)))))){ + IInteger $elem226 = (IInteger) $elem226_for; + IInteger i_36 = ((IInteger)($elem226)); + final IConstructor $subject_val223 = ((IConstructor)($alist_subscript_int(((IList)($arg1_227)),((IInteger)i_36).intValue()))); + if($has_type_and_arity($subject_val223, M_ParseTree.Symbol_conditional_Symbol_set_Condition, 2)){ + IValue $arg0_225 = (IValue)($aadt_subscript_int(((IConstructor)($subject_val223)),0)); + if($isComparable($arg0_225.getType(), M_ParseTree.ADT_Symbol)){ + IConstructor u_37 = ((IConstructor)($arg0_225)); + IValue $arg1_224 = (IValue)($aadt_subscript_int(((IConstructor)($subject_val223)),1)); + if($isComparable($arg1_224.getType(), $T4)){ + ISet css_38 = ((ISet)($arg1_224)); + $SCOMP218_GEN10001_GEN10046: + for(IValue $elem221_for : ((ISet)($arg1_224))){ + IConstructor $elem221 = (IConstructor) $elem221_for; + if($has_type_and_arity($elem221, M_ParseTree.Condition_except_str, 1)){ + IValue $arg0_222 = (IValue)($aadt_subscript_int(((IConstructor)($elem221)),0)); + if($isComparable($arg0_222.getType(), $T6)){ + IString ds_39 = ((IString)($arg0_222)); + final IConstructor $subject_val219 = ((IConstructor)($me.find(((IString)($arg0_222)), ((IConstructor)($arg0_264)), ((IConstructor)($arg0_225)), ((IConstructor)g_2)))); + if($has_type_and_arity($subject_val219, Maybe_Production_just_Production, 1)){ + IValue $arg0_220 = (IValue)($aadt_subscript_int(((IConstructor)($subject_val219)),0)); + if($isComparable($arg0_220.getType(), M_ParseTree.ADT_Production)){ + IConstructor q_40 = null; + $setwriter217.insert($RVF.tuple(((IConstructor)p_0), ((IInteger)($aint_add_aint(((IInteger)i_36),((IInteger)$constants.get(1)/*1*/)))), ((IConstructor)($arg0_220)))); + + } else { + continue $SCOMP218_GEN10001_GEN10046; + } + } else { + continue $SCOMP218_GEN10001_GEN10046; + } + } else { + continue $SCOMP218_GEN10001_GEN10046; + } + } else { + continue $SCOMP218_GEN10001_GEN10046; + } + } + continue $SCOMP218_GEN10001; + + } else { + continue $SCOMP218_GEN10001; + } + } else { + continue $SCOMP218_GEN10001; + } + } else { + continue $SCOMP218_GEN10001; + } + } + + return ((ISet)($aset_add_aset(((ISet)($setwriter211.done())),((ISet)($setwriter217.done()))))); + + } + + } + + } + + } + + } + + } + + } while(false); + + } + if($isSubtypeOf($switchVal151.getType(),M_ParseTree.ADT_Symbol)){ + /*muExists*/CASE_964239440_6: + do { + if($has_type_and_arity($switchVal151, M_ParseTree.Symbol_iter_star_seps_Symbol_list_Symbol, 2)){ + IValue $arg0_242 = (IValue)($aadt_subscript_int(((IConstructor)($switchVal151)),0)); + if($isComparable($arg0_242.getType(), $T1)){ + IValue $arg1_241 = (IValue)($aadt_subscript_int(((IConstructor)($switchVal151)),1)); + if($isComparable($arg1_241.getType(), $T7)){ + IList ss_41 = ((IList)($arg1_241)); + final ISetWriter $setwriter231 = (ISetWriter)$RVF.setWriter(); + ; + $SCOMP232_GEN10163: + for(IValue $elem240_for : ((IList)($me.index(((IList)($arg1_241)))))){ + IInteger $elem240 = (IInteger) $elem240_for; + IInteger i_42 = ((IInteger)($elem240)); + final IConstructor $subject_val237 = ((IConstructor)($alist_subscript_int(((IList)($arg1_241)),((IInteger)i_42).intValue()))); + if($has_type_and_arity($subject_val237, M_ParseTree.Symbol_conditional_Symbol_set_Condition, 2)){ + IValue $arg0_239 = (IValue)($aadt_subscript_int(((IConstructor)($subject_val237)),0)); + if($isComparable($arg0_239.getType(), M_ParseTree.ADT_Symbol)){ + IConstructor u_43 = ((IConstructor)($arg0_239)); + IValue $arg1_238 = (IValue)($aadt_subscript_int(((IConstructor)($subject_val237)),1)); + if($isComparable($arg1_238.getType(), $T4)){ + ISet css_44 = ((ISet)($arg1_238)); + $SCOMP232_GEN10163_GEN10208: + for(IValue $elem235_for : ((ISet)($arg1_238))){ + IConstructor $elem235 = (IConstructor) $elem235_for; + if($has_type_and_arity($elem235, M_ParseTree.Condition_except_str, 1)){ + IValue $arg0_236 = (IValue)($aadt_subscript_int(((IConstructor)($elem235)),0)); + if($isComparable($arg0_236.getType(), $T6)){ + IString ds_45 = ((IString)($arg0_236)); + final IConstructor $subject_val233 = ((IConstructor)($me.find(((IString)($arg0_236)), ((IConstructor)($arg0_264)), ((IConstructor)($arg0_239)), ((IConstructor)g_2)))); + if($has_type_and_arity($subject_val233, Maybe_Production_just_Production, 1)){ + IValue $arg0_234 = (IValue)($aadt_subscript_int(((IConstructor)($subject_val233)),0)); + if($isComparable($arg0_234.getType(), M_ParseTree.ADT_Production)){ + IConstructor q_46 = null; + $setwriter231.insert($RVF.tuple(((IConstructor)p_0), ((IInteger)($aint_add_aint(((IInteger)i_42),((IInteger)$constants.get(1)/*1*/)))), ((IConstructor)($arg0_234)))); + + } else { + continue $SCOMP232_GEN10163_GEN10208; + } + } else { + continue $SCOMP232_GEN10163_GEN10208; + } + } else { + continue $SCOMP232_GEN10163_GEN10208; + } + } else { + continue $SCOMP232_GEN10163_GEN10208; + } + } + continue $SCOMP232_GEN10163; + + } else { + continue $SCOMP232_GEN10163; + } + } else { + continue $SCOMP232_GEN10163; + } + } else { + continue $SCOMP232_GEN10163; + } + } + + return ((ISet)($setwriter231.done())); + + } + + } + + } + + } while(false); + + } + + } + + + case 25942208: + if(noCaseMatched_$switchVal151){ + noCaseMatched_$switchVal151 = false; + if($isSubtypeOf($switchVal151.getType(),M_ParseTree.ADT_Symbol)){ + /*muExists*/CASE_25942208_2: + do { + if($has_type_and_arity($switchVal151, M_ParseTree.Symbol_iter_Symbol, 1)){ + IValue $arg0_176 = (IValue)($aadt_subscript_int(((IConstructor)($switchVal151)),0)); + if($isComparable($arg0_176.getType(), M_ParseTree.ADT_Symbol)){ + if($has_type_and_arity($arg0_176, M_ParseTree.Symbol_conditional_Symbol_set_Condition, 2)){ + IValue $arg0_178 = (IValue)($aadt_subscript_int(((IConstructor)($arg0_176)),0)); + if($isComparable($arg0_178.getType(), M_ParseTree.ADT_Symbol)){ + IConstructor t_11 = ((IConstructor)($arg0_178)); + IValue $arg1_177 = (IValue)($aadt_subscript_int(((IConstructor)($arg0_176)),1)); + if($isComparable($arg1_177.getType(), $T4)){ + ISet cs_12 = ((ISet)($arg1_177)); + final ISetWriter $setwriter170 = (ISetWriter)$RVF.setWriter(); + ; + /*muExists*/$SCOMP171_GEN9385_CONS_except: + do { + $SCOMP171_GEN9385: + for(IValue $elem174_for : ((ISet)($arg1_177))){ + IConstructor $elem174 = (IConstructor) $elem174_for; + if($has_type_and_arity($elem174, M_ParseTree.Condition_except_str, 1)){ + IValue $arg0_175 = (IValue)($aadt_subscript_int(((IConstructor)($elem174)),0)); + if($isComparable($arg0_175.getType(), $T6)){ + IString c_13 = ((IString)($arg0_175)); + final IConstructor $subject_val172 = ((IConstructor)($me.find(((IString)($arg0_175)), ((IConstructor)($arg0_264)), ((IConstructor)($arg0_178)), ((IConstructor)g_2)))); + if($has_type_and_arity($subject_val172, Maybe_Production_just_Production, 1)){ + IValue $arg0_173 = (IValue)($aadt_subscript_int(((IConstructor)($subject_val172)),0)); + if($isComparable($arg0_173.getType(), M_ParseTree.ADT_Production)){ + IConstructor q_14 = null; + $setwriter170.insert($RVF.tuple(((IConstructor)p_0), ((IInteger)$constants.get(2)/*0*/), ((IConstructor)($arg0_173)))); + + } else { + continue $SCOMP171_GEN9385; + } + } else { + continue $SCOMP171_GEN9385; + } + } else { + continue $SCOMP171_GEN9385; + } + } else { + continue $SCOMP171_GEN9385; + } + } + + + } while(false); + return ((ISet)($setwriter170.done())); + + } + + } + + } + + } + + } + + } while(false); + + } + + } + + + case 882072: + if(noCaseMatched_$switchVal151){ + noCaseMatched_$switchVal151 = false; + if($isSubtypeOf($switchVal151.getType(),M_ParseTree.ADT_Symbol)){ + /*muExists*/CASE_882072_0: + do { + if($has_type_and_arity($switchVal151, M_ParseTree.Symbol_opt_Symbol, 1)){ + IValue $arg0_158 = (IValue)($aadt_subscript_int(((IConstructor)($switchVal151)),0)); + if($isComparable($arg0_158.getType(), M_ParseTree.ADT_Symbol)){ + if($has_type_and_arity($arg0_158, M_ParseTree.Symbol_conditional_Symbol_set_Condition, 2)){ + IValue $arg0_160 = (IValue)($aadt_subscript_int(((IConstructor)($arg0_158)),0)); + if($isComparable($arg0_160.getType(), M_ParseTree.ADT_Symbol)){ + IConstructor t_3 = ((IConstructor)($arg0_160)); + IValue $arg1_159 = (IValue)($aadt_subscript_int(((IConstructor)($arg0_158)),1)); + if($isComparable($arg1_159.getType(), $T4)){ + ISet cs_4 = ((ISet)($arg1_159)); + final ISetWriter $setwriter152 = (ISetWriter)$RVF.setWriter(); + ; + /*muExists*/$SCOMP153_GEN9150_CONS_except: + do { + $SCOMP153_GEN9150: + for(IValue $elem156_for : ((ISet)($arg1_159))){ + IConstructor $elem156 = (IConstructor) $elem156_for; + if($has_type_and_arity($elem156, M_ParseTree.Condition_except_str, 1)){ + IValue $arg0_157 = (IValue)($aadt_subscript_int(((IConstructor)($elem156)),0)); + if($isComparable($arg0_157.getType(), $T6)){ + IString c_5 = ((IString)($arg0_157)); + final IConstructor $subject_val154 = ((IConstructor)($me.find(((IString)($arg0_157)), ((IConstructor)($arg0_264)), ((IConstructor)($arg0_160)), ((IConstructor)g_2)))); + if($has_type_and_arity($subject_val154, Maybe_Production_just_Production, 1)){ + IValue $arg0_155 = (IValue)($aadt_subscript_int(((IConstructor)($subject_val154)),0)); + if($isComparable($arg0_155.getType(), M_ParseTree.ADT_Production)){ + IConstructor q_6 = null; + $setwriter152.insert($RVF.tuple(((IConstructor)p_0), ((IInteger)$constants.get(2)/*0*/), ((IConstructor)($arg0_155)))); + + } else { + continue $SCOMP153_GEN9150; + } + } else { + continue $SCOMP153_GEN9150; + } + } else { + continue $SCOMP153_GEN9150; + } + } else { + continue $SCOMP153_GEN9150; + } + } + + + } while(false); + return ((ISet)($setwriter152.done())); + + } + + } + + } + + } + + } + + } while(false); + + } + + } + + + case 910072: + if(noCaseMatched_$switchVal151){ + noCaseMatched_$switchVal151 = false; + if($isSubtypeOf($switchVal151.getType(),M_ParseTree.ADT_Symbol)){ + /*muExists*/CASE_910072_8: + do { + if($has_type_and_arity($switchVal151, M_ParseTree.Symbol_seq_list_Symbol, 1)){ + IValue $arg0_263 = (IValue)($aadt_subscript_int(((IConstructor)($switchVal151)),0)); + if($isComparable($arg0_263.getType(), $T7)){ + IList ss_52 = ((IList)($arg0_263)); + final ISetWriter $setwriter253 = (ISetWriter)$RVF.setWriter(); + ; + $SCOMP254_GEN10441: + for(IValue $elem262_for : ((IList)($me.index(((IList)($arg0_263)))))){ + IInteger $elem262 = (IInteger) $elem262_for; + IInteger i_53 = ((IInteger)($elem262)); + $SCOMP254_GEN10441_GEN10457: + for(IValue $elem259_for : ((IList)($arg0_263))){ + IConstructor $elem259 = (IConstructor) $elem259_for; + if($has_type_and_arity($elem259, M_ParseTree.Symbol_conditional_Symbol_set_Condition, 2)){ + IValue $arg0_261 = (IValue)($aadt_subscript_int(((IConstructor)($elem259)),0)); + if($isComparable($arg0_261.getType(), M_ParseTree.ADT_Symbol)){ + IConstructor t_54 = ((IConstructor)($arg0_261)); + IValue $arg1_260 = (IValue)($aadt_subscript_int(((IConstructor)($elem259)),1)); + if($isComparable($arg1_260.getType(), $T4)){ + ISet cs_55 = ((ISet)($arg1_260)); + $SCOMP254_GEN10441_GEN10457_CONS_conditional_GEN10482: + for(IValue $elem257_for : ((ISet)($arg1_260))){ + IConstructor $elem257 = (IConstructor) $elem257_for; + if($has_type_and_arity($elem257, M_ParseTree.Condition_except_str, 1)){ + IValue $arg0_258 = (IValue)($aadt_subscript_int(((IConstructor)($elem257)),0)); + if($isComparable($arg0_258.getType(), $T6)){ + IString c_56 = ((IString)($arg0_258)); + final IConstructor $subject_val255 = ((IConstructor)($me.find(((IString)($arg0_258)), ((IConstructor)($arg0_264)), ((IConstructor)($arg0_261)), ((IConstructor)g_2)))); + if($has_type_and_arity($subject_val255, Maybe_Production_just_Production, 1)){ + IValue $arg0_256 = (IValue)($aadt_subscript_int(((IConstructor)($subject_val255)),0)); + if($isComparable($arg0_256.getType(), M_ParseTree.ADT_Production)){ + IConstructor q_57 = null; + $setwriter253.insert($RVF.tuple(((IConstructor)p_0), ((IInteger)i_53), ((IConstructor)($arg0_256)))); + + } else { + continue $SCOMP254_GEN10441_GEN10457_CONS_conditional_GEN10482; + } + } else { + continue $SCOMP254_GEN10441_GEN10457_CONS_conditional_GEN10482; + } + } else { + continue $SCOMP254_GEN10441_GEN10457_CONS_conditional_GEN10482; + } + } else { + continue $SCOMP254_GEN10441_GEN10457_CONS_conditional_GEN10482; + } + } + continue $SCOMP254_GEN10441_GEN10457; + + } else { + continue $SCOMP254_GEN10441_GEN10457; + } + } else { + continue $SCOMP254_GEN10441_GEN10457; + } + } else { + continue $SCOMP254_GEN10441_GEN10457; + } + } + continue $SCOMP254_GEN10441; + + } + + return ((ISet)($setwriter253.done())); + + } + + } + + } while(false); + + } + + } + + + case 826203960: + if(noCaseMatched_$switchVal151){ + noCaseMatched_$switchVal151 = false; + if($isSubtypeOf($switchVal151.getType(),M_ParseTree.ADT_Symbol)){ + /*muExists*/CASE_826203960_1: + do { + if($has_type_and_arity($switchVal151, M_ParseTree.Symbol_iter_star_Symbol, 1)){ + IValue $arg0_167 = (IValue)($aadt_subscript_int(((IConstructor)($switchVal151)),0)); + if($isComparable($arg0_167.getType(), M_ParseTree.ADT_Symbol)){ + if($has_type_and_arity($arg0_167, M_ParseTree.Symbol_conditional_Symbol_set_Condition, 2)){ + IValue $arg0_169 = (IValue)($aadt_subscript_int(((IConstructor)($arg0_167)),0)); + if($isComparable($arg0_169.getType(), M_ParseTree.ADT_Symbol)){ + IConstructor t_7 = ((IConstructor)($arg0_169)); + IValue $arg1_168 = (IValue)($aadt_subscript_int(((IConstructor)($arg0_167)),1)); + if($isComparable($arg1_168.getType(), $T4)){ + ISet cs_8 = ((ISet)($arg1_168)); + final ISetWriter $setwriter161 = (ISetWriter)$RVF.setWriter(); + ; + /*muExists*/$SCOMP162_GEN9270_CONS_except: + do { + $SCOMP162_GEN9270: + for(IValue $elem165_for : ((ISet)($arg1_168))){ + IConstructor $elem165 = (IConstructor) $elem165_for; + if($has_type_and_arity($elem165, M_ParseTree.Condition_except_str, 1)){ + IValue $arg0_166 = (IValue)($aadt_subscript_int(((IConstructor)($elem165)),0)); + if($isComparable($arg0_166.getType(), $T6)){ + IString c_9 = ((IString)($arg0_166)); + final IConstructor $subject_val163 = ((IConstructor)($me.find(((IString)($arg0_166)), ((IConstructor)($arg0_264)), ((IConstructor)($arg0_169)), ((IConstructor)g_2)))); + if($has_type_and_arity($subject_val163, Maybe_Production_just_Production, 1)){ + IValue $arg0_164 = (IValue)($aadt_subscript_int(((IConstructor)($subject_val163)),0)); + if($isComparable($arg0_164.getType(), M_ParseTree.ADT_Production)){ + IConstructor q_10 = null; + $setwriter161.insert($RVF.tuple(((IConstructor)p_0), ((IInteger)$constants.get(2)/*0*/), ((IConstructor)($arg0_164)))); + + } else { + continue $SCOMP162_GEN9270; + } + } else { + continue $SCOMP162_GEN9270; + } + } else { + continue $SCOMP162_GEN9270; + } + } else { + continue $SCOMP162_GEN9270; + } + } + + + } while(false); + return ((ISet)($setwriter161.done())); + + } + + } + + } + + } + + } + + } while(false); + + } + + } + + + case 773448: + if(noCaseMatched_$switchVal151){ + noCaseMatched_$switchVal151 = false; + if($isSubtypeOf($switchVal151.getType(),M_ParseTree.ADT_Symbol)){ + /*muExists*/CASE_773448_7: + do { + if($has_type_and_arity($switchVal151, M_ParseTree.Symbol_alt_set_Symbol, 1)){ + IValue $arg0_252 = (IValue)($aadt_subscript_int(((IConstructor)($switchVal151)),0)); + if($isComparable($arg0_252.getType(), $T5)){ + ISet as_47 = ((ISet)($arg0_252)); + final ISetWriter $setwriter243 = (ISetWriter)$RVF.setWriter(); + ; + /*muExists*/$SCOMP244_GEN10317_CONS_conditional: + do { + $SCOMP244_GEN10317: + for(IValue $elem249_for : ((ISet)($arg0_252))){ + IConstructor $elem249 = (IConstructor) $elem249_for; + if($has_type_and_arity($elem249, M_ParseTree.Symbol_conditional_Symbol_set_Condition, 2)){ + IValue $arg0_251 = (IValue)($aadt_subscript_int(((IConstructor)($elem249)),0)); + if($isComparable($arg0_251.getType(), M_ParseTree.ADT_Symbol)){ + IConstructor t_48 = ((IConstructor)($arg0_251)); + IValue $arg1_250 = (IValue)($aadt_subscript_int(((IConstructor)($elem249)),1)); + if($isComparable($arg1_250.getType(), $T4)){ + ISet cs_49 = ((ISet)($arg1_250)); + $SCOMP244_GEN10317_CONS_conditional_GEN10342: + for(IValue $elem247_for : ((ISet)($arg1_250))){ + IConstructor $elem247 = (IConstructor) $elem247_for; + if($has_type_and_arity($elem247, M_ParseTree.Condition_except_str, 1)){ + IValue $arg0_248 = (IValue)($aadt_subscript_int(((IConstructor)($elem247)),0)); + if($isComparable($arg0_248.getType(), $T6)){ + IString c_50 = ((IString)($arg0_248)); + final IConstructor $subject_val245 = ((IConstructor)($me.find(((IString)($arg0_248)), ((IConstructor)($arg0_264)), ((IConstructor)($arg0_251)), ((IConstructor)g_2)))); + if($has_type_and_arity($subject_val245, Maybe_Production_just_Production, 1)){ + IValue $arg0_246 = (IValue)($aadt_subscript_int(((IConstructor)($subject_val245)),0)); + if($isComparable($arg0_246.getType(), M_ParseTree.ADT_Production)){ + IConstructor q_51 = null; + $setwriter243.insert($RVF.tuple(((IConstructor)p_0), ((IInteger)$constants.get(2)/*0*/), ((IConstructor)($arg0_246)))); + + } else { + continue $SCOMP244_GEN10317_CONS_conditional_GEN10342; + } + } else { + continue $SCOMP244_GEN10317_CONS_conditional_GEN10342; + } + } else { + continue $SCOMP244_GEN10317_CONS_conditional_GEN10342; + } + } else { + continue $SCOMP244_GEN10317_CONS_conditional_GEN10342; + } + } + continue $SCOMP244_GEN10317; + + } else { + continue $SCOMP244_GEN10317; + } + } else { + continue $SCOMP244_GEN10317; + } + } else { + continue $SCOMP244_GEN10317; + } + } + + + } while(false); + return ((ISet)($setwriter243.done())); + + } + + } + + } while(false); + + } + + } + + + case 1652184736: + if(noCaseMatched_$switchVal151){ + noCaseMatched_$switchVal151 = false; + if($isSubtypeOf($switchVal151.getType(),M_ParseTree.ADT_Symbol)){ + /*muExists*/CASE_1652184736_3: + do { + if($has_type_and_arity($switchVal151, M_ParseTree.Symbol_iter_seps_Symbol_list_Symbol, 2)){ + IValue $arg0_196 = (IValue)($aadt_subscript_int(((IConstructor)($switchVal151)),0)); + if($isComparable($arg0_196.getType(), M_ParseTree.ADT_Symbol)){ + if($has_type_and_arity($arg0_196, M_ParseTree.Symbol_conditional_Symbol_set_Condition, 2)){ + IValue $arg0_198 = (IValue)($aadt_subscript_int(((IConstructor)($arg0_196)),0)); + if($isComparable($arg0_198.getType(), M_ParseTree.ADT_Symbol)){ + IConstructor t_15 = ((IConstructor)($arg0_198)); + IValue $arg1_197 = (IValue)($aadt_subscript_int(((IConstructor)($arg0_196)),1)); + if($isComparable($arg1_197.getType(), $T4)){ + ISet cs_16 = ((ISet)($arg1_197)); + IValue $arg1_195 = (IValue)($aadt_subscript_int(((IConstructor)($switchVal151)),1)); + if($isComparable($arg1_195.getType(), $T7)){ + IList ss_17 = ((IList)($arg1_195)); + final ISetWriter $setwriter179 = (ISetWriter)$RVF.setWriter(); + ; + /*muExists*/$SCOMP180_GEN9508_CONS_except: + do { + $SCOMP180_GEN9508: + for(IValue $elem183_for : ((ISet)($arg1_197))){ + IConstructor $elem183 = (IConstructor) $elem183_for; + if($has_type_and_arity($elem183, M_ParseTree.Condition_except_str, 1)){ + IValue $arg0_184 = (IValue)($aadt_subscript_int(((IConstructor)($elem183)),0)); + if($isComparable($arg0_184.getType(), $T6)){ + IString c_18 = ((IString)($arg0_184)); + final IConstructor $subject_val181 = ((IConstructor)($me.find(((IString)($arg0_184)), ((IConstructor)($arg0_264)), ((IConstructor)($arg0_198)), ((IConstructor)g_2)))); + if($has_type_and_arity($subject_val181, Maybe_Production_just_Production, 1)){ + IValue $arg0_182 = (IValue)($aadt_subscript_int(((IConstructor)($subject_val181)),0)); + if($isComparable($arg0_182.getType(), M_ParseTree.ADT_Production)){ + IConstructor q_19 = null; + $setwriter179.insert($RVF.tuple(((IConstructor)p_0), ((IInteger)$constants.get(2)/*0*/), ((IConstructor)($arg0_182)))); + + } else { + continue $SCOMP180_GEN9508; + } + } else { + continue $SCOMP180_GEN9508; + } + } else { + continue $SCOMP180_GEN9508; + } + } else { + continue $SCOMP180_GEN9508; + } + } + + + } while(false); + final ISetWriter $setwriter185 = (ISetWriter)$RVF.setWriter(); + ; + $SCOMP186_GEN9588: + for(IValue $elem194_for : ((IList)($me.index(((IList)($arg1_195)))))){ + IInteger $elem194 = (IInteger) $elem194_for; + IInteger i_20 = ((IInteger)($elem194)); + final IConstructor $subject_val191 = ((IConstructor)($alist_subscript_int(((IList)($arg1_195)),((IInteger)i_20).intValue()))); + if($has_type_and_arity($subject_val191, M_ParseTree.Symbol_conditional_Symbol_set_Condition, 2)){ + IValue $arg0_193 = (IValue)($aadt_subscript_int(((IConstructor)($subject_val191)),0)); + if($isComparable($arg0_193.getType(), M_ParseTree.ADT_Symbol)){ + IConstructor u_21 = ((IConstructor)($arg0_193)); + IValue $arg1_192 = (IValue)($aadt_subscript_int(((IConstructor)($subject_val191)),1)); + if($isComparable($arg1_192.getType(), $T4)){ + ISet css_22 = ((ISet)($arg1_192)); + $SCOMP186_GEN9588_GEN9633: + for(IValue $elem189_for : ((ISet)($arg1_192))){ + IConstructor $elem189 = (IConstructor) $elem189_for; + if($has_type_and_arity($elem189, M_ParseTree.Condition_except_str, 1)){ + IValue $arg0_190 = (IValue)($aadt_subscript_int(((IConstructor)($elem189)),0)); + if($isComparable($arg0_190.getType(), $T6)){ + IString ds_23 = ((IString)($arg0_190)); + final IConstructor $subject_val187 = ((IConstructor)($me.find(((IString)($arg0_190)), ((IConstructor)($arg0_264)), ((IConstructor)($arg0_193)), ((IConstructor)g_2)))); + if($has_type_and_arity($subject_val187, Maybe_Production_just_Production, 1)){ + IValue $arg0_188 = (IValue)($aadt_subscript_int(((IConstructor)($subject_val187)),0)); + if($isComparable($arg0_188.getType(), M_ParseTree.ADT_Production)){ + IConstructor q_24 = null; + $setwriter185.insert($RVF.tuple(((IConstructor)p_0), ((IInteger)($aint_add_aint(((IInteger)i_20),((IInteger)$constants.get(1)/*1*/)))), ((IConstructor)($arg0_188)))); + + } else { + continue $SCOMP186_GEN9588_GEN9633; + } + } else { + continue $SCOMP186_GEN9588_GEN9633; + } + } else { + continue $SCOMP186_GEN9588_GEN9633; + } + } else { + continue $SCOMP186_GEN9588_GEN9633; + } + } + continue $SCOMP186_GEN9588; + + } else { + continue $SCOMP186_GEN9588; + } + } else { + continue $SCOMP186_GEN9588; + } + } else { + continue $SCOMP186_GEN9588; + } + } + + return ((ISet)($aset_add_aset(((ISet)($setwriter179.done())),((ISet)($setwriter185.done()))))); + + } + + } + + } + + } + + } + + } + + } while(false); + + } + if($isSubtypeOf($switchVal151.getType(),M_ParseTree.ADT_Symbol)){ + /*muExists*/CASE_1652184736_4: + do { + if($has_type_and_arity($switchVal151, M_ParseTree.Symbol_iter_seps_Symbol_list_Symbol, 2)){ + IValue $arg0_210 = (IValue)($aadt_subscript_int(((IConstructor)($switchVal151)),0)); + if($isComparable($arg0_210.getType(), $T1)){ + IValue $arg1_209 = (IValue)($aadt_subscript_int(((IConstructor)($switchVal151)),1)); + if($isComparable($arg1_209.getType(), $T7)){ + IList ss_25 = ((IList)($arg1_209)); + final ISetWriter $setwriter199 = (ISetWriter)$RVF.setWriter(); + ; + $SCOMP200_GEN9745: + for(IValue $elem208_for : ((IList)($me.index(((IList)($arg1_209)))))){ + IInteger $elem208 = (IInteger) $elem208_for; + IInteger i_26 = ((IInteger)($elem208)); + final IConstructor $subject_val205 = ((IConstructor)($alist_subscript_int(((IList)($arg1_209)),((IInteger)i_26).intValue()))); + if($has_type_and_arity($subject_val205, M_ParseTree.Symbol_conditional_Symbol_set_Condition, 2)){ + IValue $arg0_207 = (IValue)($aadt_subscript_int(((IConstructor)($subject_val205)),0)); + if($isComparable($arg0_207.getType(), M_ParseTree.ADT_Symbol)){ + IConstructor u_27 = ((IConstructor)($arg0_207)); + IValue $arg1_206 = (IValue)($aadt_subscript_int(((IConstructor)($subject_val205)),1)); + if($isComparable($arg1_206.getType(), $T4)){ + ISet css_28 = ((ISet)($arg1_206)); + $SCOMP200_GEN9745_GEN9790: + for(IValue $elem203_for : ((ISet)($arg1_206))){ + IConstructor $elem203 = (IConstructor) $elem203_for; + if($has_type_and_arity($elem203, M_ParseTree.Condition_except_str, 1)){ + IValue $arg0_204 = (IValue)($aadt_subscript_int(((IConstructor)($elem203)),0)); + if($isComparable($arg0_204.getType(), $T6)){ + IString ds_29 = ((IString)($arg0_204)); + final IConstructor $subject_val201 = ((IConstructor)($me.find(((IString)($arg0_204)), ((IConstructor)($arg0_264)), ((IConstructor)($arg0_207)), ((IConstructor)g_2)))); + if($has_type_and_arity($subject_val201, Maybe_Production_just_Production, 1)){ + IValue $arg0_202 = (IValue)($aadt_subscript_int(((IConstructor)($subject_val201)),0)); + if($isComparable($arg0_202.getType(), M_ParseTree.ADT_Production)){ + IConstructor q_30 = null; + $setwriter199.insert($RVF.tuple(((IConstructor)p_0), ((IInteger)($aint_add_aint(((IInteger)i_26),((IInteger)$constants.get(1)/*1*/)))), ((IConstructor)($arg0_202)))); + + } else { + continue $SCOMP200_GEN9745_GEN9790; + } + } else { + continue $SCOMP200_GEN9745_GEN9790; + } + } else { + continue $SCOMP200_GEN9745_GEN9790; + } + } else { + continue $SCOMP200_GEN9745_GEN9790; + } + } + continue $SCOMP200_GEN9745; + + } else { + continue $SCOMP200_GEN9745; + } + } else { + continue $SCOMP200_GEN9745; + } + } else { + continue $SCOMP200_GEN9745; + } + } + + return ((ISet)($setwriter199.done())); + + } + + } + + } + + } while(false); + + } + + } + + + default: return ((ISet)$constants.get(0)/*{}*/); + } + + + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/lang/rascal/grammar/definition/Priorities.rsc|(10571,71,<222,0>,<222,71>) + public IBool lang_rascal_grammar_definition_Priorities_same$80dbb97d81d5c413(IConstructor x_0, IConstructor ref_1){ + + + return ((IBool)($equal(((IConstructor)(M_lang_rascal_grammar_definition_Symbols.striprec(((IConstructor)x_0)))), ((IConstructor)(M_lang_rascal_grammar_definition_Symbols.striprec(((IConstructor)ref_1))))))); + + } + + + public static void main(String[] args) { + throw new RuntimeException("No function `main` found in Rascal module `lang::rascal::grammar::definition::Priorities`"); + } +} \ No newline at end of file diff --git a/src/rascal/lang/rascal/grammar/definition/$Priorities.tpl b/src/rascal/lang/rascal/grammar/definition/$Priorities.tpl new file mode 100644 index 00000000000..49cf030cb85 Binary files /dev/null and b/src/rascal/lang/rascal/grammar/definition/$Priorities.tpl differ diff --git a/src/rascal/lang/rascal/grammar/definition/$Priorities_$I.java b/src/rascal/lang/rascal/grammar/definition/$Priorities_$I.java new file mode 100644 index 00000000000..62b84e30b69 --- /dev/null +++ b/src/rascal/lang/rascal/grammar/definition/$Priorities_$I.java @@ -0,0 +1,139 @@ +package rascal.lang.rascal.grammar.definition; +import io.usethesource.vallang.*; +import org.rascalmpl.runtime.function.*; + +@SuppressWarnings("unused") +public interface $Priorities_$I { + IValue addLabels(IValue $0, IValue $1); + IValue addParamLabels(IValue $0, IValue $1); + IValue allLabeled(IValue $0); + IValue associativity(IValue $0, IValue $1, IValue $2); + IValue choice(IValue $0, IValue $1); + IValue comparable(IValue $0, IValue $1); + IValue concat(IValue $0); + IValue delete(IValue $0, IValue $1); + IValue distribution(IValue $0); + IValue doNotNest(IValue $0); + IValue drop(IValue $0, IValue $1); + IValue dup(IValue $0); + IValue elementAt(IValue $0, IValue $1); + IValue eq(IValue $0, IValue $1); + IValue equivalent(IValue $0, IValue $1); + IValue except(IValue $0, IValue $1); + IValue extract(IValue $0); + IValue extract(IValue $0, IValue $1); + IValue find(IValue $0, IValue $1, IValue $2, IValue $3); + IValue firstAmbiguity(IValue $0, IValue $1); + IValue firstAmbiguityFinder(IValue $0, java.util.Map $kwpActuals); + IValue firstAmbiguityFinders(IValue $0, java.util.Map $kwpActuals); + IValue getFirstFrom(IValue $0); + IValue getLabels(IValue $0); + IValue getOneFrom(IValue $0); + IValue getParamLabels(IValue $0); + IValue glb(IValue $0, IValue $1); + IValue head(IValue $0, IValue $1); + IValue head(IValue $0); + IValue headTail(IValue $0); + IValue implode(IValue $0, IValue $1); + IValue index(IValue $0); + IValue indexOf(IValue $0, IValue $1); + IValue insertAt(IValue $0, IValue $1, IValue $2); + IValue intercalate(IValue $0, IValue $1); + IValue intersperse(IValue $0, IValue $1); + IValue isADTType(IValue $0); + IValue isAliasType(IValue $0); + IValue isBagType(IValue $0); + IValue isBoolType(IValue $0); + IValue isConstructorType(IValue $0); + IValue isDateTimeType(IValue $0); + IValue isEmpty(IValue $0); + IValue isFunctionType(IValue $0); + IValue isIntType(IValue $0); + IValue isListRelType(IValue $0); + IValue isListType(IValue $0); + IValue isLocType(IValue $0); + IValue isMapType(IValue $0); + IValue isNodeType(IValue $0); + IValue isNonTerminalType(IValue $0); + IValue isNumType(IValue $0); + IValue isRatType(IValue $0); + IValue isRealType(IValue $0); + IValue isReifiedType(IValue $0); + IValue isRelType(IValue $0); + IValue isSetType(IValue $0); + IValue isSorted(IValue $0, java.util.Map $kwpActuals); + IValue isStrType(IValue $0); + IValue isTupleType(IValue $0); + IValue isTypeVar(IValue $0); + IValue isValueType(IValue $0); + IValue isVoidType(IValue $0); + IValue isdef(IValue $0, IValue $1); + IValue itoString(IValue $0); + IValue keepParams(IValue $0, IValue $1); + IValue last(IValue $0); + IValue lastIndexOf(IValue $0, IValue $1); + IValue loadParser(IValue $0, IValue $1, java.util.Map $kwpActuals); + IValue loadParsers(IValue $0, java.util.Map $kwpActuals); + IValue lub(IValue $0, IValue $1); + IValue mainMessageHandler(IValue $0, java.util.Map $kwpActuals); + IValue make(IValue $0, IValue $1, IValue $2); + IValue make(IValue $0, IValue $1, IValue $2, IValue $3); + IValue mapper(IValue $0, IValue $1); + IValue max(IValue $0); + IValue merge(IValue $0, IValue $1); + IValue merge(IValue $0, IValue $1, IValue $2); + IValue min(IValue $0); + IValue mix(IValue $0, IValue $1); + IValue noneLabeled(IValue $0); + IValue parse(IValue $0, IValue $1, java.util.Map $kwpActuals); + IValue parse(IValue $0, IValue $1, IValue $2, java.util.Map $kwpActuals); + IValue parser(IValue $0, java.util.Map $kwpActuals); + IValue parsers(IValue $0, java.util.Map $kwpActuals); + IValue permutations(IValue $0); + IValue permutationsBag(IValue $0); + IValue pop(IValue $0); + IValue prefix(IValue $0); + IValue printSymbol(IValue $0, IValue $1); + IValue priority(IValue $0, IValue $1); + IValue push(IValue $0, IValue $1); + IValue reducer(IValue $0, IValue $1, IValue $2); + IValue remove(IValue $0, IValue $1); + IValue removeFromBag(IValue $0, IValue $1); + IValue removeFromBag(IValue $0, IValue $1, IValue $2); + IValue reverse(IValue $0); + IValue same(IValue $0, IValue $1); + IValue sameType(IValue $0, IValue $1); + IValue shuffle(IValue $0); + IValue shuffle(IValue $0, IValue $1); + IValue size(IValue $0); + IValue slice(IValue $0, IValue $1, IValue $2); + IValue sort(IValue $0); + IValue sort(IValue $0, IValue $1); + IValue split(IValue $0); + void storeParsers(IValue $0, IValue $1); + IValue stripLabels(IValue $0); + IValue subtype(IValue $0, IValue $1); + IValue sum(IValue $0); + IValue tail(IValue $0); + IValue tail(IValue $0, IValue $1); + IValue take(IValue $0, IValue $1); + IValue takeOneFrom(IValue $0); + IValue takeWhile(IValue $0, IValue $1); + IValue toMap(IValue $0); + IValue toMapUnique(IValue $0); + IValue toRel(IValue $0); + IValue toSet(IValue $0); + IValue toString(IValue $0); + IValue top(IValue $0); + IValue treeAt(IValue $0, IValue $1, IValue $2); + IValue typeCast(IValue $0, IValue $1); + IValue typeOf(IValue $0); + IValue unparse(IValue $0); + IValue unzip2(IValue $0); + IValue unzip3(IValue $0); + IValue upTill(IValue $0); + IValue var_func(IValue $0, IValue $1, IValue $2); + IValue write(IValue $0, java.util.Map $kwpActuals); + IValue zip2(IValue $0, IValue $1); + IValue zip3(IValue $0, IValue $1, IValue $2); +} \ No newline at end of file diff --git a/src/rascal/lang/rascal/grammar/definition/$Productions.constants b/src/rascal/lang/rascal/grammar/definition/$Productions.constants new file mode 100644 index 00000000000..5156c01fb91 Binary files /dev/null and b/src/rascal/lang/rascal/grammar/definition/$Productions.constants differ diff --git a/src/rascal/lang/rascal/grammar/definition/$Productions.java b/src/rascal/lang/rascal/grammar/definition/$Productions.java new file mode 100644 index 00000000000..2c55da9cf94 --- /dev/null +++ b/src/rascal/lang/rascal/grammar/definition/$Productions.java @@ -0,0 +1,2045 @@ +package rascal.lang.rascal.grammar.definition; +import java.io.PrintWriter; +import java.io.StringWriter; +import java.io.InputStreamReader; +import java.io.PrintWriter; +import java.util.*; +import java.util.regex.Matcher; +import io.usethesource.vallang.*; +import io.usethesource.vallang.type.*; +import org.rascalmpl.runtime.*; +import org.rascalmpl.runtime.RascalExecutionContext; +import org.rascalmpl.runtime.function.*; +import org.rascalmpl.runtime.traverse.*; +import org.rascalmpl.runtime.utils.*; +import org.rascalmpl.exceptions.RuntimeExceptionFactory; +import org.rascalmpl.exceptions.Throw; +import org.rascalmpl.runtime.RascalExecutionContext; +import org.rascalmpl.interpreter.control_exceptions.Filtered; +import org.rascalmpl.types.NonTerminalType; +import org.rascalmpl.types.RascalTypeFactory; +import org.rascalmpl.util.ExpiringFunctionResultCache; +import org.rascalmpl.values.RascalValueFactory; +import org.rascalmpl.values.ValueFactoryFactory; +import org.rascalmpl.values.parsetrees.ITree; +import org.rascalmpl.values.parsetrees.TreeAdapter; + + + +@SuppressWarnings({"unused","unchecked","deprecation"}) +public class $Productions + extends + org.rascalmpl.runtime.$RascalModule + implements + rascal.$ParseTree_$I, + rascal.lang.rascal.grammar.definition.$Productions_$I, + rascal.$Type_$I, + rascal.$List_$I, + rascal.$Grammar_$I, + rascal.$Message_$I { + + private final $Productions_$I $me; + private final IList $constants; + + + public final rascal.lang.rascal.syntax.$Rascal M_lang_rascal_syntax_Rascal; + public final rascal.$ParseTree M_ParseTree; + public final rascal.$Type M_Type; + public final rascal.$List M_List; + public final rascal.lang.rascal.grammar.definition.$Names M_lang_rascal_grammar_definition_Names; + public final rascal.$IO M_IO; + public final rascal.util.$Maybe M_util_Maybe; + public final rascal.$Grammar M_Grammar; + public final rascal.$Message M_Message; + public final rascal.lang.rascal.grammar.definition.$Attributes M_lang_rascal_grammar_definition_Attributes; + public final rascal.lang.rascal.grammar.definition.$Symbols M_lang_rascal_grammar_definition_Symbols; + + + + public final io.usethesource.vallang.type.Type $T7; /*avalue()*/ + public final io.usethesource.vallang.type.Type $T17; /*aparameter("A",avalue(),closed=true)*/ + public final io.usethesource.vallang.type.Type $T14; /*astr()*/ + public final io.usethesource.vallang.type.Type $T12; /*aparameter("A",avalue(),closed=false)*/ + public final io.usethesource.vallang.type.Type $T22; /*aparameter("A",avalue())*/ + public final io.usethesource.vallang.type.Type $T10; /*aparameter("U",avalue(),closed=false)*/ + public final io.usethesource.vallang.type.Type $T8; /*aparameter("T",avalue(),closed=false)*/ + public final io.usethesource.vallang.type.Type $T2; /*alit(",")*/ + public final io.usethesource.vallang.type.Type ADT_Attr; /*aadt("Attr",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Replacement; /*aadt("Replacement",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Replacement; /*aadt("Replacement",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Kind; /*aadt("Kind",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Kind; /*aadt("Kind",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_ProtocolChars; /*aadt("ProtocolChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_ProtocolChars; /*aadt("ProtocolChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Visibility; /*aadt("Visibility",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Visibility; /*aadt("Visibility",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Expression; /*aadt("Expression",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Expression; /*aadt("Expression",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Mapping_Expression; /*aadt("Mapping",[aadt("Expression",[],contextFreeSyntax())],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Mapping_Expression; /*aadt("Mapping",[aadt("Expression",[],contextFreeSyntax())],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_LocalVariableDeclaration; /*aadt("LocalVariableDeclaration",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_LocalVariableDeclaration; /*aadt("LocalVariableDeclaration",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Strategy; /*aadt("Strategy",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Strategy; /*aadt("Strategy",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Tree; /*aadt("Tree",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type $T15; /*aparameter("T",aadt("Tree",[],dataSyntax()),closed=true)*/ + public final io.usethesource.vallang.type.Type ADT_KeywordArguments_1; /*aadt("KeywordArguments",[aparameter("T",aadt("Tree",[],dataSyntax()),closed=true)],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_KeywordArguments_1; /*aadt("KeywordArguments",[aparameter("T",aadt("Tree",[],dataSyntax()),closed=true)],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_MidStringChars; /*aadt("MidStringChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_MidStringChars; /*aadt("MidStringChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_LAYOUT; /*aadt("LAYOUT",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_LAYOUT; /*aadt("LAYOUT",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Pattern; /*aadt("Pattern",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Pattern; /*aadt("Pattern",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Mapping_Pattern; /*aadt("Mapping",[aadt("Pattern",[],contextFreeSyntax())],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Mapping_Pattern; /*aadt("Mapping",[aadt("Pattern",[],contextFreeSyntax())],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_LocationChangeType; /*aadt("LocationChangeType",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_IOCapability; /*aadt("IOCapability",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_TagString; /*aadt("TagString",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_TagString; /*aadt("TagString",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_FunctionType; /*aadt("FunctionType",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_FunctionType; /*aadt("FunctionType",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Label; /*aadt("Label",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Label; /*aadt("Label",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_PostProtocolChars; /*aadt("PostProtocolChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_PostProtocolChars; /*aadt("PostProtocolChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Range; /*aadt("Range",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Range; /*aadt("Range",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Concrete; /*aadt("Concrete",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Concrete; /*aadt("Concrete",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Item; /*aadt("Item",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_RationalLiteral; /*aadt("RationalLiteral",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_RationalLiteral; /*aadt("RationalLiteral",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_RegExpLiteral; /*aadt("RegExpLiteral",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_RegExpLiteral; /*aadt("RegExpLiteral",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Declarator; /*aadt("Declarator",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Declarator; /*aadt("Declarator",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_GrammarModule; /*aadt("GrammarModule",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_IntegerLiteral; /*aadt("IntegerLiteral",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_IntegerLiteral; /*aadt("IntegerLiteral",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Prod; /*aadt("Prod",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Prod; /*aadt("Prod",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type $T16; /*aparameter("T",aadt("Tree",[],dataSyntax()),closed=false)*/ + public final io.usethesource.vallang.type.Type ADT_ModuleParameters; /*aadt("ModuleParameters",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_ModuleParameters; /*aadt("ModuleParameters",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Output; /*aadt("Output",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Output; /*aadt("Output",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_SyntaxDefinition; /*aadt("SyntaxDefinition",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_SyntaxDefinition; /*aadt("SyntaxDefinition",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_RegExpModifier; /*aadt("RegExpModifier",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_RegExpModifier; /*aadt("RegExpModifier",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_ImportedModule; /*aadt("ImportedModule",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_ImportedModule; /*aadt("ImportedModule",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_BooleanLiteral; /*aadt("BooleanLiteral",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_BooleanLiteral; /*aadt("BooleanLiteral",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Case; /*aadt("Case",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Case; /*aadt("Case",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_DateTimeLiteral; /*aadt("DateTimeLiteral",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_DateTimeLiteral; /*aadt("DateTimeLiteral",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_LocationChangeEvent; /*aadt("LocationChangeEvent",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_DatePart; /*aadt("DatePart",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_DatePart; /*aadt("DatePart",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Target; /*aadt("Target",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Target; /*aadt("Target",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_TimePartNoTZ; /*aadt("TimePartNoTZ",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_TimePartNoTZ; /*aadt("TimePartNoTZ",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_KeywordArguments_Expression; /*aadt("KeywordArguments",[aadt("Expression",[],contextFreeSyntax())],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_KeywordArguments_Expression; /*aadt("KeywordArguments",[aadt("Expression",[],contextFreeSyntax())],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Mapping_1; /*aadt("Mapping",[aparameter("T",aadt("Tree",[],dataSyntax()),closed=true)],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Mapping_1; /*aadt("Mapping",[aparameter("T",aadt("Tree",[],dataSyntax()),closed=true)],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Renaming; /*aadt("Renaming",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Renaming; /*aadt("Renaming",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_KeywordFormals; /*aadt("KeywordFormals",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_KeywordFormals; /*aadt("KeywordFormals",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Maybe_1; /*aadt("Maybe",[aparameter("A",avalue(),closed=true)],dataSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Catch; /*aadt("Catch",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Catch; /*aadt("Catch",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Production; /*aadt("Production",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_PostStringChars; /*aadt("PostStringChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_PostStringChars; /*aadt("PostStringChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Renamings; /*aadt("Renamings",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Renamings; /*aadt("Renamings",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_KeywordFormal; /*aadt("KeywordFormal",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_KeywordFormal; /*aadt("KeywordFormal",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_OptionalExpression; /*aadt("OptionalExpression",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_OptionalExpression; /*aadt("OptionalExpression",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_GrammarDefinition; /*aadt("GrammarDefinition",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Field; /*aadt("Field",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Field; /*aadt("Field",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Maybe_Attr; /*aadt("Maybe",[aadt("Attr",[],dataSyntax())],dataSyntax())*/ + public final io.usethesource.vallang.type.Type Maybe_Attr_just_Attr; /*acons(aadt("Maybe",[aadt("Attr",[],dataSyntax())],dataSyntax()),[aadt("Attr",[],dataSyntax(),alabel="val")],[],alabel="just")*/ + public final io.usethesource.vallang.type.Type ADT_LocationLiteral; /*aadt("LocationLiteral",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_LocationLiteral; /*aadt("LocationLiteral",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Tag; /*aadt("Tag",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Tag; /*aadt("Tag",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Type; /*aadt("Type",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Type; /*aadt("Type",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Symbol; /*aadt("Symbol",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_HexIntegerLiteral; /*aadt("HexIntegerLiteral",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_HexIntegerLiteral; /*aadt("HexIntegerLiteral",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_DataTarget; /*aadt("DataTarget",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_DataTarget; /*aadt("DataTarget",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_TimeZonePart; /*aadt("TimeZonePart",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_TimeZonePart; /*aadt("TimeZonePart",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Declaration; /*aadt("Declaration",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Declaration; /*aadt("Declaration",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_ShellCommand; /*aadt("ShellCommand",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_ShellCommand; /*aadt("ShellCommand",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_FunctionBody; /*aadt("FunctionBody",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_FunctionBody; /*aadt("FunctionBody",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_PreStringChars; /*aadt("PreStringChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_PreStringChars; /*aadt("PreStringChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Nonterminal; /*aadt("Nonterminal",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Nonterminal; /*aadt("Nonterminal",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_StringLiteral; /*aadt("StringLiteral",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_StringLiteral; /*aadt("StringLiteral",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type $T13; /*alist(aparameter("T",avalue(),closed=false))*/ + public final io.usethesource.vallang.type.Type ADT_KeywordArguments_Pattern; /*aadt("KeywordArguments",[aadt("Pattern",[],contextFreeSyntax())],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_KeywordArguments_Pattern; /*aadt("KeywordArguments",[aadt("Pattern",[],contextFreeSyntax())],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Variable; /*aadt("Variable",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Variable; /*aadt("Variable",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Name; /*aadt("Name",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Name; /*aadt("Name",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_NonterminalLabel; /*aadt("NonterminalLabel",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_NonterminalLabel; /*aadt("NonterminalLabel",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Bound; /*aadt("Bound",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Bound; /*aadt("Bound",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_TypeArg; /*aadt("TypeArg",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_TypeArg; /*aadt("TypeArg",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Class; /*aadt("Class",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Class; /*aadt("Class",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Condition; /*aadt("Condition",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_PathPart; /*aadt("PathPart",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_PathPart; /*aadt("PathPart",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Signature; /*aadt("Signature",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Signature; /*aadt("Signature",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_KeywordArgument_1; /*aadt("KeywordArgument",[aparameter("T",aadt("Tree",[],dataSyntax()),closed=true)],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_KeywordArgument_1; /*aadt("KeywordArgument",[aparameter("T",aadt("Tree",[],dataSyntax()),closed=true)],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Associativity; /*aadt("Associativity",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Sym; /*aadt("Sym",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Sym; /*aadt("Sym",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_LAYOUTLIST; /*aadt("LAYOUTLIST",[],layoutSyntax())*/ + public final io.usethesource.vallang.type.Type $T18; /*\iter-seps(aadt("Sym",[],contextFreeSyntax()),[aadt("LAYOUTLIST",[],layoutSyntax()),alit(","),aadt("LAYOUTLIST",[],layoutSyntax())])*/ + public final io.usethesource.vallang.type.Type ADT_RegExp; /*aadt("RegExp",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_RegExp; /*aadt("RegExp",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Tags; /*aadt("Tags",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Tags; /*aadt("Tags",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_URLChars; /*aadt("URLChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_URLChars; /*aadt("URLChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_ModuleActuals; /*aadt("ModuleActuals",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_ModuleActuals; /*aadt("ModuleActuals",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_DataTypeSelector; /*aadt("DataTypeSelector",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_DataTypeSelector; /*aadt("DataTypeSelector",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type $T4; /*aset(aadt("SyntaxDefinition",[],contextFreeSyntax()))*/ + public final io.usethesource.vallang.type.Type ADT_Maybe_Associativity; /*aadt("Maybe",[aadt("Associativity",[],dataSyntax(),alabel="a")],dataSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Start; /*aadt("Start",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Start; /*aadt("Start",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Body; /*aadt("Body",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Body; /*aadt("Body",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_PrePathChars; /*aadt("PrePathChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_PrePathChars; /*aadt("PrePathChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_StringTail; /*aadt("StringTail",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_StringTail; /*aadt("StringTail",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Backslash; /*aadt("Backslash",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Backslash; /*aadt("Backslash",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type $T21; /*alist(aadt("Tree",[],dataSyntax()))*/ + public final io.usethesource.vallang.type.Type ADT_CaseInsensitiveStringConstant; /*aadt("CaseInsensitiveStringConstant",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_CaseInsensitiveStringConstant; /*aadt("CaseInsensitiveStringConstant",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Char; /*aadt("Char",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Char; /*aadt("Char",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_JustDate; /*aadt("JustDate",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_JustDate; /*aadt("JustDate",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_ProdModifier; /*aadt("ProdModifier",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_ProdModifier; /*aadt("ProdModifier",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type $T19; /*\iter-star-seps(aadt("ProdModifier",[],contextFreeSyntax()),[aadt("LAYOUTLIST",[],layoutSyntax())])*/ + public final io.usethesource.vallang.type.Type $T9; /*areified(aparameter("U",avalue(),closed=false))*/ + public final io.usethesource.vallang.type.Type ADT_Header; /*aadt("Header",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Header; /*aadt("Header",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_LocationType; /*aadt("LocationType",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Assignment; /*aadt("Assignment",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Assignment; /*aadt("Assignment",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_OptionalComma; /*aadt("OptionalComma",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_OptionalComma; /*aadt("OptionalComma",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_StringConstant; /*aadt("StringConstant",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_StringConstant; /*aadt("StringConstant",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type $T11; /*aset(aadt("Production",[],dataSyntax()))*/ + public final io.usethesource.vallang.type.Type ADT_FunctionDeclaration; /*aadt("FunctionDeclaration",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_FunctionDeclaration; /*aadt("FunctionDeclaration",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_TypeVar; /*aadt("TypeVar",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_TypeVar; /*aadt("TypeVar",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Variant; /*aadt("Variant",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Variant; /*aadt("Variant",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_UserType; /*aadt("UserType",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_UserType; /*aadt("UserType",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Import; /*aadt("Import",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Import; /*aadt("Import",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_FunctionModifiers; /*aadt("FunctionModifiers",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_FunctionModifiers; /*aadt("FunctionModifiers",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Formals; /*aadt("Formals",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Formals; /*aadt("Formals",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_ConcreteHole; /*aadt("ConcreteHole",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_ConcreteHole; /*aadt("ConcreteHole",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_TreeSearchResult_1; /*aadt("TreeSearchResult",[aparameter("T",aadt("Tree",[],dataSyntax()),closed=true)],dataSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Message; /*aadt("Message",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_CharRange; /*aadt("CharRange",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Grammar; /*aadt("Grammar",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type $T5; /*alist(aadt("Symbol",[],dataSyntax()))*/ + public final io.usethesource.vallang.type.Type ADT_StringMiddle; /*aadt("StringMiddle",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_StringMiddle; /*aadt("StringMiddle",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type $T1; /*\iter-seps(aadt("Expression",[],contextFreeSyntax()),[aadt("LAYOUTLIST",[],layoutSyntax()),alit(","),aadt("LAYOUTLIST",[],layoutSyntax())])*/ + public final io.usethesource.vallang.type.Type ADT_RealLiteral; /*aadt("RealLiteral",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_RealLiteral; /*aadt("RealLiteral",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Comprehension; /*aadt("Comprehension",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Comprehension; /*aadt("Comprehension",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type $T20; /*\iter-star-seps(aadt("Sym",[],contextFreeSyntax()),[aadt("LAYOUTLIST",[],layoutSyntax())])*/ + public final io.usethesource.vallang.type.Type ADT_QualifiedName; /*aadt("QualifiedName",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_QualifiedName; /*aadt("QualifiedName",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_MidPathChars; /*aadt("MidPathChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_MidPathChars; /*aadt("MidPathChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_StringTemplate; /*aadt("StringTemplate",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_StringTemplate; /*aadt("StringTemplate",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_OctalIntegerLiteral; /*aadt("OctalIntegerLiteral",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_OctalIntegerLiteral; /*aadt("OctalIntegerLiteral",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_ProtocolPart; /*aadt("ProtocolPart",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_ProtocolPart; /*aadt("ProtocolPart",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_NamedBackslash; /*aadt("NamedBackslash",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_NamedBackslash; /*aadt("NamedBackslash",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_RascalKeywords; /*aadt("RascalKeywords",[],keywordSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Commands; /*aadt("Commands",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Commands; /*aadt("Commands",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type $T6; /*areified(aparameter("T",avalue(),closed=false))*/ + public final io.usethesource.vallang.type.Type ADT_Comment; /*aadt("Comment",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Comment; /*aadt("Comment",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_StructuredType; /*aadt("StructuredType",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_StructuredType; /*aadt("StructuredType",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Visit; /*aadt("Visit",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Visit; /*aadt("Visit",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_NamedRegExp; /*aadt("NamedRegExp",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_NamedRegExp; /*aadt("NamedRegExp",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_PreProtocolChars; /*aadt("PreProtocolChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_PreProtocolChars; /*aadt("PreProtocolChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_RuntimeException; /*aadt("RuntimeException",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_DecimalIntegerLiteral; /*aadt("DecimalIntegerLiteral",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_DecimalIntegerLiteral; /*aadt("DecimalIntegerLiteral",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Assoc; /*aadt("Assoc",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Assoc; /*aadt("Assoc",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Maybe_Symbol; /*aadt("Maybe",[aadt("Symbol",[],dataSyntax())],dataSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_MidProtocolChars; /*aadt("MidProtocolChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_MidProtocolChars; /*aadt("MidProtocolChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Command; /*aadt("Command",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Command; /*aadt("Command",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Parameters; /*aadt("Parameters",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Parameters; /*aadt("Parameters",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type Maybe_Associativity_just_Associativity; /*acons(aadt("Maybe",[aadt("Associativity",[],dataSyntax())],dataSyntax()),[aadt("Associativity",[],dataSyntax(),alabel="val")],[],alabel="just")*/ + public final io.usethesource.vallang.type.Type Maybe_Symbol_just_Symbol; /*acons(aadt("Maybe",[aadt("Symbol",[],dataSyntax())],dataSyntax()),[aadt("Symbol",[],dataSyntax(),alabel="val")],[],alabel="just")*/ + public final io.usethesource.vallang.type.Type ADT_PathTail; /*aadt("PathTail",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_PathTail; /*aadt("PathTail",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Literal; /*aadt("Literal",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Literal; /*aadt("Literal",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Statement; /*aadt("Statement",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Statement; /*aadt("Statement",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_ConcretePart; /*aadt("ConcretePart",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_ConcretePart; /*aadt("ConcretePart",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_PathChars; /*aadt("PathChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_PathChars; /*aadt("PathChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Toplevel; /*aadt("Toplevel",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Toplevel; /*aadt("Toplevel",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type $T0; /*aset(aadt("Condition",[],dataSyntax()))*/ + public final io.usethesource.vallang.type.Type ADT_Exception; /*aadt("Exception",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_DateAndTime; /*aadt("DateAndTime",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_DateAndTime; /*aadt("DateAndTime",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type $T3; /*aset(aadt("Symbol",[],dataSyntax()))*/ + public final io.usethesource.vallang.type.Type ADT_Module; /*aadt("Module",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Module; /*aadt("Module",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_PatternWithAction; /*aadt("PatternWithAction",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_PatternWithAction; /*aadt("PatternWithAction",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_UnicodeEscape; /*aadt("UnicodeEscape",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_UnicodeEscape; /*aadt("UnicodeEscape",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Assignable; /*aadt("Assignable",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Assignable; /*aadt("Assignable",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_BasicType; /*aadt("BasicType",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_BasicType; /*aadt("BasicType",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_CommonKeywordParameters; /*aadt("CommonKeywordParameters",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_CommonKeywordParameters; /*aadt("CommonKeywordParameters",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_ProtocolTail; /*aadt("ProtocolTail",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_ProtocolTail; /*aadt("ProtocolTail",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_PostPathChars; /*aadt("PostPathChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_PostPathChars; /*aadt("PostPathChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_StringCharacter; /*aadt("StringCharacter",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_StringCharacter; /*aadt("StringCharacter",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_EvalCommand; /*aadt("EvalCommand",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_EvalCommand; /*aadt("EvalCommand",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_JustTime; /*aadt("JustTime",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_JustTime; /*aadt("JustTime",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_FunctionModifier; /*aadt("FunctionModifier",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_FunctionModifier; /*aadt("FunctionModifier",[],contextFreeSyntax())*/ + + public $Productions(RascalExecutionContext rex){ + this(rex, null); + } + + public $Productions(RascalExecutionContext rex, Object extended){ + super(rex); + this.$me = extended == null ? this : ($Productions_$I)extended; + ModuleStore mstore = rex.getModuleStore(); + mstore.put(rascal.lang.rascal.grammar.definition.$Productions.class, this); + + mstore.importModule(rascal.lang.rascal.syntax.$Rascal.class, rex, rascal.lang.rascal.syntax.$Rascal::new); + mstore.importModule(rascal.lang.rascal.grammar.definition.$Names.class, rex, rascal.lang.rascal.grammar.definition.$Names::new); + mstore.importModule(rascal.$IO.class, rex, rascal.$IO::new); + mstore.importModule(rascal.util.$Maybe.class, rex, rascal.util.$Maybe::new); + mstore.importModule(rascal.lang.rascal.grammar.definition.$Attributes.class, rex, rascal.lang.rascal.grammar.definition.$Attributes::new); + mstore.importModule(rascal.lang.rascal.grammar.definition.$Symbols.class, rex, rascal.lang.rascal.grammar.definition.$Symbols::new); + + M_lang_rascal_syntax_Rascal = mstore.getModule(rascal.lang.rascal.syntax.$Rascal.class); + M_lang_rascal_grammar_definition_Names = mstore.getModule(rascal.lang.rascal.grammar.definition.$Names.class); + M_IO = mstore.getModule(rascal.$IO.class); + M_util_Maybe = mstore.getModule(rascal.util.$Maybe.class); + M_lang_rascal_grammar_definition_Attributes = mstore.getModule(rascal.lang.rascal.grammar.definition.$Attributes.class); + M_lang_rascal_grammar_definition_Symbols = mstore.getModule(rascal.lang.rascal.grammar.definition.$Symbols.class); + + M_ParseTree = mstore.extendModule(rascal.$ParseTree.class, rex, rascal.$ParseTree::new, $me); + M_Type = mstore.extendModule(rascal.$Type.class, rex, rascal.$Type::new, $me); + M_List = mstore.extendModule(rascal.$List.class, rex, rascal.$List::new, $me); + M_Grammar = mstore.extendModule(rascal.$Grammar.class, rex, rascal.$Grammar::new, $me); + M_Message = mstore.extendModule(rascal.$Message.class, rex, rascal.$Message::new, $me); + + + $TS.importStore(M_lang_rascal_syntax_Rascal.$TS); + $TS.importStore(M_ParseTree.$TS); + $TS.importStore(M_Type.$TS); + $TS.importStore(M_List.$TS); + $TS.importStore(M_lang_rascal_grammar_definition_Names.$TS); + $TS.importStore(M_IO.$TS); + $TS.importStore(M_util_Maybe.$TS); + $TS.importStore(M_Grammar.$TS); + $TS.importStore(M_Message.$TS); + $TS.importStore(M_lang_rascal_grammar_definition_Attributes.$TS); + $TS.importStore(M_lang_rascal_grammar_definition_Symbols.$TS); + + $constants = readBinaryConstantsFile(this.getClass(), "rascal/lang/rascal/grammar/definition/$Productions.constants", 11, "4b6a557f9d384a8d2690c4149b4fa16e"); + ADT_Attr = $adt("Attr"); + NT_Replacement = $sort("Replacement"); + ADT_Replacement = $adt("Replacement"); + NT_Kind = $sort("Kind"); + ADT_Kind = $adt("Kind"); + NT_ProtocolChars = $lex("ProtocolChars"); + ADT_ProtocolChars = $adt("ProtocolChars"); + NT_Visibility = $sort("Visibility"); + ADT_Visibility = $adt("Visibility"); + NT_Expression = $sort("Expression"); + ADT_Expression = $adt("Expression"); + NT_LocalVariableDeclaration = $sort("LocalVariableDeclaration"); + ADT_LocalVariableDeclaration = $adt("LocalVariableDeclaration"); + NT_Strategy = $sort("Strategy"); + ADT_Strategy = $adt("Strategy"); + ADT_Tree = $adt("Tree"); + NT_MidStringChars = $lex("MidStringChars"); + ADT_MidStringChars = $adt("MidStringChars"); + NT_LAYOUT = $lex("LAYOUT"); + ADT_LAYOUT = $adt("LAYOUT"); + NT_Pattern = $sort("Pattern"); + ADT_Pattern = $adt("Pattern"); + ADT_LocationChangeType = $adt("LocationChangeType"); + ADT_IOCapability = $adt("IOCapability"); + NT_TagString = $lex("TagString"); + ADT_TagString = $adt("TagString"); + NT_FunctionType = $sort("FunctionType"); + ADT_FunctionType = $adt("FunctionType"); + NT_Label = $sort("Label"); + ADT_Label = $adt("Label"); + NT_PostProtocolChars = $lex("PostProtocolChars"); + ADT_PostProtocolChars = $adt("PostProtocolChars"); + NT_Range = $sort("Range"); + ADT_Range = $adt("Range"); + NT_Concrete = $lex("Concrete"); + ADT_Concrete = $adt("Concrete"); + ADT_Item = $adt("Item"); + NT_RationalLiteral = $lex("RationalLiteral"); + ADT_RationalLiteral = $adt("RationalLiteral"); + NT_RegExpLiteral = $lex("RegExpLiteral"); + ADT_RegExpLiteral = $adt("RegExpLiteral"); + NT_Declarator = $sort("Declarator"); + ADT_Declarator = $adt("Declarator"); + ADT_GrammarModule = $adt("GrammarModule"); + NT_IntegerLiteral = $sort("IntegerLiteral"); + ADT_IntegerLiteral = $adt("IntegerLiteral"); + NT_Prod = $sort("Prod"); + ADT_Prod = $adt("Prod"); + NT_ModuleParameters = $sort("ModuleParameters"); + ADT_ModuleParameters = $adt("ModuleParameters"); + NT_Output = $lex("Output"); + ADT_Output = $adt("Output"); + NT_SyntaxDefinition = $sort("SyntaxDefinition"); + ADT_SyntaxDefinition = $adt("SyntaxDefinition"); + NT_RegExpModifier = $lex("RegExpModifier"); + ADT_RegExpModifier = $adt("RegExpModifier"); + NT_ImportedModule = $sort("ImportedModule"); + ADT_ImportedModule = $adt("ImportedModule"); + NT_BooleanLiteral = $lex("BooleanLiteral"); + ADT_BooleanLiteral = $adt("BooleanLiteral"); + NT_Case = $sort("Case"); + ADT_Case = $adt("Case"); + NT_DateTimeLiteral = $sort("DateTimeLiteral"); + ADT_DateTimeLiteral = $adt("DateTimeLiteral"); + ADT_LocationChangeEvent = $adt("LocationChangeEvent"); + NT_DatePart = $lex("DatePart"); + ADT_DatePart = $adt("DatePart"); + NT_Target = $sort("Target"); + ADT_Target = $adt("Target"); + NT_TimePartNoTZ = $lex("TimePartNoTZ"); + ADT_TimePartNoTZ = $adt("TimePartNoTZ"); + NT_Renaming = $sort("Renaming"); + ADT_Renaming = $adt("Renaming"); + NT_KeywordFormals = $sort("KeywordFormals"); + ADT_KeywordFormals = $adt("KeywordFormals"); + NT_Catch = $sort("Catch"); + ADT_Catch = $adt("Catch"); + ADT_Production = $adt("Production"); + NT_PostStringChars = $lex("PostStringChars"); + ADT_PostStringChars = $adt("PostStringChars"); + NT_Renamings = $sort("Renamings"); + ADT_Renamings = $adt("Renamings"); + NT_KeywordFormal = $sort("KeywordFormal"); + ADT_KeywordFormal = $adt("KeywordFormal"); + NT_OptionalExpression = $sort("OptionalExpression"); + ADT_OptionalExpression = $adt("OptionalExpression"); + ADT_GrammarDefinition = $adt("GrammarDefinition"); + NT_Field = $sort("Field"); + ADT_Field = $adt("Field"); + NT_LocationLiteral = $sort("LocationLiteral"); + ADT_LocationLiteral = $adt("LocationLiteral"); + NT_Tag = $sort("Tag"); + ADT_Tag = $adt("Tag"); + NT_Type = $sort("Type"); + ADT_Type = $adt("Type"); + ADT_Symbol = $adt("Symbol"); + NT_HexIntegerLiteral = $lex("HexIntegerLiteral"); + ADT_HexIntegerLiteral = $adt("HexIntegerLiteral"); + NT_DataTarget = $sort("DataTarget"); + ADT_DataTarget = $adt("DataTarget"); + NT_TimeZonePart = $lex("TimeZonePart"); + ADT_TimeZonePart = $adt("TimeZonePart"); + NT_Declaration = $sort("Declaration"); + ADT_Declaration = $adt("Declaration"); + NT_ShellCommand = $sort("ShellCommand"); + ADT_ShellCommand = $adt("ShellCommand"); + NT_FunctionBody = $sort("FunctionBody"); + ADT_FunctionBody = $adt("FunctionBody"); + NT_PreStringChars = $lex("PreStringChars"); + ADT_PreStringChars = $adt("PreStringChars"); + NT_Nonterminal = $lex("Nonterminal"); + ADT_Nonterminal = $adt("Nonterminal"); + NT_StringLiteral = $sort("StringLiteral"); + ADT_StringLiteral = $adt("StringLiteral"); + NT_Variable = $sort("Variable"); + ADT_Variable = $adt("Variable"); + NT_Name = $lex("Name"); + ADT_Name = $adt("Name"); + NT_NonterminalLabel = $lex("NonterminalLabel"); + ADT_NonterminalLabel = $adt("NonterminalLabel"); + NT_Bound = $sort("Bound"); + ADT_Bound = $adt("Bound"); + NT_TypeArg = $sort("TypeArg"); + ADT_TypeArg = $adt("TypeArg"); + NT_Class = $sort("Class"); + ADT_Class = $adt("Class"); + ADT_Condition = $adt("Condition"); + NT_PathPart = $sort("PathPart"); + ADT_PathPart = $adt("PathPart"); + NT_Signature = $sort("Signature"); + ADT_Signature = $adt("Signature"); + ADT_Associativity = $adt("Associativity"); + NT_Sym = $sort("Sym"); + ADT_Sym = $adt("Sym"); + ADT_LAYOUTLIST = $layouts("LAYOUTLIST"); + NT_RegExp = $lex("RegExp"); + ADT_RegExp = $adt("RegExp"); + NT_Tags = $sort("Tags"); + ADT_Tags = $adt("Tags"); + NT_URLChars = $lex("URLChars"); + ADT_URLChars = $adt("URLChars"); + NT_ModuleActuals = $sort("ModuleActuals"); + ADT_ModuleActuals = $adt("ModuleActuals"); + NT_DataTypeSelector = $sort("DataTypeSelector"); + ADT_DataTypeSelector = $adt("DataTypeSelector"); + NT_Start = $sort("Start"); + ADT_Start = $adt("Start"); + NT_Body = $sort("Body"); + ADT_Body = $adt("Body"); + NT_PrePathChars = $lex("PrePathChars"); + ADT_PrePathChars = $adt("PrePathChars"); + NT_StringTail = $sort("StringTail"); + ADT_StringTail = $adt("StringTail"); + NT_Backslash = $lex("Backslash"); + ADT_Backslash = $adt("Backslash"); + NT_CaseInsensitiveStringConstant = $lex("CaseInsensitiveStringConstant"); + ADT_CaseInsensitiveStringConstant = $adt("CaseInsensitiveStringConstant"); + NT_Char = $lex("Char"); + ADT_Char = $adt("Char"); + NT_JustDate = $lex("JustDate"); + ADT_JustDate = $adt("JustDate"); + NT_ProdModifier = $sort("ProdModifier"); + ADT_ProdModifier = $adt("ProdModifier"); + NT_Header = $sort("Header"); + ADT_Header = $adt("Header"); + ADT_LocationType = $adt("LocationType"); + NT_Assignment = $sort("Assignment"); + ADT_Assignment = $adt("Assignment"); + NT_OptionalComma = $lex("OptionalComma"); + ADT_OptionalComma = $adt("OptionalComma"); + NT_StringConstant = $lex("StringConstant"); + ADT_StringConstant = $adt("StringConstant"); + NT_FunctionDeclaration = $sort("FunctionDeclaration"); + ADT_FunctionDeclaration = $adt("FunctionDeclaration"); + NT_TypeVar = $sort("TypeVar"); + ADT_TypeVar = $adt("TypeVar"); + NT_Variant = $sort("Variant"); + ADT_Variant = $adt("Variant"); + NT_UserType = $sort("UserType"); + ADT_UserType = $adt("UserType"); + NT_Import = $sort("Import"); + ADT_Import = $adt("Import"); + NT_FunctionModifiers = $sort("FunctionModifiers"); + ADT_FunctionModifiers = $adt("FunctionModifiers"); + NT_Formals = $sort("Formals"); + ADT_Formals = $adt("Formals"); + NT_ConcreteHole = $sort("ConcreteHole"); + ADT_ConcreteHole = $adt("ConcreteHole"); + ADT_Message = $adt("Message"); + ADT_CharRange = $adt("CharRange"); + ADT_Grammar = $adt("Grammar"); + NT_StringMiddle = $sort("StringMiddle"); + ADT_StringMiddle = $adt("StringMiddle"); + NT_RealLiteral = $lex("RealLiteral"); + ADT_RealLiteral = $adt("RealLiteral"); + NT_Comprehension = $sort("Comprehension"); + ADT_Comprehension = $adt("Comprehension"); + NT_QualifiedName = $sort("QualifiedName"); + ADT_QualifiedName = $adt("QualifiedName"); + NT_MidPathChars = $lex("MidPathChars"); + ADT_MidPathChars = $adt("MidPathChars"); + NT_StringTemplate = $sort("StringTemplate"); + ADT_StringTemplate = $adt("StringTemplate"); + NT_OctalIntegerLiteral = $lex("OctalIntegerLiteral"); + ADT_OctalIntegerLiteral = $adt("OctalIntegerLiteral"); + NT_ProtocolPart = $sort("ProtocolPart"); + ADT_ProtocolPart = $adt("ProtocolPart"); + NT_NamedBackslash = $lex("NamedBackslash"); + ADT_NamedBackslash = $adt("NamedBackslash"); + ADT_RascalKeywords = $keywords("RascalKeywords"); + NT_Commands = $sort("Commands"); + ADT_Commands = $adt("Commands"); + NT_Comment = $lex("Comment"); + ADT_Comment = $adt("Comment"); + NT_StructuredType = $sort("StructuredType"); + ADT_StructuredType = $adt("StructuredType"); + NT_Visit = $sort("Visit"); + ADT_Visit = $adt("Visit"); + NT_NamedRegExp = $lex("NamedRegExp"); + ADT_NamedRegExp = $adt("NamedRegExp"); + NT_PreProtocolChars = $lex("PreProtocolChars"); + ADT_PreProtocolChars = $adt("PreProtocolChars"); + ADT_RuntimeException = $adt("RuntimeException"); + NT_DecimalIntegerLiteral = $lex("DecimalIntegerLiteral"); + ADT_DecimalIntegerLiteral = $adt("DecimalIntegerLiteral"); + NT_Assoc = $sort("Assoc"); + ADT_Assoc = $adt("Assoc"); + NT_MidProtocolChars = $lex("MidProtocolChars"); + ADT_MidProtocolChars = $adt("MidProtocolChars"); + NT_Command = $sort("Command"); + ADT_Command = $adt("Command"); + NT_Parameters = $sort("Parameters"); + ADT_Parameters = $adt("Parameters"); + NT_PathTail = $sort("PathTail"); + ADT_PathTail = $adt("PathTail"); + NT_Literal = $sort("Literal"); + ADT_Literal = $adt("Literal"); + NT_Statement = $sort("Statement"); + ADT_Statement = $adt("Statement"); + NT_ConcretePart = $lex("ConcretePart"); + ADT_ConcretePart = $adt("ConcretePart"); + NT_PathChars = $lex("PathChars"); + ADT_PathChars = $adt("PathChars"); + NT_Toplevel = $sort("Toplevel"); + ADT_Toplevel = $adt("Toplevel"); + ADT_Exception = $adt("Exception"); + NT_DateAndTime = $lex("DateAndTime"); + ADT_DateAndTime = $adt("DateAndTime"); + NT_Module = $sort("Module"); + ADT_Module = $adt("Module"); + NT_PatternWithAction = $sort("PatternWithAction"); + ADT_PatternWithAction = $adt("PatternWithAction"); + NT_UnicodeEscape = $lex("UnicodeEscape"); + ADT_UnicodeEscape = $adt("UnicodeEscape"); + NT_Assignable = $sort("Assignable"); + ADT_Assignable = $adt("Assignable"); + NT_BasicType = $sort("BasicType"); + ADT_BasicType = $adt("BasicType"); + NT_CommonKeywordParameters = $sort("CommonKeywordParameters"); + ADT_CommonKeywordParameters = $adt("CommonKeywordParameters"); + NT_ProtocolTail = $sort("ProtocolTail"); + ADT_ProtocolTail = $adt("ProtocolTail"); + NT_PostPathChars = $lex("PostPathChars"); + ADT_PostPathChars = $adt("PostPathChars"); + NT_StringCharacter = $lex("StringCharacter"); + ADT_StringCharacter = $adt("StringCharacter"); + NT_EvalCommand = $sort("EvalCommand"); + ADT_EvalCommand = $adt("EvalCommand"); + NT_JustTime = $lex("JustTime"); + ADT_JustTime = $adt("JustTime"); + NT_FunctionModifier = $sort("FunctionModifier"); + ADT_FunctionModifier = $adt("FunctionModifier"); + $T7 = $TF.valueType(); + $T17 = $TF.parameterType("A", $T7); + $T14 = $TF.stringType(); + $T12 = $TF.parameterType("A", $T7); + $T22 = $TF.parameterType("A", $T7); + $T10 = $TF.parameterType("U", $T7); + $T8 = $TF.parameterType("T", $T7); + $T2 = $RTF.nonTerminalType($RVF.constructor(RascalValueFactory.Symbol_Lit, $RVF.string(","))); + NT_Mapping_Expression = $parameterizedSort("Mapping", new Type[] { ADT_Expression }, $RVF.list($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Expression")))); + $T15 = $TF.parameterType("T", ADT_Tree); + NT_KeywordArguments_1 = $parameterizedSort("KeywordArguments", new Type[] { $T15 }, $RVF.list($RVF.constructor(RascalValueFactory.Symbol_Parameter, $RVF.string("T"), $RVF.constructor(RascalValueFactory.Symbol_Adt, $RVF.string("Tree"), $RVF.list())))); + NT_Mapping_Pattern = $parameterizedSort("Mapping", new Type[] { ADT_Pattern }, $RVF.list($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Pattern")))); + $T16 = $TF.parameterType("T", ADT_Tree); + NT_KeywordArguments_Expression = $parameterizedSort("KeywordArguments", new Type[] { ADT_Expression }, $RVF.list($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Expression")))); + NT_Mapping_1 = $parameterizedSort("Mapping", new Type[] { $T15 }, $RVF.list($RVF.constructor(RascalValueFactory.Symbol_Parameter, $RVF.string("T"), $RVF.constructor(RascalValueFactory.Symbol_Adt, $RVF.string("Tree"), $RVF.list())))); + ADT_Maybe_1 = $parameterizedAdt("Maybe", new Type[] { $T17 }); + ADT_Maybe_Attr = $parameterizedAdt("Maybe", new Type[] { ADT_Attr }); + $T13 = $TF.listType($T8); + NT_KeywordArguments_Pattern = $parameterizedSort("KeywordArguments", new Type[] { ADT_Pattern }, $RVF.list($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Pattern")))); + NT_KeywordArgument_1 = $parameterizedSort("KeywordArgument", new Type[] { $T15 }, $RVF.list($RVF.constructor(RascalValueFactory.Symbol_Parameter, $RVF.string("T"), $RVF.constructor(RascalValueFactory.Symbol_Adt, $RVF.string("Tree"), $RVF.list())))); + $T18 = $RTF.nonTerminalType($RVF.constructor(RascalValueFactory.Symbol_IterSeps, $RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Sym")), $RVF.list($RVF.constructor(RascalValueFactory.Symbol_Layouts, $RVF.string("LAYOUTLIST")), $RVF.constructor(RascalValueFactory.Symbol_Lit, $RVF.string(",")), $RVF.constructor(RascalValueFactory.Symbol_Layouts, $RVF.string("LAYOUTLIST"))))); + $T4 = $TF.setType(NT_SyntaxDefinition); + ADT_Maybe_Associativity = $parameterizedAdt("Maybe", new Type[] { ADT_Associativity }); + $T21 = $TF.listType(ADT_Tree); + $T19 = $RTF.nonTerminalType($RVF.constructor(RascalValueFactory.Symbol_IterStarSeps, $RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("ProdModifier")), $RVF.list($RVF.constructor(RascalValueFactory.Symbol_Layouts, $RVF.string("LAYOUTLIST"))))); + $T9 = $RTF.reifiedType($T10); + $T11 = $TF.setType(ADT_Production); + ADT_TreeSearchResult_1 = $parameterizedAdt("TreeSearchResult", new Type[] { $T15 }); + $T5 = $TF.listType(ADT_Symbol); + $T1 = $RTF.nonTerminalType($RVF.constructor(RascalValueFactory.Symbol_IterSeps, $RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Expression")), $RVF.list($RVF.constructor(RascalValueFactory.Symbol_Layouts, $RVF.string("LAYOUTLIST")), $RVF.constructor(RascalValueFactory.Symbol_Lit, $RVF.string(",")), $RVF.constructor(RascalValueFactory.Symbol_Layouts, $RVF.string("LAYOUTLIST"))))); + $T20 = $RTF.nonTerminalType($RVF.constructor(RascalValueFactory.Symbol_IterStarSeps, $RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Sym")), $RVF.list($RVF.constructor(RascalValueFactory.Symbol_Layouts, $RVF.string("LAYOUTLIST"))))); + $T6 = $RTF.reifiedType($T8); + ADT_Maybe_Symbol = $parameterizedAdt("Maybe", new Type[] { ADT_Symbol }); + $T0 = $TF.setType(ADT_Condition); + $T3 = $TF.setType(ADT_Symbol); + ADT_Mapping_Expression = $TF.abstractDataType($TS, "Mapping", new Type[] { ADT_Expression }); + ADT_KeywordArguments_1 = $TF.abstractDataType($TS, "KeywordArguments", new Type[] { $T15 }); + ADT_Mapping_Pattern = $TF.abstractDataType($TS, "Mapping", new Type[] { ADT_Pattern }); + ADT_KeywordArguments_Expression = $TF.abstractDataType($TS, "KeywordArguments", new Type[] { ADT_Expression }); + ADT_Mapping_1 = $TF.abstractDataType($TS, "Mapping", new Type[] { $T15 }); + ADT_KeywordArguments_Pattern = $TF.abstractDataType($TS, "KeywordArguments", new Type[] { ADT_Pattern }); + ADT_KeywordArgument_1 = $TF.abstractDataType($TS, "KeywordArgument", new Type[] { $T15 }); + Maybe_Attr_just_Attr = $TF.constructor($TS, ADT_Maybe_Attr, "just", M_ParseTree.ADT_Attr, "val"); + Maybe_Associativity_just_Associativity = $TF.constructor($TS, ADT_Maybe_Associativity, "just", M_ParseTree.ADT_Associativity, "val"); + Maybe_Symbol_just_Symbol = $TF.constructor($TS, ADT_Maybe_Symbol, "just", M_ParseTree.ADT_Symbol, "val"); + + + + } + public IList addLabels(IValue $P0, IValue $P1){ // Generated by Resolver + return (IList) M_Type.addLabels($P0, $P1); + } + public IBool sameType(IValue $P0, IValue $P1){ // Generated by Resolver + return (IBool) M_ParseTree.sameType($P0, $P1); + } + public IBool isAliasType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isAliasType($P0); + } + public IString intercalate(IValue $P0, IValue $P1){ // Generated by Resolver + return (IString) M_List.intercalate($P0, $P1); + } + public IValue head(IValue $P0){ // Generated by Resolver + return (IValue) M_List.head($P0); + } + public IList head(IValue $P0, IValue $P1){ // Generated by Resolver + return (IList) M_List.head($P0, $P1); + } + public IInteger size(IValue $P0){ // Generated by Resolver + return (IInteger) M_List.size($P0); + } + public IBool isStrType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isStrType($P0); + } + public IMap toMap(IValue $P0){ // Generated by Resolver + return (IMap) M_List.toMap($P0); + } + public IConstructor choice(IValue $P0, IValue $P1){ // Generated by Resolver + return (IConstructor) M_Type.choice($P0, $P1); + } + public IBool isADTType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isADTType($P0); + } + public IBool isValueType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isValueType($P0); + } + public IList mapper(IValue $P0, IValue $P1){ // Generated by Resolver + return (IList) M_List.mapper($P0, $P1); + } + public IBool isListType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isListType($P0); + } + public IBool isRealType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isRealType($P0); + } + public IList reverse(IValue $P0){ // Generated by Resolver + return (IList) M_List.reverse($P0); + } + public IBool isTypeVar(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isTypeVar($P0); + } + public TypedFunctionInstance2 firstAmbiguityFinder(IValue $P0, java.util.Map $kwpActuals){ // Generated by Resolver + return (TypedFunctionInstance2) M_ParseTree.firstAmbiguityFinder($P0, $kwpActuals); + } + public IBool isEmpty(IValue $P0){ // Generated by Resolver + return (IBool) M_List.isEmpty($P0); + } + public IList remove(IValue $P0, IValue $P1){ // Generated by Resolver + return (IList) M_List.remove($P0, $P1); + } + public IValue max(IValue $P0){ // Generated by Resolver + return (IValue) M_List.max($P0); + } + public IConstructor priority(IValue $P0, IValue $P1){ // Generated by Resolver + return (IConstructor) M_ParseTree.priority($P0, $P1); + } + public IValue getFirstFrom(IValue $P0){ // Generated by Resolver + return (IValue) M_List.getFirstFrom($P0); + } + public IMap distribution(IValue $P0){ // Generated by Resolver + return (IMap) M_List.distribution($P0); + } + public IConstructor mod2assoc(IValue $P0){ // Generated by Resolver + return (IConstructor) M_lang_rascal_grammar_definition_Attributes.mod2assoc($P0); + } + public TypedFunctionInstance2 loadParser(IValue $P0, IValue $P1, java.util.Map $kwpActuals){ // Generated by Resolver + return (TypedFunctionInstance2) M_ParseTree.loadParser($P0, $P1, $kwpActuals); + } + public IString printSymbol(IValue $P0, IValue $P1){ // Generated by Resolver + return (IString) M_ParseTree.printSymbol($P0, $P1); + } + public IBool isNodeType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isNodeType($P0); + } + public INode conditional(IValue $P0, IValue $P1){ // Generated by Resolver + INode $result = null; + Type $P0Type = $P0.getType(); + Type $P1Type = $P1.getType(); + if($isSubtypeOf($P0Type, M_ParseTree.ADT_Symbol) && $isSubtypeOf($P1Type,$T0)){ + $result = (INode)M_lang_rascal_grammar_definition_Symbols.lang_rascal_grammar_definition_Symbols_conditional$f9ac60504818807f((IConstructor) $P0, (ISet) $P1); + if($result != null) return $result; + } + if($isSubtypeOf($P0Type, M_ParseTree.ADT_Symbol) && $isSubtypeOf($P1Type,$T0)){ + $result = (INode)M_lang_rascal_grammar_definition_Symbols.lang_rascal_grammar_definition_Symbols_conditional$a78f69e7726562ef((IConstructor) $P0, (ISet) $P1); + if($result != null) return $result; + } + if($isNonTerminal($P0Type, M_lang_rascal_syntax_Rascal.NT_Expression) && $isSubtypeOf($P1Type,$T1)){ + return $RVF.constructor(M_lang_rascal_syntax_Rascal.Replacement_conditional_Expression_iter_seps_Expression, new IValue[]{(ITree) $P0, (ITree) $P1}); + } + if($isSubtypeOf($P0Type, M_ParseTree.ADT_Symbol) && $isSubtypeOf($P1Type,$T0)){ + return $RVF.constructor(M_ParseTree.Symbol_conditional_Symbol_set_Condition, new IValue[]{(IConstructor) $P0, (ISet) $P1}); + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0, $P1)); + } + public IConstructor grammar(IValue $P0){ // Generated by Resolver + return (IConstructor) M_Grammar.grammar($P0); + } + public IConstructor grammar(IValue $P0, IValue $P1){ // Generated by Resolver + return (IConstructor) M_Grammar.grammar($P0, $P1); + } + public IBool isSorted(IValue $P0, java.util.Map $kwpActuals){ // Generated by Resolver + return (IBool) M_List.isSorted($P0, $kwpActuals); + } + public IList take(IValue $P0, IValue $P1){ // Generated by Resolver + return (IList) M_List.take($P0, $P1); + } + public ISet toSet(IValue $P0){ // Generated by Resolver + return (ISet) M_List.toSet($P0); + } + public IBool isReifiedType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isReifiedType($P0); + } + public ITuple takeOneFrom(IValue $P0){ // Generated by Resolver + return (ITuple) M_List.takeOneFrom($P0); + } + public ISet dependencies(IValue $P0){ // Generated by Resolver + return (ISet) M_Grammar.dependencies($P0); + } + public IConstructor alt(IValue $P0){ // Generated by Resolver + IConstructor $result = null; + Type $P0Type = $P0.getType(); + if($isSubtypeOf($P0Type,$T3)){ + $result = (IConstructor)M_lang_rascal_grammar_definition_Symbols.lang_rascal_grammar_definition_Symbols_alt$01fd93bf17a1bf85((ISet) $P0); + if($result != null) return $result; + } + if($isSubtypeOf($P0Type,$T3)){ + return $RVF.constructor(M_ParseTree.Symbol_alt_set_Symbol, new IValue[]{(ISet) $P0}); + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0)); + } + public IInteger indexOf(IValue $P0, IValue $P1){ // Generated by Resolver + return (IInteger) M_List.indexOf($P0, $P1); + } + public IBool isRelType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isRelType($P0); + } + public ITuple unzip2(IValue $P0){ // Generated by Resolver + return (ITuple) M_List.unzip2($P0); + } + public IBool isConstructorType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isConstructorType($P0); + } + public IConstructor var_func(IValue $P0, IValue $P1, IValue $P2){ // Generated by Resolver + return (IConstructor) M_Type.var_func($P0, $P1, $P2); + } + public IBool equivalent(IValue $P0, IValue $P1){ // Generated by Resolver + return (IBool) M_Type.equivalent($P0, $P1); + } + public IList takeWhile(IValue $P0, IValue $P1){ // Generated by Resolver + return (IList) M_List.takeWhile($P0, $P1); + } + public INumber sum(IValue $P0){ // Generated by Resolver + return (INumber) M_List.sum($P0); + } + public IList addParamLabels(IValue $P0, IValue $P1){ // Generated by Resolver + return (IList) M_Type.addParamLabels($P0, $P1); + } + public IList delete(IValue $P0, IValue $P1){ // Generated by Resolver + return (IList) M_List.delete($P0, $P1); + } + public IBool keepParams(IValue $P0, IValue $P1){ // Generated by Resolver + return (IBool) M_Type.keepParams($P0, $P1); + } + public IBool isListRelType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isListRelType($P0); + } + public ITuple unzip3(IValue $P0){ // Generated by Resolver + return (ITuple) M_List.unzip3($P0); + } + public IBool eq(IValue $P0, IValue $P1){ // Generated by Resolver + return (IBool) M_Type.eq($P0, $P1); + } + public IList insertAt(IValue $P0, IValue $P1, IValue $P2){ // Generated by Resolver + return (IList) M_List.insertAt($P0, $P1, $P2); + } + public IBool isMapType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isMapType($P0); + } + public IValue reducer(IValue $P0, IValue $P1, IValue $P2){ // Generated by Resolver + return (IValue) M_List.reducer($P0, $P1, $P2); + } + public IString toString(IValue $P0){ // Generated by Resolver + return (IString) M_List.toString($P0); + } + public ITuple rule2prod(IValue $P0){ // Generated by Resolver + ITuple $result = null; + Type $P0Type = $P0.getType(); + if($isNonTerminal($P0Type, M_lang_rascal_syntax_Rascal.NT_SyntaxDefinition)){ + $result = (ITuple)lang_rascal_grammar_definition_Productions_rule2prod$30da62f1b584d9ad((ITree) $P0); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0)); + } + public ISet permutations(IValue $P0){ // Generated by Resolver + return (ISet) M_List.permutations($P0); + } + public TypedFunctionInstance3 loadParsers(IValue $P0, java.util.Map $kwpActuals){ // Generated by Resolver + return (TypedFunctionInstance3) M_ParseTree.loadParsers($P0, $kwpActuals); + } + public IBool isBoolType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isBoolType($P0); + } + public ISet imports(IValue $P0){ // Generated by Resolver + return (ISet) M_Grammar.imports($P0); + } + public IValue make(IValue $P0, IValue $P1, IValue $P2){ // Generated by Resolver + return (IValue) M_Type.make($P0, $P1, $P2); + } + public IValue make(IValue $P0, IValue $P1, IValue $P2, IValue $P3){ // Generated by Resolver + return (IValue) M_Type.make($P0, $P1, $P2, $P3); + } + public IList drop(IValue $P0, IValue $P1){ // Generated by Resolver + return (IList) M_List.drop($P0, $P1); + } + public IValue elementAt(IValue $P0, IValue $P1){ // Generated by Resolver + return (IValue) M_List.elementAt($P0, $P1); + } + public IBool isLocType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isLocType($P0); + } + public IValue implode(IValue $P0, IValue $P1){ // Generated by Resolver + return (IValue) M_ParseTree.implode($P0, $P1); + } + public TypedFunctionInstance3 firstAmbiguityFinders(IValue $P0, java.util.Map $kwpActuals){ // Generated by Resolver + return (TypedFunctionInstance3) M_ParseTree.firstAmbiguityFinders($P0, $kwpActuals); + } + public IList upTill(IValue $P0){ // Generated by Resolver + return (IList) M_List.upTill($P0); + } + public IList tail(IValue $P0){ // Generated by Resolver + return (IList) M_List.tail($P0); + } + public IList tail(IValue $P0, IValue $P1){ // Generated by Resolver + return (IList) M_List.tail($P0, $P1); + } + public ITuple headTail(IValue $P0){ // Generated by Resolver + return (ITuple) M_List.headTail($P0); + } + public IList zip2(IValue $P0, IValue $P1){ // Generated by Resolver + return (IList) M_List.zip2($P0, $P1); + } + public ITuple pop(IValue $P0){ // Generated by Resolver + return (ITuple) M_List.pop($P0); + } + public IConstructor typeOf(IValue $P0){ // Generated by Resolver + return (IConstructor) M_Type.typeOf($P0); + } + public IConstructor treeAt(IValue $P0, IValue $P1, IValue $P2){ // Generated by Resolver + return (IConstructor) M_ParseTree.treeAt($P0, $P1, $P2); + } + public IMap toMapUnique(IValue $P0){ // Generated by Resolver + return (IMap) M_List.toMapUnique($P0); + } + public IList index(IValue $P0){ // Generated by Resolver + return (IList) M_List.index($P0); + } + public IBool allLabeled(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.allLabeled($P0); + } + public IValue min(IValue $P0){ // Generated by Resolver + return (IValue) M_List.min($P0); + } + public IList prefix(IValue $P0){ // Generated by Resolver + return (IList) M_List.prefix($P0); + } + public IList zip3(IValue $P0, IValue $P1, IValue $P2){ // Generated by Resolver + return (IList) M_List.zip3($P0, $P1, $P2); + } + public IConstructor prod2prod(IValue $P0, IValue $P1){ // Generated by Resolver + IConstructor $result = null; + Type $P0Type = $P0.getType(); + Type $P1Type = $P1.getType(); + if($isSubtypeOf($P0Type, M_ParseTree.ADT_Symbol) && $isNonTerminal($P1Type, M_lang_rascal_syntax_Rascal.NT_Prod)){ + $result = (IConstructor)lang_rascal_grammar_definition_Productions_prod2prod$70dc8b016f745552((IConstructor) $P0, (ITree) $P1); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0, $P1)); + } + public IList slice(IValue $P0, IValue $P1, IValue $P2){ // Generated by Resolver + return (IList) M_List.slice($P0, $P1, $P2); + } + public IConstructor compose(IValue $P0, IValue $P1){ // Generated by Resolver + return (IConstructor) M_Grammar.compose($P0, $P1); + } + public IBool isSetType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isSetType($P0); + } + public void storeParsers(IValue $P0, IValue $P1){ // Generated by Resolver + M_ParseTree.storeParsers($P0, $P1); + } + public IInteger lastIndexOf(IValue $P0, IValue $P1){ // Generated by Resolver + return (IInteger) M_List.lastIndexOf($P0, $P1); + } + public ITree parse(IValue $P0, IValue $P1, IValue $P2, java.util.Map $kwpActuals){ // Generated by Resolver + return (ITree) M_ParseTree.parse($P0, $P1, $P2, $kwpActuals); + } + public ITree parse(IValue $P0, IValue $P1, java.util.Map $kwpActuals){ // Generated by Resolver + return (ITree) M_ParseTree.parse($P0, $P1, $kwpActuals); + } + public TypedFunctionInstance3 parsers(IValue $P0, java.util.Map $kwpActuals){ // Generated by Resolver + return (TypedFunctionInstance3) M_ParseTree.parsers($P0, $kwpActuals); + } + public IList concat(IValue $P0){ // Generated by Resolver + return (IList) M_List.concat($P0); + } + public IBool isRatType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isRatType($P0); + } + public IValue top(IValue $P0){ // Generated by Resolver + return (IValue) M_List.top($P0); + } + public IString itoString(IValue $P0){ // Generated by Resolver + return (IString) M_List.itoString($P0); + } + public IList getLabels(IValue $P0){ // Generated by Resolver + return (IList) M_Type.getLabels($P0); + } + public IValue last(IValue $P0){ // Generated by Resolver + return (IValue) M_List.last($P0); + } + public IList getParamLabels(IValue $P0){ // Generated by Resolver + return (IList) M_Type.getParamLabels($P0); + } + public IBool isNumType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isNumType($P0); + } + public IList stripLabels(IValue $P0){ // Generated by Resolver + return (IList) M_Type.stripLabels($P0); + } + public IConstructor syntax2grammar(IValue $P0){ // Generated by Resolver + IConstructor $result = null; + Type $P0Type = $P0.getType(); + if($isSubtypeOf($P0Type,$T4)){ + $result = (IConstructor)lang_rascal_grammar_definition_Productions_syntax2grammar$d142b5044e543aa6((ISet) $P0); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0)); + } + public IBool isTupleType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isTupleType($P0); + } + public IBool isBagType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isBagType($P0); + } + public IList intersperse(IValue $P0, IValue $P1){ // Generated by Resolver + return (IList) M_List.intersperse($P0, $P1); + } + public IList merge(IValue $P0, IValue $P1, IValue $P2){ // Generated by Resolver + return (IList) M_List.merge($P0, $P1, $P2); + } + public IList merge(IValue $P0, IValue $P1){ // Generated by Resolver + return (IList) M_List.merge($P0, $P1); + } + public IBool isVoidType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isVoidType($P0); + } + public IConstructor strip(IValue $P0){ // Generated by Resolver + return (IConstructor) M_lang_rascal_grammar_definition_Symbols.strip($P0); + } + public IBool isNonTerminalType(IValue $P0){ // Generated by Resolver + return (IBool) M_ParseTree.isNonTerminalType($P0); + } + public IValue typeCast(IValue $P0, IValue $P1){ // Generated by Resolver + return (IValue) M_Type.typeCast($P0, $P1); + } + public IValue lub(IValue $P0, IValue $P1){ // Generated by Resolver + return (IValue) M_Type.lub($P0, $P1); + } + public IList shuffle(IValue $P0){ // Generated by Resolver + return (IList) M_List.shuffle($P0); + } + public IList shuffle(IValue $P0, IValue $P1){ // Generated by Resolver + return (IList) M_List.shuffle($P0, $P1); + } + public ISet $extends(IValue $P0){ // Generated by Resolver + return (ISet) M_Grammar.$extends($P0); + } + public IBool comparable(IValue $P0, IValue $P1){ // Generated by Resolver + return (IBool) M_Type.comparable($P0, $P1); + } + public IBool subtype(IValue $P0, IValue $P1){ // Generated by Resolver + IBool $result = null; + Type $P0Type = $P0.getType(); + Type $P1Type = $P1.getType(); + switch(Fingerprint.getFingerprint($P0)){ + + case 1643638592: + if($isSubtypeOf($P0Type, M_ParseTree.ADT_Symbol) && $isSubtypeOf($P1Type, M_ParseTree.ADT_Symbol)){ + $result = (IBool)M_Type.Type_subtype$162da85a0f5a9f0d((IConstructor) $P0, (IConstructor) $P1); + if($result != null) return $result; + } + break; + case 26576112: + if($isSubtypeOf($P0Type, M_ParseTree.ADT_Symbol) && $isSubtypeOf($P1Type, M_ParseTree.ADT_Symbol)){ + $result = (IBool)M_Type.Type_subtype$258479665eae36af((IConstructor) $P0, (IConstructor) $P1); + if($result != null) return $result; + $result = (IBool)M_Type.Type_subtype$0462d461bde80a82((IConstructor) $P0, (IConstructor) $P1); + if($result != null) return $result; + } + break; + case 1725888: + if($isSubtypeOf($P0Type, M_ParseTree.ADT_Symbol) && $isSubtypeOf($P1Type, M_ParseTree.ADT_Symbol)){ + $result = (IBool)M_Type.Type_subtype$f6957636a33615ae((IConstructor) $P0, (IConstructor) $P1); + if($result != null) return $result; + } + break; + case 1206598288: + if($isSubtypeOf($P0Type, M_ParseTree.ADT_Symbol) && $isSubtypeOf($P1Type, M_ParseTree.ADT_Symbol)){ + $result = (IBool)M_Type.Type_subtype$b674428cffef84bc((IConstructor) $P0, (IConstructor) $P1); + if($result != null) return $result; + } + break; + case 97904160: + if($isSubtypeOf($P0Type, M_ParseTree.ADT_Symbol) && $isSubtypeOf($P1Type, M_ParseTree.ADT_Symbol)){ + $result = (IBool)M_Type.Type_subtype$98167e340333c9a5((IConstructor) $P0, (IConstructor) $P1); + if($result != null) return $result; + $result = (IBool)M_Type.Type_subtype$4fe5b133e2ee1de9((IConstructor) $P0, (IConstructor) $P1); + if($result != null) return $result; + } + break; + case 28290288: + if($isSubtypeOf($P0Type, M_ParseTree.ADT_Symbol) && $isSubtypeOf($P1Type, M_ParseTree.ADT_Symbol)){ + $result = (IBool)M_ParseTree.ParseTree_subtype$384d8d76f0c7a053((IConstructor) $P0, (IConstructor) $P1); + if($result != null) return $result; + } + break; + case 910096: + if($isSubtypeOf($P0Type, M_ParseTree.ADT_Symbol) && $isSubtypeOf($P1Type, M_ParseTree.ADT_Symbol)){ + $result = (IBool)M_Type.Type_subtype$ca59d9bf5276e15d((IConstructor) $P0, (IConstructor) $P1); + if($result != null) return $result; + $result = (IBool)M_Type.Type_subtype$e77633ea9a4ac6a5((IConstructor) $P0, (IConstructor) $P1); + if($result != null) return $result; + } + break; + case 902344: + if($isSubtypeOf($P0Type, M_ParseTree.ADT_Symbol) && $isSubtypeOf($P1Type, M_ParseTree.ADT_Symbol)){ + $result = (IBool)M_Type.Type_subtype$21c6b8b775030d1d((IConstructor) $P0, (IConstructor) $P1); + if($result != null) return $result; + $result = (IBool)M_Type.Type_subtype$98e19b11a09faf67((IConstructor) $P0, (IConstructor) $P1); + if($result != null) return $result; + } + break; + case -1322071552: + if($isSubtypeOf($P0Type, M_ParseTree.ADT_Symbol) && $isSubtypeOf($P1Type, M_ParseTree.ADT_Symbol)){ + $result = (IBool)M_Type.Type_subtype$0862159b9fa78cf9((IConstructor) $P0, (IConstructor) $P1); + if($result != null) return $result; + } + break; + case 26641768: + if($isSubtypeOf($P0Type, M_ParseTree.ADT_Symbol) && $isSubtypeOf($P1Type, M_ParseTree.ADT_Symbol)){ + $result = (IBool)M_Type.Type_subtype$ab363c241c416a71((IConstructor) $P0, (IConstructor) $P1); + if($result != null) return $result; + $result = (IBool)M_Type.Type_subtype$4de9a977591be6e5((IConstructor) $P0, (IConstructor) $P1); + if($result != null) return $result; + } + break; + case 778304: + if($isSubtypeOf($P0Type, M_ParseTree.ADT_Symbol) && $isSubtypeOf($P1Type, M_ParseTree.ADT_Symbol)){ + $result = (IBool)M_Type.Type_subtype$23f59dc1171dc69d((IConstructor) $P0, (IConstructor) $P1); + if($result != null) return $result; + } + break; + case 100948096: + if($isSubtypeOf($P0Type, M_ParseTree.ADT_Symbol) && $isSubtypeOf($P1Type, M_ParseTree.ADT_Symbol)){ + $result = (IBool)M_Type.Type_subtype$ddf53e134f4d5416((IConstructor) $P0, (IConstructor) $P1); + if($result != null) return $result; + } + break; + case 112955840: + if($isSubtypeOf($P0Type, M_ParseTree.ADT_Symbol) && $isSubtypeOf($P1Type, M_ParseTree.ADT_Symbol)){ + $result = (IBool)M_Type.Type_subtype$bc5943e83a6df899((IConstructor) $P0, (IConstructor) $P1); + if($result != null) return $result; + $result = (IBool)M_Type.Type_subtype$282ad33dd55efdcc((IConstructor) $P0, (IConstructor) $P1); + if($result != null) return $result; + } + break; + case 1542928: + if($isSubtypeOf($P0Type, M_ParseTree.ADT_Symbol) && $isSubtypeOf($P1Type, M_ParseTree.ADT_Symbol)){ + $result = (IBool)M_Type.Type_subtype$5f5250bbf1aff423((IConstructor) $P0, (IConstructor) $P1); + if($result != null) return $result; + $result = (IBool)M_Type.Type_subtype$15cedff9916fdbee((IConstructor) $P0, (IConstructor) $P1); + if($result != null) return $result; + } + break; + case 885800512: + if($isSubtypeOf($P0Type, M_ParseTree.ADT_Symbol) && $isSubtypeOf($P1Type, M_ParseTree.ADT_Symbol)){ + $result = (IBool)M_Type.Type_subtype$44422dfea95218a8((IConstructor) $P0, (IConstructor) $P1); + if($result != null) return $result; + } + break; + } + if($isSubtypeOf($P0Type,$T5) && $isSubtypeOf($P1Type,$T5)){ + $result = (IBool)M_Type.Type_subtype$e6962df5576407da((IList) $P0, (IList) $P1); + if($result != null) return $result; + } + if($isSubtypeOf($P0Type, M_ParseTree.ADT_Symbol) && $isSubtypeOf($P1Type, M_ParseTree.ADT_Symbol)){ + $result = (IBool)M_Type.Type_subtype$cfecefb3bc3fa773((IConstructor) $P0, (IConstructor) $P1); + if($result != null) return $result; + $result = (IBool)M_Type.Type_subtype$53c4de769757bddc((IConstructor) $P0, (IConstructor) $P1); + if($result != null) return $result; + $result = (IBool)M_Type.Type_subtype$2750c116f0b05084((IConstructor) $P0, (IConstructor) $P1); + if($result != null) return $result; + $result = (IBool)M_Type.Type_subtype$39fbab80e9db10e1((IConstructor) $P0, (IConstructor) $P1); + if($result != null) return $result; + $result = (IBool)M_Type.Type_subtype$3eada106dbc66d2d((IConstructor) $P0, (IConstructor) $P1); + if($result != null) return $result; + $result = (IBool)M_Type.Type_subtype$30215aaed6c33fd7((IConstructor) $P0, (IConstructor) $P1); + if($result != null) return $result; + $result = (IBool)M_Type.Type_subtype$1b2387a35f10c1e0((IConstructor) $P0, (IConstructor) $P1); + if($result != null) return $result; + $result = (IBool)M_Type.Type_subtype$80633493313ebd18((IConstructor) $P0, (IConstructor) $P1); + if($result != null) return $result; + $result = (IBool)M_Type.Type_subtype$3aa09e73e41fcf84((IConstructor) $P0, (IConstructor) $P1); + if($result != null) return $result; + } + if($isSubtypeOf($P0Type,$T6) && $isSubtypeOf($P1Type,$T9)){ + $result = (IBool)M_Type.Type_subtype$7b9c005ac35dd586((IConstructor) $P0, (IConstructor) $P1); + if($result != null) return $result; + } + if($isSubtypeOf($P0Type, M_ParseTree.ADT_Symbol) && $isSubtypeOf($P1Type, M_ParseTree.ADT_Symbol)){ + $result = (IBool)M_Type.Type_subtype$06d2c71d010480ef((IConstructor) $P0, (IConstructor) $P1); + if($result != null) return $result; + } + if($isSubtypeOf($P0Type,$T5) && $isSubtypeOf($P1Type,$T5)){ + $result = (IBool)M_Type.Type_subtype$812a7f34ff841fdb((IList) $P0, (IList) $P1); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0, $P1)); + } + public IValue getOneFrom(IValue $P0){ // Generated by Resolver + return (IValue) M_List.getOneFrom($P0); + } + public IString unparse(IValue $P0){ // Generated by Resolver + return (IString) M_ParseTree.unparse($P0); + } + public IConstructor associativity(IValue $P0, IValue $P1, IValue $P2){ // Generated by Resolver + IConstructor $result = null; + Type $P0Type = $P0.getType(); + Type $P1Type = $P1.getType(); + Type $P2Type = $P2.getType(); + if($isSubtypeOf($P0Type, M_ParseTree.ADT_Symbol) && $isSubtypeOf($P1Type, M_ParseTree.ADT_Associativity) && $isSubtypeOf($P2Type,$T11)){ + $result = (IConstructor)M_ParseTree.ParseTree_associativity$9299e943b00366a7((IConstructor) $P0, (IConstructor) $P1, (ISet) $P2); + if($result != null) return $result; + $result = (IConstructor)M_ParseTree.ParseTree_associativity$95843a2f3959b22f((IConstructor) $P0, (IConstructor) $P1, (ISet) $P2); + if($result != null) return $result; + $result = (IConstructor)M_ParseTree.ParseTree_associativity$05ee42b13b7e96fb((IConstructor) $P0, (IConstructor) $P1, (ISet) $P2); + if($result != null) return $result; + } + if($isSubtypeOf($P0Type, M_ParseTree.ADT_Symbol) && $isSubtypeOf($P1Type, M_util_Maybe.ADT_Maybe_1) && $isSubtypeOf($P2Type, M_ParseTree.ADT_Production)){ + $result = (IConstructor)lang_rascal_grammar_definition_Productions_associativity$09cd814bba935894((IConstructor) $P0, (IConstructor) $P1, (IConstructor) $P2); + if($result != null) return $result; + } + if($isSubtypeOf($P0Type, M_ParseTree.ADT_Symbol) && $isSubtypeOf($P1Type, ADT_Maybe_Associativity) && $isSubtypeOf($P2Type, M_ParseTree.ADT_Production)){ + $result = (IConstructor)lang_rascal_grammar_definition_Productions_associativity$fe1234ba22a8be5e((IConstructor) $P0, (IConstructor) $P1, (IConstructor) $P2); + if($result != null) return $result; + } + if($isSubtypeOf($P0Type, M_ParseTree.ADT_Symbol) && $isSubtypeOf($P1Type, M_ParseTree.ADT_Associativity) && $isSubtypeOf($P2Type,$T11)){ + return $RVF.constructor(M_ParseTree.Production_associativity_Symbol_Associativity_set_Production, new IValue[]{(IConstructor) $P0, (IConstructor) $P1, (ISet) $P2}); + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0, $P1, $P2)); + } + public IMap removeFromBag(IValue $P0, IValue $P1, IValue $P2){ // Generated by Resolver + return (IMap) M_List.removeFromBag($P0, $P1, $P2); + } + public IMap removeFromBag(IValue $P0, IValue $P1){ // Generated by Resolver + return (IMap) M_List.removeFromBag($P0, $P1); + } + public ITuple split(IValue $P0){ // Generated by Resolver + return (ITuple) M_List.split($P0); + } + public IList push(IValue $P0, IValue $P1){ // Generated by Resolver + return (IList) M_List.push($P0, $P1); + } + public IBool noneLabeled(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.noneLabeled($P0); + } + public ISet permutationsBag(IValue $P0){ // Generated by Resolver + return (ISet) M_List.permutationsBag($P0); + } + public IList mix(IValue $P0, IValue $P1){ // Generated by Resolver + return (IList) M_List.mix($P0, $P1); + } + public IInteger mainMessageHandler(IValue $P0, java.util.Map $kwpActuals){ // Generated by Resolver + return (IInteger) M_Message.mainMessageHandler($P0, $kwpActuals); + } + public IBool isFunctionType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isFunctionType($P0); + } + public IValue glb(IValue $P0, IValue $P1){ // Generated by Resolver + return (IValue) M_Type.glb($P0, $P1); + } + public ITree firstAmbiguity(IValue $P0, IValue $P1){ // Generated by Resolver + return (ITree) M_ParseTree.firstAmbiguity($P0, $P1); + } + public ISet toRel(IValue $P0){ // Generated by Resolver + return (ISet) M_List.toRel($P0); + } + public IValue sort(IValue $P0){ // Generated by Resolver + IValue $result = null; + Type $P0Type = $P0.getType(); + if($isSubtypeOf($P0Type,$T13)){ + $result = (IValue)M_List.List_sort$1fe4426c8c8039da((IList) $P0); + if($result != null) return $result; + } + if($isSubtypeOf($P0Type,$T14)){ + return $RVF.constructor(M_ParseTree.Symbol_sort_str, new IValue[]{(IString) $P0}); + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0)); + } + public IList sort(IValue $P0, IValue $P1){ // Generated by Resolver + return (IList) M_List.sort($P0, $P1); + } + public TypedFunctionInstance2 parser(IValue $P0, java.util.Map $kwpActuals){ // Generated by Resolver + return (TypedFunctionInstance2) M_ParseTree.parser($P0, $kwpActuals); + } + public IConstructor seq(IValue $P0){ // Generated by Resolver + IConstructor $result = null; + Type $P0Type = $P0.getType(); + if($isSubtypeOf($P0Type,$T5)){ + $result = (IConstructor)M_lang_rascal_grammar_definition_Symbols.lang_rascal_grammar_definition_Symbols_seq$5dde90ea795fac79((IList) $P0); + if($result != null) return $result; + } + if($isSubtypeOf($P0Type,$T5)){ + return $RVF.constructor(M_ParseTree.Symbol_seq_list_Symbol, new IValue[]{(IList) $P0}); + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0)); + } + public IList dup(IValue $P0){ // Generated by Resolver + return (IList) M_List.dup($P0); + } + public IBool isIntType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isIntType($P0); + } + public IBool isDateTimeType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isDateTimeType($P0); + } + public IString write(IValue $P0, java.util.Map $kwpActuals){ // Generated by Resolver + return (IString) M_Message.write($P0, $kwpActuals); + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/lang/rascal/grammar/definition/Productions.rsc|(739,333,<24,0>,<36,1>) + public IConstructor lang_rascal_grammar_definition_Productions_syntax2grammar$d142b5044e543aa6(ISet defs_0){ + + + ISet prods_1 = ((ISet)($RVF.set(((IConstructor)($RVF.constructor(M_ParseTree.Production_prod_Symbol_list_Symbol_set_Attr, new IValue[]{((IConstructor)($RVF.constructor(M_ParseTree.Symbol_empty_, new IValue[]{}))), ((IList)$constants.get(0)/*[]*/), ((ISet)$constants.get(1)/*{}*/)}))), ((IConstructor)$constants.get(2)/*prod(layouts("$default$"),[],{})*/)))); + ISet starts_2 = ((ISet)$constants.get(1)/*{}*/); + /*muExists*/FOR0: + do { + FOR0_GEN927: + for(IValue $elem1_for : ((ISet)defs_0)){ + ITree $elem1 = (ITree) $elem1_for; + ITree sd_3 = ((ITree)($elem1)); + ITuple $TMP0 = (ITuple)($me.rule2prod(((ITree)sd_3))); + ISet ps_4 = ((ISet)($atuple_subscript_int(((ITuple)($TMP0)),0))); + IConstructor st_5 = ((IConstructor)($atuple_subscript_int(((ITuple)($TMP0)),1))); + prods_1 = ((ISet)($aset_add_aset(((ISet)prods_1),((ISet)ps_4)))); + if($is(((IConstructor)st_5),((IString)$constants.get(4)/*"just"*/))){ + starts_2 = ((ISet)($aset_add_elm(((ISet)starts_2),((IConstructor)(((IConstructor)($aadt_get_field(((IConstructor)st_5), "val")))))))); + + } + + } + continue FOR0; + + } while(false); + /* void: muCon([]) */return ((IConstructor)($me.grammar(((ISet)starts_2), ((ISet)prods_1)))); + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/lang/rascal/grammar/definition/Productions.rsc|(1074,1297,<38,0>,<58,1>) + public ITuple lang_rascal_grammar_definition_Productions_rule2prod$30da62f1b584d9ad(ITree sd_0){ + + + final ITree $switchVal2 = ((ITree)sd_0); + boolean noCaseMatched_$switchVal2 = true; + SWITCH2: switch(Fingerprint.getFingerprint($switchVal2)){ + + case 0: + if(noCaseMatched_$switchVal2){ + noCaseMatched_$switchVal2 = false; + + } + + + default: if($isSubtypeOf($switchVal2.getType(),M_lang_rascal_syntax_Rascal.NT_SyntaxDefinition)){ + /*muExists*/CASE_0_0: + do { + if($nonterminal_has_name_and_arity($switchVal2, "layout", 3)){ + IValue $arg0_8 = (IValue)($nonterminal_get_arg(((ITree)((ITree)($switchVal2))), ((IInteger)$constants.get(5)/*0*/).intValue())); + if($isComparable($arg0_8.getType(), $T7)){ + IValue $arg1_6 = (IValue)($nonterminal_get_arg(((ITree)((ITree)($switchVal2))), ((IInteger)$constants.get(6)/*1*/).intValue())); + if($isComparable($arg1_6.getType(), M_lang_rascal_syntax_Rascal.NT_Sym)){ + if($nonterminal_has_name_and_arity($arg1_6, "nonterminal", 1)){ + IValue $arg0_7 = (IValue)($nonterminal_get_arg(((ITree)((ITree)($arg1_6))), ((IInteger)$constants.get(5)/*0*/).intValue())); + if($isComparable($arg0_7.getType(), M_lang_rascal_syntax_Rascal.NT_Nonterminal)){ + ITree n_1 = ((ITree)($arg0_7)); + IValue $arg2_5 = (IValue)($nonterminal_get_arg(((ITree)((ITree)($switchVal2))), ((IInteger)$constants.get(7)/*2*/).intValue())); + if($isComparable($arg2_5.getType(), M_lang_rascal_syntax_Rascal.NT_Prod)){ + ITree p_2 = ((ITree)($arg2_5)); + final Template $template4 = (Template)new Template($RVF, ""); + $template4.addVal($arg0_7); + return ((ITuple)($RVF.tuple(((ISet)($RVF.set(((IConstructor)($me.prod2prod(((IConstructor)($RVF.constructor(M_ParseTree.Symbol_layouts_str, new IValue[]{((IString)($template4.close()))}))), ((ITree)($arg2_5)))))))), ((IConstructor)($RVF.constructor(M_util_Maybe.Maybe_1_nothing_, new IValue[]{})))))); + + } + + } + + } + + } + + } + + } + + } while(false); + + } + if($isSubtypeOf($switchVal2.getType(),M_lang_rascal_syntax_Rascal.NT_SyntaxDefinition)){ + /*muExists*/CASE_0_1: + do { + if($nonterminal_has_name_and_arity($switchVal2, "language", 3)){ + IValue $arg0_16 = (IValue)($nonterminal_get_arg(((ITree)((ITree)($switchVal2))), ((IInteger)$constants.get(5)/*0*/).intValue())); + if($isComparable($arg0_16.getType(), M_lang_rascal_syntax_Rascal.NT_Start)){ + if($nonterminal_has_name_and_arity($arg0_16, "present", 0)){ + IValue $arg1_14 = (IValue)($nonterminal_get_arg(((ITree)((ITree)($switchVal2))), ((IInteger)$constants.get(6)/*1*/).intValue())); + if($isComparable($arg1_14.getType(), M_lang_rascal_syntax_Rascal.NT_Sym)){ + if($nonterminal_has_name_and_arity($arg1_14, "nonterminal", 1)){ + IValue $arg0_15 = (IValue)($nonterminal_get_arg(((ITree)((ITree)($arg1_14))), ((IInteger)$constants.get(5)/*0*/).intValue())); + if($isComparable($arg0_15.getType(), M_lang_rascal_syntax_Rascal.NT_Nonterminal)){ + ITree n_3 = ((ITree)($arg0_15)); + IValue $arg2_13 = (IValue)($nonterminal_get_arg(((ITree)((ITree)($switchVal2))), ((IInteger)$constants.get(7)/*2*/).intValue())); + if($isComparable($arg2_13.getType(), M_lang_rascal_syntax_Rascal.NT_Prod)){ + ITree p_4 = ((ITree)($arg2_13)); + final Template $template9 = (Template)new Template($RVF, ""); + $template9.addVal($arg0_15); + final Template $template10 = (Template)new Template($RVF, ""); + $template10.addVal($arg0_15); + final Template $template11 = (Template)new Template($RVF, ""); + $template11.addVal($arg0_15); + final Template $template12 = (Template)new Template($RVF, ""); + $template12.addVal($arg0_15); + return ((ITuple)($RVF.tuple(((ISet)($RVF.set(((IConstructor)($RVF.constructor(M_ParseTree.Production_prod_Symbol_list_Symbol_set_Attr, new IValue[]{((IConstructor)($RVF.constructor(M_ParseTree.Symbol_start_Symbol, new IValue[]{((IConstructor)($RVF.constructor(M_ParseTree.Symbol_sort_str, new IValue[]{((IString)($template9.close()))})))}))), ((IList)($RVF.list(((IConstructor)($RVF.constructor(M_Type.Symbol_label_str_Symbol, new IValue[]{((IString)$constants.get(8)/*"top"*/), ((IConstructor)($RVF.constructor(M_ParseTree.Symbol_sort_str, new IValue[]{((IString)($template10.close()))})))})))))), ((ISet)$constants.get(1)/*{}*/)}))), $me.prod2prod(((IConstructor)($RVF.constructor(M_ParseTree.Symbol_sort_str, new IValue[]{((IString)($template11.close()))}))), ((ITree)($arg2_13)))))), ((IConstructor)($RVF.constructor(Maybe_Symbol_just_Symbol, new IValue[]{((IConstructor)($RVF.constructor(M_ParseTree.Symbol_start_Symbol, new IValue[]{((IConstructor)($RVF.constructor(M_ParseTree.Symbol_sort_str, new IValue[]{((IString)($template12.close()))})))})))})))))); + + } + + } + + } + + } + + } + + } + + } + + } while(false); + + } + if($isSubtypeOf($switchVal2.getType(),M_lang_rascal_syntax_Rascal.NT_SyntaxDefinition)){ + /*muExists*/CASE_0_2: + do { + if($nonterminal_has_name_and_arity($switchVal2, "language", 3)){ + IValue $arg0_22 = (IValue)($nonterminal_get_arg(((ITree)((ITree)($switchVal2))), ((IInteger)$constants.get(5)/*0*/).intValue())); + if($isComparable($arg0_22.getType(), M_lang_rascal_syntax_Rascal.NT_Start)){ + if($nonterminal_has_name_and_arity($arg0_22, "absent", 0)){ + IValue $arg1_19 = (IValue)($nonterminal_get_arg(((ITree)((ITree)($switchVal2))), ((IInteger)$constants.get(6)/*1*/).intValue())); + if($isComparable($arg1_19.getType(), M_lang_rascal_syntax_Rascal.NT_Sym)){ + if($nonterminal_has_name_and_arity($arg1_19, "parametrized", 2)){ + IValue $arg0_21 = (IValue)($nonterminal_get_arg(((ITree)((ITree)($arg1_19))), ((IInteger)$constants.get(5)/*0*/).intValue())); + if($isComparable($arg0_21.getType(), M_lang_rascal_syntax_Rascal.NT_Nonterminal)){ + ITree l_5 = ((ITree)($arg0_21)); + IValue $arg1_20 = (IValue)($nonterminal_get_arg(((ITree)((ITree)($arg1_19))), ((IInteger)$constants.get(6)/*1*/).intValue())); + if($isComparable($arg1_20.getType(), $T18)){ + if(org.rascalmpl.values.parsetrees.TreeAdapter.getArgs((ITree)$arg1_20).length() >= 1){ + ITree syms_6 = ((ITree)($arg1_20)); + IValue $arg2_18 = (IValue)($nonterminal_get_arg(((ITree)((ITree)($switchVal2))), ((IInteger)$constants.get(7)/*2*/).intValue())); + if($isComparable($arg2_18.getType(), M_lang_rascal_syntax_Rascal.NT_Prod)){ + ITree p_7 = ((ITree)($arg2_18)); + final Template $template17 = (Template)new Template($RVF, ""); + $template17.addVal($arg0_21); + return ((ITuple)($RVF.tuple(((ISet)($RVF.set(((IConstructor)($me.prod2prod(((IConstructor)($RVF.constructor(M_ParseTree.Symbol_parameterized_sort_str_list_Symbol, new IValue[]{((IString)($template17.close())), ((IList)(M_lang_rascal_grammar_definition_Symbols.separgs2symbols(((ITree)($arg1_20)))))}))), ((ITree)($arg2_18)))))))), ((IConstructor)($RVF.constructor(M_util_Maybe.Maybe_1_nothing_, new IValue[]{})))))); + + } + + } + + } + + } + + } + + } + + } + + } + + } + + } while(false); + + } + if($isSubtypeOf($switchVal2.getType(),M_lang_rascal_syntax_Rascal.NT_SyntaxDefinition)){ + /*muExists*/CASE_0_3: + do { + if($nonterminal_has_name_and_arity($switchVal2, "language", 3)){ + IValue $arg0_27 = (IValue)($nonterminal_get_arg(((ITree)((ITree)($switchVal2))), ((IInteger)$constants.get(5)/*0*/).intValue())); + if($isComparable($arg0_27.getType(), M_lang_rascal_syntax_Rascal.NT_Start)){ + if($nonterminal_has_name_and_arity($arg0_27, "absent", 0)){ + IValue $arg1_25 = (IValue)($nonterminal_get_arg(((ITree)((ITree)($switchVal2))), ((IInteger)$constants.get(6)/*1*/).intValue())); + if($isComparable($arg1_25.getType(), M_lang_rascal_syntax_Rascal.NT_Sym)){ + if($nonterminal_has_name_and_arity($arg1_25, "nonterminal", 1)){ + IValue $arg0_26 = (IValue)($nonterminal_get_arg(((ITree)((ITree)($arg1_25))), ((IInteger)$constants.get(5)/*0*/).intValue())); + if($isComparable($arg0_26.getType(), M_lang_rascal_syntax_Rascal.NT_Nonterminal)){ + ITree n_8 = ((ITree)($arg0_26)); + IValue $arg2_24 = (IValue)($nonterminal_get_arg(((ITree)((ITree)($switchVal2))), ((IInteger)$constants.get(7)/*2*/).intValue())); + if($isComparable($arg2_24.getType(), M_lang_rascal_syntax_Rascal.NT_Prod)){ + ITree p_9 = ((ITree)($arg2_24)); + final Template $template23 = (Template)new Template($RVF, ""); + $template23.addVal($arg0_26); + return ((ITuple)($RVF.tuple(((ISet)($RVF.set(((IConstructor)($me.prod2prod(((IConstructor)($RVF.constructor(M_ParseTree.Symbol_sort_str, new IValue[]{((IString)($template23.close()))}))), ((ITree)($arg2_24)))))))), ((IConstructor)($RVF.constructor(M_util_Maybe.Maybe_1_nothing_, new IValue[]{})))))); + + } + + } + + } + + } + + } + + } + + } + + } while(false); + + } + if($isSubtypeOf($switchVal2.getType(),M_lang_rascal_syntax_Rascal.NT_SyntaxDefinition)){ + /*muExists*/CASE_0_4: + do { + if($nonterminal_has_name_and_arity($switchVal2, "lexical", 2)){ + IValue $arg0_30 = (IValue)($nonterminal_get_arg(((ITree)((ITree)($switchVal2))), ((IInteger)$constants.get(5)/*0*/).intValue())); + if($isComparable($arg0_30.getType(), M_lang_rascal_syntax_Rascal.NT_Sym)){ + if($nonterminal_has_name_and_arity($arg0_30, "parametrized", 2)){ + IValue $arg0_32 = (IValue)($nonterminal_get_arg(((ITree)((ITree)($arg0_30))), ((IInteger)$constants.get(5)/*0*/).intValue())); + if($isComparable($arg0_32.getType(), M_lang_rascal_syntax_Rascal.NT_Nonterminal)){ + ITree l_10 = ((ITree)($arg0_32)); + IValue $arg1_31 = (IValue)($nonterminal_get_arg(((ITree)((ITree)($arg0_30))), ((IInteger)$constants.get(6)/*1*/).intValue())); + if($isComparable($arg1_31.getType(), $T18)){ + if(org.rascalmpl.values.parsetrees.TreeAdapter.getArgs((ITree)$arg1_31).length() >= 1){ + ITree syms_11 = ((ITree)($arg1_31)); + IValue $arg1_29 = (IValue)($nonterminal_get_arg(((ITree)((ITree)($switchVal2))), ((IInteger)$constants.get(6)/*1*/).intValue())); + if($isComparable($arg1_29.getType(), M_lang_rascal_syntax_Rascal.NT_Prod)){ + ITree p_12 = ((ITree)($arg1_29)); + final Template $template28 = (Template)new Template($RVF, ""); + $template28.addVal($arg0_32); + return ((ITuple)($RVF.tuple(((ISet)($RVF.set(((IConstructor)($me.prod2prod(((IConstructor)($RVF.constructor(M_ParseTree.Symbol_parameterized_lex_str_list_Symbol, new IValue[]{((IString)($template28.close())), ((IList)(M_lang_rascal_grammar_definition_Symbols.separgs2symbols(((ITree)($arg1_31)))))}))), ((ITree)($arg1_29)))))))), ((IConstructor)($RVF.constructor(M_util_Maybe.Maybe_1_nothing_, new IValue[]{})))))); + + } + + } + + } + + } + + } + + } + + } + + } while(false); + + } + if($isSubtypeOf($switchVal2.getType(),M_lang_rascal_syntax_Rascal.NT_SyntaxDefinition)){ + /*muExists*/CASE_0_5: + do { + if($nonterminal_has_name_and_arity($switchVal2, "lexical", 2)){ + IValue $arg0_35 = (IValue)($nonterminal_get_arg(((ITree)((ITree)($switchVal2))), ((IInteger)$constants.get(5)/*0*/).intValue())); + if($isComparable($arg0_35.getType(), M_lang_rascal_syntax_Rascal.NT_Sym)){ + if($nonterminal_has_name_and_arity($arg0_35, "nonterminal", 1)){ + IValue $arg0_36 = (IValue)($nonterminal_get_arg(((ITree)((ITree)($arg0_35))), ((IInteger)$constants.get(5)/*0*/).intValue())); + if($isComparable($arg0_36.getType(), M_lang_rascal_syntax_Rascal.NT_Nonterminal)){ + ITree n_13 = ((ITree)($arg0_36)); + IValue $arg1_34 = (IValue)($nonterminal_get_arg(((ITree)((ITree)($switchVal2))), ((IInteger)$constants.get(6)/*1*/).intValue())); + if($isComparable($arg1_34.getType(), M_lang_rascal_syntax_Rascal.NT_Prod)){ + ITree p_14 = ((ITree)($arg1_34)); + final Template $template33 = (Template)new Template($RVF, ""); + $template33.addVal($arg0_36); + return ((ITuple)($RVF.tuple(((ISet)($RVF.set(((IConstructor)($me.prod2prod(((IConstructor)($RVF.constructor(M_ParseTree.Symbol_lex_str, new IValue[]{((IString)($template33.close()))}))), ((ITree)($arg1_34)))))))), ((IConstructor)($RVF.constructor(M_util_Maybe.Maybe_1_nothing_, new IValue[]{})))))); + + } + + } + + } + + } + + } + + } while(false); + + } + if($isSubtypeOf($switchVal2.getType(),M_lang_rascal_syntax_Rascal.NT_SyntaxDefinition)){ + /*muExists*/CASE_0_6: + do { + if($nonterminal_has_name_and_arity($switchVal2, "keyword", 2)){ + IValue $arg0_39 = (IValue)($nonterminal_get_arg(((ITree)((ITree)($switchVal2))), ((IInteger)$constants.get(5)/*0*/).intValue())); + if($isComparable($arg0_39.getType(), M_lang_rascal_syntax_Rascal.NT_Sym)){ + if($nonterminal_has_name_and_arity($arg0_39, "nonterminal", 1)){ + IValue $arg0_40 = (IValue)($nonterminal_get_arg(((ITree)((ITree)($arg0_39))), ((IInteger)$constants.get(5)/*0*/).intValue())); + if($isComparable($arg0_40.getType(), M_lang_rascal_syntax_Rascal.NT_Nonterminal)){ + ITree n_15 = ((ITree)($arg0_40)); + IValue $arg1_38 = (IValue)($nonterminal_get_arg(((ITree)((ITree)($switchVal2))), ((IInteger)$constants.get(6)/*1*/).intValue())); + if($isComparable($arg1_38.getType(), M_lang_rascal_syntax_Rascal.NT_Prod)){ + ITree p_16 = ((ITree)($arg1_38)); + final Template $template37 = (Template)new Template($RVF, ""); + $template37.addVal($arg0_40); + return ((ITuple)($RVF.tuple(((ISet)($RVF.set(((IConstructor)($me.prod2prod(((IConstructor)($RVF.constructor(M_ParseTree.Symbol_keywords_str, new IValue[]{((IString)($template37.close()))}))), ((ITree)($arg1_38)))))))), ((IConstructor)($RVF.constructor(M_util_Maybe.Maybe_1_nothing_, new IValue[]{})))))); + + } + + } + + } + + } + + } + + } while(false); + + } + M_IO.iprintln(((IValue)sd_0), Util.kwpMap()); + final Template $template3 = (Template)new Template($RVF, "unsupported kind of syntax definition? "); + $template3.beginIndent(" "); + $template3.addVal(sd_0); + $template3.endIndent(" "); + $template3.addStr(" at "); + $template3.beginIndent(" "); + $template3.addVal($annotation_get(((INode)sd_0),"src")); + $template3.endIndent(" "); + throw new Throw($template3.close()); + } + + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/lang/rascal/grammar/definition/Productions.rsc|(2377,1561,<60,0>,<89,1>) + public IConstructor lang_rascal_grammar_definition_Productions_prod2prod$70dc8b016f745552(IConstructor nt_0, ITree p_1){ + + + final ITree $switchVal41 = ((ITree)p_1); + boolean noCaseMatched_$switchVal41 = true; + SWITCH3: switch(Fingerprint.getFingerprint($switchVal41)){ + + case 0: + if(noCaseMatched_$switchVal41){ + noCaseMatched_$switchVal41 = false; + + } + + + default: if($isSubtypeOf($switchVal41.getType(),M_lang_rascal_syntax_Rascal.NT_Prod)){ + /*muExists*/CASE_0_0: + do { + if($nonterminal_has_name_and_arity($switchVal41, "labeled", 3)){ + IValue $arg0_49 = (IValue)($nonterminal_get_arg(((ITree)((ITree)($switchVal41))), ((IInteger)$constants.get(5)/*0*/).intValue())); + if($isComparable($arg0_49.getType(), $T19)){ + ITree ms_2 = ((ITree)($arg0_49)); + IValue $arg1_48 = (IValue)($nonterminal_get_arg(((ITree)((ITree)($switchVal41))), ((IInteger)$constants.get(6)/*1*/).intValue())); + if($isComparable($arg1_48.getType(), M_lang_rascal_syntax_Rascal.NT_Name)){ + ITree n_3 = ((ITree)($arg1_48)); + IValue $arg2_47 = (IValue)($nonterminal_get_arg(((ITree)((ITree)($switchVal41))), ((IInteger)$constants.get(7)/*2*/).intValue())); + if($isComparable($arg2_47.getType(), $T20)){ + ITree args_4 = ((ITree)($arg2_47)); + /*muExists*/IF4: + do { + final IList $subject_val44 = ((IList)(((IList)($aadt_get_field(((ITree)($arg2_47)), "args"))))); + final IList $subject45 = ((IList)($subject_val44)); + int $subject45_cursor = 0; + if($isSubtypeOf($subject45.getType(),$T21)){ + final int $subject45_len = (int)((IList)($subject45)).length(); + if($subject45_len == 1){ + if($subject45_cursor < $subject45_len && $isComparable($alist_subscript_int(((IList)($subject45)),$subject45_cursor).getType(), M_lang_rascal_syntax_Rascal.NT_Sym)){ + ITree x_5 = ((ITree)($alist_subscript_int(((IList)($subject45)),$subject45_cursor))); + $subject45_cursor += 1; + if($subject45_cursor == $subject45_len){ + if($is(((ITree)x_5),((IString)$constants.get(9)/*"empty"*/))){ + final Template $template43 = (Template)new Template($RVF, ""); + $template43.addVal($arg1_48); + return ((IConstructor)($me.associativity(((IConstructor)nt_0), ((IConstructor)(M_lang_rascal_grammar_definition_Attributes.mods2assoc(((ITree)($arg0_49))))), ((IConstructor)($RVF.constructor(M_ParseTree.Production_prod_Symbol_list_Symbol_set_Attr, new IValue[]{((IConstructor)($RVF.constructor(M_Type.Symbol_label_str_Symbol, new IValue[]{((IString)(M_lang_rascal_grammar_definition_Names.unescape(((IString)($template43.close()))))), ((IConstructor)nt_0)}))), ((IList)$constants.get(0)/*[]*/), ((ISet)(M_lang_rascal_grammar_definition_Attributes.mods2attrs(((ITree)($arg0_49)))))})))))); + + } else { + continue IF4; + } + } else { + continue IF4;/*list match1*/ + } + } + + } + + } + + } while(false); + final Template $template46 = (Template)new Template($RVF, ""); + $template46.addVal($arg1_48); + return ((IConstructor)($me.associativity(((IConstructor)nt_0), ((IConstructor)(M_lang_rascal_grammar_definition_Attributes.mods2assoc(((ITree)($arg0_49))))), ((IConstructor)($RVF.constructor(M_ParseTree.Production_prod_Symbol_list_Symbol_set_Attr, new IValue[]{((IConstructor)($RVF.constructor(M_Type.Symbol_label_str_Symbol, new IValue[]{((IString)(M_lang_rascal_grammar_definition_Names.unescape(((IString)($template46.close()))))), ((IConstructor)nt_0)}))), ((IList)(M_lang_rascal_grammar_definition_Symbols.args2symbols(((ITree)($arg2_47))))), ((ISet)(M_lang_rascal_grammar_definition_Attributes.mods2attrs(((ITree)($arg0_49)))))})))))); + + } + + } + + } + + } + + } while(false); + + } + if($isSubtypeOf($switchVal41.getType(),M_lang_rascal_syntax_Rascal.NT_Prod)){ + /*muExists*/CASE_0_1: + do { + if($nonterminal_has_name_and_arity($switchVal41, "unlabeled", 2)){ + IValue $arg0_53 = (IValue)($nonterminal_get_arg(((ITree)((ITree)($switchVal41))), ((IInteger)$constants.get(5)/*0*/).intValue())); + if($isComparable($arg0_53.getType(), $T19)){ + ITree ms_6 = ((ITree)($arg0_53)); + IValue $arg1_52 = (IValue)($nonterminal_get_arg(((ITree)((ITree)($switchVal41))), ((IInteger)$constants.get(6)/*1*/).intValue())); + if($isComparable($arg1_52.getType(), $T20)){ + ITree args_7 = ((ITree)($arg1_52)); + /*muExists*/IF5: + do { + final IList $subject_val50 = ((IList)(((IList)($aadt_get_field(((ITree)($arg1_52)), "args"))))); + final IList $subject51 = ((IList)($subject_val50)); + int $subject51_cursor = 0; + if($isSubtypeOf($subject51.getType(),$T21)){ + final int $subject51_len = (int)((IList)($subject51)).length(); + if($subject51_len == 1){ + if($subject51_cursor < $subject51_len && $isComparable($alist_subscript_int(((IList)($subject51)),$subject51_cursor).getType(), M_lang_rascal_syntax_Rascal.NT_Sym)){ + ITree x_8 = ((ITree)($alist_subscript_int(((IList)($subject51)),$subject51_cursor))); + $subject51_cursor += 1; + if($subject51_cursor == $subject51_len){ + if($is(((ITree)x_8),((IString)$constants.get(9)/*"empty"*/))){ + return ((IConstructor)($me.associativity(((IConstructor)nt_0), ((IConstructor)(M_lang_rascal_grammar_definition_Attributes.mods2assoc(((ITree)($arg0_53))))), ((IConstructor)($RVF.constructor(M_ParseTree.Production_prod_Symbol_list_Symbol_set_Attr, new IValue[]{((IConstructor)nt_0), ((IList)$constants.get(0)/*[]*/), ((ISet)(M_lang_rascal_grammar_definition_Attributes.mods2attrs(((ITree)($arg0_53)))))})))))); + + } else { + continue IF5; + } + } else { + continue IF5;/*list match1*/ + } + } + + } + + } + + } while(false); + return ((IConstructor)($me.associativity(((IConstructor)nt_0), ((IConstructor)(M_lang_rascal_grammar_definition_Attributes.mods2assoc(((ITree)($arg0_53))))), ((IConstructor)($RVF.constructor(M_ParseTree.Production_prod_Symbol_list_Symbol_set_Attr, new IValue[]{((IConstructor)nt_0), ((IList)(M_lang_rascal_grammar_definition_Symbols.args2symbols(((ITree)($arg1_52))))), ((ISet)(M_lang_rascal_grammar_definition_Attributes.mods2attrs(((ITree)($arg0_53)))))})))))); + + } + + } + + } + + } while(false); + + } + if($isSubtypeOf($switchVal41.getType(),M_lang_rascal_syntax_Rascal.NT_Prod)){ + /*muExists*/CASE_0_2: + do { + if($nonterminal_has_name_and_arity($switchVal41, "all", 2)){ + IValue $arg0_55 = (IValue)($nonterminal_get_arg(((ITree)((ITree)($switchVal41))), ((IInteger)$constants.get(5)/*0*/).intValue())); + if($isComparable($arg0_55.getType(), M_lang_rascal_syntax_Rascal.NT_Prod)){ + ITree l_9 = ((ITree)($arg0_55)); + IValue $arg1_54 = (IValue)($nonterminal_get_arg(((ITree)((ITree)($switchVal41))), ((IInteger)$constants.get(6)/*1*/).intValue())); + if($isComparable($arg1_54.getType(), M_lang_rascal_syntax_Rascal.NT_Prod)){ + ITree r_10 = ((ITree)($arg1_54)); + return ((IConstructor)($me.choice(((IConstructor)nt_0), ((ISet)($RVF.set(((IConstructor)($me.prod2prod(((IConstructor)nt_0), ((ITree)($arg0_55))))), $me.prod2prod(((IConstructor)nt_0), ((ITree)($arg1_54))))))))); + + } + + } + + } + + } while(false); + + } + if($isSubtypeOf($switchVal41.getType(),M_lang_rascal_syntax_Rascal.NT_Prod)){ + /*muExists*/CASE_0_3: + do { + if($nonterminal_has_name_and_arity($switchVal41, "first", 2)){ + IValue $arg0_57 = (IValue)($nonterminal_get_arg(((ITree)((ITree)($switchVal41))), ((IInteger)$constants.get(5)/*0*/).intValue())); + if($isComparable($arg0_57.getType(), M_lang_rascal_syntax_Rascal.NT_Prod)){ + ITree l_11 = ((ITree)($arg0_57)); + IValue $arg1_56 = (IValue)($nonterminal_get_arg(((ITree)((ITree)($switchVal41))), ((IInteger)$constants.get(6)/*1*/).intValue())); + if($isComparable($arg1_56.getType(), M_lang_rascal_syntax_Rascal.NT_Prod)){ + ITree r_12 = ((ITree)($arg1_56)); + return ((IConstructor)($me.priority(((IConstructor)nt_0), ((IList)($RVF.list(((IConstructor)($me.prod2prod(((IConstructor)nt_0), ((ITree)($arg0_57))))), $me.prod2prod(((IConstructor)nt_0), ((ITree)($arg1_56))))))))); + + } + + } + + } + + } while(false); + + } + if($isSubtypeOf($switchVal41.getType(),M_lang_rascal_syntax_Rascal.NT_Prod)){ + /*muExists*/CASE_0_4: + do { + if($nonterminal_has_name_and_arity($switchVal41, "associativityGroup", 2)){ + IValue $arg0_59 = (IValue)($nonterminal_get_arg(((ITree)((ITree)($switchVal41))), ((IInteger)$constants.get(5)/*0*/).intValue())); + if($isComparable($arg0_59.getType(), M_lang_rascal_syntax_Rascal.NT_Assoc)){ + if($nonterminal_has_name_and_arity($arg0_59, "left", 0)){ + IValue $arg1_58 = (IValue)($nonterminal_get_arg(((ITree)((ITree)($switchVal41))), ((IInteger)$constants.get(6)/*1*/).intValue())); + if($isComparable($arg1_58.getType(), M_lang_rascal_syntax_Rascal.NT_Prod)){ + ITree q_13 = ((ITree)($arg1_58)); + return ((IConstructor)($me.associativity(((IConstructor)nt_0), ((IConstructor)($RVF.constructor(M_ParseTree.Associativity_left_, new IValue[]{}))), ((ISet)($RVF.set(((IConstructor)($me.prod2prod(((IConstructor)nt_0), ((ITree)($arg1_58))))))))))); + + } + + } + + } + + } + + } while(false); + + } + if($isSubtypeOf($switchVal41.getType(),M_lang_rascal_syntax_Rascal.NT_Prod)){ + /*muExists*/CASE_0_5: + do { + if($nonterminal_has_name_and_arity($switchVal41, "associativityGroup", 2)){ + IValue $arg0_61 = (IValue)($nonterminal_get_arg(((ITree)((ITree)($switchVal41))), ((IInteger)$constants.get(5)/*0*/).intValue())); + if($isComparable($arg0_61.getType(), M_lang_rascal_syntax_Rascal.NT_Assoc)){ + if($nonterminal_has_name_and_arity($arg0_61, "right", 0)){ + IValue $arg1_60 = (IValue)($nonterminal_get_arg(((ITree)((ITree)($switchVal41))), ((IInteger)$constants.get(6)/*1*/).intValue())); + if($isComparable($arg1_60.getType(), M_lang_rascal_syntax_Rascal.NT_Prod)){ + ITree q_14 = ((ITree)($arg1_60)); + return ((IConstructor)($me.associativity(((IConstructor)nt_0), ((IConstructor)($RVF.constructor(M_ParseTree.Associativity_right_, new IValue[]{}))), ((ISet)($RVF.set(((IConstructor)($me.prod2prod(((IConstructor)nt_0), ((ITree)($arg1_60))))))))))); + + } + + } + + } + + } + + } while(false); + + } + if($isSubtypeOf($switchVal41.getType(),M_lang_rascal_syntax_Rascal.NT_Prod)){ + /*muExists*/CASE_0_6: + do { + if($nonterminal_has_name_and_arity($switchVal41, "associativityGroup", 2)){ + IValue $arg0_63 = (IValue)($nonterminal_get_arg(((ITree)((ITree)($switchVal41))), ((IInteger)$constants.get(5)/*0*/).intValue())); + if($isComparable($arg0_63.getType(), M_lang_rascal_syntax_Rascal.NT_Assoc)){ + if($nonterminal_has_name_and_arity($arg0_63, "nonAssociative", 0)){ + IValue $arg1_62 = (IValue)($nonterminal_get_arg(((ITree)((ITree)($switchVal41))), ((IInteger)$constants.get(6)/*1*/).intValue())); + if($isComparable($arg1_62.getType(), M_lang_rascal_syntax_Rascal.NT_Prod)){ + ITree q_15 = ((ITree)($arg1_62)); + return ((IConstructor)($me.associativity(((IConstructor)nt_0), ((INode)$constants.get(10)/*\non-assoc()*/), ((ISet)($RVF.set(((IConstructor)($me.prod2prod(((IConstructor)nt_0), ((ITree)($arg1_62))))))))))); + + } + + } + + } + + } + + } while(false); + + } + if($isSubtypeOf($switchVal41.getType(),M_lang_rascal_syntax_Rascal.NT_Prod)){ + /*muExists*/CASE_0_7: + do { + if($nonterminal_has_name_and_arity($switchVal41, "associativityGroup", 2)){ + IValue $arg0_65 = (IValue)($nonterminal_get_arg(((ITree)((ITree)($switchVal41))), ((IInteger)$constants.get(5)/*0*/).intValue())); + if($isComparable($arg0_65.getType(), M_lang_rascal_syntax_Rascal.NT_Assoc)){ + if($nonterminal_has_name_and_arity($arg0_65, "associative", 0)){ + IValue $arg1_64 = (IValue)($nonterminal_get_arg(((ITree)((ITree)($switchVal41))), ((IInteger)$constants.get(6)/*1*/).intValue())); + if($isComparable($arg1_64.getType(), M_lang_rascal_syntax_Rascal.NT_Prod)){ + ITree q_16 = ((ITree)($arg1_64)); + return ((IConstructor)($me.associativity(((IConstructor)nt_0), ((IConstructor)($RVF.constructor(M_ParseTree.Associativity_left_, new IValue[]{}))), ((ISet)($RVF.set(((IConstructor)($me.prod2prod(((IConstructor)nt_0), ((ITree)($arg1_64))))))))))); + + } + + } + + } + + } + + } while(false); + + } + if($isSubtypeOf($switchVal41.getType(),M_lang_rascal_syntax_Rascal.NT_Prod)){ + /*muExists*/CASE_0_8: + do { + if($nonterminal_has_name_and_arity($switchVal41, "reference", 1)){ + IValue $arg0_67 = (IValue)($nonterminal_get_arg(((ITree)((ITree)($switchVal41))), ((IInteger)$constants.get(5)/*0*/).intValue())); + if($isComparable($arg0_67.getType(), M_lang_rascal_syntax_Rascal.NT_Name)){ + ITree n_17 = ((ITree)($arg0_67)); + final Template $template66 = (Template)new Template($RVF, ""); + $template66.addVal($arg0_67); + return ((IConstructor)($RVF.constructor(M_ParseTree.Production_reference_Symbol_str, new IValue[]{((IConstructor)nt_0), ((IString)(M_lang_rascal_grammar_definition_Names.unescape(((IString)($template66.close())))))}))); + + } + + } + + } while(false); + + } + final Template $template42 = (Template)new Template($RVF, "prod2prod, missed a case "); + $template42.beginIndent(" "); + $template42.addVal(p_1); + $template42.endIndent(" "); + throw new Throw($template42.close()); + } + + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/lang/rascal/grammar/definition/Productions.rsc|(3942,73,<93,0>,<93,73>) + public IConstructor lang_rascal_grammar_definition_Productions_associativity$09cd814bba935894(IConstructor nt_0, IConstructor $1, IConstructor p_1){ + + + HashMap $typeBindings = new HashMap<>(); + if(M_util_Maybe.ADT_Maybe_1.match($1.getType(), $typeBindings)){ + if($has_type_and_arity($1, M_util_Maybe.Maybe_1_nothing_, 0)){ + final IConstructor $result68 = ((IConstructor)p_1); + if(M_ParseTree.ADT_Production.instantiate($typeBindings) != $TF.voidType() && $isSubtypeOf($result68.getType(),M_ParseTree.ADT_Production)){ + return ((IConstructor)($result68)); + + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/lang/rascal/grammar/definition/Productions.rsc|(4016,117,<94,0>,<94,117>) + public IConstructor lang_rascal_grammar_definition_Productions_associativity$fe1234ba22a8be5e(IConstructor nt_0, IConstructor $1, IConstructor p_2){ + + + if($has_type_and_arity($1, M_util_Maybe.Maybe_1_just_, 1)){ + IValue $arg0_69 = (IValue)($aadt_subscript_int(((IConstructor)$1),0)); + if($isComparable($arg0_69.getType(), M_ParseTree.ADT_Associativity)){ + IConstructor a_1 = null; + return ((IConstructor)($me.associativity(((IConstructor)nt_0), ((IConstructor)($arg0_69)), ((ISet)($RVF.set(((IConstructor)p_2))))))); + + } else { + return null; + } + } else { + return null; + } + } + + + public static void main(String[] args) { + throw new RuntimeException("No function `main` found in Rascal module `lang::rascal::grammar::definition::Productions`"); + } +} \ No newline at end of file diff --git a/src/rascal/lang/rascal/grammar/definition/$Productions.tpl b/src/rascal/lang/rascal/grammar/definition/$Productions.tpl new file mode 100644 index 00000000000..f22908fd94a Binary files /dev/null and b/src/rascal/lang/rascal/grammar/definition/$Productions.tpl differ diff --git a/src/rascal/lang/rascal/grammar/definition/$Productions_$I.java b/src/rascal/lang/rascal/grammar/definition/$Productions_$I.java new file mode 100644 index 00000000000..69eca4bc152 --- /dev/null +++ b/src/rascal/lang/rascal/grammar/definition/$Productions_$I.java @@ -0,0 +1,141 @@ +package rascal.lang.rascal.grammar.definition; +import io.usethesource.vallang.*; +import org.rascalmpl.runtime.function.*; + +@SuppressWarnings("unused") +public interface $Productions_$I { + IValue addLabels(IValue $0, IValue $1); + IValue addParamLabels(IValue $0, IValue $1); + IValue allLabeled(IValue $0); + IValue associativity(IValue $0, IValue $1, IValue $2); + IValue choice(IValue $0, IValue $1); + IValue comparable(IValue $0, IValue $1); + IValue compose(IValue $0, IValue $1); + IValue concat(IValue $0); + IValue delete(IValue $0, IValue $1); + IValue dependencies(IValue $0); + IValue distribution(IValue $0); + IValue drop(IValue $0, IValue $1); + IValue dup(IValue $0); + IValue elementAt(IValue $0, IValue $1); + IValue eq(IValue $0, IValue $1); + IValue equivalent(IValue $0, IValue $1); + IValue $extends(IValue $0); + IValue firstAmbiguity(IValue $0, IValue $1); + IValue firstAmbiguityFinder(IValue $0, java.util.Map $kwpActuals); + IValue firstAmbiguityFinders(IValue $0, java.util.Map $kwpActuals); + IValue getFirstFrom(IValue $0); + IValue getLabels(IValue $0); + IValue getOneFrom(IValue $0); + IValue getParamLabels(IValue $0); + IValue glb(IValue $0, IValue $1); + IValue grammar(IValue $0, IValue $1); + IValue grammar(IValue $0); + IValue head(IValue $0, IValue $1); + IValue head(IValue $0); + IValue headTail(IValue $0); + IValue implode(IValue $0, IValue $1); + IValue imports(IValue $0); + IValue index(IValue $0); + IValue indexOf(IValue $0, IValue $1); + IValue insertAt(IValue $0, IValue $1, IValue $2); + IValue intercalate(IValue $0, IValue $1); + IValue intersperse(IValue $0, IValue $1); + IValue isADTType(IValue $0); + IValue isAliasType(IValue $0); + IValue isBagType(IValue $0); + IValue isBoolType(IValue $0); + IValue isConstructorType(IValue $0); + IValue isDateTimeType(IValue $0); + IValue isEmpty(IValue $0); + IValue isFunctionType(IValue $0); + IValue isIntType(IValue $0); + IValue isListRelType(IValue $0); + IValue isListType(IValue $0); + IValue isLocType(IValue $0); + IValue isMapType(IValue $0); + IValue isNodeType(IValue $0); + IValue isNonTerminalType(IValue $0); + IValue isNumType(IValue $0); + IValue isRatType(IValue $0); + IValue isRealType(IValue $0); + IValue isReifiedType(IValue $0); + IValue isRelType(IValue $0); + IValue isSetType(IValue $0); + IValue isSorted(IValue $0, java.util.Map $kwpActuals); + IValue isStrType(IValue $0); + IValue isTupleType(IValue $0); + IValue isTypeVar(IValue $0); + IValue isValueType(IValue $0); + IValue isVoidType(IValue $0); + IValue itoString(IValue $0); + IValue keepParams(IValue $0, IValue $1); + IValue last(IValue $0); + IValue lastIndexOf(IValue $0, IValue $1); + IValue loadParser(IValue $0, IValue $1, java.util.Map $kwpActuals); + IValue loadParsers(IValue $0, java.util.Map $kwpActuals); + IValue lub(IValue $0, IValue $1); + IValue mainMessageHandler(IValue $0, java.util.Map $kwpActuals); + IValue make(IValue $0, IValue $1, IValue $2); + IValue make(IValue $0, IValue $1, IValue $2, IValue $3); + IValue mapper(IValue $0, IValue $1); + IValue max(IValue $0); + IValue merge(IValue $0, IValue $1); + IValue merge(IValue $0, IValue $1, IValue $2); + IValue min(IValue $0); + IValue mix(IValue $0, IValue $1); + IValue noneLabeled(IValue $0); + IValue parse(IValue $0, IValue $1, IValue $2, java.util.Map $kwpActuals); + IValue parse(IValue $0, IValue $1, java.util.Map $kwpActuals); + IValue parser(IValue $0, java.util.Map $kwpActuals); + IValue parsers(IValue $0, java.util.Map $kwpActuals); + IValue permutations(IValue $0); + IValue permutationsBag(IValue $0); + IValue pop(IValue $0); + IValue prefix(IValue $0); + IValue printSymbol(IValue $0, IValue $1); + IValue priority(IValue $0, IValue $1); + IValue prod2prod(IValue $0, IValue $1); + IValue push(IValue $0, IValue $1); + IValue reducer(IValue $0, IValue $1, IValue $2); + IValue remove(IValue $0, IValue $1); + IValue removeFromBag(IValue $0, IValue $1); + IValue removeFromBag(IValue $0, IValue $1, IValue $2); + IValue reverse(IValue $0); + IValue rule2prod(IValue $0); + IValue sameType(IValue $0, IValue $1); + IValue shuffle(IValue $0); + IValue shuffle(IValue $0, IValue $1); + IValue size(IValue $0); + IValue slice(IValue $0, IValue $1, IValue $2); + IValue sort(IValue $0, IValue $1); + IValue sort(IValue $0); + IValue split(IValue $0); + void storeParsers(IValue $0, IValue $1); + IValue stripLabels(IValue $0); + IValue subtype(IValue $0, IValue $1); + IValue sum(IValue $0); + IValue syntax2grammar(IValue $0); + IValue tail(IValue $0); + IValue tail(IValue $0, IValue $1); + IValue take(IValue $0, IValue $1); + IValue takeOneFrom(IValue $0); + IValue takeWhile(IValue $0, IValue $1); + IValue toMap(IValue $0); + IValue toMapUnique(IValue $0); + IValue toRel(IValue $0); + IValue toSet(IValue $0); + IValue toString(IValue $0); + IValue top(IValue $0); + IValue treeAt(IValue $0, IValue $1, IValue $2); + IValue typeCast(IValue $0, IValue $1); + IValue typeOf(IValue $0); + IValue unparse(IValue $0); + IValue unzip2(IValue $0); + IValue unzip3(IValue $0); + IValue upTill(IValue $0); + IValue var_func(IValue $0, IValue $1, IValue $2); + IValue write(IValue $0, java.util.Map $kwpActuals); + IValue zip2(IValue $0, IValue $1); + IValue zip3(IValue $0, IValue $1, IValue $2); +} \ No newline at end of file diff --git a/src/rascal/lang/rascal/grammar/definition/$References.constants b/src/rascal/lang/rascal/grammar/definition/$References.constants new file mode 100644 index 00000000000..8b4bc9a8c17 Binary files /dev/null and b/src/rascal/lang/rascal/grammar/definition/$References.constants differ diff --git a/src/rascal/lang/rascal/grammar/definition/$References.java b/src/rascal/lang/rascal/grammar/definition/$References.java new file mode 100644 index 00000000000..3bdc598d613 --- /dev/null +++ b/src/rascal/lang/rascal/grammar/definition/$References.java @@ -0,0 +1,1449 @@ +package rascal.lang.rascal.grammar.definition; +import java.io.PrintWriter; +import java.io.StringWriter; +import java.io.InputStreamReader; +import java.io.PrintWriter; +import java.util.*; +import java.util.regex.Matcher; +import io.usethesource.vallang.*; +import io.usethesource.vallang.type.*; +import org.rascalmpl.runtime.*; +import org.rascalmpl.runtime.RascalExecutionContext; +import org.rascalmpl.runtime.function.*; +import org.rascalmpl.runtime.traverse.*; +import org.rascalmpl.runtime.utils.*; +import org.rascalmpl.exceptions.RuntimeExceptionFactory; +import org.rascalmpl.exceptions.Throw; +import org.rascalmpl.runtime.RascalExecutionContext; +import org.rascalmpl.interpreter.control_exceptions.Filtered; +import org.rascalmpl.types.NonTerminalType; +import org.rascalmpl.types.RascalTypeFactory; +import org.rascalmpl.util.ExpiringFunctionResultCache; +import org.rascalmpl.values.RascalValueFactory; +import org.rascalmpl.values.ValueFactoryFactory; +import org.rascalmpl.values.parsetrees.ITree; +import org.rascalmpl.values.parsetrees.TreeAdapter; + + + +@SuppressWarnings({"unused","unchecked","deprecation"}) +public class $References + extends + org.rascalmpl.runtime.$RascalModule + implements + rascal.lang.rascal.grammar.definition.$References_$I, + rascal.$ParseTree_$I, + rascal.$Type_$I, + rascal.$List_$I, + rascal.$Grammar_$I, + rascal.$Message_$I { + + private final $References_$I $me; + private final IList $constants; + + + public final rascal.$ParseTree M_ParseTree; + public final rascal.lang.rascal.grammar.definition.$Symbols M_lang_rascal_grammar_definition_Symbols; + public final rascal.$Type M_Type; + public final rascal.$List M_List; + public final rascal.$Grammar M_Grammar; + public final rascal.$Message M_Message; + + + + public final io.usethesource.vallang.type.Type $T4; /*avalue()*/ + public final io.usethesource.vallang.type.Type $T7; /*aparameter("U",avalue(),closed=false)*/ + public final io.usethesource.vallang.type.Type $T9; /*astr()*/ + public final io.usethesource.vallang.type.Type $T5; /*aparameter("T",avalue(),closed=false)*/ + public final io.usethesource.vallang.type.Type ADT_Replacement; /*aadt("Replacement",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Replacement; /*aadt("Replacement",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_ProtocolChars; /*aadt("ProtocolChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_ProtocolChars; /*aadt("ProtocolChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_MidStringChars; /*aadt("MidStringChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_MidStringChars; /*aadt("MidStringChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_LocalVariableDeclaration; /*aadt("LocalVariableDeclaration",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_LocalVariableDeclaration; /*aadt("LocalVariableDeclaration",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_BooleanLiteral; /*aadt("BooleanLiteral",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_BooleanLiteral; /*aadt("BooleanLiteral",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Expression; /*aadt("Expression",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Expression; /*aadt("Expression",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Mapping_Expression; /*aadt("Mapping",[aadt("Expression",[],contextFreeSyntax())],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Mapping_Expression; /*aadt("Mapping",[aadt("Expression",[],contextFreeSyntax())],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Strategy; /*aadt("Strategy",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Strategy; /*aadt("Strategy",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Attr; /*aadt("Attr",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Tree; /*aadt("Tree",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type $T10; /*aparameter("T",aadt("Tree",[],dataSyntax()),closed=true)*/ + public final io.usethesource.vallang.type.Type ADT_KeywordArguments_1; /*aadt("KeywordArguments",[aparameter("T",aadt("Tree",[],dataSyntax()),closed=true)],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_KeywordArguments_1; /*aadt("KeywordArguments",[aparameter("T",aadt("Tree",[],dataSyntax()),closed=true)],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_LAYOUT; /*aadt("LAYOUT",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_LAYOUT; /*aadt("LAYOUT",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Pattern; /*aadt("Pattern",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Pattern; /*aadt("Pattern",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Mapping_Pattern; /*aadt("Mapping",[aadt("Pattern",[],contextFreeSyntax())],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Mapping_Pattern; /*aadt("Mapping",[aadt("Pattern",[],contextFreeSyntax())],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_LocationChangeType; /*aadt("LocationChangeType",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_IOCapability; /*aadt("IOCapability",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_FunctionType; /*aadt("FunctionType",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_FunctionType; /*aadt("FunctionType",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Visibility; /*aadt("Visibility",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Visibility; /*aadt("Visibility",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_PostProtocolChars; /*aadt("PostProtocolChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_PostProtocolChars; /*aadt("PostProtocolChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Range; /*aadt("Range",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Range; /*aadt("Range",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Concrete; /*aadt("Concrete",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Concrete; /*aadt("Concrete",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_TagString; /*aadt("TagString",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_TagString; /*aadt("TagString",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Output; /*aadt("Output",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Output; /*aadt("Output",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_SyntaxDefinition; /*aadt("SyntaxDefinition",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_SyntaxDefinition; /*aadt("SyntaxDefinition",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_DatePart; /*aadt("DatePart",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_DatePart; /*aadt("DatePart",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Item; /*aadt("Item",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_RationalLiteral; /*aadt("RationalLiteral",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_RationalLiteral; /*aadt("RationalLiteral",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_LocationChangeEvent; /*aadt("LocationChangeEvent",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_RegExpModifier; /*aadt("RegExpModifier",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_RegExpModifier; /*aadt("RegExpModifier",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Prod; /*aadt("Prod",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Prod; /*aadt("Prod",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_ModuleParameters; /*aadt("ModuleParameters",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_ModuleParameters; /*aadt("ModuleParameters",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type $T11; /*aparameter("T",aadt("Tree",[],dataSyntax()),closed=false)*/ + public final io.usethesource.vallang.type.Type ADT_TimePartNoTZ; /*aadt("TimePartNoTZ",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_TimePartNoTZ; /*aadt("TimePartNoTZ",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_KeywordArguments_Expression; /*aadt("KeywordArguments",[aadt("Expression",[],contextFreeSyntax())],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_KeywordArguments_Expression; /*aadt("KeywordArguments",[aadt("Expression",[],contextFreeSyntax())],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Mapping_1; /*aadt("Mapping",[aparameter("T",aadt("Tree",[],dataSyntax()),closed=true)],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Mapping_1; /*aadt("Mapping",[aparameter("T",aadt("Tree",[],dataSyntax()),closed=true)],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_ImportedModule; /*aadt("ImportedModule",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_ImportedModule; /*aadt("ImportedModule",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_GrammarModule; /*aadt("GrammarModule",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_RegExpLiteral; /*aadt("RegExpLiteral",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_RegExpLiteral; /*aadt("RegExpLiteral",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Declarator; /*aadt("Declarator",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Declarator; /*aadt("Declarator",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Target; /*aadt("Target",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Target; /*aadt("Target",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_IntegerLiteral; /*aadt("IntegerLiteral",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_IntegerLiteral; /*aadt("IntegerLiteral",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Case; /*aadt("Case",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Case; /*aadt("Case",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_KeywordFormals; /*aadt("KeywordFormals",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_KeywordFormals; /*aadt("KeywordFormals",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_DataTarget; /*aadt("DataTarget",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_DataTarget; /*aadt("DataTarget",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Renaming; /*aadt("Renaming",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Renaming; /*aadt("Renaming",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Catch; /*aadt("Catch",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Catch; /*aadt("Catch",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Production; /*aadt("Production",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Renamings; /*aadt("Renamings",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Renamings; /*aadt("Renamings",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_KeywordFormal; /*aadt("KeywordFormal",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_KeywordFormal; /*aadt("KeywordFormal",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_OptionalExpression; /*aadt("OptionalExpression",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_OptionalExpression; /*aadt("OptionalExpression",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_GrammarDefinition; /*aadt("GrammarDefinition",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Field; /*aadt("Field",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Field; /*aadt("Field",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_FunctionBody; /*aadt("FunctionBody",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_FunctionBody; /*aadt("FunctionBody",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_LocationLiteral; /*aadt("LocationLiteral",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_LocationLiteral; /*aadt("LocationLiteral",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Tag; /*aadt("Tag",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Tag; /*aadt("Tag",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Type; /*aadt("Type",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Type; /*aadt("Type",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_HexIntegerLiteral; /*aadt("HexIntegerLiteral",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_HexIntegerLiteral; /*aadt("HexIntegerLiteral",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_PostStringChars; /*aadt("PostStringChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_PostStringChars; /*aadt("PostStringChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_TimeZonePart; /*aadt("TimeZonePart",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_TimeZonePart; /*aadt("TimeZonePart",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Declaration; /*aadt("Declaration",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Declaration; /*aadt("Declaration",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_ShellCommand; /*aadt("ShellCommand",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_ShellCommand; /*aadt("ShellCommand",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Nonterminal; /*aadt("Nonterminal",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Nonterminal; /*aadt("Nonterminal",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_RegExp; /*aadt("RegExp",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_RegExp; /*aadt("RegExp",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_PreStringChars; /*aadt("PreStringChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_PreStringChars; /*aadt("PreStringChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type $T8; /*alist(aparameter("T",avalue(),closed=false))*/ + public final io.usethesource.vallang.type.Type ADT_StringLiteral; /*aadt("StringLiteral",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_StringLiteral; /*aadt("StringLiteral",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Variable; /*aadt("Variable",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Variable; /*aadt("Variable",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Name; /*aadt("Name",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Name; /*aadt("Name",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_NonterminalLabel; /*aadt("NonterminalLabel",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_NonterminalLabel; /*aadt("NonterminalLabel",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Bound; /*aadt("Bound",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Bound; /*aadt("Bound",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_TypeArg; /*aadt("TypeArg",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_TypeArg; /*aadt("TypeArg",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_PathPart; /*aadt("PathPart",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_PathPart; /*aadt("PathPart",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Class; /*aadt("Class",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Class; /*aadt("Class",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_KeywordArgument_1; /*aadt("KeywordArgument",[aparameter("T",aadt("Tree",[],dataSyntax()),closed=true)],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_KeywordArgument_1; /*aadt("KeywordArgument",[aparameter("T",aadt("Tree",[],dataSyntax()),closed=true)],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Associativity; /*aadt("Associativity",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Signature; /*aadt("Signature",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Signature; /*aadt("Signature",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Tags; /*aadt("Tags",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Tags; /*aadt("Tags",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_KeywordArguments_Pattern; /*aadt("KeywordArguments",[aadt("Pattern",[],contextFreeSyntax())],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_KeywordArguments_Pattern; /*aadt("KeywordArguments",[aadt("Pattern",[],contextFreeSyntax())],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_ModuleActuals; /*aadt("ModuleActuals",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_ModuleActuals; /*aadt("ModuleActuals",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Condition; /*aadt("Condition",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_URLChars; /*aadt("URLChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_URLChars; /*aadt("URLChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Start; /*aadt("Start",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Start; /*aadt("Start",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Body; /*aadt("Body",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Body; /*aadt("Body",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_PrePathChars; /*aadt("PrePathChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_PrePathChars; /*aadt("PrePathChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_StringConstant; /*aadt("StringConstant",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_StringConstant; /*aadt("StringConstant",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_OptionalComma; /*aadt("OptionalComma",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_OptionalComma; /*aadt("OptionalComma",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_StringTail; /*aadt("StringTail",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_StringTail; /*aadt("StringTail",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Backslash; /*aadt("Backslash",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Backslash; /*aadt("Backslash",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Char; /*aadt("Char",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Char; /*aadt("Char",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_DataTypeSelector; /*aadt("DataTypeSelector",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_DataTypeSelector; /*aadt("DataTypeSelector",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_CaseInsensitiveStringConstant; /*aadt("CaseInsensitiveStringConstant",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_CaseInsensitiveStringConstant; /*aadt("CaseInsensitiveStringConstant",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Assignment; /*aadt("Assignment",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Assignment; /*aadt("Assignment",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Header; /*aadt("Header",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Header; /*aadt("Header",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Exception; /*aadt("Exception",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_PatternWithAction; /*aadt("PatternWithAction",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_PatternWithAction; /*aadt("PatternWithAction",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Symbol; /*aadt("Symbol",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type $T1; /*aset(aadt("Symbol",[],dataSyntax()))*/ + public final io.usethesource.vallang.type.Type ADT_TypeVar; /*aadt("TypeVar",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_TypeVar; /*aadt("TypeVar",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_FunctionDeclaration; /*aadt("FunctionDeclaration",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_FunctionDeclaration; /*aadt("FunctionDeclaration",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_JustDate; /*aadt("JustDate",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_JustDate; /*aadt("JustDate",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_LocationType; /*aadt("LocationType",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type $T6; /*areified(aparameter("U",avalue(),closed=false))*/ + public final io.usethesource.vallang.type.Type ADT_UserType; /*aadt("UserType",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_UserType; /*aadt("UserType",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_CharRange; /*aadt("CharRange",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Variant; /*aadt("Variant",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Variant; /*aadt("Variant",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Comprehension; /*aadt("Comprehension",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Comprehension; /*aadt("Comprehension",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Import; /*aadt("Import",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Import; /*aadt("Import",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_TreeSearchResult_1; /*aadt("TreeSearchResult",[aparameter("T",aadt("Tree",[],dataSyntax()),closed=true)],dataSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_LAYOUTLIST; /*aadt("LAYOUTLIST",[],layoutSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_ConcreteHole; /*aadt("ConcreteHole",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_ConcreteHole; /*aadt("ConcreteHole",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Grammar; /*aadt("Grammar",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Message; /*aadt("Message",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type $T2; /*alist(aadt("Symbol",[],dataSyntax()))*/ + public final io.usethesource.vallang.type.Type ADT_Sym; /*aadt("Sym",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Sym; /*aadt("Sym",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_StringMiddle; /*aadt("StringMiddle",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_StringMiddle; /*aadt("StringMiddle",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_DateAndTime; /*aadt("DateAndTime",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_DateAndTime; /*aadt("DateAndTime",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_RealLiteral; /*aadt("RealLiteral",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_RealLiteral; /*aadt("RealLiteral",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Formals; /*aadt("Formals",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Formals; /*aadt("Formals",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_FunctionModifiers; /*aadt("FunctionModifiers",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_FunctionModifiers; /*aadt("FunctionModifiers",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_QualifiedName; /*aadt("QualifiedName",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_QualifiedName; /*aadt("QualifiedName",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_MidPathChars; /*aadt("MidPathChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_MidPathChars; /*aadt("MidPathChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Module; /*aadt("Module",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Module; /*aadt("Module",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_ProtocolPart; /*aadt("ProtocolPart",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_ProtocolPart; /*aadt("ProtocolPart",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_NamedBackslash; /*aadt("NamedBackslash",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_NamedBackslash; /*aadt("NamedBackslash",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_MidProtocolChars; /*aadt("MidProtocolChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_MidProtocolChars; /*aadt("MidProtocolChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_RascalKeywords; /*aadt("RascalKeywords",[],keywordSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_StructuredType; /*aadt("StructuredType",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_StructuredType; /*aadt("StructuredType",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Visit; /*aadt("Visit",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Visit; /*aadt("Visit",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Command; /*aadt("Command",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Command; /*aadt("Command",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_StringTemplate; /*aadt("StringTemplate",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_StringTemplate; /*aadt("StringTemplate",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_OctalIntegerLiteral; /*aadt("OctalIntegerLiteral",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_OctalIntegerLiteral; /*aadt("OctalIntegerLiteral",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_DecimalIntegerLiteral; /*aadt("DecimalIntegerLiteral",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_DecimalIntegerLiteral; /*aadt("DecimalIntegerLiteral",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Assoc; /*aadt("Assoc",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Assoc; /*aadt("Assoc",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_DateTimeLiteral; /*aadt("DateTimeLiteral",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_DateTimeLiteral; /*aadt("DateTimeLiteral",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Label; /*aadt("Label",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Label; /*aadt("Label",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Kind; /*aadt("Kind",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Kind; /*aadt("Kind",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_PathTail; /*aadt("PathTail",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_PathTail; /*aadt("PathTail",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Parameters; /*aadt("Parameters",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Parameters; /*aadt("Parameters",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_PreProtocolChars; /*aadt("PreProtocolChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_PreProtocolChars; /*aadt("PreProtocolChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_RuntimeException; /*aadt("RuntimeException",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_NamedRegExp; /*aadt("NamedRegExp",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_NamedRegExp; /*aadt("NamedRegExp",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type $T0; /*aset(aadt("Condition",[],dataSyntax()))*/ + public final io.usethesource.vallang.type.Type ADT_PathChars; /*aadt("PathChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_PathChars; /*aadt("PathChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_PostPathChars; /*aadt("PostPathChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_PostPathChars; /*aadt("PostPathChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_FunctionModifier; /*aadt("FunctionModifier",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_FunctionModifier; /*aadt("FunctionModifier",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_EvalCommand; /*aadt("EvalCommand",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_EvalCommand; /*aadt("EvalCommand",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Statement; /*aadt("Statement",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Statement; /*aadt("Statement",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_StringCharacter; /*aadt("StringCharacter",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_StringCharacter; /*aadt("StringCharacter",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Literal; /*aadt("Literal",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Literal; /*aadt("Literal",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Toplevel; /*aadt("Toplevel",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Toplevel; /*aadt("Toplevel",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_ConcretePart; /*aadt("ConcretePart",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_ConcretePart; /*aadt("ConcretePart",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_ProtocolTail; /*aadt("ProtocolTail",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_ProtocolTail; /*aadt("ProtocolTail",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_BasicType; /*aadt("BasicType",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_BasicType; /*aadt("BasicType",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type $T3; /*areified(aparameter("T",avalue(),closed=false))*/ + public final io.usethesource.vallang.type.Type ADT_Comment; /*aadt("Comment",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Comment; /*aadt("Comment",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Commands; /*aadt("Commands",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Commands; /*aadt("Commands",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_ProdModifier; /*aadt("ProdModifier",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_ProdModifier; /*aadt("ProdModifier",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_JustTime; /*aadt("JustTime",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_JustTime; /*aadt("JustTime",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_UnicodeEscape; /*aadt("UnicodeEscape",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_UnicodeEscape; /*aadt("UnicodeEscape",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_CommonKeywordParameters; /*aadt("CommonKeywordParameters",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_CommonKeywordParameters; /*aadt("CommonKeywordParameters",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Assignable; /*aadt("Assignable",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Assignable; /*aadt("Assignable",[],contextFreeSyntax())*/ + + public $References(RascalExecutionContext rex){ + this(rex, null); + } + + public $References(RascalExecutionContext rex, Object extended){ + super(rex); + this.$me = extended == null ? this : ($References_$I)extended; + ModuleStore mstore = rex.getModuleStore(); + mstore.put(rascal.lang.rascal.grammar.definition.$References.class, this); + + mstore.importModule(rascal.lang.rascal.grammar.definition.$Symbols.class, rex, rascal.lang.rascal.grammar.definition.$Symbols::new); + + M_lang_rascal_grammar_definition_Symbols = mstore.getModule(rascal.lang.rascal.grammar.definition.$Symbols.class); + + M_ParseTree = mstore.extendModule(rascal.$ParseTree.class, rex, rascal.$ParseTree::new, $me); + M_Type = mstore.extendModule(rascal.$Type.class, rex, rascal.$Type::new, $me); + M_List = mstore.extendModule(rascal.$List.class, rex, rascal.$List::new, $me); + M_Grammar = mstore.extendModule(rascal.$Grammar.class, rex, rascal.$Grammar::new, $me); + M_Message = mstore.extendModule(rascal.$Message.class, rex, rascal.$Message::new, $me); + + + $TS.importStore(M_ParseTree.$TS); + $TS.importStore(M_lang_rascal_grammar_definition_Symbols.$TS); + $TS.importStore(M_Type.$TS); + $TS.importStore(M_List.$TS); + $TS.importStore(M_Grammar.$TS); + $TS.importStore(M_Message.$TS); + + $constants = readBinaryConstantsFile(this.getClass(), "rascal/lang/rascal/grammar/definition/$References.constants", 0, "d751713988987e9331980363e24189ce"); + NT_Replacement = $sort("Replacement"); + ADT_Replacement = $adt("Replacement"); + NT_ProtocolChars = $lex("ProtocolChars"); + ADT_ProtocolChars = $adt("ProtocolChars"); + NT_MidStringChars = $lex("MidStringChars"); + ADT_MidStringChars = $adt("MidStringChars"); + NT_LocalVariableDeclaration = $sort("LocalVariableDeclaration"); + ADT_LocalVariableDeclaration = $adt("LocalVariableDeclaration"); + NT_BooleanLiteral = $lex("BooleanLiteral"); + ADT_BooleanLiteral = $adt("BooleanLiteral"); + NT_Expression = $sort("Expression"); + ADT_Expression = $adt("Expression"); + NT_Strategy = $sort("Strategy"); + ADT_Strategy = $adt("Strategy"); + ADT_Attr = $adt("Attr"); + ADT_Tree = $adt("Tree"); + NT_LAYOUT = $lex("LAYOUT"); + ADT_LAYOUT = $adt("LAYOUT"); + NT_Pattern = $sort("Pattern"); + ADT_Pattern = $adt("Pattern"); + ADT_LocationChangeType = $adt("LocationChangeType"); + ADT_IOCapability = $adt("IOCapability"); + NT_FunctionType = $sort("FunctionType"); + ADT_FunctionType = $adt("FunctionType"); + NT_Visibility = $sort("Visibility"); + ADT_Visibility = $adt("Visibility"); + NT_PostProtocolChars = $lex("PostProtocolChars"); + ADT_PostProtocolChars = $adt("PostProtocolChars"); + NT_Range = $sort("Range"); + ADT_Range = $adt("Range"); + NT_Concrete = $lex("Concrete"); + ADT_Concrete = $adt("Concrete"); + NT_TagString = $lex("TagString"); + ADT_TagString = $adt("TagString"); + NT_Output = $lex("Output"); + ADT_Output = $adt("Output"); + NT_SyntaxDefinition = $sort("SyntaxDefinition"); + ADT_SyntaxDefinition = $adt("SyntaxDefinition"); + NT_DatePart = $lex("DatePart"); + ADT_DatePart = $adt("DatePart"); + ADT_Item = $adt("Item"); + NT_RationalLiteral = $lex("RationalLiteral"); + ADT_RationalLiteral = $adt("RationalLiteral"); + ADT_LocationChangeEvent = $adt("LocationChangeEvent"); + NT_RegExpModifier = $lex("RegExpModifier"); + ADT_RegExpModifier = $adt("RegExpModifier"); + NT_Prod = $sort("Prod"); + ADT_Prod = $adt("Prod"); + NT_ModuleParameters = $sort("ModuleParameters"); + ADT_ModuleParameters = $adt("ModuleParameters"); + NT_TimePartNoTZ = $lex("TimePartNoTZ"); + ADT_TimePartNoTZ = $adt("TimePartNoTZ"); + NT_ImportedModule = $sort("ImportedModule"); + ADT_ImportedModule = $adt("ImportedModule"); + ADT_GrammarModule = $adt("GrammarModule"); + NT_RegExpLiteral = $lex("RegExpLiteral"); + ADT_RegExpLiteral = $adt("RegExpLiteral"); + NT_Declarator = $sort("Declarator"); + ADT_Declarator = $adt("Declarator"); + NT_Target = $sort("Target"); + ADT_Target = $adt("Target"); + NT_IntegerLiteral = $sort("IntegerLiteral"); + ADT_IntegerLiteral = $adt("IntegerLiteral"); + NT_Case = $sort("Case"); + ADT_Case = $adt("Case"); + NT_KeywordFormals = $sort("KeywordFormals"); + ADT_KeywordFormals = $adt("KeywordFormals"); + NT_DataTarget = $sort("DataTarget"); + ADT_DataTarget = $adt("DataTarget"); + NT_Renaming = $sort("Renaming"); + ADT_Renaming = $adt("Renaming"); + NT_Catch = $sort("Catch"); + ADT_Catch = $adt("Catch"); + ADT_Production = $adt("Production"); + NT_Renamings = $sort("Renamings"); + ADT_Renamings = $adt("Renamings"); + NT_KeywordFormal = $sort("KeywordFormal"); + ADT_KeywordFormal = $adt("KeywordFormal"); + NT_OptionalExpression = $sort("OptionalExpression"); + ADT_OptionalExpression = $adt("OptionalExpression"); + ADT_GrammarDefinition = $adt("GrammarDefinition"); + NT_Field = $sort("Field"); + ADT_Field = $adt("Field"); + NT_FunctionBody = $sort("FunctionBody"); + ADT_FunctionBody = $adt("FunctionBody"); + NT_LocationLiteral = $sort("LocationLiteral"); + ADT_LocationLiteral = $adt("LocationLiteral"); + NT_Tag = $sort("Tag"); + ADT_Tag = $adt("Tag"); + NT_Type = $sort("Type"); + ADT_Type = $adt("Type"); + NT_HexIntegerLiteral = $lex("HexIntegerLiteral"); + ADT_HexIntegerLiteral = $adt("HexIntegerLiteral"); + NT_PostStringChars = $lex("PostStringChars"); + ADT_PostStringChars = $adt("PostStringChars"); + NT_TimeZonePart = $lex("TimeZonePart"); + ADT_TimeZonePart = $adt("TimeZonePart"); + NT_Declaration = $sort("Declaration"); + ADT_Declaration = $adt("Declaration"); + NT_ShellCommand = $sort("ShellCommand"); + ADT_ShellCommand = $adt("ShellCommand"); + NT_Nonterminal = $lex("Nonterminal"); + ADT_Nonterminal = $adt("Nonterminal"); + NT_RegExp = $lex("RegExp"); + ADT_RegExp = $adt("RegExp"); + NT_PreStringChars = $lex("PreStringChars"); + ADT_PreStringChars = $adt("PreStringChars"); + NT_StringLiteral = $sort("StringLiteral"); + ADT_StringLiteral = $adt("StringLiteral"); + NT_Variable = $sort("Variable"); + ADT_Variable = $adt("Variable"); + NT_Name = $lex("Name"); + ADT_Name = $adt("Name"); + NT_NonterminalLabel = $lex("NonterminalLabel"); + ADT_NonterminalLabel = $adt("NonterminalLabel"); + NT_Bound = $sort("Bound"); + ADT_Bound = $adt("Bound"); + NT_TypeArg = $sort("TypeArg"); + ADT_TypeArg = $adt("TypeArg"); + NT_PathPart = $sort("PathPart"); + ADT_PathPart = $adt("PathPart"); + NT_Class = $sort("Class"); + ADT_Class = $adt("Class"); + ADT_Associativity = $adt("Associativity"); + NT_Signature = $sort("Signature"); + ADT_Signature = $adt("Signature"); + NT_Tags = $sort("Tags"); + ADT_Tags = $adt("Tags"); + NT_ModuleActuals = $sort("ModuleActuals"); + ADT_ModuleActuals = $adt("ModuleActuals"); + ADT_Condition = $adt("Condition"); + NT_URLChars = $lex("URLChars"); + ADT_URLChars = $adt("URLChars"); + NT_Start = $sort("Start"); + ADT_Start = $adt("Start"); + NT_Body = $sort("Body"); + ADT_Body = $adt("Body"); + NT_PrePathChars = $lex("PrePathChars"); + ADT_PrePathChars = $adt("PrePathChars"); + NT_StringConstant = $lex("StringConstant"); + ADT_StringConstant = $adt("StringConstant"); + NT_OptionalComma = $lex("OptionalComma"); + ADT_OptionalComma = $adt("OptionalComma"); + NT_StringTail = $sort("StringTail"); + ADT_StringTail = $adt("StringTail"); + NT_Backslash = $lex("Backslash"); + ADT_Backslash = $adt("Backslash"); + NT_Char = $lex("Char"); + ADT_Char = $adt("Char"); + NT_DataTypeSelector = $sort("DataTypeSelector"); + ADT_DataTypeSelector = $adt("DataTypeSelector"); + NT_CaseInsensitiveStringConstant = $lex("CaseInsensitiveStringConstant"); + ADT_CaseInsensitiveStringConstant = $adt("CaseInsensitiveStringConstant"); + NT_Assignment = $sort("Assignment"); + ADT_Assignment = $adt("Assignment"); + NT_Header = $sort("Header"); + ADT_Header = $adt("Header"); + ADT_Exception = $adt("Exception"); + NT_PatternWithAction = $sort("PatternWithAction"); + ADT_PatternWithAction = $adt("PatternWithAction"); + ADT_Symbol = $adt("Symbol"); + NT_TypeVar = $sort("TypeVar"); + ADT_TypeVar = $adt("TypeVar"); + NT_FunctionDeclaration = $sort("FunctionDeclaration"); + ADT_FunctionDeclaration = $adt("FunctionDeclaration"); + NT_JustDate = $lex("JustDate"); + ADT_JustDate = $adt("JustDate"); + ADT_LocationType = $adt("LocationType"); + NT_UserType = $sort("UserType"); + ADT_UserType = $adt("UserType"); + ADT_CharRange = $adt("CharRange"); + NT_Variant = $sort("Variant"); + ADT_Variant = $adt("Variant"); + NT_Comprehension = $sort("Comprehension"); + ADT_Comprehension = $adt("Comprehension"); + NT_Import = $sort("Import"); + ADT_Import = $adt("Import"); + ADT_LAYOUTLIST = $layouts("LAYOUTLIST"); + NT_ConcreteHole = $sort("ConcreteHole"); + ADT_ConcreteHole = $adt("ConcreteHole"); + ADT_Grammar = $adt("Grammar"); + ADT_Message = $adt("Message"); + NT_Sym = $sort("Sym"); + ADT_Sym = $adt("Sym"); + NT_StringMiddle = $sort("StringMiddle"); + ADT_StringMiddle = $adt("StringMiddle"); + NT_DateAndTime = $lex("DateAndTime"); + ADT_DateAndTime = $adt("DateAndTime"); + NT_RealLiteral = $lex("RealLiteral"); + ADT_RealLiteral = $adt("RealLiteral"); + NT_Formals = $sort("Formals"); + ADT_Formals = $adt("Formals"); + NT_FunctionModifiers = $sort("FunctionModifiers"); + ADT_FunctionModifiers = $adt("FunctionModifiers"); + NT_QualifiedName = $sort("QualifiedName"); + ADT_QualifiedName = $adt("QualifiedName"); + NT_MidPathChars = $lex("MidPathChars"); + ADT_MidPathChars = $adt("MidPathChars"); + NT_Module = $sort("Module"); + ADT_Module = $adt("Module"); + NT_ProtocolPart = $sort("ProtocolPart"); + ADT_ProtocolPart = $adt("ProtocolPart"); + NT_NamedBackslash = $lex("NamedBackslash"); + ADT_NamedBackslash = $adt("NamedBackslash"); + NT_MidProtocolChars = $lex("MidProtocolChars"); + ADT_MidProtocolChars = $adt("MidProtocolChars"); + ADT_RascalKeywords = $keywords("RascalKeywords"); + NT_StructuredType = $sort("StructuredType"); + ADT_StructuredType = $adt("StructuredType"); + NT_Visit = $sort("Visit"); + ADT_Visit = $adt("Visit"); + NT_Command = $sort("Command"); + ADT_Command = $adt("Command"); + NT_StringTemplate = $sort("StringTemplate"); + ADT_StringTemplate = $adt("StringTemplate"); + NT_OctalIntegerLiteral = $lex("OctalIntegerLiteral"); + ADT_OctalIntegerLiteral = $adt("OctalIntegerLiteral"); + NT_DecimalIntegerLiteral = $lex("DecimalIntegerLiteral"); + ADT_DecimalIntegerLiteral = $adt("DecimalIntegerLiteral"); + NT_Assoc = $sort("Assoc"); + ADT_Assoc = $adt("Assoc"); + NT_DateTimeLiteral = $sort("DateTimeLiteral"); + ADT_DateTimeLiteral = $adt("DateTimeLiteral"); + NT_Label = $sort("Label"); + ADT_Label = $adt("Label"); + NT_Kind = $sort("Kind"); + ADT_Kind = $adt("Kind"); + NT_PathTail = $sort("PathTail"); + ADT_PathTail = $adt("PathTail"); + NT_Parameters = $sort("Parameters"); + ADT_Parameters = $adt("Parameters"); + NT_PreProtocolChars = $lex("PreProtocolChars"); + ADT_PreProtocolChars = $adt("PreProtocolChars"); + ADT_RuntimeException = $adt("RuntimeException"); + NT_NamedRegExp = $lex("NamedRegExp"); + ADT_NamedRegExp = $adt("NamedRegExp"); + NT_PathChars = $lex("PathChars"); + ADT_PathChars = $adt("PathChars"); + NT_PostPathChars = $lex("PostPathChars"); + ADT_PostPathChars = $adt("PostPathChars"); + NT_FunctionModifier = $sort("FunctionModifier"); + ADT_FunctionModifier = $adt("FunctionModifier"); + NT_EvalCommand = $sort("EvalCommand"); + ADT_EvalCommand = $adt("EvalCommand"); + NT_Statement = $sort("Statement"); + ADT_Statement = $adt("Statement"); + NT_StringCharacter = $lex("StringCharacter"); + ADT_StringCharacter = $adt("StringCharacter"); + NT_Literal = $sort("Literal"); + ADT_Literal = $adt("Literal"); + NT_Toplevel = $sort("Toplevel"); + ADT_Toplevel = $adt("Toplevel"); + NT_ConcretePart = $lex("ConcretePart"); + ADT_ConcretePart = $adt("ConcretePart"); + NT_ProtocolTail = $sort("ProtocolTail"); + ADT_ProtocolTail = $adt("ProtocolTail"); + NT_BasicType = $sort("BasicType"); + ADT_BasicType = $adt("BasicType"); + NT_Comment = $lex("Comment"); + ADT_Comment = $adt("Comment"); + NT_Commands = $sort("Commands"); + ADT_Commands = $adt("Commands"); + NT_ProdModifier = $sort("ProdModifier"); + ADT_ProdModifier = $adt("ProdModifier"); + NT_JustTime = $lex("JustTime"); + ADT_JustTime = $adt("JustTime"); + NT_UnicodeEscape = $lex("UnicodeEscape"); + ADT_UnicodeEscape = $adt("UnicodeEscape"); + NT_CommonKeywordParameters = $sort("CommonKeywordParameters"); + ADT_CommonKeywordParameters = $adt("CommonKeywordParameters"); + NT_Assignable = $sort("Assignable"); + ADT_Assignable = $adt("Assignable"); + $T4 = $TF.valueType(); + $T7 = $TF.parameterType("U", $T4); + $T9 = $TF.stringType(); + $T5 = $TF.parameterType("T", $T4); + NT_Mapping_Expression = $parameterizedSort("Mapping", new Type[] { ADT_Expression }, $RVF.list($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Expression")))); + $T10 = $TF.parameterType("T", ADT_Tree); + NT_KeywordArguments_1 = $parameterizedSort("KeywordArguments", new Type[] { $T10 }, $RVF.list($RVF.constructor(RascalValueFactory.Symbol_Parameter, $RVF.string("T"), $RVF.constructor(RascalValueFactory.Symbol_Adt, $RVF.string("Tree"), $RVF.list())))); + NT_Mapping_Pattern = $parameterizedSort("Mapping", new Type[] { ADT_Pattern }, $RVF.list($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Pattern")))); + $T11 = $TF.parameterType("T", ADT_Tree); + NT_KeywordArguments_Expression = $parameterizedSort("KeywordArguments", new Type[] { ADT_Expression }, $RVF.list($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Expression")))); + NT_Mapping_1 = $parameterizedSort("Mapping", new Type[] { $T10 }, $RVF.list($RVF.constructor(RascalValueFactory.Symbol_Parameter, $RVF.string("T"), $RVF.constructor(RascalValueFactory.Symbol_Adt, $RVF.string("Tree"), $RVF.list())))); + $T8 = $TF.listType($T5); + NT_KeywordArgument_1 = $parameterizedSort("KeywordArgument", new Type[] { $T10 }, $RVF.list($RVF.constructor(RascalValueFactory.Symbol_Parameter, $RVF.string("T"), $RVF.constructor(RascalValueFactory.Symbol_Adt, $RVF.string("Tree"), $RVF.list())))); + NT_KeywordArguments_Pattern = $parameterizedSort("KeywordArguments", new Type[] { ADT_Pattern }, $RVF.list($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Pattern")))); + $T1 = $TF.setType(ADT_Symbol); + $T6 = $RTF.reifiedType($T7); + ADT_TreeSearchResult_1 = $parameterizedAdt("TreeSearchResult", new Type[] { $T10 }); + $T2 = $TF.listType(ADT_Symbol); + $T0 = $TF.setType(ADT_Condition); + $T3 = $RTF.reifiedType($T5); + ADT_Mapping_Expression = $TF.abstractDataType($TS, "Mapping", new Type[] { ADT_Expression }); + ADT_KeywordArguments_1 = $TF.abstractDataType($TS, "KeywordArguments", new Type[] { $T10 }); + ADT_Mapping_Pattern = $TF.abstractDataType($TS, "Mapping", new Type[] { ADT_Pattern }); + ADT_KeywordArguments_Expression = $TF.abstractDataType($TS, "KeywordArguments", new Type[] { ADT_Expression }); + ADT_Mapping_1 = $TF.abstractDataType($TS, "Mapping", new Type[] { $T10 }); + ADT_KeywordArgument_1 = $TF.abstractDataType($TS, "KeywordArgument", new Type[] { $T10 }); + ADT_KeywordArguments_Pattern = $TF.abstractDataType($TS, "KeywordArguments", new Type[] { ADT_Pattern }); + + + + } + public IList addLabels(IValue $P0, IValue $P1){ // Generated by Resolver + return (IList) M_Type.addLabels($P0, $P1); + } + public IBool sameType(IValue $P0, IValue $P1){ // Generated by Resolver + return (IBool) M_ParseTree.sameType($P0, $P1); + } + public IBool isAliasType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isAliasType($P0); + } + public IString intercalate(IValue $P0, IValue $P1){ // Generated by Resolver + return (IString) M_List.intercalate($P0, $P1); + } + public IValue head(IValue $P0){ // Generated by Resolver + return (IValue) M_List.head($P0); + } + public IList head(IValue $P0, IValue $P1){ // Generated by Resolver + return (IList) M_List.head($P0, $P1); + } + public IInteger size(IValue $P0){ // Generated by Resolver + return (IInteger) M_List.size($P0); + } + public IBool isStrType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isStrType($P0); + } + public IMap toMap(IValue $P0){ // Generated by Resolver + return (IMap) M_List.toMap($P0); + } + public IConstructor choice(IValue $P0, IValue $P1){ // Generated by Resolver + return (IConstructor) M_Type.choice($P0, $P1); + } + public IBool isADTType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isADTType($P0); + } + public IBool isValueType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isValueType($P0); + } + public IList mapper(IValue $P0, IValue $P1){ // Generated by Resolver + return (IList) M_List.mapper($P0, $P1); + } + public IBool isListType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isListType($P0); + } + public IBool isRealType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isRealType($P0); + } + public IList reverse(IValue $P0){ // Generated by Resolver + return (IList) M_List.reverse($P0); + } + public IBool isTypeVar(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isTypeVar($P0); + } + public TypedFunctionInstance2 firstAmbiguityFinder(IValue $P0, java.util.Map $kwpActuals){ // Generated by Resolver + return (TypedFunctionInstance2) M_ParseTree.firstAmbiguityFinder($P0, $kwpActuals); + } + public IBool isEmpty(IValue $P0){ // Generated by Resolver + return (IBool) M_List.isEmpty($P0); + } + public IList remove(IValue $P0, IValue $P1){ // Generated by Resolver + return (IList) M_List.remove($P0, $P1); + } + public IValue max(IValue $P0){ // Generated by Resolver + return (IValue) M_List.max($P0); + } + public IConstructor priority(IValue $P0, IValue $P1){ // Generated by Resolver + return (IConstructor) M_ParseTree.priority($P0, $P1); + } + public IValue getFirstFrom(IValue $P0){ // Generated by Resolver + return (IValue) M_List.getFirstFrom($P0); + } + public IMap distribution(IValue $P0){ // Generated by Resolver + return (IMap) M_List.distribution($P0); + } + public TypedFunctionInstance2 loadParser(IValue $P0, IValue $P1, java.util.Map $kwpActuals){ // Generated by Resolver + return (TypedFunctionInstance2) M_ParseTree.loadParser($P0, $P1, $kwpActuals); + } + public IString printSymbol(IValue $P0, IValue $P1){ // Generated by Resolver + return (IString) M_ParseTree.printSymbol($P0, $P1); + } + public IBool isNodeType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isNodeType($P0); + } + public IConstructor conditional(IValue $P0, IValue $P1){ // Generated by Resolver + IConstructor $result = null; + Type $P0Type = $P0.getType(); + Type $P1Type = $P1.getType(); + if($isSubtypeOf($P0Type, M_ParseTree.ADT_Symbol) && $isSubtypeOf($P1Type,$T0)){ + $result = (IConstructor)M_lang_rascal_grammar_definition_Symbols.lang_rascal_grammar_definition_Symbols_conditional$f9ac60504818807f((IConstructor) $P0, (ISet) $P1); + if($result != null) return $result; + } + if($isSubtypeOf($P0Type, M_ParseTree.ADT_Symbol) && $isSubtypeOf($P1Type,$T0)){ + $result = (IConstructor)M_lang_rascal_grammar_definition_Symbols.lang_rascal_grammar_definition_Symbols_conditional$a78f69e7726562ef((IConstructor) $P0, (ISet) $P1); + if($result != null) return $result; + return $RVF.constructor(M_ParseTree.Symbol_conditional_Symbol_set_Condition, new IValue[]{(IConstructor) $P0, (ISet) $P1}); + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0, $P1)); + } + public IConstructor grammar(IValue $P0){ // Generated by Resolver + return (IConstructor) M_Grammar.grammar($P0); + } + public IConstructor grammar(IValue $P0, IValue $P1){ // Generated by Resolver + return (IConstructor) M_Grammar.grammar($P0, $P1); + } + public IBool isSorted(IValue $P0, java.util.Map $kwpActuals){ // Generated by Resolver + return (IBool) M_List.isSorted($P0, $kwpActuals); + } + public IList take(IValue $P0, IValue $P1){ // Generated by Resolver + return (IList) M_List.take($P0, $P1); + } + public ISet toSet(IValue $P0){ // Generated by Resolver + return (ISet) M_List.toSet($P0); + } + public IConstructor references(IValue $P0){ // Generated by Resolver + IConstructor $result = null; + Type $P0Type = $P0.getType(); + if($isSubtypeOf($P0Type, M_Grammar.ADT_Grammar)){ + $result = (IConstructor)lang_rascal_grammar_definition_References_references$7b859d08c89dc9c3((IConstructor) $P0); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0)); + } + public IBool isReifiedType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isReifiedType($P0); + } + public ITuple takeOneFrom(IValue $P0){ // Generated by Resolver + return (ITuple) M_List.takeOneFrom($P0); + } + public ISet dependencies(IValue $P0){ // Generated by Resolver + return (ISet) M_Grammar.dependencies($P0); + } + public IConstructor alt(IValue $P0){ // Generated by Resolver + IConstructor $result = null; + Type $P0Type = $P0.getType(); + if($isSubtypeOf($P0Type,$T1)){ + $result = (IConstructor)M_lang_rascal_grammar_definition_Symbols.lang_rascal_grammar_definition_Symbols_alt$01fd93bf17a1bf85((ISet) $P0); + if($result != null) return $result; + } + if($isSubtypeOf($P0Type,$T1)){ + return $RVF.constructor(M_ParseTree.Symbol_alt_set_Symbol, new IValue[]{(ISet) $P0}); + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0)); + } + public IInteger indexOf(IValue $P0, IValue $P1){ // Generated by Resolver + return (IInteger) M_List.indexOf($P0, $P1); + } + public IBool isRelType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isRelType($P0); + } + public ITuple unzip2(IValue $P0){ // Generated by Resolver + return (ITuple) M_List.unzip2($P0); + } + public IBool isConstructorType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isConstructorType($P0); + } + public IConstructor var_func(IValue $P0, IValue $P1, IValue $P2){ // Generated by Resolver + return (IConstructor) M_Type.var_func($P0, $P1, $P2); + } + public IBool equivalent(IValue $P0, IValue $P1){ // Generated by Resolver + return (IBool) M_Type.equivalent($P0, $P1); + } + public IList takeWhile(IValue $P0, IValue $P1){ // Generated by Resolver + return (IList) M_List.takeWhile($P0, $P1); + } + public INumber sum(IValue $P0){ // Generated by Resolver + return (INumber) M_List.sum($P0); + } + public IList addParamLabels(IValue $P0, IValue $P1){ // Generated by Resolver + return (IList) M_Type.addParamLabels($P0, $P1); + } + public IList delete(IValue $P0, IValue $P1){ // Generated by Resolver + return (IList) M_List.delete($P0, $P1); + } + public IBool keepParams(IValue $P0, IValue $P1){ // Generated by Resolver + return (IBool) M_Type.keepParams($P0, $P1); + } + public IBool isListRelType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isListRelType($P0); + } + public ITuple unzip3(IValue $P0){ // Generated by Resolver + return (ITuple) M_List.unzip3($P0); + } + public IBool eq(IValue $P0, IValue $P1){ // Generated by Resolver + return (IBool) M_Type.eq($P0, $P1); + } + public IList insertAt(IValue $P0, IValue $P1, IValue $P2){ // Generated by Resolver + return (IList) M_List.insertAt($P0, $P1, $P2); + } + public IBool isMapType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isMapType($P0); + } + public IValue reducer(IValue $P0, IValue $P1, IValue $P2){ // Generated by Resolver + return (IValue) M_List.reducer($P0, $P1, $P2); + } + public IString toString(IValue $P0){ // Generated by Resolver + return (IString) M_List.toString($P0); + } + public ISet permutations(IValue $P0){ // Generated by Resolver + return (ISet) M_List.permutations($P0); + } + public TypedFunctionInstance3 loadParsers(IValue $P0, java.util.Map $kwpActuals){ // Generated by Resolver + return (TypedFunctionInstance3) M_ParseTree.loadParsers($P0, $kwpActuals); + } + public IBool isBoolType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isBoolType($P0); + } + public ISet imports(IValue $P0){ // Generated by Resolver + return (ISet) M_Grammar.imports($P0); + } + public IValue make(IValue $P0, IValue $P1, IValue $P2){ // Generated by Resolver + return (IValue) M_Type.make($P0, $P1, $P2); + } + public IValue make(IValue $P0, IValue $P1, IValue $P2, IValue $P3){ // Generated by Resolver + return (IValue) M_Type.make($P0, $P1, $P2, $P3); + } + public IList drop(IValue $P0, IValue $P1){ // Generated by Resolver + return (IList) M_List.drop($P0, $P1); + } + public IValue elementAt(IValue $P0, IValue $P1){ // Generated by Resolver + return (IValue) M_List.elementAt($P0, $P1); + } + public IBool isLocType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isLocType($P0); + } + public IValue implode(IValue $P0, IValue $P1){ // Generated by Resolver + return (IValue) M_ParseTree.implode($P0, $P1); + } + public TypedFunctionInstance3 firstAmbiguityFinders(IValue $P0, java.util.Map $kwpActuals){ // Generated by Resolver + return (TypedFunctionInstance3) M_ParseTree.firstAmbiguityFinders($P0, $kwpActuals); + } + public IList upTill(IValue $P0){ // Generated by Resolver + return (IList) M_List.upTill($P0); + } + public IList tail(IValue $P0){ // Generated by Resolver + return (IList) M_List.tail($P0); + } + public IList tail(IValue $P0, IValue $P1){ // Generated by Resolver + return (IList) M_List.tail($P0, $P1); + } + public ITuple headTail(IValue $P0){ // Generated by Resolver + return (ITuple) M_List.headTail($P0); + } + public IList zip2(IValue $P0, IValue $P1){ // Generated by Resolver + return (IList) M_List.zip2($P0, $P1); + } + public ITuple pop(IValue $P0){ // Generated by Resolver + return (ITuple) M_List.pop($P0); + } + public IConstructor typeOf(IValue $P0){ // Generated by Resolver + return (IConstructor) M_Type.typeOf($P0); + } + public IConstructor treeAt(IValue $P0, IValue $P1, IValue $P2){ // Generated by Resolver + return (IConstructor) M_ParseTree.treeAt($P0, $P1, $P2); + } + public IMap toMapUnique(IValue $P0){ // Generated by Resolver + return (IMap) M_List.toMapUnique($P0); + } + public IList index(IValue $P0){ // Generated by Resolver + return (IList) M_List.index($P0); + } + public IBool allLabeled(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.allLabeled($P0); + } + public IValue min(IValue $P0){ // Generated by Resolver + return (IValue) M_List.min($P0); + } + public IList prefix(IValue $P0){ // Generated by Resolver + return (IList) M_List.prefix($P0); + } + public IList zip3(IValue $P0, IValue $P1, IValue $P2){ // Generated by Resolver + return (IList) M_List.zip3($P0, $P1, $P2); + } + public IList slice(IValue $P0, IValue $P1, IValue $P2){ // Generated by Resolver + return (IList) M_List.slice($P0, $P1, $P2); + } + public IConstructor compose(IValue $P0, IValue $P1){ // Generated by Resolver + return (IConstructor) M_Grammar.compose($P0, $P1); + } + public IBool isSetType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isSetType($P0); + } + public void storeParsers(IValue $P0, IValue $P1){ // Generated by Resolver + M_ParseTree.storeParsers($P0, $P1); + } + public IInteger lastIndexOf(IValue $P0, IValue $P1){ // Generated by Resolver + return (IInteger) M_List.lastIndexOf($P0, $P1); + } + public ITree parse(IValue $P0, IValue $P1, IValue $P2, java.util.Map $kwpActuals){ // Generated by Resolver + return (ITree) M_ParseTree.parse($P0, $P1, $P2, $kwpActuals); + } + public ITree parse(IValue $P0, IValue $P1, java.util.Map $kwpActuals){ // Generated by Resolver + return (ITree) M_ParseTree.parse($P0, $P1, $kwpActuals); + } + public TypedFunctionInstance3 parsers(IValue $P0, java.util.Map $kwpActuals){ // Generated by Resolver + return (TypedFunctionInstance3) M_ParseTree.parsers($P0, $kwpActuals); + } + public IList concat(IValue $P0){ // Generated by Resolver + return (IList) M_List.concat($P0); + } + public IBool isRatType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isRatType($P0); + } + public IValue top(IValue $P0){ // Generated by Resolver + return (IValue) M_List.top($P0); + } + public IString itoString(IValue $P0){ // Generated by Resolver + return (IString) M_List.itoString($P0); + } + public IList getLabels(IValue $P0){ // Generated by Resolver + return (IList) M_Type.getLabels($P0); + } + public IValue last(IValue $P0){ // Generated by Resolver + return (IValue) M_List.last($P0); + } + public IList getParamLabels(IValue $P0){ // Generated by Resolver + return (IList) M_Type.getParamLabels($P0); + } + public IBool isNumType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isNumType($P0); + } + public IList stripLabels(IValue $P0){ // Generated by Resolver + return (IList) M_Type.stripLabels($P0); + } + public IBool isTupleType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isTupleType($P0); + } + public IBool isBagType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isBagType($P0); + } + public IList intersperse(IValue $P0, IValue $P1){ // Generated by Resolver + return (IList) M_List.intersperse($P0, $P1); + } + public IList merge(IValue $P0, IValue $P1, IValue $P2){ // Generated by Resolver + return (IList) M_List.merge($P0, $P1, $P2); + } + public IList merge(IValue $P0, IValue $P1){ // Generated by Resolver + return (IList) M_List.merge($P0, $P1); + } + public IBool isVoidType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isVoidType($P0); + } + public IConstructor strip(IValue $P0){ // Generated by Resolver + return (IConstructor) M_lang_rascal_grammar_definition_Symbols.strip($P0); + } + public IBool isNonTerminalType(IValue $P0){ // Generated by Resolver + return (IBool) M_ParseTree.isNonTerminalType($P0); + } + public IValue typeCast(IValue $P0, IValue $P1){ // Generated by Resolver + return (IValue) M_Type.typeCast($P0, $P1); + } + public IValue lub(IValue $P0, IValue $P1){ // Generated by Resolver + return (IValue) M_Type.lub($P0, $P1); + } + public IList shuffle(IValue $P0){ // Generated by Resolver + return (IList) M_List.shuffle($P0); + } + public IList shuffle(IValue $P0, IValue $P1){ // Generated by Resolver + return (IList) M_List.shuffle($P0, $P1); + } + public ISet $extends(IValue $P0){ // Generated by Resolver + return (ISet) M_Grammar.$extends($P0); + } + public IBool comparable(IValue $P0, IValue $P1){ // Generated by Resolver + return (IBool) M_Type.comparable($P0, $P1); + } + public IBool subtype(IValue $P0, IValue $P1){ // Generated by Resolver + IBool $result = null; + Type $P0Type = $P0.getType(); + Type $P1Type = $P1.getType(); + switch(Fingerprint.getFingerprint($P0)){ + + case 1643638592: + if($isSubtypeOf($P0Type, M_ParseTree.ADT_Symbol) && $isSubtypeOf($P1Type, M_ParseTree.ADT_Symbol)){ + $result = (IBool)M_Type.Type_subtype$162da85a0f5a9f0d((IConstructor) $P0, (IConstructor) $P1); + if($result != null) return $result; + } + break; + case 26576112: + if($isSubtypeOf($P0Type, M_ParseTree.ADT_Symbol) && $isSubtypeOf($P1Type, M_ParseTree.ADT_Symbol)){ + $result = (IBool)M_Type.Type_subtype$258479665eae36af((IConstructor) $P0, (IConstructor) $P1); + if($result != null) return $result; + $result = (IBool)M_Type.Type_subtype$0462d461bde80a82((IConstructor) $P0, (IConstructor) $P1); + if($result != null) return $result; + } + break; + case 1725888: + if($isSubtypeOf($P0Type, M_ParseTree.ADT_Symbol) && $isSubtypeOf($P1Type, M_ParseTree.ADT_Symbol)){ + $result = (IBool)M_Type.Type_subtype$f6957636a33615ae((IConstructor) $P0, (IConstructor) $P1); + if($result != null) return $result; + } + break; + case 1206598288: + if($isSubtypeOf($P0Type, M_ParseTree.ADT_Symbol) && $isSubtypeOf($P1Type, M_ParseTree.ADT_Symbol)){ + $result = (IBool)M_Type.Type_subtype$b674428cffef84bc((IConstructor) $P0, (IConstructor) $P1); + if($result != null) return $result; + } + break; + case 97904160: + if($isSubtypeOf($P0Type, M_ParseTree.ADT_Symbol) && $isSubtypeOf($P1Type, M_ParseTree.ADT_Symbol)){ + $result = (IBool)M_Type.Type_subtype$98167e340333c9a5((IConstructor) $P0, (IConstructor) $P1); + if($result != null) return $result; + $result = (IBool)M_Type.Type_subtype$4fe5b133e2ee1de9((IConstructor) $P0, (IConstructor) $P1); + if($result != null) return $result; + } + break; + case 28290288: + if($isSubtypeOf($P0Type, M_ParseTree.ADT_Symbol) && $isSubtypeOf($P1Type, M_ParseTree.ADT_Symbol)){ + $result = (IBool)M_ParseTree.ParseTree_subtype$384d8d76f0c7a053((IConstructor) $P0, (IConstructor) $P1); + if($result != null) return $result; + } + break; + case 910096: + if($isSubtypeOf($P0Type, M_ParseTree.ADT_Symbol) && $isSubtypeOf($P1Type, M_ParseTree.ADT_Symbol)){ + $result = (IBool)M_Type.Type_subtype$ca59d9bf5276e15d((IConstructor) $P0, (IConstructor) $P1); + if($result != null) return $result; + $result = (IBool)M_Type.Type_subtype$e77633ea9a4ac6a5((IConstructor) $P0, (IConstructor) $P1); + if($result != null) return $result; + } + break; + case 902344: + if($isSubtypeOf($P0Type, M_ParseTree.ADT_Symbol) && $isSubtypeOf($P1Type, M_ParseTree.ADT_Symbol)){ + $result = (IBool)M_Type.Type_subtype$21c6b8b775030d1d((IConstructor) $P0, (IConstructor) $P1); + if($result != null) return $result; + $result = (IBool)M_Type.Type_subtype$98e19b11a09faf67((IConstructor) $P0, (IConstructor) $P1); + if($result != null) return $result; + } + break; + case -1322071552: + if($isSubtypeOf($P0Type, M_ParseTree.ADT_Symbol) && $isSubtypeOf($P1Type, M_ParseTree.ADT_Symbol)){ + $result = (IBool)M_Type.Type_subtype$0862159b9fa78cf9((IConstructor) $P0, (IConstructor) $P1); + if($result != null) return $result; + } + break; + case 26641768: + if($isSubtypeOf($P0Type, M_ParseTree.ADT_Symbol) && $isSubtypeOf($P1Type, M_ParseTree.ADT_Symbol)){ + $result = (IBool)M_Type.Type_subtype$ab363c241c416a71((IConstructor) $P0, (IConstructor) $P1); + if($result != null) return $result; + $result = (IBool)M_Type.Type_subtype$4de9a977591be6e5((IConstructor) $P0, (IConstructor) $P1); + if($result != null) return $result; + } + break; + case 778304: + if($isSubtypeOf($P0Type, M_ParseTree.ADT_Symbol) && $isSubtypeOf($P1Type, M_ParseTree.ADT_Symbol)){ + $result = (IBool)M_Type.Type_subtype$23f59dc1171dc69d((IConstructor) $P0, (IConstructor) $P1); + if($result != null) return $result; + } + break; + case 100948096: + if($isSubtypeOf($P0Type, M_ParseTree.ADT_Symbol) && $isSubtypeOf($P1Type, M_ParseTree.ADT_Symbol)){ + $result = (IBool)M_Type.Type_subtype$ddf53e134f4d5416((IConstructor) $P0, (IConstructor) $P1); + if($result != null) return $result; + } + break; + case 112955840: + if($isSubtypeOf($P0Type, M_ParseTree.ADT_Symbol) && $isSubtypeOf($P1Type, M_ParseTree.ADT_Symbol)){ + $result = (IBool)M_Type.Type_subtype$bc5943e83a6df899((IConstructor) $P0, (IConstructor) $P1); + if($result != null) return $result; + $result = (IBool)M_Type.Type_subtype$282ad33dd55efdcc((IConstructor) $P0, (IConstructor) $P1); + if($result != null) return $result; + } + break; + case 1542928: + if($isSubtypeOf($P0Type, M_ParseTree.ADT_Symbol) && $isSubtypeOf($P1Type, M_ParseTree.ADT_Symbol)){ + $result = (IBool)M_Type.Type_subtype$5f5250bbf1aff423((IConstructor) $P0, (IConstructor) $P1); + if($result != null) return $result; + $result = (IBool)M_Type.Type_subtype$15cedff9916fdbee((IConstructor) $P0, (IConstructor) $P1); + if($result != null) return $result; + } + break; + case 885800512: + if($isSubtypeOf($P0Type, M_ParseTree.ADT_Symbol) && $isSubtypeOf($P1Type, M_ParseTree.ADT_Symbol)){ + $result = (IBool)M_Type.Type_subtype$44422dfea95218a8((IConstructor) $P0, (IConstructor) $P1); + if($result != null) return $result; + } + break; + } + if($isSubtypeOf($P0Type, M_ParseTree.ADT_Symbol) && $isSubtypeOf($P1Type, M_ParseTree.ADT_Symbol)){ + $result = (IBool)M_Type.Type_subtype$cfecefb3bc3fa773((IConstructor) $P0, (IConstructor) $P1); + if($result != null) return $result; + $result = (IBool)M_Type.Type_subtype$53c4de769757bddc((IConstructor) $P0, (IConstructor) $P1); + if($result != null) return $result; + $result = (IBool)M_Type.Type_subtype$2750c116f0b05084((IConstructor) $P0, (IConstructor) $P1); + if($result != null) return $result; + $result = (IBool)M_Type.Type_subtype$39fbab80e9db10e1((IConstructor) $P0, (IConstructor) $P1); + if($result != null) return $result; + $result = (IBool)M_Type.Type_subtype$3eada106dbc66d2d((IConstructor) $P0, (IConstructor) $P1); + if($result != null) return $result; + $result = (IBool)M_Type.Type_subtype$30215aaed6c33fd7((IConstructor) $P0, (IConstructor) $P1); + if($result != null) return $result; + $result = (IBool)M_Type.Type_subtype$1b2387a35f10c1e0((IConstructor) $P0, (IConstructor) $P1); + if($result != null) return $result; + $result = (IBool)M_Type.Type_subtype$80633493313ebd18((IConstructor) $P0, (IConstructor) $P1); + if($result != null) return $result; + $result = (IBool)M_Type.Type_subtype$3aa09e73e41fcf84((IConstructor) $P0, (IConstructor) $P1); + if($result != null) return $result; + } + if($isSubtypeOf($P0Type,$T2) && $isSubtypeOf($P1Type,$T2)){ + $result = (IBool)M_Type.Type_subtype$e6962df5576407da((IList) $P0, (IList) $P1); + if($result != null) return $result; + } + if($isSubtypeOf($P0Type,$T3) && $isSubtypeOf($P1Type,$T6)){ + $result = (IBool)M_Type.Type_subtype$7b9c005ac35dd586((IConstructor) $P0, (IConstructor) $P1); + if($result != null) return $result; + } + if($isSubtypeOf($P0Type, M_ParseTree.ADT_Symbol) && $isSubtypeOf($P1Type, M_ParseTree.ADT_Symbol)){ + $result = (IBool)M_Type.Type_subtype$06d2c71d010480ef((IConstructor) $P0, (IConstructor) $P1); + if($result != null) return $result; + } + if($isSubtypeOf($P0Type,$T2) && $isSubtypeOf($P1Type,$T2)){ + $result = (IBool)M_Type.Type_subtype$812a7f34ff841fdb((IList) $P0, (IList) $P1); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0, $P1)); + } + public IConstructor associativity(IValue $P0, IValue $P1, IValue $P2){ // Generated by Resolver + return (IConstructor) M_ParseTree.associativity($P0, $P1, $P2); + } + public IValue getOneFrom(IValue $P0){ // Generated by Resolver + return (IValue) M_List.getOneFrom($P0); + } + public IString unparse(IValue $P0){ // Generated by Resolver + return (IString) M_ParseTree.unparse($P0); + } + public IMap removeFromBag(IValue $P0, IValue $P1, IValue $P2){ // Generated by Resolver + return (IMap) M_List.removeFromBag($P0, $P1, $P2); + } + public IMap removeFromBag(IValue $P0, IValue $P1){ // Generated by Resolver + return (IMap) M_List.removeFromBag($P0, $P1); + } + public ITuple split(IValue $P0){ // Generated by Resolver + return (ITuple) M_List.split($P0); + } + public IList push(IValue $P0, IValue $P1){ // Generated by Resolver + return (IList) M_List.push($P0, $P1); + } + public IBool noneLabeled(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.noneLabeled($P0); + } + public ISet permutationsBag(IValue $P0){ // Generated by Resolver + return (ISet) M_List.permutationsBag($P0); + } + public IList mix(IValue $P0, IValue $P1){ // Generated by Resolver + return (IList) M_List.mix($P0, $P1); + } + public IInteger mainMessageHandler(IValue $P0, java.util.Map $kwpActuals){ // Generated by Resolver + return (IInteger) M_Message.mainMessageHandler($P0, $kwpActuals); + } + public IBool isFunctionType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isFunctionType($P0); + } + public IValue glb(IValue $P0, IValue $P1){ // Generated by Resolver + return (IValue) M_Type.glb($P0, $P1); + } + public ITree firstAmbiguity(IValue $P0, IValue $P1){ // Generated by Resolver + return (ITree) M_ParseTree.firstAmbiguity($P0, $P1); + } + public ISet toRel(IValue $P0){ // Generated by Resolver + return (ISet) M_List.toRel($P0); + } + public IValue sort(IValue $P0){ // Generated by Resolver + IValue $result = null; + Type $P0Type = $P0.getType(); + if($isSubtypeOf($P0Type,$T8)){ + $result = (IValue)M_List.List_sort$1fe4426c8c8039da((IList) $P0); + if($result != null) return $result; + } + if($isSubtypeOf($P0Type,$T9)){ + return $RVF.constructor(M_ParseTree.Symbol_sort_str, new IValue[]{(IString) $P0}); + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0)); + } + public IList sort(IValue $P0, IValue $P1){ // Generated by Resolver + return (IList) M_List.sort($P0, $P1); + } + public TypedFunctionInstance2 parser(IValue $P0, java.util.Map $kwpActuals){ // Generated by Resolver + return (TypedFunctionInstance2) M_ParseTree.parser($P0, $kwpActuals); + } + public IConstructor seq(IValue $P0){ // Generated by Resolver + IConstructor $result = null; + Type $P0Type = $P0.getType(); + if($isSubtypeOf($P0Type,$T2)){ + $result = (IConstructor)M_lang_rascal_grammar_definition_Symbols.lang_rascal_grammar_definition_Symbols_seq$5dde90ea795fac79((IList) $P0); + if($result != null) return $result; + } + if($isSubtypeOf($P0Type,$T2)){ + return $RVF.constructor(M_ParseTree.Symbol_seq_list_Symbol, new IValue[]{(IList) $P0}); + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0)); + } + public IList dup(IValue $P0){ // Generated by Resolver + return (IList) M_List.dup($P0); + } + public IBool isIntType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isIntType($P0); + } + public IBool isDateTimeType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isDateTimeType($P0); + } + public IString write(IValue $P0, java.util.Map $kwpActuals){ // Generated by Resolver + return (IString) M_Message.write($P0, $kwpActuals); + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/lang/rascal/grammar/definition/References.rsc|(349,256,<11,0>,<18,4>) + public IConstructor lang_rascal_grammar_definition_References_references$7b859d08c89dc9c3(IConstructor $aux_g_0){ + ValueRef g_0 = new ValueRef("g_0", $aux_g_0); + + + try { + IValue $visitResult = $TRAVERSE.traverse(DIRECTION.BottomUp, PROGRESS.Continuing, FIXEDPOINT.No, REBUILD.Yes, + new DescendantDescriptorAlwaysTrue($RVF.bool(false)), + g_0.getValue(), + (IVisitFunction) (IValue $VISIT0_subject, TraversalState $traversalState) -> { + VISIT0:switch(Fingerprint.getFingerprint($VISIT0_subject)){ + + case -1917586256: + if($isSubtypeOf($VISIT0_subject.getType(),M_ParseTree.ADT_Production)){ + if($has_type_and_arity($VISIT0_subject, M_ParseTree.Production_reference_Symbol_str, 2)){ + IValue $arg0_10 = (IValue)($aadt_subscript_int(((IConstructor)($VISIT0_subject)),0)); + if($isComparable($arg0_10.getType(), M_ParseTree.ADT_Symbol)){ + IConstructor s_1 = ((IConstructor)($arg0_10)); + IValue $arg1_9 = (IValue)($aadt_subscript_int(((IConstructor)($VISIT0_subject)),1)); + if($isComparable($arg1_9.getType(), $T9)){ + IString name_2 = ((IString)($arg1_9)); + /*muExists*/CASE_1917586256_0: + do { + final IConstructor $subject_val8 = ((IConstructor)(M_lang_rascal_grammar_definition_Symbols.striprec(((IConstructor)($arg0_10))))); + IConstructor ss_3 = ((IConstructor)($subject_val8)); + if((((IBool)($RVF.bool(((IMap)(((IMap)($aadt_get_field(g_0.getValue(), "rules"))))).containsKey(((IConstructor)ss_3)))))).getValue()){ + final IConstructor $subject_val1 = ((IConstructor)($amap_subscript(((IMap)(((IMap)($aadt_get_field(g_0.getValue(), "rules"))))),((IConstructor)ss_3)))); + CASE_1917586256_0_DESC514: + for(IValue $elem2 : new DescendantMatchIterator($subject_val1, + new DescendantDescriptorAlwaysTrue($RVF.bool(false)))){ + if($isComparable($elem2.getType(), M_ParseTree.ADT_Production)){ + if($isSubtypeOf($elem2.getType(),M_ParseTree.ADT_Production)){ + if($has_type_and_arity($elem2, M_ParseTree.Production_prod_Symbol_list_Symbol_set_Attr, 3)){ + IValue $arg0_5 = (IValue)($subscript_int(((IValue)($elem2)),0)); + if($isComparable($arg0_5.getType(), M_ParseTree.ADT_Symbol)){ + if($has_type_and_arity($arg0_5, M_Type.Symbol_label_str_Symbol, 2)){ + IValue $arg0_7 = (IValue)($aadt_subscript_int(((IConstructor)($arg0_5)),0)); + if($isComparable($arg0_7.getType(), $T9)){ + if(($arg1_9 != null)){ + if($arg1_9.match($arg0_7)){ + IValue $arg1_6 = (IValue)($aadt_subscript_int(((IConstructor)($arg0_5)),1)); + if($isComparable($arg1_6.getType(), M_ParseTree.ADT_Symbol)){ + IConstructor t_5 = ((IConstructor)($arg1_6)); + IValue $arg1_4 = (IValue)($subscript_int(((IValue)($elem2)),1)); + if($isComparable($arg1_4.getType(), $T4)){ + IValue $arg2_3 = (IValue)($subscript_int(((IValue)($elem2)),2)); + if($isComparable($arg2_3.getType(), $T4)){ + IConstructor p_4 = ((IConstructor)($elem2)); + if((((IBool)($equal(((IConstructor)ss_3), ((IConstructor)(M_lang_rascal_grammar_definition_Symbols.striprec(((IConstructor)($arg1_6))))))))).getValue()){ + IConstructor $replacement0 = (IConstructor)(p_4); + if($isSubtypeOf($replacement0.getType(),$VISIT0_subject.getType())){ + $traversalState.setMatchedAndChanged(true, true); + return $replacement0; + + } else { + break VISIT0;// switch + + } + } else { + continue CASE_1917586256_0_DESC514; + } + } else { + continue CASE_1917586256_0_DESC514; + } + } else { + continue CASE_1917586256_0_DESC514; + } + } else { + continue CASE_1917586256_0_DESC514; + } + } else { + continue CASE_1917586256_0_DESC514; + } + } else { + $arg1_9 = ((IValue)($arg0_7)); + IValue $arg1_6 = (IValue)($aadt_subscript_int(((IConstructor)($arg0_5)),1)); + if($isComparable($arg1_6.getType(), M_ParseTree.ADT_Symbol)){ + IConstructor t_5 = ((IConstructor)($arg1_6)); + IValue $arg1_4 = (IValue)($subscript_int(((IValue)($elem2)),1)); + if($isComparable($arg1_4.getType(), $T4)){ + IValue $arg2_3 = (IValue)($subscript_int(((IValue)($elem2)),2)); + if($isComparable($arg2_3.getType(), $T4)){ + IConstructor p_4 = ((IConstructor)($elem2)); + if((((IBool)($equal(((IConstructor)ss_3), ((IConstructor)(M_lang_rascal_grammar_definition_Symbols.striprec(((IConstructor)($arg1_6))))))))).getValue()){ + IConstructor $replacement0 = (IConstructor)(p_4); + if($isSubtypeOf($replacement0.getType(),$VISIT0_subject.getType())){ + $traversalState.setMatchedAndChanged(true, true); + return $replacement0; + + } else { + break VISIT0;// switch + + } + } else { + continue CASE_1917586256_0_DESC514; + } + } else { + continue CASE_1917586256_0_DESC514; + } + } else { + continue CASE_1917586256_0_DESC514; + } + } else { + continue CASE_1917586256_0_DESC514; + } + } + } else { + continue CASE_1917586256_0_DESC514; + } + } else { + continue CASE_1917586256_0_DESC514; + } + } else { + continue CASE_1917586256_0_DESC514; + } + } else { + continue CASE_1917586256_0_DESC514; + } + } else { + continue CASE_1917586256_0_DESC514; + } + } else { + continue CASE_1917586256_0_DESC514; + } + } + continue CASE_1917586256_0; + + } else { + continue CASE_1917586256_0; + } + } while(false); + + } + + } + + } + + } + + + + } + return $VISIT0_subject; + }); + return (IConstructor)$visitResult; + + } catch (ReturnFromTraversalException e) { + return (IConstructor) e.getValue(); + } + + } + + + public static void main(String[] args) { + throw new RuntimeException("No function `main` found in Rascal module `lang::rascal::grammar::definition::References`"); + } +} \ No newline at end of file diff --git a/src/rascal/lang/rascal/grammar/definition/$References.tpl b/src/rascal/lang/rascal/grammar/definition/$References.tpl new file mode 100644 index 00000000000..805aec166c8 Binary files /dev/null and b/src/rascal/lang/rascal/grammar/definition/$References.tpl differ diff --git a/src/rascal/lang/rascal/grammar/definition/$References_$I.java b/src/rascal/lang/rascal/grammar/definition/$References_$I.java new file mode 100644 index 00000000000..b2f16e85bb8 --- /dev/null +++ b/src/rascal/lang/rascal/grammar/definition/$References_$I.java @@ -0,0 +1,139 @@ +package rascal.lang.rascal.grammar.definition; +import io.usethesource.vallang.*; +import org.rascalmpl.runtime.function.*; + +@SuppressWarnings("unused") +public interface $References_$I { + IValue addLabels(IValue $0, IValue $1); + IValue addParamLabels(IValue $0, IValue $1); + IValue allLabeled(IValue $0); + IValue associativity(IValue $0, IValue $1, IValue $2); + IValue choice(IValue $0, IValue $1); + IValue comparable(IValue $0, IValue $1); + IValue compose(IValue $0, IValue $1); + IValue concat(IValue $0); + IValue delete(IValue $0, IValue $1); + IValue dependencies(IValue $0); + IValue distribution(IValue $0); + IValue drop(IValue $0, IValue $1); + IValue dup(IValue $0); + IValue elementAt(IValue $0, IValue $1); + IValue eq(IValue $0, IValue $1); + IValue equivalent(IValue $0, IValue $1); + IValue $extends(IValue $0); + IValue firstAmbiguity(IValue $0, IValue $1); + IValue firstAmbiguityFinder(IValue $0, java.util.Map $kwpActuals); + IValue firstAmbiguityFinders(IValue $0, java.util.Map $kwpActuals); + IValue getFirstFrom(IValue $0); + IValue getLabels(IValue $0); + IValue getOneFrom(IValue $0); + IValue getParamLabels(IValue $0); + IValue glb(IValue $0, IValue $1); + IValue grammar(IValue $0, IValue $1); + IValue grammar(IValue $0); + IValue head(IValue $0, IValue $1); + IValue head(IValue $0); + IValue headTail(IValue $0); + IValue implode(IValue $0, IValue $1); + IValue imports(IValue $0); + IValue index(IValue $0); + IValue indexOf(IValue $0, IValue $1); + IValue insertAt(IValue $0, IValue $1, IValue $2); + IValue intercalate(IValue $0, IValue $1); + IValue intersperse(IValue $0, IValue $1); + IValue isADTType(IValue $0); + IValue isAliasType(IValue $0); + IValue isBagType(IValue $0); + IValue isBoolType(IValue $0); + IValue isConstructorType(IValue $0); + IValue isDateTimeType(IValue $0); + IValue isEmpty(IValue $0); + IValue isFunctionType(IValue $0); + IValue isIntType(IValue $0); + IValue isListRelType(IValue $0); + IValue isListType(IValue $0); + IValue isLocType(IValue $0); + IValue isMapType(IValue $0); + IValue isNodeType(IValue $0); + IValue isNonTerminalType(IValue $0); + IValue isNumType(IValue $0); + IValue isRatType(IValue $0); + IValue isRealType(IValue $0); + IValue isReifiedType(IValue $0); + IValue isRelType(IValue $0); + IValue isSetType(IValue $0); + IValue isSorted(IValue $0, java.util.Map $kwpActuals); + IValue isStrType(IValue $0); + IValue isTupleType(IValue $0); + IValue isTypeVar(IValue $0); + IValue isValueType(IValue $0); + IValue isVoidType(IValue $0); + IValue itoString(IValue $0); + IValue keepParams(IValue $0, IValue $1); + IValue last(IValue $0); + IValue lastIndexOf(IValue $0, IValue $1); + IValue loadParser(IValue $0, IValue $1, java.util.Map $kwpActuals); + IValue loadParsers(IValue $0, java.util.Map $kwpActuals); + IValue lub(IValue $0, IValue $1); + IValue mainMessageHandler(IValue $0, java.util.Map $kwpActuals); + IValue make(IValue $0, IValue $1, IValue $2); + IValue make(IValue $0, IValue $1, IValue $2, IValue $3); + IValue mapper(IValue $0, IValue $1); + IValue max(IValue $0); + IValue merge(IValue $0, IValue $1); + IValue merge(IValue $0, IValue $1, IValue $2); + IValue min(IValue $0); + IValue mix(IValue $0, IValue $1); + IValue noneLabeled(IValue $0); + IValue parse(IValue $0, IValue $1, java.util.Map $kwpActuals); + IValue parse(IValue $0, IValue $1, IValue $2, java.util.Map $kwpActuals); + IValue parser(IValue $0, java.util.Map $kwpActuals); + IValue parsers(IValue $0, java.util.Map $kwpActuals); + IValue permutations(IValue $0); + IValue permutationsBag(IValue $0); + IValue pop(IValue $0); + IValue prefix(IValue $0); + IValue printSymbol(IValue $0, IValue $1); + IValue priority(IValue $0, IValue $1); + IValue push(IValue $0, IValue $1); + IValue reducer(IValue $0, IValue $1, IValue $2); + IValue references(IValue $0); + IValue remove(IValue $0, IValue $1); + IValue removeFromBag(IValue $0, IValue $1); + IValue removeFromBag(IValue $0, IValue $1, IValue $2); + IValue reverse(IValue $0); + IValue sameType(IValue $0, IValue $1); + IValue shuffle(IValue $0); + IValue shuffle(IValue $0, IValue $1); + IValue size(IValue $0); + IValue slice(IValue $0, IValue $1, IValue $2); + IValue sort(IValue $0, IValue $1); + IValue sort(IValue $0); + IValue split(IValue $0); + void storeParsers(IValue $0, IValue $1); + IValue stripLabels(IValue $0); + IValue subtype(IValue $0, IValue $1); + IValue sum(IValue $0); + IValue tail(IValue $0); + IValue tail(IValue $0, IValue $1); + IValue take(IValue $0, IValue $1); + IValue takeOneFrom(IValue $0); + IValue takeWhile(IValue $0, IValue $1); + IValue toMap(IValue $0); + IValue toMapUnique(IValue $0); + IValue toRel(IValue $0); + IValue toSet(IValue $0); + IValue toString(IValue $0); + IValue top(IValue $0); + IValue treeAt(IValue $0, IValue $1, IValue $2); + IValue typeCast(IValue $0, IValue $1); + IValue typeOf(IValue $0); + IValue unparse(IValue $0); + IValue unzip2(IValue $0); + IValue unzip3(IValue $0); + IValue upTill(IValue $0); + IValue var_func(IValue $0, IValue $1, IValue $2); + IValue write(IValue $0, java.util.Map $kwpActuals); + IValue zip2(IValue $0, IValue $1); + IValue zip3(IValue $0, IValue $1, IValue $2); +} \ No newline at end of file diff --git a/src/rascal/lang/rascal/grammar/definition/$Regular.constants b/src/rascal/lang/rascal/grammar/definition/$Regular.constants new file mode 100644 index 00000000000..c4eeeb7f400 Binary files /dev/null and b/src/rascal/lang/rascal/grammar/definition/$Regular.constants differ diff --git a/src/rascal/lang/rascal/grammar/definition/$Regular.java b/src/rascal/lang/rascal/grammar/definition/$Regular.java new file mode 100644 index 00000000000..67a88211f8b --- /dev/null +++ b/src/rascal/lang/rascal/grammar/definition/$Regular.java @@ -0,0 +1,1611 @@ +package rascal.lang.rascal.grammar.definition; +import java.io.PrintWriter; +import java.io.StringWriter; +import java.io.InputStreamReader; +import java.io.PrintWriter; +import java.util.*; +import java.util.regex.Matcher; +import io.usethesource.vallang.*; +import io.usethesource.vallang.type.*; +import org.rascalmpl.runtime.*; +import org.rascalmpl.runtime.RascalExecutionContext; +import org.rascalmpl.runtime.function.*; +import org.rascalmpl.runtime.traverse.*; +import org.rascalmpl.runtime.utils.*; +import org.rascalmpl.exceptions.RuntimeExceptionFactory; +import org.rascalmpl.exceptions.Throw; +import org.rascalmpl.runtime.RascalExecutionContext; +import org.rascalmpl.interpreter.control_exceptions.Filtered; +import org.rascalmpl.types.NonTerminalType; +import org.rascalmpl.types.RascalTypeFactory; +import org.rascalmpl.util.ExpiringFunctionResultCache; +import org.rascalmpl.values.RascalValueFactory; +import org.rascalmpl.values.ValueFactoryFactory; +import org.rascalmpl.values.parsetrees.ITree; +import org.rascalmpl.values.parsetrees.TreeAdapter; + + + +@SuppressWarnings({"unused","unchecked","deprecation"}) +public class $Regular + extends + org.rascalmpl.runtime.$RascalModule + implements + rascal.lang.rascal.grammar.definition.$Regular_$I { + + private final $Regular_$I $me; + private final IList $constants; + + + public final rascal.lang.rascal.grammar.definition.$Modules M_lang_rascal_grammar_definition_Modules; + public final rascal.$ParseTree M_ParseTree; + public final rascal.lang.rascal.grammar.definition.$Productions M_lang_rascal_grammar_definition_Productions; + public final rascal.$Type M_Type; + public final rascal.$List M_List; + public final rascal.$Grammar M_Grammar; + public final rascal.$Message M_Message; + + + + public final io.usethesource.vallang.type.Type $T1; /*avalue()*/ + public final io.usethesource.vallang.type.Type $T5; /*aparameter("A",avalue(),closed=true)*/ + public final io.usethesource.vallang.type.Type $T2; /*aparameter("A",avalue(),closed=false)*/ + public final io.usethesource.vallang.type.Type ADT_Tree; /*aadt("Tree",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type $T3; /*aparameter("T",aadt("Tree",[],dataSyntax()),closed=true)*/ + public final io.usethesource.vallang.type.Type ADT_KeywordArguments_1; /*aadt("KeywordArguments",[aparameter("T",aadt("Tree",[],dataSyntax()),closed=true)],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_KeywordArguments_1; /*aadt("KeywordArguments",[aparameter("T",aadt("Tree",[],dataSyntax()),closed=true)],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Visibility; /*aadt("Visibility",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Visibility; /*aadt("Visibility",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Replacement; /*aadt("Replacement",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Replacement; /*aadt("Replacement",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_ProtocolChars; /*aadt("ProtocolChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_ProtocolChars; /*aadt("ProtocolChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_LocalVariableDeclaration; /*aadt("LocalVariableDeclaration",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_LocalVariableDeclaration; /*aadt("LocalVariableDeclaration",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_BooleanLiteral; /*aadt("BooleanLiteral",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_BooleanLiteral; /*aadt("BooleanLiteral",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Expression; /*aadt("Expression",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Expression; /*aadt("Expression",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Mapping_Expression; /*aadt("Mapping",[aadt("Expression",[],contextFreeSyntax())],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Mapping_Expression; /*aadt("Mapping",[aadt("Expression",[],contextFreeSyntax())],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Strategy; /*aadt("Strategy",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Strategy; /*aadt("Strategy",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Attr; /*aadt("Attr",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_LocationChangeType; /*aadt("LocationChangeType",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_LAYOUT; /*aadt("LAYOUT",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_LAYOUT; /*aadt("LAYOUT",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_TagString; /*aadt("TagString",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_TagString; /*aadt("TagString",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_IOCapability; /*aadt("IOCapability",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Name; /*aadt("Name",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Name; /*aadt("Name",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_FunctionType; /*aadt("FunctionType",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_FunctionType; /*aadt("FunctionType",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_MidStringChars; /*aadt("MidStringChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_MidStringChars; /*aadt("MidStringChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_PostProtocolChars; /*aadt("PostProtocolChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_PostProtocolChars; /*aadt("PostProtocolChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Range; /*aadt("Range",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Range; /*aadt("Range",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Concrete; /*aadt("Concrete",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Concrete; /*aadt("Concrete",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Output; /*aadt("Output",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Output; /*aadt("Output",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_SyntaxDefinition; /*aadt("SyntaxDefinition",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_SyntaxDefinition; /*aadt("SyntaxDefinition",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_DatePart; /*aadt("DatePart",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_DatePart; /*aadt("DatePart",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Item; /*aadt("Item",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_RationalLiteral; /*aadt("RationalLiteral",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_RationalLiteral; /*aadt("RationalLiteral",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_LocationChangeEvent; /*aadt("LocationChangeEvent",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_RegExpModifier; /*aadt("RegExpModifier",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_RegExpModifier; /*aadt("RegExpModifier",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Prod; /*aadt("Prod",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Prod; /*aadt("Prod",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_ModuleParameters; /*aadt("ModuleParameters",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_ModuleParameters; /*aadt("ModuleParameters",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type $T4; /*aparameter("T",aadt("Tree",[],dataSyntax()),closed=false)*/ + public final io.usethesource.vallang.type.Type ADT_RegExpLiteral; /*aadt("RegExpLiteral",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_RegExpLiteral; /*aadt("RegExpLiteral",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Mapping_1; /*aadt("Mapping",[aparameter("T",aadt("Tree",[],dataSyntax()),closed=true)],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Mapping_1; /*aadt("Mapping",[aparameter("T",aadt("Tree",[],dataSyntax()),closed=true)],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_TimePartNoTZ; /*aadt("TimePartNoTZ",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_TimePartNoTZ; /*aadt("TimePartNoTZ",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Pattern; /*aadt("Pattern",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Pattern; /*aadt("Pattern",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Case; /*aadt("Case",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Case; /*aadt("Case",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_ImportedModule; /*aadt("ImportedModule",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_ImportedModule; /*aadt("ImportedModule",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Declarator; /*aadt("Declarator",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Declarator; /*aadt("Declarator",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_GrammarModule; /*aadt("GrammarModule",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_IntegerLiteral; /*aadt("IntegerLiteral",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_IntegerLiteral; /*aadt("IntegerLiteral",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_KeywordArguments_Expression; /*aadt("KeywordArguments",[aadt("Expression",[],contextFreeSyntax())],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_KeywordArguments_Expression; /*aadt("KeywordArguments",[aadt("Expression",[],contextFreeSyntax())],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Target; /*aadt("Target",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Target; /*aadt("Target",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Mapping_Pattern; /*aadt("Mapping",[aadt("Pattern",[],contextFreeSyntax())],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Mapping_Pattern; /*aadt("Mapping",[aadt("Pattern",[],contextFreeSyntax())],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Renaming; /*aadt("Renaming",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Renaming; /*aadt("Renaming",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_KeywordFormals; /*aadt("KeywordFormals",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_KeywordFormals; /*aadt("KeywordFormals",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Maybe_1; /*aadt("Maybe",[aparameter("A",avalue(),closed=true)],dataSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Catch; /*aadt("Catch",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Catch; /*aadt("Catch",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Production; /*aadt("Production",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_OptionalExpression; /*aadt("OptionalExpression",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_OptionalExpression; /*aadt("OptionalExpression",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Renamings; /*aadt("Renamings",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Renamings; /*aadt("Renamings",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_DataTarget; /*aadt("DataTarget",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_DataTarget; /*aadt("DataTarget",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_GrammarDefinition; /*aadt("GrammarDefinition",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Field; /*aadt("Field",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Field; /*aadt("Field",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_FunctionBody; /*aadt("FunctionBody",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_FunctionBody; /*aadt("FunctionBody",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_LocationLiteral; /*aadt("LocationLiteral",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_LocationLiteral; /*aadt("LocationLiteral",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Tag; /*aadt("Tag",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Tag; /*aadt("Tag",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Type; /*aadt("Type",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Type; /*aadt("Type",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_HexIntegerLiteral; /*aadt("HexIntegerLiteral",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_HexIntegerLiteral; /*aadt("HexIntegerLiteral",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_PostStringChars; /*aadt("PostStringChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_PostStringChars; /*aadt("PostStringChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_TimeZonePart; /*aadt("TimeZonePart",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_TimeZonePart; /*aadt("TimeZonePart",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Declaration; /*aadt("Declaration",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Declaration; /*aadt("Declaration",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_ShellCommand; /*aadt("ShellCommand",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_ShellCommand; /*aadt("ShellCommand",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Symbol; /*aadt("Symbol",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_PreStringChars; /*aadt("PreStringChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_PreStringChars; /*aadt("PreStringChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Nonterminal; /*aadt("Nonterminal",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Nonterminal; /*aadt("Nonterminal",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_StringLiteral; /*aadt("StringLiteral",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_StringLiteral; /*aadt("StringLiteral",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_KeywordArguments_Pattern; /*aadt("KeywordArguments",[aadt("Pattern",[],contextFreeSyntax())],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_KeywordArguments_Pattern; /*aadt("KeywordArguments",[aadt("Pattern",[],contextFreeSyntax())],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_NonterminalLabel; /*aadt("NonterminalLabel",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_NonterminalLabel; /*aadt("NonterminalLabel",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Variable; /*aadt("Variable",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Variable; /*aadt("Variable",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_TypeArg; /*aadt("TypeArg",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_TypeArg; /*aadt("TypeArg",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_RegExp; /*aadt("RegExp",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_RegExp; /*aadt("RegExp",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Bound; /*aadt("Bound",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Bound; /*aadt("Bound",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_PathPart; /*aadt("PathPart",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_PathPart; /*aadt("PathPart",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Class; /*aadt("Class",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Class; /*aadt("Class",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_KeywordArgument_1; /*aadt("KeywordArgument",[aparameter("T",aadt("Tree",[],dataSyntax()),closed=true)],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_KeywordArgument_1; /*aadt("KeywordArgument",[aparameter("T",aadt("Tree",[],dataSyntax()),closed=true)],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Associativity; /*aadt("Associativity",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Signature; /*aadt("Signature",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Signature; /*aadt("Signature",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_ModuleActuals; /*aadt("ModuleActuals",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_ModuleActuals; /*aadt("ModuleActuals",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Tags; /*aadt("Tags",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Tags; /*aadt("Tags",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_URLChars; /*aadt("URLChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_URLChars; /*aadt("URLChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Condition; /*aadt("Condition",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Maybe_Symbol; /*aadt("Maybe",[aadt("Symbol",[],dataSyntax())],dataSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Maybe_Associativity; /*aadt("Maybe",[aadt("Associativity",[],dataSyntax(),alabel="a")],dataSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_CaseInsensitiveStringConstant; /*aadt("CaseInsensitiveStringConstant",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_CaseInsensitiveStringConstant; /*aadt("CaseInsensitiveStringConstant",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Body; /*aadt("Body",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Body; /*aadt("Body",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_PrePathChars; /*aadt("PrePathChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_PrePathChars; /*aadt("PrePathChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Start; /*aadt("Start",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Start; /*aadt("Start",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_DateAndTime; /*aadt("DateAndTime",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_DateAndTime; /*aadt("DateAndTime",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_RealLiteral; /*aadt("RealLiteral",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_RealLiteral; /*aadt("RealLiteral",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Backslash; /*aadt("Backslash",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Backslash; /*aadt("Backslash",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Char; /*aadt("Char",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Char; /*aadt("Char",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_StringTail; /*aadt("StringTail",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_StringTail; /*aadt("StringTail",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_LocationType; /*aadt("LocationType",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_JustDate; /*aadt("JustDate",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_JustDate; /*aadt("JustDate",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Header; /*aadt("Header",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Header; /*aadt("Header",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Exception; /*aadt("Exception",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Assignment; /*aadt("Assignment",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Assignment; /*aadt("Assignment",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_StringConstant; /*aadt("StringConstant",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_StringConstant; /*aadt("StringConstant",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_OptionalComma; /*aadt("OptionalComma",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_OptionalComma; /*aadt("OptionalComma",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_FunctionDeclaration; /*aadt("FunctionDeclaration",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_FunctionDeclaration; /*aadt("FunctionDeclaration",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_TypeVar; /*aadt("TypeVar",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_TypeVar; /*aadt("TypeVar",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type $T0; /*aset(aadt("Production",[],dataSyntax()))*/ + public final io.usethesource.vallang.type.Type $T7; /*aset(aadt("Symbol",[],dataSyntax()))*/ + public final io.usethesource.vallang.type.Type ADT_CharRange; /*aadt("CharRange",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Grammar; /*aadt("Grammar",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_UserType; /*aadt("UserType",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_UserType; /*aadt("UserType",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Import; /*aadt("Import",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Import; /*aadt("Import",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Variant; /*aadt("Variant",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Variant; /*aadt("Variant",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_DataTypeSelector; /*aadt("DataTypeSelector",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_DataTypeSelector; /*aadt("DataTypeSelector",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_LAYOUTLIST; /*aadt("LAYOUTLIST",[],layoutSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_TreeSearchResult_1; /*aadt("TreeSearchResult",[aparameter("T",aadt("Tree",[],dataSyntax()),closed=true)],dataSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Message; /*aadt("Message",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_ConcreteHole; /*aadt("ConcreteHole",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_ConcreteHole; /*aadt("ConcreteHole",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_MidPathChars; /*aadt("MidPathChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_MidPathChars; /*aadt("MidPathChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type $T6; /*alist(aadt("Symbol",[],dataSyntax()))*/ + public final io.usethesource.vallang.type.Type ADT_Sym; /*aadt("Sym",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Sym; /*aadt("Sym",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_FunctionModifiers; /*aadt("FunctionModifiers",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_FunctionModifiers; /*aadt("FunctionModifiers",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Comprehension; /*aadt("Comprehension",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Comprehension; /*aadt("Comprehension",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Maybe_Attr; /*aadt("Maybe",[aadt("Attr",[],dataSyntax())],dataSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_QualifiedName; /*aadt("QualifiedName",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_QualifiedName; /*aadt("QualifiedName",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Formals; /*aadt("Formals",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Formals; /*aadt("Formals",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_StringMiddle; /*aadt("StringMiddle",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_StringMiddle; /*aadt("StringMiddle",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_NamedBackslash; /*aadt("NamedBackslash",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_NamedBackslash; /*aadt("NamedBackslash",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_RascalKeywords; /*aadt("RascalKeywords",[],keywordSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Parameters; /*aadt("Parameters",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Parameters; /*aadt("Parameters",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_MidProtocolChars; /*aadt("MidProtocolChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_MidProtocolChars; /*aadt("MidProtocolChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Command; /*aadt("Command",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Command; /*aadt("Command",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_StructuredType; /*aadt("StructuredType",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_StructuredType; /*aadt("StructuredType",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_OctalIntegerLiteral; /*aadt("OctalIntegerLiteral",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_OctalIntegerLiteral; /*aadt("OctalIntegerLiteral",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_ProtocolPart; /*aadt("ProtocolPart",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_ProtocolPart; /*aadt("ProtocolPart",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_StringTemplate; /*aadt("StringTemplate",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_StringTemplate; /*aadt("StringTemplate",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_DecimalIntegerLiteral; /*aadt("DecimalIntegerLiteral",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_DecimalIntegerLiteral; /*aadt("DecimalIntegerLiteral",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Assoc; /*aadt("Assoc",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Assoc; /*aadt("Assoc",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_DateTimeLiteral; /*aadt("DateTimeLiteral",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_DateTimeLiteral; /*aadt("DateTimeLiteral",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Label; /*aadt("Label",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Label; /*aadt("Label",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Kind; /*aadt("Kind",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Kind; /*aadt("Kind",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_PathTail; /*aadt("PathTail",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_PathTail; /*aadt("PathTail",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type Maybe_Symbol_just_Symbol; /*acons(aadt("Maybe",[aadt("Symbol",[],dataSyntax())],dataSyntax()),[aadt("Symbol",[],dataSyntax(),alabel="val")],[],alabel="just")*/ + public final io.usethesource.vallang.type.Type ADT_PreProtocolChars; /*aadt("PreProtocolChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_PreProtocolChars; /*aadt("PreProtocolChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_RuntimeException; /*aadt("RuntimeException",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_NamedRegExp; /*aadt("NamedRegExp",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_NamedRegExp; /*aadt("NamedRegExp",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_KeywordFormal; /*aadt("KeywordFormal",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_KeywordFormal; /*aadt("KeywordFormal",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_ConcretePart; /*aadt("ConcretePart",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_ConcretePart; /*aadt("ConcretePart",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Literal; /*aadt("Literal",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Literal; /*aadt("Literal",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Toplevel; /*aadt("Toplevel",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Toplevel; /*aadt("Toplevel",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_EvalCommand; /*aadt("EvalCommand",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_EvalCommand; /*aadt("EvalCommand",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_PathChars; /*aadt("PathChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_PathChars; /*aadt("PathChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Module; /*aadt("Module",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Module; /*aadt("Module",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_PatternWithAction; /*aadt("PatternWithAction",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_PatternWithAction; /*aadt("PatternWithAction",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_PostPathChars; /*aadt("PostPathChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_PostPathChars; /*aadt("PostPathChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Statement; /*aadt("Statement",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Statement; /*aadt("Statement",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_StringCharacter; /*aadt("StringCharacter",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_StringCharacter; /*aadt("StringCharacter",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_BasicType; /*aadt("BasicType",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_BasicType; /*aadt("BasicType",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_CommonKeywordParameters; /*aadt("CommonKeywordParameters",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_CommonKeywordParameters; /*aadt("CommonKeywordParameters",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_ProtocolTail; /*aadt("ProtocolTail",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_ProtocolTail; /*aadt("ProtocolTail",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Comment; /*aadt("Comment",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Comment; /*aadt("Comment",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Commands; /*aadt("Commands",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Commands; /*aadt("Commands",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_JustTime; /*aadt("JustTime",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_JustTime; /*aadt("JustTime",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_FunctionModifier; /*aadt("FunctionModifier",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_FunctionModifier; /*aadt("FunctionModifier",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_ProdModifier; /*aadt("ProdModifier",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_ProdModifier; /*aadt("ProdModifier",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Assignable; /*aadt("Assignable",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Assignable; /*aadt("Assignable",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_UnicodeEscape; /*aadt("UnicodeEscape",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_UnicodeEscape; /*aadt("UnicodeEscape",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Visit; /*aadt("Visit",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Visit; /*aadt("Visit",[],contextFreeSyntax())*/ + + public $Regular(RascalExecutionContext rex){ + this(rex, null); + } + + public $Regular(RascalExecutionContext rex, Object extended){ + super(rex); + this.$me = extended == null ? this : ($Regular_$I)extended; + ModuleStore mstore = rex.getModuleStore(); + mstore.put(rascal.lang.rascal.grammar.definition.$Regular.class, this); + + mstore.importModule(rascal.lang.rascal.grammar.definition.$Modules.class, rex, rascal.lang.rascal.grammar.definition.$Modules::new); + mstore.importModule(rascal.$ParseTree.class, rex, rascal.$ParseTree::new); + mstore.importModule(rascal.lang.rascal.grammar.definition.$Productions.class, rex, rascal.lang.rascal.grammar.definition.$Productions::new); + mstore.importModule(rascal.$Type.class, rex, rascal.$Type::new); + mstore.importModule(rascal.$List.class, rex, rascal.$List::new); + mstore.importModule(rascal.$Grammar.class, rex, rascal.$Grammar::new); + mstore.importModule(rascal.$Message.class, rex, rascal.$Message::new); + + M_lang_rascal_grammar_definition_Modules = mstore.getModule(rascal.lang.rascal.grammar.definition.$Modules.class); + M_ParseTree = mstore.getModule(rascal.$ParseTree.class); + M_lang_rascal_grammar_definition_Productions = mstore.getModule(rascal.lang.rascal.grammar.definition.$Productions.class); + M_Type = mstore.getModule(rascal.$Type.class); + M_List = mstore.getModule(rascal.$List.class); + M_Grammar = mstore.getModule(rascal.$Grammar.class); + M_Message = mstore.getModule(rascal.$Message.class); + + + + $TS.importStore(M_lang_rascal_grammar_definition_Modules.$TS); + $TS.importStore(M_ParseTree.$TS); + $TS.importStore(M_lang_rascal_grammar_definition_Productions.$TS); + $TS.importStore(M_Type.$TS); + $TS.importStore(M_List.$TS); + $TS.importStore(M_Grammar.$TS); + $TS.importStore(M_Message.$TS); + + $constants = readBinaryConstantsFile(this.getClass(), "rascal/lang/rascal/grammar/definition/$Regular.constants", 10, "44ef26f08b35fdcf5a798e71351f6212"); + ADT_Tree = $adt("Tree"); + NT_Visibility = $sort("Visibility"); + ADT_Visibility = $adt("Visibility"); + NT_Replacement = $sort("Replacement"); + ADT_Replacement = $adt("Replacement"); + NT_ProtocolChars = $lex("ProtocolChars"); + ADT_ProtocolChars = $adt("ProtocolChars"); + NT_LocalVariableDeclaration = $sort("LocalVariableDeclaration"); + ADT_LocalVariableDeclaration = $adt("LocalVariableDeclaration"); + NT_BooleanLiteral = $lex("BooleanLiteral"); + ADT_BooleanLiteral = $adt("BooleanLiteral"); + NT_Expression = $sort("Expression"); + ADT_Expression = $adt("Expression"); + NT_Strategy = $sort("Strategy"); + ADT_Strategy = $adt("Strategy"); + ADT_Attr = $adt("Attr"); + ADT_LocationChangeType = $adt("LocationChangeType"); + NT_LAYOUT = $lex("LAYOUT"); + ADT_LAYOUT = $adt("LAYOUT"); + NT_TagString = $lex("TagString"); + ADT_TagString = $adt("TagString"); + ADT_IOCapability = $adt("IOCapability"); + NT_Name = $lex("Name"); + ADT_Name = $adt("Name"); + NT_FunctionType = $sort("FunctionType"); + ADT_FunctionType = $adt("FunctionType"); + NT_MidStringChars = $lex("MidStringChars"); + ADT_MidStringChars = $adt("MidStringChars"); + NT_PostProtocolChars = $lex("PostProtocolChars"); + ADT_PostProtocolChars = $adt("PostProtocolChars"); + NT_Range = $sort("Range"); + ADT_Range = $adt("Range"); + NT_Concrete = $lex("Concrete"); + ADT_Concrete = $adt("Concrete"); + NT_Output = $lex("Output"); + ADT_Output = $adt("Output"); + NT_SyntaxDefinition = $sort("SyntaxDefinition"); + ADT_SyntaxDefinition = $adt("SyntaxDefinition"); + NT_DatePart = $lex("DatePart"); + ADT_DatePart = $adt("DatePart"); + ADT_Item = $adt("Item"); + NT_RationalLiteral = $lex("RationalLiteral"); + ADT_RationalLiteral = $adt("RationalLiteral"); + ADT_LocationChangeEvent = $adt("LocationChangeEvent"); + NT_RegExpModifier = $lex("RegExpModifier"); + ADT_RegExpModifier = $adt("RegExpModifier"); + NT_Prod = $sort("Prod"); + ADT_Prod = $adt("Prod"); + NT_ModuleParameters = $sort("ModuleParameters"); + ADT_ModuleParameters = $adt("ModuleParameters"); + NT_RegExpLiteral = $lex("RegExpLiteral"); + ADT_RegExpLiteral = $adt("RegExpLiteral"); + NT_TimePartNoTZ = $lex("TimePartNoTZ"); + ADT_TimePartNoTZ = $adt("TimePartNoTZ"); + NT_Pattern = $sort("Pattern"); + ADT_Pattern = $adt("Pattern"); + NT_Case = $sort("Case"); + ADT_Case = $adt("Case"); + NT_ImportedModule = $sort("ImportedModule"); + ADT_ImportedModule = $adt("ImportedModule"); + NT_Declarator = $sort("Declarator"); + ADT_Declarator = $adt("Declarator"); + ADT_GrammarModule = $adt("GrammarModule"); + NT_IntegerLiteral = $sort("IntegerLiteral"); + ADT_IntegerLiteral = $adt("IntegerLiteral"); + NT_Target = $sort("Target"); + ADT_Target = $adt("Target"); + NT_Renaming = $sort("Renaming"); + ADT_Renaming = $adt("Renaming"); + NT_KeywordFormals = $sort("KeywordFormals"); + ADT_KeywordFormals = $adt("KeywordFormals"); + NT_Catch = $sort("Catch"); + ADT_Catch = $adt("Catch"); + ADT_Production = $adt("Production"); + NT_OptionalExpression = $sort("OptionalExpression"); + ADT_OptionalExpression = $adt("OptionalExpression"); + NT_Renamings = $sort("Renamings"); + ADT_Renamings = $adt("Renamings"); + NT_DataTarget = $sort("DataTarget"); + ADT_DataTarget = $adt("DataTarget"); + ADT_GrammarDefinition = $adt("GrammarDefinition"); + NT_Field = $sort("Field"); + ADT_Field = $adt("Field"); + NT_FunctionBody = $sort("FunctionBody"); + ADT_FunctionBody = $adt("FunctionBody"); + NT_LocationLiteral = $sort("LocationLiteral"); + ADT_LocationLiteral = $adt("LocationLiteral"); + NT_Tag = $sort("Tag"); + ADT_Tag = $adt("Tag"); + NT_Type = $sort("Type"); + ADT_Type = $adt("Type"); + NT_HexIntegerLiteral = $lex("HexIntegerLiteral"); + ADT_HexIntegerLiteral = $adt("HexIntegerLiteral"); + NT_PostStringChars = $lex("PostStringChars"); + ADT_PostStringChars = $adt("PostStringChars"); + NT_TimeZonePart = $lex("TimeZonePart"); + ADT_TimeZonePart = $adt("TimeZonePart"); + NT_Declaration = $sort("Declaration"); + ADT_Declaration = $adt("Declaration"); + NT_ShellCommand = $sort("ShellCommand"); + ADT_ShellCommand = $adt("ShellCommand"); + ADT_Symbol = $adt("Symbol"); + NT_PreStringChars = $lex("PreStringChars"); + ADT_PreStringChars = $adt("PreStringChars"); + NT_Nonterminal = $lex("Nonterminal"); + ADT_Nonterminal = $adt("Nonterminal"); + NT_StringLiteral = $sort("StringLiteral"); + ADT_StringLiteral = $adt("StringLiteral"); + NT_NonterminalLabel = $lex("NonterminalLabel"); + ADT_NonterminalLabel = $adt("NonterminalLabel"); + NT_Variable = $sort("Variable"); + ADT_Variable = $adt("Variable"); + NT_TypeArg = $sort("TypeArg"); + ADT_TypeArg = $adt("TypeArg"); + NT_RegExp = $lex("RegExp"); + ADT_RegExp = $adt("RegExp"); + NT_Bound = $sort("Bound"); + ADT_Bound = $adt("Bound"); + NT_PathPart = $sort("PathPart"); + ADT_PathPart = $adt("PathPart"); + NT_Class = $sort("Class"); + ADT_Class = $adt("Class"); + ADT_Associativity = $adt("Associativity"); + NT_Signature = $sort("Signature"); + ADT_Signature = $adt("Signature"); + NT_ModuleActuals = $sort("ModuleActuals"); + ADT_ModuleActuals = $adt("ModuleActuals"); + NT_Tags = $sort("Tags"); + ADT_Tags = $adt("Tags"); + NT_URLChars = $lex("URLChars"); + ADT_URLChars = $adt("URLChars"); + ADT_Condition = $adt("Condition"); + NT_CaseInsensitiveStringConstant = $lex("CaseInsensitiveStringConstant"); + ADT_CaseInsensitiveStringConstant = $adt("CaseInsensitiveStringConstant"); + NT_Body = $sort("Body"); + ADT_Body = $adt("Body"); + NT_PrePathChars = $lex("PrePathChars"); + ADT_PrePathChars = $adt("PrePathChars"); + NT_Start = $sort("Start"); + ADT_Start = $adt("Start"); + NT_DateAndTime = $lex("DateAndTime"); + ADT_DateAndTime = $adt("DateAndTime"); + NT_RealLiteral = $lex("RealLiteral"); + ADT_RealLiteral = $adt("RealLiteral"); + NT_Backslash = $lex("Backslash"); + ADT_Backslash = $adt("Backslash"); + NT_Char = $lex("Char"); + ADT_Char = $adt("Char"); + NT_StringTail = $sort("StringTail"); + ADT_StringTail = $adt("StringTail"); + ADT_LocationType = $adt("LocationType"); + NT_JustDate = $lex("JustDate"); + ADT_JustDate = $adt("JustDate"); + NT_Header = $sort("Header"); + ADT_Header = $adt("Header"); + ADT_Exception = $adt("Exception"); + NT_Assignment = $sort("Assignment"); + ADT_Assignment = $adt("Assignment"); + NT_StringConstant = $lex("StringConstant"); + ADT_StringConstant = $adt("StringConstant"); + NT_OptionalComma = $lex("OptionalComma"); + ADT_OptionalComma = $adt("OptionalComma"); + NT_FunctionDeclaration = $sort("FunctionDeclaration"); + ADT_FunctionDeclaration = $adt("FunctionDeclaration"); + NT_TypeVar = $sort("TypeVar"); + ADT_TypeVar = $adt("TypeVar"); + ADT_CharRange = $adt("CharRange"); + ADT_Grammar = $adt("Grammar"); + NT_UserType = $sort("UserType"); + ADT_UserType = $adt("UserType"); + NT_Import = $sort("Import"); + ADT_Import = $adt("Import"); + NT_Variant = $sort("Variant"); + ADT_Variant = $adt("Variant"); + NT_DataTypeSelector = $sort("DataTypeSelector"); + ADT_DataTypeSelector = $adt("DataTypeSelector"); + ADT_LAYOUTLIST = $layouts("LAYOUTLIST"); + ADT_Message = $adt("Message"); + NT_ConcreteHole = $sort("ConcreteHole"); + ADT_ConcreteHole = $adt("ConcreteHole"); + NT_MidPathChars = $lex("MidPathChars"); + ADT_MidPathChars = $adt("MidPathChars"); + NT_Sym = $sort("Sym"); + ADT_Sym = $adt("Sym"); + NT_FunctionModifiers = $sort("FunctionModifiers"); + ADT_FunctionModifiers = $adt("FunctionModifiers"); + NT_Comprehension = $sort("Comprehension"); + ADT_Comprehension = $adt("Comprehension"); + NT_QualifiedName = $sort("QualifiedName"); + ADT_QualifiedName = $adt("QualifiedName"); + NT_Formals = $sort("Formals"); + ADT_Formals = $adt("Formals"); + NT_StringMiddle = $sort("StringMiddle"); + ADT_StringMiddle = $adt("StringMiddle"); + NT_NamedBackslash = $lex("NamedBackslash"); + ADT_NamedBackslash = $adt("NamedBackslash"); + ADT_RascalKeywords = $keywords("RascalKeywords"); + NT_Parameters = $sort("Parameters"); + ADT_Parameters = $adt("Parameters"); + NT_MidProtocolChars = $lex("MidProtocolChars"); + ADT_MidProtocolChars = $adt("MidProtocolChars"); + NT_Command = $sort("Command"); + ADT_Command = $adt("Command"); + NT_StructuredType = $sort("StructuredType"); + ADT_StructuredType = $adt("StructuredType"); + NT_OctalIntegerLiteral = $lex("OctalIntegerLiteral"); + ADT_OctalIntegerLiteral = $adt("OctalIntegerLiteral"); + NT_ProtocolPart = $sort("ProtocolPart"); + ADT_ProtocolPart = $adt("ProtocolPart"); + NT_StringTemplate = $sort("StringTemplate"); + ADT_StringTemplate = $adt("StringTemplate"); + NT_DecimalIntegerLiteral = $lex("DecimalIntegerLiteral"); + ADT_DecimalIntegerLiteral = $adt("DecimalIntegerLiteral"); + NT_Assoc = $sort("Assoc"); + ADT_Assoc = $adt("Assoc"); + NT_DateTimeLiteral = $sort("DateTimeLiteral"); + ADT_DateTimeLiteral = $adt("DateTimeLiteral"); + NT_Label = $sort("Label"); + ADT_Label = $adt("Label"); + NT_Kind = $sort("Kind"); + ADT_Kind = $adt("Kind"); + NT_PathTail = $sort("PathTail"); + ADT_PathTail = $adt("PathTail"); + NT_PreProtocolChars = $lex("PreProtocolChars"); + ADT_PreProtocolChars = $adt("PreProtocolChars"); + ADT_RuntimeException = $adt("RuntimeException"); + NT_NamedRegExp = $lex("NamedRegExp"); + ADT_NamedRegExp = $adt("NamedRegExp"); + NT_KeywordFormal = $sort("KeywordFormal"); + ADT_KeywordFormal = $adt("KeywordFormal"); + NT_ConcretePart = $lex("ConcretePart"); + ADT_ConcretePart = $adt("ConcretePart"); + NT_Literal = $sort("Literal"); + ADT_Literal = $adt("Literal"); + NT_Toplevel = $sort("Toplevel"); + ADT_Toplevel = $adt("Toplevel"); + NT_EvalCommand = $sort("EvalCommand"); + ADT_EvalCommand = $adt("EvalCommand"); + NT_PathChars = $lex("PathChars"); + ADT_PathChars = $adt("PathChars"); + NT_Module = $sort("Module"); + ADT_Module = $adt("Module"); + NT_PatternWithAction = $sort("PatternWithAction"); + ADT_PatternWithAction = $adt("PatternWithAction"); + NT_PostPathChars = $lex("PostPathChars"); + ADT_PostPathChars = $adt("PostPathChars"); + NT_Statement = $sort("Statement"); + ADT_Statement = $adt("Statement"); + NT_StringCharacter = $lex("StringCharacter"); + ADT_StringCharacter = $adt("StringCharacter"); + NT_BasicType = $sort("BasicType"); + ADT_BasicType = $adt("BasicType"); + NT_CommonKeywordParameters = $sort("CommonKeywordParameters"); + ADT_CommonKeywordParameters = $adt("CommonKeywordParameters"); + NT_ProtocolTail = $sort("ProtocolTail"); + ADT_ProtocolTail = $adt("ProtocolTail"); + NT_Comment = $lex("Comment"); + ADT_Comment = $adt("Comment"); + NT_Commands = $sort("Commands"); + ADT_Commands = $adt("Commands"); + NT_JustTime = $lex("JustTime"); + ADT_JustTime = $adt("JustTime"); + NT_FunctionModifier = $sort("FunctionModifier"); + ADT_FunctionModifier = $adt("FunctionModifier"); + NT_ProdModifier = $sort("ProdModifier"); + ADT_ProdModifier = $adt("ProdModifier"); + NT_Assignable = $sort("Assignable"); + ADT_Assignable = $adt("Assignable"); + NT_UnicodeEscape = $lex("UnicodeEscape"); + ADT_UnicodeEscape = $adt("UnicodeEscape"); + NT_Visit = $sort("Visit"); + ADT_Visit = $adt("Visit"); + $T1 = $TF.valueType(); + $T5 = $TF.parameterType("A", $T1); + $T2 = $TF.parameterType("A", $T1); + $T3 = $TF.parameterType("T", ADT_Tree); + NT_KeywordArguments_1 = $parameterizedSort("KeywordArguments", new Type[] { $T3 }, $RVF.list($RVF.constructor(RascalValueFactory.Symbol_Parameter, $RVF.string("T"), $RVF.constructor(RascalValueFactory.Symbol_Adt, $RVF.string("Tree"), $RVF.list())))); + NT_Mapping_Expression = $parameterizedSort("Mapping", new Type[] { ADT_Expression }, $RVF.list($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Expression")))); + $T4 = $TF.parameterType("T", ADT_Tree); + NT_Mapping_1 = $parameterizedSort("Mapping", new Type[] { $T3 }, $RVF.list($RVF.constructor(RascalValueFactory.Symbol_Parameter, $RVF.string("T"), $RVF.constructor(RascalValueFactory.Symbol_Adt, $RVF.string("Tree"), $RVF.list())))); + NT_KeywordArguments_Expression = $parameterizedSort("KeywordArguments", new Type[] { ADT_Expression }, $RVF.list($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Expression")))); + NT_Mapping_Pattern = $parameterizedSort("Mapping", new Type[] { ADT_Pattern }, $RVF.list($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Pattern")))); + ADT_Maybe_1 = $parameterizedAdt("Maybe", new Type[] { $T5 }); + NT_KeywordArguments_Pattern = $parameterizedSort("KeywordArguments", new Type[] { ADT_Pattern }, $RVF.list($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Pattern")))); + NT_KeywordArgument_1 = $parameterizedSort("KeywordArgument", new Type[] { $T3 }, $RVF.list($RVF.constructor(RascalValueFactory.Symbol_Parameter, $RVF.string("T"), $RVF.constructor(RascalValueFactory.Symbol_Adt, $RVF.string("Tree"), $RVF.list())))); + ADT_Maybe_Symbol = $parameterizedAdt("Maybe", new Type[] { ADT_Symbol }); + ADT_Maybe_Associativity = $parameterizedAdt("Maybe", new Type[] { ADT_Associativity }); + $T0 = $TF.setType(ADT_Production); + $T7 = $TF.setType(ADT_Symbol); + ADT_TreeSearchResult_1 = $parameterizedAdt("TreeSearchResult", new Type[] { $T3 }); + $T6 = $TF.listType(ADT_Symbol); + ADT_Maybe_Attr = $parameterizedAdt("Maybe", new Type[] { ADT_Attr }); + ADT_KeywordArguments_1 = $TF.abstractDataType($TS, "KeywordArguments", new Type[] { $T3 }); + ADT_Mapping_Expression = $TF.abstractDataType($TS, "Mapping", new Type[] { ADT_Expression }); + ADT_Mapping_1 = $TF.abstractDataType($TS, "Mapping", new Type[] { $T3 }); + ADT_KeywordArguments_Expression = $TF.abstractDataType($TS, "KeywordArguments", new Type[] { ADT_Expression }); + ADT_Mapping_Pattern = $TF.abstractDataType($TS, "Mapping", new Type[] { ADT_Pattern }); + ADT_KeywordArguments_Pattern = $TF.abstractDataType($TS, "KeywordArguments", new Type[] { ADT_Pattern }); + ADT_KeywordArgument_1 = $TF.abstractDataType($TS, "KeywordArgument", new Type[] { $T3 }); + Maybe_Symbol_just_Symbol = $TF.constructor($TS, ADT_Maybe_Symbol, "just", M_ParseTree.ADT_Symbol, "val"); + + + + } + public IBool isTypeVar(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isTypeVar($P0); + } + public IList addLabels(IValue $P0, IValue $P1){ // Generated by Resolver + return (IList) M_Type.addLabels($P0, $P1); + } + public IBool sameType(IValue $P0, IValue $P1){ // Generated by Resolver + return (IBool) M_ParseTree.sameType($P0, $P1); + } + public IValue head(IValue $P0){ // Generated by Resolver + return (IValue) M_List.head($P0); + } + public IBool isAliasType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isAliasType($P0); + } + public IBool isStrType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isStrType($P0); + } + public IConstructor choice(IValue $P0, IValue $P1){ // Generated by Resolver + return (IConstructor) M_Type.choice($P0, $P1); + } + public IBool isADTType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isADTType($P0); + } + public IBool isValueType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isValueType($P0); + } + public IBool isListType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isListType($P0); + } + public IBool isRealType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isRealType($P0); + } + public IConstructor priority(IValue $P0, IValue $P1){ // Generated by Resolver + return (IConstructor) M_ParseTree.priority($P0, $P1); + } + public ISet getRegular(IValue $P0){ // Generated by Resolver + ISet $result = null; + Type $P0Type = $P0.getType(); + if($isSubtypeOf($P0Type, M_ParseTree.ADT_Symbol)){ + $result = (ISet)lang_rascal_grammar_definition_Regular_getRegular$dc88b31b2388d039((IConstructor) $P0); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0)); + } + public IBool isNodeType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isNodeType($P0); + } + public IConstructor grammar(IValue $P0){ // Generated by Resolver + return (IConstructor) M_Grammar.grammar($P0); + } + public IConstructor grammar(IValue $P0, IValue $P1){ // Generated by Resolver + return (IConstructor) M_Grammar.grammar($P0, $P1); + } + public IBool isReifiedType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isReifiedType($P0); + } + public IBool isRelType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isRelType($P0); + } + public IBool isConstructorType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isConstructorType($P0); + } + public IBool isListRelType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isListRelType($P0); + } + public IList addParamLabels(IValue $P0, IValue $P1){ // Generated by Resolver + return (IList) M_Type.addParamLabels($P0, $P1); + } + public IBool isMapType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isMapType($P0); + } + public IBool isBoolType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isBoolType($P0); + } + public IList tail(IValue $P0){ // Generated by Resolver + return (IList) M_List.tail($P0); + } + public IBool isLocType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isLocType($P0); + } + public ITuple headTail(IValue $P0){ // Generated by Resolver + return (ITuple) M_List.headTail($P0); + } + public IConstructor treeAt(IValue $P0, IValue $P1, IValue $P2){ // Generated by Resolver + return (IConstructor) M_ParseTree.treeAt($P0, $P1, $P2); + } + public IBool isRegular(IValue $P0){ // Generated by Resolver + IBool $result = null; + Type $P0Type = $P0.getType(); + switch(Fingerprint.getFingerprint($P0)){ + + case -964239440: + if($isSubtypeOf($P0Type, M_ParseTree.ADT_Symbol)){ + $result = (IBool)lang_rascal_grammar_definition_Regular_isRegular$9bacb7fa82397bfb((IConstructor) $P0); + if($result != null) return $result; + } + break; + case 25942208: + if($isSubtypeOf($P0Type, M_ParseTree.ADT_Symbol)){ + $result = (IBool)lang_rascal_grammar_definition_Regular_isRegular$f947ba45ba6b0909((IConstructor) $P0); + if($result != null) return $result; + } + break; + case 882072: + if($isSubtypeOf($P0Type, M_ParseTree.ADT_Symbol)){ + $result = (IBool)lang_rascal_grammar_definition_Regular_isRegular$06a984188fd4b184((IConstructor) $P0); + if($result != null) return $result; + } + break; + case 910072: + if($isSubtypeOf($P0Type, M_ParseTree.ADT_Symbol)){ + $result = (IBool)lang_rascal_grammar_definition_Regular_isRegular$94ceadf38ea13420((IConstructor) $P0); + if($result != null) return $result; + } + break; + case 826203960: + if($isSubtypeOf($P0Type, M_ParseTree.ADT_Symbol)){ + $result = (IBool)lang_rascal_grammar_definition_Regular_isRegular$37e7401c498ee679((IConstructor) $P0); + if($result != null) return $result; + } + break; + case 773448: + if($isSubtypeOf($P0Type, M_ParseTree.ADT_Symbol)){ + $result = (IBool)lang_rascal_grammar_definition_Regular_isRegular$675b2191ad001c7a((IConstructor) $P0); + if($result != null) return $result; + } + break; + case 1652184736: + if($isSubtypeOf($P0Type, M_ParseTree.ADT_Symbol)){ + $result = (IBool)lang_rascal_grammar_definition_Regular_isRegular$d99711b91b43578c((IConstructor) $P0); + if($result != null) return $result; + } + break; + } + if($isSubtypeOf($P0Type, M_ParseTree.ADT_Symbol)){ + $result = (IBool)lang_rascal_grammar_definition_Regular_isRegular$2b09f4996753f97a((IConstructor) $P0); + if($result != null) return $result; + $result = (IBool)lang_rascal_grammar_definition_Regular_isRegular$f3d2c62796e85a2b((IConstructor) $P0); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0)); + } + public IBool isSetType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isSetType($P0); + } + public IBool isRatType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isRatType($P0); + } + public IBool isNumType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isNumType($P0); + } + public IValue makeRegularStubs(IValue $P0){ // Generated by Resolver + IValue $result = null; + Type $P0Type = $P0.getType(); + if($isSubtypeOf($P0Type,$T0)){ + $result = (IValue)lang_rascal_grammar_definition_Regular_makeRegularStubs$763ad0487a5ebc29((ISet) $P0); + if($result != null) return $result; + } + if($isSubtypeOf($P0Type, M_Grammar.ADT_Grammar)){ + $result = (IValue)lang_rascal_grammar_definition_Regular_makeRegularStubs$9fde2b9da42b71a3((IConstructor) $P0); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0)); + } + public IBool isTupleType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isTupleType($P0); + } + public IBool isBagType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isBagType($P0); + } + public IBool isVoidType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isVoidType($P0); + } + public IBool isNonTerminalType(IValue $P0){ // Generated by Resolver + return (IBool) M_ParseTree.isNonTerminalType($P0); + } + public IConstructor expandRegularSymbols(IValue $P0){ // Generated by Resolver + IConstructor $result = null; + Type $P0Type = $P0.getType(); + if($isSubtypeOf($P0Type, M_Grammar.ADT_Grammar)){ + $result = (IConstructor)lang_rascal_grammar_definition_Regular_expandRegularSymbols$ff83722a850ab62e((IConstructor) $P0); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0)); + } + public IValue lub(IValue $P0, IValue $P1){ // Generated by Resolver + return (IValue) M_Type.lub($P0, $P1); + } + public IBool subtype(IValue $P0, IValue $P1){ // Generated by Resolver + return (IBool) M_Type.subtype($P0, $P1); + } + public ISet expand(IValue $P0){ // Generated by Resolver + ISet $result = null; + Type $P0Type = $P0.getType(); + if($isSubtypeOf($P0Type, M_ParseTree.ADT_Symbol)){ + $result = (ISet)lang_rascal_grammar_definition_Regular_expand$b032fe4f7908b299((IConstructor) $P0); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0)); + } + public IConstructor associativity(IValue $P0, IValue $P1, IValue $P2){ // Generated by Resolver + IConstructor $result = null; + Type $P0Type = $P0.getType(); + Type $P1Type = $P1.getType(); + Type $P2Type = $P2.getType(); + if($isSubtypeOf($P0Type, M_ParseTree.ADT_Symbol) && $isSubtypeOf($P1Type, M_ParseTree.ADT_Associativity) && $isSubtypeOf($P2Type,$T0)){ + $result = (IConstructor)M_ParseTree.ParseTree_associativity$9299e943b00366a7((IConstructor) $P0, (IConstructor) $P1, (ISet) $P2); + if($result != null) return $result; + $result = (IConstructor)M_ParseTree.ParseTree_associativity$95843a2f3959b22f((IConstructor) $P0, (IConstructor) $P1, (ISet) $P2); + if($result != null) return $result; + $result = (IConstructor)M_ParseTree.ParseTree_associativity$05ee42b13b7e96fb((IConstructor) $P0, (IConstructor) $P1, (ISet) $P2); + if($result != null) return $result; + } + if($isSubtypeOf($P0Type, M_ParseTree.ADT_Symbol) && $isSubtypeOf($P1Type, ADT_Maybe_1) && $isSubtypeOf($P2Type, M_ParseTree.ADT_Production)){ + $result = (IConstructor)M_lang_rascal_grammar_definition_Productions.lang_rascal_grammar_definition_Productions_associativity$09cd814bba935894((IConstructor) $P0, (IConstructor) $P1, (IConstructor) $P2); + if($result != null) return $result; + } + if($isSubtypeOf($P0Type, M_ParseTree.ADT_Symbol) && $isSubtypeOf($P1Type, ADT_Maybe_Associativity) && $isSubtypeOf($P2Type, M_ParseTree.ADT_Production)){ + $result = (IConstructor)M_lang_rascal_grammar_definition_Productions.lang_rascal_grammar_definition_Productions_associativity$fe1234ba22a8be5e((IConstructor) $P0, (IConstructor) $P1, (IConstructor) $P2); + if($result != null) return $result; + } + if($isSubtypeOf($P0Type, M_ParseTree.ADT_Symbol) && $isSubtypeOf($P1Type, M_ParseTree.ADT_Associativity) && $isSubtypeOf($P2Type,$T0)){ + return $RVF.constructor(M_ParseTree.Production_associativity_Symbol_Associativity_set_Production, new IValue[]{(IConstructor) $P0, (IConstructor) $P1, (ISet) $P2}); + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0, $P1, $P2)); + } + public IBool isFunctionType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isFunctionType($P0); + } + public IValue glb(IValue $P0, IValue $P1){ // Generated by Resolver + return (IValue) M_Type.glb($P0, $P1); + } + public IBool isIntType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isIntType($P0); + } + public IBool isDateTimeType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isDateTimeType($P0); + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/lang/rascal/grammar/definition/Regular.rsc|(534,313,<16,0>,<27,1>) + public IConstructor lang_rascal_grammar_definition_Regular_expandRegularSymbols$ff83722a850ab62e(IConstructor G_0){ + + + /*muExists*/FOR0: + do { + FOR0_GEN590: + for(IValue $elem10_for : ((IMap)(((IMap)($aadt_get_field(((IConstructor)G_0), "rules")))))){ + IConstructor $elem10 = (IConstructor) $elem10_for; + if(true){ + IConstructor def_1 = ((IConstructor)($elem10)); + /*muExists*/IF1: + do { + final IConstructor $subject_val1 = ((IConstructor)($amap_subscript(((IMap)(((IMap)($aadt_get_field(((IConstructor)G_0), "rules"))))),((IConstructor)def_1)))); + if($has_type_and_arity($subject_val1, M_Type.Production_choice_Symbol_set_Production, 2)){ + IValue $arg0_9 = (IValue)($aadt_subscript_int(((IConstructor)($subject_val1)),0)); + if($isComparable($arg0_9.getType(), M_ParseTree.ADT_Symbol)){ + if((def_1 != null)){ + if(def_1.match($arg0_9)){ + IValue $arg1_2 = (IValue)($aadt_subscript_int(((IConstructor)($subject_val1)),1)); + if($isComparable($arg1_2.getType(), $T0)){ + ISet $subject3 = (ISet)($arg1_2); + IF1_CONS_choice_SET_CONS_regular$_DFLT_SET_ELM7: + for(IValue $elem6_for : ((ISet)($subject3))){ + IConstructor $elem6 = (IConstructor) $elem6_for; + if($has_type_and_arity($elem6, M_ParseTree.Production_regular_Symbol, 1)){ + IValue $arg0_8 = (IValue)($aadt_subscript_int(((IConstructor)($elem6)),0)); + if($isComparable($arg0_8.getType(), M_ParseTree.ADT_Symbol)){ + if(($arg0_9 != null)){ + if($arg0_9.match($arg0_8)){ + final ISet $subject5 = ((ISet)(((ISet)($subject3)).delete(((IConstructor)($elem6))))); + if(((ISet)($subject5)).size() == 0){ + IConstructor init_2 = ((IConstructor)(M_Type.choice(((IConstructor)($arg0_8)), ((ISet)$constants.get(0)/*{}*/)))); + /*muExists*/FOR2: + do { + FOR2_GEN729: + for(IValue $elem0_for : ((ISet)($me.expand(((IConstructor)($arg0_8)))))){ + IConstructor $elem0 = (IConstructor) $elem0_for; + IConstructor p_3 = null; + GuardedIValue guarded3 = $guarded_map_subscript(((IMap)(((IMap)($aadt_get_field(((IConstructor)G_0), "rules"))))),((IConstructor)(((IConstructor)($aadt_get_field(((IConstructor)($elem0)), "def")))))); + G_0 = ((IConstructor)(((IConstructor)($aadt_field_update("rules", $amap_update(((IConstructor)($aadt_get_field(((IConstructor)($elem0)), "def"))),M_Type.choice(((IConstructor)(((IConstructor)($aadt_get_field(((IConstructor)($elem0)), "def"))))), ((ISet)($RVF.set(((IConstructor)($elem0)), ($is_defined_value(guarded3) ? ((IConstructor)$get_defined_value(guarded3)) : init_2))))), ((IMap)(((IMap)($aadt_get_field(((IConstructor)G_0), "rules")))))), ((IConstructor)G_0)))))); + + } + continue FOR2; + + } while(false); + /* void: muCon([]) */continue IF1; + } else { + continue IF1_CONS_choice_SET_CONS_regular$_DFLT_SET_ELM7;/*redirected IF1_CONS_choice_SET_CONS_regular to IF1_CONS_choice_SET_CONS_regular$_DFLT_SET_ELM7; set pat3*/ + } + } else { + continue IF1_CONS_choice_SET_CONS_regular$_DFLT_SET_ELM7;/*default set elem*/ + } + } else { + $arg0_9 = ((IValue)($arg0_8)); + final ISet $subject5 = ((ISet)(((ISet)($subject3)).delete(((IConstructor)($elem6))))); + if(((ISet)($subject5)).size() == 0){ + IConstructor init_2 = ((IConstructor)(M_Type.choice(((IConstructor)($arg0_8)), ((ISet)$constants.get(0)/*{}*/)))); + /*muExists*/FOR2: + do { + FOR2_GEN729: + for(IValue $elem0_for : ((ISet)($me.expand(((IConstructor)($arg0_8)))))){ + IConstructor $elem0 = (IConstructor) $elem0_for; + IConstructor p_3 = null; + GuardedIValue guarded3 = $guarded_map_subscript(((IMap)(((IMap)($aadt_get_field(((IConstructor)G_0), "rules"))))),((IConstructor)(((IConstructor)($aadt_get_field(((IConstructor)($elem0)), "def")))))); + G_0 = ((IConstructor)(((IConstructor)($aadt_field_update("rules", $amap_update(((IConstructor)($aadt_get_field(((IConstructor)($elem0)), "def"))),M_Type.choice(((IConstructor)(((IConstructor)($aadt_get_field(((IConstructor)($elem0)), "def"))))), ((ISet)($RVF.set(((IConstructor)($elem0)), ($is_defined_value(guarded3) ? ((IConstructor)$get_defined_value(guarded3)) : init_2))))), ((IMap)(((IMap)($aadt_get_field(((IConstructor)G_0), "rules")))))), ((IConstructor)G_0)))))); + + } + continue FOR2; + + } while(false); + /* void: muCon([]) */continue IF1; + } else { + continue IF1_CONS_choice_SET_CONS_regular$_DFLT_SET_ELM7;/*redirected IF1_CONS_choice_SET_CONS_regular to IF1_CONS_choice_SET_CONS_regular$_DFLT_SET_ELM7; set pat3*/ + } + } + } else { + continue IF1_CONS_choice_SET_CONS_regular$_DFLT_SET_ELM7;/*default set elem*/ + } + } else { + continue IF1_CONS_choice_SET_CONS_regular$_DFLT_SET_ELM7;/*default set elem*/ + } + } + + + } + + } + + } else { + def_1 = ((IConstructor)($arg0_9)); + IValue $arg1_2 = (IValue)($aadt_subscript_int(((IConstructor)($subject_val1)),1)); + if($isComparable($arg1_2.getType(), $T0)){ + ISet $subject3 = (ISet)($arg1_2); + IF1_CONS_choice_SET_CONS_regular$_DFLT_SET_ELM7: + for(IValue $elem6_for : ((ISet)($subject3))){ + IConstructor $elem6 = (IConstructor) $elem6_for; + if($has_type_and_arity($elem6, M_ParseTree.Production_regular_Symbol, 1)){ + IValue $arg0_8 = (IValue)($aadt_subscript_int(((IConstructor)($elem6)),0)); + if($isComparable($arg0_8.getType(), M_ParseTree.ADT_Symbol)){ + if(($arg0_9 != null)){ + if($arg0_9.match($arg0_8)){ + final ISet $subject5 = ((ISet)(((ISet)($subject3)).delete(((IConstructor)($elem6))))); + if(((ISet)($subject5)).size() == 0){ + IConstructor init_2 = ((IConstructor)(M_Type.choice(((IConstructor)($arg0_8)), ((ISet)$constants.get(0)/*{}*/)))); + /*muExists*/FOR2: + do { + FOR2_GEN729: + for(IValue $elem0_for : ((ISet)($me.expand(((IConstructor)($arg0_8)))))){ + IConstructor $elem0 = (IConstructor) $elem0_for; + IConstructor p_3 = null; + GuardedIValue guarded3 = $guarded_map_subscript(((IMap)(((IMap)($aadt_get_field(((IConstructor)G_0), "rules"))))),((IConstructor)(((IConstructor)($aadt_get_field(((IConstructor)($elem0)), "def")))))); + G_0 = ((IConstructor)(((IConstructor)($aadt_field_update("rules", $amap_update(((IConstructor)($aadt_get_field(((IConstructor)($elem0)), "def"))),M_Type.choice(((IConstructor)(((IConstructor)($aadt_get_field(((IConstructor)($elem0)), "def"))))), ((ISet)($RVF.set(((IConstructor)($elem0)), ($is_defined_value(guarded3) ? ((IConstructor)$get_defined_value(guarded3)) : init_2))))), ((IMap)(((IMap)($aadt_get_field(((IConstructor)G_0), "rules")))))), ((IConstructor)G_0)))))); + + } + continue FOR2; + + } while(false); + /* void: muCon([]) */continue IF1; + } else { + continue IF1_CONS_choice_SET_CONS_regular$_DFLT_SET_ELM7;/*redirected IF1_CONS_choice_SET_CONS_regular to IF1_CONS_choice_SET_CONS_regular$_DFLT_SET_ELM7; set pat3*/ + } + } else { + continue IF1_CONS_choice_SET_CONS_regular$_DFLT_SET_ELM7;/*default set elem*/ + } + } else { + $arg0_9 = ((IValue)($arg0_8)); + final ISet $subject5 = ((ISet)(((ISet)($subject3)).delete(((IConstructor)($elem6))))); + if(((ISet)($subject5)).size() == 0){ + IConstructor init_2 = ((IConstructor)(M_Type.choice(((IConstructor)($arg0_8)), ((ISet)$constants.get(0)/*{}*/)))); + /*muExists*/FOR2: + do { + FOR2_GEN729: + for(IValue $elem0_for : ((ISet)($me.expand(((IConstructor)($arg0_8)))))){ + IConstructor $elem0 = (IConstructor) $elem0_for; + IConstructor p_3 = null; + GuardedIValue guarded3 = $guarded_map_subscript(((IMap)(((IMap)($aadt_get_field(((IConstructor)G_0), "rules"))))),((IConstructor)(((IConstructor)($aadt_get_field(((IConstructor)($elem0)), "def")))))); + G_0 = ((IConstructor)(((IConstructor)($aadt_field_update("rules", $amap_update(((IConstructor)($aadt_get_field(((IConstructor)($elem0)), "def"))),M_Type.choice(((IConstructor)(((IConstructor)($aadt_get_field(((IConstructor)($elem0)), "def"))))), ((ISet)($RVF.set(((IConstructor)($elem0)), ($is_defined_value(guarded3) ? ((IConstructor)$get_defined_value(guarded3)) : init_2))))), ((IMap)(((IMap)($aadt_get_field(((IConstructor)G_0), "rules")))))), ((IConstructor)G_0)))))); + + } + continue FOR2; + + } while(false); + /* void: muCon([]) */continue IF1; + } else { + continue IF1_CONS_choice_SET_CONS_regular$_DFLT_SET_ELM7;/*redirected IF1_CONS_choice_SET_CONS_regular to IF1_CONS_choice_SET_CONS_regular$_DFLT_SET_ELM7; set pat3*/ + } + } + } else { + continue IF1_CONS_choice_SET_CONS_regular$_DFLT_SET_ELM7;/*default set elem*/ + } + } else { + continue IF1_CONS_choice_SET_CONS_regular$_DFLT_SET_ELM7;/*default set elem*/ + } + } + + + } + + } + } + + } + + } while(false); + + } else { + continue FOR0_GEN590; + } + } + continue FOR0; + + } while(false); + /* void: muCon([]) */return ((IConstructor)G_0); + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/lang/rascal/grammar/definition/Regular.rsc|(849,1046,<29,0>,<51,1>) + public ISet lang_rascal_grammar_definition_Regular_expand$b032fe4f7908b299(IConstructor s_0){ + + + final IConstructor $switchVal11 = ((IConstructor)s_0); + boolean noCaseMatched_$switchVal11 = true; + SWITCH4: switch(Fingerprint.getFingerprint($switchVal11)){ + + case -964239440: + if(noCaseMatched_$switchVal11){ + noCaseMatched_$switchVal11 = false; + if($isSubtypeOf($switchVal11.getType(),M_ParseTree.ADT_Symbol)){ + /*muExists*/CASE_964239440_4: + do { + if($has_type_and_arity($switchVal11, M_ParseTree.Symbol_iter_star_seps_Symbol_list_Symbol, 2)){ + IValue $arg0_19 = (IValue)($aadt_subscript_int(((IConstructor)($switchVal11)),0)); + if($isComparable($arg0_19.getType(), M_ParseTree.ADT_Symbol)){ + IConstructor t_6 = ((IConstructor)($arg0_19)); + IValue $arg1_18 = (IValue)($aadt_subscript_int(((IConstructor)($switchVal11)),1)); + if($isComparable($arg1_18.getType(), $T6)){ + IList seps_7 = ((IList)($arg1_18)); + return ((ISet)($aset_add_aset(((ISet)($RVF.set(((IConstructor)(M_Type.choice(((IConstructor)s_0), ((ISet)($RVF.set(((IConstructor)($RVF.constructor(M_ParseTree.Production_prod_Symbol_list_Symbol_set_Attr, new IValue[]{((IConstructor)($RVF.constructor(M_Type.Symbol_label_str_Symbol, new IValue[]{((IString)$constants.get(1)/*"empty"*/), ((IConstructor)s_0)}))), ((IList)$constants.get(2)/*[]*/), ((ISet)$constants.get(0)/*{}*/)}))), $RVF.constructor(M_ParseTree.Production_prod_Symbol_list_Symbol_set_Attr, new IValue[]{((IConstructor)($RVF.constructor(M_Type.Symbol_label_str_Symbol, new IValue[]{((IString)$constants.get(3)/*"nonEmpty"*/), ((IConstructor)s_0)}))), ((IList)($RVF.list(((IConstructor)($RVF.constructor(M_ParseTree.Symbol_iter_seps_Symbol_list_Symbol, new IValue[]{((IConstructor)($arg0_19)), ((IList)($arg1_18))})))))), ((ISet)$constants.get(0)/*{}*/)})))))))))),((ISet)($me.expand(((IConstructor)($RVF.constructor(M_ParseTree.Symbol_iter_seps_Symbol_list_Symbol, new IValue[]{((IConstructor)($arg0_19)), ((IList)($arg1_18))}))))))))); + + } + + } + + } + + } while(false); + + } + + } + + + case 25942208: + if(noCaseMatched_$switchVal11){ + noCaseMatched_$switchVal11 = false; + if($isSubtypeOf($switchVal11.getType(),M_ParseTree.ADT_Symbol)){ + /*muExists*/CASE_25942208_1: + do { + if($has_type_and_arity($switchVal11, M_ParseTree.Symbol_iter_Symbol, 1)){ + IValue $arg0_13 = (IValue)($aadt_subscript_int(((IConstructor)($switchVal11)),0)); + if($isComparable($arg0_13.getType(), M_ParseTree.ADT_Symbol)){ + IConstructor t_2 = null; + return ((ISet)($RVF.set(((IConstructor)(M_Type.choice(((IConstructor)s_0), ((ISet)($RVF.set(((IConstructor)($RVF.constructor(M_ParseTree.Production_prod_Symbol_list_Symbol_set_Attr, new IValue[]{((IConstructor)($RVF.constructor(M_Type.Symbol_label_str_Symbol, new IValue[]{((IString)$constants.get(4)/*"single"*/), ((IConstructor)s_0)}))), ((IList)($RVF.list(((IConstructor)($arg0_13))))), ((ISet)$constants.get(0)/*{}*/)}))), $RVF.constructor(M_ParseTree.Production_prod_Symbol_list_Symbol_set_Attr, new IValue[]{((IConstructor)($RVF.constructor(M_Type.Symbol_label_str_Symbol, new IValue[]{((IString)$constants.get(5)/*"multiple"*/), ((IConstructor)s_0)}))), ((IList)($RVF.list(((IConstructor)($arg0_13)), s_0))), ((ISet)$constants.get(0)/*{}*/)})))))))))); + + } + + } + + } while(false); + + } + + } + + + case 882072: + if(noCaseMatched_$switchVal11){ + noCaseMatched_$switchVal11 = false; + if($isSubtypeOf($switchVal11.getType(),M_ParseTree.ADT_Symbol)){ + /*muExists*/CASE_882072_0: + do { + if($has_type_and_arity($switchVal11, M_ParseTree.Symbol_opt_Symbol, 1)){ + IValue $arg0_12 = (IValue)($aadt_subscript_int(((IConstructor)($switchVal11)),0)); + if($isComparable($arg0_12.getType(), M_ParseTree.ADT_Symbol)){ + IConstructor t_1 = null; + return ((ISet)($RVF.set(((IConstructor)(M_Type.choice(((IConstructor)s_0), ((ISet)($RVF.set(((IConstructor)($RVF.constructor(M_ParseTree.Production_prod_Symbol_list_Symbol_set_Attr, new IValue[]{((IConstructor)($RVF.constructor(M_Type.Symbol_label_str_Symbol, new IValue[]{((IString)$constants.get(6)/*"absent"*/), ((IConstructor)s_0)}))), ((IList)$constants.get(2)/*[]*/), ((ISet)$constants.get(0)/*{}*/)}))), $RVF.constructor(M_ParseTree.Production_prod_Symbol_list_Symbol_set_Attr, new IValue[]{((IConstructor)($RVF.constructor(M_Type.Symbol_label_str_Symbol, new IValue[]{((IString)$constants.get(7)/*"present"*/), ((IConstructor)s_0)}))), ((IList)($RVF.list(((IConstructor)($arg0_12))))), ((ISet)$constants.get(0)/*{}*/)})))))))))); + + } + + } + + } while(false); + + } + + } + + + case 910072: + if(noCaseMatched_$switchVal11){ + noCaseMatched_$switchVal11 = false; + if($isSubtypeOf($switchVal11.getType(),M_ParseTree.ADT_Symbol)){ + /*muExists*/CASE_910072_6: + do { + if($has_type_and_arity($switchVal11, M_ParseTree.Symbol_seq_list_Symbol, 1)){ + IValue $arg0_24 = (IValue)($aadt_subscript_int(((IConstructor)($switchVal11)),0)); + if($isComparable($arg0_24.getType(), $T6)){ + IList elems_10 = null; + return ((ISet)($RVF.set(((IConstructor)($RVF.constructor(M_ParseTree.Production_prod_Symbol_list_Symbol_set_Attr, new IValue[]{((IConstructor)s_0), ((IList)($arg0_24)), ((ISet)$constants.get(0)/*{}*/)})))))); + + } + + } + + } while(false); + + } + + } + + + case 826203960: + if(noCaseMatched_$switchVal11){ + noCaseMatched_$switchVal11 = false; + if($isSubtypeOf($switchVal11.getType(),M_ParseTree.ADT_Symbol)){ + /*muExists*/CASE_826203960_2: + do { + if($has_type_and_arity($switchVal11, M_ParseTree.Symbol_iter_star_Symbol, 1)){ + IValue $arg0_14 = (IValue)($aadt_subscript_int(((IConstructor)($switchVal11)),0)); + if($isComparable($arg0_14.getType(), M_ParseTree.ADT_Symbol)){ + IConstructor t_3 = ((IConstructor)($arg0_14)); + return ((ISet)($aset_add_aset(((ISet)($RVF.set(((IConstructor)(M_Type.choice(((IConstructor)s_0), ((ISet)($RVF.set(((IConstructor)($RVF.constructor(M_ParseTree.Production_prod_Symbol_list_Symbol_set_Attr, new IValue[]{((IConstructor)($RVF.constructor(M_Type.Symbol_label_str_Symbol, new IValue[]{((IString)$constants.get(1)/*"empty"*/), ((IConstructor)s_0)}))), ((IList)$constants.get(2)/*[]*/), ((ISet)$constants.get(0)/*{}*/)}))), $RVF.constructor(M_ParseTree.Production_prod_Symbol_list_Symbol_set_Attr, new IValue[]{((IConstructor)($RVF.constructor(M_Type.Symbol_label_str_Symbol, new IValue[]{((IString)$constants.get(3)/*"nonEmpty"*/), ((IConstructor)s_0)}))), ((IList)($RVF.list(((IConstructor)($RVF.constructor(M_ParseTree.Symbol_iter_Symbol, new IValue[]{((IConstructor)($arg0_14))})))))), ((ISet)$constants.get(0)/*{}*/)})))))))))),((ISet)($me.expand(((IConstructor)($RVF.constructor(M_ParseTree.Symbol_iter_Symbol, new IValue[]{((IConstructor)($arg0_14))}))))))))); + + } + + } + + } while(false); + + } + + } + + + case 773448: + if(noCaseMatched_$switchVal11){ + noCaseMatched_$switchVal11 = false; + if($isSubtypeOf($switchVal11.getType(),M_ParseTree.ADT_Symbol)){ + /*muExists*/CASE_773448_5: + do { + if($has_type_and_arity($switchVal11, M_ParseTree.Symbol_alt_set_Symbol, 1)){ + IValue $arg0_23 = (IValue)($aadt_subscript_int(((IConstructor)($switchVal11)),0)); + if($isComparable($arg0_23.getType(), $T7)){ + ISet alts_8 = null; + final ISetWriter $setwriter20 = (ISetWriter)$RVF.setWriter(); + ; + $SCOMP21_GEN1694: + for(IValue $elem22_for : ((ISet)($arg0_23))){ + IConstructor $elem22 = (IConstructor) $elem22_for; + IConstructor a_9 = null; + $setwriter20.insert($RVF.constructor(M_ParseTree.Production_prod_Symbol_list_Symbol_set_Attr, new IValue[]{((IConstructor)s_0), ((IList)($RVF.list(((IConstructor)($elem22))))), ((ISet)$constants.get(0)/*{}*/)})); + + } + + return ((ISet)($RVF.set(((IConstructor)(M_Type.choice(((IConstructor)s_0), ((ISet)($setwriter20.done())))))))); + + } + + } + + } while(false); + + } + + } + + + case 1652184736: + if(noCaseMatched_$switchVal11){ + noCaseMatched_$switchVal11 = false; + if($isSubtypeOf($switchVal11.getType(),M_ParseTree.ADT_Symbol)){ + /*muExists*/CASE_1652184736_3: + do { + if($has_type_and_arity($switchVal11, M_ParseTree.Symbol_iter_seps_Symbol_list_Symbol, 2)){ + IValue $arg0_17 = (IValue)($aadt_subscript_int(((IConstructor)($switchVal11)),0)); + if($isComparable($arg0_17.getType(), M_ParseTree.ADT_Symbol)){ + IConstructor t_4 = null; + IValue $arg1_16 = (IValue)($aadt_subscript_int(((IConstructor)($switchVal11)),1)); + if($isComparable($arg1_16.getType(), $T6)){ + IList seps_5 = null; + final IListWriter $writer15 = (IListWriter)$RVF.listWriter(); + $writer15.append($arg0_17); + $listwriter_splice($writer15,$arg1_16); + $writer15.append(s_0); + return ((ISet)($RVF.set(((IConstructor)(M_Type.choice(((IConstructor)s_0), ((ISet)($RVF.set(((IConstructor)($RVF.constructor(M_ParseTree.Production_prod_Symbol_list_Symbol_set_Attr, new IValue[]{((IConstructor)($RVF.constructor(M_Type.Symbol_label_str_Symbol, new IValue[]{((IString)$constants.get(4)/*"single"*/), ((IConstructor)s_0)}))), ((IList)($RVF.list(((IConstructor)($arg0_17))))), ((ISet)$constants.get(0)/*{}*/)}))), $RVF.constructor(M_ParseTree.Production_prod_Symbol_list_Symbol_set_Attr, new IValue[]{((IConstructor)($RVF.constructor(M_Type.Symbol_label_str_Symbol, new IValue[]{((IString)$constants.get(5)/*"multiple"*/), ((IConstructor)s_0)}))), ((IList)($writer15.done())), ((ISet)$constants.get(0)/*{}*/)})))))))))); + + } + + } + + } + + } while(false); + + } + + } + + + case 0: + if(noCaseMatched_$switchVal11){ + noCaseMatched_$switchVal11 = false; + + } + + + default: if($isSubtypeOf($switchVal11.getType(),M_ParseTree.ADT_Symbol)){ + /*muExists*/CASE_0_7: + do { + if($has_type_and_arity($switchVal11, M_ParseTree.Symbol_empty_, 0)){ + return ((ISet)($RVF.set(((IConstructor)($RVF.constructor(M_ParseTree.Production_prod_Symbol_list_Symbol_set_Attr, new IValue[]{((IConstructor)s_0), ((IList)$constants.get(2)/*[]*/), ((ISet)$constants.get(0)/*{}*/)})))))); + + } + + } while(false); + + } + + } + + final Template $template25 = (Template)new Template($RVF, "expand, missed a case "); + $template25.beginIndent(" "); + $template25.addVal(s_0); + $template25.endIndent(" "); + throw new Throw($template25.close()); + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/lang/rascal/grammar/definition/Regular.rsc|(1897,173,<53,0>,<57,1>) + public IConstructor lang_rascal_grammar_definition_Regular_makeRegularStubs$9fde2b9da42b71a3(IConstructor g_0){ + + + final ISetWriter $setwriter26 = (ISetWriter)$RVF.setWriter(); + ; + $SCOMP27_GEN1969: + for(IValue $elem28_for : ((IMap)(((IMap)($aadt_get_field(((IConstructor)g_0), "rules")))))){ + IConstructor $elem28 = (IConstructor) $elem28_for; + IConstructor nont_2 = null; + $setwriter26.insert($amap_subscript(((IMap)(((IMap)($aadt_get_field(((IConstructor)g_0), "rules"))))),((IConstructor)($elem28)))); + + } + + ISet prods_1 = ((ISet)($setwriter26.done())); + ISet stubs_3 = ((ISet)($me.makeRegularStubs(((ISet)prods_1)))); + return ((IConstructor)(M_Grammar.compose(((IConstructor)g_0), ((IConstructor)(M_Grammar.grammar(((ISet)$constants.get(0)/*{}*/), ((ISet)stubs_3))))))); + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/lang/rascal/grammar/definition/Regular.rsc|(2072,171,<59,0>,<61,1>) + public ISet lang_rascal_grammar_definition_Regular_makeRegularStubs$763ad0487a5ebc29(ISet prods_0){ + + + final ISetWriter $setwriter29 = (ISetWriter)$RVF.setWriter(); + ; + $SCOMP30_GEN2162: + for(IValue $elem33_for : ((ISet)prods_0)){ + IConstructor $elem33 = (IConstructor) $elem33_for; + $SCOMP30_GEN2162_DESC2162: + for(IValue $elem34 : new DescendantMatchIterator($elem33, + new DescendantDescriptorAlwaysTrue($RVF.bool(false)))){ + if($isComparable($elem34.getType(), M_ParseTree.ADT_Production)){ + if($isSubtypeOf($elem34.getType(),M_ParseTree.ADT_Production)){ + if($has_type_and_arity($elem34, M_ParseTree.Production_prod_Symbol_list_Symbol_set_Attr, 3)){ + IValue $arg0_37 = (IValue)($subscript_int(((IValue)($elem34)),0)); + if($isComparable($arg0_37.getType(), $T1)){ + IValue $arg1_36 = (IValue)($subscript_int(((IValue)($elem34)),1)); + if($isComparable($arg1_36.getType(), $T1)){ + IValue $arg2_35 = (IValue)($subscript_int(((IValue)($elem34)),2)); + if($isComparable($arg2_35.getType(), $T1)){ + IConstructor p_1 = ((IConstructor)($elem34)); + $SCOMP30_GEN2162_DESC2162_GEN2198: + for(IValue $elem32_for : ((IList)(((IList)($aadt_get_field(((IConstructor)p_1), "symbols")))))){ + IConstructor $elem32 = (IConstructor) $elem32_for; + IConstructor sym_2 = ((IConstructor)($elem32)); + $SCOMP30_GEN2162_DESC2162_GEN2198_GEN2216: + for(IValue $elem31_for : ((ISet)($me.getRegular(((IConstructor)sym_2))))){ + IConstructor $elem31 = (IConstructor) $elem31_for; + IConstructor reg_3 = null; + $setwriter29.insert($RVF.constructor(M_ParseTree.Production_regular_Symbol, new IValue[]{((IConstructor)($elem31))})); + + } + continue $SCOMP30_GEN2162_DESC2162_GEN2198; + + } + continue $SCOMP30_GEN2162_DESC2162; + + } else { + continue $SCOMP30_GEN2162_DESC2162; + } + } else { + continue $SCOMP30_GEN2162_DESC2162; + } + } else { + continue $SCOMP30_GEN2162_DESC2162; + } + } else { + continue $SCOMP30_GEN2162_DESC2162; + } + } else { + continue $SCOMP30_GEN2162_DESC2162; + } + } else { + continue $SCOMP30_GEN2162_DESC2162; + } + } + continue $SCOMP30_GEN2162; + + } + + return ((ISet)($setwriter29.done())); + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/lang/rascal/grammar/definition/Regular.rsc|(2245,80,<63,0>,<63,80>) + public ISet lang_rascal_grammar_definition_Regular_getRegular$dc88b31b2388d039(IConstructor s_0){ + + + final ISetWriter $setwriter38 = (ISetWriter)$RVF.setWriter(); + ; + /*muExists*/$SCOMP39: + do { + $SCOMP39_DESC2294: + for(IValue $elem40 : new DescendantMatchIterator(s_0, + new DescendantDescriptor(new io.usethesource.vallang.type.Type[]{$TF.listType(ADT_Symbol), M_Type.ADT_Exception, $TF.setType(ADT_Symbol), $TF.setType(ADT_Condition), ADT_KeywordArguments_1, M_ParseTree.ADT_Tree, M_ParseTree.ADT_TreeSearchResult_1, M_ParseTree.ADT_Condition, M_ParseTree.ADT_Production, M_ParseTree.ADT_Symbol, M_Grammar.ADT_Grammar, M_ParseTree.ADT_CharRange, M_Grammar.ADT_Item, M_Grammar.ADT_GrammarModule, $TF.listType(ADT_CharRange), M_Grammar.ADT_GrammarDefinition}, + new io.usethesource.vallang.IConstructor[]{}, + $RVF.bool(false)))){ + if($isComparable($elem40.getType(), M_ParseTree.ADT_Symbol)){ + if($isSubtypeOf($elem40.getType(),M_ParseTree.ADT_Symbol)){ + IConstructor t_1 = null; + if((((IBool)($me.isRegular(((IConstructor)($elem40)))))).getValue()){ + $setwriter38.insert($elem40); + + } else { + continue $SCOMP39_DESC2294; + } + + } else { + continue $SCOMP39_DESC2294; + } + } else { + continue $SCOMP39_DESC2294; + } + } + + + } while(false); + return ((ISet)($setwriter38.done())); + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/lang/rascal/grammar/definition/Regular.rsc|(2328,48,<65,0>,<65,48>) + public IBool lang_rascal_grammar_definition_Regular_isRegular$f3d2c62796e85a2b(IConstructor s_0){ + + + return ((IBool)$constants.get(8)/*false*/); + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/lang/rascal/grammar/definition/Regular.rsc|(2377,44,<66,0>,<66,44>) + public IBool lang_rascal_grammar_definition_Regular_isRegular$06a984188fd4b184(IConstructor $0){ + + + if($has_type_and_arity($0, M_ParseTree.Symbol_opt_Symbol, 1)){ + IValue $arg0_41 = (IValue)($aadt_subscript_int(((IConstructor)$0),0)); + if($isComparable($arg0_41.getType(), M_ParseTree.ADT_Symbol)){ + return ((IBool)$constants.get(9)/*true*/); + + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/lang/rascal/grammar/definition/Regular.rsc|(2422,45,<67,0>,<67,45>) + public IBool lang_rascal_grammar_definition_Regular_isRegular$f947ba45ba6b0909(IConstructor $0){ + + + if($has_type_and_arity($0, M_ParseTree.Symbol_iter_Symbol, 1)){ + IValue $arg0_42 = (IValue)($aadt_subscript_int(((IConstructor)$0),0)); + if($isComparable($arg0_42.getType(), M_ParseTree.ADT_Symbol)){ + return ((IBool)$constants.get(9)/*true*/); + + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/lang/rascal/grammar/definition/Regular.rsc|(2468,51,<68,0>,<68,51>) + public IBool lang_rascal_grammar_definition_Regular_isRegular$37e7401c498ee679(IConstructor $0){ + + + if($has_type_and_arity($0, M_ParseTree.Symbol_iter_star_Symbol, 1)){ + IValue $arg0_43 = (IValue)($aadt_subscript_int(((IConstructor)$0),0)); + if($isComparable($arg0_43.getType(), M_ParseTree.ADT_Symbol)){ + return ((IBool)$constants.get(9)/*true*/); + + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/lang/rascal/grammar/definition/Regular.rsc|(2520,67,<69,0>,<69,67>) + public IBool lang_rascal_grammar_definition_Regular_isRegular$d99711b91b43578c(IConstructor $0){ + + + if($has_type_and_arity($0, M_ParseTree.Symbol_iter_seps_Symbol_list_Symbol, 2)){ + IValue $arg0_45 = (IValue)($aadt_subscript_int(((IConstructor)$0),0)); + if($isComparable($arg0_45.getType(), M_ParseTree.ADT_Symbol)){ + IValue $arg1_44 = (IValue)($aadt_subscript_int(((IConstructor)$0),1)); + if($isComparable($arg1_44.getType(), $T6)){ + return ((IBool)$constants.get(9)/*true*/); + + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/lang/rascal/grammar/definition/Regular.rsc|(2588,72,<70,0>,<70,72>) + public IBool lang_rascal_grammar_definition_Regular_isRegular$9bacb7fa82397bfb(IConstructor $0){ + + + if($has_type_and_arity($0, M_ParseTree.Symbol_iter_star_seps_Symbol_list_Symbol, 2)){ + IValue $arg0_47 = (IValue)($aadt_subscript_int(((IConstructor)$0),0)); + if($isComparable($arg0_47.getType(), M_ParseTree.ADT_Symbol)){ + IValue $arg1_46 = (IValue)($aadt_subscript_int(((IConstructor)$0),1)); + if($isComparable($arg1_46.getType(), $T6)){ + return ((IBool)$constants.get(9)/*true*/); + + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/lang/rascal/grammar/definition/Regular.rsc|(2661,49,<71,0>,<71,49>) + public IBool lang_rascal_grammar_definition_Regular_isRegular$675b2191ad001c7a(IConstructor $0){ + + + if($has_type_and_arity($0, M_ParseTree.Symbol_alt_set_Symbol, 1)){ + IValue $arg0_48 = (IValue)($aadt_subscript_int(((IConstructor)$0),0)); + if($isComparable($arg0_48.getType(), $T7)){ + return ((IBool)$constants.get(9)/*true*/); + + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/lang/rascal/grammar/definition/Regular.rsc|(2711,50,<72,0>,<72,50>) + public IBool lang_rascal_grammar_definition_Regular_isRegular$94ceadf38ea13420(IConstructor $0){ + + + if($has_type_and_arity($0, M_ParseTree.Symbol_seq_list_Symbol, 1)){ + IValue $arg0_49 = (IValue)($aadt_subscript_int(((IConstructor)$0),0)); + if($isComparable($arg0_49.getType(), $T6)){ + return ((IBool)$constants.get(9)/*true*/); + + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/lang/rascal/grammar/definition/Regular.rsc|(2762,38,<73,0>,<73,38>) + public IBool lang_rascal_grammar_definition_Regular_isRegular$2b09f4996753f97a(IConstructor $0){ + + + if($has_type_and_arity($0, M_ParseTree.Symbol_empty_, 0)){ + return ((IBool)$constants.get(9)/*true*/); + + } else { + return null; + } + } + + + public static void main(String[] args) { + throw new RuntimeException("No function `main` found in Rascal module `lang::rascal::grammar::definition::Regular`"); + } +} \ No newline at end of file diff --git a/src/rascal/lang/rascal/grammar/definition/$Regular.tpl b/src/rascal/lang/rascal/grammar/definition/$Regular.tpl new file mode 100644 index 00000000000..e01bebc53f8 Binary files /dev/null and b/src/rascal/lang/rascal/grammar/definition/$Regular.tpl differ diff --git a/src/rascal/lang/rascal/grammar/definition/$Regular_$I.java b/src/rascal/lang/rascal/grammar/definition/$Regular_$I.java new file mode 100644 index 00000000000..329f10b98f2 --- /dev/null +++ b/src/rascal/lang/rascal/grammar/definition/$Regular_$I.java @@ -0,0 +1,12 @@ +package rascal.lang.rascal.grammar.definition; +import io.usethesource.vallang.*; +import org.rascalmpl.runtime.function.*; + +@SuppressWarnings("unused") +public interface $Regular_$I { + IValue expand(IValue $0); + IValue expandRegularSymbols(IValue $0); + IValue getRegular(IValue $0); + IValue isRegular(IValue $0); + IValue makeRegularStubs(IValue $0); +} \ No newline at end of file diff --git a/src/rascal/lang/rascal/grammar/definition/$Symbols.constants b/src/rascal/lang/rascal/grammar/definition/$Symbols.constants new file mode 100644 index 00000000000..67110c593ae Binary files /dev/null and b/src/rascal/lang/rascal/grammar/definition/$Symbols.constants differ diff --git a/src/rascal/lang/rascal/grammar/definition/$Symbols.java b/src/rascal/lang/rascal/grammar/definition/$Symbols.java new file mode 100644 index 00000000000..4933b60d248 --- /dev/null +++ b/src/rascal/lang/rascal/grammar/definition/$Symbols.java @@ -0,0 +1,1954 @@ +package rascal.lang.rascal.grammar.definition; +import java.io.PrintWriter; +import java.io.StringWriter; +import java.io.InputStreamReader; +import java.io.PrintWriter; +import java.util.*; +import java.util.regex.Matcher; +import io.usethesource.vallang.*; +import io.usethesource.vallang.type.*; +import org.rascalmpl.runtime.*; +import org.rascalmpl.runtime.RascalExecutionContext; +import org.rascalmpl.runtime.function.*; +import org.rascalmpl.runtime.traverse.*; +import org.rascalmpl.runtime.utils.*; +import org.rascalmpl.exceptions.RuntimeExceptionFactory; +import org.rascalmpl.exceptions.Throw; +import org.rascalmpl.runtime.RascalExecutionContext; +import org.rascalmpl.interpreter.control_exceptions.Filtered; +import org.rascalmpl.types.NonTerminalType; +import org.rascalmpl.types.RascalTypeFactory; +import org.rascalmpl.util.ExpiringFunctionResultCache; +import org.rascalmpl.values.RascalValueFactory; +import org.rascalmpl.values.ValueFactoryFactory; +import org.rascalmpl.values.parsetrees.ITree; +import org.rascalmpl.values.parsetrees.TreeAdapter; + + + +@SuppressWarnings({"unused","unchecked","deprecation"}) +public class $Symbols + extends + org.rascalmpl.runtime.$RascalModule + implements + rascal.lang.rascal.grammar.definition.$Symbols_$I { + + private final $Symbols_$I $me; + private final IList $constants; + + + public final rascal.lang.rascal.syntax.$Rascal M_lang_rascal_syntax_Rascal; + public final rascal.lang.rascal.grammar.definition.$Literals M_lang_rascal_grammar_definition_Literals; + public final rascal.$Message M_Message; + public final rascal.lang.rascal.grammar.definition.$Characters M_lang_rascal_grammar_definition_Characters; + public final rascal.$Exception M_Exception; + public final rascal.$Type M_Type; + public final rascal.$List M_List; + public final rascal.$String M_String; + public final rascal.$ParseTree M_ParseTree; + + + + public final io.usethesource.vallang.type.Type $T9; /*astr()*/ + public final io.usethesource.vallang.type.Type $T7; /*avalue()*/ + public final io.usethesource.vallang.type.Type $T8; /*aparameter("T",avalue(),closed=false)*/ + public final io.usethesource.vallang.type.Type ADT_Expression; /*aadt("Expression",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Expression; /*aadt("Expression",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Mapping_Expression; /*aadt("Mapping",[aadt("Expression",[],contextFreeSyntax())],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Mapping_Expression; /*aadt("Mapping",[aadt("Expression",[],contextFreeSyntax())],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Strategy; /*aadt("Strategy",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Strategy; /*aadt("Strategy",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Visibility; /*aadt("Visibility",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Visibility; /*aadt("Visibility",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_ProtocolChars; /*aadt("ProtocolChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_ProtocolChars; /*aadt("ProtocolChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_FunctionType; /*aadt("FunctionType",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_FunctionType; /*aadt("FunctionType",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Attr; /*aadt("Attr",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Tree; /*aadt("Tree",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type $T11; /*aparameter("T",aadt("Tree",[],dataSyntax()),closed=true)*/ + public final io.usethesource.vallang.type.Type ADT_KeywordArguments_1; /*aadt("KeywordArguments",[aparameter("T",aadt("Tree",[],dataSyntax()),closed=true)],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_KeywordArguments_1; /*aadt("KeywordArguments",[aparameter("T",aadt("Tree",[],dataSyntax()),closed=true)],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_MidStringChars; /*aadt("MidStringChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_MidStringChars; /*aadt("MidStringChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type $T1; /*alit(",")*/ + public final io.usethesource.vallang.type.Type ADT_Replacement; /*aadt("Replacement",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Replacement; /*aadt("Replacement",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_LocationChangeType; /*aadt("LocationChangeType",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Sym; /*aadt("Sym",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Sym; /*aadt("Sym",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_LAYOUTLIST; /*aadt("LAYOUTLIST",[],layoutSyntax())*/ + public final io.usethesource.vallang.type.Type $T15; /*\iter-seps(aadt("Sym",[],contextFreeSyntax()),[aadt("LAYOUTLIST",[],layoutSyntax())])*/ + public final io.usethesource.vallang.type.Type ADT_IOCapability; /*aadt("IOCapability",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type $T14; /*alit("|")*/ + public final io.usethesource.vallang.type.Type $T13; /*\iter-seps(aadt("Sym",[],contextFreeSyntax()),[aadt("LAYOUTLIST",[],layoutSyntax()),alit("|"),aadt("LAYOUTLIST",[],layoutSyntax())])*/ + public final io.usethesource.vallang.type.Type ADT_Concrete; /*aadt("Concrete",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Concrete; /*aadt("Concrete",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_PostProtocolChars; /*aadt("PostProtocolChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_PostProtocolChars; /*aadt("PostProtocolChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Range; /*aadt("Range",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Range; /*aadt("Range",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_LAYOUT; /*aadt("LAYOUT",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_LAYOUT; /*aadt("LAYOUT",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Pattern; /*aadt("Pattern",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Pattern; /*aadt("Pattern",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Mapping_Pattern; /*aadt("Mapping",[aadt("Pattern",[],contextFreeSyntax())],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Mapping_Pattern; /*aadt("Mapping",[aadt("Pattern",[],contextFreeSyntax())],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_RationalLiteral; /*aadt("RationalLiteral",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_RationalLiteral; /*aadt("RationalLiteral",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_DatePart; /*aadt("DatePart",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_DatePart; /*aadt("DatePart",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Item; /*aadt("Item",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_GrammarModule; /*aadt("GrammarModule",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_RegExpLiteral; /*aadt("RegExpLiteral",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_RegExpLiteral; /*aadt("RegExpLiteral",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type $T12; /*aparameter("T",aadt("Tree",[],dataSyntax()),closed=false)*/ + public final io.usethesource.vallang.type.Type ADT_Prod; /*aadt("Prod",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Prod; /*aadt("Prod",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_ModuleParameters; /*aadt("ModuleParameters",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_ModuleParameters; /*aadt("ModuleParameters",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Output; /*aadt("Output",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Output; /*aadt("Output",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_SyntaxDefinition; /*aadt("SyntaxDefinition",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_SyntaxDefinition; /*aadt("SyntaxDefinition",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Declarator; /*aadt("Declarator",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Declarator; /*aadt("Declarator",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_ImportedModule; /*aadt("ImportedModule",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_ImportedModule; /*aadt("ImportedModule",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Case; /*aadt("Case",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Case; /*aadt("Case",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_LocalVariableDeclaration; /*aadt("LocalVariableDeclaration",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_LocalVariableDeclaration; /*aadt("LocalVariableDeclaration",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_BooleanLiteral; /*aadt("BooleanLiteral",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_BooleanLiteral; /*aadt("BooleanLiteral",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Target; /*aadt("Target",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Target; /*aadt("Target",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_IntegerLiteral; /*aadt("IntegerLiteral",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_IntegerLiteral; /*aadt("IntegerLiteral",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_KeywordArguments_Expression; /*aadt("KeywordArguments",[aadt("Expression",[],contextFreeSyntax())],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_KeywordArguments_Expression; /*aadt("KeywordArguments",[aadt("Expression",[],contextFreeSyntax())],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Mapping_1; /*aadt("Mapping",[aparameter("T",aadt("Tree",[],dataSyntax()),closed=true)],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Mapping_1; /*aadt("Mapping",[aparameter("T",aadt("Tree",[],dataSyntax()),closed=true)],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_TimePartNoTZ; /*aadt("TimePartNoTZ",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_TimePartNoTZ; /*aadt("TimePartNoTZ",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_TagString; /*aadt("TagString",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_TagString; /*aadt("TagString",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_KeywordFormals; /*aadt("KeywordFormals",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_KeywordFormals; /*aadt("KeywordFormals",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_DataTarget; /*aadt("DataTarget",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_DataTarget; /*aadt("DataTarget",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Renaming; /*aadt("Renaming",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Renaming; /*aadt("Renaming",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Catch; /*aadt("Catch",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Catch; /*aadt("Catch",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Production; /*aadt("Production",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Renamings; /*aadt("Renamings",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Renamings; /*aadt("Renamings",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_KeywordFormal; /*aadt("KeywordFormal",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_KeywordFormal; /*aadt("KeywordFormal",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_OptionalExpression; /*aadt("OptionalExpression",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_OptionalExpression; /*aadt("OptionalExpression",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_GrammarDefinition; /*aadt("GrammarDefinition",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Field; /*aadt("Field",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Field; /*aadt("Field",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_FunctionBody; /*aadt("FunctionBody",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_FunctionBody; /*aadt("FunctionBody",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_LocationLiteral; /*aadt("LocationLiteral",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_LocationLiteral; /*aadt("LocationLiteral",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Tag; /*aadt("Tag",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Tag; /*aadt("Tag",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Type; /*aadt("Type",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Type; /*aadt("Type",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_HexIntegerLiteral; /*aadt("HexIntegerLiteral",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_HexIntegerLiteral; /*aadt("HexIntegerLiteral",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_PostStringChars; /*aadt("PostStringChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_PostStringChars; /*aadt("PostStringChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_TimeZonePart; /*aadt("TimeZonePart",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_TimeZonePart; /*aadt("TimeZonePart",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Declaration; /*aadt("Declaration",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Declaration; /*aadt("Declaration",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_ShellCommand; /*aadt("ShellCommand",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_ShellCommand; /*aadt("ShellCommand",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Symbol; /*aadt("Symbol",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Nonterminal; /*aadt("Nonterminal",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Nonterminal; /*aadt("Nonterminal",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_RegExp; /*aadt("RegExp",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_RegExp; /*aadt("RegExp",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_PreStringChars; /*aadt("PreStringChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_PreStringChars; /*aadt("PreStringChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type $T6; /*alist(aparameter("T",avalue(),closed=false))*/ + public final io.usethesource.vallang.type.Type ADT_StringLiteral; /*aadt("StringLiteral",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_StringLiteral; /*aadt("StringLiteral",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Variable; /*aadt("Variable",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Variable; /*aadt("Variable",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Name; /*aadt("Name",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Name; /*aadt("Name",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_NonterminalLabel; /*aadt("NonterminalLabel",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_NonterminalLabel; /*aadt("NonterminalLabel",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Bound; /*aadt("Bound",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Bound; /*aadt("Bound",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_TypeArg; /*aadt("TypeArg",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_TypeArg; /*aadt("TypeArg",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Class; /*aadt("Class",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Class; /*aadt("Class",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Condition; /*aadt("Condition",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_PathPart; /*aadt("PathPart",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_PathPart; /*aadt("PathPart",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Signature; /*aadt("Signature",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Signature; /*aadt("Signature",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_KeywordArgument_1; /*aadt("KeywordArgument",[aparameter("T",aadt("Tree",[],dataSyntax()),closed=true)],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_KeywordArgument_1; /*aadt("KeywordArgument",[aparameter("T",aadt("Tree",[],dataSyntax()),closed=true)],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type $T0; /*\iter-seps(aadt("Sym",[],contextFreeSyntax()),[aadt("LAYOUTLIST",[],layoutSyntax()),alit(","),aadt("LAYOUTLIST",[],layoutSyntax())])*/ + public final io.usethesource.vallang.type.Type ADT_KeywordArguments_Pattern; /*aadt("KeywordArguments",[aadt("Pattern",[],contextFreeSyntax())],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_KeywordArguments_Pattern; /*aadt("KeywordArguments",[aadt("Pattern",[],contextFreeSyntax())],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Tags; /*aadt("Tags",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Tags; /*aadt("Tags",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_URLChars; /*aadt("URLChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_URLChars; /*aadt("URLChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_ModuleActuals; /*aadt("ModuleActuals",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_ModuleActuals; /*aadt("ModuleActuals",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Associativity; /*aadt("Associativity",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_DataTypeSelector; /*aadt("DataTypeSelector",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_DataTypeSelector; /*aadt("DataTypeSelector",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Body; /*aadt("Body",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Body; /*aadt("Body",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_PrePathChars; /*aadt("PrePathChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_PrePathChars; /*aadt("PrePathChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Start; /*aadt("Start",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Start; /*aadt("Start",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Backslash; /*aadt("Backslash",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Backslash; /*aadt("Backslash",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_DateAndTime; /*aadt("DateAndTime",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_DateAndTime; /*aadt("DateAndTime",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_StringTail; /*aadt("StringTail",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_StringTail; /*aadt("StringTail",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_CaseInsensitiveStringConstant; /*aadt("CaseInsensitiveStringConstant",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_CaseInsensitiveStringConstant; /*aadt("CaseInsensitiveStringConstant",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Char; /*aadt("Char",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Char; /*aadt("Char",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_OptionalComma; /*aadt("OptionalComma",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_OptionalComma; /*aadt("OptionalComma",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Assignment; /*aadt("Assignment",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Assignment; /*aadt("Assignment",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Header; /*aadt("Header",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Header; /*aadt("Header",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Exception; /*aadt("Exception",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_PatternWithAction; /*aadt("PatternWithAction",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_PatternWithAction; /*aadt("PatternWithAction",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type $T5; /*aset(aadt("Symbol",[],dataSyntax()))*/ + public final io.usethesource.vallang.type.Type ADT_FunctionDeclaration; /*aadt("FunctionDeclaration",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_FunctionDeclaration; /*aadt("FunctionDeclaration",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_StringConstant; /*aadt("StringConstant",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_StringConstant; /*aadt("StringConstant",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_TypeVar; /*aadt("TypeVar",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_TypeVar; /*aadt("TypeVar",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_LocationType; /*aadt("LocationType",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_JustDate; /*aadt("JustDate",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_JustDate; /*aadt("JustDate",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_UserType; /*aadt("UserType",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_UserType; /*aadt("UserType",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_CharRange; /*aadt("CharRange",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Variant; /*aadt("Variant",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Variant; /*aadt("Variant",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_FunctionModifiers; /*aadt("FunctionModifiers",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_FunctionModifiers; /*aadt("FunctionModifiers",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Import; /*aadt("Import",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Import; /*aadt("Import",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Formals; /*aadt("Formals",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Formals; /*aadt("Formals",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_TreeSearchResult_1; /*aadt("TreeSearchResult",[aparameter("T",aadt("Tree",[],dataSyntax()),closed=true)],dataSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_ConcreteHole; /*aadt("ConcreteHole",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_ConcreteHole; /*aadt("ConcreteHole",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Grammar; /*aadt("Grammar",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Message; /*aadt("Message",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type $T10; /*alist(aadt("Symbol",[],dataSyntax()))*/ + public final io.usethesource.vallang.type.Type ADT_RealLiteral; /*aadt("RealLiteral",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_RealLiteral; /*aadt("RealLiteral",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_StringMiddle; /*aadt("StringMiddle",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_StringMiddle; /*aadt("StringMiddle",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type $T4; /*\iter-seps(aadt("Expression",[],contextFreeSyntax()),[aadt("LAYOUTLIST",[],layoutSyntax()),alit(","),aadt("LAYOUTLIST",[],layoutSyntax())])*/ + public final io.usethesource.vallang.type.Type ADT_Comprehension; /*aadt("Comprehension",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Comprehension; /*aadt("Comprehension",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_QualifiedName; /*aadt("QualifiedName",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_QualifiedName; /*aadt("QualifiedName",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type $T2; /*\iter-star-seps(aadt("Sym",[],contextFreeSyntax()),[aadt("LAYOUTLIST",[],layoutSyntax())])*/ + public final io.usethesource.vallang.type.Type ADT_MidPathChars; /*aadt("MidPathChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_MidPathChars; /*aadt("MidPathChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_NamedBackslash; /*aadt("NamedBackslash",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_NamedBackslash; /*aadt("NamedBackslash",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_RascalKeywords; /*aadt("RascalKeywords",[],keywordSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Parameters; /*aadt("Parameters",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Parameters; /*aadt("Parameters",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_MidProtocolChars; /*aadt("MidProtocolChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_MidProtocolChars; /*aadt("MidProtocolChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Command; /*aadt("Command",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Command; /*aadt("Command",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_StructuredType; /*aadt("StructuredType",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_StructuredType; /*aadt("StructuredType",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_OctalIntegerLiteral; /*aadt("OctalIntegerLiteral",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_OctalIntegerLiteral; /*aadt("OctalIntegerLiteral",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_ProtocolPart; /*aadt("ProtocolPart",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_ProtocolPart; /*aadt("ProtocolPart",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_StringTemplate; /*aadt("StringTemplate",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_StringTemplate; /*aadt("StringTemplate",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_DateTimeLiteral; /*aadt("DateTimeLiteral",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_DateTimeLiteral; /*aadt("DateTimeLiteral",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_DecimalIntegerLiteral; /*aadt("DecimalIntegerLiteral",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_DecimalIntegerLiteral; /*aadt("DecimalIntegerLiteral",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Kind; /*aadt("Kind",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Kind; /*aadt("Kind",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_RegExpModifier; /*aadt("RegExpModifier",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_RegExpModifier; /*aadt("RegExpModifier",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Label; /*aadt("Label",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Label; /*aadt("Label",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_PreProtocolChars; /*aadt("PreProtocolChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_PreProtocolChars; /*aadt("PreProtocolChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_PathTail; /*aadt("PathTail",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_PathTail; /*aadt("PathTail",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_NamedRegExp; /*aadt("NamedRegExp",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_NamedRegExp; /*aadt("NamedRegExp",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Assoc; /*aadt("Assoc",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Assoc; /*aadt("Assoc",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_RuntimeException; /*aadt("RuntimeException",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_LocationChangeEvent; /*aadt("LocationChangeEvent",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_PathChars; /*aadt("PathChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_PathChars; /*aadt("PathChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Toplevel; /*aadt("Toplevel",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Toplevel; /*aadt("Toplevel",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type $T3; /*aset(aadt("Condition",[],dataSyntax()))*/ + public final io.usethesource.vallang.type.Type ADT_EvalCommand; /*aadt("EvalCommand",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_EvalCommand; /*aadt("EvalCommand",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_PostPathChars; /*aadt("PostPathChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_PostPathChars; /*aadt("PostPathChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_StringCharacter; /*aadt("StringCharacter",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_StringCharacter; /*aadt("StringCharacter",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Module; /*aadt("Module",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Module; /*aadt("Module",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Statement; /*aadt("Statement",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Statement; /*aadt("Statement",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_ConcretePart; /*aadt("ConcretePart",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_ConcretePart; /*aadt("ConcretePart",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Literal; /*aadt("Literal",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Literal; /*aadt("Literal",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_BasicType; /*aadt("BasicType",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_BasicType; /*aadt("BasicType",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_CommonKeywordParameters; /*aadt("CommonKeywordParameters",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_CommonKeywordParameters; /*aadt("CommonKeywordParameters",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_ProtocolTail; /*aadt("ProtocolTail",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_ProtocolTail; /*aadt("ProtocolTail",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Comment; /*aadt("Comment",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Comment; /*aadt("Comment",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Commands; /*aadt("Commands",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Commands; /*aadt("Commands",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_JustTime; /*aadt("JustTime",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_JustTime; /*aadt("JustTime",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_FunctionModifier; /*aadt("FunctionModifier",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_FunctionModifier; /*aadt("FunctionModifier",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_ProdModifier; /*aadt("ProdModifier",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_ProdModifier; /*aadt("ProdModifier",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Assignable; /*aadt("Assignable",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Assignable; /*aadt("Assignable",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_UnicodeEscape; /*aadt("UnicodeEscape",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_UnicodeEscape; /*aadt("UnicodeEscape",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Visit; /*aadt("Visit",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Visit; /*aadt("Visit",[],contextFreeSyntax())*/ + + public $Symbols(RascalExecutionContext rex){ + this(rex, null); + } + + public $Symbols(RascalExecutionContext rex, Object extended){ + super(rex); + this.$me = extended == null ? this : ($Symbols_$I)extended; + ModuleStore mstore = rex.getModuleStore(); + mstore.put(rascal.lang.rascal.grammar.definition.$Symbols.class, this); + + mstore.importModule(rascal.lang.rascal.syntax.$Rascal.class, rex, rascal.lang.rascal.syntax.$Rascal::new); + mstore.importModule(rascal.lang.rascal.grammar.definition.$Literals.class, rex, rascal.lang.rascal.grammar.definition.$Literals::new); + mstore.importModule(rascal.$Message.class, rex, rascal.$Message::new); + mstore.importModule(rascal.lang.rascal.grammar.definition.$Characters.class, rex, rascal.lang.rascal.grammar.definition.$Characters::new); + mstore.importModule(rascal.$Exception.class, rex, rascal.$Exception::new); + mstore.importModule(rascal.$Type.class, rex, rascal.$Type::new); + mstore.importModule(rascal.$List.class, rex, rascal.$List::new); + mstore.importModule(rascal.$String.class, rex, rascal.$String::new); + mstore.importModule(rascal.$ParseTree.class, rex, rascal.$ParseTree::new); + + M_lang_rascal_syntax_Rascal = mstore.getModule(rascal.lang.rascal.syntax.$Rascal.class); + M_lang_rascal_grammar_definition_Literals = mstore.getModule(rascal.lang.rascal.grammar.definition.$Literals.class); + M_Message = mstore.getModule(rascal.$Message.class); + M_lang_rascal_grammar_definition_Characters = mstore.getModule(rascal.lang.rascal.grammar.definition.$Characters.class); + M_Exception = mstore.getModule(rascal.$Exception.class); + M_Type = mstore.getModule(rascal.$Type.class); + M_List = mstore.getModule(rascal.$List.class); + M_String = mstore.getModule(rascal.$String.class); + M_ParseTree = mstore.getModule(rascal.$ParseTree.class); + + + + $TS.importStore(M_lang_rascal_syntax_Rascal.$TS); + $TS.importStore(M_lang_rascal_grammar_definition_Literals.$TS); + $TS.importStore(M_Message.$TS); + $TS.importStore(M_lang_rascal_grammar_definition_Characters.$TS); + $TS.importStore(M_Exception.$TS); + $TS.importStore(M_Type.$TS); + $TS.importStore(M_List.$TS); + $TS.importStore(M_String.$TS); + $TS.importStore(M_ParseTree.$TS); + + $constants = readBinaryConstantsFile(this.getClass(), "rascal/lang/rascal/grammar/definition/$Symbols.constants", 8, "095e2965e6051c6664c9edfcca3e5484"); + NT_Expression = $sort("Expression"); + ADT_Expression = $adt("Expression"); + NT_Strategy = $sort("Strategy"); + ADT_Strategy = $adt("Strategy"); + NT_Visibility = $sort("Visibility"); + ADT_Visibility = $adt("Visibility"); + NT_ProtocolChars = $lex("ProtocolChars"); + ADT_ProtocolChars = $adt("ProtocolChars"); + NT_FunctionType = $sort("FunctionType"); + ADT_FunctionType = $adt("FunctionType"); + ADT_Attr = $adt("Attr"); + ADT_Tree = $adt("Tree"); + NT_MidStringChars = $lex("MidStringChars"); + ADT_MidStringChars = $adt("MidStringChars"); + NT_Replacement = $sort("Replacement"); + ADT_Replacement = $adt("Replacement"); + ADT_LocationChangeType = $adt("LocationChangeType"); + NT_Sym = $sort("Sym"); + ADT_Sym = $adt("Sym"); + ADT_LAYOUTLIST = $layouts("LAYOUTLIST"); + ADT_IOCapability = $adt("IOCapability"); + NT_Concrete = $lex("Concrete"); + ADT_Concrete = $adt("Concrete"); + NT_PostProtocolChars = $lex("PostProtocolChars"); + ADT_PostProtocolChars = $adt("PostProtocolChars"); + NT_Range = $sort("Range"); + ADT_Range = $adt("Range"); + NT_LAYOUT = $lex("LAYOUT"); + ADT_LAYOUT = $adt("LAYOUT"); + NT_Pattern = $sort("Pattern"); + ADT_Pattern = $adt("Pattern"); + NT_RationalLiteral = $lex("RationalLiteral"); + ADT_RationalLiteral = $adt("RationalLiteral"); + NT_DatePart = $lex("DatePart"); + ADT_DatePart = $adt("DatePart"); + ADT_Item = $adt("Item"); + ADT_GrammarModule = $adt("GrammarModule"); + NT_RegExpLiteral = $lex("RegExpLiteral"); + ADT_RegExpLiteral = $adt("RegExpLiteral"); + NT_Prod = $sort("Prod"); + ADT_Prod = $adt("Prod"); + NT_ModuleParameters = $sort("ModuleParameters"); + ADT_ModuleParameters = $adt("ModuleParameters"); + NT_Output = $lex("Output"); + ADT_Output = $adt("Output"); + NT_SyntaxDefinition = $sort("SyntaxDefinition"); + ADT_SyntaxDefinition = $adt("SyntaxDefinition"); + NT_Declarator = $sort("Declarator"); + ADT_Declarator = $adt("Declarator"); + NT_ImportedModule = $sort("ImportedModule"); + ADT_ImportedModule = $adt("ImportedModule"); + NT_Case = $sort("Case"); + ADT_Case = $adt("Case"); + NT_LocalVariableDeclaration = $sort("LocalVariableDeclaration"); + ADT_LocalVariableDeclaration = $adt("LocalVariableDeclaration"); + NT_BooleanLiteral = $lex("BooleanLiteral"); + ADT_BooleanLiteral = $adt("BooleanLiteral"); + NT_Target = $sort("Target"); + ADT_Target = $adt("Target"); + NT_IntegerLiteral = $sort("IntegerLiteral"); + ADT_IntegerLiteral = $adt("IntegerLiteral"); + NT_TimePartNoTZ = $lex("TimePartNoTZ"); + ADT_TimePartNoTZ = $adt("TimePartNoTZ"); + NT_TagString = $lex("TagString"); + ADT_TagString = $adt("TagString"); + NT_KeywordFormals = $sort("KeywordFormals"); + ADT_KeywordFormals = $adt("KeywordFormals"); + NT_DataTarget = $sort("DataTarget"); + ADT_DataTarget = $adt("DataTarget"); + NT_Renaming = $sort("Renaming"); + ADT_Renaming = $adt("Renaming"); + NT_Catch = $sort("Catch"); + ADT_Catch = $adt("Catch"); + ADT_Production = $adt("Production"); + NT_Renamings = $sort("Renamings"); + ADT_Renamings = $adt("Renamings"); + NT_KeywordFormal = $sort("KeywordFormal"); + ADT_KeywordFormal = $adt("KeywordFormal"); + NT_OptionalExpression = $sort("OptionalExpression"); + ADT_OptionalExpression = $adt("OptionalExpression"); + ADT_GrammarDefinition = $adt("GrammarDefinition"); + NT_Field = $sort("Field"); + ADT_Field = $adt("Field"); + NT_FunctionBody = $sort("FunctionBody"); + ADT_FunctionBody = $adt("FunctionBody"); + NT_LocationLiteral = $sort("LocationLiteral"); + ADT_LocationLiteral = $adt("LocationLiteral"); + NT_Tag = $sort("Tag"); + ADT_Tag = $adt("Tag"); + NT_Type = $sort("Type"); + ADT_Type = $adt("Type"); + NT_HexIntegerLiteral = $lex("HexIntegerLiteral"); + ADT_HexIntegerLiteral = $adt("HexIntegerLiteral"); + NT_PostStringChars = $lex("PostStringChars"); + ADT_PostStringChars = $adt("PostStringChars"); + NT_TimeZonePart = $lex("TimeZonePart"); + ADT_TimeZonePart = $adt("TimeZonePart"); + NT_Declaration = $sort("Declaration"); + ADT_Declaration = $adt("Declaration"); + NT_ShellCommand = $sort("ShellCommand"); + ADT_ShellCommand = $adt("ShellCommand"); + ADT_Symbol = $adt("Symbol"); + NT_Nonterminal = $lex("Nonterminal"); + ADT_Nonterminal = $adt("Nonterminal"); + NT_RegExp = $lex("RegExp"); + ADT_RegExp = $adt("RegExp"); + NT_PreStringChars = $lex("PreStringChars"); + ADT_PreStringChars = $adt("PreStringChars"); + NT_StringLiteral = $sort("StringLiteral"); + ADT_StringLiteral = $adt("StringLiteral"); + NT_Variable = $sort("Variable"); + ADT_Variable = $adt("Variable"); + NT_Name = $lex("Name"); + ADT_Name = $adt("Name"); + NT_NonterminalLabel = $lex("NonterminalLabel"); + ADT_NonterminalLabel = $adt("NonterminalLabel"); + NT_Bound = $sort("Bound"); + ADT_Bound = $adt("Bound"); + NT_TypeArg = $sort("TypeArg"); + ADT_TypeArg = $adt("TypeArg"); + NT_Class = $sort("Class"); + ADT_Class = $adt("Class"); + ADT_Condition = $adt("Condition"); + NT_PathPart = $sort("PathPart"); + ADT_PathPart = $adt("PathPart"); + NT_Signature = $sort("Signature"); + ADT_Signature = $adt("Signature"); + NT_Tags = $sort("Tags"); + ADT_Tags = $adt("Tags"); + NT_URLChars = $lex("URLChars"); + ADT_URLChars = $adt("URLChars"); + NT_ModuleActuals = $sort("ModuleActuals"); + ADT_ModuleActuals = $adt("ModuleActuals"); + ADT_Associativity = $adt("Associativity"); + NT_DataTypeSelector = $sort("DataTypeSelector"); + ADT_DataTypeSelector = $adt("DataTypeSelector"); + NT_Body = $sort("Body"); + ADT_Body = $adt("Body"); + NT_PrePathChars = $lex("PrePathChars"); + ADT_PrePathChars = $adt("PrePathChars"); + NT_Start = $sort("Start"); + ADT_Start = $adt("Start"); + NT_Backslash = $lex("Backslash"); + ADT_Backslash = $adt("Backslash"); + NT_DateAndTime = $lex("DateAndTime"); + ADT_DateAndTime = $adt("DateAndTime"); + NT_StringTail = $sort("StringTail"); + ADT_StringTail = $adt("StringTail"); + NT_CaseInsensitiveStringConstant = $lex("CaseInsensitiveStringConstant"); + ADT_CaseInsensitiveStringConstant = $adt("CaseInsensitiveStringConstant"); + NT_Char = $lex("Char"); + ADT_Char = $adt("Char"); + NT_OptionalComma = $lex("OptionalComma"); + ADT_OptionalComma = $adt("OptionalComma"); + NT_Assignment = $sort("Assignment"); + ADT_Assignment = $adt("Assignment"); + NT_Header = $sort("Header"); + ADT_Header = $adt("Header"); + ADT_Exception = $adt("Exception"); + NT_PatternWithAction = $sort("PatternWithAction"); + ADT_PatternWithAction = $adt("PatternWithAction"); + NT_FunctionDeclaration = $sort("FunctionDeclaration"); + ADT_FunctionDeclaration = $adt("FunctionDeclaration"); + NT_StringConstant = $lex("StringConstant"); + ADT_StringConstant = $adt("StringConstant"); + NT_TypeVar = $sort("TypeVar"); + ADT_TypeVar = $adt("TypeVar"); + ADT_LocationType = $adt("LocationType"); + NT_JustDate = $lex("JustDate"); + ADT_JustDate = $adt("JustDate"); + NT_UserType = $sort("UserType"); + ADT_UserType = $adt("UserType"); + ADT_CharRange = $adt("CharRange"); + NT_Variant = $sort("Variant"); + ADT_Variant = $adt("Variant"); + NT_FunctionModifiers = $sort("FunctionModifiers"); + ADT_FunctionModifiers = $adt("FunctionModifiers"); + NT_Import = $sort("Import"); + ADT_Import = $adt("Import"); + NT_Formals = $sort("Formals"); + ADT_Formals = $adt("Formals"); + NT_ConcreteHole = $sort("ConcreteHole"); + ADT_ConcreteHole = $adt("ConcreteHole"); + ADT_Grammar = $adt("Grammar"); + ADT_Message = $adt("Message"); + NT_RealLiteral = $lex("RealLiteral"); + ADT_RealLiteral = $adt("RealLiteral"); + NT_StringMiddle = $sort("StringMiddle"); + ADT_StringMiddle = $adt("StringMiddle"); + NT_Comprehension = $sort("Comprehension"); + ADT_Comprehension = $adt("Comprehension"); + NT_QualifiedName = $sort("QualifiedName"); + ADT_QualifiedName = $adt("QualifiedName"); + NT_MidPathChars = $lex("MidPathChars"); + ADT_MidPathChars = $adt("MidPathChars"); + NT_NamedBackslash = $lex("NamedBackslash"); + ADT_NamedBackslash = $adt("NamedBackslash"); + ADT_RascalKeywords = $keywords("RascalKeywords"); + NT_Parameters = $sort("Parameters"); + ADT_Parameters = $adt("Parameters"); + NT_MidProtocolChars = $lex("MidProtocolChars"); + ADT_MidProtocolChars = $adt("MidProtocolChars"); + NT_Command = $sort("Command"); + ADT_Command = $adt("Command"); + NT_StructuredType = $sort("StructuredType"); + ADT_StructuredType = $adt("StructuredType"); + NT_OctalIntegerLiteral = $lex("OctalIntegerLiteral"); + ADT_OctalIntegerLiteral = $adt("OctalIntegerLiteral"); + NT_ProtocolPart = $sort("ProtocolPart"); + ADT_ProtocolPart = $adt("ProtocolPart"); + NT_StringTemplate = $sort("StringTemplate"); + ADT_StringTemplate = $adt("StringTemplate"); + NT_DateTimeLiteral = $sort("DateTimeLiteral"); + ADT_DateTimeLiteral = $adt("DateTimeLiteral"); + NT_DecimalIntegerLiteral = $lex("DecimalIntegerLiteral"); + ADT_DecimalIntegerLiteral = $adt("DecimalIntegerLiteral"); + NT_Kind = $sort("Kind"); + ADT_Kind = $adt("Kind"); + NT_RegExpModifier = $lex("RegExpModifier"); + ADT_RegExpModifier = $adt("RegExpModifier"); + NT_Label = $sort("Label"); + ADT_Label = $adt("Label"); + NT_PreProtocolChars = $lex("PreProtocolChars"); + ADT_PreProtocolChars = $adt("PreProtocolChars"); + NT_PathTail = $sort("PathTail"); + ADT_PathTail = $adt("PathTail"); + NT_NamedRegExp = $lex("NamedRegExp"); + ADT_NamedRegExp = $adt("NamedRegExp"); + NT_Assoc = $sort("Assoc"); + ADT_Assoc = $adt("Assoc"); + ADT_RuntimeException = $adt("RuntimeException"); + ADT_LocationChangeEvent = $adt("LocationChangeEvent"); + NT_PathChars = $lex("PathChars"); + ADT_PathChars = $adt("PathChars"); + NT_Toplevel = $sort("Toplevel"); + ADT_Toplevel = $adt("Toplevel"); + NT_EvalCommand = $sort("EvalCommand"); + ADT_EvalCommand = $adt("EvalCommand"); + NT_PostPathChars = $lex("PostPathChars"); + ADT_PostPathChars = $adt("PostPathChars"); + NT_StringCharacter = $lex("StringCharacter"); + ADT_StringCharacter = $adt("StringCharacter"); + NT_Module = $sort("Module"); + ADT_Module = $adt("Module"); + NT_Statement = $sort("Statement"); + ADT_Statement = $adt("Statement"); + NT_ConcretePart = $lex("ConcretePart"); + ADT_ConcretePart = $adt("ConcretePart"); + NT_Literal = $sort("Literal"); + ADT_Literal = $adt("Literal"); + NT_BasicType = $sort("BasicType"); + ADT_BasicType = $adt("BasicType"); + NT_CommonKeywordParameters = $sort("CommonKeywordParameters"); + ADT_CommonKeywordParameters = $adt("CommonKeywordParameters"); + NT_ProtocolTail = $sort("ProtocolTail"); + ADT_ProtocolTail = $adt("ProtocolTail"); + NT_Comment = $lex("Comment"); + ADT_Comment = $adt("Comment"); + NT_Commands = $sort("Commands"); + ADT_Commands = $adt("Commands"); + NT_JustTime = $lex("JustTime"); + ADT_JustTime = $adt("JustTime"); + NT_FunctionModifier = $sort("FunctionModifier"); + ADT_FunctionModifier = $adt("FunctionModifier"); + NT_ProdModifier = $sort("ProdModifier"); + ADT_ProdModifier = $adt("ProdModifier"); + NT_Assignable = $sort("Assignable"); + ADT_Assignable = $adt("Assignable"); + NT_UnicodeEscape = $lex("UnicodeEscape"); + ADT_UnicodeEscape = $adt("UnicodeEscape"); + NT_Visit = $sort("Visit"); + ADT_Visit = $adt("Visit"); + $T9 = $TF.stringType(); + $T7 = $TF.valueType(); + $T8 = $TF.parameterType("T", $T7); + NT_Mapping_Expression = $parameterizedSort("Mapping", new Type[] { ADT_Expression }, $RVF.list($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Expression")))); + $T11 = $TF.parameterType("T", ADT_Tree); + NT_KeywordArguments_1 = $parameterizedSort("KeywordArguments", new Type[] { $T11 }, $RVF.list($RVF.constructor(RascalValueFactory.Symbol_Parameter, $RVF.string("T"), $RVF.constructor(RascalValueFactory.Symbol_Adt, $RVF.string("Tree"), $RVF.list())))); + $T1 = $RTF.nonTerminalType($RVF.constructor(RascalValueFactory.Symbol_Lit, $RVF.string(","))); + $T15 = $RTF.nonTerminalType($RVF.constructor(RascalValueFactory.Symbol_IterSeps, $RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Sym")), $RVF.list($RVF.constructor(RascalValueFactory.Symbol_Layouts, $RVF.string("LAYOUTLIST"))))); + $T14 = $RTF.nonTerminalType($RVF.constructor(RascalValueFactory.Symbol_Lit, $RVF.string("|"))); + $T13 = $RTF.nonTerminalType($RVF.constructor(RascalValueFactory.Symbol_IterSeps, $RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Sym")), $RVF.list($RVF.constructor(RascalValueFactory.Symbol_Layouts, $RVF.string("LAYOUTLIST")), $RVF.constructor(RascalValueFactory.Symbol_Lit, $RVF.string("|")), $RVF.constructor(RascalValueFactory.Symbol_Layouts, $RVF.string("LAYOUTLIST"))))); + NT_Mapping_Pattern = $parameterizedSort("Mapping", new Type[] { ADT_Pattern }, $RVF.list($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Pattern")))); + $T12 = $TF.parameterType("T", ADT_Tree); + NT_KeywordArguments_Expression = $parameterizedSort("KeywordArguments", new Type[] { ADT_Expression }, $RVF.list($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Expression")))); + NT_Mapping_1 = $parameterizedSort("Mapping", new Type[] { $T11 }, $RVF.list($RVF.constructor(RascalValueFactory.Symbol_Parameter, $RVF.string("T"), $RVF.constructor(RascalValueFactory.Symbol_Adt, $RVF.string("Tree"), $RVF.list())))); + $T6 = $TF.listType($T8); + NT_KeywordArgument_1 = $parameterizedSort("KeywordArgument", new Type[] { $T11 }, $RVF.list($RVF.constructor(RascalValueFactory.Symbol_Parameter, $RVF.string("T"), $RVF.constructor(RascalValueFactory.Symbol_Adt, $RVF.string("Tree"), $RVF.list())))); + $T0 = $RTF.nonTerminalType($RVF.constructor(RascalValueFactory.Symbol_IterSeps, $RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Sym")), $RVF.list($RVF.constructor(RascalValueFactory.Symbol_Layouts, $RVF.string("LAYOUTLIST")), $RVF.constructor(RascalValueFactory.Symbol_Lit, $RVF.string(",")), $RVF.constructor(RascalValueFactory.Symbol_Layouts, $RVF.string("LAYOUTLIST"))))); + NT_KeywordArguments_Pattern = $parameterizedSort("KeywordArguments", new Type[] { ADT_Pattern }, $RVF.list($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Pattern")))); + $T5 = $TF.setType(ADT_Symbol); + ADT_TreeSearchResult_1 = $parameterizedAdt("TreeSearchResult", new Type[] { $T11 }); + $T10 = $TF.listType(ADT_Symbol); + $T4 = $RTF.nonTerminalType($RVF.constructor(RascalValueFactory.Symbol_IterSeps, $RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Expression")), $RVF.list($RVF.constructor(RascalValueFactory.Symbol_Layouts, $RVF.string("LAYOUTLIST")), $RVF.constructor(RascalValueFactory.Symbol_Lit, $RVF.string(",")), $RVF.constructor(RascalValueFactory.Symbol_Layouts, $RVF.string("LAYOUTLIST"))))); + $T2 = $RTF.nonTerminalType($RVF.constructor(RascalValueFactory.Symbol_IterStarSeps, $RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Sym")), $RVF.list($RVF.constructor(RascalValueFactory.Symbol_Layouts, $RVF.string("LAYOUTLIST"))))); + $T3 = $TF.setType(ADT_Condition); + ADT_Mapping_Expression = $TF.abstractDataType($TS, "Mapping", new Type[] { ADT_Expression }); + ADT_KeywordArguments_1 = $TF.abstractDataType($TS, "KeywordArguments", new Type[] { $T11 }); + ADT_Mapping_Pattern = $TF.abstractDataType($TS, "Mapping", new Type[] { ADT_Pattern }); + ADT_KeywordArguments_Expression = $TF.abstractDataType($TS, "KeywordArguments", new Type[] { ADT_Expression }); + ADT_Mapping_1 = $TF.abstractDataType($TS, "Mapping", new Type[] { $T11 }); + ADT_KeywordArgument_1 = $TF.abstractDataType($TS, "KeywordArgument", new Type[] { $T11 }); + ADT_KeywordArguments_Pattern = $TF.abstractDataType($TS, "KeywordArguments", new Type[] { ADT_Pattern }); + + + + } + public IList addLabels(IValue $P0, IValue $P1){ // Generated by Resolver + return (IList) M_Type.addLabels($P0, $P1); + } + public IBool sameType(IValue $P0, IValue $P1){ // Generated by Resolver + return (IBool) M_ParseTree.sameType($P0, $P1); + } + public IValue head(IValue $P0){ // Generated by Resolver + return (IValue) M_List.head($P0); + } + public IBool isAliasType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isAliasType($P0); + } + public IBool isStrType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isStrType($P0); + } + public IConstructor choice(IValue $P0, IValue $P1){ // Generated by Resolver + return (IConstructor) M_Type.choice($P0, $P1); + } + public IBool isValueType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isValueType($P0); + } + public IBool isADTType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isADTType($P0); + } + public IBool isListType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isListType($P0); + } + public IBool isRealType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isRealType($P0); + } + public IBool isTypeVar(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isTypeVar($P0); + } + public IConstructor sym2symbol(IValue $P0){ // Generated by Resolver + IConstructor $result = null; + Type $P0Type = $P0.getType(); + if($isNonTerminal($P0Type, M_lang_rascal_syntax_Rascal.NT_Sym)){ + $result = (IConstructor)lang_rascal_grammar_definition_Symbols_sym2symbol$dfa495965feb0c03((ITree) $P0); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0)); + } + public IList separgs2symbols(IValue $P0){ // Generated by Resolver + IList $result = null; + Type $P0Type = $P0.getType(); + if($isSubtypeOf($P0Type,$T0)){ + $result = (IList)lang_rascal_grammar_definition_Symbols_separgs2symbols$b28c720b0d5f3bbd((ITree) $P0); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0)); + } + public IConstructor priority(IValue $P0, IValue $P1){ // Generated by Resolver + return (IConstructor) M_ParseTree.priority($P0, $P1); + } + public IBool match(IValue $P0, IValue $P1){ // Generated by Resolver + IBool $result = null; + Type $P0Type = $P0.getType(); + Type $P1Type = $P1.getType(); + if($isSubtypeOf($P0Type, M_ParseTree.ADT_Symbol) && $isSubtypeOf($P1Type, M_ParseTree.ADT_Symbol)){ + $result = (IBool)lang_rascal_grammar_definition_Symbols_match$81f02fcbec53ce11((IConstructor) $P0, (IConstructor) $P1); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0, $P1)); + } + public IList args2symbols(IValue $P0){ // Generated by Resolver + IList $result = null; + Type $P0Type = $P0.getType(); + if($isSubtypeOf($P0Type,$T2)){ + $result = (IList)lang_rascal_grammar_definition_Symbols_args2symbols$df41e76e71525e83((ITree) $P0); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0)); + } + public IConstructor complement(IValue $P0){ // Generated by Resolver + return (IConstructor) M_lang_rascal_grammar_definition_Characters.complement($P0); + } + public IBool isNodeType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isNodeType($P0); + } + public INode conditional(IValue $P0, IValue $P1){ // Generated by Resolver + INode $result = null; + Type $P0Type = $P0.getType(); + Type $P1Type = $P1.getType(); + if($isSubtypeOf($P0Type, M_ParseTree.ADT_Symbol) && $isSubtypeOf($P1Type,$T3)){ + $result = (INode)lang_rascal_grammar_definition_Symbols_conditional$f9ac60504818807f((IConstructor) $P0, (ISet) $P1); + if($result != null) return $result; + } + if($isSubtypeOf($P0Type, M_ParseTree.ADT_Symbol) && $isSubtypeOf($P1Type,$T3)){ + $result = (INode)lang_rascal_grammar_definition_Symbols_conditional$a78f69e7726562ef((IConstructor) $P0, (ISet) $P1); + if($result != null) return $result; + } + if($isNonTerminal($P0Type, M_lang_rascal_syntax_Rascal.NT_Expression) && $isSubtypeOf($P1Type,$T4)){ + return $RVF.constructor(M_lang_rascal_syntax_Rascal.Replacement_conditional_Expression_iter_seps_Expression, new IValue[]{(ITree) $P0, (ITree) $P1}); + } + if($isSubtypeOf($P0Type, M_ParseTree.ADT_Symbol) && $isSubtypeOf($P1Type,$T3)){ + return $RVF.constructor(M_ParseTree.Symbol_conditional_Symbol_set_Condition, new IValue[]{(IConstructor) $P0, (ISet) $P1}); + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0, $P1)); + } + public IBool isReifiedType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isReifiedType($P0); + } + public IConstructor alt(IValue $P0){ // Generated by Resolver + IConstructor $result = null; + Type $P0Type = $P0.getType(); + if($isSubtypeOf($P0Type,$T5)){ + $result = (IConstructor)lang_rascal_grammar_definition_Symbols_alt$01fd93bf17a1bf85((ISet) $P0); + if($result != null) return $result; + } + if($isSubtypeOf($P0Type,$T5)){ + return $RVF.constructor(M_ParseTree.Symbol_alt_set_Symbol, new IValue[]{(ISet) $P0}); + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0)); + } + public IBool isRelType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isRelType($P0); + } + public IConstructor intersection(IValue $P0, IValue $P1){ // Generated by Resolver + return (IConstructor) M_lang_rascal_grammar_definition_Characters.intersection($P0, $P1); + } + public IBool isConstructorType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isConstructorType($P0); + } + public IBool isListRelType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isListRelType($P0); + } + public IList addParamLabels(IValue $P0, IValue $P1){ // Generated by Resolver + return (IList) M_Type.addParamLabels($P0, $P1); + } + public IList delete(IValue $P0, IValue $P1){ // Generated by Resolver + return (IList) M_List.delete($P0, $P1); + } + public IBool isMapType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isMapType($P0); + } + public IBool isBoolType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isBoolType($P0); + } + public IConstructor union(IValue $P0, IValue $P1){ // Generated by Resolver + return (IConstructor) M_lang_rascal_grammar_definition_Characters.union($P0, $P1); + } + public IList tail(IValue $P0){ // Generated by Resolver + return (IList) M_List.tail($P0); + } + public IBool isLocType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isLocType($P0); + } + public ITuple headTail(IValue $P0){ // Generated by Resolver + return (ITuple) M_List.headTail($P0); + } + public IConstructor treeAt(IValue $P0, IValue $P1, IValue $P2){ // Generated by Resolver + return (IConstructor) M_ParseTree.treeAt($P0, $P1, $P2); + } + public IBool isSetType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isSetType($P0); + } + public IConstructor delabel(IValue $P0){ // Generated by Resolver + IConstructor $result = null; + Type $P0Type = $P0.getType(); + if($isSubtypeOf($P0Type, M_ParseTree.ADT_Symbol)){ + $result = (IConstructor)lang_rascal_grammar_definition_Symbols_delabel$b76df962b72ed5c5((IConstructor) $P0); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0)); + } + public IInteger toInt(IValue $P0){ // Generated by Resolver + return (IInteger) M_String.toInt($P0); + } + public IInteger toInt(IValue $P0, IValue $P1){ // Generated by Resolver + return (IInteger) M_String.toInt($P0, $P1); + } + public IBool isRatType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isRatType($P0); + } + public IString unescapeLiteral(IValue $P0){ // Generated by Resolver + return (IString) M_lang_rascal_grammar_definition_Literals.unescapeLiteral($P0); + } + public IBool isNumType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isNumType($P0); + } + public IBool isTupleType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isTupleType($P0); + } + public IConstructor striprec(IValue $P0){ // Generated by Resolver + IConstructor $result = null; + Type $P0Type = $P0.getType(); + if($isSubtypeOf($P0Type, M_ParseTree.ADT_Symbol)){ + $result = (IConstructor)lang_rascal_grammar_definition_Symbols_striprec$2adcb69e86cd0492((IConstructor) $P0); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0)); + } + public IBool isBagType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isBagType($P0); + } + public IBool isVoidType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isVoidType($P0); + } + public IConstructor strip(IValue $P0){ // Generated by Resolver + IConstructor $result = null; + Type $P0Type = $P0.getType(); + switch(Fingerprint.getFingerprint($P0)){ + + case 1643638592: + if($isSubtypeOf($P0Type, M_ParseTree.ADT_Symbol)){ + $result = (IConstructor)lang_rascal_grammar_definition_Symbols_strip$9567130339c14a87((IConstructor) $P0); + if($result != null) return $result; + } + break; + case -2144737184: + if($isSubtypeOf($P0Type, M_ParseTree.ADT_Symbol)){ + $result = (IConstructor)lang_rascal_grammar_definition_Symbols_strip$cbd5896823d6fc07((IConstructor) $P0); + if($result != null) return $result; + } + break; + } + if($isSubtypeOf($P0Type, M_ParseTree.ADT_Symbol)){ + $result = (IConstructor)lang_rascal_grammar_definition_Symbols_strip$b22f60b98614c4fe((IConstructor) $P0); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0)); + } + public IBool isNonTerminalType(IValue $P0){ // Generated by Resolver + return (IBool) M_ParseTree.isNonTerminalType($P0); + } + public IValue lub(IValue $P0, IValue $P1){ // Generated by Resolver + return (IValue) M_Type.lub($P0, $P1); + } + public IBool subtype(IValue $P0, IValue $P1){ // Generated by Resolver + return (IBool) M_Type.subtype($P0, $P1); + } + public IConstructor associativity(IValue $P0, IValue $P1, IValue $P2){ // Generated by Resolver + return (IConstructor) M_ParseTree.associativity($P0, $P1, $P2); + } + public IBool isFunctionType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isFunctionType($P0); + } + public IValue glb(IValue $P0, IValue $P1){ // Generated by Resolver + return (IValue) M_Type.glb($P0, $P1); + } + public IConstructor difference(IValue $P0, IValue $P1){ // Generated by Resolver + return (IConstructor) M_lang_rascal_grammar_definition_Characters.difference($P0, $P1); + } + public IValue sort(IValue $P0){ // Generated by Resolver + IValue $result = null; + Type $P0Type = $P0.getType(); + if($isSubtypeOf($P0Type,$T6)){ + $result = (IValue)M_List.List_sort$1fe4426c8c8039da((IList) $P0); + if($result != null) return $result; + } + if($isSubtypeOf($P0Type,$T9)){ + return $RVF.constructor(M_ParseTree.Symbol_sort_str, new IValue[]{(IString) $P0}); + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0)); + } + public IList sort(IValue $P0, IValue $P1){ // Generated by Resolver + return (IList) M_List.sort($P0, $P1); + } + public IConstructor seq(IValue $P0){ // Generated by Resolver + IConstructor $result = null; + Type $P0Type = $P0.getType(); + if($isSubtypeOf($P0Type,$T10)){ + $result = (IConstructor)lang_rascal_grammar_definition_Symbols_seq$5dde90ea795fac79((IList) $P0); + if($result != null) return $result; + } + if($isSubtypeOf($P0Type,$T10)){ + return $RVF.constructor(M_ParseTree.Symbol_seq_list_Symbol, new IValue[]{(IList) $P0}); + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0)); + } + public IBool isIntType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isIntType($P0); + } + public IBool isDateTimeType(IValue $P0){ // Generated by Resolver + return (IBool) M_Type.isDateTimeType($P0); + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/lang/rascal/grammar/definition/Symbols.rsc|(531,157,<18,0>,<21,2>) + public IConstructor lang_rascal_grammar_definition_Symbols_striprec$2adcb69e86cd0492(IConstructor s_ori_0){ + + + try { + IValue $visitResult = $TRAVERSE.traverse(DIRECTION.BottomUp, PROGRESS.Continuing, FIXEDPOINT.No, REBUILD.Yes, + new DescendantDescriptor(new io.usethesource.vallang.type.Type[]{$TF.listType(ADT_Symbol), M_Type.ADT_Exception, $TF.setType(ADT_Symbol), $TF.setType(ADT_Condition), M_lang_rascal_syntax_Rascal.ADT_KeywordArguments_1, M_ParseTree.ADT_Tree, M_ParseTree.ADT_TreeSearchResult_1, M_ParseTree.ADT_Condition, M_ParseTree.ADT_Production, M_ParseTree.ADT_Symbol, ADT_Grammar, M_ParseTree.ADT_CharRange, ADT_Item, ADT_GrammarModule, $TF.listType(ADT_CharRange), ADT_GrammarDefinition}, + new io.usethesource.vallang.IConstructor[]{}, + $RVF.bool(false)), + s_ori_0, + (IVisitFunction) (IValue $VISIT0_subject, TraversalState $traversalState) -> { + VISIT0:switch(Fingerprint.getFingerprint($VISIT0_subject)){ + + case 1643638592: + if($isSubtypeOf($VISIT0_subject.getType(),M_ParseTree.ADT_Symbol)){ + /*muExists*/CASE_1643638592_0: + do { + if($has_type_and_arity($VISIT0_subject, M_Type.Symbol_label_str_Symbol, 2)){ + IValue $arg0_2 = (IValue)($aadt_subscript_int(((IConstructor)($VISIT0_subject)),0)); + if($isComparable($arg0_2.getType(), $T9)){ + IValue $arg1_1 = (IValue)($aadt_subscript_int(((IConstructor)($VISIT0_subject)),1)); + if($isComparable($arg1_1.getType(), M_ParseTree.ADT_Symbol)){ + ValueRef s_1 = new ValueRef(); + IConstructor $replacement0 = (IConstructor)($me.strip(((IConstructor)($arg1_1)))); + if($isSubtypeOf($replacement0.getType(),$VISIT0_subject.getType())){ + $traversalState.setMatchedAndChanged(true, true); + return $replacement0; + + } else { + break VISIT0;// switch + + } + } + + } + + } + + } while(false); + + } + + + case -2144737184: + if($isSubtypeOf($VISIT0_subject.getType(),M_ParseTree.ADT_Symbol)){ + /*muExists*/CASE_2144737184_1: + do { + if($has_type_and_arity($VISIT0_subject, M_ParseTree.Symbol_conditional_Symbol_set_Condition, 2)){ + IValue $arg0_5 = (IValue)($aadt_subscript_int(((IConstructor)($VISIT0_subject)),0)); + if($isComparable($arg0_5.getType(), M_ParseTree.ADT_Symbol)){ + ValueRef s_2 = new ValueRef(); + IValue $arg1_4 = (IValue)($aadt_subscript_int(((IConstructor)($VISIT0_subject)),1)); + if($isComparable($arg1_4.getType(), $T3)){ + IConstructor $replacement3 = (IConstructor)($me.strip(((IConstructor)($arg0_5)))); + if($isSubtypeOf($replacement3.getType(),$VISIT0_subject.getType())){ + $traversalState.setMatchedAndChanged(true, true); + return $replacement3; + + } else { + break VISIT0;// switch + + } + } + + } + + } + + } while(false); + + } + + + + } + return $VISIT0_subject; + }); + return (IConstructor)$visitResult; + + } catch (ReturnFromTraversalException e) { + return (IConstructor) e.getValue(); + } + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/lang/rascal/grammar/definition/Symbols.rsc|(767,48,<23,0>,<23,48>) + public IConstructor lang_rascal_grammar_definition_Symbols_strip$9567130339c14a87(IConstructor $0){ + + + if($has_type_and_arity($0, M_Type.Symbol_label_str_Symbol, 2)){ + IValue $arg0_7 = (IValue)($aadt_subscript_int(((IConstructor)$0),0)); + if($isComparable($arg0_7.getType(), $T9)){ + IValue $arg1_6 = (IValue)($aadt_subscript_int(((IConstructor)$0),1)); + if($isComparable($arg1_6.getType(), M_ParseTree.ADT_Symbol)){ + IConstructor s_0 = null; + return ((IConstructor)($me.strip(((IConstructor)($arg1_6))))); + + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/lang/rascal/grammar/definition/Symbols.rsc|(816,65,<24,0>,<24,65>) + public IConstructor lang_rascal_grammar_definition_Symbols_strip$cbd5896823d6fc07(IConstructor $0){ + + + if($has_type_and_arity($0, M_ParseTree.Symbol_conditional_Symbol_set_Condition, 2)){ + IValue $arg0_9 = (IValue)($aadt_subscript_int(((IConstructor)$0),0)); + if($isComparable($arg0_9.getType(), M_ParseTree.ADT_Symbol)){ + IConstructor s_0 = null; + IValue $arg1_8 = (IValue)($aadt_subscript_int(((IConstructor)$0),1)); + if($isComparable($arg1_8.getType(), $T3)){ + return ((IConstructor)($me.strip(((IConstructor)($arg0_9))))); + + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/lang/rascal/grammar/definition/Symbols.rsc|(882,35,<25,0>,<25,35>) + public IConstructor lang_rascal_grammar_definition_Symbols_strip$b22f60b98614c4fe(IConstructor s_0){ + + + return ((IConstructor)s_0); + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/lang/rascal/grammar/definition/Symbols.rsc|(919,271,<27,0>,<34,1>) + public IBool lang_rascal_grammar_definition_Symbols_match$81f02fcbec53ce11(IConstructor checked_0, IConstructor referenced_1){ + + + /*muExists*/WHILE1_BT: + do { + WHILE1: + while((((IBool)(($is(((IConstructor)checked_0),((IString)$constants.get(0)/*"conditional"*/)) ? ((IBool)$constants.get(1)/*true*/) : $RVF.bool($is(((IConstructor)checked_0),((IString)$constants.get(2)/*"label"*/))))))).getValue()){ + checked_0 = ((IConstructor)(((IConstructor)($aadt_get_field(((IConstructor)checked_0), "symbol"))))); + + } + + } while(false); + /* void: muCon([]) *//*muExists*/WHILE2_BT: + do { + WHILE2: + while((((IBool)(($is(((IConstructor)referenced_1),((IString)$constants.get(0)/*"conditional"*/)) ? ((IBool)$constants.get(1)/*true*/) : $RVF.bool($is(((IConstructor)referenced_1),((IString)$constants.get(2)/*"label"*/))))))).getValue()){ + referenced_1 = ((IConstructor)(((IConstructor)($aadt_get_field(((IConstructor)referenced_1), "symbol"))))); + + } + + } while(false); + /* void: muCon([]) */return ((IBool)($equal(((IConstructor)referenced_1), ((IConstructor)checked_0)))); + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/lang/rascal/grammar/definition/Symbols.rsc|(1193,68,<36,0>,<36,68>) + public IConstructor lang_rascal_grammar_definition_Symbols_delabel$b76df962b72ed5c5(IConstructor s_0){ + + + try { + IValue $visitResult = $TRAVERSE.traverse(DIRECTION.BottomUp, PROGRESS.Continuing, FIXEDPOINT.No, REBUILD.Yes, + new DescendantDescriptor(new io.usethesource.vallang.type.Type[]{$TF.listType(ADT_Symbol), M_Type.ADT_Exception, $TF.setType(ADT_Symbol), $TF.setType(ADT_Condition), M_lang_rascal_syntax_Rascal.ADT_KeywordArguments_1, M_ParseTree.ADT_Tree, M_ParseTree.ADT_TreeSearchResult_1, M_ParseTree.ADT_Condition, M_ParseTree.ADT_Production, M_ParseTree.ADT_Symbol, ADT_Grammar, M_ParseTree.ADT_CharRange, ADT_Item, ADT_GrammarModule, $TF.listType(ADT_CharRange), ADT_GrammarDefinition}, + new io.usethesource.vallang.IConstructor[]{}, + $RVF.bool(false)), + s_0, + (IVisitFunction) (IValue $VISIT3_subject, TraversalState $traversalState) -> { + VISIT3:switch(Fingerprint.getFingerprint($VISIT3_subject)){ + + case 1643638592: + if($isSubtypeOf($VISIT3_subject.getType(),M_ParseTree.ADT_Symbol)){ + /*muExists*/CASE_1643638592_0: + do { + if($has_type_and_arity($VISIT3_subject, M_Type.Symbol_label_str_Symbol, 2)){ + IValue $arg0_14 = (IValue)($aadt_subscript_int(((IConstructor)($VISIT3_subject)),0)); + if($isComparable($arg0_14.getType(), $T7)){ + IValue $arg1_13 = (IValue)($aadt_subscript_int(((IConstructor)($VISIT3_subject)),1)); + if($isComparable($arg1_13.getType(), M_ParseTree.ADT_Symbol)){ + ValueRef t_1 = new ValueRef(); + IConstructor $replacement12 = (IConstructor)($arg1_13); + if($isSubtypeOf($replacement12.getType(),$VISIT3_subject.getType())){ + $traversalState.setMatchedAndChanged(true, true); + return $replacement12; + + } else { + break VISIT3;// switch + + } + } + + } + + } + + } while(false); + + } + + + + } + return $VISIT3_subject; + }); + return (IConstructor)$visitResult; + + } catch (ReturnFromTraversalException e) { + return (IConstructor) e.getValue(); + } + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/lang/rascal/grammar/definition/Symbols.rsc|(1263,2503,<38,0>,<93,1>) + public IConstructor lang_rascal_grammar_definition_Symbols_sym2symbol$dfa495965feb0c03(ITree sym_0){ + + + final ITree $switchVal15 = ((ITree)sym_0); + boolean noCaseMatched_$switchVal15 = true; + SWITCH4: switch(Fingerprint.getFingerprint($switchVal15)){ + + case 0: + if(noCaseMatched_$switchVal15){ + noCaseMatched_$switchVal15 = false; + + } + + + default: if($isSubtypeOf($switchVal15.getType(),M_lang_rascal_syntax_Rascal.NT_Sym)){ + /*muExists*/CASE_0_0: + do { + if($nonterminal_has_name_and_arity($switchVal15, "nonterminal", 1)){ + IValue $arg0_18 = (IValue)($nonterminal_get_arg(((ITree)((ITree)($switchVal15))), ((IInteger)$constants.get(3)/*0*/).intValue())); + if($isComparable($arg0_18.getType(), M_lang_rascal_syntax_Rascal.NT_Nonterminal)){ + ITree n_1 = null; + final Template $template17 = (Template)new Template($RVF, ""); + $template17.addVal($arg0_18); + return ((IConstructor)($RVF.constructor(M_ParseTree.Symbol_sort_str, new IValue[]{((IString)($template17.close()))}))); + + } + + } + + } while(false); + + } + if($isSubtypeOf($switchVal15.getType(),M_lang_rascal_syntax_Rascal.NT_Sym)){ + /*muExists*/CASE_0_1: + do { + if($nonterminal_has_name_and_arity($switchVal15, "start", 1)){ + IValue $arg0_20 = (IValue)($nonterminal_get_arg(((ITree)((ITree)($switchVal15))), ((IInteger)$constants.get(3)/*0*/).intValue())); + if($isComparable($arg0_20.getType(), M_lang_rascal_syntax_Rascal.NT_Nonterminal)){ + ITree n_2 = null; + final Template $template19 = (Template)new Template($RVF, ""); + $template19.addVal($arg0_20); + return ((IConstructor)($RVF.constructor(M_ParseTree.Symbol_start_Symbol, new IValue[]{((IConstructor)($RVF.constructor(M_ParseTree.Symbol_sort_str, new IValue[]{((IString)($template19.close()))})))}))); + + } + + } + + } while(false); + + } + if($isSubtypeOf($switchVal15.getType(),M_lang_rascal_syntax_Rascal.NT_Sym)){ + /*muExists*/CASE_0_2: + do { + if($nonterminal_has_name_and_arity($switchVal15, "literal", 1)){ + IValue $arg0_21 = (IValue)($nonterminal_get_arg(((ITree)((ITree)($switchVal15))), ((IInteger)$constants.get(3)/*0*/).intValue())); + if($isComparable($arg0_21.getType(), M_lang_rascal_syntax_Rascal.NT_StringConstant)){ + ITree l_3 = ((ITree)($arg0_21)); + return ((IConstructor)($RVF.constructor(M_ParseTree.Symbol_lit_str, new IValue[]{((IString)(M_lang_rascal_grammar_definition_Literals.unescapeLiteral(((ITree)($arg0_21)))))}))); + + } + + } + + } while(false); + + } + if($isSubtypeOf($switchVal15.getType(),M_lang_rascal_syntax_Rascal.NT_Sym)){ + /*muExists*/CASE_0_3: + do { + if($nonterminal_has_name_and_arity($switchVal15, "caseInsensitiveLiteral", 1)){ + IValue $arg0_22 = (IValue)($nonterminal_get_arg(((ITree)((ITree)($switchVal15))), ((IInteger)$constants.get(3)/*0*/).intValue())); + if($isComparable($arg0_22.getType(), M_lang_rascal_syntax_Rascal.NT_CaseInsensitiveStringConstant)){ + ITree l_4 = ((ITree)($arg0_22)); + return ((IConstructor)($RVF.constructor(M_ParseTree.Symbol_cilit_str, new IValue[]{((IString)(M_lang_rascal_grammar_definition_Literals.unescapeLiteral(((ITree)($arg0_22)))))}))); + + } + + } + + } while(false); + + } + if($isSubtypeOf($switchVal15.getType(),M_lang_rascal_syntax_Rascal.NT_Sym)){ + /*muExists*/CASE_0_4: + do { + if($nonterminal_has_name_and_arity($switchVal15, "parametrized", 2)){ + IValue $arg0_25 = (IValue)($nonterminal_get_arg(((ITree)((ITree)($switchVal15))), ((IInteger)$constants.get(3)/*0*/).intValue())); + if($isComparable($arg0_25.getType(), M_lang_rascal_syntax_Rascal.NT_Nonterminal)){ + ITree n_5 = ((ITree)($arg0_25)); + IValue $arg1_24 = (IValue)($nonterminal_get_arg(((ITree)((ITree)($switchVal15))), ((IInteger)$constants.get(4)/*1*/).intValue())); + if($isComparable($arg1_24.getType(), $T0)){ + if(org.rascalmpl.values.parsetrees.TreeAdapter.getArgs((ITree)$arg1_24).length() >= 1){ + ITree syms_6 = ((ITree)($arg1_24)); + final Template $template23 = (Template)new Template($RVF, ""); + $template23.addVal($arg0_25); + return ((IConstructor)($RVF.constructor(M_ParseTree.Symbol_parameterized_sort_str_list_Symbol, new IValue[]{((IString)($template23.close())), ((IList)($me.separgs2symbols(((ITree)($arg1_24)))))}))); + + } + + } + + } + + } + + } while(false); + + } + if($isSubtypeOf($switchVal15.getType(),M_lang_rascal_syntax_Rascal.NT_Sym)){ + /*muExists*/CASE_0_5: + do { + if($nonterminal_has_name_and_arity($switchVal15, "labeled", 2)){ + IValue $arg0_28 = (IValue)($nonterminal_get_arg(((ITree)((ITree)($switchVal15))), ((IInteger)$constants.get(3)/*0*/).intValue())); + if($isComparable($arg0_28.getType(), M_lang_rascal_syntax_Rascal.NT_Sym)){ + ITree s_7 = ((ITree)($arg0_28)); + IValue $arg1_27 = (IValue)($nonterminal_get_arg(((ITree)((ITree)($switchVal15))), ((IInteger)$constants.get(4)/*1*/).intValue())); + if($isComparable($arg1_27.getType(), M_lang_rascal_syntax_Rascal.NT_NonterminalLabel)){ + ITree n_8 = ((ITree)($arg1_27)); + final Template $template26 = (Template)new Template($RVF, ""); + $template26.addVal($arg1_27); + return ((IConstructor)($RVF.constructor(M_Type.Symbol_label_str_Symbol, new IValue[]{((IString)($template26.close())), ((IConstructor)($me.sym2symbol(((ITree)($arg0_28)))))}))); + + } + + } + + } + + } while(false); + + } + if($isSubtypeOf($switchVal15.getType(),M_lang_rascal_syntax_Rascal.NT_Sym)){ + /*muExists*/CASE_0_6: + do { + if($nonterminal_has_name_and_arity($switchVal15, "optional", 1)){ + IValue $arg0_29 = (IValue)($nonterminal_get_arg(((ITree)((ITree)($switchVal15))), ((IInteger)$constants.get(3)/*0*/).intValue())); + if($isComparable($arg0_29.getType(), M_lang_rascal_syntax_Rascal.NT_Sym)){ + ITree s_9 = ((ITree)($arg0_29)); + return ((IConstructor)($RVF.constructor(M_ParseTree.Symbol_opt_Symbol, new IValue[]{((IConstructor)($me.sym2symbol(((ITree)($arg0_29)))))}))); + + } + + } + + } while(false); + + } + if($isSubtypeOf($switchVal15.getType(),M_lang_rascal_syntax_Rascal.NT_Sym)){ + /*muExists*/CASE_0_7: + do { + if($nonterminal_has_name_and_arity($switchVal15, "characterClass", 1)){ + IValue $arg0_30 = (IValue)($nonterminal_get_arg(((ITree)((ITree)($switchVal15))), ((IInteger)$constants.get(3)/*0*/).intValue())); + if($isComparable($arg0_30.getType(), M_lang_rascal_syntax_Rascal.NT_Class)){ + ITree cc_10 = ((ITree)($arg0_30)); + return ((IConstructor)(M_lang_rascal_grammar_definition_Characters.cc2ranges(((ITree)($arg0_30))))); + + } + + } + + } while(false); + + } + if($isSubtypeOf($switchVal15.getType(),M_lang_rascal_syntax_Rascal.NT_Sym)){ + /*muExists*/CASE_0_8: + do { + if($nonterminal_has_name_and_arity($switchVal15, "parameter", 1)){ + IValue $arg0_32 = (IValue)($nonterminal_get_arg(((ITree)((ITree)($switchVal15))), ((IInteger)$constants.get(3)/*0*/).intValue())); + if($isComparable($arg0_32.getType(), M_lang_rascal_syntax_Rascal.NT_Nonterminal)){ + ITree n_11 = null; + final Template $template31 = (Template)new Template($RVF, ""); + $template31.addVal($arg0_32); + return ((IConstructor)($RVF.constructor(M_Type.Symbol_parameter_str_Symbol, new IValue[]{((IString)($template31.close())), ((IConstructor)$constants.get(5)/*adt("Tree",[])*/)}))); + + } + + } + + } while(false); + + } + if($isSubtypeOf($switchVal15.getType(),M_lang_rascal_syntax_Rascal.NT_Sym)){ + /*muExists*/CASE_0_9: + do { + if($nonterminal_has_name_and_arity($switchVal15, "empty", 0)){ + return ((IConstructor)($RVF.constructor(M_ParseTree.Symbol_empty_, new IValue[]{}))); + + } + + } while(false); + + } + if($isSubtypeOf($switchVal15.getType(),M_lang_rascal_syntax_Rascal.NT_Sym)){ + /*muExists*/CASE_0_10: + do { + if($nonterminal_has_name_and_arity($switchVal15, "alternative", 2)){ + IValue $arg0_40 = (IValue)($nonterminal_get_arg(((ITree)((ITree)($switchVal15))), ((IInteger)$constants.get(3)/*0*/).intValue())); + if($isComparable($arg0_40.getType(), M_lang_rascal_syntax_Rascal.NT_Sym)){ + ITree first_12 = ((ITree)($arg0_40)); + IValue $arg1_39 = (IValue)($nonterminal_get_arg(((ITree)((ITree)($switchVal15))), ((IInteger)$constants.get(4)/*1*/).intValue())); + if($isComparable($arg1_39.getType(), $T13)){ + if(org.rascalmpl.values.parsetrees.TreeAdapter.getArgs((ITree)$arg1_39).length() >= 1){ + ITree alts_13 = ((ITree)($arg1_39)); + final ISetWriter $setwriter33 = (ISetWriter)$RVF.setWriter(); + ; + final ITree $exp36 = ((ITree)($arg1_39)); + final int $last37 = (int)((ITree)($exp36)).getArgs().length() - 1; + $SCOMP34_GEN2280: + + for(int $i38 = 0; $i38 <= $last37; $i38 += 4){ + final ITree $elem35 = ((ITree)($iter_subscript($exp36, $i38))); + ITree elem_14 = ((ITree)($elem35)); + $setwriter33.insert($me.sym2symbol(((ITree)elem_14))); + + } + + return ((IConstructor)($me.alt(((ISet)($aset_add_aset(((ISet)($RVF.set(((IConstructor)($me.sym2symbol(((ITree)($arg0_40)))))))),((ISet)($setwriter33.done())))))))); + + } + + } + + } + + } + + } while(false); + + } + if($isSubtypeOf($switchVal15.getType(),M_lang_rascal_syntax_Rascal.NT_Sym)){ + /*muExists*/CASE_0_11: + do { + if($nonterminal_has_name_and_arity($switchVal15, "iterStar", 1)){ + IValue $arg0_41 = (IValue)($nonterminal_get_arg(((ITree)((ITree)($switchVal15))), ((IInteger)$constants.get(3)/*0*/).intValue())); + if($isComparable($arg0_41.getType(), M_lang_rascal_syntax_Rascal.NT_Sym)){ + ITree s_15 = ((ITree)($arg0_41)); + return ((IConstructor)($RVF.constructor(M_ParseTree.Symbol_iter_star_Symbol, new IValue[]{((IConstructor)($me.sym2symbol(((ITree)($arg0_41)))))}))); + + } + + } + + } while(false); + + } + if($isSubtypeOf($switchVal15.getType(),M_lang_rascal_syntax_Rascal.NT_Sym)){ + /*muExists*/CASE_0_12: + do { + if($nonterminal_has_name_and_arity($switchVal15, "iter", 1)){ + IValue $arg0_42 = (IValue)($nonterminal_get_arg(((ITree)((ITree)($switchVal15))), ((IInteger)$constants.get(3)/*0*/).intValue())); + if($isComparable($arg0_42.getType(), M_lang_rascal_syntax_Rascal.NT_Sym)){ + ITree s_16 = ((ITree)($arg0_42)); + return ((IConstructor)($RVF.constructor(M_ParseTree.Symbol_iter_Symbol, new IValue[]{((IConstructor)($me.sym2symbol(((ITree)($arg0_42)))))}))); + + } + + } + + } while(false); + + } + if($isSubtypeOf($switchVal15.getType(),M_lang_rascal_syntax_Rascal.NT_Sym)){ + /*muExists*/CASE_0_13: + do { + if($nonterminal_has_name_and_arity($switchVal15, "iterStarSep", 2)){ + IValue $arg0_44 = (IValue)($nonterminal_get_arg(((ITree)((ITree)($switchVal15))), ((IInteger)$constants.get(3)/*0*/).intValue())); + if($isComparable($arg0_44.getType(), M_lang_rascal_syntax_Rascal.NT_Sym)){ + ITree s_17 = ((ITree)($arg0_44)); + IValue $arg1_43 = (IValue)($nonterminal_get_arg(((ITree)((ITree)($switchVal15))), ((IInteger)$constants.get(4)/*1*/).intValue())); + if($isComparable($arg1_43.getType(), M_lang_rascal_syntax_Rascal.NT_Sym)){ + ITree sep_18 = ((ITree)($arg1_43)); + return ((IConstructor)($RVF.constructor(M_ParseTree.Symbol_iter_star_seps_Symbol_list_Symbol, new IValue[]{((IConstructor)($me.sym2symbol(((ITree)($arg0_44))))), ((IList)($RVF.list(((IConstructor)($me.sym2symbol(((ITree)($arg1_43))))))))}))); + + } + + } + + } + + } while(false); + + } + if($isSubtypeOf($switchVal15.getType(),M_lang_rascal_syntax_Rascal.NT_Sym)){ + /*muExists*/CASE_0_14: + do { + if($nonterminal_has_name_and_arity($switchVal15, "iterSep", 2)){ + IValue $arg0_46 = (IValue)($nonterminal_get_arg(((ITree)((ITree)($switchVal15))), ((IInteger)$constants.get(3)/*0*/).intValue())); + if($isComparable($arg0_46.getType(), M_lang_rascal_syntax_Rascal.NT_Sym)){ + ITree s_19 = ((ITree)($arg0_46)); + IValue $arg1_45 = (IValue)($nonterminal_get_arg(((ITree)((ITree)($switchVal15))), ((IInteger)$constants.get(4)/*1*/).intValue())); + if($isComparable($arg1_45.getType(), M_lang_rascal_syntax_Rascal.NT_Sym)){ + ITree sep_20 = ((ITree)($arg1_45)); + return ((IConstructor)($RVF.constructor(M_ParseTree.Symbol_iter_seps_Symbol_list_Symbol, new IValue[]{((IConstructor)($me.sym2symbol(((ITree)($arg0_46))))), ((IList)($RVF.list(((IConstructor)($me.sym2symbol(((ITree)($arg1_45))))))))}))); + + } + + } + + } + + } while(false); + + } + if($isSubtypeOf($switchVal15.getType(),M_lang_rascal_syntax_Rascal.NT_Sym)){ + /*muExists*/CASE_0_15: + do { + if($nonterminal_has_name_and_arity($switchVal15, "sequence", 2)){ + IValue $arg0_54 = (IValue)($nonterminal_get_arg(((ITree)((ITree)($switchVal15))), ((IInteger)$constants.get(3)/*0*/).intValue())); + if($isComparable($arg0_54.getType(), M_lang_rascal_syntax_Rascal.NT_Sym)){ + ITree first_21 = ((ITree)($arg0_54)); + IValue $arg1_53 = (IValue)($nonterminal_get_arg(((ITree)((ITree)($switchVal15))), ((IInteger)$constants.get(4)/*1*/).intValue())); + if($isComparable($arg1_53.getType(), $T15)){ + if(org.rascalmpl.values.parsetrees.TreeAdapter.getArgs((ITree)$arg1_53).length() >= 1){ + ITree sequence_22 = ((ITree)($arg1_53)); + final IListWriter $listwriter47 = (IListWriter)$RVF.listWriter(); + final ITree $exp50 = ((ITree)($arg1_53)); + final int $last51 = (int)((ITree)($exp50)).getArgs().length() - 1; + $LCOMP48_GEN2764: + + for(int $i52 = 0; $i52 <= $last51; $i52 += 2){ + final ITree $elem49 = ((ITree)($iter_subscript($exp50, $i52))); + ITree elem_23 = ((ITree)($elem49)); + $listwriter47.append($me.sym2symbol(((ITree)elem_23))); + + } + + return ((IConstructor)($me.seq(((IList)($alist_add_alist(((IList)($RVF.list(((IConstructor)($me.sym2symbol(((ITree)($arg0_54)))))))),((IList)($listwriter47.done())))))))); + + } + + } + + } + + } + + } while(false); + + } + if($isSubtypeOf($switchVal15.getType(),M_lang_rascal_syntax_Rascal.NT_Sym)){ + /*muExists*/CASE_0_16: + do { + if($nonterminal_has_name_and_arity($switchVal15, "startOfLine", 1)){ + IValue $arg0_55 = (IValue)($nonterminal_get_arg(((ITree)((ITree)($switchVal15))), ((IInteger)$constants.get(3)/*0*/).intValue())); + if($isComparable($arg0_55.getType(), M_lang_rascal_syntax_Rascal.NT_Sym)){ + ITree s_24 = ((ITree)($arg0_55)); + return ((IConstructor)($me.conditional(((IConstructor)($me.sym2symbol(((ITree)($arg0_55))))), ((ISet)$constants.get(6)/*{\begin-of-line()}*/)))); + + } + + } + + } while(false); + + } + if($isSubtypeOf($switchVal15.getType(),M_lang_rascal_syntax_Rascal.NT_Sym)){ + /*muExists*/CASE_0_17: + do { + if($nonterminal_has_name_and_arity($switchVal15, "endOfLine", 1)){ + IValue $arg0_56 = (IValue)($nonterminal_get_arg(((ITree)((ITree)($switchVal15))), ((IInteger)$constants.get(3)/*0*/).intValue())); + if($isComparable($arg0_56.getType(), M_lang_rascal_syntax_Rascal.NT_Sym)){ + ITree s_25 = ((ITree)($arg0_56)); + return ((IConstructor)($me.conditional(((IConstructor)($me.sym2symbol(((ITree)($arg0_56))))), ((ISet)$constants.get(7)/*{\end-of-line()}*/)))); + + } + + } + + } while(false); + + } + if($isSubtypeOf($switchVal15.getType(),M_lang_rascal_syntax_Rascal.NT_Sym)){ + /*muExists*/CASE_0_18: + do { + if($nonterminal_has_name_and_arity($switchVal15, "column", 2)){ + IValue $arg0_59 = (IValue)($nonterminal_get_arg(((ITree)((ITree)($switchVal15))), ((IInteger)$constants.get(3)/*0*/).intValue())); + if($isComparable($arg0_59.getType(), M_lang_rascal_syntax_Rascal.NT_Sym)){ + ITree s_26 = ((ITree)($arg0_59)); + IValue $arg1_58 = (IValue)($nonterminal_get_arg(((ITree)((ITree)($switchVal15))), ((IInteger)$constants.get(4)/*1*/).intValue())); + if($isComparable($arg1_58.getType(), M_lang_rascal_syntax_Rascal.NT_IntegerLiteral)){ + ITree i_27 = ((ITree)($arg1_58)); + final Template $template57 = (Template)new Template($RVF, ""); + $template57.addVal($arg1_58); + return ((IConstructor)($me.conditional(((IConstructor)($me.sym2symbol(((ITree)($arg0_59))))), ((ISet)($RVF.set(((IConstructor)($RVF.constructor(M_ParseTree.Condition_at_column_int, new IValue[]{((IInteger)(M_String.toInt(((IString)($template57.close())))))}))))))))); + + } + + } + + } + + } while(false); + + } + if($isSubtypeOf($switchVal15.getType(),M_lang_rascal_syntax_Rascal.NT_Sym)){ + /*muExists*/CASE_0_19: + do { + if($nonterminal_has_name_and_arity($switchVal15, "follow", 2)){ + IValue $arg0_61 = (IValue)($nonterminal_get_arg(((ITree)((ITree)($switchVal15))), ((IInteger)$constants.get(3)/*0*/).intValue())); + if($isComparable($arg0_61.getType(), M_lang_rascal_syntax_Rascal.NT_Sym)){ + ITree s_28 = ((ITree)($arg0_61)); + IValue $arg1_60 = (IValue)($nonterminal_get_arg(((ITree)((ITree)($switchVal15))), ((IInteger)$constants.get(4)/*1*/).intValue())); + if($isComparable($arg1_60.getType(), M_lang_rascal_syntax_Rascal.NT_Sym)){ + ITree r_29 = ((ITree)($arg1_60)); + return ((IConstructor)($me.conditional(((IConstructor)($me.sym2symbol(((ITree)($arg0_61))))), ((ISet)($RVF.set(((IConstructor)($RVF.constructor(M_ParseTree.Condition_follow_Symbol, new IValue[]{((IConstructor)($me.sym2symbol(((ITree)($arg1_60)))))}))))))))); + + } + + } + + } + + } while(false); + + } + if($isSubtypeOf($switchVal15.getType(),M_lang_rascal_syntax_Rascal.NT_Sym)){ + /*muExists*/CASE_0_20: + do { + if($nonterminal_has_name_and_arity($switchVal15, "notFollow", 2)){ + IValue $arg0_63 = (IValue)($nonterminal_get_arg(((ITree)((ITree)($switchVal15))), ((IInteger)$constants.get(3)/*0*/).intValue())); + if($isComparable($arg0_63.getType(), M_lang_rascal_syntax_Rascal.NT_Sym)){ + ITree s_30 = ((ITree)($arg0_63)); + IValue $arg1_62 = (IValue)($nonterminal_get_arg(((ITree)((ITree)($switchVal15))), ((IInteger)$constants.get(4)/*1*/).intValue())); + if($isComparable($arg1_62.getType(), M_lang_rascal_syntax_Rascal.NT_Sym)){ + ITree r_31 = ((ITree)($arg1_62)); + return ((IConstructor)($me.conditional(((IConstructor)($me.sym2symbol(((ITree)($arg0_63))))), ((ISet)($RVF.set(((IConstructor)($RVF.constructor(M_ParseTree.Condition_not_follow_Symbol, new IValue[]{((IConstructor)($me.sym2symbol(((ITree)($arg1_62)))))}))))))))); + + } + + } + + } + + } while(false); + + } + if($isSubtypeOf($switchVal15.getType(),M_lang_rascal_syntax_Rascal.NT_Sym)){ + /*muExists*/CASE_0_21: + do { + if($nonterminal_has_name_and_arity($switchVal15, "precede", 2)){ + IValue $arg0_65 = (IValue)($nonterminal_get_arg(((ITree)((ITree)($switchVal15))), ((IInteger)$constants.get(3)/*0*/).intValue())); + if($isComparable($arg0_65.getType(), M_lang_rascal_syntax_Rascal.NT_Sym)){ + ITree s_32 = ((ITree)($arg0_65)); + IValue $arg1_64 = (IValue)($nonterminal_get_arg(((ITree)((ITree)($switchVal15))), ((IInteger)$constants.get(4)/*1*/).intValue())); + if($isComparable($arg1_64.getType(), M_lang_rascal_syntax_Rascal.NT_Sym)){ + ITree r_33 = ((ITree)($arg1_64)); + return ((IConstructor)($me.conditional(((IConstructor)($me.sym2symbol(((ITree)($arg1_64))))), ((ISet)($RVF.set(((IConstructor)($RVF.constructor(M_ParseTree.Condition_precede_Symbol, new IValue[]{((IConstructor)($me.sym2symbol(((ITree)($arg0_65)))))}))))))))); + + } + + } + + } + + } while(false); + + } + if($isSubtypeOf($switchVal15.getType(),M_lang_rascal_syntax_Rascal.NT_Sym)){ + /*muExists*/CASE_0_22: + do { + if($nonterminal_has_name_and_arity($switchVal15, "notPrecede", 2)){ + IValue $arg0_67 = (IValue)($nonterminal_get_arg(((ITree)((ITree)($switchVal15))), ((IInteger)$constants.get(3)/*0*/).intValue())); + if($isComparable($arg0_67.getType(), M_lang_rascal_syntax_Rascal.NT_Sym)){ + ITree s_34 = ((ITree)($arg0_67)); + IValue $arg1_66 = (IValue)($nonterminal_get_arg(((ITree)((ITree)($switchVal15))), ((IInteger)$constants.get(4)/*1*/).intValue())); + if($isComparable($arg1_66.getType(), M_lang_rascal_syntax_Rascal.NT_Sym)){ + ITree r_35 = ((ITree)($arg1_66)); + return ((IConstructor)($me.conditional(((IConstructor)($me.sym2symbol(((ITree)($arg1_66))))), ((ISet)($RVF.set(((IConstructor)($RVF.constructor(M_ParseTree.Condition_not_precede_Symbol, new IValue[]{((IConstructor)($me.sym2symbol(((ITree)($arg0_67)))))}))))))))); + + } + + } + + } + + } while(false); + + } + if($isSubtypeOf($switchVal15.getType(),M_lang_rascal_syntax_Rascal.NT_Sym)){ + /*muExists*/CASE_0_23: + do { + if($nonterminal_has_name_and_arity($switchVal15, "unequal", 2)){ + IValue $arg0_69 = (IValue)($nonterminal_get_arg(((ITree)((ITree)($switchVal15))), ((IInteger)$constants.get(3)/*0*/).intValue())); + if($isComparable($arg0_69.getType(), M_lang_rascal_syntax_Rascal.NT_Sym)){ + ITree s_36 = ((ITree)($arg0_69)); + IValue $arg1_68 = (IValue)($nonterminal_get_arg(((ITree)((ITree)($switchVal15))), ((IInteger)$constants.get(4)/*1*/).intValue())); + if($isComparable($arg1_68.getType(), M_lang_rascal_syntax_Rascal.NT_Sym)){ + ITree r_37 = ((ITree)($arg1_68)); + return ((IConstructor)($me.conditional(((IConstructor)($me.sym2symbol(((ITree)($arg0_69))))), ((ISet)($RVF.set(((IConstructor)($RVF.constructor(M_ParseTree.Condition_delete_Symbol, new IValue[]{((IConstructor)($me.sym2symbol(((ITree)($arg1_68)))))}))))))))); + + } + + } + + } + + } while(false); + + } + if($isSubtypeOf($switchVal15.getType(),M_lang_rascal_syntax_Rascal.NT_Sym)){ + /*muExists*/CASE_0_24: + do { + if($nonterminal_has_name_and_arity($switchVal15, "except", 2)){ + IValue $arg0_72 = (IValue)($nonterminal_get_arg(((ITree)((ITree)($switchVal15))), ((IInteger)$constants.get(3)/*0*/).intValue())); + if($isComparable($arg0_72.getType(), M_lang_rascal_syntax_Rascal.NT_Sym)){ + ITree s_38 = ((ITree)($arg0_72)); + IValue $arg1_71 = (IValue)($nonterminal_get_arg(((ITree)((ITree)($switchVal15))), ((IInteger)$constants.get(4)/*1*/).intValue())); + if($isComparable($arg1_71.getType(), M_lang_rascal_syntax_Rascal.NT_NonterminalLabel)){ + ITree n_39 = ((ITree)($arg1_71)); + final Template $template70 = (Template)new Template($RVF, ""); + $template70.addVal($arg1_71); + return ((IConstructor)($me.conditional(((IConstructor)($me.sym2symbol(((ITree)($arg0_72))))), ((ISet)($RVF.set(((IConstructor)($RVF.constructor(M_ParseTree.Condition_except_str, new IValue[]{((IString)($template70.close()))}))))))))); + + } + + } + + } + + } while(false); + + } + final Template $template16 = (Template)new Template($RVF, "sym2symbol, missed a case "); + $template16.beginIndent(" "); + $template16.addVal(sym_0); + $template16.endIndent(" "); + throw new Throw($template16.close()); + } + + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/lang/rascal/grammar/definition/Symbols.rsc|(3768,89,<95,0>,<97,1>) + public IList lang_rascal_grammar_definition_Symbols_args2symbols$df41e76e71525e83(ITree args_0){ + + + final IListWriter $listwriter73 = (IListWriter)$RVF.listWriter(); + final ITree $exp76 = ((ITree)args_0); + final int $last77 = (int)((ITree)($exp76)).getArgs().length() - 1; + $LCOMP74_GEN3840: + + for(int $i78 = 0; $i78 <= $last77; $i78 += 2){ + final ITree $elem75 = ((ITree)($iter_subscript($exp76, $i78))); + ITree s_1 = ((ITree)($elem75)); + $listwriter73.append($me.sym2symbol(((ITree)s_1))); + + } + + return ((IList)($listwriter73.done())); + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/lang/rascal/grammar/definition/Symbols.rsc|(3859,98,<99,0>,<101,1>) + public IList lang_rascal_grammar_definition_Symbols_separgs2symbols$b28c720b0d5f3bbd(ITree args_0){ + + + final IListWriter $listwriter79 = (IListWriter)$RVF.listWriter(); + final ITree $exp82 = ((ITree)args_0); + final int $last83 = (int)((ITree)($exp82)).getArgs().length() - 1; + $LCOMP80_GEN3940: + + for(int $i84 = 0; $i84 <= $last83; $i84 += 4){ + final ITree $elem81 = ((ITree)($iter_subscript($exp82, $i84))); + ITree s_1 = ((ITree)($elem81)); + $listwriter79.append($me.sym2symbol(((ITree)s_1))); + + } + + return ((IList)($listwriter79.done())); + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/lang/rascal/grammar/definition/Symbols.rsc|(4003,83,<104,0>,<104,83>) + public IConstructor lang_rascal_grammar_definition_Symbols_seq$5dde90ea795fac79(IList $0){ + + + /*muExists*/seq: + do { + final IList $subject85 = ((IList)$0); + int $subject85_cursor = 0; + if($isSubtypeOf($subject85.getType(),$T10)){ + final int $subject85_len = (int)((IList)($subject85)).length(); + if($subject85_len >= 1){ + final int $a_089_start = (int)$subject85_cursor; + seq_LIST_MVARa: + + for(int $a_089_len = 0; $a_089_len <= $subject85_len - $a_089_start - 1; $a_089_len += 1){ + IList a_0 = ((IList)($subject85.sublist($a_089_start, $a_089_len))); + $subject85_cursor = $a_089_start + $a_089_len; + final IConstructor $subject87 = ((IConstructor)($alist_subscript_int(((IList)($subject85)),$subject85_cursor))); + if($has_type_and_arity($subject87, M_ParseTree.Symbol_seq_list_Symbol, 1)){ + IValue $arg0_88 = (IValue)($aadt_subscript_int(((IConstructor)($subject87)),0)); + if($isComparable($arg0_88.getType(), $T10)){ + if(true){ + IList b_1 = null; + $subject85_cursor += 1; + final int $c_286_start = (int)$subject85_cursor; + seq_LIST_MVARa_CONS_seq_MVARc: + + for(int $c_286_len = 0; $c_286_len <= $subject85_len - $c_286_start - 0; $c_286_len += 1){ + IList c_2 = ((IList)($subject85.sublist($c_286_start, $c_286_len))); + $subject85_cursor = $c_286_start + $c_286_len; + if($subject85_cursor == $subject85_len){ + return ((IConstructor)($me.seq(((IList)($alist_add_alist(((IList)($alist_add_alist(((IList)a_0),((IList)($arg0_88))))),((IList)c_2))))))); + + } else { + continue seq_LIST_MVARa_CONS_seq_MVARc;/*list match1*/ + } + } + continue seq_LIST_MVARa;/*computeFail*/ + + } else { + continue seq_LIST_MVARa;/*computeFail*/ + } + } else { + continue seq_LIST_MVARa;/*computeFail*/ + } + } else { + continue seq_LIST_MVARa;/*computeFail*/ + } + } + return null; + + } else { + return null; + } + } else { + return null; + } + } while(false); + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/lang/rascal/grammar/definition/Symbols.rsc|(4088,67,<106,0>,<106,67>) + public IConstructor lang_rascal_grammar_definition_Symbols_alt$01fd93bf17a1bf85(ISet $0){ + + + /*muExists*/alt: + do { + ISet $subject90 = (ISet)($0); + alt_SET_MVARa: + for(IValue $elem97_for : new SubSetGenerator(((ISet)($subject90)))){ + ISet $elem97 = (ISet) $elem97_for; + ISet a_0 = ((ISet)($elem97)); + final ISet $subject92 = ((ISet)(((ISet)($subject90)).subtract(((ISet)($elem97))))); + alt_SET_MVARa_CONS_alt$_DFLT_SET_ELM95: + for(IValue $elem94_for : ((ISet)($subject92))){ + IConstructor $elem94 = (IConstructor) $elem94_for; + if($has_type_and_arity($elem94, M_ParseTree.Symbol_alt_set_Symbol, 1)){ + IValue $arg0_96 = (IValue)($aadt_subscript_int(((IConstructor)($elem94)),0)); + if($isComparable($arg0_96.getType(), $T5)){ + if(true){ + ISet b_1 = null; + final ISet $subject93 = ((ISet)(((ISet)($subject92)).delete(((IConstructor)($elem94))))); + if(((ISet)($subject93)).size() == 0){ + return ((IConstructor)($me.alt(((ISet)($aset_add_aset(((ISet)a_0),((ISet)($arg0_96)))))))); + + } else { + continue alt_SET_MVARa_CONS_alt$_DFLT_SET_ELM95;/*redirected alt_SET_MVARa_CONS_alt to alt_SET_MVARa_CONS_alt$_DFLT_SET_ELM95; set pat3*/ + } + } else { + continue alt_SET_MVARa_CONS_alt$_DFLT_SET_ELM95;/*default set elem*/ + } + } else { + continue alt_SET_MVARa_CONS_alt$_DFLT_SET_ELM95;/*default set elem*/ + } + } else { + continue alt_SET_MVARa_CONS_alt$_DFLT_SET_ELM95;/*default set elem*/ + } + } + continue alt_SET_MVARa;/*set pat4*/ + + } + return null; + + } while(false); + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/lang/rascal/grammar/definition/Symbols.rsc|(4189,123,<110,0>,<111,31>) + public IConstructor lang_rascal_grammar_definition_Symbols_conditional$f9ac60504818807f(IConstructor $0, ISet cs2_2){ + + + if($has_type_and_arity($0, M_ParseTree.Symbol_conditional_Symbol_set_Condition, 2)){ + IValue $arg0_99 = (IValue)($aadt_subscript_int(((IConstructor)$0),0)); + if($isComparable($arg0_99.getType(), M_ParseTree.ADT_Symbol)){ + IConstructor s_0 = null; + IValue $arg1_98 = (IValue)($aadt_subscript_int(((IConstructor)$0),1)); + if($isComparable($arg1_98.getType(), $T3)){ + ISet cs1_1 = null; + return ((IConstructor)($me.conditional(((IConstructor)($arg0_99)), ((ISet)($aset_add_aset(((ISet)($arg1_98)),((ISet)cs2_2))))))); + + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/lang/rascal/grammar/definition/Symbols.rsc|(4314,353,<113,0>,<119,1>) + public IConstructor lang_rascal_grammar_definition_Symbols_conditional$a78f69e7726562ef(IConstructor s_0, ISet cs_1){ + + + /*muExists*/IF5: + do { + IF5_GEN4495: + for(IValue $elem101_for : ((ISet)cs_1)){ + IConstructor $elem101 = (IConstructor) $elem101_for; + IConstructor c_2 = null; + if($aadt_has_field(((IConstructor)($elem101)),"symbol")){ + if($is(((IConstructor)(((IConstructor)($aadt_get_field(((IConstructor)($elem101)), "symbol"))))),((IString)$constants.get(0)/*"conditional"*/))){ + final ISetWriter $writer100 = (ISetWriter)$RVF.setWriter(); + ; + $writer100.insert(((IConstructor)($aadt_field_update("symbol", ((IConstructor)($aadt_get_field(((IConstructor)(((IConstructor)($aadt_get_field(((IConstructor)($elem101)), "symbol"))))), "symbol"))), ((IConstructor)($elem101)))))); + $setwriter_splice($writer100,((ISet)($aadt_get_field(((IConstructor)(((IConstructor)($aadt_get_field(((IConstructor)($elem101)), "symbol"))))), "conditions")))); + $setwriter_splice($writer100,((ISet)cs_1).subtract(((ISet)($RVF.set(((IConstructor)($elem101))))))); + return ((IConstructor)($me.conditional(((IConstructor)s_0), ((ISet)($writer100.done()))))); + + } else { + continue IF5_GEN4495; + } + } else { + continue IF5_GEN4495; + } + } + + + } while(false); + return null; + } + + + public static void main(String[] args) { + throw new RuntimeException("No function `main` found in Rascal module `lang::rascal::grammar::definition::Symbols`"); + } +} \ No newline at end of file diff --git a/src/rascal/lang/rascal/grammar/definition/$Symbols.tpl b/src/rascal/lang/rascal/grammar/definition/$Symbols.tpl new file mode 100644 index 00000000000..cde1f91192a Binary files /dev/null and b/src/rascal/lang/rascal/grammar/definition/$Symbols.tpl differ diff --git a/src/rascal/lang/rascal/grammar/definition/$Symbols_$I.java b/src/rascal/lang/rascal/grammar/definition/$Symbols_$I.java new file mode 100644 index 00000000000..7a26ca5383c --- /dev/null +++ b/src/rascal/lang/rascal/grammar/definition/$Symbols_$I.java @@ -0,0 +1,17 @@ +package rascal.lang.rascal.grammar.definition; +import io.usethesource.vallang.*; +import org.rascalmpl.runtime.function.*; + +@SuppressWarnings("unused") +public interface $Symbols_$I { + IValue alt(IValue $0); + IValue args2symbols(IValue $0); + IValue conditional(IValue $0, IValue $1); + IValue delabel(IValue $0); + IValue match(IValue $0, IValue $1); + IValue separgs2symbols(IValue $0); + IValue seq(IValue $0); + IValue strip(IValue $0); + IValue striprec(IValue $0); + IValue sym2symbol(IValue $0); +} \ No newline at end of file diff --git a/src/rascal/lang/rascal/grammar/tests/$ParserGeneratorTests.constants b/src/rascal/lang/rascal/grammar/tests/$ParserGeneratorTests.constants new file mode 100644 index 00000000000..86592609c06 Binary files /dev/null and b/src/rascal/lang/rascal/grammar/tests/$ParserGeneratorTests.constants differ diff --git a/src/rascal/lang/rascal/grammar/tests/$ParserGeneratorTests.java b/src/rascal/lang/rascal/grammar/tests/$ParserGeneratorTests.java new file mode 100644 index 00000000000..33fc44b517d --- /dev/null +++ b/src/rascal/lang/rascal/grammar/tests/$ParserGeneratorTests.java @@ -0,0 +1,1446 @@ +package rascal.lang.rascal.grammar.tests; +import java.io.PrintWriter; +import java.io.StringWriter; +import java.io.InputStreamReader; +import java.io.PrintWriter; +import java.util.*; +import java.util.regex.Matcher; +import io.usethesource.vallang.*; +import io.usethesource.vallang.type.*; +import org.rascalmpl.runtime.*; +import org.rascalmpl.runtime.RascalExecutionContext; +import org.rascalmpl.runtime.function.*; +import org.rascalmpl.runtime.traverse.*; +import org.rascalmpl.runtime.utils.*; +import org.rascalmpl.exceptions.RuntimeExceptionFactory; +import org.rascalmpl.exceptions.Throw; +import org.rascalmpl.runtime.RascalExecutionContext; +import org.rascalmpl.interpreter.control_exceptions.Filtered; +import org.rascalmpl.types.NonTerminalType; +import org.rascalmpl.types.RascalTypeFactory; +import org.rascalmpl.util.ExpiringFunctionResultCache; +import org.rascalmpl.values.RascalValueFactory; +import org.rascalmpl.values.ValueFactoryFactory; +import org.rascalmpl.values.parsetrees.ITree; +import org.rascalmpl.values.parsetrees.TreeAdapter; + + + +@SuppressWarnings({"unused","unchecked","deprecation"}) +public class $ParserGeneratorTests + extends + org.rascalmpl.runtime.$RascalModule + implements + rascal.lang.rascal.grammar.tests.$ParserGeneratorTests_$I { + + private final $ParserGeneratorTests_$I $me; + private final IList $constants; + + + public final rascal.lang.rascal.grammar.$ParserGenerator M_lang_rascal_grammar_ParserGenerator; + public final rascal.lang.rascal.grammar.definition.$Parameters M_lang_rascal_grammar_definition_Parameters; + public final rascal.$Exception M_Exception; + public final rascal.lang.rascal.grammar.tests.$TestGrammars M_lang_rascal_grammar_tests_TestGrammars; + public final rascal.$Type M_Type; + public final rascal.$List M_List; + public final rascal.$IO M_IO; + public final rascal.lang.rascal.grammar.definition.$Literals M_lang_rascal_grammar_definition_Literals; + public final rascal.$Grammar M_Grammar; + public final rascal.$Message M_Message; + public final rascal.$String M_String; + public final rascal.$ParseTree M_ParseTree; + + + + public ISourceLocation ParserBaseLoc; + public final io.usethesource.vallang.type.Type $T1; /*avalue()*/ + public final io.usethesource.vallang.type.Type $T2; /*aparameter("T",avalue(),closed=false)*/ + public final io.usethesource.vallang.type.Type $T6; /*aparameter("A",avalue(),closed=false)*/ + public final io.usethesource.vallang.type.Type $T3; /*astr()*/ + public final io.usethesource.vallang.type.Type ADT_FunctionType; /*aadt("FunctionType",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_FunctionType; /*aadt("FunctionType",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Visibility; /*aadt("Visibility",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Visibility; /*aadt("Visibility",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_PostProtocolChars; /*aadt("PostProtocolChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_PostProtocolChars; /*aadt("PostProtocolChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Strategy; /*aadt("Strategy",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Strategy; /*aadt("Strategy",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Attr; /*aadt("Attr",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_MidStringChars; /*aadt("MidStringChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_MidStringChars; /*aadt("MidStringChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Replacement; /*aadt("Replacement",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Replacement; /*aadt("Replacement",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Tree; /*aadt("Tree",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type $T4; /*aparameter("T",aadt("Tree",[],dataSyntax()),closed=true)*/ + public final io.usethesource.vallang.type.Type ADT_KeywordArguments_1; /*aadt("KeywordArguments",[aparameter("T",aadt("Tree",[],dataSyntax()),closed=true)],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_KeywordArguments_1; /*aadt("KeywordArguments",[aparameter("T",aadt("Tree",[],dataSyntax()),closed=true)],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_ProtocolChars; /*aadt("ProtocolChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_ProtocolChars; /*aadt("ProtocolChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_LocationChangeType; /*aadt("LocationChangeType",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_IOCapability; /*aadt("IOCapability",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Name; /*aadt("Name",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Name; /*aadt("Name",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_TagString; /*aadt("TagString",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_TagString; /*aadt("TagString",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Concrete; /*aadt("Concrete",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Concrete; /*aadt("Concrete",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Production; /*aadt("Production",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Maybe_Production; /*aadt("Maybe",[aadt("Production",[],dataSyntax())],dataSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Range; /*aadt("Range",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Range; /*aadt("Range",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_LAYOUT; /*aadt("LAYOUT",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_LAYOUT; /*aadt("LAYOUT",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Pattern; /*aadt("Pattern",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Pattern; /*aadt("Pattern",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Mapping_Pattern; /*aadt("Mapping",[aadt("Pattern",[],contextFreeSyntax())],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Mapping_Pattern; /*aadt("Mapping",[aadt("Pattern",[],contextFreeSyntax())],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Item; /*aadt("Item",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_RationalLiteral; /*aadt("RationalLiteral",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_RationalLiteral; /*aadt("RationalLiteral",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_RegExpLiteral; /*aadt("RegExpLiteral",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_RegExpLiteral; /*aadt("RegExpLiteral",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Declarator; /*aadt("Declarator",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Declarator; /*aadt("Declarator",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_GrammarModule; /*aadt("GrammarModule",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_ModuleParameters; /*aadt("ModuleParameters",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_ModuleParameters; /*aadt("ModuleParameters",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type $T5; /*aparameter("T",aadt("Tree",[],dataSyntax()),closed=false)*/ + public final io.usethesource.vallang.type.Type ADT_SyntaxDefinition; /*aadt("SyntaxDefinition",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_SyntaxDefinition; /*aadt("SyntaxDefinition",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_DatePart; /*aadt("DatePart",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_DatePart; /*aadt("DatePart",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Output; /*aadt("Output",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Output; /*aadt("Output",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_IntegerLiteral; /*aadt("IntegerLiteral",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_IntegerLiteral; /*aadt("IntegerLiteral",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Case; /*aadt("Case",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Case; /*aadt("Case",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_ImportedModule; /*aadt("ImportedModule",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_ImportedModule; /*aadt("ImportedModule",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_BooleanLiteral; /*aadt("BooleanLiteral",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_BooleanLiteral; /*aadt("BooleanLiteral",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Expression; /*aadt("Expression",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Expression; /*aadt("Expression",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Mapping_Expression; /*aadt("Mapping",[aadt("Expression",[],contextFreeSyntax())],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Mapping_Expression; /*aadt("Mapping",[aadt("Expression",[],contextFreeSyntax())],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_LocalVariableDeclaration; /*aadt("LocalVariableDeclaration",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_LocalVariableDeclaration; /*aadt("LocalVariableDeclaration",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_KeywordArguments_Expression; /*aadt("KeywordArguments",[aadt("Expression",[],contextFreeSyntax())],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_KeywordArguments_Expression; /*aadt("KeywordArguments",[aadt("Expression",[],contextFreeSyntax())],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Target; /*aadt("Target",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Target; /*aadt("Target",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_TimePartNoTZ; /*aadt("TimePartNoTZ",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_TimePartNoTZ; /*aadt("TimePartNoTZ",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Mapping_1; /*aadt("Mapping",[aparameter("T",aadt("Tree",[],dataSyntax()),closed=true)],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Mapping_1; /*aadt("Mapping",[aparameter("T",aadt("Tree",[],dataSyntax()),closed=true)],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Variable; /*aadt("Variable",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Variable; /*aadt("Variable",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_KeywordFormals; /*aadt("KeywordFormals",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_KeywordFormals; /*aadt("KeywordFormals",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_DataTarget; /*aadt("DataTarget",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_DataTarget; /*aadt("DataTarget",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Renaming; /*aadt("Renaming",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Renaming; /*aadt("Renaming",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Catch; /*aadt("Catch",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Catch; /*aadt("Catch",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Renamings; /*aadt("Renamings",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Renamings; /*aadt("Renamings",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_KeywordFormal; /*aadt("KeywordFormal",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_KeywordFormal; /*aadt("KeywordFormal",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_OptionalExpression; /*aadt("OptionalExpression",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_OptionalExpression; /*aadt("OptionalExpression",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_GrammarDefinition; /*aadt("GrammarDefinition",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Field; /*aadt("Field",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Field; /*aadt("Field",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_FunctionBody; /*aadt("FunctionBody",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_FunctionBody; /*aadt("FunctionBody",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_LocationLiteral; /*aadt("LocationLiteral",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_LocationLiteral; /*aadt("LocationLiteral",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Tag; /*aadt("Tag",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Tag; /*aadt("Tag",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Type; /*aadt("Type",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Type; /*aadt("Type",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_HexIntegerLiteral; /*aadt("HexIntegerLiteral",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_HexIntegerLiteral; /*aadt("HexIntegerLiteral",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_PostStringChars; /*aadt("PostStringChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_PostStringChars; /*aadt("PostStringChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_TimeZonePart; /*aadt("TimeZonePart",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_TimeZonePart; /*aadt("TimeZonePart",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Declaration; /*aadt("Declaration",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Declaration; /*aadt("Declaration",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_ShellCommand; /*aadt("ShellCommand",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_ShellCommand; /*aadt("ShellCommand",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_StringLiteral; /*aadt("StringLiteral",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_StringLiteral; /*aadt("StringLiteral",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_PreStringChars; /*aadt("PreStringChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_PreStringChars; /*aadt("PreStringChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Maybe_1; /*aadt("Maybe",[aparameter("A",avalue(),closed=false)],dataSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_KeywordArguments_Pattern; /*aadt("KeywordArguments",[aadt("Pattern",[],contextFreeSyntax())],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_KeywordArguments_Pattern; /*aadt("KeywordArguments",[aadt("Pattern",[],contextFreeSyntax())],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type $T0; /*alist(aparameter("T",avalue(),closed=false))*/ + public final io.usethesource.vallang.type.Type ADT_TypeArg; /*aadt("TypeArg",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_TypeArg; /*aadt("TypeArg",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_NonterminalLabel; /*aadt("NonterminalLabel",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_NonterminalLabel; /*aadt("NonterminalLabel",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Bound; /*aadt("Bound",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Bound; /*aadt("Bound",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Nonterminal; /*aadt("Nonterminal",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Nonterminal; /*aadt("Nonterminal",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_RegExp; /*aadt("RegExp",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_RegExp; /*aadt("RegExp",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_PathPart; /*aadt("PathPart",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_PathPart; /*aadt("PathPart",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Class; /*aadt("Class",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Class; /*aadt("Class",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_KeywordArgument_1; /*aadt("KeywordArgument",[aparameter("T",aadt("Tree",[],dataSyntax()),closed=true)],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_KeywordArgument_1; /*aadt("KeywordArgument",[aparameter("T",aadt("Tree",[],dataSyntax()),closed=true)],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Associativity; /*aadt("Associativity",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Signature; /*aadt("Signature",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Signature; /*aadt("Signature",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_ModuleActuals; /*aadt("ModuleActuals",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_ModuleActuals; /*aadt("ModuleActuals",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_URLChars; /*aadt("URLChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_URLChars; /*aadt("URLChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Symbol; /*aadt("Symbol",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Maybe_Symbol; /*aadt("Maybe",[aadt("Symbol",[],dataSyntax())],dataSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Tags; /*aadt("Tags",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Tags; /*aadt("Tags",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Start; /*aadt("Start",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Start; /*aadt("Start",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Body; /*aadt("Body",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Body; /*aadt("Body",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_PrePathChars; /*aadt("PrePathChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_PrePathChars; /*aadt("PrePathChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_StringConstant; /*aadt("StringConstant",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_StringConstant; /*aadt("StringConstant",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_OptionalComma; /*aadt("OptionalComma",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_OptionalComma; /*aadt("OptionalComma",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_StringTail; /*aadt("StringTail",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_StringTail; /*aadt("StringTail",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Backslash; /*aadt("Backslash",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Backslash; /*aadt("Backslash",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Char; /*aadt("Char",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Char; /*aadt("Char",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_DataTypeSelector; /*aadt("DataTypeSelector",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_DataTypeSelector; /*aadt("DataTypeSelector",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_CaseInsensitiveStringConstant; /*aadt("CaseInsensitiveStringConstant",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_CaseInsensitiveStringConstant; /*aadt("CaseInsensitiveStringConstant",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Exception; /*aadt("Exception",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Assignment; /*aadt("Assignment",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Assignment; /*aadt("Assignment",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_PatternWithAction; /*aadt("PatternWithAction",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_PatternWithAction; /*aadt("PatternWithAction",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_PostPathChars; /*aadt("PostPathChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_PostPathChars; /*aadt("PostPathChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Module; /*aadt("Module",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Module; /*aadt("Module",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_TypeVar; /*aadt("TypeVar",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_TypeVar; /*aadt("TypeVar",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_FunctionDeclaration; /*aadt("FunctionDeclaration",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_FunctionDeclaration; /*aadt("FunctionDeclaration",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_JustDate; /*aadt("JustDate",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_JustDate; /*aadt("JustDate",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Header; /*aadt("Header",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Header; /*aadt("Header",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_LocationType; /*aadt("LocationType",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_UserType; /*aadt("UserType",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_UserType; /*aadt("UserType",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_CharRange; /*aadt("CharRange",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Variant; /*aadt("Variant",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Variant; /*aadt("Variant",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Comprehension; /*aadt("Comprehension",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Comprehension; /*aadt("Comprehension",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Import; /*aadt("Import",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Import; /*aadt("Import",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_TreeSearchResult_1; /*aadt("TreeSearchResult",[aparameter("T",aadt("Tree",[],dataSyntax()),closed=true)],dataSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_LAYOUTLIST; /*aadt("LAYOUTLIST",[],layoutSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_ConcreteHole; /*aadt("ConcreteHole",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_ConcreteHole; /*aadt("ConcreteHole",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Grammar; /*aadt("Grammar",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Message; /*aadt("Message",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Sym; /*aadt("Sym",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Sym; /*aadt("Sym",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Maybe_Associativity; /*aadt("Maybe",[aadt("Associativity",[],dataSyntax())],dataSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_StringMiddle; /*aadt("StringMiddle",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_StringMiddle; /*aadt("StringMiddle",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_DateAndTime; /*aadt("DateAndTime",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_DateAndTime; /*aadt("DateAndTime",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_RealLiteral; /*aadt("RealLiteral",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_RealLiteral; /*aadt("RealLiteral",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Formals; /*aadt("Formals",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Formals; /*aadt("Formals",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_FunctionModifiers; /*aadt("FunctionModifiers",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_FunctionModifiers; /*aadt("FunctionModifiers",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_QualifiedName; /*aadt("QualifiedName",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_QualifiedName; /*aadt("QualifiedName",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_MidPathChars; /*aadt("MidPathChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_MidPathChars; /*aadt("MidPathChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Statement; /*aadt("Statement",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Statement; /*aadt("Statement",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_MidProtocolChars; /*aadt("MidProtocolChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_MidProtocolChars; /*aadt("MidProtocolChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_RascalKeywords; /*aadt("RascalKeywords",[],keywordSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Parameters; /*aadt("Parameters",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Parameters; /*aadt("Parameters",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_PreProtocolChars; /*aadt("PreProtocolChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_PreProtocolChars; /*aadt("PreProtocolChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_PathTail; /*aadt("PathTail",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_PathTail; /*aadt("PathTail",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_StringTemplate; /*aadt("StringTemplate",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_StringTemplate; /*aadt("StringTemplate",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_OctalIntegerLiteral; /*aadt("OctalIntegerLiteral",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_OctalIntegerLiteral; /*aadt("OctalIntegerLiteral",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_ProtocolPart; /*aadt("ProtocolPart",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_ProtocolPart; /*aadt("ProtocolPart",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_NamedBackslash; /*aadt("NamedBackslash",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_NamedBackslash; /*aadt("NamedBackslash",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Label; /*aadt("Label",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Label; /*aadt("Label",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Kind; /*aadt("Kind",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Kind; /*aadt("Kind",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_RegExpModifier; /*aadt("RegExpModifier",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_RegExpModifier; /*aadt("RegExpModifier",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Prod; /*aadt("Prod",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Prod; /*aadt("Prod",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_LocationChangeEvent; /*aadt("LocationChangeEvent",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_RuntimeException; /*aadt("RuntimeException",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_NamedRegExp; /*aadt("NamedRegExp",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_NamedRegExp; /*aadt("NamedRegExp",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Assoc; /*aadt("Assoc",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Assoc; /*aadt("Assoc",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_DateTimeLiteral; /*aadt("DateTimeLiteral",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_DateTimeLiteral; /*aadt("DateTimeLiteral",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_DecimalIntegerLiteral; /*aadt("DecimalIntegerLiteral",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_DecimalIntegerLiteral; /*aadt("DecimalIntegerLiteral",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_EvalCommand; /*aadt("EvalCommand",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_EvalCommand; /*aadt("EvalCommand",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_StringCharacter; /*aadt("StringCharacter",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_StringCharacter; /*aadt("StringCharacter",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_FunctionModifier; /*aadt("FunctionModifier",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_FunctionModifier; /*aadt("FunctionModifier",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_ProdModifier; /*aadt("ProdModifier",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_ProdModifier; /*aadt("ProdModifier",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_JustTime; /*aadt("JustTime",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_JustTime; /*aadt("JustTime",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_ConcretePart; /*aadt("ConcretePart",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_ConcretePart; /*aadt("ConcretePart",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Literal; /*aadt("Literal",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Literal; /*aadt("Literal",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Toplevel; /*aadt("Toplevel",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Toplevel; /*aadt("Toplevel",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_$default$; /*aadt("$default$",[],layoutSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_PathChars; /*aadt("PathChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_PathChars; /*aadt("PathChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Comment; /*aadt("Comment",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Comment; /*aadt("Comment",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Commands; /*aadt("Commands",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Commands; /*aadt("Commands",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Visit; /*aadt("Visit",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Visit; /*aadt("Visit",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Command; /*aadt("Command",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Command; /*aadt("Command",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_StructuredType; /*aadt("StructuredType",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_StructuredType; /*aadt("StructuredType",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Assignable; /*aadt("Assignable",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Assignable; /*aadt("Assignable",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_UnicodeEscape; /*aadt("UnicodeEscape",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_UnicodeEscape; /*aadt("UnicodeEscape",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_CommonKeywordParameters; /*aadt("CommonKeywordParameters",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_CommonKeywordParameters; /*aadt("CommonKeywordParameters",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_ProtocolTail; /*aadt("ProtocolTail",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_ProtocolTail; /*aadt("ProtocolTail",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_BasicType; /*aadt("BasicType",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_BasicType; /*aadt("BasicType",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Condition; /*aadt("Condition",[],dataSyntax())*/ + + public $ParserGeneratorTests(RascalExecutionContext rex){ + this(rex, null); + } + + public $ParserGeneratorTests(RascalExecutionContext rex, Object extended){ + super(rex); + this.$me = extended == null ? this : ($ParserGeneratorTests_$I)extended; + ModuleStore mstore = rex.getModuleStore(); + mstore.put(rascal.lang.rascal.grammar.tests.$ParserGeneratorTests.class, this); + + mstore.importModule(rascal.lang.rascal.grammar.$ParserGenerator.class, rex, rascal.lang.rascal.grammar.$ParserGenerator::new); + mstore.importModule(rascal.lang.rascal.grammar.definition.$Parameters.class, rex, rascal.lang.rascal.grammar.definition.$Parameters::new); + mstore.importModule(rascal.$Exception.class, rex, rascal.$Exception::new); + mstore.importModule(rascal.lang.rascal.grammar.tests.$TestGrammars.class, rex, rascal.lang.rascal.grammar.tests.$TestGrammars::new); + mstore.importModule(rascal.$Type.class, rex, rascal.$Type::new); + mstore.importModule(rascal.$List.class, rex, rascal.$List::new); + mstore.importModule(rascal.$IO.class, rex, rascal.$IO::new); + mstore.importModule(rascal.lang.rascal.grammar.definition.$Literals.class, rex, rascal.lang.rascal.grammar.definition.$Literals::new); + mstore.importModule(rascal.$Grammar.class, rex, rascal.$Grammar::new); + mstore.importModule(rascal.$Message.class, rex, rascal.$Message::new); + mstore.importModule(rascal.$String.class, rex, rascal.$String::new); + mstore.importModule(rascal.$ParseTree.class, rex, rascal.$ParseTree::new); + + M_lang_rascal_grammar_ParserGenerator = mstore.getModule(rascal.lang.rascal.grammar.$ParserGenerator.class); + M_lang_rascal_grammar_definition_Parameters = mstore.getModule(rascal.lang.rascal.grammar.definition.$Parameters.class); + M_Exception = mstore.getModule(rascal.$Exception.class); + M_lang_rascal_grammar_tests_TestGrammars = mstore.getModule(rascal.lang.rascal.grammar.tests.$TestGrammars.class); + M_Type = mstore.getModule(rascal.$Type.class); + M_List = mstore.getModule(rascal.$List.class); + M_IO = mstore.getModule(rascal.$IO.class); + M_lang_rascal_grammar_definition_Literals = mstore.getModule(rascal.lang.rascal.grammar.definition.$Literals.class); + M_Grammar = mstore.getModule(rascal.$Grammar.class); + M_Message = mstore.getModule(rascal.$Message.class); + M_String = mstore.getModule(rascal.$String.class); + M_ParseTree = mstore.getModule(rascal.$ParseTree.class); + + + + $TS.importStore(M_lang_rascal_grammar_ParserGenerator.$TS); + $TS.importStore(M_lang_rascal_grammar_definition_Parameters.$TS); + $TS.importStore(M_Exception.$TS); + $TS.importStore(M_lang_rascal_grammar_tests_TestGrammars.$TS); + $TS.importStore(M_Type.$TS); + $TS.importStore(M_List.$TS); + $TS.importStore(M_IO.$TS); + $TS.importStore(M_lang_rascal_grammar_definition_Literals.$TS); + $TS.importStore(M_Grammar.$TS); + $TS.importStore(M_Message.$TS); + $TS.importStore(M_String.$TS); + $TS.importStore(M_ParseTree.$TS); + + $constants = readBinaryConstantsFile(this.getClass(), "rascal/lang/rascal/grammar/tests/$ParserGeneratorTests.constants", 109, "83e1694863522113ad5cc7237ded579a"); + NT_FunctionType = $sort("FunctionType"); + ADT_FunctionType = $adt("FunctionType"); + NT_Visibility = $sort("Visibility"); + ADT_Visibility = $adt("Visibility"); + NT_PostProtocolChars = $lex("PostProtocolChars"); + ADT_PostProtocolChars = $adt("PostProtocolChars"); + NT_Strategy = $sort("Strategy"); + ADT_Strategy = $adt("Strategy"); + ADT_Attr = $adt("Attr"); + NT_MidStringChars = $lex("MidStringChars"); + ADT_MidStringChars = $adt("MidStringChars"); + NT_Replacement = $sort("Replacement"); + ADT_Replacement = $adt("Replacement"); + ADT_Tree = $adt("Tree"); + NT_ProtocolChars = $lex("ProtocolChars"); + ADT_ProtocolChars = $adt("ProtocolChars"); + ADT_LocationChangeType = $adt("LocationChangeType"); + ADT_IOCapability = $adt("IOCapability"); + NT_Name = $lex("Name"); + ADT_Name = $adt("Name"); + NT_TagString = $lex("TagString"); + ADT_TagString = $adt("TagString"); + NT_Concrete = $lex("Concrete"); + ADT_Concrete = $adt("Concrete"); + ADT_Production = $adt("Production"); + NT_Range = $sort("Range"); + ADT_Range = $adt("Range"); + NT_LAYOUT = $lex("LAYOUT"); + ADT_LAYOUT = $adt("LAYOUT"); + NT_Pattern = $sort("Pattern"); + ADT_Pattern = $adt("Pattern"); + ADT_Item = $adt("Item"); + NT_RationalLiteral = $lex("RationalLiteral"); + ADT_RationalLiteral = $adt("RationalLiteral"); + NT_RegExpLiteral = $lex("RegExpLiteral"); + ADT_RegExpLiteral = $adt("RegExpLiteral"); + NT_Declarator = $sort("Declarator"); + ADT_Declarator = $adt("Declarator"); + ADT_GrammarModule = $adt("GrammarModule"); + NT_ModuleParameters = $sort("ModuleParameters"); + ADT_ModuleParameters = $adt("ModuleParameters"); + NT_SyntaxDefinition = $sort("SyntaxDefinition"); + ADT_SyntaxDefinition = $adt("SyntaxDefinition"); + NT_DatePart = $lex("DatePart"); + ADT_DatePart = $adt("DatePart"); + NT_Output = $lex("Output"); + ADT_Output = $adt("Output"); + NT_IntegerLiteral = $sort("IntegerLiteral"); + ADT_IntegerLiteral = $adt("IntegerLiteral"); + NT_Case = $sort("Case"); + ADT_Case = $adt("Case"); + NT_ImportedModule = $sort("ImportedModule"); + ADT_ImportedModule = $adt("ImportedModule"); + NT_BooleanLiteral = $lex("BooleanLiteral"); + ADT_BooleanLiteral = $adt("BooleanLiteral"); + NT_Expression = $sort("Expression"); + ADT_Expression = $adt("Expression"); + NT_LocalVariableDeclaration = $sort("LocalVariableDeclaration"); + ADT_LocalVariableDeclaration = $adt("LocalVariableDeclaration"); + NT_Target = $sort("Target"); + ADT_Target = $adt("Target"); + NT_TimePartNoTZ = $lex("TimePartNoTZ"); + ADT_TimePartNoTZ = $adt("TimePartNoTZ"); + NT_Variable = $sort("Variable"); + ADT_Variable = $adt("Variable"); + NT_KeywordFormals = $sort("KeywordFormals"); + ADT_KeywordFormals = $adt("KeywordFormals"); + NT_DataTarget = $sort("DataTarget"); + ADT_DataTarget = $adt("DataTarget"); + NT_Renaming = $sort("Renaming"); + ADT_Renaming = $adt("Renaming"); + NT_Catch = $sort("Catch"); + ADT_Catch = $adt("Catch"); + NT_Renamings = $sort("Renamings"); + ADT_Renamings = $adt("Renamings"); + NT_KeywordFormal = $sort("KeywordFormal"); + ADT_KeywordFormal = $adt("KeywordFormal"); + NT_OptionalExpression = $sort("OptionalExpression"); + ADT_OptionalExpression = $adt("OptionalExpression"); + ADT_GrammarDefinition = $adt("GrammarDefinition"); + NT_Field = $sort("Field"); + ADT_Field = $adt("Field"); + NT_FunctionBody = $sort("FunctionBody"); + ADT_FunctionBody = $adt("FunctionBody"); + NT_LocationLiteral = $sort("LocationLiteral"); + ADT_LocationLiteral = $adt("LocationLiteral"); + NT_Tag = $sort("Tag"); + ADT_Tag = $adt("Tag"); + NT_Type = $sort("Type"); + ADT_Type = $adt("Type"); + NT_HexIntegerLiteral = $lex("HexIntegerLiteral"); + ADT_HexIntegerLiteral = $adt("HexIntegerLiteral"); + NT_PostStringChars = $lex("PostStringChars"); + ADT_PostStringChars = $adt("PostStringChars"); + NT_TimeZonePart = $lex("TimeZonePart"); + ADT_TimeZonePart = $adt("TimeZonePart"); + NT_Declaration = $sort("Declaration"); + ADT_Declaration = $adt("Declaration"); + NT_ShellCommand = $sort("ShellCommand"); + ADT_ShellCommand = $adt("ShellCommand"); + NT_StringLiteral = $sort("StringLiteral"); + ADT_StringLiteral = $adt("StringLiteral"); + NT_PreStringChars = $lex("PreStringChars"); + ADT_PreStringChars = $adt("PreStringChars"); + NT_TypeArg = $sort("TypeArg"); + ADT_TypeArg = $adt("TypeArg"); + NT_NonterminalLabel = $lex("NonterminalLabel"); + ADT_NonterminalLabel = $adt("NonterminalLabel"); + NT_Bound = $sort("Bound"); + ADT_Bound = $adt("Bound"); + NT_Nonterminal = $lex("Nonterminal"); + ADT_Nonterminal = $adt("Nonterminal"); + NT_RegExp = $lex("RegExp"); + ADT_RegExp = $adt("RegExp"); + NT_PathPart = $sort("PathPart"); + ADT_PathPart = $adt("PathPart"); + NT_Class = $sort("Class"); + ADT_Class = $adt("Class"); + ADT_Associativity = $adt("Associativity"); + NT_Signature = $sort("Signature"); + ADT_Signature = $adt("Signature"); + NT_ModuleActuals = $sort("ModuleActuals"); + ADT_ModuleActuals = $adt("ModuleActuals"); + NT_URLChars = $lex("URLChars"); + ADT_URLChars = $adt("URLChars"); + ADT_Symbol = $adt("Symbol"); + NT_Tags = $sort("Tags"); + ADT_Tags = $adt("Tags"); + NT_Start = $sort("Start"); + ADT_Start = $adt("Start"); + NT_Body = $sort("Body"); + ADT_Body = $adt("Body"); + NT_PrePathChars = $lex("PrePathChars"); + ADT_PrePathChars = $adt("PrePathChars"); + NT_StringConstant = $lex("StringConstant"); + ADT_StringConstant = $adt("StringConstant"); + NT_OptionalComma = $lex("OptionalComma"); + ADT_OptionalComma = $adt("OptionalComma"); + NT_StringTail = $sort("StringTail"); + ADT_StringTail = $adt("StringTail"); + NT_Backslash = $lex("Backslash"); + ADT_Backslash = $adt("Backslash"); + NT_Char = $lex("Char"); + ADT_Char = $adt("Char"); + NT_DataTypeSelector = $sort("DataTypeSelector"); + ADT_DataTypeSelector = $adt("DataTypeSelector"); + NT_CaseInsensitiveStringConstant = $lex("CaseInsensitiveStringConstant"); + ADT_CaseInsensitiveStringConstant = $adt("CaseInsensitiveStringConstant"); + ADT_Exception = $adt("Exception"); + NT_Assignment = $sort("Assignment"); + ADT_Assignment = $adt("Assignment"); + NT_PatternWithAction = $sort("PatternWithAction"); + ADT_PatternWithAction = $adt("PatternWithAction"); + NT_PostPathChars = $lex("PostPathChars"); + ADT_PostPathChars = $adt("PostPathChars"); + NT_Module = $sort("Module"); + ADT_Module = $adt("Module"); + NT_TypeVar = $sort("TypeVar"); + ADT_TypeVar = $adt("TypeVar"); + NT_FunctionDeclaration = $sort("FunctionDeclaration"); + ADT_FunctionDeclaration = $adt("FunctionDeclaration"); + NT_JustDate = $lex("JustDate"); + ADT_JustDate = $adt("JustDate"); + NT_Header = $sort("Header"); + ADT_Header = $adt("Header"); + ADT_LocationType = $adt("LocationType"); + NT_UserType = $sort("UserType"); + ADT_UserType = $adt("UserType"); + ADT_CharRange = $adt("CharRange"); + NT_Variant = $sort("Variant"); + ADT_Variant = $adt("Variant"); + NT_Comprehension = $sort("Comprehension"); + ADT_Comprehension = $adt("Comprehension"); + NT_Import = $sort("Import"); + ADT_Import = $adt("Import"); + ADT_LAYOUTLIST = $layouts("LAYOUTLIST"); + NT_ConcreteHole = $sort("ConcreteHole"); + ADT_ConcreteHole = $adt("ConcreteHole"); + ADT_Grammar = $adt("Grammar"); + ADT_Message = $adt("Message"); + NT_Sym = $sort("Sym"); + ADT_Sym = $adt("Sym"); + NT_StringMiddle = $sort("StringMiddle"); + ADT_StringMiddle = $adt("StringMiddle"); + NT_DateAndTime = $lex("DateAndTime"); + ADT_DateAndTime = $adt("DateAndTime"); + NT_RealLiteral = $lex("RealLiteral"); + ADT_RealLiteral = $adt("RealLiteral"); + NT_Formals = $sort("Formals"); + ADT_Formals = $adt("Formals"); + NT_FunctionModifiers = $sort("FunctionModifiers"); + ADT_FunctionModifiers = $adt("FunctionModifiers"); + NT_QualifiedName = $sort("QualifiedName"); + ADT_QualifiedName = $adt("QualifiedName"); + NT_MidPathChars = $lex("MidPathChars"); + ADT_MidPathChars = $adt("MidPathChars"); + NT_Statement = $sort("Statement"); + ADT_Statement = $adt("Statement"); + NT_MidProtocolChars = $lex("MidProtocolChars"); + ADT_MidProtocolChars = $adt("MidProtocolChars"); + ADT_RascalKeywords = $keywords("RascalKeywords"); + NT_Parameters = $sort("Parameters"); + ADT_Parameters = $adt("Parameters"); + NT_PreProtocolChars = $lex("PreProtocolChars"); + ADT_PreProtocolChars = $adt("PreProtocolChars"); + NT_PathTail = $sort("PathTail"); + ADT_PathTail = $adt("PathTail"); + NT_StringTemplate = $sort("StringTemplate"); + ADT_StringTemplate = $adt("StringTemplate"); + NT_OctalIntegerLiteral = $lex("OctalIntegerLiteral"); + ADT_OctalIntegerLiteral = $adt("OctalIntegerLiteral"); + NT_ProtocolPart = $sort("ProtocolPart"); + ADT_ProtocolPart = $adt("ProtocolPart"); + NT_NamedBackslash = $lex("NamedBackslash"); + ADT_NamedBackslash = $adt("NamedBackslash"); + NT_Label = $sort("Label"); + ADT_Label = $adt("Label"); + NT_Kind = $sort("Kind"); + ADT_Kind = $adt("Kind"); + NT_RegExpModifier = $lex("RegExpModifier"); + ADT_RegExpModifier = $adt("RegExpModifier"); + NT_Prod = $sort("Prod"); + ADT_Prod = $adt("Prod"); + ADT_LocationChangeEvent = $adt("LocationChangeEvent"); + ADT_RuntimeException = $adt("RuntimeException"); + NT_NamedRegExp = $lex("NamedRegExp"); + ADT_NamedRegExp = $adt("NamedRegExp"); + NT_Assoc = $sort("Assoc"); + ADT_Assoc = $adt("Assoc"); + NT_DateTimeLiteral = $sort("DateTimeLiteral"); + ADT_DateTimeLiteral = $adt("DateTimeLiteral"); + NT_DecimalIntegerLiteral = $lex("DecimalIntegerLiteral"); + ADT_DecimalIntegerLiteral = $adt("DecimalIntegerLiteral"); + NT_EvalCommand = $sort("EvalCommand"); + ADT_EvalCommand = $adt("EvalCommand"); + NT_StringCharacter = $lex("StringCharacter"); + ADT_StringCharacter = $adt("StringCharacter"); + NT_FunctionModifier = $sort("FunctionModifier"); + ADT_FunctionModifier = $adt("FunctionModifier"); + NT_ProdModifier = $sort("ProdModifier"); + ADT_ProdModifier = $adt("ProdModifier"); + NT_JustTime = $lex("JustTime"); + ADT_JustTime = $adt("JustTime"); + NT_ConcretePart = $lex("ConcretePart"); + ADT_ConcretePart = $adt("ConcretePart"); + NT_Literal = $sort("Literal"); + ADT_Literal = $adt("Literal"); + NT_Toplevel = $sort("Toplevel"); + ADT_Toplevel = $adt("Toplevel"); + ADT_$default$ = $layouts("$default$"); + NT_PathChars = $lex("PathChars"); + ADT_PathChars = $adt("PathChars"); + NT_Comment = $lex("Comment"); + ADT_Comment = $adt("Comment"); + NT_Commands = $sort("Commands"); + ADT_Commands = $adt("Commands"); + NT_Visit = $sort("Visit"); + ADT_Visit = $adt("Visit"); + NT_Command = $sort("Command"); + ADT_Command = $adt("Command"); + NT_StructuredType = $sort("StructuredType"); + ADT_StructuredType = $adt("StructuredType"); + NT_Assignable = $sort("Assignable"); + ADT_Assignable = $adt("Assignable"); + NT_UnicodeEscape = $lex("UnicodeEscape"); + ADT_UnicodeEscape = $adt("UnicodeEscape"); + NT_CommonKeywordParameters = $sort("CommonKeywordParameters"); + ADT_CommonKeywordParameters = $adt("CommonKeywordParameters"); + NT_ProtocolTail = $sort("ProtocolTail"); + ADT_ProtocolTail = $adt("ProtocolTail"); + NT_BasicType = $sort("BasicType"); + ADT_BasicType = $adt("BasicType"); + ADT_Condition = $adt("Condition"); + $T1 = $TF.valueType(); + $T2 = $TF.parameterType("T", $T1); + $T6 = $TF.parameterType("A", $T1); + $T3 = $TF.stringType(); + $T4 = $TF.parameterType("T", ADT_Tree); + NT_KeywordArguments_1 = $parameterizedSort("KeywordArguments", new Type[] { $T4 }, $RVF.list($RVF.constructor(RascalValueFactory.Symbol_Parameter, $RVF.string("T"), $RVF.constructor(RascalValueFactory.Symbol_Adt, $RVF.string("Tree"), $RVF.list())))); + ADT_Maybe_Production = $parameterizedAdt("Maybe", new Type[] { ADT_Production }); + NT_Mapping_Pattern = $parameterizedSort("Mapping", new Type[] { ADT_Pattern }, $RVF.list($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Pattern")))); + $T5 = $TF.parameterType("T", ADT_Tree); + NT_Mapping_Expression = $parameterizedSort("Mapping", new Type[] { ADT_Expression }, $RVF.list($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Expression")))); + NT_KeywordArguments_Expression = $parameterizedSort("KeywordArguments", new Type[] { ADT_Expression }, $RVF.list($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Expression")))); + NT_Mapping_1 = $parameterizedSort("Mapping", new Type[] { $T4 }, $RVF.list($RVF.constructor(RascalValueFactory.Symbol_Parameter, $RVF.string("T"), $RVF.constructor(RascalValueFactory.Symbol_Adt, $RVF.string("Tree"), $RVF.list())))); + ADT_Maybe_1 = $parameterizedAdt("Maybe", new Type[] { $T6 }); + NT_KeywordArguments_Pattern = $parameterizedSort("KeywordArguments", new Type[] { ADT_Pattern }, $RVF.list($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Pattern")))); + $T0 = $TF.listType($T2); + NT_KeywordArgument_1 = $parameterizedSort("KeywordArgument", new Type[] { $T4 }, $RVF.list($RVF.constructor(RascalValueFactory.Symbol_Parameter, $RVF.string("T"), $RVF.constructor(RascalValueFactory.Symbol_Adt, $RVF.string("Tree"), $RVF.list())))); + ADT_Maybe_Symbol = $parameterizedAdt("Maybe", new Type[] { ADT_Symbol }); + ADT_TreeSearchResult_1 = $parameterizedAdt("TreeSearchResult", new Type[] { $T4 }); + ADT_Maybe_Associativity = $parameterizedAdt("Maybe", new Type[] { ADT_Associativity }); + ADT_KeywordArguments_1 = $TF.abstractDataType($TS, "KeywordArguments", new Type[] { $T4 }); + ADT_Mapping_Pattern = $TF.abstractDataType($TS, "Mapping", new Type[] { ADT_Pattern }); + ADT_Mapping_Expression = $TF.abstractDataType($TS, "Mapping", new Type[] { ADT_Expression }); + ADT_KeywordArguments_Expression = $TF.abstractDataType($TS, "KeywordArguments", new Type[] { ADT_Expression }); + ADT_Mapping_1 = $TF.abstractDataType($TS, "Mapping", new Type[] { $T4 }); + ADT_KeywordArguments_Pattern = $TF.abstractDataType($TS, "KeywordArguments", new Type[] { ADT_Pattern }); + ADT_KeywordArgument_1 = $TF.abstractDataType($TS, "KeywordArgument", new Type[] { $T4 }); + + ParserBaseLoc = ((ISourceLocation)($create_aloc(((IString)$constants.get(108)/*"project://rascal/src/org/rascalmpl/library/lang/rascal/grammar/tests/generated_parsers/"*/)))); + + + } + public IBool tstExpandParameterizedSymbols4(){ // Generated by Resolver + IBool $result = null; + $result = (IBool)lang_rascal_grammar_tests_ParserGeneratorTests_tstExpandParameterizedSymbols4$bff4c6ef51ef72c6(); + if($result != null) return $result; + throw RuntimeExceptionFactory.callFailed($RVF.list()); + } + public IBool tstExpandParameterizedSymbols1(){ // Generated by Resolver + IBool $result = null; + $result = (IBool)lang_rascal_grammar_tests_ParserGeneratorTests_tstExpandParameterizedSymbols1$0841c20c388175c8(); + if($result != null) return $result; + throw RuntimeExceptionFactory.callFailed($RVF.list()); + } + public IValue head(IValue $P0){ // Generated by Resolver + return (IValue) M_List.head($P0); + } + public IConstructor choice(IValue $P0, IValue $P1){ // Generated by Resolver + return (IConstructor) M_Type.choice($P0, $P1); + } + public IBool tstExpandParameterizedSymbols2(){ // Generated by Resolver + IBool $result = null; + $result = (IBool)lang_rascal_grammar_tests_ParserGeneratorTests_tstExpandParameterizedSymbols2$eb5ad6d10cecc5e4(); + if($result != null) return $result; + throw RuntimeExceptionFactory.callFailed($RVF.list()); + } + public IString getParserMethodName(IValue $P0){ // Generated by Resolver + return (IString) M_lang_rascal_grammar_ParserGenerator.getParserMethodName($P0); + } + public IInteger size(IValue $P0){ // Generated by Resolver + IInteger $result = null; + Type $P0Type = $P0.getType(); + if($isSubtypeOf($P0Type,$T0)){ + $result = (IInteger)M_List.List_size$ba7443328d8b4a27((IList) $P0); + if($result != null) return $result; + } + if($isSubtypeOf($P0Type,$T3)){ + $result = (IInteger)M_String.String_size$4611676944e933d5((IString) $P0); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0)); + } + public IBool tstExpandParameterizedSymbols3(){ // Generated by Resolver + IBool $result = null; + $result = (IBool)lang_rascal_grammar_tests_ParserGeneratorTests_tstExpandParameterizedSymbols3$5c3e8bbe9623842a(); + if($result != null) return $result; + throw RuntimeExceptionFactory.callFailed($RVF.list()); + } + public IBool tstExpandParameterizedSymbols5(){ // Generated by Resolver + IBool $result = null; + $result = (IBool)lang_rascal_grammar_tests_ParserGeneratorTests_tstExpandParameterizedSymbols5$4798a5517a5aea97(); + if($result != null) return $result; + throw RuntimeExceptionFactory.callFailed($RVF.list()); + } + public IBool tstNewGenerateGEMPTY(){ // Generated by Resolver + IBool $result = null; + $result = (IBool)lang_rascal_grammar_tests_ParserGeneratorTests_tstNewGenerateGEMPTY$3ffe02b6dd93ee4e(); + if($result != null) return $result; + throw RuntimeExceptionFactory.callFailed($RVF.list()); + } + public IBool tstGenerateNewItems1(){ // Generated by Resolver + IBool $result = null; + $result = (IBool)lang_rascal_grammar_tests_ParserGeneratorTests_tstGenerateNewItems1$f0906250d019df65(); + if($result != null) return $result; + throw RuntimeExceptionFactory.callFailed($RVF.list()); + } + public IConstructor grammar(IValue $P0){ // Generated by Resolver + return (IConstructor) M_Grammar.grammar($P0); + } + public IConstructor grammar(IValue $P0, IValue $P1){ // Generated by Resolver + return (IConstructor) M_Grammar.grammar($P0, $P1); + } + public IBool tstGenerateNewItems2(){ // Generated by Resolver + IBool $result = null; + $result = (IBool)lang_rascal_grammar_tests_ParserGeneratorTests_tstGenerateNewItems2$4608cf9bff693c0b(); + if($result != null) return $result; + throw RuntimeExceptionFactory.callFailed($RVF.list()); + } + public IBool tstGenerateNewItems3(){ // Generated by Resolver + IBool $result = null; + $result = (IBool)lang_rascal_grammar_tests_ParserGeneratorTests_tstGenerateNewItems3$125f77ee68340d60(); + if($result != null) return $result; + throw RuntimeExceptionFactory.callFailed($RVF.list()); + } + public IBool tstNewGenerateG0(){ // Generated by Resolver + IBool $result = null; + $result = (IBool)lang_rascal_grammar_tests_ParserGeneratorTests_tstNewGenerateG0$626d69ed168bf92a(); + if($result != null) return $result; + throw RuntimeExceptionFactory.callFailed($RVF.list()); + } + public IBool tstComputeDontNests1(){ // Generated by Resolver + IBool $result = null; + $result = (IBool)lang_rascal_grammar_tests_ParserGeneratorTests_tstComputeDontNests1$178065f57b4fed4b(); + if($result != null) return $result; + throw RuntimeExceptionFactory.callFailed($RVF.list()); + } + public IBool tstUnique0(){ // Generated by Resolver + IBool $result = null; + $result = (IBool)lang_rascal_grammar_tests_ParserGeneratorTests_tstUnique0$099a35bdf29c9ce7(); + if($result != null) return $result; + throw RuntimeExceptionFactory.callFailed($RVF.list()); + } + public IBool tstComputeDontNests2(){ // Generated by Resolver + IBool $result = null; + $result = (IBool)lang_rascal_grammar_tests_ParserGeneratorTests_tstComputeDontNests2$86b7bef9c88d6554(); + if($result != null) return $result; + throw RuntimeExceptionFactory.callFailed($RVF.list()); + } + public IBool tstUnique1(){ // Generated by Resolver + IBool $result = null; + $result = (IBool)lang_rascal_grammar_tests_ParserGeneratorTests_tstUnique1$c4ceda669e9faa4d(); + if($result != null) return $result; + throw RuntimeExceptionFactory.callFailed($RVF.list()); + } + public IBool tstComputeDontNests3(){ // Generated by Resolver + IBool $result = null; + $result = (IBool)lang_rascal_grammar_tests_ParserGeneratorTests_tstComputeDontNests3$4cbf45cd51bd7a8a(); + if($result != null) return $result; + throw RuntimeExceptionFactory.callFailed($RVF.list()); + } + public IBool tstUnique2(){ // Generated by Resolver + IBool $result = null; + $result = (IBool)lang_rascal_grammar_tests_ParserGeneratorTests_tstUnique2$bfc17195569aa30c(); + if($result != null) return $result; + throw RuntimeExceptionFactory.callFailed($RVF.list()); + } + public IBool tstComputeDontNests4(){ // Generated by Resolver + IBool $result = null; + $result = (IBool)lang_rascal_grammar_tests_ParserGeneratorTests_tstComputeDontNests4$29d1a74761dcb91d(); + if($result != null) return $result; + throw RuntimeExceptionFactory.callFailed($RVF.list()); + } + public void println(IValue $P0){ // Generated by Resolver + M_IO.println($P0); + } + public void println(){ // Generated by Resolver + M_IO.println(); + } + public IList tail(IValue $P0){ // Generated by Resolver + return (IList) M_List.tail($P0); + } + public IConstructor getType(IValue $P0){ // Generated by Resolver + return (IConstructor) M_lang_rascal_grammar_ParserGenerator.getType($P0); + } + public IBool tstEsc1(){ // Generated by Resolver + IBool $result = null; + $result = (IBool)lang_rascal_grammar_tests_ParserGeneratorTests_tstEsc1$daafe86c4d28093e(); + if($result != null) return $result; + throw RuntimeExceptionFactory.callFailed($RVF.list()); + } + public IBool tstEsc2(){ // Generated by Resolver + IBool $result = null; + $result = (IBool)lang_rascal_grammar_tests_ParserGeneratorTests_tstEsc2$f53994ad485c37bc(); + if($result != null) return $result; + throw RuntimeExceptionFactory.callFailed($RVF.list()); + } + public IBool tstEsc3(){ // Generated by Resolver + IBool $result = null; + $result = (IBool)lang_rascal_grammar_tests_ParserGeneratorTests_tstEsc3$d1531db13a74cd8a(); + if($result != null) return $result; + throw RuntimeExceptionFactory.callFailed($RVF.list()); + } + public IBool tstEsc4(){ // Generated by Resolver + IBool $result = null; + $result = (IBool)lang_rascal_grammar_tests_ParserGeneratorTests_tstEsc4$cd668b916d83a82f(); + if($result != null) return $result; + throw RuntimeExceptionFactory.callFailed($RVF.list()); + } + public IBool tstEsc5(){ // Generated by Resolver + IBool $result = null; + $result = (IBool)lang_rascal_grammar_tests_ParserGeneratorTests_tstEsc5$20bd8083e7f8b79a(); + if($result != null) return $result; + throw RuntimeExceptionFactory.callFailed($RVF.list()); + } + public IString esc(IValue $P0){ // Generated by Resolver + return (IString) M_lang_rascal_grammar_ParserGenerator.esc($P0); + } + public IBool tstEsc6(){ // Generated by Resolver + IBool $result = null; + $result = (IBool)lang_rascal_grammar_tests_ParserGeneratorTests_tstEsc6$1f0d5c4a361fc470(); + if($result != null) return $result; + throw RuntimeExceptionFactory.callFailed($RVF.list()); + } + public IList removeEmptyLines(IValue $P0){ // Generated by Resolver + IList $result = null; + Type $P0Type = $P0.getType(); + if($isSubtypeOf($P0Type,$T3)){ + $result = (IList)lang_rascal_grammar_tests_ParserGeneratorTests_removeEmptyLines$9fbb4822aae1800c((IString) $P0); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0)); + } + public IBool tstNewGenerateGEXP(){ // Generated by Resolver + IBool $result = null; + $result = (IBool)lang_rascal_grammar_tests_ParserGeneratorTests_tstNewGenerateGEXP$f6b27f467ead5c91(); + if($result != null) return $result; + throw RuntimeExceptionFactory.callFailed($RVF.list()); + } + public IBool tstEsc7(){ // Generated by Resolver + IBool $result = null; + $result = (IBool)lang_rascal_grammar_tests_ParserGeneratorTests_tstEsc7$b259f88a2232a422(); + if($result != null) return $result; + throw RuntimeExceptionFactory.callFailed($RVF.list()); + } + public IBool tstLiterals1(){ // Generated by Resolver + IBool $result = null; + $result = (IBool)lang_rascal_grammar_tests_ParserGeneratorTests_tstLiterals1$b1b9d1b2d10cdb63(); + if($result != null) return $result; + throw RuntimeExceptionFactory.callFailed($RVF.list()); + } + public IBool tstEsc8(){ // Generated by Resolver + IBool $result = null; + $result = (IBool)lang_rascal_grammar_tests_ParserGeneratorTests_tstEsc8$3ece6d2670010dc0(); + if($result != null) return $result; + throw RuntimeExceptionFactory.callFailed($RVF.list()); + } + public IBool tstLiterals2(){ // Generated by Resolver + IBool $result = null; + $result = (IBool)lang_rascal_grammar_tests_ParserGeneratorTests_tstLiterals2$cda1b8838486a95f(); + if($result != null) return $result; + throw RuntimeExceptionFactory.callFailed($RVF.list()); + } + public IBool tstEsc9(){ // Generated by Resolver + IBool $result = null; + $result = (IBool)lang_rascal_grammar_tests_ParserGeneratorTests_tstEsc9$c0477f400e811ebd(); + if($result != null) return $result; + throw RuntimeExceptionFactory.callFailed($RVF.list()); + } + public IValue main(){ // Generated by Resolver + IValue $result = null; + $result = (IValue)lang_rascal_grammar_tests_ParserGeneratorTests_main$cf8e6ccdc28df2e3(); + if($result != null) return $result; + throw RuntimeExceptionFactory.callFailed($RVF.list()); + } + public IBool sameLines(IValue $P0, IValue $P1){ // Generated by Resolver + IBool $result = null; + Type $P0Type = $P0.getType(); + Type $P1Type = $P1.getType(); + if($isSubtypeOf($P0Type,$T3) && $isSubtypeOf($P1Type,$T3)){ + $result = (IBool)lang_rascal_grammar_tests_ParserGeneratorTests_sameLines$9f2b894a20ecc2fd((IString) $P0, (IString) $P1); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0, $P1)); + } + public IBool tstLiterals3(){ // Generated by Resolver + IBool $result = null; + $result = (IBool)lang_rascal_grammar_tests_ParserGeneratorTests_tstLiterals3$22b279a978cc4f0f(); + if($result != null) return $result; + throw RuntimeExceptionFactory.callFailed($RVF.list()); + } + public IValue split(IValue $P0){ // Generated by Resolver + IValue $result = null; + Type $P0Type = $P0.getType(); + if($isSubtypeOf($P0Type,$T3)){ + $result = (IValue)M_lang_rascal_grammar_ParserGenerator.lang_rascal_grammar_ParserGenerator_split$452f305967b0884c((IString) $P0); + if($result != null) return $result; + } + if($isSubtypeOf($P0Type,$T0)){ + $result = (IValue)M_List.List_split$19c747b75c8a251d((IList) $P0); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0)); + } + public IList split(IValue $P0, IValue $P1){ // Generated by Resolver + return (IList) M_String.split($P0, $P1); + } + public IBool tstLiterals4(){ // Generated by Resolver + IBool $result = null; + $result = (IBool)lang_rascal_grammar_tests_ParserGeneratorTests_tstLiterals4$695f65df3e2234ce(); + if($result != null) return $result; + throw RuntimeExceptionFactory.callFailed($RVF.list()); + } + public IBool tstNewGenerateGEXPPRIO(){ // Generated by Resolver + IBool $result = null; + $result = (IBool)lang_rascal_grammar_tests_ParserGeneratorTests_tstNewGenerateGEXPPRIO$a7647a8a5293299c(); + if($result != null) return $result; + throw RuntimeExceptionFactory.callFailed($RVF.list()); + } + public IValue sort(IValue $P0){ // Generated by Resolver + IValue $result = null; + Type $P0Type = $P0.getType(); + if($isSubtypeOf($P0Type,$T0)){ + $result = (IValue)M_List.List_sort$1fe4426c8c8039da((IList) $P0); + if($result != null) return $result; + } + if($isSubtypeOf($P0Type,$T3)){ + return $RVF.constructor(M_ParseTree.Symbol_sort_str, new IValue[]{(IString) $P0}); + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0)); + } + public IList sort(IValue $P0, IValue $P1){ // Generated by Resolver + return (IList) M_List.sort($P0, $P1); + } + public IBool tstEsc10(){ // Generated by Resolver + IBool $result = null; + $result = (IBool)lang_rascal_grammar_tests_ParserGeneratorTests_tstEsc10$2b81cb9a31f6bb6e(); + if($result != null) return $result; + throw RuntimeExceptionFactory.callFailed($RVF.list()); + } + public void generateParsers(){ // Generated by Resolver + try { lang_rascal_grammar_tests_ParserGeneratorTests_generateParsers$41133e6df5c3877f(); return; } catch (FailReturnFromVoidException e){}; + + throw RuntimeExceptionFactory.callFailed($RVF.list()); + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/lang/rascal/grammar/tests/ParserGeneratorTests.rsc|(377,58,<14,0>,<14,58>) + public IBool lang_rascal_grammar_tests_ParserGeneratorTests_tstEsc1$daafe86c4d28093e(){ + + + return ((IBool)($equal(((IString)(M_lang_rascal_grammar_ParserGenerator.esc(((IConstructor)$constants.get(0)/*sort("S")*/)))), ((IString)$constants.get(1)/*"sort(\"S\")"*/)))); + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/lang/rascal/grammar/tests/ParserGeneratorTests.rsc|(436,56,<15,0>,<15,56>) + public IBool lang_rascal_grammar_tests_ParserGeneratorTests_tstEsc2$f53994ad485c37bc(){ + + + return ((IBool)($equal(((IString)(M_lang_rascal_grammar_ParserGenerator.esc(((IConstructor)$constants.get(2)/*lit(":")*/)))), ((IString)$constants.get(3)/*"lit(\":\")"*/)))); + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/lang/rascal/grammar/tests/ParserGeneratorTests.rsc|(493,64,<16,0>,<16,64>) + public IBool lang_rascal_grammar_tests_ParserGeneratorTests_tstEsc3$d1531db13a74cd8a(){ + + + return ((IBool)($equal(((IString)(M_lang_rascal_grammar_ParserGenerator.esc(((IConstructor)$constants.get(4)/*lit("\"")*/)))), ((IString)$constants.get(5)/*"lit(\"\\\"\")"*/)))); + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/lang/rascal/grammar/tests/ParserGeneratorTests.rsc|(559,62,<18,0>,<18,62>) + public IBool lang_rascal_grammar_tests_ParserGeneratorTests_tstEsc4$cd668b916d83a82f(){ + + + final Template $template0 = (Template)new Template($RVF, ""); + $template0.addStr(((IString)(M_lang_rascal_grammar_ParserGenerator.esc(((IConstructor)$constants.get(0)/*sort("S")*/)))).getValue()); + return ((IBool)($equal(((IString)($template0.close())), ((IString)$constants.get(1)/*"sort(\"S\")"*/)))); + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/lang/rascal/grammar/tests/ParserGeneratorTests.rsc|(622,68,<19,0>,<19,68>) + public IBool lang_rascal_grammar_tests_ParserGeneratorTests_tstEsc5$20bd8083e7f8b79a(){ + + + final Template $template1 = (Template)new Template($RVF, ""); + $template1.addStr(((IString)(M_lang_rascal_grammar_ParserGenerator.esc(((IConstructor)$constants.get(4)/*lit("\"")*/)))).getValue()); + return ((IBool)($equal(((IString)($template1.close())), ((IString)$constants.get(5)/*"lit(\"\\\"\")"*/)))); + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/lang/rascal/grammar/tests/ParserGeneratorTests.rsc|(692,66,<21,0>,<21,66>) + public IBool lang_rascal_grammar_tests_ParserGeneratorTests_tstEsc6$1f0d5c4a361fc470(){ + + + final Template $template2 = (Template)new Template($RVF, ""); + $template2.addStr(((IString)(M_lang_rascal_grammar_ParserGenerator.esc(((IConstructor)$constants.get(0)/*sort("S")*/)))).getValue()); + final Template $template3 = (Template)new Template($RVF, ""); + $template3.addStr("sort(\\\"S\\\")"); + return ((IBool)($equal(((IString)($template2.close())), ((IString)($template3.close()))))); + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/lang/rascal/grammar/tests/ParserGeneratorTests.rsc|(759,64,<22,0>,<22,64>) + public IBool lang_rascal_grammar_tests_ParserGeneratorTests_tstEsc7$b259f88a2232a422(){ + + + final Template $template4 = (Template)new Template($RVF, ""); + $template4.addStr(((IString)(M_lang_rascal_grammar_ParserGenerator.esc(((IConstructor)$constants.get(2)/*lit(":")*/)))).getValue()); + final Template $template5 = (Template)new Template($RVF, ""); + $template5.addStr("lit(\\\":\\\")"); + return ((IBool)($equal(((IString)($template4.close())), ((IString)($template5.close()))))); + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/lang/rascal/grammar/tests/ParserGeneratorTests.rsc|(824,72,<23,0>,<23,72>) + public IBool lang_rascal_grammar_tests_ParserGeneratorTests_tstEsc8$3ece6d2670010dc0(){ + + + final Template $template6 = (Template)new Template($RVF, ""); + $template6.addStr(((IString)(M_lang_rascal_grammar_ParserGenerator.esc(((IConstructor)$constants.get(4)/*lit("\"")*/)))).getValue()); + final Template $template7 = (Template)new Template($RVF, ""); + $template7.addStr("lit(\\\"\\\\\\\"\\\")"); + return ((IBool)($equal(((IString)($template6.close())), ((IString)($template7.close()))))); + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/lang/rascal/grammar/tests/ParserGeneratorTests.rsc|(898,114,<25,0>,<25,114>) + public IBool lang_rascal_grammar_tests_ParserGeneratorTests_tstEsc9$c0477f400e811ebd(){ + + + final Template $template8 = (Template)new Template($RVF, ""); + /*muExists*/LAB0: + do { + LAB0_GEN926: + for(IValue $elem9_for : ((IList)$constants.get(6)/*[sort("S"),lit("\"")]*/)){ + IConstructor $elem9 = (IConstructor) $elem9_for; + IConstructor s_0 = ((IConstructor)($elem9)); + ;$template8.addStr(((IString)(M_lang_rascal_grammar_ParserGenerator.esc(((IConstructor)s_0)))).getValue()); + + } + continue LAB0; + + } while(false); + return ((IBool)($equal(((IString)($template8.close())), ((IString)$constants.get(7)/*"sort(\"S\")lit(\"\\\"\")"*/)))); + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/lang/rascal/grammar/tests/ParserGeneratorTests.rsc|(1013,135,<26,0>,<26,135>) + public IBool lang_rascal_grammar_tests_ParserGeneratorTests_tstEsc10$2b81cb9a31f6bb6e(){ + + + final Template $template10 = (Template)new Template($RVF, "\""); + /*muExists*/LAB1: + do { + LAB1_GEN1044: + for(IValue $elem11_for : ((IList)$constants.get(6)/*[sort("S"),lit("\"")]*/)){ + IConstructor $elem11 = (IConstructor) $elem11_for; + IConstructor s_0 = ((IConstructor)($elem11)); + $template10.addStr("\""); + $template10.beginIndent(" "); + $template10.addStr(((IString)(M_lang_rascal_grammar_ParserGenerator.esc(((IConstructor)s_0)))).getValue()); + $template10.endIndent(" "); + $template10.addStr("\""); + + } + continue LAB1; + + } while(false); + $template10.addStr("\""); + return ((IBool)($equal(((IString)($template10.close())), ((IString)$constants.get(8)/*"""sort(\"S\")""lit(\"\\\"\")"""*/)))); + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/lang/rascal/grammar/tests/ParserGeneratorTests.rsc|(1150,90,<28,0>,<28,90>) + public IBool lang_rascal_grammar_tests_ParserGeneratorTests_tstExpandParameterizedSymbols1$0841c20c388175c8(){ + + + return ((IBool)($equal(((IConstructor)(M_lang_rascal_grammar_definition_Parameters.expandParameterizedSymbols(((IConstructor)M_lang_rascal_grammar_tests_TestGrammars.GEMPTY)))), ((IConstructor)M_lang_rascal_grammar_tests_TestGrammars.GEMPTY)))); + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/lang/rascal/grammar/tests/ParserGeneratorTests.rsc|(1241,82,<29,0>,<29,82>) + public IBool lang_rascal_grammar_tests_ParserGeneratorTests_tstExpandParameterizedSymbols2$eb5ad6d10cecc5e4(){ + + + return ((IBool)($equal(((IConstructor)(M_lang_rascal_grammar_definition_Parameters.expandParameterizedSymbols(((IConstructor)M_lang_rascal_grammar_tests_TestGrammars.G0)))), ((IConstructor)M_lang_rascal_grammar_tests_TestGrammars.G0)))); + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/lang/rascal/grammar/tests/ParserGeneratorTests.rsc|(1324,86,<30,0>,<30,86>) + public IBool lang_rascal_grammar_tests_ParserGeneratorTests_tstExpandParameterizedSymbols3$5c3e8bbe9623842a(){ + + + return ((IBool)($equal(((IConstructor)(M_lang_rascal_grammar_definition_Parameters.expandParameterizedSymbols(((IConstructor)M_lang_rascal_grammar_tests_TestGrammars.GEXP)))), ((IConstructor)M_lang_rascal_grammar_tests_TestGrammars.GEXP)))); + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/lang/rascal/grammar/tests/ParserGeneratorTests.rsc|(1411,94,<31,0>,<31,94>) + public IBool lang_rascal_grammar_tests_ParserGeneratorTests_tstExpandParameterizedSymbols4$bff4c6ef51ef72c6(){ + + + return ((IBool)($equal(((IConstructor)(M_lang_rascal_grammar_definition_Parameters.expandParameterizedSymbols(((IConstructor)M_lang_rascal_grammar_tests_TestGrammars.GEXPPRIO)))), ((IConstructor)M_lang_rascal_grammar_tests_TestGrammars.GEXPPRIO)))); + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/lang/rascal/grammar/tests/ParserGeneratorTests.rsc|(1511,54,<33,0>,<33,54>) + public IBool lang_rascal_grammar_tests_ParserGeneratorTests_tstLiterals1$b1b9d1b2d10cdb63(){ + + + return ((IBool)($equal(((IConstructor)(M_lang_rascal_grammar_definition_Literals.literals(((IConstructor)M_lang_rascal_grammar_tests_TestGrammars.GEMPTY)))), ((IConstructor)M_lang_rascal_grammar_tests_TestGrammars.GEMPTY)))); + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/lang/rascal/grammar/tests/ParserGeneratorTests.rsc|(1566,46,<34,0>,<34,46>) + public IBool lang_rascal_grammar_tests_ParserGeneratorTests_tstLiterals2$cda1b8838486a95f(){ + + + return ((IBool)($equal(((IConstructor)(M_lang_rascal_grammar_definition_Literals.literals(((IConstructor)M_lang_rascal_grammar_tests_TestGrammars.G0)))), ((IConstructor)M_lang_rascal_grammar_tests_TestGrammars.G0)))); + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/lang/rascal/grammar/tests/ParserGeneratorTests.rsc|(1613,50,<35,0>,<35,50>) + public IBool lang_rascal_grammar_tests_ParserGeneratorTests_tstLiterals3$22b279a978cc4f0f(){ + + + return ((IBool)($equal(((IConstructor)(M_lang_rascal_grammar_definition_Literals.literals(((IConstructor)M_lang_rascal_grammar_tests_TestGrammars.GEXP)))), ((IConstructor)M_lang_rascal_grammar_tests_TestGrammars.GEXP)))); + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/lang/rascal/grammar/tests/ParserGeneratorTests.rsc|(1664,58,<36,0>,<36,58>) + public IBool lang_rascal_grammar_tests_ParserGeneratorTests_tstLiterals4$695f65df3e2234ce(){ + + + return ((IBool)($equal(((IConstructor)(M_lang_rascal_grammar_definition_Literals.literals(((IConstructor)M_lang_rascal_grammar_tests_TestGrammars.GEXPPRIO)))), ((IConstructor)M_lang_rascal_grammar_tests_TestGrammars.GEXPPRIO)))); + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/lang/rascal/grammar/tests/ParserGeneratorTests.rsc|(1724,77,<38,0>,<40,6>) + public IBool lang_rascal_grammar_tests_ParserGeneratorTests_tstUnique0$099a35bdf29c9ce7(){ + + + return ((IBool)($equal(((IConstructor)(M_lang_rascal_grammar_ParserGenerator.makeUnique(((IConstructor)M_lang_rascal_grammar_tests_TestGrammars.GEMPTY)))), ((IConstructor)$constants.get(9)/*grammar({sort("S")},())*/)))); + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/lang/rascal/grammar/tests/ParserGeneratorTests.rsc|(1806,375,<42,1>,<59,5>) + public IBool lang_rascal_grammar_tests_ParserGeneratorTests_tstUnique1$c4ceda669e9faa4d(){ + + + return ((IBool)($equal(((IConstructor)(M_lang_rascal_grammar_ParserGenerator.makeUnique(((IConstructor)M_lang_rascal_grammar_tests_TestGrammars.G0)))), ((IConstructor)($RVF.constructor(M_Grammar.Grammar_grammar_set_Symbol_map_Symbol_Production, new IValue[]{((ISet)$constants.get(10)/*{sort("S")}*/), ((IMap)($buildMap(((IConstructor)$constants.get(0)/*sort("S")*/), ((IConstructor)(M_Type.choice(((IConstructor)($RVF.constructor(M_ParseTree.Symbol_sort_str, new IValue[]{((IString)$constants.get(11)/*"S"*/)}, Util.kwpMap("id", ((IInteger)$constants.get(12)/*2*/))))), ((ISet)($RVF.set(((IConstructor)($RVF.constructor(M_ParseTree.Production_prod_Symbol_list_Symbol_set_Attr, new IValue[]{((IConstructor)($RVF.constructor(M_ParseTree.Symbol_sort_str, new IValue[]{((IString)$constants.get(11)/*"S"*/)}, Util.kwpMap("id", ((IInteger)$constants.get(13)/*3*/))))), ((IList)($RVF.list(((IConstructor)($RVF.constructor(M_ParseTree.Symbol_lit_str, new IValue[]{((IString)$constants.get(14)/*"0"*/)}, Util.kwpMap("id", ((IInteger)$constants.get(15)/*4*/)))))))), ((ISet)$constants.get(16)/*{}*/)}))))))))), ((IConstructor)$constants.get(17)/*lit("0")*/), M_Type.choice(((IConstructor)($RVF.constructor(M_ParseTree.Symbol_lit_str, new IValue[]{((IString)$constants.get(14)/*"0"*/)}, Util.kwpMap("id", ((IInteger)$constants.get(18)/*5*/))))), ((ISet)($RVF.set(((IConstructor)($RVF.constructor(M_ParseTree.Production_prod_Symbol_list_Symbol_set_Attr, new IValue[]{((IConstructor)($RVF.constructor(M_ParseTree.Symbol_lit_str, new IValue[]{((IString)$constants.get(14)/*"0"*/)}, Util.kwpMap("id", ((IInteger)$constants.get(19)/*6*/))))), ((IList)($RVF.list(((IConstructor)($RVF.constructor(M_ParseTree.Symbol_char_class_list_CharRange, new IValue[]{((IList)$constants.get(20)/*[range(48,48)]*/)}, Util.kwpMap("id", ((IInteger)$constants.get(21)/*7*/)))))))), ((ISet)$constants.get(16)/*{}*/)}))))))))))})))))); + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/lang/rascal/grammar/tests/ParserGeneratorTests.rsc|(2187,227,<61,2>,<68,3>) + public IValue lang_rascal_grammar_tests_ParserGeneratorTests_main$cf8e6ccdc28df2e3(){ + + + IConstructor g_0 = ((IConstructor)$constants.get(9)/*grammar({sort("S")},())*/); + final ISetWriter $setwriter12 = (ISetWriter)$RVF.setWriter(); + ; + $SCOMP13_GEN2282: + for(IValue $elem14_for : ((IConstructor)g_0)){ + IValue $elem14 = (IValue) $elem14_for; + $SCOMP13_GEN2282_DESC2282: + for(IValue $elem15 : new DescendantMatchIterator($elem14, + new DescendantDescriptorAlwaysTrue($RVF.bool(false)))){ + if($isComparable($elem15.getType(), M_ParseTree.ADT_Symbol)){ + if($has_type_and_arity($elem15, M_ParseTree.Symbol_lit_str, 1)){ + IValue $arg0_16 = (IValue)($subscript_int(((IValue)($elem15)),0)); + if($isComparable($arg0_16.getType(), $T3)){ + IString s_2 = ((IString)($arg0_16)); + $setwriter12.insert(M_lang_rascal_grammar_definition_Literals.literal(((IString)($arg0_16)))); + + } else { + continue $SCOMP13_GEN2282_DESC2282; + } + } else { + continue $SCOMP13_GEN2282_DESC2282; + } + } else { + continue $SCOMP13_GEN2282_DESC2282; + } + } + continue $SCOMP13_GEN2282; + + } + + IConstructor el_1 = ((IConstructor)(M_Grammar.compose(((IConstructor)g_0), ((IConstructor)(M_Grammar.grammar(((ISet)$constants.get(16)/*{}*/), ((ISet)($setwriter12.done())))))))); + M_IO.println(((IString)$constants.get(22)/*"el:"*/)); + M_IO.iprintln(((IValue)el_1), Util.kwpMap()); + M_IO.println(((IString)$constants.get(23)/*"g"*/)); + M_IO.iprintln(((IValue)g_0), Util.kwpMap()); + final Template $template17 = (Template)new Template($RVF, "g == el: "); + $template17.beginIndent(" "); + $template17.addVal($equal(((IConstructor)g_0), ((IConstructor)el_1))); + $template17.endIndent(" "); + M_IO.println(((IValue)($template17.close()))); + return ((IInteger)$constants.get(24)/*0*/); + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/lang/rascal/grammar/tests/ParserGeneratorTests.rsc|(2416,1481,<70,0>,<141,5>) + public IBool lang_rascal_grammar_tests_ParserGeneratorTests_tstUnique2$bfc17195569aa30c(){ + + + return ((IBool)($equal(((IConstructor)(M_lang_rascal_grammar_ParserGenerator.makeUnique(((IConstructor)M_lang_rascal_grammar_tests_TestGrammars.GEXP)))), ((IConstructor)($RVF.constructor(M_Grammar.Grammar_grammar_set_Symbol_map_Symbol_Production, new IValue[]{((ISet)$constants.get(25)/*{sort("E")}*/), ((IMap)($buildMap(((IConstructor)$constants.get(26)/*lit("+")*/), ((IConstructor)(M_Type.choice(((IConstructor)($RVF.constructor(M_ParseTree.Symbol_lit_str, new IValue[]{((IString)$constants.get(27)/*"+"*/)}, Util.kwpMap("id", ((IInteger)$constants.get(12)/*2*/))))), ((ISet)($RVF.set(((IConstructor)($RVF.constructor(M_ParseTree.Production_prod_Symbol_list_Symbol_set_Attr, new IValue[]{((IConstructor)($RVF.constructor(M_ParseTree.Symbol_lit_str, new IValue[]{((IString)$constants.get(27)/*"+"*/)}, Util.kwpMap("id", ((IInteger)$constants.get(13)/*3*/))))), ((IList)($RVF.list(((IConstructor)($RVF.constructor(M_ParseTree.Symbol_char_class_list_CharRange, new IValue[]{((IList)$constants.get(28)/*[range(43,43)]*/)}, Util.kwpMap("id", ((IInteger)$constants.get(15)/*4*/)))))))), ((ISet)$constants.get(16)/*{}*/)}))))))))), ((IConstructor)$constants.get(29)/*lit("*")*/), M_Type.choice(((IConstructor)($RVF.constructor(M_ParseTree.Symbol_lit_str, new IValue[]{((IString)$constants.get(30)/*"*"*/)}, Util.kwpMap("id", ((IInteger)$constants.get(18)/*5*/))))), ((ISet)($RVF.set(((IConstructor)($RVF.constructor(M_ParseTree.Production_prod_Symbol_list_Symbol_set_Attr, new IValue[]{((IConstructor)($RVF.constructor(M_ParseTree.Symbol_lit_str, new IValue[]{((IString)$constants.get(30)/*"*"*/)}, Util.kwpMap("id", ((IInteger)$constants.get(19)/*6*/))))), ((IList)($RVF.list(((IConstructor)($RVF.constructor(M_ParseTree.Symbol_char_class_list_CharRange, new IValue[]{((IList)$constants.get(31)/*[range(42,42)]*/)}, Util.kwpMap("id", ((IInteger)$constants.get(21)/*7*/)))))))), ((ISet)$constants.get(16)/*{}*/)}))))))), ((IConstructor)$constants.get(32)/*sort("B")*/), M_Type.choice(((IConstructor)($RVF.constructor(M_ParseTree.Symbol_sort_str, new IValue[]{((IString)$constants.get(33)/*"B"*/)}, Util.kwpMap("id", ((IInteger)$constants.get(34)/*8*/))))), ((ISet)($RVF.set(((IConstructor)($RVF.constructor(M_ParseTree.Production_prod_Symbol_list_Symbol_set_Attr, new IValue[]{((IConstructor)($RVF.constructor(M_ParseTree.Symbol_sort_str, new IValue[]{((IString)$constants.get(33)/*"B"*/)}, Util.kwpMap("id", ((IInteger)$constants.get(35)/*11*/))))), ((IList)($RVF.list(((IConstructor)($RVF.constructor(M_ParseTree.Symbol_lit_str, new IValue[]{((IString)$constants.get(36)/*"1"*/)}, Util.kwpMap("id", ((IInteger)$constants.get(37)/*12*/)))))))), ((ISet)$constants.get(16)/*{}*/)}))), $RVF.constructor(M_ParseTree.Production_prod_Symbol_list_Symbol_set_Attr, new IValue[]{((IConstructor)($RVF.constructor(M_ParseTree.Symbol_sort_str, new IValue[]{((IString)$constants.get(33)/*"B"*/)}, Util.kwpMap("id", ((IInteger)$constants.get(38)/*9*/))))), ((IList)($RVF.list(((IConstructor)($RVF.constructor(M_ParseTree.Symbol_lit_str, new IValue[]{((IString)$constants.get(14)/*"0"*/)}, Util.kwpMap("id", ((IInteger)$constants.get(39)/*10*/)))))))), ((ISet)$constants.get(16)/*{}*/)}))))), ((IConstructor)$constants.get(17)/*lit("0")*/), M_Type.choice(((IConstructor)($RVF.constructor(M_ParseTree.Symbol_lit_str, new IValue[]{((IString)$constants.get(14)/*"0"*/)}, Util.kwpMap("id", ((IInteger)$constants.get(40)/*13*/))))), ((ISet)($RVF.set(((IConstructor)($RVF.constructor(M_ParseTree.Production_prod_Symbol_list_Symbol_set_Attr, new IValue[]{((IConstructor)($RVF.constructor(M_ParseTree.Symbol_lit_str, new IValue[]{((IString)$constants.get(14)/*"0"*/)}, Util.kwpMap("id", ((IInteger)$constants.get(41)/*14*/))))), ((IList)($RVF.list(((IConstructor)($RVF.constructor(M_ParseTree.Symbol_char_class_list_CharRange, new IValue[]{((IList)$constants.get(20)/*[range(48,48)]*/)}, Util.kwpMap("id", ((IInteger)$constants.get(42)/*15*/)))))))), ((ISet)$constants.get(16)/*{}*/)}))))))), ((IConstructor)$constants.get(43)/*sort("E")*/), M_Type.choice(((IConstructor)($RVF.constructor(M_ParseTree.Symbol_sort_str, new IValue[]{((IString)$constants.get(44)/*"E"*/)}, Util.kwpMap("id", ((IInteger)$constants.get(45)/*16*/))))), ((ISet)($RVF.set(((IConstructor)($RVF.constructor(M_ParseTree.Production_prod_Symbol_list_Symbol_set_Attr, new IValue[]{((IConstructor)($RVF.constructor(M_ParseTree.Symbol_sort_str, new IValue[]{((IString)$constants.get(44)/*"E"*/)}, Util.kwpMap("id", ((IInteger)$constants.get(46)/*23*/))))), ((IList)($RVF.list(((IConstructor)($RVF.constructor(M_ParseTree.Symbol_sort_str, new IValue[]{((IString)$constants.get(44)/*"E"*/)}, Util.kwpMap("id", ((IInteger)$constants.get(47)/*24*/))))), $RVF.constructor(M_ParseTree.Symbol_lit_str, new IValue[]{((IString)$constants.get(30)/*"*"*/)}, Util.kwpMap("id", ((IInteger)$constants.get(48)/*25*/))), $RVF.constructor(M_ParseTree.Symbol_sort_str, new IValue[]{((IString)$constants.get(33)/*"B"*/)}, Util.kwpMap("id", ((IInteger)$constants.get(49)/*26*/)))))), ((ISet)$constants.get(16)/*{}*/)}))), $RVF.constructor(M_ParseTree.Production_prod_Symbol_list_Symbol_set_Attr, new IValue[]{((IConstructor)($RVF.constructor(M_ParseTree.Symbol_sort_str, new IValue[]{((IString)$constants.get(44)/*"E"*/)}, Util.kwpMap("id", ((IInteger)$constants.get(50)/*17*/))))), ((IList)($RVF.list(((IConstructor)($RVF.constructor(M_ParseTree.Symbol_sort_str, new IValue[]{((IString)$constants.get(33)/*"B"*/)}, Util.kwpMap("id", ((IInteger)$constants.get(51)/*18*/)))))))), ((ISet)$constants.get(16)/*{}*/)}), $RVF.constructor(M_ParseTree.Production_prod_Symbol_list_Symbol_set_Attr, new IValue[]{((IConstructor)($RVF.constructor(M_ParseTree.Symbol_sort_str, new IValue[]{((IString)$constants.get(44)/*"E"*/)}, Util.kwpMap("id", ((IInteger)$constants.get(52)/*19*/))))), ((IList)($RVF.list(((IConstructor)($RVF.constructor(M_ParseTree.Symbol_sort_str, new IValue[]{((IString)$constants.get(44)/*"E"*/)}, Util.kwpMap("id", ((IInteger)$constants.get(53)/*20*/))))), $RVF.constructor(M_ParseTree.Symbol_lit_str, new IValue[]{((IString)$constants.get(27)/*"+"*/)}, Util.kwpMap("id", ((IInteger)$constants.get(54)/*21*/))), $RVF.constructor(M_ParseTree.Symbol_sort_str, new IValue[]{((IString)$constants.get(33)/*"B"*/)}, Util.kwpMap("id", ((IInteger)$constants.get(55)/*22*/)))))), ((ISet)$constants.get(16)/*{}*/)}))))), ((IConstructor)$constants.get(56)/*lit("1")*/), M_Type.choice(((IConstructor)($RVF.constructor(M_ParseTree.Symbol_lit_str, new IValue[]{((IString)$constants.get(36)/*"1"*/)}, Util.kwpMap("id", ((IInteger)$constants.get(57)/*27*/))))), ((ISet)($RVF.set(((IConstructor)($RVF.constructor(M_ParseTree.Production_prod_Symbol_list_Symbol_set_Attr, new IValue[]{((IConstructor)($RVF.constructor(M_ParseTree.Symbol_lit_str, new IValue[]{((IString)$constants.get(36)/*"1"*/)}, Util.kwpMap("id", ((IInteger)$constants.get(58)/*28*/))))), ((IList)($RVF.list(((IConstructor)($RVF.constructor(M_ParseTree.Symbol_char_class_list_CharRange, new IValue[]{((IList)$constants.get(59)/*[range(49,49)]*/)}, Util.kwpMap("id", ((IInteger)$constants.get(60)/*29*/)))))))), ((ISet)$constants.get(16)/*{}*/)}))))))))))})))))); + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/lang/rascal/grammar/tests/ParserGeneratorTests.rsc|(3899,78,<143,0>,<143,78>) + public IBool lang_rascal_grammar_tests_ParserGeneratorTests_tstGenerateNewItems1$f0906250d019df65(){ + + + return ((IBool)($equal(((IMap)(M_lang_rascal_grammar_ParserGenerator.generateNewItems(((IConstructor)(M_lang_rascal_grammar_ParserGenerator.makeUnique(((IConstructor)M_lang_rascal_grammar_tests_TestGrammars.GEMPTY))))))), ((IMap)$constants.get(61)/*()*/)))); + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/lang/rascal/grammar/tests/ParserGeneratorTests.rsc|(3979,504,<145,0>,<159,2>) + public IBool lang_rascal_grammar_tests_ParserGeneratorTests_tstGenerateNewItems2$4608cf9bff693c0b(){ + + + return ((IBool)($equal(((IMap)(M_lang_rascal_grammar_ParserGenerator.generateNewItems(((IConstructor)(M_lang_rascal_grammar_ParserGenerator.makeUnique(((IConstructor)M_lang_rascal_grammar_tests_TestGrammars.G0))))))), ((IMap)($buildMap(((IConstructor)$constants.get(0)/*sort("S")*/), ((IMap)($buildMap(((IConstructor)($RVF.constructor(M_Grammar.Item_item_Production_int, new IValue[]{((IConstructor)$constants.get(62)/*prod(sort("S"),[lit("0")],{})*/), ((IInteger)$constants.get(24)/*0*/)}))), ((ITuple)$constants.get(63)/*<"new LiteralStackNode\(4, 0, cHJvZChsaXQoIjAiKSxbXGNoYXItY2xhc3MoW3JhbmdlKDQ4LDQ4KV0 ...*/)))), ((IConstructor)$constants.get(17)/*lit("0")*/), $buildMap(((IConstructor)($RVF.constructor(M_Grammar.Item_item_Production_int, new IValue[]{((IConstructor)$constants.get(64)/*prod(lit("0"),[\char-class([range(48,48)])],{})*/), ((IInteger)$constants.get(24)/*0*/)}))), ((ITuple)$constants.get(66)/*<"new CharStackNode\(7, 0, new int[][]{{48,48}}, null, null)",7>*/)))))))); + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/lang/rascal/grammar/tests/ParserGeneratorTests.rsc|(4485,2964,<161,0>,<269,2>) + public IBool lang_rascal_grammar_tests_ParserGeneratorTests_tstGenerateNewItems3$125f77ee68340d60(){ + + + return ((IBool)($equal(((IMap)(M_lang_rascal_grammar_ParserGenerator.generateNewItems(((IConstructor)(M_lang_rascal_grammar_ParserGenerator.makeUnique(((IConstructor)M_lang_rascal_grammar_tests_TestGrammars.GEXP))))))), ((IMap)($buildMap(((IConstructor)$constants.get(26)/*lit("+")*/), ((IMap)($buildMap(((IConstructor)($RVF.constructor(M_Grammar.Item_item_Production_int, new IValue[]{((IConstructor)$constants.get(67)/*prod(lit("+"),[\char-class([range(43,43)])],{})*/), ((IInteger)$constants.get(24)/*0*/)}))), ((ITuple)$constants.get(69)/*<"new CharStackNode\(4, 0, new int[][]{{43,43}}, null, null)",4>*/)))), ((IConstructor)$constants.get(29)/*lit("*")*/), $buildMap(((IConstructor)($RVF.constructor(M_Grammar.Item_item_Production_int, new IValue[]{((IConstructor)$constants.get(70)/*prod(lit("*"),[\char-class([range(42,42)])],{})*/), ((IInteger)$constants.get(24)/*0*/)}))), ((ITuple)$constants.get(72)/*<"new CharStackNode\(7, 0, new int[][]{{42,42}}, null, null)",7>*/)), ((IConstructor)$constants.get(32)/*sort("B")*/), $buildMap(((IConstructor)($RVF.constructor(M_Grammar.Item_item_Production_int, new IValue[]{((IConstructor)$constants.get(73)/*prod(sort("B"),[lit("0")],{})*/), ((IInteger)$constants.get(24)/*0*/)}))), ((ITuple)$constants.get(74)/*<"new LiteralStackNode\(10, 0, cHJvZChsaXQoIjAiKSxbXGNoYXItY2xhc3MoW3JhbmdlKDQ4LDQ4KV ...*/), $RVF.constructor(M_Grammar.Item_item_Production_int, new IValue[]{((IConstructor)$constants.get(75)/*prod(sort("B"),[lit("1")],{})*/), ((IInteger)$constants.get(24)/*0*/)}), ((ITuple)$constants.get(76)/*<"new LiteralStackNode\(12, 0, cHJvZChsaXQoIjEiKSxbXGNoYXItY2xhc3MoW3JhbmdlKDQ5LDQ5KV ...*/)), ((IConstructor)$constants.get(17)/*lit("0")*/), $buildMap(((IConstructor)($RVF.constructor(M_Grammar.Item_item_Production_int, new IValue[]{((IConstructor)$constants.get(64)/*prod(lit("0"),[\char-class([range(48,48)])],{})*/), ((IInteger)$constants.get(24)/*0*/)}))), ((ITuple)$constants.get(77)/*<"new CharStackNode\(15, 0, new int[][]{{48,48}}, null, null)",15>*/)), ((IConstructor)$constants.get(43)/*sort("E")*/), $buildMap(((IConstructor)($RVF.constructor(M_Grammar.Item_item_Production_int, new IValue[]{((IConstructor)$constants.get(78)/*prod(sort("E"),[sort("B")],{})*/), ((IInteger)$constants.get(24)/*0*/)}))), ((ITuple)$constants.get(79)/*<"new NonTerminalStackNode\(18, 0, \"B\", null, null)",18>*/), $RVF.constructor(M_Grammar.Item_item_Production_int, new IValue[]{((IConstructor)$constants.get(80)/*prod(sort("E"),[sort("E"),lit("*"),sort("B")],{})*/), ((IInteger)$constants.get(81)/*1*/)}), ((ITuple)$constants.get(82)/*<"new LiteralStackNode\(25, 1, cHJvZChsaXQoIioiKSxbXGNoYXItY2xhc3MoW3JhbmdlKDQyLDQyKV ...*/), $RVF.constructor(M_Grammar.Item_item_Production_int, new IValue[]{((IConstructor)$constants.get(83)/*prod(sort("E"),[sort("E"),lit("+"),sort("B")],{})*/), ((IInteger)$constants.get(81)/*1*/)}), ((ITuple)$constants.get(84)/*<"new LiteralStackNode\(21, 1, cHJvZChsaXQoIisiKSxbXGNoYXItY2xhc3MoW3JhbmdlKDQzLDQzKV ...*/), $RVF.constructor(M_Grammar.Item_item_Production_int, new IValue[]{((IConstructor)$constants.get(83)/*prod(sort("E"),[sort("E"),lit("+"),sort("B")],{})*/), ((IInteger)$constants.get(24)/*0*/)}), ((ITuple)$constants.get(85)/*<"new NonTerminalStackNode\(20, 0, \"E\", null, null)",20>*/), $RVF.constructor(M_Grammar.Item_item_Production_int, new IValue[]{((IConstructor)$constants.get(80)/*prod(sort("E"),[sort("E"),lit("*"),sort("B")],{})*/), ((IInteger)$constants.get(24)/*0*/)}), ((ITuple)$constants.get(86)/*<"new NonTerminalStackNode\(24, 0, \"E\", null, null)",24>*/), $RVF.constructor(M_Grammar.Item_item_Production_int, new IValue[]{((IConstructor)$constants.get(80)/*prod(sort("E"),[sort("E"),lit("*"),sort("B")],{})*/), ((IInteger)$constants.get(12)/*2*/)}), ((ITuple)$constants.get(87)/*<"new NonTerminalStackNode\(26, 2, \"B\", null, null)",26>*/), $RVF.constructor(M_Grammar.Item_item_Production_int, new IValue[]{((IConstructor)$constants.get(83)/*prod(sort("E"),[sort("E"),lit("+"),sort("B")],{})*/), ((IInteger)$constants.get(12)/*2*/)}), ((ITuple)$constants.get(88)/*<"new NonTerminalStackNode\(22, 2, \"B\", null, null)",22>*/)), ((IConstructor)$constants.get(56)/*lit("1")*/), $buildMap(((IConstructor)($RVF.constructor(M_Grammar.Item_item_Production_int, new IValue[]{((IConstructor)$constants.get(89)/*prod(lit("1"),[\char-class([range(49,49)])],{})*/), ((IInteger)$constants.get(24)/*0*/)}))), ((ITuple)$constants.get(91)/*<"new CharStackNode\(29, 0, new int[][]{{49,49}}, null, null)",29>*/)))))))); + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/lang/rascal/grammar/tests/ParserGeneratorTests.rsc|(7451,124,<271,0>,<271,124>) + public IBool lang_rascal_grammar_tests_ParserGeneratorTests_tstComputeDontNests1$178065f57b4fed4b(){ + + + return ((IBool)($equal(((ISet)(M_lang_rascal_grammar_ParserGenerator.computeDontNests(((IMap)(M_lang_rascal_grammar_ParserGenerator.generateNewItems(((IConstructor)(M_lang_rascal_grammar_ParserGenerator.makeUnique(((IConstructor)M_lang_rascal_grammar_tests_TestGrammars.GEMPTY))))))), ((IConstructor)M_lang_rascal_grammar_tests_TestGrammars.GEMPTY), ((IConstructor)(M_lang_rascal_grammar_ParserGenerator.makeUnique(((IConstructor)M_lang_rascal_grammar_tests_TestGrammars.GEMPTY))))))), ((ISet)$constants.get(16)/*{}*/)))); + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/lang/rascal/grammar/tests/ParserGeneratorTests.rsc|(7576,112,<272,0>,<272,112>) + public IBool lang_rascal_grammar_tests_ParserGeneratorTests_tstComputeDontNests2$86b7bef9c88d6554(){ + + + return ((IBool)($equal(((ISet)(M_lang_rascal_grammar_ParserGenerator.computeDontNests(((IMap)(M_lang_rascal_grammar_ParserGenerator.generateNewItems(((IConstructor)(M_lang_rascal_grammar_ParserGenerator.makeUnique(((IConstructor)M_lang_rascal_grammar_tests_TestGrammars.G0))))))), ((IConstructor)M_lang_rascal_grammar_tests_TestGrammars.G0), ((IConstructor)(M_lang_rascal_grammar_ParserGenerator.makeUnique(((IConstructor)M_lang_rascal_grammar_tests_TestGrammars.G0))))))), ((ISet)$constants.get(16)/*{}*/)))); + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/lang/rascal/grammar/tests/ParserGeneratorTests.rsc|(7689,118,<273,0>,<273,118>) + public IBool lang_rascal_grammar_tests_ParserGeneratorTests_tstComputeDontNests3$4cbf45cd51bd7a8a(){ + + + return ((IBool)($equal(((ISet)(M_lang_rascal_grammar_ParserGenerator.computeDontNests(((IMap)(M_lang_rascal_grammar_ParserGenerator.generateNewItems(((IConstructor)(M_lang_rascal_grammar_ParserGenerator.makeUnique(((IConstructor)M_lang_rascal_grammar_tests_TestGrammars.GEXP))))))), ((IConstructor)M_lang_rascal_grammar_tests_TestGrammars.GEXP), ((IConstructor)(M_lang_rascal_grammar_ParserGenerator.makeUnique(((IConstructor)M_lang_rascal_grammar_tests_TestGrammars.GEXP))))))), ((ISet)$constants.get(16)/*{}*/)))); + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/lang/rascal/grammar/tests/ParserGeneratorTests.rsc|(7808,130,<274,0>,<274,130>) + public IBool lang_rascal_grammar_tests_ParserGeneratorTests_tstComputeDontNests4$29d1a74761dcb91d(){ + + + return ((IBool)($equal(((ISet)(M_lang_rascal_grammar_ParserGenerator.computeDontNests(((IMap)(M_lang_rascal_grammar_ParserGenerator.generateNewItems(((IConstructor)(M_lang_rascal_grammar_ParserGenerator.makeUnique(((IConstructor)M_lang_rascal_grammar_tests_TestGrammars.GEXPPRIO))))))), ((IConstructor)M_lang_rascal_grammar_tests_TestGrammars.GEXPPRIO), ((IConstructor)(M_lang_rascal_grammar_ParserGenerator.makeUnique(((IConstructor)M_lang_rascal_grammar_tests_TestGrammars.GEXPPRIO))))))), ((ISet)$constants.get(16)/*{}*/)))); + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/lang/rascal/grammar/tests/ParserGeneratorTests.rsc|(7940,352,<276,0>,<292,5>) + public IBool lang_rascal_grammar_tests_ParserGeneratorTests_tstExpandParameterizedSymbols5$4798a5517a5aea97(){ + + + return ((IBool)($equal(((IConstructor)(M_lang_rascal_grammar_definition_Parameters.expandParameterizedSymbols(((IConstructor)M_lang_rascal_grammar_tests_TestGrammars.G0)))), ((IConstructor)($RVF.constructor(M_Grammar.Grammar_grammar_set_Symbol_map_Symbol_Production, new IValue[]{((ISet)$constants.get(10)/*{sort("S")}*/), ((IMap)($buildMap(((IConstructor)$constants.get(0)/*sort("S")*/), ((IConstructor)(M_Type.choice(((IConstructor)$constants.get(0)/*sort("S")*/), ((ISet)$constants.get(92)/*{prod(sort("S"),[lit("0")],{})}*/)))), ((IConstructor)$constants.get(17)/*lit("0")*/), M_Type.choice(((IConstructor)$constants.get(17)/*lit("0")*/), ((ISet)$constants.get(93)/*{prod(lit("0"),[\char-class([range(48,48)])],{})}*/)))))})))))); + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/lang/rascal/grammar/tests/ParserGeneratorTests.rsc|(8408,658,<296,0>,<301,1>) + public void lang_rascal_grammar_tests_ParserGeneratorTests_generateParsers$41133e6df5c3877f(){ + + + M_IO.writeFile(((ISourceLocation)($aloc_add_astr(((ISourceLocation)ParserBaseLoc),((IString)$constants.get(94)/*"GEMPTYParser.java.gz"*/)))), $RVF.list(M_lang_rascal_grammar_ParserGenerator.newGenerate(((IString)$constants.get(95)/*"org.rascalmpl.library.lang.rascal.grammar.tests.generated_parsers"*/), ((IString)$constants.get(96)/*"GEMPTYParser"*/), ((IConstructor)M_lang_rascal_grammar_tests_TestGrammars.GEMPTY))), Util.kwpMap()); + M_IO.writeFile(((ISourceLocation)($aloc_add_astr(((ISourceLocation)ParserBaseLoc),((IString)$constants.get(97)/*"G0Parser.java.gz"*/)))), $RVF.list(M_lang_rascal_grammar_ParserGenerator.newGenerate(((IString)$constants.get(95)/*"org.rascalmpl.library.lang.rascal.grammar.tests.generated_parsers"*/), ((IString)$constants.get(98)/*"G0Parser"*/), ((IConstructor)M_lang_rascal_grammar_tests_TestGrammars.G0))), Util.kwpMap()); + M_IO.writeFile(((ISourceLocation)($aloc_add_astr(((ISourceLocation)ParserBaseLoc),((IString)$constants.get(99)/*"GEXPParser.java.gz"*/)))), $RVF.list(M_lang_rascal_grammar_ParserGenerator.newGenerate(((IString)$constants.get(95)/*"org.rascalmpl.library.lang.rascal.grammar.tests.generated_parsers"*/), ((IString)$constants.get(100)/*"GEXPParser"*/), ((IConstructor)M_lang_rascal_grammar_tests_TestGrammars.GEXP))), Util.kwpMap()); + M_IO.writeFile(((ISourceLocation)($aloc_add_astr(((ISourceLocation)ParserBaseLoc),((IString)$constants.get(101)/*"GEXPPRIOParser.java.gz"*/)))), $RVF.list(M_lang_rascal_grammar_ParserGenerator.newGenerate(((IString)$constants.get(95)/*"org.rascalmpl.library.lang.rascal.grammar.tests.generated_parsers"*/), ((IString)$constants.get(102)/*"GEXPPRIOParser"*/), ((IConstructor)M_lang_rascal_grammar_tests_TestGrammars.GEXPPRIO))), Util.kwpMap()); + return; + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/lang/rascal/grammar/tests/ParserGeneratorTests.rsc|(9069,102,<303,0>,<304,58>) + public IList lang_rascal_grammar_tests_ParserGeneratorTests_removeEmptyLines$9fbb4822aae1800c(IString s_0){ + + + final IListWriter $listwriter18 = (IListWriter)$RVF.listWriter(); + $LCOMP19_GEN9126: + for(IValue $elem22_for : ((IList)(M_String.split(((IString)$constants.get(103)/*" + "*/), ((IString)s_0))))){ + IString $elem22 = (IString) $elem22_for; + IString line_1 = null; + final Matcher $matcher20 = (Matcher)$regExpCompile("^[ \t]*$", ((IString)($elem22)).getValue()); + boolean $found21 = true; + + while($found21){ + $found21 = $matcher20.find(); + if($found21){ + $listwriter18.append($elem22); + + } else { + break $LCOMP19_GEN9126; // muSucceed + } + } + + } + + return ((IList)($listwriter18.done())); + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/lang/rascal/grammar/tests/ParserGeneratorTests.rsc|(9173,88,<306,0>,<306,88>) + public IBool lang_rascal_grammar_tests_ParserGeneratorTests_sameLines$9f2b894a20ecc2fd(IString s1_0, IString s2_1){ + + + return ((IBool)($equal(((IInteger)(M_List.size(((IList)(((IList)($me.removeEmptyLines(((IString)s1_0)))).subtract(((IList)($me.removeEmptyLines(((IString)s2_1)))))))))), ((IInteger)$constants.get(24)/*0*/)))); + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/lang/rascal/grammar/tests/ParserGeneratorTests.rsc|(9264,247,<308,0>,<310,93>) + public IBool lang_rascal_grammar_tests_ParserGeneratorTests_tstNewGenerateGEMPTY$3ffe02b6dd93ee4e(){ + + + return ((IBool)($me.sameLines(((IString)(M_lang_rascal_grammar_ParserGenerator.newGenerate(((IString)$constants.get(95)/*"org.rascalmpl.library.lang.rascal.grammar.tests.generated_parsers"*/), ((IString)$constants.get(96)/*"GEMPTYParser"*/), ((IConstructor)M_lang_rascal_grammar_tests_TestGrammars.GEMPTY)))), ((IString)(M_IO.readFile(((ISourceLocation)($create_aloc(((IString)$constants.get(104)/*"std:///lang/rascal/grammar/tests/generated_parsers/GEMPTYParser.java.gz"*/)))), Util.kwpMap())))))); + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/lang/rascal/grammar/tests/ParserGeneratorTests.rsc|(9521,234,<312,0>,<314,92>) + public IBool lang_rascal_grammar_tests_ParserGeneratorTests_tstNewGenerateG0$626d69ed168bf92a(){ + + + return ((IBool)($me.sameLines(((IString)(M_lang_rascal_grammar_ParserGenerator.newGenerate(((IString)$constants.get(95)/*"org.rascalmpl.library.lang.rascal.grammar.tests.generated_parsers"*/), ((IString)$constants.get(98)/*"G0Parser"*/), ((IConstructor)M_lang_rascal_grammar_tests_TestGrammars.G0)))), ((IString)(M_IO.readFile(((ISourceLocation)($create_aloc(((IString)$constants.get(105)/*"std:///lang/rascal/grammar/tests/generated_parsers/G0Parser.java.gz"*/)))), Util.kwpMap())))))); + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/lang/rascal/grammar/tests/ParserGeneratorTests.rsc|(9768,232,<316,0>,<318,84>) + public IBool lang_rascal_grammar_tests_ParserGeneratorTests_tstNewGenerateGEXP$f6b27f467ead5c91(){ + + + return ((IBool)($me.sameLines(((IString)(M_lang_rascal_grammar_ParserGenerator.newGenerate(((IString)$constants.get(95)/*"org.rascalmpl.library.lang.rascal.grammar.tests.generated_parsers"*/), ((IString)$constants.get(100)/*"GEXPParser"*/), ((IConstructor)M_lang_rascal_grammar_tests_TestGrammars.GEXP)))), ((IString)(M_IO.readFile(((ISourceLocation)($create_aloc(((IString)$constants.get(106)/*"std:///lang/rascal/grammar/tests/generated_parsers/GEXPParser.java.gz"*/)))), Util.kwpMap())))))); + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/lang/rascal/grammar/tests/ParserGeneratorTests.rsc|(10003,255,<320,0>,<322,95>) + public IBool lang_rascal_grammar_tests_ParserGeneratorTests_tstNewGenerateGEXPPRIO$a7647a8a5293299c(){ + + + return ((IBool)($me.sameLines(((IString)(M_lang_rascal_grammar_ParserGenerator.newGenerate(((IString)$constants.get(95)/*"org.rascalmpl.library.lang.rascal.grammar.tests.generated_parsers"*/), ((IString)$constants.get(102)/*"GEXPPRIOParser"*/), ((IConstructor)M_lang_rascal_grammar_tests_TestGrammars.GEXPPRIO)))), ((IString)(M_IO.readFile(((ISourceLocation)($create_aloc(((IString)$constants.get(107)/*"std:///lang/rascal/grammar/tests/generated_parsers/GEXPPRIOParser.java.gz"*/)))), Util.kwpMap())))))); + + } + + + public static void main(String[] args) { + long start_time = System.currentTimeMillis(); + RascalExecutionContext rex = new RascalExecutionContext(new InputStreamReader(System.in), new PrintWriter(System.out), new PrintWriter(System.err), null, null, rascal.lang.rascal.grammar.tests.$ParserGeneratorTests.class); + $ParserGeneratorTests instance = new $ParserGeneratorTests(rex); + long init_time = System.currentTimeMillis(); + + IValue res = instance.lang_rascal_grammar_tests_ParserGeneratorTests_main$cf8e6ccdc28df2e3(); + + long end_time = System.currentTimeMillis(); + if (res == null) { + throw new RuntimeException("Main function failed"); + } else { + System.out.println(res); + } + System.err.println("Running lang.rascal.grammar.tests.$ParserGeneratorTests: init: " + (init_time - start_time) + " ms, exec: " + (end_time - init_time) + " ms, total: " + (end_time - start_time) + " ms"); + + } +} \ No newline at end of file diff --git a/src/rascal/lang/rascal/grammar/tests/$ParserGeneratorTests.tpl b/src/rascal/lang/rascal/grammar/tests/$ParserGeneratorTests.tpl new file mode 100644 index 00000000000..0707507c6de Binary files /dev/null and b/src/rascal/lang/rascal/grammar/tests/$ParserGeneratorTests.tpl differ diff --git a/src/rascal/lang/rascal/grammar/tests/$ParserGeneratorTests_$I.java b/src/rascal/lang/rascal/grammar/tests/$ParserGeneratorTests_$I.java new file mode 100644 index 00000000000..17e68bf10bf --- /dev/null +++ b/src/rascal/lang/rascal/grammar/tests/$ParserGeneratorTests_$I.java @@ -0,0 +1,43 @@ +package rascal.lang.rascal.grammar.tests; +import io.usethesource.vallang.*; +import org.rascalmpl.runtime.function.*; + +@SuppressWarnings("unused") +public interface $ParserGeneratorTests_$I { + void generateParsers(); + IValue removeEmptyLines(IValue $0); + IValue sameLines(IValue $0, IValue $1); + IValue tstComputeDontNests1(); + IValue tstComputeDontNests2(); + IValue tstComputeDontNests3(); + IValue tstComputeDontNests4(); + IValue tstEsc1(); + IValue tstEsc10(); + IValue tstEsc2(); + IValue tstEsc3(); + IValue tstEsc4(); + IValue tstEsc5(); + IValue tstEsc6(); + IValue tstEsc7(); + IValue tstEsc8(); + IValue tstEsc9(); + IValue tstExpandParameterizedSymbols1(); + IValue tstExpandParameterizedSymbols2(); + IValue tstExpandParameterizedSymbols3(); + IValue tstExpandParameterizedSymbols4(); + IValue tstExpandParameterizedSymbols5(); + IValue tstGenerateNewItems1(); + IValue tstGenerateNewItems2(); + IValue tstGenerateNewItems3(); + IValue tstLiterals1(); + IValue tstLiterals2(); + IValue tstLiterals3(); + IValue tstLiterals4(); + IValue tstNewGenerateG0(); + IValue tstNewGenerateGEMPTY(); + IValue tstNewGenerateGEXP(); + IValue tstNewGenerateGEXPPRIO(); + IValue tstUnique0(); + IValue tstUnique1(); + IValue tstUnique2(); +} \ No newline at end of file diff --git a/src/rascal/lang/rascal/grammar/tests/$TestGrammars.constants b/src/rascal/lang/rascal/grammar/tests/$TestGrammars.constants new file mode 100644 index 00000000000..1cab5387adf Binary files /dev/null and b/src/rascal/lang/rascal/grammar/tests/$TestGrammars.constants differ diff --git a/src/rascal/lang/rascal/grammar/tests/$TestGrammars.java b/src/rascal/lang/rascal/grammar/tests/$TestGrammars.java new file mode 100644 index 00000000000..2fce54a828c --- /dev/null +++ b/src/rascal/lang/rascal/grammar/tests/$TestGrammars.java @@ -0,0 +1,193 @@ +package rascal.lang.rascal.grammar.tests; +import java.io.PrintWriter; +import java.io.StringWriter; +import java.io.InputStreamReader; +import java.io.PrintWriter; +import java.util.*; +import java.util.regex.Matcher; +import io.usethesource.vallang.*; +import io.usethesource.vallang.type.*; +import org.rascalmpl.runtime.*; +import org.rascalmpl.runtime.RascalExecutionContext; +import org.rascalmpl.runtime.function.*; +import org.rascalmpl.runtime.traverse.*; +import org.rascalmpl.runtime.utils.*; +import org.rascalmpl.exceptions.RuntimeExceptionFactory; +import org.rascalmpl.exceptions.Throw; +import org.rascalmpl.runtime.RascalExecutionContext; +import org.rascalmpl.interpreter.control_exceptions.Filtered; +import org.rascalmpl.types.NonTerminalType; +import org.rascalmpl.types.RascalTypeFactory; +import org.rascalmpl.util.ExpiringFunctionResultCache; +import org.rascalmpl.values.RascalValueFactory; +import org.rascalmpl.values.ValueFactoryFactory; +import org.rascalmpl.values.parsetrees.ITree; +import org.rascalmpl.values.parsetrees.TreeAdapter; + + + +@SuppressWarnings({"unused","unchecked","deprecation"}) +public class $TestGrammars + extends + org.rascalmpl.runtime.$RascalModule + implements + rascal.lang.rascal.grammar.tests.$TestGrammars_$I { + + private final $TestGrammars_$I $me; + private final IList $constants; + + + public final rascal.$ParseTree M_ParseTree; + public final rascal.$Type M_Type; + public final rascal.$List M_List; + public final rascal.$Grammar M_Grammar; + public final rascal.$Message M_Message; + + + + public IConstructor GEMPTY; + public IConstructor G0; + public IMap Lit1; + public IConstructor GEXP; + public IConstructor GEXPPRIO; + public final io.usethesource.vallang.type.Type $T4; /*astr()*/ + public final io.usethesource.vallang.type.Type $T2; /*avalue()*/ + public final io.usethesource.vallang.type.Type $T3; /*aparameter("T",avalue(),closed=false)*/ + public final io.usethesource.vallang.type.Type ADT_LocationType; /*aadt("LocationType",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Exception; /*aadt("Exception",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_CharRange; /*aadt("CharRange",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Grammar; /*aadt("Grammar",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Associativity; /*aadt("Associativity",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_GrammarDefinition; /*aadt("GrammarDefinition",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_IOCapability; /*aadt("IOCapability",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_GrammarModule; /*aadt("GrammarModule",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Tree; /*aadt("Tree",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Item; /*aadt("Item",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Attr; /*aadt("Attr",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_LocationChangeType; /*aadt("LocationChangeType",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_LocationChangeEvent; /*aadt("LocationChangeEvent",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type $T5; /*aparameter("T",aadt("Tree",[],dataSyntax()),closed=true)*/ + public final io.usethesource.vallang.type.Type ADT_RuntimeException; /*aadt("RuntimeException",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Symbol; /*aadt("Symbol",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type $T0; /*alist(aadt("Symbol",[],dataSyntax()))*/ + public final io.usethesource.vallang.type.Type ADT_Message; /*aadt("Message",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Production; /*aadt("Production",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type $T1; /*alist(aparameter("T",avalue(),closed=false))*/ + public final io.usethesource.vallang.type.Type ADT_Condition; /*aadt("Condition",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_TreeSearchResult_1; /*aadt("TreeSearchResult",[aparameter("T",aadt("Tree",[],dataSyntax()),closed=true)],dataSyntax())*/ + + public $TestGrammars(RascalExecutionContext rex){ + this(rex, null); + } + + public $TestGrammars(RascalExecutionContext rex, Object extended){ + super(rex); + this.$me = extended == null ? this : ($TestGrammars_$I)extended; + ModuleStore mstore = rex.getModuleStore(); + mstore.put(rascal.lang.rascal.grammar.tests.$TestGrammars.class, this); + + mstore.importModule(rascal.$ParseTree.class, rex, rascal.$ParseTree::new); + mstore.importModule(rascal.$Type.class, rex, rascal.$Type::new); + mstore.importModule(rascal.$List.class, rex, rascal.$List::new); + mstore.importModule(rascal.$Grammar.class, rex, rascal.$Grammar::new); + mstore.importModule(rascal.$Message.class, rex, rascal.$Message::new); + + M_ParseTree = mstore.getModule(rascal.$ParseTree.class); + M_Type = mstore.getModule(rascal.$Type.class); + M_List = mstore.getModule(rascal.$List.class); + M_Grammar = mstore.getModule(rascal.$Grammar.class); + M_Message = mstore.getModule(rascal.$Message.class); + + + + $TS.importStore(M_ParseTree.$TS); + $TS.importStore(M_Type.$TS); + $TS.importStore(M_List.$TS); + $TS.importStore(M_Grammar.$TS); + $TS.importStore(M_Message.$TS); + + $constants = readBinaryConstantsFile(this.getClass(), "rascal/lang/rascal/grammar/tests/$TestGrammars.constants", 37, "0216de9aa14f535c59b1e3472ab6f119"); + ADT_LocationType = $adt("LocationType"); + ADT_Exception = $adt("Exception"); + ADT_CharRange = $adt("CharRange"); + ADT_Grammar = $adt("Grammar"); + ADT_Associativity = $adt("Associativity"); + ADT_GrammarDefinition = $adt("GrammarDefinition"); + ADT_IOCapability = $adt("IOCapability"); + ADT_GrammarModule = $adt("GrammarModule"); + ADT_Tree = $adt("Tree"); + ADT_Item = $adt("Item"); + ADT_Attr = $adt("Attr"); + ADT_LocationChangeType = $adt("LocationChangeType"); + ADT_LocationChangeEvent = $adt("LocationChangeEvent"); + ADT_RuntimeException = $adt("RuntimeException"); + ADT_Symbol = $adt("Symbol"); + ADT_Message = $adt("Message"); + ADT_Production = $adt("Production"); + ADT_Condition = $adt("Condition"); + $T4 = $TF.stringType(); + $T2 = $TF.valueType(); + $T3 = $TF.parameterType("T", $T2); + $T5 = $TF.parameterType("T", ADT_Tree); + $T0 = $TF.listType(ADT_Symbol); + $T1 = $TF.listType($T3); + ADT_TreeSearchResult_1 = $parameterizedAdt("TreeSearchResult", new Type[] { $T5 }); + + GEMPTY = ((IConstructor)$constants.get(1)/*grammar({sort("S")},())*/); + G0 = ((IConstructor)($RVF.constructor(M_Grammar.Grammar_grammar_set_Symbol_map_Symbol_Production, new IValue[]{((ISet)$constants.get(2)/*{sort("S")}*/), ((IMap)($buildMap(((IConstructor)$constants.get(3)/*sort("S")*/), ((IConstructor)(M_Type.choice(((IConstructor)$constants.get(3)/*sort("S")*/), ((ISet)($RVF.set(((IConstructor)($me.pr(((IConstructor)$constants.get(3)/*sort("S")*/), ((IList)$constants.get(4)/*[lit("0")]*/)))))))))), ((IConstructor)$constants.get(5)/*lit("0")*/), M_Type.choice(((IConstructor)$constants.get(5)/*lit("0")*/), ((ISet)($RVF.set(((IConstructor)($me.pr(((IConstructor)$constants.get(5)/*lit("0")*/), ((IList)$constants.get(6)/*[\char-class([range(48,48)])]*/)))))))))))}))); + Lit1 = ((IMap)($buildMap(((IConstructor)$constants.get(7)/*lit("*")*/), ((IConstructor)(M_Type.choice(((IConstructor)$constants.get(7)/*lit("*")*/), ((ISet)($RVF.set(((IConstructor)($me.pr(((IConstructor)$constants.get(7)/*lit("*")*/), ((IList)$constants.get(8)/*[\char-class([range(42,42)])]*/)))))))))), ((IConstructor)$constants.get(9)/*lit("+")*/), M_Type.choice(((IConstructor)$constants.get(9)/*lit("+")*/), ((ISet)($RVF.set(((IConstructor)($me.pr(((IConstructor)$constants.get(9)/*lit("+")*/), ((IList)$constants.get(10)/*[\char-class([range(43,43)])]*/)))))))), ((IConstructor)$constants.get(5)/*lit("0")*/), M_Type.choice(((IConstructor)$constants.get(5)/*lit("0")*/), ((ISet)($RVF.set(((IConstructor)($me.pr(((IConstructor)$constants.get(5)/*lit("0")*/), ((IList)$constants.get(6)/*[\char-class([range(48,48)])]*/)))))))), ((IConstructor)$constants.get(11)/*lit("1")*/), M_Type.choice(((IConstructor)$constants.get(11)/*lit("1")*/), ((ISet)($RVF.set(((IConstructor)($me.pr(((IConstructor)$constants.get(11)/*lit("1")*/), ((IList)$constants.get(12)/*[\char-class([range(49,49)])]*/))))))))))); + GEXP = ((IConstructor)($RVF.constructor(M_Grammar.Grammar_grammar_set_Symbol_map_Symbol_Production, new IValue[]{((ISet)$constants.get(13)/*{sort("E")}*/), ((IMap)($amap_add_amap(((IMap)($buildMap(((IConstructor)$constants.get(14)/*sort("E")*/), ((IConstructor)(M_Type.choice(((IConstructor)$constants.get(14)/*sort("E")*/), ((ISet)($RVF.set(((IConstructor)($me.pr(((IConstructor)$constants.get(14)/*sort("E")*/), ((IList)$constants.get(15)/*[sort("E"),lit("*"),sort("B")]*/)))), $me.pr(((IConstructor)$constants.get(14)/*sort("E")*/), ((IList)$constants.get(16)/*[sort("E"),lit("+"),sort("B")]*/)), $me.pr(((IConstructor)$constants.get(14)/*sort("E")*/), ((IList)$constants.get(17)/*[sort("B")]*/)))))))), ((IConstructor)$constants.get(18)/*sort("B")*/), M_Type.choice(((IConstructor)$constants.get(18)/*sort("B")*/), ((ISet)($RVF.set(((IConstructor)($me.pr(((IConstructor)$constants.get(18)/*sort("B")*/), ((IList)$constants.get(4)/*[lit("0")]*/)))), $me.pr(((IConstructor)$constants.get(18)/*sort("B")*/), ((IList)$constants.get(19)/*[lit("1")]*/))))))))),((IMap)Lit1))))}))); + GEXPPRIO = ((IConstructor)($RVF.constructor(M_Grammar.Grammar_grammar_set_Symbol_map_Symbol_Production, new IValue[]{((ISet)$constants.get(13)/*{sort("E")}*/), ((IMap)($buildMap(((IConstructor)$constants.get(14)/*sort("E")*/), ((IConstructor)(M_Type.choice(((IConstructor)$constants.get(14)/*sort("E")*/), ((ISet)($RVF.set(((IConstructor)($me.pr(((IConstructor)$constants.get(14)/*sort("E")*/), ((IList)$constants.get(20)/*[sort("T"),sort("E1")]*/)))))))))), ((IConstructor)$constants.get(21)/*sort("E1")*/), M_Type.choice(((IConstructor)$constants.get(21)/*sort("E1")*/), ((ISet)($RVF.set(((IConstructor)($me.pr(((IConstructor)$constants.get(21)/*sort("E1")*/), ((IList)$constants.get(22)/*[lit("+"),sort("T"),sort("E1")]*/)))), $me.pr(((IConstructor)$constants.get(21)/*sort("E1")*/), ((IList)$constants.get(23)/*[]*/)))))), ((IConstructor)$constants.get(24)/*sort("T")*/), M_Type.choice(((IConstructor)$constants.get(24)/*sort("T")*/), ((ISet)($RVF.set(((IConstructor)($me.pr(((IConstructor)$constants.get(24)/*sort("T")*/), ((IList)$constants.get(25)/*[sort("F"),sort("T1")]*/)))))))), ((IConstructor)$constants.get(26)/*sort("T1")*/), M_Type.choice(((IConstructor)$constants.get(26)/*sort("T1")*/), ((ISet)($RVF.set(((IConstructor)($me.pr(((IConstructor)$constants.get(27)/*sort("F")*/), ((IList)$constants.get(28)/*[lit("*"),sort("F"),sort("T1")]*/)))), $me.pr(((IConstructor)$constants.get(26)/*sort("T1")*/), ((IList)$constants.get(23)/*[]*/)))))), ((IConstructor)$constants.get(27)/*sort("F")*/), M_Type.choice(((IConstructor)$constants.get(27)/*sort("F")*/), ((ISet)($RVF.set(((IConstructor)($me.pr(((IConstructor)$constants.get(27)/*sort("F")*/), ((IList)$constants.get(29)/*[lit("("),sort("E"),lit(")")]*/)))), $me.pr(((IConstructor)$constants.get(27)/*sort("F")*/), ((IList)$constants.get(30)/*[lit("id")]*/)))))), ((IConstructor)$constants.get(9)/*lit("+")*/), M_Type.choice(((IConstructor)$constants.get(9)/*lit("+")*/), ((ISet)($RVF.set(((IConstructor)($me.pr(((IConstructor)$constants.get(9)/*lit("+")*/), ((IList)$constants.get(10)/*[\char-class([range(43,43)])]*/)))))))), ((IConstructor)$constants.get(7)/*lit("*")*/), M_Type.choice(((IConstructor)$constants.get(7)/*lit("*")*/), ((ISet)($RVF.set(((IConstructor)($me.pr(((IConstructor)$constants.get(7)/*lit("*")*/), ((IList)$constants.get(8)/*[\char-class([range(42,42)])]*/)))))))), ((IConstructor)$constants.get(31)/*lit("(")*/), M_Type.choice(((IConstructor)$constants.get(31)/*lit("(")*/), ((ISet)($RVF.set(((IConstructor)($me.pr(((IConstructor)$constants.get(31)/*lit("(")*/), ((IList)$constants.get(32)/*[\char-class([range(40,40)])]*/)))))))), ((IConstructor)$constants.get(33)/*lit(")")*/), M_Type.choice(((IConstructor)$constants.get(33)/*lit(")")*/), ((ISet)($RVF.set(((IConstructor)($me.pr(((IConstructor)$constants.get(33)/*lit(")")*/), ((IList)$constants.get(34)/*[\char-class([range(41,41)])]*/)))))))), ((IConstructor)$constants.get(35)/*lit("id")*/), M_Type.choice(((IConstructor)$constants.get(35)/*lit("id")*/), ((ISet)($RVF.set(((IConstructor)($me.pr(((IConstructor)$constants.get(35)/*lit("id")*/), ((IList)$constants.get(36)/*[\char-class([range(105,105)]),\char-class([range(100,100)])]*/)))))))))))}))); + + + } + public IConstructor choice(IValue $P0, IValue $P1){ // Generated by Resolver + return (IConstructor) M_Type.choice($P0, $P1); + } + public IConstructor pr(IValue $P0, IValue $P1){ // Generated by Resolver + IConstructor $result = null; + Type $P0Type = $P0.getType(); + Type $P1Type = $P1.getType(); + if($isSubtypeOf($P0Type, M_ParseTree.ADT_Symbol) && $isSubtypeOf($P1Type,$T0)){ + $result = (IConstructor)lang_rascal_grammar_tests_TestGrammars_pr$303e719a3feee0c1((IConstructor) $P0, (IList) $P1); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0, $P1)); + } + public IConstructor grammar(IValue $P0){ // Generated by Resolver + return (IConstructor) M_Grammar.grammar($P0); + } + public IConstructor grammar(IValue $P0, IValue $P1){ // Generated by Resolver + return (IConstructor) M_Grammar.grammar($P0, $P1); + } + public IValue sort(IValue $P0){ // Generated by Resolver + IValue $result = null; + Type $P0Type = $P0.getType(); + if($isSubtypeOf($P0Type,$T1)){ + $result = (IValue)M_List.List_sort$1fe4426c8c8039da((IList) $P0); + if($result != null) return $result; + } + if($isSubtypeOf($P0Type,$T4)){ + return $RVF.constructor(M_ParseTree.Symbol_sort_str, new IValue[]{(IString) $P0}); + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0)); + } + public IList sort(IValue $P0, IValue $P1){ // Generated by Resolver + return (IList) M_List.sort($P0, $P1); + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/lang/rascal/grammar/tests/TestGrammars.rsc|(137,82,<8,0>,<10,1>) + public IConstructor lang_rascal_grammar_tests_TestGrammars_pr$303e719a3feee0c1(IConstructor rhs_0, IList lhs_1){ + + + return ((IConstructor)($RVF.constructor(M_ParseTree.Production_prod_Symbol_list_Symbol_set_Attr, new IValue[]{((IConstructor)rhs_0), ((IList)lhs_1), ((ISet)$constants.get(0)/*{}*/)}))); + + } + + + public static void main(String[] args) { + throw new RuntimeException("No function `main` found in Rascal module `lang::rascal::grammar::tests::TestGrammars`"); + } +} \ No newline at end of file diff --git a/src/rascal/lang/rascal/grammar/tests/$TestGrammars.tpl b/src/rascal/lang/rascal/grammar/tests/$TestGrammars.tpl new file mode 100644 index 00000000000..49976cec58b Binary files /dev/null and b/src/rascal/lang/rascal/grammar/tests/$TestGrammars.tpl differ diff --git a/src/rascal/lang/rascal/grammar/tests/$TestGrammars_$I.java b/src/rascal/lang/rascal/grammar/tests/$TestGrammars_$I.java new file mode 100644 index 00000000000..127ed060bad --- /dev/null +++ b/src/rascal/lang/rascal/grammar/tests/$TestGrammars_$I.java @@ -0,0 +1,8 @@ +package rascal.lang.rascal.grammar.tests; +import io.usethesource.vallang.*; +import org.rascalmpl.runtime.function.*; + +@SuppressWarnings("unused") +public interface $TestGrammars_$I { + IValue pr(IValue $0, IValue $1); +} \ No newline at end of file diff --git a/src/rascal/lang/rascal/syntax/$Rascal.constants b/src/rascal/lang/rascal/syntax/$Rascal.constants new file mode 100644 index 00000000000..8b4bc9a8c17 Binary files /dev/null and b/src/rascal/lang/rascal/syntax/$Rascal.constants differ diff --git a/src/rascal/lang/rascal/syntax/$Rascal.java b/src/rascal/lang/rascal/syntax/$Rascal.java new file mode 100644 index 00000000000..c72f8d566b9 --- /dev/null +++ b/src/rascal/lang/rascal/syntax/$Rascal.java @@ -0,0 +1,1513 @@ +package rascal.lang.rascal.syntax; +import java.io.PrintWriter; +import java.io.StringWriter; +import java.io.InputStreamReader; +import java.io.PrintWriter; +import java.util.*; +import java.util.regex.Matcher; +import io.usethesource.vallang.*; +import io.usethesource.vallang.type.*; +import org.rascalmpl.runtime.*; +import org.rascalmpl.runtime.RascalExecutionContext; +import org.rascalmpl.runtime.function.*; +import org.rascalmpl.runtime.traverse.*; +import org.rascalmpl.runtime.utils.*; +import org.rascalmpl.exceptions.RuntimeExceptionFactory; +import org.rascalmpl.exceptions.Throw; +import org.rascalmpl.runtime.RascalExecutionContext; +import org.rascalmpl.interpreter.control_exceptions.Filtered; +import org.rascalmpl.types.NonTerminalType; +import org.rascalmpl.types.RascalTypeFactory; +import org.rascalmpl.util.ExpiringFunctionResultCache; +import org.rascalmpl.values.RascalValueFactory; +import org.rascalmpl.values.ValueFactoryFactory; +import org.rascalmpl.values.parsetrees.ITree; +import org.rascalmpl.values.parsetrees.TreeAdapter; + + + +@SuppressWarnings({"unused","unchecked","deprecation"}) +public class $Rascal + extends + org.rascalmpl.runtime.$RascalModule + implements + rascal.lang.rascal.syntax.$Rascal_$I { + + private final $Rascal_$I $me; + private final IList $constants; + + + + + + public final io.usethesource.vallang.type.Type $T36; /*astr()*/ + public final io.usethesource.vallang.type.Type ADT_Concrete; /*aadt("Concrete",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Concrete; /*aadt("Concrete",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type Concrete_typed_str_Sym_str_str_str; /*acons(aadt("Concrete",[],lexicalSyntax()),[astr(),aadt("Sym",[],contextFreeSyntax(),alabel="symbol"),astr(),astr(),astr()],[],alabel="typed")*/ + public final io.usethesource.vallang.type.Type ADT_Expression; /*aadt("Expression",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Expression; /*aadt("Expression",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type Expression_qualifiedName_QualifiedName; /*acons(aadt("Expression",[],contextFreeSyntax()),[aadt("QualifiedName",[],contextFreeSyntax(),alabel="qualifiedName")],[],alabel="qualifiedName")*/ + public final io.usethesource.vallang.type.Type Expression_greaterThanOrEq_Expression_Expression; /*acons(aadt("Expression",[],contextFreeSyntax()),[aadt("Expression",[],contextFreeSyntax(),alabel="lhs"),aadt("Expression",[],contextFreeSyntax(),alabel="rhs")],[],alabel="greaterThanOrEq")*/ + public final io.usethesource.vallang.type.Type ADT_Statement; /*aadt("Statement",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Statement; /*aadt("Statement",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_LAYOUTLIST; /*aadt("LAYOUTLIST",[],layoutSyntax())*/ + public final io.usethesource.vallang.type.Type $T15; /*\iter-star-seps(aadt("Statement",[],contextFreeSyntax()),[aadt("LAYOUTLIST",[],layoutSyntax())],alabel="postStatsElse")*/ + public final io.usethesource.vallang.type.Type ADT_UnicodeEscape; /*aadt("UnicodeEscape",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_UnicodeEscape; /*aadt("UnicodeEscape",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type UnicodeEscape_utf32_; /*acons(aadt("UnicodeEscape",[],lexicalSyntax()),[],[],alabel="utf32")*/ + public final io.usethesource.vallang.type.Type ADT_BooleanLiteral; /*aadt("BooleanLiteral",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_BooleanLiteral; /*aadt("BooleanLiteral",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Case; /*aadt("Case",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Case; /*aadt("Case",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Pattern; /*aadt("Pattern",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Pattern; /*aadt("Pattern",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_ProtocolPart; /*aadt("ProtocolPart",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_ProtocolPart; /*aadt("ProtocolPart",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ProtocolPart_nonInterpolated_ProtocolChars; /*acons(aadt("ProtocolPart",[],contextFreeSyntax()),[aadt("ProtocolChars",[],lexicalSyntax(),alabel="protocolChars")],[],alabel="nonInterpolated")*/ + public final io.usethesource.vallang.type.Type ADT_MidStringChars; /*aadt("MidStringChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_MidStringChars; /*aadt("MidStringChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Strategy; /*aadt("Strategy",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Strategy; /*aadt("Strategy",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_ShellCommand; /*aadt("ShellCommand",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_ShellCommand; /*aadt("ShellCommand",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ShellCommand_setOption_QualifiedName_Expression; /*acons(aadt("ShellCommand",[],contextFreeSyntax()),[aadt("QualifiedName",[],contextFreeSyntax(),alabel="name"),aadt("Expression",[],contextFreeSyntax(),alabel="expression")],[],alabel="setOption")*/ + public final io.usethesource.vallang.type.Type ADT_Tree; /*aadt("Tree",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type $T1; /*aparameter("T",aadt("Tree",[],dataSyntax()),closed=true)*/ + public final io.usethesource.vallang.type.Type ADT_KeywordArguments_1; /*aadt("KeywordArguments",[aparameter("T",aadt("Tree",[],dataSyntax()),closed=true)],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_KeywordArguments_1; /*aadt("KeywordArguments",[aparameter("T",aadt("Tree",[],dataSyntax()),closed=true)],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Type; /*aadt("Type",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Type; /*aadt("Type",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type Type_bracket_Type; /*acons(aadt("Type",[],contextFreeSyntax()),[aadt("Type",[],contextFreeSyntax(),alabel="type")],[],alabel="bracket")*/ + public final io.usethesource.vallang.type.Type ADT_StringLiteral; /*aadt("StringLiteral",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_StringLiteral; /*aadt("StringLiteral",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type StringLiteral_interpolated_PreStringChars_Expression_StringTail; /*acons(aadt("StringLiteral",[],contextFreeSyntax()),[aadt("PreStringChars",[],lexicalSyntax(),alabel="pre"),aadt("Expression",[],contextFreeSyntax(),alabel="expression"),aadt("StringTail",[],contextFreeSyntax(),alabel="tail")],[],alabel="interpolated")*/ + public final io.usethesource.vallang.type.Type ADT_Renamings; /*aadt("Renamings",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Renamings; /*aadt("Renamings",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Renaming; /*aadt("Renaming",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Renaming; /*aadt("Renaming",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type $T3; /*alit(",")*/ + public final io.usethesource.vallang.type.Type $T47; /*\iter-seps(aadt("Renaming",[],contextFreeSyntax()),[aadt("LAYOUTLIST",[],layoutSyntax()),alit(","),aadt("LAYOUTLIST",[],layoutSyntax())],alabel="renamings")*/ + public final io.usethesource.vallang.type.Type Renamings_default_iter_seps_Renaming; /*acons(aadt("Renamings",[],contextFreeSyntax()),[\iter-seps(aadt("Renaming",[],contextFreeSyntax()),[aadt("LAYOUTLIST",[],layoutSyntax()),alit(","),aadt("LAYOUTLIST",[],layoutSyntax())],alabel="renamings")],[],alabel="default")*/ + public final io.usethesource.vallang.type.Type ADT_Mapping_Expression; /*aadt("Mapping",[aadt("Expression",[],contextFreeSyntax())],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Mapping_Expression; /*aadt("Mapping",[aadt("Expression",[],contextFreeSyntax())],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_KeywordFormal; /*aadt("KeywordFormal",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_KeywordFormal; /*aadt("KeywordFormal",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type KeywordFormal_default_Type_Name_Expression; /*acons(aadt("KeywordFormal",[],contextFreeSyntax()),[aadt("Type",[],contextFreeSyntax(),alabel="type"),aadt("Name",[],lexicalSyntax(),alabel="name"),aadt("Expression",[],contextFreeSyntax(),alabel="expression")],[],alabel="default")*/ + public final io.usethesource.vallang.type.Type Statement_expression_Expression; /*acons(aadt("Statement",[],contextFreeSyntax()),[aadt("Expression",[],contextFreeSyntax(),alabel="expression")],[],alabel="expression")*/ + public final io.usethesource.vallang.type.Type ADT_FunctionModifier; /*aadt("FunctionModifier",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_FunctionModifier; /*aadt("FunctionModifier",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type FunctionModifier_default_; /*acons(aadt("FunctionModifier",[],contextFreeSyntax()),[],[],alabel="default")*/ + public final io.usethesource.vallang.type.Type ADT_TimePartNoTZ; /*aadt("TimePartNoTZ",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_TimePartNoTZ; /*aadt("TimePartNoTZ",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Assignable; /*aadt("Assignable",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Assignable; /*aadt("Assignable",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type $T46; /*\iter-seps(aadt("Assignable",[],contextFreeSyntax()),[aadt("LAYOUTLIST",[],layoutSyntax()),alit(","),aadt("LAYOUTLIST",[],layoutSyntax())],alabel="elements")*/ + public final io.usethesource.vallang.type.Type Assignable_tuple_iter_seps_Assignable; /*acons(aadt("Assignable",[],contextFreeSyntax()),[\iter-seps(aadt("Assignable",[],contextFreeSyntax()),[aadt("LAYOUTLIST",[],layoutSyntax()),alit(","),aadt("LAYOUTLIST",[],layoutSyntax())],alabel="elements")],[],alabel="tuple")*/ + public final io.usethesource.vallang.type.Type ADT_Sym; /*aadt("Sym",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Sym; /*aadt("Sym",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type Sym_iterStarSep_Sym_Sym; /*acons(aadt("Sym",[],contextFreeSyntax()),[aadt("Sym",[],contextFreeSyntax(),alabel="symbol"),aadt("Sym",[],contextFreeSyntax(),alabel="sep")],[],alabel="iterStarSep")*/ + public final io.usethesource.vallang.type.Type ADT_Target; /*aadt("Target",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Target; /*aadt("Target",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_IntegerLiteral; /*aadt("IntegerLiteral",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_IntegerLiteral; /*aadt("IntegerLiteral",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Catch; /*aadt("Catch",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Catch; /*aadt("Catch",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type $T33; /*\iter-seps(aadt("Catch",[],contextFreeSyntax()),[aadt("LAYOUTLIST",[],layoutSyntax())],alabel="handlers")*/ + public final io.usethesource.vallang.type.Type ADT_OptionalExpression; /*aadt("OptionalExpression",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_OptionalExpression; /*aadt("OptionalExpression",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type OptionalExpression_expression_Expression; /*acons(aadt("OptionalExpression",[],contextFreeSyntax()),[aadt("Expression",[],contextFreeSyntax(),alabel="expression")],[],alabel="expression")*/ + public final io.usethesource.vallang.type.Type ADT_KeywordArguments_Expression; /*aadt("KeywordArguments",[aadt("Expression",[],contextFreeSyntax())],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_KeywordArguments_Expression; /*aadt("KeywordArguments",[aadt("Expression",[],contextFreeSyntax())],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type Expression_composition_Expression_Expression; /*acons(aadt("Expression",[],contextFreeSyntax()),[aadt("Expression",[],contextFreeSyntax(),alabel="lhs"),aadt("Expression",[],contextFreeSyntax(),alabel="rhs")],[],alabel="composition")*/ + public final io.usethesource.vallang.type.Type ADT_Comprehension; /*aadt("Comprehension",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Comprehension; /*aadt("Comprehension",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type $T4; /*\iter-seps(aadt("Expression",[],contextFreeSyntax()),[aadt("LAYOUTLIST",[],layoutSyntax()),alit(","),aadt("LAYOUTLIST",[],layoutSyntax())],alabel="results")*/ + public final io.usethesource.vallang.type.Type $T5; /*\iter-seps(aadt("Expression",[],contextFreeSyntax()),[aadt("LAYOUTLIST",[],layoutSyntax()),alit(","),aadt("LAYOUTLIST",[],layoutSyntax())],alabel="generators")*/ + public final io.usethesource.vallang.type.Type Comprehension_set_iter_seps_Expression_iter_seps_Expression; /*acons(aadt("Comprehension",[],contextFreeSyntax()),[\iter-seps(aadt("Expression",[],contextFreeSyntax()),[aadt("LAYOUTLIST",[],layoutSyntax()),alit(","),aadt("LAYOUTLIST",[],layoutSyntax())],alabel="results"),\iter-seps(aadt("Expression",[],contextFreeSyntax()),[aadt("LAYOUTLIST",[],layoutSyntax()),alit(","),aadt("LAYOUTLIST",[],layoutSyntax())],alabel="generators")],[],alabel="set")*/ + public final io.usethesource.vallang.type.Type ADT_Mapping_1; /*aadt("Mapping",[aparameter("T",aadt("Tree",[],dataSyntax()),closed=true)],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Mapping_1; /*aadt("Mapping",[aparameter("T",aadt("Tree",[],dataSyntax()),closed=true)],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Kind; /*aadt("Kind",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Kind; /*aadt("Kind",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type Kind_all_; /*acons(aadt("Kind",[],contextFreeSyntax()),[],[],alabel="all")*/ + public final io.usethesource.vallang.type.Type Sym_iterStar_Sym; /*acons(aadt("Sym",[],contextFreeSyntax()),[aadt("Sym",[],contextFreeSyntax(),alabel="symbol")],[],alabel="iterStar")*/ + public final io.usethesource.vallang.type.Type $T24; /*\iter-star-seps(aadt("Pattern",[],contextFreeSyntax()),[aadt("LAYOUTLIST",[],layoutSyntax()),alit(","),aadt("LAYOUTLIST",[],layoutSyntax())],alabel="arguments")*/ + public final io.usethesource.vallang.type.Type $T7; /*\iter-seps(aadt("Expression",[],contextFreeSyntax()),[aadt("LAYOUTLIST",[],layoutSyntax()),alit(","),aadt("LAYOUTLIST",[],layoutSyntax())],alabel="conditions")*/ + public final io.usethesource.vallang.type.Type Statement_ifThenElse_Label_iter_seps_Expression_Statement_Statement; /*acons(aadt("Statement",[],contextFreeSyntax()),[aadt("Label",[],contextFreeSyntax(),alabel="label"),\iter-seps(aadt("Expression",[],contextFreeSyntax()),[aadt("LAYOUTLIST",[],layoutSyntax()),alit(","),aadt("LAYOUTLIST",[],layoutSyntax())],alabel="conditions"),aadt("Statement",[],contextFreeSyntax(),alabel="thenStatement"),aadt("Statement",[],contextFreeSyntax(),alabel="elseStatement")],[],alabel="ifThenElse")*/ + public final io.usethesource.vallang.type.Type Expression_join_Expression_Expression; /*acons(aadt("Expression",[],contextFreeSyntax()),[aadt("Expression",[],contextFreeSyntax(),alabel="lhs"),aadt("Expression",[],contextFreeSyntax(),alabel="rhs")],[],alabel="join")*/ + public final io.usethesource.vallang.type.Type ADT_ImportedModule; /*aadt("ImportedModule",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_ImportedModule; /*aadt("ImportedModule",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Class; /*aadt("Class",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Class; /*aadt("Class",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type Class_intersection_Class_Class; /*acons(aadt("Class",[],contextFreeSyntax()),[aadt("Class",[],contextFreeSyntax(),alabel="lhs"),aadt("Class",[],contextFreeSyntax(),alabel="rhs")],[],alabel="intersection")*/ + public final io.usethesource.vallang.type.Type ADT_FunctionType; /*aadt("FunctionType",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_FunctionType; /*aadt("FunctionType",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Range; /*aadt("Range",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Range; /*aadt("Range",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_PostProtocolChars; /*aadt("PostProtocolChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_PostProtocolChars; /*aadt("PostProtocolChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type $T28; /*\iter-seps(aadt("Pattern",[],contextFreeSyntax()),[aadt("LAYOUTLIST",[],layoutSyntax()),alit(","),aadt("LAYOUTLIST",[],layoutSyntax())],alabel="elements")*/ + public final io.usethesource.vallang.type.Type ADT_Output; /*aadt("Output",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Output; /*aadt("Output",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type Output_resultOutput_; /*acons(aadt("Output",[],lexicalSyntax()),[],[],alabel="resultOutput")*/ + public final io.usethesource.vallang.type.Type $T9; /*alit("|")*/ + public final io.usethesource.vallang.type.Type $T10; /*\iter-seps(aadt("Sym",[],contextFreeSyntax()),[aadt("LAYOUTLIST",[],layoutSyntax()),alit("|"),aadt("LAYOUTLIST",[],layoutSyntax())],alabel="alternatives")*/ + public final io.usethesource.vallang.type.Type ADT_BasicType; /*aadt("BasicType",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_BasicType; /*aadt("BasicType",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type BasicType_tuple_; /*acons(aadt("BasicType",[],contextFreeSyntax()),[],[],alabel="tuple")*/ + public final io.usethesource.vallang.type.Type Expression_sliceStep_Expression_OptionalExpression_Expression_OptionalExpression; /*acons(aadt("Expression",[],contextFreeSyntax()),[aadt("Expression",[],contextFreeSyntax(),alabel="expression"),aadt("OptionalExpression",[],contextFreeSyntax(),alabel="optFirst"),aadt("Expression",[],contextFreeSyntax(),alabel="second"),aadt("OptionalExpression",[],contextFreeSyntax(),alabel="optLast")],[],alabel="sliceStep")*/ + public final io.usethesource.vallang.type.Type Expression_has_Expression_Name; /*acons(aadt("Expression",[],contextFreeSyntax()),[aadt("Expression",[],contextFreeSyntax(),alabel="expression"),aadt("Name",[],lexicalSyntax(),alabel="name")],[],alabel="has")*/ + public final io.usethesource.vallang.type.Type BasicType_dateTime_; /*acons(aadt("BasicType",[],contextFreeSyntax()),[],[],alabel="dateTime")*/ + public final io.usethesource.vallang.type.Type ShellCommand_edit_QualifiedName; /*acons(aadt("ShellCommand",[],contextFreeSyntax()),[aadt("QualifiedName",[],contextFreeSyntax(),alabel="name")],[],alabel="edit")*/ + public final io.usethesource.vallang.type.Type ADT_Variable; /*aadt("Variable",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Variable; /*aadt("Variable",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type Variable_initialized_Name_Expression; /*acons(aadt("Variable",[],contextFreeSyntax()),[aadt("Name",[],lexicalSyntax(),alabel="name"),aadt("Expression",[],contextFreeSyntax(),alabel="initial")],[],alabel="initialized")*/ + public final io.usethesource.vallang.type.Type ADT_Signature; /*aadt("Signature",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Signature; /*aadt("Signature",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type Signature_noThrows_FunctionModifiers_Type_Name_Parameters; /*acons(aadt("Signature",[],contextFreeSyntax()),[aadt("FunctionModifiers",[],contextFreeSyntax(),alabel="modifiers"),aadt("Type",[],contextFreeSyntax(),alabel="type"),aadt("Name",[],lexicalSyntax(),alabel="name"),aadt("Parameters",[],contextFreeSyntax(),alabel="parameters")],[],alabel="noThrows")*/ + public final io.usethesource.vallang.type.Type ADT_LAYOUT; /*aadt("LAYOUT",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_LAYOUT; /*aadt("LAYOUT",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type Expression_concrete_Concrete; /*acons(aadt("Expression",[],contextFreeSyntax()),[aadt("Concrete",[],lexicalSyntax(),alabel="concrete")],[],alabel="concrete")*/ + public final io.usethesource.vallang.type.Type $T18; /*\iter-seps(aadt("Type",[],contextFreeSyntax()),[aadt("LAYOUTLIST",[],layoutSyntax()),alit(","),aadt("LAYOUTLIST",[],layoutSyntax())],alabel="types")*/ + public final io.usethesource.vallang.type.Type ADT_Literal; /*aadt("Literal",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Literal; /*aadt("Literal",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type Literal_string_StringLiteral; /*acons(aadt("Literal",[],contextFreeSyntax()),[aadt("StringLiteral",[],contextFreeSyntax(),alabel="stringLiteral")],[],alabel="string")*/ + public final io.usethesource.vallang.type.Type UnicodeEscape_ascii_; /*acons(aadt("UnicodeEscape",[],lexicalSyntax()),[],[],alabel="ascii")*/ + public final io.usethesource.vallang.type.Type ADT_Tag; /*aadt("Tag",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Tag; /*aadt("Tag",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type Tag_expression_Name_Expression; /*acons(aadt("Tag",[],contextFreeSyntax()),[aadt("Name",[],lexicalSyntax(),alabel="name"),aadt("Expression",[],contextFreeSyntax(),alabel="expression")],[],alabel="expression")*/ + public final io.usethesource.vallang.type.Type Kind_module_; /*acons(aadt("Kind",[],contextFreeSyntax()),[],[],alabel="module")*/ + public final io.usethesource.vallang.type.Type ImportedModule_renamings_QualifiedName_Renamings; /*acons(aadt("ImportedModule",[],contextFreeSyntax()),[aadt("QualifiedName",[],contextFreeSyntax(),alabel="name"),aadt("Renamings",[],contextFreeSyntax(),alabel="renamings")],[],alabel="renamings")*/ + public final io.usethesource.vallang.type.Type ADT_LocalVariableDeclaration; /*aadt("LocalVariableDeclaration",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_LocalVariableDeclaration; /*aadt("LocalVariableDeclaration",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type KeywordArguments_1_none_; /*acons(aadt("KeywordArguments",[aparameter("T",aadt("Tree",[],dataSyntax()),closed=true)],contextFreeSyntax()),[],[],alabel="none")*/ + public final io.usethesource.vallang.type.Type ADT_Replacement; /*aadt("Replacement",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Replacement; /*aadt("Replacement",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_PatternWithAction; /*aadt("PatternWithAction",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_PatternWithAction; /*aadt("PatternWithAction",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type PatternWithAction_replacing_Pattern_Replacement; /*acons(aadt("PatternWithAction",[],contextFreeSyntax()),[aadt("Pattern",[],contextFreeSyntax(),alabel="pattern"),aadt("Replacement",[],contextFreeSyntax(),alabel="replacement")],[],alabel="replacing")*/ + public final io.usethesource.vallang.type.Type ADT_Assignment; /*aadt("Assignment",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Assignment; /*aadt("Assignment",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type Assignment_division_; /*acons(aadt("Assignment",[],contextFreeSyntax()),[],[],alabel="division")*/ + public final io.usethesource.vallang.type.Type Sym_optional_Sym; /*acons(aadt("Sym",[],contextFreeSyntax()),[aadt("Sym",[],contextFreeSyntax(),alabel="symbol")],[],alabel="optional")*/ + public final io.usethesource.vallang.type.Type Class_bracket_Class; /*acons(aadt("Class",[],contextFreeSyntax()),[aadt("Class",[],contextFreeSyntax(),alabel="charClass")],[],alabel="bracket")*/ + public final io.usethesource.vallang.type.Type ADT_Prod; /*aadt("Prod",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Prod; /*aadt("Prod",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_ProdModifier; /*aadt("ProdModifier",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_ProdModifier; /*aadt("ProdModifier",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type $T48; /*\iter-star-seps(aadt("ProdModifier",[],contextFreeSyntax()),[aadt("LAYOUTLIST",[],layoutSyntax())],alabel="modifiers")*/ + public final io.usethesource.vallang.type.Type $T49; /*\iter-star-seps(aadt("Sym",[],contextFreeSyntax()),[aadt("LAYOUTLIST",[],layoutSyntax())],alabel="syms")*/ + public final io.usethesource.vallang.type.Type Prod_labeled_iter_star_seps_ProdModifier_Name_iter_star_seps_Sym; /*acons(aadt("Prod",[],contextFreeSyntax()),[\iter-star-seps(aadt("ProdModifier",[],contextFreeSyntax()),[aadt("LAYOUTLIST",[],layoutSyntax())],alabel="modifiers"),aadt("Name",[],lexicalSyntax(),alabel="name"),\iter-star-seps(aadt("Sym",[],contextFreeSyntax()),[aadt("LAYOUTLIST",[],layoutSyntax())],alabel="syms")],[],alabel="labeled")*/ + public final io.usethesource.vallang.type.Type BasicType_bag_; /*acons(aadt("BasicType",[],contextFreeSyntax()),[],[],alabel="bag")*/ + public final io.usethesource.vallang.type.Type ADT_Visibility; /*aadt("Visibility",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Visibility; /*aadt("Visibility",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_ProtocolChars; /*aadt("ProtocolChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_ProtocolChars; /*aadt("ProtocolChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type Pattern_multiVariable_QualifiedName; /*acons(aadt("Pattern",[],contextFreeSyntax()),[aadt("QualifiedName",[],contextFreeSyntax(),alabel="qualifiedName")],[],alabel="multiVariable")*/ + public final io.usethesource.vallang.type.Type Literal_boolean_BooleanLiteral; /*acons(aadt("Literal",[],contextFreeSyntax()),[aadt("BooleanLiteral",[],lexicalSyntax(),alabel="booleanLiteral")],[],alabel="boolean")*/ + public final io.usethesource.vallang.type.Type ADT_ConcretePart; /*aadt("ConcretePart",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_ConcretePart; /*aadt("ConcretePart",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ConcretePart_gt_; /*acons(aadt("ConcretePart",[],lexicalSyntax()),[],[],alabel="gt")*/ + public final io.usethesource.vallang.type.Type ADT_Label; /*aadt("Label",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Label; /*aadt("Label",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type Output_stdoutOutput_; /*acons(aadt("Output",[],lexicalSyntax()),[],[],alabel="stdoutOutput")*/ + public final io.usethesource.vallang.type.Type Expression_transitiveReflexiveClosure_Expression; /*acons(aadt("Expression",[],contextFreeSyntax()),[aadt("Expression",[],contextFreeSyntax(),alabel="argument")],[],alabel="transitiveReflexiveClosure")*/ + public final io.usethesource.vallang.type.Type ADT_SyntaxDefinition; /*aadt("SyntaxDefinition",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_SyntaxDefinition; /*aadt("SyntaxDefinition",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type SyntaxDefinition_layout_Visibility_Sym_Prod; /*acons(aadt("SyntaxDefinition",[],contextFreeSyntax()),[aadt("Visibility",[],contextFreeSyntax(),alabel="vis"),aadt("Sym",[],contextFreeSyntax(),alabel="defined"),aadt("Prod",[],contextFreeSyntax(),alabel="production")],[],alabel="layout")*/ + public final io.usethesource.vallang.type.Type Expression_modulo_Expression_Expression; /*acons(aadt("Expression",[],contextFreeSyntax()),[aadt("Expression",[],contextFreeSyntax(),alabel="lhs"),aadt("Expression",[],contextFreeSyntax(),alabel="rhs")],[],alabel="modulo")*/ + public final io.usethesource.vallang.type.Type ADT_TypeArg; /*aadt("TypeArg",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_TypeArg; /*aadt("TypeArg",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type $T54; /*\iter-seps(aadt("TypeArg",[],contextFreeSyntax()),[aadt("LAYOUTLIST",[],layoutSyntax()),alit(","),aadt("LAYOUTLIST",[],layoutSyntax())],alabel="arguments")*/ + public final io.usethesource.vallang.type.Type Range_character_Char; /*acons(aadt("Range",[],contextFreeSyntax()),[aadt("Char",[],lexicalSyntax(),alabel="character")],[],alabel="character")*/ + public final io.usethesource.vallang.type.Type SyntaxDefinition_keyword_Sym_Prod; /*acons(aadt("SyntaxDefinition",[],contextFreeSyntax()),[aadt("Sym",[],contextFreeSyntax(),alabel="defined"),aadt("Prod",[],contextFreeSyntax(),alabel="production")],[],alabel="keyword")*/ + public final io.usethesource.vallang.type.Type ADT_RegExpModifier; /*aadt("RegExpModifier",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_RegExpModifier; /*aadt("RegExpModifier",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type Statement_filter_; /*acons(aadt("Statement",[],contextFreeSyntax()),[],[],alabel="filter")*/ + public final io.usethesource.vallang.type.Type Expression_reifiedType_Expression_Expression; /*acons(aadt("Expression",[],contextFreeSyntax()),[aadt("Expression",[],contextFreeSyntax(),alabel="symbol"),aadt("Expression",[],contextFreeSyntax(),alabel="definitions")],[],alabel="reifiedType")*/ + public final io.usethesource.vallang.type.Type StringLiteral_nonInterpolated_StringConstant; /*acons(aadt("StringLiteral",[],contextFreeSyntax()),[aadt("StringConstant",[],lexicalSyntax(),alabel="constant")],[],alabel="nonInterpolated")*/ + public final io.usethesource.vallang.type.Type Visibility_private_; /*acons(aadt("Visibility",[],contextFreeSyntax()),[],[],alabel="private")*/ + public final io.usethesource.vallang.type.Type Statement_doWhile_Label_Statement_Expression; /*acons(aadt("Statement",[],contextFreeSyntax()),[aadt("Label",[],contextFreeSyntax(),alabel="label"),aadt("Statement",[],contextFreeSyntax(),alabel="body"),aadt("Expression",[],contextFreeSyntax(),alabel="condition")],[],alabel="doWhile")*/ + public final io.usethesource.vallang.type.Type ADT_ProtocolTail; /*aadt("ProtocolTail",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_ProtocolTail; /*aadt("ProtocolTail",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ProtocolTail_post_PostProtocolChars; /*acons(aadt("ProtocolTail",[],contextFreeSyntax()),[aadt("PostProtocolChars",[],lexicalSyntax(),alabel="post")],[],alabel="post")*/ + public final io.usethesource.vallang.type.Type ADT_StringTail; /*aadt("StringTail",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_StringTail; /*aadt("StringTail",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type StringTail_midTemplate_MidStringChars_StringTemplate_StringTail; /*acons(aadt("StringTail",[],contextFreeSyntax()),[aadt("MidStringChars",[],lexicalSyntax(),alabel="mid"),aadt("StringTemplate",[],contextFreeSyntax(),alabel="template"),aadt("StringTail",[],contextFreeSyntax(),alabel="tail")],[],alabel="midTemplate")*/ + public final io.usethesource.vallang.type.Type BasicType_real_; /*acons(aadt("BasicType",[],contextFreeSyntax()),[],[],alabel="real")*/ + public final io.usethesource.vallang.type.Type ADT_EvalCommand; /*aadt("EvalCommand",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_EvalCommand; /*aadt("EvalCommand",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type EvalCommand_declaration_Declaration; /*acons(aadt("EvalCommand",[],contextFreeSyntax()),[aadt("Declaration",[],contextFreeSyntax(),alabel="declaration")],[],alabel="declaration")*/ + public final io.usethesource.vallang.type.Type ShellCommand_help_; /*acons(aadt("ShellCommand",[],contextFreeSyntax()),[],[],alabel="help")*/ + public final io.usethesource.vallang.type.Type ADT_Assoc; /*aadt("Assoc",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Assoc; /*aadt("Assoc",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type $T12; /*\iter-star-seps(aadt("Statement",[],contextFreeSyntax()),[aadt("LAYOUTLIST",[],layoutSyntax())],alabel="preStatsThen")*/ + public final io.usethesource.vallang.type.Type Pattern_negative_Pattern; /*acons(aadt("Pattern",[],contextFreeSyntax()),[aadt("Pattern",[],contextFreeSyntax(),alabel="argument")],[],alabel="negative")*/ + public final io.usethesource.vallang.type.Type ADT_DecimalIntegerLiteral; /*aadt("DecimalIntegerLiteral",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_DecimalIntegerLiteral; /*aadt("DecimalIntegerLiteral",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type Statement_return_Statement; /*acons(aadt("Statement",[],contextFreeSyntax()),[aadt("Statement",[],contextFreeSyntax(),alabel="statement")],[],alabel="return")*/ + public final io.usethesource.vallang.type.Type Comprehension_map_Expression_Expression_iter_seps_Expression; /*acons(aadt("Comprehension",[],contextFreeSyntax()),[aadt("Expression",[],contextFreeSyntax(),alabel="from"),aadt("Expression",[],contextFreeSyntax(),alabel="to"),\iter-seps(aadt("Expression",[],contextFreeSyntax()),[aadt("LAYOUTLIST",[],layoutSyntax()),alit(","),aadt("LAYOUTLIST",[],layoutSyntax())],alabel="generators")],[],alabel="map")*/ + public final io.usethesource.vallang.type.Type ADT_DateTimeLiteral; /*aadt("DateTimeLiteral",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_DateTimeLiteral; /*aadt("DateTimeLiteral",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_FunctionDeclaration; /*aadt("FunctionDeclaration",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_FunctionDeclaration; /*aadt("FunctionDeclaration",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type FunctionDeclaration_conditional_Tags_Visibility_Signature_Expression_iter_seps_Expression; /*acons(aadt("FunctionDeclaration",[],contextFreeSyntax()),[aadt("Tags",[],contextFreeSyntax(),alabel="tags"),aadt("Visibility",[],contextFreeSyntax(),alabel="visibility"),aadt("Signature",[],contextFreeSyntax(),alabel="signature"),aadt("Expression",[],contextFreeSyntax(),alabel="expression"),\iter-seps(aadt("Expression",[],contextFreeSyntax()),[aadt("LAYOUTLIST",[],layoutSyntax()),alit(","),aadt("LAYOUTLIST",[],layoutSyntax())],alabel="conditions")],[],alabel="conditional")*/ + public final io.usethesource.vallang.type.Type $T58; /*\iter-seps(aadt("Assignable",[],contextFreeSyntax()),[aadt("LAYOUTLIST",[],layoutSyntax()),alit(","),aadt("LAYOUTLIST",[],layoutSyntax())],alabel="arguments")*/ + public final io.usethesource.vallang.type.Type BasicType_list_; /*acons(aadt("BasicType",[],contextFreeSyntax()),[],[],alabel="list")*/ + public final io.usethesource.vallang.type.Type Strategy_bottomUpBreak_; /*acons(aadt("Strategy",[],contextFreeSyntax()),[],[],alabel="bottomUpBreak")*/ + public final io.usethesource.vallang.type.Type ADT_Toplevel; /*aadt("Toplevel",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Toplevel; /*aadt("Toplevel",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type $T32; /*\iter-star-seps(aadt("Toplevel",[],contextFreeSyntax()),[aadt("LAYOUTLIST",[],layoutSyntax())],alabel="toplevels")*/ + public final io.usethesource.vallang.type.Type $T53; /*\iter-star-seps(aadt("Statement",[],contextFreeSyntax()),[aadt("LAYOUTLIST",[],layoutSyntax())],alabel="statements")*/ + public final io.usethesource.vallang.type.Type Strategy_innermost_; /*acons(aadt("Strategy",[],contextFreeSyntax()),[],[],alabel="innermost")*/ + public final io.usethesource.vallang.type.Type $T44; /*\iter-seps(aadt("Expression",[],contextFreeSyntax()),[aadt("LAYOUTLIST",[],layoutSyntax()),alit(","),aadt("LAYOUTLIST",[],layoutSyntax())],alabel="elements")*/ + public final io.usethesource.vallang.type.Type Expression_tuple_iter_seps_Expression; /*acons(aadt("Expression",[],contextFreeSyntax()),[\iter-seps(aadt("Expression",[],contextFreeSyntax()),[aadt("LAYOUTLIST",[],layoutSyntax()),alit(","),aadt("LAYOUTLIST",[],layoutSyntax())],alabel="elements")],[],alabel="tuple")*/ + public final io.usethesource.vallang.type.Type ADT_RationalLiteral; /*aadt("RationalLiteral",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_RationalLiteral; /*aadt("RationalLiteral",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type Literal_rational_RationalLiteral; /*acons(aadt("Literal",[],contextFreeSyntax()),[aadt("RationalLiteral",[],lexicalSyntax(),alabel="rationalLiteral")],[],alabel="rational")*/ + public final io.usethesource.vallang.type.Type Strategy_topDown_; /*acons(aadt("Strategy",[],contextFreeSyntax()),[],[],alabel="topDown")*/ + public final io.usethesource.vallang.type.Type Expression_equals_Expression_Expression; /*acons(aadt("Expression",[],contextFreeSyntax()),[aadt("Expression",[],contextFreeSyntax(),alabel="lhs"),aadt("Expression",[],contextFreeSyntax(),alabel="rhs")],[],alabel="equals")*/ + public final io.usethesource.vallang.type.Type Expression_nonEquals_Expression_Expression; /*acons(aadt("Expression",[],contextFreeSyntax()),[aadt("Expression",[],contextFreeSyntax(),alabel="lhs"),aadt("Expression",[],contextFreeSyntax(),alabel="rhs")],[],alabel="nonEquals")*/ + public final io.usethesource.vallang.type.Type $T16; /*start(aadt("EvalCommand",[],contextFreeSyntax()))*/ + public final io.usethesource.vallang.type.Type $T17; /*\iter-seps(start(aadt("EvalCommand",[],contextFreeSyntax())),[aadt("LAYOUTLIST",[],layoutSyntax())],alabel="commands")*/ + public final io.usethesource.vallang.type.Type ProdModifier_associativity_Assoc; /*acons(aadt("ProdModifier",[],contextFreeSyntax()),[aadt("Assoc",[],contextFreeSyntax(),alabel="associativity")],[],alabel="associativity")*/ + public final io.usethesource.vallang.type.Type ADT_DatePart; /*aadt("DatePart",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_DatePart; /*aadt("DatePart",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Declarator; /*aadt("Declarator",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Declarator; /*aadt("Declarator",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type $T40; /*\iter-seps(aadt("Sym",[],contextFreeSyntax()),[aadt("LAYOUTLIST",[],layoutSyntax()),alit(","),aadt("LAYOUTLIST",[],layoutSyntax())],alabel="parameters")*/ + public final io.usethesource.vallang.type.Type $T39; /*\iter-star-seps(aadt("TypeArg",[],contextFreeSyntax()),[aadt("LAYOUTLIST",[],layoutSyntax()),alit(","),aadt("LAYOUTLIST",[],layoutSyntax())],alabel="arguments")*/ + public final io.usethesource.vallang.type.Type FunctionType_typeArguments_Type_iter_star_seps_TypeArg; /*acons(aadt("FunctionType",[],contextFreeSyntax()),[aadt("Type",[],contextFreeSyntax(),alabel="type"),\iter-star-seps(aadt("TypeArg",[],contextFreeSyntax()),[aadt("LAYOUTLIST",[],layoutSyntax()),alit(","),aadt("LAYOUTLIST",[],layoutSyntax())],alabel="arguments")],[],alabel="typeArguments")*/ + public final io.usethesource.vallang.type.Type ADT_PathTail; /*aadt("PathTail",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_PathTail; /*aadt("PathTail",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type PathTail_mid_MidPathChars_Expression_PathTail; /*acons(aadt("PathTail",[],contextFreeSyntax()),[aadt("MidPathChars",[],lexicalSyntax(),alabel="mid"),aadt("Expression",[],contextFreeSyntax(),alabel="expression"),aadt("PathTail",[],contextFreeSyntax(),alabel="tail")],[],alabel="mid")*/ + public final io.usethesource.vallang.type.Type ADT_Field; /*aadt("Field",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Field; /*aadt("Field",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type $T45; /*\iter-seps(aadt("Field",[],contextFreeSyntax()),[aadt("LAYOUTLIST",[],layoutSyntax()),alit(","),aadt("LAYOUTLIST",[],layoutSyntax())],alabel="fields")*/ + public final io.usethesource.vallang.type.Type Expression_fieldProject_Expression_iter_seps_Field; /*acons(aadt("Expression",[],contextFreeSyntax()),[aadt("Expression",[],contextFreeSyntax(),alabel="expression"),\iter-seps(aadt("Field",[],contextFreeSyntax()),[aadt("LAYOUTLIST",[],layoutSyntax()),alit(","),aadt("LAYOUTLIST",[],layoutSyntax())],alabel="fields")],[],alabel="fieldProject")*/ + public final io.usethesource.vallang.type.Type ADT_StringMiddle; /*aadt("StringMiddle",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_StringMiddle; /*aadt("StringMiddle",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type StringMiddle_template_MidStringChars_StringTemplate_StringMiddle; /*acons(aadt("StringMiddle",[],contextFreeSyntax()),[aadt("MidStringChars",[],lexicalSyntax(),alabel="mid"),aadt("StringTemplate",[],contextFreeSyntax(),alabel="template"),aadt("StringMiddle",[],contextFreeSyntax(),alabel="tail")],[],alabel="template")*/ + public final io.usethesource.vallang.type.Type IntegerLiteral_decimalIntegerLiteral_DecimalIntegerLiteral; /*acons(aadt("IntegerLiteral",[],contextFreeSyntax()),[aadt("DecimalIntegerLiteral",[],lexicalSyntax(),alabel="decimal")],[],alabel="decimalIntegerLiteral")*/ + public final io.usethesource.vallang.type.Type ADT_RegExpLiteral; /*aadt("RegExpLiteral",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_RegExpLiteral; /*aadt("RegExpLiteral",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ProtocolPart_interpolated_PreProtocolChars_Expression_ProtocolTail; /*acons(aadt("ProtocolPart",[],contextFreeSyntax()),[aadt("PreProtocolChars",[],lexicalSyntax(),alabel="pre"),aadt("Expression",[],contextFreeSyntax(),alabel="expression"),aadt("ProtocolTail",[],contextFreeSyntax(),alabel="tail")],[],alabel="interpolated")*/ + public final io.usethesource.vallang.type.Type Expression_equivalence_Expression_Expression; /*acons(aadt("Expression",[],contextFreeSyntax()),[aadt("Expression",[],contextFreeSyntax(),alabel="lhs"),aadt("Expression",[],contextFreeSyntax(),alabel="rhs")],[],alabel="equivalence")*/ + public final io.usethesource.vallang.type.Type StringTail_post_PostStringChars; /*acons(aadt("StringTail",[],contextFreeSyntax()),[aadt("PostStringChars",[],lexicalSyntax(),alabel="post")],[],alabel="post")*/ + public final io.usethesource.vallang.type.Type $T43; /*\iter-star-seps(aadt("Expression",[],contextFreeSyntax()),[aadt("LAYOUTLIST",[],layoutSyntax()),alit(","),aadt("LAYOUTLIST",[],layoutSyntax())],alabel="elements0")*/ + public final io.usethesource.vallang.type.Type Expression_set_iter_star_seps_Expression; /*acons(aadt("Expression",[],contextFreeSyntax()),[\iter-star-seps(aadt("Expression",[],contextFreeSyntax()),[aadt("LAYOUTLIST",[],layoutSyntax()),alit(","),aadt("LAYOUTLIST",[],layoutSyntax())],alabel="elements0")],[],alabel="set")*/ + public final io.usethesource.vallang.type.Type OptionalExpression_noExpression_; /*acons(aadt("OptionalExpression",[],contextFreeSyntax()),[],[],alabel="noExpression")*/ + public final io.usethesource.vallang.type.Type Literal_location_LocationLiteral; /*acons(aadt("Literal",[],contextFreeSyntax()),[aadt("LocationLiteral",[],contextFreeSyntax(),alabel="locationLiteral")],[],alabel="location")*/ + public final io.usethesource.vallang.type.Type Assignable_ifDefinedOrDefault_Assignable_Expression; /*acons(aadt("Assignable",[],contextFreeSyntax()),[aadt("Assignable",[],contextFreeSyntax(),alabel="receiver"),aadt("Expression",[],contextFreeSyntax(),alabel="defaultExpression")],[],alabel="ifDefinedOrDefault")*/ + public final io.usethesource.vallang.type.Type Label_empty_; /*acons(aadt("Label",[],contextFreeSyntax()),[],[],alabel="empty")*/ + public final io.usethesource.vallang.type.Type ADT_Import; /*aadt("Import",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Import; /*aadt("Import",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type Import_default_ImportedModule; /*acons(aadt("Import",[],contextFreeSyntax()),[aadt("ImportedModule",[],contextFreeSyntax(),alabel="module")],[],alabel="default")*/ + public final io.usethesource.vallang.type.Type Sym_column_Sym_IntegerLiteral; /*acons(aadt("Sym",[],contextFreeSyntax()),[aadt("Sym",[],contextFreeSyntax(),alabel="symbol"),aadt("IntegerLiteral",[],contextFreeSyntax(),alabel="column")],[],alabel="column")*/ + public final io.usethesource.vallang.type.Type ADT_ModuleParameters; /*aadt("ModuleParameters",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_ModuleParameters; /*aadt("ModuleParameters",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type $T0; /*aparameter("T",aadt("Tree",[],dataSyntax()),closed=false)*/ + public final io.usethesource.vallang.type.Type Expression_reducer_Expression_Expression_iter_seps_Expression; /*acons(aadt("Expression",[],contextFreeSyntax()),[aadt("Expression",[],contextFreeSyntax(),alabel="init"),aadt("Expression",[],contextFreeSyntax(),alabel="result"),\iter-seps(aadt("Expression",[],contextFreeSyntax()),[aadt("LAYOUTLIST",[],layoutSyntax()),alit(","),aadt("LAYOUTLIST",[],layoutSyntax())],alabel="generators")],[],alabel="reducer")*/ + public final io.usethesource.vallang.type.Type BasicType_void_; /*acons(aadt("BasicType",[],contextFreeSyntax()),[],[],alabel="void")*/ + public final io.usethesource.vallang.type.Type Expression_stepRange_Expression_Expression_Expression; /*acons(aadt("Expression",[],contextFreeSyntax()),[aadt("Expression",[],contextFreeSyntax(),alabel="first"),aadt("Expression",[],contextFreeSyntax(),alabel="second"),aadt("Expression",[],contextFreeSyntax(),alabel="last")],[],alabel="stepRange")*/ + public final io.usethesource.vallang.type.Type $T31; /*\iter-seps(aadt("Expression",[],contextFreeSyntax()),[aadt("LAYOUTLIST",[],layoutSyntax()),alit(","),aadt("LAYOUTLIST",[],layoutSyntax())],alabel="subscripts")*/ + public final io.usethesource.vallang.type.Type Kind_function_; /*acons(aadt("Kind",[],contextFreeSyntax()),[],[],alabel="function")*/ + public final io.usethesource.vallang.type.Type Pattern_qualifiedName_QualifiedName; /*acons(aadt("Pattern",[],contextFreeSyntax()),[aadt("QualifiedName",[],contextFreeSyntax(),alabel="qualifiedName")],[],alabel="qualifiedName")*/ + public final io.usethesource.vallang.type.Type BasicType_type_; /*acons(aadt("BasicType",[],contextFreeSyntax()),[],[],alabel="type")*/ + public final io.usethesource.vallang.type.Type $T19; /*\iter-seps(aadt("Case",[],contextFreeSyntax()),[aadt("LAYOUTLIST",[],layoutSyntax())],alabel="cases")*/ + public final io.usethesource.vallang.type.Type Pattern_literal_Literal; /*acons(aadt("Pattern",[],contextFreeSyntax()),[aadt("Literal",[],contextFreeSyntax(),alabel="literal")],[],alabel="literal")*/ + public final io.usethesource.vallang.type.Type Literal_regExp_RegExpLiteral; /*acons(aadt("Literal",[],contextFreeSyntax()),[aadt("RegExpLiteral",[],lexicalSyntax(),alabel="regExpLiteral")],[],alabel="regExp")*/ + public final io.usethesource.vallang.type.Type ADT_KeywordArgument_1; /*aadt("KeywordArgument",[aparameter("T",aadt("Tree",[],dataSyntax()),closed=true)],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_KeywordArgument_1; /*aadt("KeywordArgument",[aparameter("T",aadt("Tree",[],dataSyntax()),closed=true)],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_StructuredType; /*aadt("StructuredType",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_StructuredType; /*aadt("StructuredType",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type StructuredType_default_BasicType_iter_seps_TypeArg; /*acons(aadt("StructuredType",[],contextFreeSyntax()),[aadt("BasicType",[],contextFreeSyntax(),alabel="basicType"),\iter-seps(aadt("TypeArg",[],contextFreeSyntax()),[aadt("LAYOUTLIST",[],layoutSyntax()),alit(","),aadt("LAYOUTLIST",[],layoutSyntax())],alabel="arguments")],[],alabel="default")*/ + public final io.usethesource.vallang.type.Type ADT_Command; /*aadt("Command",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Command; /*aadt("Command",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type Command_declaration_Declaration; /*acons(aadt("Command",[],contextFreeSyntax()),[aadt("Declaration",[],contextFreeSyntax(),alabel="declaration")],[],alabel="declaration")*/ + public final io.usethesource.vallang.type.Type ADT_QualifiedName; /*aadt("QualifiedName",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_QualifiedName; /*aadt("QualifiedName",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type $T55; /*\iter-seps(aadt("QualifiedName",[],contextFreeSyntax()),[aadt("LAYOUTLIST",[],layoutSyntax()),alit(","),aadt("LAYOUTLIST",[],layoutSyntax())],alabel="variables")*/ + public final io.usethesource.vallang.type.Type Statement_solve_iter_seps_QualifiedName_Bound_Statement; /*acons(aadt("Statement",[],contextFreeSyntax()),[\iter-seps(aadt("QualifiedName",[],contextFreeSyntax()),[aadt("LAYOUTLIST",[],layoutSyntax()),alit(","),aadt("LAYOUTLIST",[],layoutSyntax())],alabel="variables"),aadt("Bound",[],contextFreeSyntax(),alabel="bound"),aadt("Statement",[],contextFreeSyntax(),alabel="body")],[],alabel="solve")*/ + public final io.usethesource.vallang.type.Type Pattern_typedVariableBecomes_Type_Name_Pattern; /*acons(aadt("Pattern",[],contextFreeSyntax()),[aadt("Type",[],contextFreeSyntax(),alabel="type"),aadt("Name",[],lexicalSyntax(),alabel="name"),aadt("Pattern",[],contextFreeSyntax(),alabel="pattern")],[],alabel="typedVariableBecomes")*/ + public final io.usethesource.vallang.type.Type Assoc_left_; /*acons(aadt("Assoc",[],contextFreeSyntax()),[],[],alabel="left")*/ + public final io.usethesource.vallang.type.Type ADT_Name; /*aadt("Name",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Name; /*aadt("Name",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type $T34; /*alit("::")*/ + public final io.usethesource.vallang.type.Type $T35; /*\iter-seps(aadt("Name",[],lexicalSyntax()),[aadt("LAYOUTLIST",[],layoutSyntax()),alit("::"),aadt("LAYOUTLIST",[],layoutSyntax())],alabel="names")*/ + public final io.usethesource.vallang.type.Type ADT_UserType; /*aadt("UserType",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_UserType; /*aadt("UserType",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type UserType_name_QualifiedName; /*acons(aadt("UserType",[],contextFreeSyntax()),[aadt("QualifiedName",[],contextFreeSyntax(),alabel="name")],[],alabel="name")*/ + public final io.usethesource.vallang.type.Type ADT_ModuleActuals; /*aadt("ModuleActuals",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_ModuleActuals; /*aadt("ModuleActuals",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type Assignment_ifDefined_; /*acons(aadt("Assignment",[],contextFreeSyntax()),[],[],alabel="ifDefined")*/ + public final io.usethesource.vallang.type.Type ImportedModule_actualsRenaming_QualifiedName_ModuleActuals_Renamings; /*acons(aadt("ImportedModule",[],contextFreeSyntax()),[aadt("QualifiedName",[],contextFreeSyntax(),alabel="name"),aadt("ModuleActuals",[],contextFreeSyntax(),alabel="actuals"),aadt("Renamings",[],contextFreeSyntax(),alabel="renamings")],[],alabel="actualsRenaming")*/ + public final io.usethesource.vallang.type.Type ShellCommand_unimport_QualifiedName; /*acons(aadt("ShellCommand",[],contextFreeSyntax()),[aadt("QualifiedName",[],contextFreeSyntax(),alabel="name")],[],alabel="unimport")*/ + public final io.usethesource.vallang.type.Type $T14; /*\iter-star-seps(aadt("Statement",[],contextFreeSyntax()),[aadt("LAYOUTLIST",[],layoutSyntax())],alabel="preStatsElse")*/ + public final io.usethesource.vallang.type.Type ADT_PathPart; /*aadt("PathPart",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_PathPart; /*aadt("PathPart",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type PathPart_nonInterpolated_PathChars; /*acons(aadt("PathPart",[],contextFreeSyntax()),[aadt("PathChars",[],lexicalSyntax(),alabel="pathChars")],[],alabel="nonInterpolated")*/ + public final io.usethesource.vallang.type.Type ADT_Tags; /*aadt("Tags",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Tags; /*aadt("Tags",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type ShellCommand_test_; /*acons(aadt("ShellCommand",[],contextFreeSyntax()),[],[],alabel="test")*/ + public final io.usethesource.vallang.type.Type BasicType_int_; /*acons(aadt("BasicType",[],contextFreeSyntax()),[],[],alabel="int")*/ + public final io.usethesource.vallang.type.Type BasicType_listRelation_; /*acons(aadt("BasicType",[],contextFreeSyntax()),[],[],alabel="listRelation")*/ + public final io.usethesource.vallang.type.Type Expression_negation_Expression; /*acons(aadt("Expression",[],contextFreeSyntax()),[aadt("Expression",[],contextFreeSyntax(),alabel="argument")],[],alabel="negation")*/ + public final io.usethesource.vallang.type.Type $T29; /*\iter-star-seps(aadt("Import",[],contextFreeSyntax()),[aadt("LAYOUTLIST",[],layoutSyntax())],alabel="imports")*/ + public final io.usethesource.vallang.type.Type ADT_URLChars; /*aadt("URLChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_URLChars; /*aadt("URLChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type DateTimeLiteral_dateAndTimeLiteral_DateAndTime; /*acons(aadt("DateTimeLiteral",[],contextFreeSyntax()),[aadt("DateAndTime",[],lexicalSyntax(),alabel="dateAndTime")],[],alabel="dateAndTimeLiteral")*/ + public final io.usethesource.vallang.type.Type $T42; /*\iter-star-seps(aadt("Pattern",[],contextFreeSyntax()),[aadt("LAYOUTLIST",[],layoutSyntax()),alit(","),aadt("LAYOUTLIST",[],layoutSyntax())],alabel="elements0")*/ + public final io.usethesource.vallang.type.Type Pattern_list_iter_star_seps_Pattern; /*acons(aadt("Pattern",[],contextFreeSyntax()),[\iter-star-seps(aadt("Pattern",[],contextFreeSyntax()),[aadt("LAYOUTLIST",[],layoutSyntax()),alit(","),aadt("LAYOUTLIST",[],layoutSyntax())],alabel="elements0")],[],alabel="list")*/ + public final io.usethesource.vallang.type.Type Visibility_default_; /*acons(aadt("Visibility",[],contextFreeSyntax()),[],[],alabel="default")*/ + public final io.usethesource.vallang.type.Type ADT_Parameters; /*aadt("Parameters",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Parameters; /*aadt("Parameters",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type Parameters_varArgs_Formals_KeywordFormals; /*acons(aadt("Parameters",[],contextFreeSyntax()),[aadt("Formals",[],contextFreeSyntax(),alabel="formals"),aadt("KeywordFormals",[],contextFreeSyntax(),alabel="keywordFormals")],[],alabel="varArgs")*/ + public final io.usethesource.vallang.type.Type ADT_FunctionBody; /*aadt("FunctionBody",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_FunctionBody; /*aadt("FunctionBody",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type Assignable_constructor_Name_iter_seps_Assignable; /*acons(aadt("Assignable",[],contextFreeSyntax()),[aadt("Name",[],lexicalSyntax(),alabel="name"),\iter-seps(aadt("Assignable",[],contextFreeSyntax()),[aadt("LAYOUTLIST",[],layoutSyntax()),alit(","),aadt("LAYOUTLIST",[],layoutSyntax())],alabel="arguments")],[],alabel="constructor")*/ + public final io.usethesource.vallang.type.Type Expression_ifDefinedOtherwise_Expression_Expression; /*acons(aadt("Expression",[],contextFreeSyntax()),[aadt("Expression",[],contextFreeSyntax(),alabel="lhs"),aadt("Expression",[],contextFreeSyntax(),alabel="rhs")],[],alabel="ifDefinedOtherwise")*/ + public final io.usethesource.vallang.type.Type Assignable_bracket_Assignable; /*acons(aadt("Assignable",[],contextFreeSyntax()),[aadt("Assignable",[],contextFreeSyntax(),alabel="arg")],[],alabel="bracket")*/ + public final io.usethesource.vallang.type.Type LocalVariableDeclaration_default_Declarator; /*acons(aadt("LocalVariableDeclaration",[],contextFreeSyntax()),[aadt("Declarator",[],contextFreeSyntax(),alabel="declarator")],[],alabel="default")*/ + public final io.usethesource.vallang.type.Type ADT_Declaration; /*aadt("Declaration",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Declaration; /*aadt("Declaration",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type Statement_visit_Label_Visit; /*acons(aadt("Statement",[],contextFreeSyntax()),[aadt("Label",[],contextFreeSyntax(),alabel="label"),aadt("Visit",[],contextFreeSyntax(),alabel="visit")],[],alabel="visit")*/ + public final io.usethesource.vallang.type.Type StringMiddle_interpolated_MidStringChars_Expression_StringMiddle; /*acons(aadt("StringMiddle",[],contextFreeSyntax()),[aadt("MidStringChars",[],lexicalSyntax(),alabel="mid"),aadt("Expression",[],contextFreeSyntax(),alabel="expression"),aadt("StringMiddle",[],contextFreeSyntax(),alabel="tail")],[],alabel="interpolated")*/ + public final io.usethesource.vallang.type.Type Expression_list_iter_star_seps_Expression; /*acons(aadt("Expression",[],contextFreeSyntax()),[\iter-star-seps(aadt("Expression",[],contextFreeSyntax()),[aadt("LAYOUTLIST",[],layoutSyntax()),alit(","),aadt("LAYOUTLIST",[],layoutSyntax())],alabel="elements0")],[],alabel="list")*/ + public final io.usethesource.vallang.type.Type Expression_asType_Type_Expression; /*acons(aadt("Expression",[],contextFreeSyntax()),[aadt("Type",[],contextFreeSyntax(),alabel="type"),aadt("Expression",[],contextFreeSyntax(),alabel="argument")],[],alabel="asType")*/ + public final io.usethesource.vallang.type.Type ADT_LocationLiteral; /*aadt("LocationLiteral",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_LocationLiteral; /*aadt("LocationLiteral",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type $T2; /*\iter-seps(aadt("Statement",[],contextFreeSyntax()),[aadt("LAYOUTLIST",[],layoutSyntax())],alabel="statements")*/ + public final io.usethesource.vallang.type.Type Expression_closure_Type_Parameters_iter_seps_Statement; /*acons(aadt("Expression",[],contextFreeSyntax()),[aadt("Type",[],contextFreeSyntax(),alabel="type"),aadt("Parameters",[],contextFreeSyntax(),alabel="parameters"),\iter-seps(aadt("Statement",[],contextFreeSyntax()),[aadt("LAYOUTLIST",[],layoutSyntax())],alabel="statements")],[],alabel="closure")*/ + public final io.usethesource.vallang.type.Type Statement_append_DataTarget_Statement; /*acons(aadt("Statement",[],contextFreeSyntax()),[aadt("DataTarget",[],contextFreeSyntax(),alabel="dataTarget"),aadt("Statement",[],contextFreeSyntax(),alabel="statement")],[],alabel="append")*/ + public final io.usethesource.vallang.type.Type PathTail_post_PostPathChars; /*acons(aadt("PathTail",[],contextFreeSyntax()),[aadt("PostPathChars",[],lexicalSyntax(),alabel="post")],[],alabel="post")*/ + public final io.usethesource.vallang.type.Type DateTimeLiteral_timeLiteral_JustTime; /*acons(aadt("DateTimeLiteral",[],contextFreeSyntax()),[aadt("JustTime",[],lexicalSyntax(),alabel="time")],[],alabel="timeLiteral")*/ + public final io.usethesource.vallang.type.Type Pattern_splice_Pattern; /*acons(aadt("Pattern",[],contextFreeSyntax()),[aadt("Pattern",[],contextFreeSyntax(),alabel="argument")],[],alabel="splice")*/ + public final io.usethesource.vallang.type.Type $T56; /*\iter-star-seps(aadt("Range",[],contextFreeSyntax()),[aadt("LAYOUTLIST",[],layoutSyntax())],alabel="ranges")*/ + public final io.usethesource.vallang.type.Type Class_simpleCharclass_iter_star_seps_Range; /*acons(aadt("Class",[],contextFreeSyntax()),[\iter-star-seps(aadt("Range",[],contextFreeSyntax()),[aadt("LAYOUTLIST",[],layoutSyntax())],alabel="ranges")],[],alabel="simpleCharclass")*/ + public final io.usethesource.vallang.type.Type ADT_DataTypeSelector; /*aadt("DataTypeSelector",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_DataTypeSelector; /*aadt("DataTypeSelector",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type DataTypeSelector_selector_QualifiedName_Name; /*acons(aadt("DataTypeSelector",[],contextFreeSyntax()),[aadt("QualifiedName",[],contextFreeSyntax(),alabel="sort"),aadt("Name",[],lexicalSyntax(),alabel="production")],[],alabel="selector")*/ + public final io.usethesource.vallang.type.Type ADT_OptionalComma; /*aadt("OptionalComma",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_OptionalComma; /*aadt("OptionalComma",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type OptionalComma_default_str; /*acons(aadt("OptionalComma",[],lexicalSyntax()),[astr()],[],alabel="default")*/ + public final io.usethesource.vallang.type.Type ConcretePart_newline_; /*acons(aadt("ConcretePart",[],lexicalSyntax()),[],[],alabel="newline")*/ + public final io.usethesource.vallang.type.Type IntegerLiteral_octalIntegerLiteral_OctalIntegerLiteral; /*acons(aadt("IntegerLiteral",[],contextFreeSyntax()),[aadt("OctalIntegerLiteral",[],lexicalSyntax(),alabel="octal")],[],alabel="octalIntegerLiteral")*/ + public final io.usethesource.vallang.type.Type ADT_DataTarget; /*aadt("DataTarget",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_DataTarget; /*aadt("DataTarget",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type Prod_unlabeled_iter_star_seps_ProdModifier_iter_star_seps_Sym; /*acons(aadt("Prod",[],contextFreeSyntax()),[\iter-star-seps(aadt("ProdModifier",[],contextFreeSyntax()),[aadt("LAYOUTLIST",[],layoutSyntax())],alabel="modifiers"),\iter-star-seps(aadt("Sym",[],contextFreeSyntax()),[aadt("LAYOUTLIST",[],layoutSyntax())],alabel="syms")],[],alabel="unlabeled")*/ + public final io.usethesource.vallang.type.Type ADT_HexIntegerLiteral; /*aadt("HexIntegerLiteral",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_HexIntegerLiteral; /*aadt("HexIntegerLiteral",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_TimeZonePart; /*aadt("TimeZonePart",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_TimeZonePart; /*aadt("TimeZonePart",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type $T57; /*\iter-seps(aadt("Type",[],contextFreeSyntax()),[aadt("LAYOUTLIST",[],layoutSyntax()),alit(","),aadt("LAYOUTLIST",[],layoutSyntax())],alabel="exceptions")*/ + public final io.usethesource.vallang.type.Type Signature_withThrows_FunctionModifiers_Type_Name_Parameters_iter_seps_Type; /*acons(aadt("Signature",[],contextFreeSyntax()),[aadt("FunctionModifiers",[],contextFreeSyntax(),alabel="modifiers"),aadt("Type",[],contextFreeSyntax(),alabel="type"),aadt("Name",[],lexicalSyntax(),alabel="name"),aadt("Parameters",[],contextFreeSyntax(),alabel="parameters"),\iter-seps(aadt("Type",[],contextFreeSyntax()),[aadt("LAYOUTLIST",[],layoutSyntax()),alit(","),aadt("LAYOUTLIST",[],layoutSyntax())],alabel="exceptions")],[],alabel="withThrows")*/ + public final io.usethesource.vallang.type.Type Assignable_annotation_Assignable_Name; /*acons(aadt("Assignable",[],contextFreeSyntax()),[aadt("Assignable",[],contextFreeSyntax(),alabel="receiver"),aadt("Name",[],lexicalSyntax(),alabel="annotation")],[],alabel="annotation")*/ + public final io.usethesource.vallang.type.Type $T6; /*\iter-seps(aadt("QualifiedName",[],contextFreeSyntax()),[aadt("LAYOUTLIST",[],layoutSyntax()),alit(","),aadt("LAYOUTLIST",[],layoutSyntax())],alabel="names")*/ + public final io.usethesource.vallang.type.Type ADT_KeywordFormals; /*aadt("KeywordFormals",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_KeywordFormals; /*aadt("KeywordFormals",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type Sym_characterClass_Class; /*acons(aadt("Sym",[],contextFreeSyntax()),[aadt("Class",[],contextFreeSyntax(),alabel="charClass")],[],alabel="characterClass")*/ + public final io.usethesource.vallang.type.Type Expression_intersection_Expression_Expression; /*acons(aadt("Expression",[],contextFreeSyntax()),[aadt("Expression",[],contextFreeSyntax(),alabel="lhs"),aadt("Expression",[],contextFreeSyntax(),alabel="rhs")],[],alabel="intersection")*/ + public final io.usethesource.vallang.type.Type $T50; /*\iter-star-seps(aadt("Tag",[],contextFreeSyntax()),[aadt("LAYOUTLIST",[],layoutSyntax())],alabel="tags")*/ + public final io.usethesource.vallang.type.Type Tags_default_iter_star_seps_Tag; /*acons(aadt("Tags",[],contextFreeSyntax()),[\iter-star-seps(aadt("Tag",[],contextFreeSyntax()),[aadt("LAYOUTLIST",[],layoutSyntax())],alabel="tags")],[],alabel="default")*/ + public final io.usethesource.vallang.type.Type ADT_Variant; /*aadt("Variant",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Variant; /*aadt("Variant",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type $T51; /*\iter-seps(aadt("Variant",[],contextFreeSyntax()),[aadt("LAYOUTLIST",[],layoutSyntax()),alit("|"),aadt("LAYOUTLIST",[],layoutSyntax())],alabel="variants")*/ + public final io.usethesource.vallang.type.Type Declaration_data_Tags_Visibility_UserType_CommonKeywordParameters_iter_seps_Variant; /*acons(aadt("Declaration",[],contextFreeSyntax()),[aadt("Tags",[],contextFreeSyntax(),alabel="tags"),aadt("Visibility",[],contextFreeSyntax(),alabel="visibility"),aadt("UserType",[],contextFreeSyntax(),alabel="user"),aadt("CommonKeywordParameters",[],contextFreeSyntax(),alabel="commonKeywordParameters"),\iter-seps(aadt("Variant",[],contextFreeSyntax()),[aadt("LAYOUTLIST",[],layoutSyntax()),alit("|"),aadt("LAYOUTLIST",[],layoutSyntax())],alabel="variants")],[],alabel="data")*/ + public final io.usethesource.vallang.type.Type Class_complement_Class; /*acons(aadt("Class",[],contextFreeSyntax()),[aadt("Class",[],contextFreeSyntax(),alabel="charClass")],[],alabel="complement")*/ + public final io.usethesource.vallang.type.Type ShellCommand_history_; /*acons(aadt("ShellCommand",[],contextFreeSyntax()),[],[],alabel="history")*/ + public final io.usethesource.vallang.type.Type BasicType_num_; /*acons(aadt("BasicType",[],contextFreeSyntax()),[],[],alabel="num")*/ + public final io.usethesource.vallang.type.Type Declaration_alias_Tags_Visibility_UserType_Type; /*acons(aadt("Declaration",[],contextFreeSyntax()),[aadt("Tags",[],contextFreeSyntax(),alabel="tags"),aadt("Visibility",[],contextFreeSyntax(),alabel="visibility"),aadt("UserType",[],contextFreeSyntax(),alabel="user"),aadt("Type",[],contextFreeSyntax(),alabel="base")],[],alabel="alias")*/ + public final io.usethesource.vallang.type.Type BasicType_string_; /*acons(aadt("BasicType",[],contextFreeSyntax()),[],[],alabel="string")*/ + public final io.usethesource.vallang.type.Type Literal_dateTime_DateTimeLiteral; /*acons(aadt("Literal",[],contextFreeSyntax()),[aadt("DateTimeLiteral",[],contextFreeSyntax(),alabel="dateTimeLiteral")],[],alabel="dateTime")*/ + public final io.usethesource.vallang.type.Type Pattern_reifiedType_Pattern_Pattern; /*acons(aadt("Pattern",[],contextFreeSyntax()),[aadt("Pattern",[],contextFreeSyntax(),alabel="symbol"),aadt("Pattern",[],contextFreeSyntax(),alabel="definitions")],[],alabel="reifiedType")*/ + public final io.usethesource.vallang.type.Type Expression_lessThanOrEq_Expression_Expression; /*acons(aadt("Expression",[],contextFreeSyntax()),[aadt("Expression",[],contextFreeSyntax(),alabel="lhs"),aadt("Expression",[],contextFreeSyntax(),alabel="rhs")],[],alabel="lessThanOrEq")*/ + public final io.usethesource.vallang.type.Type $T23; /*\iter-star-seps(aadt("Statement",[],contextFreeSyntax()),[aadt("LAYOUTLIST",[],layoutSyntax())],alabel="postStats")*/ + public final io.usethesource.vallang.type.Type Statement_for_Label_iter_seps_Expression_Statement; /*acons(aadt("Statement",[],contextFreeSyntax()),[aadt("Label",[],contextFreeSyntax(),alabel="label"),\iter-seps(aadt("Expression",[],contextFreeSyntax()),[aadt("LAYOUTLIST",[],layoutSyntax()),alit(","),aadt("LAYOUTLIST",[],layoutSyntax())],alabel="generators"),aadt("Statement",[],contextFreeSyntax(),alabel="body")],[],alabel="for")*/ + public final io.usethesource.vallang.type.Type Target_labeled_Name; /*acons(aadt("Target",[],contextFreeSyntax()),[aadt("Name",[],lexicalSyntax(),alabel="name")],[],alabel="labeled")*/ + public final io.usethesource.vallang.type.Type BasicType_value_; /*acons(aadt("BasicType",[],contextFreeSyntax()),[],[],alabel="value")*/ + public final io.usethesource.vallang.type.Type Expression_setAnnotation_Expression_Name_Expression; /*acons(aadt("Expression",[],contextFreeSyntax()),[aadt("Expression",[],contextFreeSyntax(),alabel="expression"),aadt("Name",[],lexicalSyntax(),alabel="name"),aadt("Expression",[],contextFreeSyntax(),alabel="value")],[],alabel="setAnnotation")*/ + public final io.usethesource.vallang.type.Type ADT_Start; /*aadt("Start",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Start; /*aadt("Start",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type Start_present_; /*acons(aadt("Start",[],contextFreeSyntax()),[],[],alabel="present")*/ + public final io.usethesource.vallang.type.Type ShellCommand_listModules_; /*acons(aadt("ShellCommand",[],contextFreeSyntax()),[],[],alabel="listModules")*/ + public final io.usethesource.vallang.type.Type Expression_getAnnotation_Expression_Name; /*acons(aadt("Expression",[],contextFreeSyntax()),[aadt("Expression",[],contextFreeSyntax(),alabel="expression"),aadt("Name",[],lexicalSyntax(),alabel="name")],[],alabel="getAnnotation")*/ + public final io.usethesource.vallang.type.Type ADT_TagString; /*aadt("TagString",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_TagString; /*aadt("TagString",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type Kind_data_; /*acons(aadt("Kind",[],contextFreeSyntax()),[],[],alabel="data")*/ + public final io.usethesource.vallang.type.Type ADT_Mapping_Pattern; /*aadt("Mapping",[aadt("Pattern",[],contextFreeSyntax())],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Mapping_Pattern; /*aadt("Mapping",[aadt("Pattern",[],contextFreeSyntax())],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type Prod_associativityGroup_Assoc_Prod; /*acons(aadt("Prod",[],contextFreeSyntax()),[aadt("Assoc",[],contextFreeSyntax(),alabel="associativity"),aadt("Prod",[],contextFreeSyntax(),alabel="group")],[],alabel="associativityGroup")*/ + public final io.usethesource.vallang.type.Type Statement_variableDeclaration_LocalVariableDeclaration; /*acons(aadt("Statement",[],contextFreeSyntax()),[aadt("LocalVariableDeclaration",[],contextFreeSyntax(),alabel="declaration")],[],alabel="variableDeclaration")*/ + public final io.usethesource.vallang.type.Type Expression_comprehension_Comprehension; /*acons(aadt("Expression",[],contextFreeSyntax()),[aadt("Comprehension",[],contextFreeSyntax(),alabel="comprehension")],[],alabel="comprehension")*/ + public final io.usethesource.vallang.type.Type ADT_NonterminalLabel; /*aadt("NonterminalLabel",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_NonterminalLabel; /*aadt("NonterminalLabel",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type Expression_splice_Expression; /*acons(aadt("Expression",[],contextFreeSyntax()),[aadt("Expression",[],contextFreeSyntax(),alabel="argument")],[],alabel="splice")*/ + public final io.usethesource.vallang.type.Type Sym_empty_; /*acons(aadt("Sym",[],contextFreeSyntax()),[],[],alabel="empty")*/ + public final io.usethesource.vallang.type.Type $T30; /*\iter-star-seps(aadt("Statement",[],contextFreeSyntax()),[aadt("LAYOUTLIST",[],layoutSyntax())],alabel="statements0")*/ + public final io.usethesource.vallang.type.Type Replacement_unconditional_Expression; /*acons(aadt("Replacement",[],contextFreeSyntax()),[aadt("Expression",[],contextFreeSyntax(),alabel="replacementExpression")],[],alabel="unconditional")*/ + public final io.usethesource.vallang.type.Type Declaration_dataAbstract_Tags_Visibility_UserType_CommonKeywordParameters; /*acons(aadt("Declaration",[],contextFreeSyntax()),[aadt("Tags",[],contextFreeSyntax(),alabel="tags"),aadt("Visibility",[],contextFreeSyntax(),alabel="visibility"),aadt("UserType",[],contextFreeSyntax(),alabel="user"),aadt("CommonKeywordParameters",[],contextFreeSyntax(),alabel="commonKeywordParameters")],[],alabel="dataAbstract")*/ + public final io.usethesource.vallang.type.Type Sym_iterSep_Sym_Sym; /*acons(aadt("Sym",[],contextFreeSyntax()),[aadt("Sym",[],contextFreeSyntax(),alabel="symbol"),aadt("Sym",[],contextFreeSyntax(),alabel="sep")],[],alabel="iterSep")*/ + public final io.usethesource.vallang.type.Type ConcretePart_hole_ConcreteHole; /*acons(aadt("ConcretePart",[],lexicalSyntax()),[aadt("ConcreteHole",[],contextFreeSyntax(),alabel="hole")],[],alabel="hole")*/ + public final io.usethesource.vallang.type.Type ADT_Nonterminal; /*aadt("Nonterminal",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Nonterminal; /*aadt("Nonterminal",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type BasicType_map_; /*acons(aadt("BasicType",[],contextFreeSyntax()),[],[],alabel="map")*/ + public final io.usethesource.vallang.type.Type ADT_KeywordArguments_Pattern; /*aadt("KeywordArguments",[aadt("Pattern",[],contextFreeSyntax())],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_KeywordArguments_Pattern; /*aadt("KeywordArguments",[aadt("Pattern",[],contextFreeSyntax())],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type Sym_labeled_Sym_NonterminalLabel; /*acons(aadt("Sym",[],contextFreeSyntax()),[aadt("Sym",[],contextFreeSyntax(),alabel="symbol"),aadt("NonterminalLabel",[],lexicalSyntax(),alabel="label")],[],alabel="labeled")*/ + public final io.usethesource.vallang.type.Type ADT_RegExp; /*aadt("RegExp",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_RegExp; /*aadt("RegExp",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type Expression_slice_Expression_OptionalExpression_OptionalExpression; /*acons(aadt("Expression",[],contextFreeSyntax()),[aadt("Expression",[],contextFreeSyntax(),alabel="expression"),aadt("OptionalExpression",[],contextFreeSyntax(),alabel="optFirst"),aadt("OptionalExpression",[],contextFreeSyntax(),alabel="optLast")],[],alabel="slice")*/ + public final io.usethesource.vallang.type.Type Sym_start_Nonterminal; /*acons(aadt("Sym",[],contextFreeSyntax()),[aadt("Nonterminal",[],lexicalSyntax(),alabel="nonterminal")],[],alabel="start")*/ + public final io.usethesource.vallang.type.Type Assignable_sliceStep_Assignable_OptionalExpression_Expression_OptionalExpression; /*acons(aadt("Assignable",[],contextFreeSyntax()),[aadt("Assignable",[],contextFreeSyntax(),alabel="receiver"),aadt("OptionalExpression",[],contextFreeSyntax(),alabel="optFirst"),aadt("Expression",[],contextFreeSyntax(),alabel="second"),aadt("OptionalExpression",[],contextFreeSyntax(),alabel="optLast")],[],alabel="sliceStep")*/ + public final io.usethesource.vallang.type.Type TypeArg_named_Type_Name; /*acons(aadt("TypeArg",[],contextFreeSyntax()),[aadt("Type",[],contextFreeSyntax(),alabel="type"),aadt("Name",[],lexicalSyntax(),alabel="name")],[],alabel="named")*/ + public final io.usethesource.vallang.type.Type ADT_PostStringChars; /*aadt("PostStringChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_PostStringChars; /*aadt("PostStringChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_PreStringChars; /*aadt("PreStringChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_PreStringChars; /*aadt("PreStringChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Header; /*aadt("Header",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Header; /*aadt("Header",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type Header_default_Tags_QualifiedName_iter_star_seps_Import; /*acons(aadt("Header",[],contextFreeSyntax()),[aadt("Tags",[],contextFreeSyntax(),alabel="tags"),aadt("QualifiedName",[],contextFreeSyntax(),alabel="name"),\iter-star-seps(aadt("Import",[],contextFreeSyntax()),[aadt("LAYOUTLIST",[],layoutSyntax())],alabel="imports")],[],alabel="default")*/ + public final io.usethesource.vallang.type.Type Expression_ifThenElse_Expression_Expression_Expression; /*acons(aadt("Expression",[],contextFreeSyntax()),[aadt("Expression",[],contextFreeSyntax(),alabel="condition"),aadt("Expression",[],contextFreeSyntax(),alabel="thenExp"),aadt("Expression",[],contextFreeSyntax(),alabel="elseExp")],[],alabel="ifThenElse")*/ + public final io.usethesource.vallang.type.Type Case_default_Statement; /*acons(aadt("Case",[],contextFreeSyntax()),[aadt("Statement",[],contextFreeSyntax(),alabel="statement")],[],alabel="default")*/ + public final io.usethesource.vallang.type.Type Statement_tryFinally_Statement_iter_seps_Catch_Statement; /*acons(aadt("Statement",[],contextFreeSyntax()),[aadt("Statement",[],contextFreeSyntax(),alabel="body"),\iter-seps(aadt("Catch",[],contextFreeSyntax()),[aadt("LAYOUTLIST",[],layoutSyntax())],alabel="handlers"),aadt("Statement",[],contextFreeSyntax(),alabel="finallyBody")],[],alabel="tryFinally")*/ + public final io.usethesource.vallang.type.Type $T27; /*\iter-seps(aadt("Variable",[],contextFreeSyntax()),[aadt("LAYOUTLIST",[],layoutSyntax()),alit(","),aadt("LAYOUTLIST",[],layoutSyntax())],alabel="variables")*/ + public final io.usethesource.vallang.type.Type Declaration_variable_Tags_Visibility_Type_iter_seps_Variable; /*acons(aadt("Declaration",[],contextFreeSyntax()),[aadt("Tags",[],contextFreeSyntax(),alabel="tags"),aadt("Visibility",[],contextFreeSyntax(),alabel="visibility"),aadt("Type",[],contextFreeSyntax(),alabel="type"),\iter-seps(aadt("Variable",[],contextFreeSyntax()),[aadt("LAYOUTLIST",[],layoutSyntax()),alit(","),aadt("LAYOUTLIST",[],layoutSyntax())],alabel="variables")],[],alabel="variable")*/ + public final io.usethesource.vallang.type.Type Target_empty_; /*acons(aadt("Target",[],contextFreeSyntax()),[],[],alabel="empty")*/ + public final io.usethesource.vallang.type.Type ADT_Bound; /*aadt("Bound",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Bound; /*aadt("Bound",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type FunctionDeclaration_expression_Tags_Visibility_Signature_Expression; /*acons(aadt("FunctionDeclaration",[],contextFreeSyntax()),[aadt("Tags",[],contextFreeSyntax(),alabel="tags"),aadt("Visibility",[],contextFreeSyntax(),alabel="visibility"),aadt("Signature",[],contextFreeSyntax(),alabel="signature"),aadt("Expression",[],contextFreeSyntax(),alabel="expression")],[],alabel="expression")*/ + public final io.usethesource.vallang.type.Type Sym_caseInsensitiveLiteral_CaseInsensitiveStringConstant; /*acons(aadt("Sym",[],contextFreeSyntax()),[aadt("CaseInsensitiveStringConstant",[],lexicalSyntax(),alabel="cistring")],[],alabel="caseInsensitiveLiteral")*/ + public final io.usethesource.vallang.type.Type Pattern_anti_Pattern; /*acons(aadt("Pattern",[],contextFreeSyntax()),[aadt("Pattern",[],contextFreeSyntax(),alabel="pattern")],[],alabel="anti")*/ + public final io.usethesource.vallang.type.Type ADT_TypeVar; /*aadt("TypeVar",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_TypeVar; /*aadt("TypeVar",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type $T52; /*\iter-seps(aadt("TypeVar",[],contextFreeSyntax()),[aadt("LAYOUTLIST",[],layoutSyntax()),alit(","),aadt("LAYOUTLIST",[],layoutSyntax())],alabel="parameters")*/ + public final io.usethesource.vallang.type.Type ModuleParameters_default_iter_seps_TypeVar; /*acons(aadt("ModuleParameters",[],contextFreeSyntax()),[\iter-seps(aadt("TypeVar",[],contextFreeSyntax()),[aadt("LAYOUTLIST",[],layoutSyntax()),alit(","),aadt("LAYOUTLIST",[],layoutSyntax())],alabel="parameters")],[],alabel="default")*/ + public final io.usethesource.vallang.type.Type Prod_all_Prod_Prod; /*acons(aadt("Prod",[],contextFreeSyntax()),[aadt("Prod",[],contextFreeSyntax(),alabel="lhs"),aadt("Prod",[],contextFreeSyntax(),alabel="rhs")],[],alabel="all")*/ + public final io.usethesource.vallang.type.Type BasicType_relation_; /*acons(aadt("BasicType",[],contextFreeSyntax()),[],[],alabel="relation")*/ + public final io.usethesource.vallang.type.Type Class_difference_Class_Class; /*acons(aadt("Class",[],contextFreeSyntax()),[aadt("Class",[],contextFreeSyntax(),alabel="lhs"),aadt("Class",[],contextFreeSyntax(),alabel="rhs")],[],alabel="difference")*/ + public final io.usethesource.vallang.type.Type FunctionBody_default_iter_star_seps_Statement; /*acons(aadt("FunctionBody",[],contextFreeSyntax()),[\iter-star-seps(aadt("Statement",[],contextFreeSyntax()),[aadt("LAYOUTLIST",[],layoutSyntax())],alabel="statements")],[],alabel="default")*/ + public final io.usethesource.vallang.type.Type Case_patternWithAction_PatternWithAction; /*acons(aadt("Case",[],contextFreeSyntax()),[aadt("PatternWithAction",[],contextFreeSyntax(),alabel="patternWithAction")],[],alabel="patternWithAction")*/ + public final io.usethesource.vallang.type.Type Assignment_default_; /*acons(aadt("Assignment",[],contextFreeSyntax()),[],[],alabel="default")*/ + public final io.usethesource.vallang.type.Type Renaming_default_Name_Name; /*acons(aadt("Renaming",[],contextFreeSyntax()),[aadt("Name",[],lexicalSyntax(),alabel="from"),aadt("Name",[],lexicalSyntax(),alabel="to")],[],alabel="default")*/ + public final io.usethesource.vallang.type.Type Expression_subtraction_Expression_Expression; /*acons(aadt("Expression",[],contextFreeSyntax()),[aadt("Expression",[],contextFreeSyntax(),alabel="lhs"),aadt("Expression",[],contextFreeSyntax(),alabel="rhs")],[],alabel="subtraction")*/ + public final io.usethesource.vallang.type.Type ADT_StringTemplate; /*aadt("StringTemplate",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_StringTemplate; /*aadt("StringTemplate",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type $T22; /*\iter-star-seps(aadt("Statement",[],contextFreeSyntax()),[aadt("LAYOUTLIST",[],layoutSyntax())],alabel="preStats")*/ + public final io.usethesource.vallang.type.Type StringTemplate_doWhile_iter_star_seps_Statement_StringMiddle_iter_star_seps_Statement_Expression; /*acons(aadt("StringTemplate",[],contextFreeSyntax()),[\iter-star-seps(aadt("Statement",[],contextFreeSyntax()),[aadt("LAYOUTLIST",[],layoutSyntax())],alabel="preStats"),aadt("StringMiddle",[],contextFreeSyntax(),alabel="body"),\iter-star-seps(aadt("Statement",[],contextFreeSyntax()),[aadt("LAYOUTLIST",[],layoutSyntax())],alabel="postStats"),aadt("Expression",[],contextFreeSyntax(),alabel="condition")],[],alabel="doWhile")*/ + public final io.usethesource.vallang.type.Type Bound_default_Expression; /*acons(aadt("Bound",[],contextFreeSyntax()),[aadt("Expression",[],contextFreeSyntax(),alabel="expression")],[],alabel="default")*/ + public final io.usethesource.vallang.type.Type $T26; /*\iter-seps(aadt("KeywordFormal",[],contextFreeSyntax()),[aadt("LAYOUTLIST",[],layoutSyntax()),alit(","),aadt("LAYOUTLIST",[],layoutSyntax())],alabel="keywordFormalList")*/ + public final io.usethesource.vallang.type.Type Prod_reference_Name; /*acons(aadt("Prod",[],contextFreeSyntax()),[aadt("Name",[],lexicalSyntax(),alabel="referenced")],[],alabel="reference")*/ + public final io.usethesource.vallang.type.Type Expression_reifyType_Type; /*acons(aadt("Expression",[],contextFreeSyntax()),[aadt("Type",[],contextFreeSyntax(),alabel="type")],[],alabel="reifyType")*/ + public final io.usethesource.vallang.type.Type Assignable_fieldAccess_Assignable_Name; /*acons(aadt("Assignable",[],contextFreeSyntax()),[aadt("Assignable",[],contextFreeSyntax(),alabel="receiver"),aadt("Name",[],lexicalSyntax(),alabel="field")],[],alabel="fieldAccess")*/ + public final io.usethesource.vallang.type.Type BasicType_node_; /*acons(aadt("BasicType",[],contextFreeSyntax()),[],[],alabel="node")*/ + public final io.usethesource.vallang.type.Type Expression_remainder_Expression_Expression; /*acons(aadt("Expression",[],contextFreeSyntax()),[aadt("Expression",[],contextFreeSyntax(),alabel="lhs"),aadt("Expression",[],contextFreeSyntax(),alabel="rhs")],[],alabel="remainder")*/ + public final io.usethesource.vallang.type.Type Statement_while_Label_iter_seps_Expression_Statement; /*acons(aadt("Statement",[],contextFreeSyntax()),[aadt("Label",[],contextFreeSyntax(),alabel="label"),\iter-seps(aadt("Expression",[],contextFreeSyntax()),[aadt("LAYOUTLIST",[],layoutSyntax()),alit(","),aadt("LAYOUTLIST",[],layoutSyntax())],alabel="conditions"),aadt("Statement",[],contextFreeSyntax(),alabel="body")],[],alabel="while")*/ + public final io.usethesource.vallang.type.Type Expression_in_Expression_Expression; /*acons(aadt("Expression",[],contextFreeSyntax()),[aadt("Expression",[],contextFreeSyntax(),alabel="lhs"),aadt("Expression",[],contextFreeSyntax(),alabel="rhs")],[],alabel="in")*/ + public final io.usethesource.vallang.type.Type ADT_Commands; /*aadt("Commands",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Commands; /*aadt("Commands",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type Commands_commandlist_iter_seps_start_EvalCommand; /*acons(aadt("Commands",[],contextFreeSyntax()),[\iter-seps(start(aadt("EvalCommand",[],contextFreeSyntax())),[aadt("LAYOUTLIST",[],layoutSyntax())],alabel="commands")],[],alabel="commandlist")*/ + public final io.usethesource.vallang.type.Type BasicType_set_; /*acons(aadt("BasicType",[],contextFreeSyntax()),[],[],alabel="set")*/ + public final io.usethesource.vallang.type.Type Import_extend_ImportedModule; /*acons(aadt("Import",[],contextFreeSyntax()),[aadt("ImportedModule",[],contextFreeSyntax(),alabel="module")],[],alabel="extend")*/ + public final io.usethesource.vallang.type.Type ModuleActuals_default_iter_seps_Type; /*acons(aadt("ModuleActuals",[],contextFreeSyntax()),[\iter-seps(aadt("Type",[],contextFreeSyntax()),[aadt("LAYOUTLIST",[],layoutSyntax()),alit(","),aadt("LAYOUTLIST",[],layoutSyntax())],alabel="types")],[],alabel="default")*/ + public final io.usethesource.vallang.type.Type Start_absent_; /*acons(aadt("Start",[],contextFreeSyntax()),[],[],alabel="absent")*/ + public final io.usethesource.vallang.type.Type Statement_insert_DataTarget_Statement; /*acons(aadt("Statement",[],contextFreeSyntax()),[aadt("DataTarget",[],contextFreeSyntax(),alabel="dataTarget"),aadt("Statement",[],contextFreeSyntax(),alabel="statement")],[],alabel="insert")*/ + public final io.usethesource.vallang.type.Type Statement_functionDeclaration_FunctionDeclaration; /*acons(aadt("Statement",[],contextFreeSyntax()),[aadt("FunctionDeclaration",[],contextFreeSyntax(),alabel="functionDeclaration")],[],alabel="functionDeclaration")*/ + public final io.usethesource.vallang.type.Type IntegerLiteral_hexIntegerLiteral_HexIntegerLiteral; /*acons(aadt("IntegerLiteral",[],contextFreeSyntax()),[aadt("HexIntegerLiteral",[],lexicalSyntax(),alabel="hex")],[],alabel="hexIntegerLiteral")*/ + public final io.usethesource.vallang.type.Type ProdModifier_bracket_; /*acons(aadt("ProdModifier",[],contextFreeSyntax()),[],[],alabel="bracket")*/ + public final io.usethesource.vallang.type.Type Expression_bracket_Expression; /*acons(aadt("Expression",[],contextFreeSyntax()),[aadt("Expression",[],contextFreeSyntax(),alabel="expression")],[],alabel="bracket")*/ + public final io.usethesource.vallang.type.Type ProdModifier_tag_Tag; /*acons(aadt("ProdModifier",[],contextFreeSyntax()),[aadt("Tag",[],contextFreeSyntax(),alabel="tag")],[],alabel="tag")*/ + public final io.usethesource.vallang.type.Type Assoc_right_; /*acons(aadt("Assoc",[],contextFreeSyntax()),[],[],alabel="right")*/ + public final io.usethesource.vallang.type.Type Expression_any_iter_seps_Expression; /*acons(aadt("Expression",[],contextFreeSyntax()),[\iter-seps(aadt("Expression",[],contextFreeSyntax()),[aadt("LAYOUTLIST",[],layoutSyntax()),alit(","),aadt("LAYOUTLIST",[],layoutSyntax())],alabel="generators")],[],alabel="any")*/ + public final io.usethesource.vallang.type.Type ConcretePart_bs_; /*acons(aadt("ConcretePart",[],lexicalSyntax()),[],[],alabel="bs")*/ + public final io.usethesource.vallang.type.Type Expression_literal_Literal; /*acons(aadt("Expression",[],contextFreeSyntax()),[aadt("Literal",[],contextFreeSyntax(),alabel="literal")],[],alabel="literal")*/ + public final io.usethesource.vallang.type.Type Expression_lessThan_Expression_Expression; /*acons(aadt("Expression",[],contextFreeSyntax()),[aadt("Expression",[],contextFreeSyntax(),alabel="lhs"),aadt("Expression",[],contextFreeSyntax(),alabel="rhs")],[],alabel="lessThan")*/ + public final io.usethesource.vallang.type.Type Statement_switch_Label_Expression_iter_seps_Case; /*acons(aadt("Statement",[],contextFreeSyntax()),[aadt("Label",[],contextFreeSyntax(),alabel="label"),aadt("Expression",[],contextFreeSyntax(),alabel="expression"),\iter-seps(aadt("Case",[],contextFreeSyntax()),[aadt("LAYOUTLIST",[],layoutSyntax())],alabel="cases")],[],alabel="switch")*/ + public final io.usethesource.vallang.type.Type Bound_empty_; /*acons(aadt("Bound",[],contextFreeSyntax()),[],[],alabel="empty")*/ + public final io.usethesource.vallang.type.Type $T13; /*\iter-star-seps(aadt("Statement",[],contextFreeSyntax()),[aadt("LAYOUTLIST",[],layoutSyntax())],alabel="postStatsThen")*/ + public final io.usethesource.vallang.type.Type StringTemplate_ifThenElse_iter_seps_Expression_iter_star_seps_Statement_StringMiddle_iter_star_seps_Statement_iter_star_seps_Statement_StringMiddle_iter_star_seps_Statement; /*acons(aadt("StringTemplate",[],contextFreeSyntax()),[\iter-seps(aadt("Expression",[],contextFreeSyntax()),[aadt("LAYOUTLIST",[],layoutSyntax()),alit(","),aadt("LAYOUTLIST",[],layoutSyntax())],alabel="conditions"),\iter-star-seps(aadt("Statement",[],contextFreeSyntax()),[aadt("LAYOUTLIST",[],layoutSyntax())],alabel="preStatsThen"),aadt("StringMiddle",[],contextFreeSyntax(),alabel="thenString"),\iter-star-seps(aadt("Statement",[],contextFreeSyntax()),[aadt("LAYOUTLIST",[],layoutSyntax())],alabel="postStatsThen"),\iter-star-seps(aadt("Statement",[],contextFreeSyntax()),[aadt("LAYOUTLIST",[],layoutSyntax())],alabel="preStatsElse"),aadt("StringMiddle",[],contextFreeSyntax(),alabel="elseString"),\iter-star-seps(aadt("Statement",[],contextFreeSyntax()),[aadt("LAYOUTLIST",[],layoutSyntax())],alabel="postStatsElse")],[],alabel="ifThenElse")*/ + public final io.usethesource.vallang.type.Type ShellCommand_undeclare_QualifiedName; /*acons(aadt("ShellCommand",[],contextFreeSyntax()),[aadt("QualifiedName",[],contextFreeSyntax(),alabel="name")],[],alabel="undeclare")*/ + public final io.usethesource.vallang.type.Type Catch_default_Statement; /*acons(aadt("Catch",[],contextFreeSyntax()),[aadt("Statement",[],contextFreeSyntax(),alabel="body")],[],alabel="default")*/ + public final io.usethesource.vallang.type.Type Import_syntax_SyntaxDefinition; /*acons(aadt("Import",[],contextFreeSyntax()),[aadt("SyntaxDefinition",[],contextFreeSyntax(),alabel="syntax")],[],alabel="syntax")*/ + public final io.usethesource.vallang.type.Type PatternWithAction_arbitrary_Pattern_Statement; /*acons(aadt("PatternWithAction",[],contextFreeSyntax()),[aadt("Pattern",[],contextFreeSyntax(),alabel="pattern"),aadt("Statement",[],contextFreeSyntax(),alabel="statement")],[],alabel="arbitrary")*/ + public final io.usethesource.vallang.type.Type Pattern_callOrTree_Pattern_iter_star_seps_Pattern_KeywordArguments_Pattern; /*acons(aadt("Pattern",[],contextFreeSyntax()),[aadt("Pattern",[],contextFreeSyntax(),alabel="expression"),\iter-star-seps(aadt("Pattern",[],contextFreeSyntax()),[aadt("LAYOUTLIST",[],layoutSyntax()),alit(","),aadt("LAYOUTLIST",[],layoutSyntax())],alabel="arguments"),aadt("KeywordArguments",[aadt("Pattern",[],contextFreeSyntax())],contextFreeSyntax(),alabel="keywordArguments")],[],alabel="callOrTree")*/ + public final io.usethesource.vallang.type.Type Expression_match_Pattern_Expression; /*acons(aadt("Expression",[],contextFreeSyntax()),[aadt("Pattern",[],contextFreeSyntax(),alabel="pattern"),aadt("Expression",[],contextFreeSyntax(),alabel="expression")],[],alabel="match")*/ + public final io.usethesource.vallang.type.Type Statement_assert_Expression; /*acons(aadt("Statement",[],contextFreeSyntax()),[aadt("Expression",[],contextFreeSyntax(),alabel="expression")],[],alabel="assert")*/ + public final io.usethesource.vallang.type.Type Expression_transitiveClosure_Expression; /*acons(aadt("Expression",[],contextFreeSyntax()),[aadt("Expression",[],contextFreeSyntax(),alabel="argument")],[],alabel="transitiveClosure")*/ + public final io.usethesource.vallang.type.Type ADT_Formals; /*aadt("Formals",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Formals; /*aadt("Formals",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type $T21; /*\iter-star-seps(aadt("Pattern",[],contextFreeSyntax()),[aadt("LAYOUTLIST",[],layoutSyntax()),alit(","),aadt("LAYOUTLIST",[],layoutSyntax())],alabel="formals")*/ + public final io.usethesource.vallang.type.Type Formals_default_iter_star_seps_Pattern; /*acons(aadt("Formals",[],contextFreeSyntax()),[\iter-star-seps(aadt("Pattern",[],contextFreeSyntax()),[aadt("LAYOUTLIST",[],layoutSyntax()),alit(","),aadt("LAYOUTLIST",[],layoutSyntax())],alabel="formals")],[],alabel="default")*/ + public final io.usethesource.vallang.type.Type ADT_PrePathChars; /*aadt("PrePathChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_PrePathChars; /*aadt("PrePathChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type UnicodeEscape_utf16_; /*acons(aadt("UnicodeEscape",[],lexicalSyntax()),[],[],alabel="utf16")*/ + public final io.usethesource.vallang.type.Type $T25; /*\iter-star-seps(aadt("Expression",[],contextFreeSyntax()),[aadt("LAYOUTLIST",[],layoutSyntax()),alit(","),aadt("LAYOUTLIST",[],layoutSyntax())],alabel="arguments")*/ + public final io.usethesource.vallang.type.Type Expression_callOrTree_Expression_iter_star_seps_Expression_KeywordArguments_Expression; /*acons(aadt("Expression",[],contextFreeSyntax()),[aadt("Expression",[],contextFreeSyntax(),alabel="expression"),\iter-star-seps(aadt("Expression",[],contextFreeSyntax()),[aadt("LAYOUTLIST",[],layoutSyntax()),alit(","),aadt("LAYOUTLIST",[],layoutSyntax())],alabel="arguments"),aadt("KeywordArguments",[aadt("Expression",[],contextFreeSyntax())],contextFreeSyntax(),alabel="keywordArguments")],[],alabel="callOrTree")*/ + public final io.usethesource.vallang.type.Type Literal_integer_IntegerLiteral; /*acons(aadt("Literal",[],contextFreeSyntax()),[aadt("IntegerLiteral",[],contextFreeSyntax(),alabel="integerLiteral")],[],alabel="integer")*/ + public final io.usethesource.vallang.type.Type Statement_fail_Target; /*acons(aadt("Statement",[],contextFreeSyntax()),[aadt("Target",[],contextFreeSyntax(),alabel="target")],[],alabel="fail")*/ + public final io.usethesource.vallang.type.Type StringTemplate_while_Expression_iter_star_seps_Statement_StringMiddle_iter_star_seps_Statement; /*acons(aadt("StringTemplate",[],contextFreeSyntax()),[aadt("Expression",[],contextFreeSyntax(),alabel="condition"),\iter-star-seps(aadt("Statement",[],contextFreeSyntax()),[aadt("LAYOUTLIST",[],layoutSyntax())],alabel="preStats"),aadt("StringMiddle",[],contextFreeSyntax(),alabel="body"),\iter-star-seps(aadt("Statement",[],contextFreeSyntax()),[aadt("LAYOUTLIST",[],layoutSyntax())],alabel="postStats")],[],alabel="while")*/ + public final io.usethesource.vallang.type.Type Expression_or_Expression_Expression; /*acons(aadt("Expression",[],contextFreeSyntax()),[aadt("Expression",[],contextFreeSyntax(),alabel="lhs"),aadt("Expression",[],contextFreeSyntax(),alabel="rhs")],[],alabel="or")*/ + public final io.usethesource.vallang.type.Type Expression_is_Expression_Name; /*acons(aadt("Expression",[],contextFreeSyntax()),[aadt("Expression",[],contextFreeSyntax(),alabel="expression"),aadt("Name",[],lexicalSyntax(),alabel="name")],[],alabel="is")*/ + public final io.usethesource.vallang.type.Type Strategy_topDownBreak_; /*acons(aadt("Strategy",[],contextFreeSyntax()),[],[],alabel="topDownBreak")*/ + public final io.usethesource.vallang.type.Type ADT_Visit; /*aadt("Visit",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Visit; /*aadt("Visit",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type Visit_givenStrategy_Strategy_Expression_iter_seps_Case; /*acons(aadt("Visit",[],contextFreeSyntax()),[aadt("Strategy",[],contextFreeSyntax(),alabel="strategy"),aadt("Expression",[],contextFreeSyntax(),alabel="subject"),\iter-seps(aadt("Case",[],contextFreeSyntax()),[aadt("LAYOUTLIST",[],layoutSyntax())],alabel="cases")],[],alabel="givenStrategy")*/ + public final io.usethesource.vallang.type.Type ConcretePart_bq_; /*acons(aadt("ConcretePart",[],lexicalSyntax()),[],[],alabel="bq")*/ + public final io.usethesource.vallang.type.Type Expression_fieldUpdate_Expression_Name_Expression; /*acons(aadt("Expression",[],contextFreeSyntax()),[aadt("Expression",[],contextFreeSyntax(),alabel="expression"),aadt("Name",[],lexicalSyntax(),alabel="key"),aadt("Expression",[],contextFreeSyntax(),alabel="replacement")],[],alabel="fieldUpdate")*/ + public final io.usethesource.vallang.type.Type Output_stderrOutput_; /*acons(aadt("Output",[],lexicalSyntax()),[],[],alabel="stderrOutput")*/ + public final io.usethesource.vallang.type.Type ImportedModule_default_QualifiedName; /*acons(aadt("ImportedModule",[],contextFreeSyntax()),[aadt("QualifiedName",[],contextFreeSyntax(),alabel="name")],[],alabel="default")*/ + public final io.usethesource.vallang.type.Type Type_variable_TypeVar; /*acons(aadt("Type",[],contextFreeSyntax()),[aadt("TypeVar",[],contextFreeSyntax(),alabel="typeVar")],[],alabel="variable")*/ + public final io.usethesource.vallang.type.Type ADT_Body; /*aadt("Body",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Body; /*aadt("Body",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type $T20; /*\iter-star-seps(aadt("Mapping",[aadt("Pattern",[],contextFreeSyntax())],contextFreeSyntax()),[aadt("LAYOUTLIST",[],layoutSyntax()),alit(","),aadt("LAYOUTLIST",[],layoutSyntax())],alabel="mappings")*/ + public final io.usethesource.vallang.type.Type Pattern_map_iter_star_seps_Mapping_Pattern; /*acons(aadt("Pattern",[],contextFreeSyntax()),[\iter-star-seps(aadt("Mapping",[aadt("Pattern",[],contextFreeSyntax())],contextFreeSyntax()),[aadt("LAYOUTLIST",[],layoutSyntax()),alit(","),aadt("LAYOUTLIST",[],layoutSyntax())],alabel="mappings")],[],alabel="map")*/ + public final io.usethesource.vallang.type.Type FunctionDeclaration_default_Tags_Visibility_Signature_FunctionBody; /*acons(aadt("FunctionDeclaration",[],contextFreeSyntax()),[aadt("Tags",[],contextFreeSyntax(),alabel="tags"),aadt("Visibility",[],contextFreeSyntax(),alabel="visibility"),aadt("Signature",[],contextFreeSyntax(),alabel="signature"),aadt("FunctionBody",[],contextFreeSyntax(),alabel="body")],[],alabel="default")*/ + public final io.usethesource.vallang.type.Type ADT_JustDate; /*aadt("JustDate",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_JustDate; /*aadt("JustDate",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type Type_user_UserType; /*acons(aadt("Type",[],contextFreeSyntax()),[aadt("UserType",[],contextFreeSyntax(),alabel="user")],[],alabel="user")*/ + public final io.usethesource.vallang.type.Type Kind_variable_; /*acons(aadt("Kind",[],contextFreeSyntax()),[],[],alabel="variable")*/ + public final io.usethesource.vallang.type.Type ADT_StringConstant; /*aadt("StringConstant",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_StringConstant; /*aadt("StringConstant",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_FunctionModifiers; /*aadt("FunctionModifiers",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_FunctionModifiers; /*aadt("FunctionModifiers",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type Expression_it_Expression; /*acons(aadt("Expression",[],contextFreeSyntax()),[aadt("Expression",[],contextFreeSyntax())],[],alabel="it")*/ + public final io.usethesource.vallang.type.Type ADT_Module; /*aadt("Module",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Module; /*aadt("Module",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type Module_default_Header_Body; /*acons(aadt("Module",[],contextFreeSyntax()),[aadt("Header",[],contextFreeSyntax(),alabel="header"),aadt("Body",[],contextFreeSyntax(),alabel="body")],[],alabel="default")*/ + public final io.usethesource.vallang.type.Type Statement_assertWithMessage_Expression_Expression; /*acons(aadt("Statement",[],contextFreeSyntax()),[aadt("Expression",[],contextFreeSyntax(),alabel="expression"),aadt("Expression",[],contextFreeSyntax(),alabel="message")],[],alabel="assertWithMessage")*/ + public final io.usethesource.vallang.type.Type Sym_endOfLine_Sym; /*acons(aadt("Sym",[],contextFreeSyntax()),[aadt("Sym",[],contextFreeSyntax(),alabel="symbol")],[],alabel="endOfLine")*/ + public final io.usethesource.vallang.type.Type $T8; /*\iter-star-seps(aadt("Mapping",[aadt("Expression",[],contextFreeSyntax())],contextFreeSyntax()),[aadt("LAYOUTLIST",[],layoutSyntax()),alit(","),aadt("LAYOUTLIST",[],layoutSyntax())],alabel="mappings")*/ + public final io.usethesource.vallang.type.Type Command_expression_Expression; /*acons(aadt("Command",[],contextFreeSyntax()),[aadt("Expression",[],contextFreeSyntax(),alabel="expression")],[],alabel="expression")*/ + public final io.usethesource.vallang.type.Type ADT_MidPathChars; /*aadt("MidPathChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_MidPathChars; /*aadt("MidPathChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type Label_default_Name; /*acons(aadt("Label",[],contextFreeSyntax()),[aadt("Name",[],lexicalSyntax(),alabel="name")],[],alabel="default")*/ + public final io.usethesource.vallang.type.Type Statement_ifThen_Label_iter_seps_Expression_Statement; /*acons(aadt("Statement",[],contextFreeSyntax()),[aadt("Label",[],contextFreeSyntax(),alabel="label"),\iter-seps(aadt("Expression",[],contextFreeSyntax()),[aadt("LAYOUTLIST",[],layoutSyntax()),alit(","),aadt("LAYOUTLIST",[],layoutSyntax())],alabel="conditions"),aadt("Statement",[],contextFreeSyntax(),alabel="thenStatement")],[],alabel="ifThen")*/ + public final io.usethesource.vallang.type.Type Mapping_1_default_; /*acons(aadt("Mapping",[aparameter("T",aadt("Tree",[],dataSyntax()),closed=true)],contextFreeSyntax()),[],[],alabel="default")*/ + public final io.usethesource.vallang.type.Type Statement_globalDirective_Type_iter_seps_QualifiedName; /*acons(aadt("Statement",[],contextFreeSyntax()),[aadt("Type",[],contextFreeSyntax(),alabel="type"),\iter-seps(aadt("QualifiedName",[],contextFreeSyntax()),[aadt("LAYOUTLIST",[],layoutSyntax()),alit(","),aadt("LAYOUTLIST",[],layoutSyntax())],alabel="names")],[],alabel="globalDirective")*/ + public final io.usethesource.vallang.type.Type LocationLiteral_default_ProtocolPart_PathPart; /*acons(aadt("LocationLiteral",[],contextFreeSyntax()),[aadt("ProtocolPart",[],contextFreeSyntax(),alabel="protocolPart"),aadt("PathPart",[],contextFreeSyntax(),alabel="pathPart")],[],alabel="default")*/ + public final io.usethesource.vallang.type.Type ConcretePart_lt_; /*acons(aadt("ConcretePart",[],lexicalSyntax()),[],[],alabel="lt")*/ + public final io.usethesource.vallang.type.Type Field_index_IntegerLiteral; /*acons(aadt("Field",[],contextFreeSyntax()),[aadt("IntegerLiteral",[],contextFreeSyntax(),alabel="fieldIndex")],[],alabel="index")*/ + public final io.usethesource.vallang.type.Type Expression_implication_Expression_Expression; /*acons(aadt("Expression",[],contextFreeSyntax()),[aadt("Expression",[],contextFreeSyntax(),alabel="lhs"),aadt("Expression",[],contextFreeSyntax(),alabel="rhs")],[],alabel="implication")*/ + public final io.usethesource.vallang.type.Type Tag_default_Name_TagString; /*acons(aadt("Tag",[],contextFreeSyntax()),[aadt("Name",[],lexicalSyntax(),alabel="name"),aadt("TagString",[],lexicalSyntax(),alabel="contents")],[],alabel="default")*/ + public final io.usethesource.vallang.type.Type Expression_nonEmptyBlock_iter_seps_Statement; /*acons(aadt("Expression",[],contextFreeSyntax()),[\iter-seps(aadt("Statement",[],contextFreeSyntax()),[aadt("LAYOUTLIST",[],layoutSyntax())],alabel="statements")],[],alabel="nonEmptyBlock")*/ + public final io.usethesource.vallang.type.Type ADT_ConcreteHole; /*aadt("ConcreteHole",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_ConcreteHole; /*aadt("ConcreteHole",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type FunctionModifier_test_; /*acons(aadt("FunctionModifier",[],contextFreeSyntax()),[],[],alabel="test")*/ + public final io.usethesource.vallang.type.Type Expression_greaterThan_Expression_Expression; /*acons(aadt("Expression",[],contextFreeSyntax()),[aadt("Expression",[],contextFreeSyntax(),alabel="lhs"),aadt("Expression",[],contextFreeSyntax(),alabel="rhs")],[],alabel="greaterThan")*/ + public final io.usethesource.vallang.type.Type Class_union_Class_Class; /*acons(aadt("Class",[],contextFreeSyntax()),[aadt("Class",[],contextFreeSyntax(),alabel="lhs"),aadt("Class",[],contextFreeSyntax(),alabel="rhs")],[],alabel="union")*/ + public final io.usethesource.vallang.type.Type BasicType_rational_; /*acons(aadt("BasicType",[],contextFreeSyntax()),[],[],alabel="rational")*/ + public final io.usethesource.vallang.type.Type LocalVariableDeclaration_dynamic_Declarator; /*acons(aadt("LocalVariableDeclaration",[],contextFreeSyntax()),[aadt("Declarator",[],contextFreeSyntax(),alabel="declarator")],[],alabel="dynamic")*/ + public final io.usethesource.vallang.type.Type Strategy_outermost_; /*acons(aadt("Strategy",[],contextFreeSyntax()),[],[],alabel="outermost")*/ + public final io.usethesource.vallang.type.Type Type_basic_BasicType; /*acons(aadt("Type",[],contextFreeSyntax()),[aadt("BasicType",[],contextFreeSyntax(),alabel="basic")],[],alabel="basic")*/ + public final io.usethesource.vallang.type.Type Statement_nonEmptyBlock_Label_iter_seps_Statement; /*acons(aadt("Statement",[],contextFreeSyntax()),[aadt("Label",[],contextFreeSyntax(),alabel="label"),\iter-seps(aadt("Statement",[],contextFreeSyntax()),[aadt("LAYOUTLIST",[],layoutSyntax())],alabel="statements")],[],alabel="nonEmptyBlock")*/ + public final io.usethesource.vallang.type.Type Parameters_default_Formals_KeywordFormals; /*acons(aadt("Parameters",[],contextFreeSyntax()),[aadt("Formals",[],contextFreeSyntax(),alabel="formals"),aadt("KeywordFormals",[],contextFreeSyntax(),alabel="keywordFormals")],[],alabel="default")*/ + public final io.usethesource.vallang.type.Type Sym_alternative_Sym_iter_seps_Sym; /*acons(aadt("Sym",[],contextFreeSyntax()),[aadt("Sym",[],contextFreeSyntax(),alabel="first"),\iter-seps(aadt("Sym",[],contextFreeSyntax()),[aadt("LAYOUTLIST",[],layoutSyntax()),alit("|"),aadt("LAYOUTLIST",[],layoutSyntax())],alabel="alternatives")],[],alabel="alternative")*/ + public final io.usethesource.vallang.type.Type Sym_follow_Sym_Sym; /*acons(aadt("Sym",[],contextFreeSyntax()),[aadt("Sym",[],contextFreeSyntax(),alabel="symbol"),aadt("Sym",[],contextFreeSyntax(),alabel="match")],[],alabel="follow")*/ + public final io.usethesource.vallang.type.Type Expression_product_Expression_Expression; /*acons(aadt("Expression",[],contextFreeSyntax()),[aadt("Expression",[],contextFreeSyntax(),alabel="lhs"),aadt("Expression",[],contextFreeSyntax(),alabel="rhs")],[],alabel="product")*/ + public final io.usethesource.vallang.type.Type ShellCommand_quit_; /*acons(aadt("ShellCommand",[],contextFreeSyntax()),[],[],alabel="quit")*/ + public final io.usethesource.vallang.type.Type Expression_addition_Expression_Expression; /*acons(aadt("Expression",[],contextFreeSyntax()),[aadt("Expression",[],contextFreeSyntax(),alabel="lhs"),aadt("Expression",[],contextFreeSyntax(),alabel="rhs")],[],alabel="addition")*/ + public final io.usethesource.vallang.type.Type ImportedModule_actuals_QualifiedName_ModuleActuals; /*acons(aadt("ImportedModule",[],contextFreeSyntax()),[aadt("QualifiedName",[],contextFreeSyntax(),alabel="name"),aadt("ModuleActuals",[],contextFreeSyntax(),alabel="actuals")],[],alabel="actuals")*/ + public final io.usethesource.vallang.type.Type TypeArg_default_Type; /*acons(aadt("TypeArg",[],contextFreeSyntax()),[aadt("Type",[],contextFreeSyntax(),alabel="type")],[],alabel="default")*/ + public final io.usethesource.vallang.type.Type ADT_DateAndTime; /*aadt("DateAndTime",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_DateAndTime; /*aadt("DateAndTime",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_CaseInsensitiveStringConstant; /*aadt("CaseInsensitiveStringConstant",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_CaseInsensitiveStringConstant; /*aadt("CaseInsensitiveStringConstant",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_Char; /*aadt("Char",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Char; /*aadt("Char",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type Expression_all_iter_seps_Expression; /*acons(aadt("Expression",[],contextFreeSyntax()),[\iter-seps(aadt("Expression",[],contextFreeSyntax()),[aadt("LAYOUTLIST",[],layoutSyntax()),alit(","),aadt("LAYOUTLIST",[],layoutSyntax())],alabel="generators")],[],alabel="all")*/ + public final io.usethesource.vallang.type.Type Pattern_asType_Type_Pattern; /*acons(aadt("Pattern",[],contextFreeSyntax()),[aadt("Type",[],contextFreeSyntax(),alabel="type"),aadt("Pattern",[],contextFreeSyntax(),alabel="argument")],[],alabel="asType")*/ + public final io.usethesource.vallang.type.Type Visibility_public_; /*acons(aadt("Visibility",[],contextFreeSyntax()),[],[],alabel="public")*/ + public final io.usethesource.vallang.type.Type ADT_Backslash; /*aadt("Backslash",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Backslash; /*aadt("Backslash",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ConcreteHole_one_Sym_Name; /*acons(aadt("ConcreteHole",[],contextFreeSyntax()),[aadt("Sym",[],contextFreeSyntax(),alabel="symbol"),aadt("Name",[],lexicalSyntax(),alabel="name")],[],alabel="one")*/ + public final io.usethesource.vallang.type.Type Tag_empty_Name; /*acons(aadt("Tag",[],contextFreeSyntax()),[aadt("Name",[],lexicalSyntax(),alabel="name")],[],alabel="empty")*/ + public final io.usethesource.vallang.type.Type $T11; /*\iter-seps(aadt("KeywordArgument",[aparameter("T",aadt("Tree",[],dataSyntax()),closed=false)],contextFreeSyntax()),[aadt("LAYOUTLIST",[],layoutSyntax()),alit(","),aadt("LAYOUTLIST",[],layoutSyntax())],alabel="keywordArgumentList")*/ + public final io.usethesource.vallang.type.Type KeywordArguments_1_default_OptionalComma_iter_seps_KeywordArgument_1; /*acons(aadt("KeywordArguments",[aparameter("T",aadt("Tree",[],dataSyntax()),closed=true)],contextFreeSyntax()),[aadt("OptionalComma",[],lexicalSyntax(),alabel="optionalComma"),\iter-seps(aadt("KeywordArgument",[aparameter("T",aadt("Tree",[],dataSyntax()),closed=false)],contextFreeSyntax()),[aadt("LAYOUTLIST",[],layoutSyntax()),alit(","),aadt("LAYOUTLIST",[],layoutSyntax())],alabel="keywordArgumentList")],[],alabel="default")*/ + public final io.usethesource.vallang.type.Type ADT_CommonKeywordParameters; /*aadt("CommonKeywordParameters",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type NT_CommonKeywordParameters; /*aadt("CommonKeywordParameters",[],contextFreeSyntax())*/ + public final io.usethesource.vallang.type.Type CommonKeywordParameters_absent_; /*acons(aadt("CommonKeywordParameters",[],contextFreeSyntax()),[],[],alabel="absent")*/ + public final io.usethesource.vallang.type.Type Range_fromTo_Char_Char; /*acons(aadt("Range",[],contextFreeSyntax()),[aadt("Char",[],lexicalSyntax(),alabel="start"),aadt("Char",[],lexicalSyntax(),alabel="end")],[],alabel="fromTo")*/ + public final io.usethesource.vallang.type.Type Command_statement_Statement; /*acons(aadt("Command",[],contextFreeSyntax()),[aadt("Statement",[],contextFreeSyntax(),alabel="statement")],[],alabel="statement")*/ + public final io.usethesource.vallang.type.Type EvalCommand_import_Import; /*acons(aadt("EvalCommand",[],contextFreeSyntax()),[aadt("Import",[],contextFreeSyntax(),alabel="imported")],[],alabel="import")*/ + public final io.usethesource.vallang.type.Type Sym_unequal_Sym_Sym; /*acons(aadt("Sym",[],contextFreeSyntax()),[aadt("Sym",[],contextFreeSyntax(),alabel="symbol"),aadt("Sym",[],contextFreeSyntax(),alabel="match")],[],alabel="unequal")*/ + public final io.usethesource.vallang.type.Type Comprehension_list_iter_seps_Expression_iter_seps_Expression; /*acons(aadt("Comprehension",[],contextFreeSyntax()),[\iter-seps(aadt("Expression",[],contextFreeSyntax()),[aadt("LAYOUTLIST",[],layoutSyntax()),alit(","),aadt("LAYOUTLIST",[],layoutSyntax())],alabel="results"),\iter-seps(aadt("Expression",[],contextFreeSyntax()),[aadt("LAYOUTLIST",[],layoutSyntax()),alit(","),aadt("LAYOUTLIST",[],layoutSyntax())],alabel="generators")],[],alabel="list")*/ + public final io.usethesource.vallang.type.Type Catch_binding_Pattern_Statement; /*acons(aadt("Catch",[],contextFreeSyntax()),[aadt("Pattern",[],contextFreeSyntax(),alabel="pattern"),aadt("Statement",[],contextFreeSyntax(),alabel="body")],[],alabel="binding")*/ + public final io.usethesource.vallang.type.Type Statement_break_Target; /*acons(aadt("Statement",[],contextFreeSyntax()),[aadt("Target",[],contextFreeSyntax(),alabel="target")],[],alabel="break")*/ + public final io.usethesource.vallang.type.Type SyntaxDefinition_lexical_Sym_Prod; /*acons(aadt("SyntaxDefinition",[],contextFreeSyntax()),[aadt("Sym",[],contextFreeSyntax(),alabel="defined"),aadt("Prod",[],contextFreeSyntax(),alabel="production")],[],alabel="lexical")*/ + public final io.usethesource.vallang.type.Type Assignable_slice_Assignable_OptionalExpression_OptionalExpression; /*acons(aadt("Assignable",[],contextFreeSyntax()),[aadt("Assignable",[],contextFreeSyntax(),alabel="receiver"),aadt("OptionalExpression",[],contextFreeSyntax(),alabel="optFirst"),aadt("OptionalExpression",[],contextFreeSyntax(),alabel="optLast")],[],alabel="slice")*/ + public final io.usethesource.vallang.type.Type $T37; /*\iter-seps(aadt("Type",[],contextFreeSyntax()),[aadt("LAYOUTLIST",[],layoutSyntax()),alit(","),aadt("LAYOUTLIST",[],layoutSyntax())],alabel="parameters")*/ + public final io.usethesource.vallang.type.Type Sym_notPrecede_Sym_Sym; /*acons(aadt("Sym",[],contextFreeSyntax()),[aadt("Sym",[],contextFreeSyntax(),alabel="match"),aadt("Sym",[],contextFreeSyntax(),alabel="symbol")],[],alabel="notPrecede")*/ + public final io.usethesource.vallang.type.Type ADT_RealLiteral; /*aadt("RealLiteral",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_RealLiteral; /*aadt("RealLiteral",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type Assoc_associative_; /*acons(aadt("Assoc",[],contextFreeSyntax()),[],[],alabel="associative")*/ + public final io.usethesource.vallang.type.Type Expression_map_iter_star_seps_Mapping_Expression; /*acons(aadt("Expression",[],contextFreeSyntax()),[\iter-star-seps(aadt("Mapping",[aadt("Expression",[],contextFreeSyntax())],contextFreeSyntax()),[aadt("LAYOUTLIST",[],layoutSyntax()),alit(","),aadt("LAYOUTLIST",[],layoutSyntax())],alabel="mappings")],[],alabel="map")*/ + public final io.usethesource.vallang.type.Type DataTarget_empty_; /*acons(aadt("DataTarget",[],contextFreeSyntax()),[],[],alabel="empty")*/ + public final io.usethesource.vallang.type.Type EvalCommand_statement_Statement; /*acons(aadt("EvalCommand",[],contextFreeSyntax()),[aadt("Statement",[],contextFreeSyntax(),alabel="statement")],[],alabel="statement")*/ + public final io.usethesource.vallang.type.Type Expression_range_Expression_Expression; /*acons(aadt("Expression",[],contextFreeSyntax()),[aadt("Expression",[],contextFreeSyntax(),alabel="first"),aadt("Expression",[],contextFreeSyntax(),alabel="last")],[],alabel="range")*/ + public final io.usethesource.vallang.type.Type Expression_appendAfter_Expression_Expression; /*acons(aadt("Expression",[],contextFreeSyntax()),[aadt("Expression",[],contextFreeSyntax(),alabel="lhs"),aadt("Expression",[],contextFreeSyntax(),alabel="rhs")],[],alabel="appendAfter")*/ + public final io.usethesource.vallang.type.Type Expression_enumerator_Pattern_Expression; /*acons(aadt("Expression",[],contextFreeSyntax()),[aadt("Pattern",[],contextFreeSyntax(),alabel="pattern"),aadt("Expression",[],contextFreeSyntax(),alabel="expression")],[],alabel="enumerator")*/ + public final io.usethesource.vallang.type.Type Sym_notFollow_Sym_Sym; /*acons(aadt("Sym",[],contextFreeSyntax()),[aadt("Sym",[],contextFreeSyntax(),alabel="symbol"),aadt("Sym",[],contextFreeSyntax(),alabel="match")],[],alabel="notFollow")*/ + public final io.usethesource.vallang.type.Type ShellCommand_clear_; /*acons(aadt("ShellCommand",[],contextFreeSyntax()),[],[],alabel="clear")*/ + public final io.usethesource.vallang.type.Type Assignment_append_; /*acons(aadt("Assignment",[],contextFreeSyntax()),[],[],alabel="append")*/ + public final io.usethesource.vallang.type.Type Type_function_FunctionType; /*acons(aadt("Type",[],contextFreeSyntax()),[aadt("FunctionType",[],contextFreeSyntax(),alabel="function")],[],alabel="function")*/ + public final io.usethesource.vallang.type.Type Assignable_subscript_Assignable_Expression; /*acons(aadt("Assignable",[],contextFreeSyntax()),[aadt("Assignable",[],contextFreeSyntax(),alabel="receiver"),aadt("Expression",[],contextFreeSyntax(),alabel="subscript")],[],alabel="subscript")*/ + public final io.usethesource.vallang.type.Type KeywordFormals_none_; /*acons(aadt("KeywordFormals",[],contextFreeSyntax()),[],[],alabel="none")*/ + public final io.usethesource.vallang.type.Type Command_import_Import; /*acons(aadt("Command",[],contextFreeSyntax()),[aadt("Import",[],contextFreeSyntax(),alabel="imported")],[],alabel="import")*/ + public final io.usethesource.vallang.type.Type Sym_startOfLine_Sym; /*acons(aadt("Sym",[],contextFreeSyntax()),[aadt("Sym",[],contextFreeSyntax(),alabel="symbol")],[],alabel="startOfLine")*/ + public final io.usethesource.vallang.type.Type FunctionDeclaration_abstract_Tags_Visibility_Signature; /*acons(aadt("FunctionDeclaration",[],contextFreeSyntax()),[aadt("Tags",[],contextFreeSyntax(),alabel="tags"),aadt("Visibility",[],contextFreeSyntax(),alabel="visibility"),aadt("Signature",[],contextFreeSyntax(),alabel="signature")],[],alabel="abstract")*/ + public final io.usethesource.vallang.type.Type Kind_anno_; /*acons(aadt("Kind",[],contextFreeSyntax()),[],[],alabel="anno")*/ + public final io.usethesource.vallang.type.Type Expression_noMatch_Pattern_Expression; /*acons(aadt("Expression",[],contextFreeSyntax()),[aadt("Pattern",[],contextFreeSyntax(),alabel="pattern"),aadt("Expression",[],contextFreeSyntax(),alabel="expression")],[],alabel="noMatch")*/ + public final io.usethesource.vallang.type.Type Declaration_function_FunctionDeclaration; /*acons(aadt("Declaration",[],contextFreeSyntax()),[aadt("FunctionDeclaration",[],contextFreeSyntax(),alabel="functionDeclaration")],[],alabel="function")*/ + public final io.usethesource.vallang.type.Type Expression_visit_Label_Visit; /*acons(aadt("Expression",[],contextFreeSyntax()),[aadt("Label",[],contextFreeSyntax(),alabel="label"),aadt("Visit",[],contextFreeSyntax(),alabel="visit")],[],alabel="visit")*/ + public final io.usethesource.vallang.type.Type StringTail_midInterpolated_MidStringChars_Expression_StringTail; /*acons(aadt("StringTail",[],contextFreeSyntax()),[aadt("MidStringChars",[],lexicalSyntax(),alabel="mid"),aadt("Expression",[],contextFreeSyntax(),alabel="expression"),aadt("StringTail",[],contextFreeSyntax(),alabel="tail")],[],alabel="midInterpolated")*/ + public final io.usethesource.vallang.type.Type SyntaxDefinition_language_Start_Sym_Prod; /*acons(aadt("SyntaxDefinition",[],contextFreeSyntax()),[aadt("Start",[],contextFreeSyntax(),alabel="start"),aadt("Sym",[],contextFreeSyntax(),alabel="defined"),aadt("Prod",[],contextFreeSyntax(),alabel="production")],[],alabel="language")*/ + public final io.usethesource.vallang.type.Type ADT_Comment; /*aadt("Comment",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_Comment; /*aadt("Comment",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type BasicType_bool_; /*acons(aadt("BasicType",[],contextFreeSyntax()),[],[],alabel="bool")*/ + public final io.usethesource.vallang.type.Type Assignment_intersection_; /*acons(aadt("Assignment",[],contextFreeSyntax()),[],[],alabel="intersection")*/ + public final io.usethesource.vallang.type.Type ADT_OctalIntegerLiteral; /*aadt("OctalIntegerLiteral",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_OctalIntegerLiteral; /*aadt("OctalIntegerLiteral",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type $T38; /*\iter-seps(aadt("Sym",[],contextFreeSyntax()),[aadt("LAYOUTLIST",[],layoutSyntax())],alabel="sequence")*/ + public final io.usethesource.vallang.type.Type Sym_sequence_Sym_iter_seps_Sym; /*acons(aadt("Sym",[],contextFreeSyntax()),[aadt("Sym",[],contextFreeSyntax(),alabel="first"),\iter-seps(aadt("Sym",[],contextFreeSyntax()),[aadt("LAYOUTLIST",[],layoutSyntax())],alabel="sequence")],[],alabel="sequence")*/ + public final io.usethesource.vallang.type.Type Assignment_product_; /*acons(aadt("Assignment",[],contextFreeSyntax()),[],[],alabel="product")*/ + public final io.usethesource.vallang.type.Type ADT_MidProtocolChars; /*aadt("MidProtocolChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_MidProtocolChars; /*aadt("MidProtocolChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_RascalKeywords; /*aadt("RascalKeywords",[],keywordSyntax())*/ + public final io.usethesource.vallang.type.Type Prod_first_Prod_Prod; /*acons(aadt("Prod",[],contextFreeSyntax()),[aadt("Prod",[],contextFreeSyntax(),alabel="lhs"),aadt("Prod",[],contextFreeSyntax(),alabel="rhs")],[],alabel="first")*/ + public final io.usethesource.vallang.type.Type ADT_NamedRegExp; /*aadt("NamedRegExp",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_NamedRegExp; /*aadt("NamedRegExp",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type Pattern_concrete_Concrete; /*acons(aadt("Pattern",[],contextFreeSyntax()),[aadt("Concrete",[],lexicalSyntax(),alabel="concrete")],[],alabel="concrete")*/ + public final io.usethesource.vallang.type.Type $T41; /*\iter-star-seps(aadt("FunctionModifier",[],contextFreeSyntax()),[aadt("LAYOUTLIST",[],layoutSyntax())],alabel="modifiers")*/ + public final io.usethesource.vallang.type.Type FunctionModifiers_modifierlist_iter_star_seps_FunctionModifier; /*acons(aadt("FunctionModifiers",[],contextFreeSyntax()),[\iter-star-seps(aadt("FunctionModifier",[],contextFreeSyntax()),[aadt("LAYOUTLIST",[],layoutSyntax())],alabel="modifiers")],[],alabel="modifierlist")*/ + public final io.usethesource.vallang.type.Type Expression_insertBefore_Expression_Expression; /*acons(aadt("Expression",[],contextFreeSyntax()),[aadt("Expression",[],contextFreeSyntax(),alabel="lhs"),aadt("Expression",[],contextFreeSyntax(),alabel="rhs")],[],alabel="insertBefore")*/ + public final io.usethesource.vallang.type.Type Toplevel_givenVisibility_Declaration; /*acons(aadt("Toplevel",[],contextFreeSyntax()),[aadt("Declaration",[],contextFreeSyntax(),alabel="declaration")],[],alabel="givenVisibility")*/ + public final io.usethesource.vallang.type.Type Statement_emptyStatement_; /*acons(aadt("Statement",[],contextFreeSyntax()),[],[],alabel="emptyStatement")*/ + public final io.usethesource.vallang.type.Type ADT_PreProtocolChars; /*aadt("PreProtocolChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_PreProtocolChars; /*aadt("PreProtocolChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type Declaration_annotation_Tags_Visibility_Type_Type_Name; /*acons(aadt("Declaration",[],contextFreeSyntax()),[aadt("Tags",[],contextFreeSyntax(),alabel="tags"),aadt("Visibility",[],contextFreeSyntax(),alabel="visibility"),aadt("Type",[],contextFreeSyntax(),alabel="annoType"),aadt("Type",[],contextFreeSyntax(),alabel="onType"),aadt("Name",[],lexicalSyntax(),alabel="name")],[],alabel="annotation")*/ + public final io.usethesource.vallang.type.Type DataTarget_labeled_Name; /*acons(aadt("DataTarget",[],contextFreeSyntax()),[aadt("Name",[],lexicalSyntax(),alabel="label")],[],alabel="labeled")*/ + public final io.usethesource.vallang.type.Type PathPart_interpolated_PrePathChars_Expression_PathTail; /*acons(aadt("PathPart",[],contextFreeSyntax()),[aadt("PrePathChars",[],lexicalSyntax(),alabel="pre"),aadt("Expression",[],contextFreeSyntax(),alabel="expression"),aadt("PathTail",[],contextFreeSyntax(),alabel="tail")],[],alabel="interpolated")*/ + public final io.usethesource.vallang.type.Type FunctionModifier_java_; /*acons(aadt("FunctionModifier",[],contextFreeSyntax()),[],[],alabel="java")*/ + public final io.usethesource.vallang.type.Type ProtocolTail_mid_MidProtocolChars_Expression_ProtocolTail; /*acons(aadt("ProtocolTail",[],contextFreeSyntax()),[aadt("MidProtocolChars",[],lexicalSyntax(),alabel="mid"),aadt("Expression",[],contextFreeSyntax(),alabel="expression"),aadt("ProtocolTail",[],contextFreeSyntax(),alabel="tail")],[],alabel="mid")*/ + public final io.usethesource.vallang.type.Type Variant_nAryConstructor_Name_iter_star_seps_TypeArg_KeywordFormals; /*acons(aadt("Variant",[],contextFreeSyntax()),[aadt("Name",[],lexicalSyntax(),alabel="name"),\iter-star-seps(aadt("TypeArg",[],contextFreeSyntax()),[aadt("LAYOUTLIST",[],layoutSyntax()),alit(","),aadt("LAYOUTLIST",[],layoutSyntax())],alabel="arguments"),aadt("KeywordFormals",[],contextFreeSyntax(),alabel="keywordArguments")],[],alabel="nAryConstructor")*/ + public final io.usethesource.vallang.type.Type Pattern_set_iter_star_seps_Pattern; /*acons(aadt("Pattern",[],contextFreeSyntax()),[\iter-star-seps(aadt("Pattern",[],contextFreeSyntax()),[aadt("LAYOUTLIST",[],layoutSyntax()),alit(","),aadt("LAYOUTLIST",[],layoutSyntax())],alabel="elements0")],[],alabel="set")*/ + public final io.usethesource.vallang.type.Type Expression_division_Expression_Expression; /*acons(aadt("Expression",[],contextFreeSyntax()),[aadt("Expression",[],contextFreeSyntax(),alabel="lhs"),aadt("Expression",[],contextFreeSyntax(),alabel="rhs")],[],alabel="division")*/ + public final io.usethesource.vallang.type.Type Sym_except_Sym_NonterminalLabel; /*acons(aadt("Sym",[],contextFreeSyntax()),[aadt("Sym",[],contextFreeSyntax(),alabel="symbol"),aadt("NonterminalLabel",[],lexicalSyntax(),alabel="label")],[],alabel="except")*/ + public final io.usethesource.vallang.type.Type Type_selector_DataTypeSelector; /*acons(aadt("Type",[],contextFreeSyntax()),[aadt("DataTypeSelector",[],contextFreeSyntax(),alabel="selector")],[],alabel="selector")*/ + public final io.usethesource.vallang.type.Type KeywordFormals_default_OptionalComma_iter_seps_KeywordFormal; /*acons(aadt("KeywordFormals",[],contextFreeSyntax()),[aadt("OptionalComma",[],lexicalSyntax(),alabel="optionalComma"),\iter-seps(aadt("KeywordFormal",[],contextFreeSyntax()),[aadt("LAYOUTLIST",[],layoutSyntax()),alit(","),aadt("LAYOUTLIST",[],layoutSyntax())],alabel="keywordFormalList")],[],alabel="default")*/ + public final io.usethesource.vallang.type.Type Expression_notIn_Expression_Expression; /*acons(aadt("Expression",[],contextFreeSyntax()),[aadt("Expression",[],contextFreeSyntax(),alabel="lhs"),aadt("Expression",[],contextFreeSyntax(),alabel="rhs")],[],alabel="notIn")*/ + public final io.usethesource.vallang.type.Type Sym_parametrized_Nonterminal_iter_seps_Sym; /*acons(aadt("Sym",[],contextFreeSyntax()),[aadt("Nonterminal",[],lexicalSyntax(),alabel="nonterminal"),\iter-seps(aadt("Sym",[],contextFreeSyntax()),[aadt("LAYOUTLIST",[],layoutSyntax()),alit(","),aadt("LAYOUTLIST",[],layoutSyntax())],alabel="parameters")],[],alabel="parametrized")*/ + public final io.usethesource.vallang.type.Type TypeVar_bounded_Name_Type; /*acons(aadt("TypeVar",[],contextFreeSyntax()),[aadt("Name",[],lexicalSyntax(),alabel="name"),aadt("Type",[],contextFreeSyntax(),alabel="bound")],[],alabel="bounded")*/ + public final io.usethesource.vallang.type.Type BasicType_loc_; /*acons(aadt("BasicType",[],contextFreeSyntax()),[],[],alabel="loc")*/ + public final io.usethesource.vallang.type.Type Literal_real_RealLiteral; /*acons(aadt("Literal",[],contextFreeSyntax()),[aadt("RealLiteral",[],lexicalSyntax(),alabel="realLiteral")],[],alabel="real")*/ + public final io.usethesource.vallang.type.Type ADT_NamedBackslash; /*aadt("NamedBackslash",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_NamedBackslash; /*aadt("NamedBackslash",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type KeywordArgument_1_default_Name; /*acons(aadt("KeywordArgument",[aparameter("T",aadt("Tree",[],dataSyntax()),closed=true)],contextFreeSyntax()),[aadt("Name",[],lexicalSyntax(),alabel="name")],[],alabel="default")*/ + public final io.usethesource.vallang.type.Type Pattern_typedVariable_Type_Name; /*acons(aadt("Pattern",[],contextFreeSyntax()),[aadt("Type",[],contextFreeSyntax(),alabel="type"),aadt("Name",[],lexicalSyntax(),alabel="name")],[],alabel="typedVariable")*/ + public final io.usethesource.vallang.type.Type Assignable_variable_QualifiedName; /*acons(aadt("Assignable",[],contextFreeSyntax()),[aadt("QualifiedName",[],contextFreeSyntax(),alabel="qualifiedName")],[],alabel="variable")*/ + public final io.usethesource.vallang.type.Type ADT_StringCharacter; /*aadt("StringCharacter",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_StringCharacter; /*aadt("StringCharacter",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type Header_parameters_Tags_QualifiedName_ModuleParameters_iter_star_seps_Import; /*acons(aadt("Header",[],contextFreeSyntax()),[aadt("Tags",[],contextFreeSyntax(),alabel="tags"),aadt("QualifiedName",[],contextFreeSyntax(),alabel="name"),aadt("ModuleParameters",[],contextFreeSyntax(),alabel="params"),\iter-star-seps(aadt("Import",[],contextFreeSyntax()),[aadt("LAYOUTLIST",[],layoutSyntax())],alabel="imports")],[],alabel="parameters")*/ + public final io.usethesource.vallang.type.Type StringTemplate_for_iter_seps_Expression_iter_star_seps_Statement_StringMiddle_iter_star_seps_Statement; /*acons(aadt("StringTemplate",[],contextFreeSyntax()),[\iter-seps(aadt("Expression",[],contextFreeSyntax()),[aadt("LAYOUTLIST",[],layoutSyntax()),alit(","),aadt("LAYOUTLIST",[],layoutSyntax())],alabel="generators"),\iter-star-seps(aadt("Statement",[],contextFreeSyntax()),[aadt("LAYOUTLIST",[],layoutSyntax())],alabel="preStats"),aadt("StringMiddle",[],contextFreeSyntax(),alabel="body"),\iter-star-seps(aadt("Statement",[],contextFreeSyntax()),[aadt("LAYOUTLIST",[],layoutSyntax())],alabel="postStats")],[],alabel="for")*/ + public final io.usethesource.vallang.type.Type StringMiddle_mid_MidStringChars; /*acons(aadt("StringMiddle",[],contextFreeSyntax()),[aadt("MidStringChars",[],lexicalSyntax(),alabel="mid")],[],alabel="mid")*/ + public final io.usethesource.vallang.type.Type Import_external_QualifiedName_LocationLiteral; /*acons(aadt("Import",[],contextFreeSyntax()),[aadt("QualifiedName",[],contextFreeSyntax(),alabel="name"),aadt("LocationLiteral",[],contextFreeSyntax(),alabel="at")],[],alabel="external")*/ + public final io.usethesource.vallang.type.Type Body_toplevels_iter_star_seps_Toplevel; /*acons(aadt("Body",[],contextFreeSyntax()),[\iter-star-seps(aadt("Toplevel",[],contextFreeSyntax()),[aadt("LAYOUTLIST",[],layoutSyntax())],alabel="toplevels")],[],alabel="toplevels")*/ + public final io.usethesource.vallang.type.Type Statement_try_Statement_iter_seps_Catch; /*acons(aadt("Statement",[],contextFreeSyntax()),[aadt("Statement",[],contextFreeSyntax(),alabel="body"),\iter-seps(aadt("Catch",[],contextFreeSyntax()),[aadt("LAYOUTLIST",[],layoutSyntax())],alabel="handlers")],[],alabel="try")*/ + public final io.usethesource.vallang.type.Type ADT_PathChars; /*aadt("PathChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_PathChars; /*aadt("PathChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type ADT_PostPathChars; /*aadt("PostPathChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_PostPathChars; /*aadt("PostPathChars",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type Kind_view_; /*acons(aadt("Kind",[],contextFreeSyntax()),[],[],alabel="view")*/ + public final io.usethesource.vallang.type.Type Replacement_conditional_Expression_iter_seps_Expression; /*acons(aadt("Replacement",[],contextFreeSyntax()),[aadt("Expression",[],contextFreeSyntax(),alabel="replacementExpression"),\iter-seps(aadt("Expression",[],contextFreeSyntax()),[aadt("LAYOUTLIST",[],layoutSyntax()),alit(","),aadt("LAYOUTLIST",[],layoutSyntax())],alabel="conditions")],[],alabel="conditional")*/ + public final io.usethesource.vallang.type.Type DateTimeLiteral_dateLiteral_JustDate; /*acons(aadt("DateTimeLiteral",[],contextFreeSyntax()),[aadt("JustDate",[],lexicalSyntax(),alabel="date")],[],alabel="dateLiteral")*/ + public final io.usethesource.vallang.type.Type Variable_unInitialized_Name; /*acons(aadt("Variable",[],contextFreeSyntax()),[aadt("Name",[],lexicalSyntax(),alabel="name")],[],alabel="unInitialized")*/ + public final io.usethesource.vallang.type.Type Sym_literal_StringConstant; /*acons(aadt("Sym",[],contextFreeSyntax()),[aadt("StringConstant",[],lexicalSyntax(),alabel="string")],[],alabel="literal")*/ + public final io.usethesource.vallang.type.Type TypeVar_free_Name; /*acons(aadt("TypeVar",[],contextFreeSyntax()),[aadt("Name",[],lexicalSyntax(),alabel="name")],[],alabel="free")*/ + public final io.usethesource.vallang.type.Type Declarator_default_Type_iter_seps_Variable; /*acons(aadt("Declarator",[],contextFreeSyntax()),[aadt("Type",[],contextFreeSyntax(),alabel="type"),\iter-seps(aadt("Variable",[],contextFreeSyntax()),[aadt("LAYOUTLIST",[],layoutSyntax()),alit(","),aadt("LAYOUTLIST",[],layoutSyntax())],alabel="variables")],[],alabel="default")*/ + public final io.usethesource.vallang.type.Type Declaration_tag_Tags_Visibility_Kind_Name_iter_seps_Type; /*acons(aadt("Declaration",[],contextFreeSyntax()),[aadt("Tags",[],contextFreeSyntax(),alabel="tags"),aadt("Visibility",[],contextFreeSyntax(),alabel="visibility"),aadt("Kind",[],contextFreeSyntax(),alabel="kind"),aadt("Name",[],lexicalSyntax(),alabel="name"),\iter-seps(aadt("Type",[],contextFreeSyntax()),[aadt("LAYOUTLIST",[],layoutSyntax()),alit(","),aadt("LAYOUTLIST",[],layoutSyntax())],alabel="types")],[],alabel="tag")*/ + public final io.usethesource.vallang.type.Type Expression_fieldAccess_Expression_Name; /*acons(aadt("Expression",[],contextFreeSyntax()),[aadt("Expression",[],contextFreeSyntax(),alabel="expression"),aadt("Name",[],lexicalSyntax(),alabel="field")],[],alabel="fieldAccess")*/ + public final io.usethesource.vallang.type.Type CommonKeywordParameters_present_iter_seps_KeywordFormal; /*acons(aadt("CommonKeywordParameters",[],contextFreeSyntax()),[\iter-seps(aadt("KeywordFormal",[],contextFreeSyntax()),[aadt("LAYOUTLIST",[],layoutSyntax()),alit(","),aadt("LAYOUTLIST",[],layoutSyntax())],alabel="keywordFormalList")],[],alabel="present")*/ + public final io.usethesource.vallang.type.Type Type_symbol_Sym; /*acons(aadt("Type",[],contextFreeSyntax()),[aadt("Sym",[],contextFreeSyntax(),alabel="symbol")],[],alabel="symbol")*/ + public final io.usethesource.vallang.type.Type Sym_parameter_Nonterminal; /*acons(aadt("Sym",[],contextFreeSyntax()),[aadt("Nonterminal",[],lexicalSyntax(),alabel="nonterminal")],[],alabel="parameter")*/ + public final io.usethesource.vallang.type.Type Expression_voidClosure_Parameters_iter_star_seps_Statement; /*acons(aadt("Expression",[],contextFreeSyntax()),[aadt("Parameters",[],contextFreeSyntax(),alabel="parameters"),\iter-star-seps(aadt("Statement",[],contextFreeSyntax()),[aadt("LAYOUTLIST",[],layoutSyntax())],alabel="statements0")],[],alabel="voidClosure")*/ + public final io.usethesource.vallang.type.Type Command_shell_ShellCommand; /*acons(aadt("Command",[],contextFreeSyntax()),[aadt("ShellCommand",[],contextFreeSyntax(),alabel="command")],[],alabel="shell")*/ + public final io.usethesource.vallang.type.Type Strategy_bottomUp_; /*acons(aadt("Strategy",[],contextFreeSyntax()),[],[],alabel="bottomUp")*/ + public final io.usethesource.vallang.type.Type Pattern_tuple_iter_seps_Pattern; /*acons(aadt("Pattern",[],contextFreeSyntax()),[\iter-seps(aadt("Pattern",[],contextFreeSyntax()),[aadt("LAYOUTLIST",[],layoutSyntax()),alit(","),aadt("LAYOUTLIST",[],layoutSyntax())],alabel="elements")],[],alabel="tuple")*/ + public final io.usethesource.vallang.type.Type Sym_nonterminal_Nonterminal; /*acons(aadt("Sym",[],contextFreeSyntax()),[aadt("Nonterminal",[],lexicalSyntax(),alabel="nonterminal")],[],alabel="nonterminal")*/ + public final io.usethesource.vallang.type.Type Assignment_addition_; /*acons(aadt("Assignment",[],contextFreeSyntax()),[],[],alabel="addition")*/ + public final io.usethesource.vallang.type.Type Statement_assignment_Assignable_Assignment_Statement; /*acons(aadt("Statement",[],contextFreeSyntax()),[aadt("Assignable",[],contextFreeSyntax(),alabel="assignable"),aadt("Assignment",[],contextFreeSyntax(),alabel="operator"),aadt("Statement",[],contextFreeSyntax(),alabel="statement")],[],alabel="assignment")*/ + public final io.usethesource.vallang.type.Type Pattern_splicePlus_Pattern; /*acons(aadt("Pattern",[],contextFreeSyntax()),[aadt("Pattern",[],contextFreeSyntax(),alabel="argument")],[],alabel="splicePlus")*/ + public final io.usethesource.vallang.type.Type Statement_throw_Statement; /*acons(aadt("Statement",[],contextFreeSyntax()),[aadt("Statement",[],contextFreeSyntax(),alabel="statement")],[],alabel="throw")*/ + public final io.usethesource.vallang.type.Type Pattern_descendant_Pattern; /*acons(aadt("Pattern",[],contextFreeSyntax()),[aadt("Pattern",[],contextFreeSyntax(),alabel="pattern")],[],alabel="descendant")*/ + public final io.usethesource.vallang.type.Type ShellCommand_listDeclarations_; /*acons(aadt("ShellCommand",[],contextFreeSyntax()),[],[],alabel="listDeclarations")*/ + public final io.usethesource.vallang.type.Type Expression_negative_Expression; /*acons(aadt("Expression",[],contextFreeSyntax()),[aadt("Expression",[],contextFreeSyntax(),alabel="argument")],[],alabel="negative")*/ + public final io.usethesource.vallang.type.Type Pattern_variableBecomes_Name_Pattern; /*acons(aadt("Pattern",[],contextFreeSyntax()),[aadt("Name",[],lexicalSyntax(),alabel="name"),aadt("Pattern",[],contextFreeSyntax(),alabel="pattern")],[],alabel="variableBecomes")*/ + public final io.usethesource.vallang.type.Type Assoc_nonAssociative_; /*acons(aadt("Assoc",[],contextFreeSyntax()),[],[],alabel="nonAssociative")*/ + public final io.usethesource.vallang.type.Type Sym_iter_Sym; /*acons(aadt("Sym",[],contextFreeSyntax()),[aadt("Sym",[],contextFreeSyntax(),alabel="symbol")],[],alabel="iter")*/ + public final io.usethesource.vallang.type.Type Expression_and_Expression_Expression; /*acons(aadt("Expression",[],contextFreeSyntax()),[aadt("Expression",[],contextFreeSyntax(),alabel="lhs"),aadt("Expression",[],contextFreeSyntax(),alabel="rhs")],[],alabel="and")*/ + public final io.usethesource.vallang.type.Type Kind_alias_; /*acons(aadt("Kind",[],contextFreeSyntax()),[],[],alabel="alias")*/ + public final io.usethesource.vallang.type.Type Type_structured_StructuredType; /*acons(aadt("Type",[],contextFreeSyntax()),[aadt("StructuredType",[],contextFreeSyntax(),alabel="structured")],[],alabel="structured")*/ + public final io.usethesource.vallang.type.Type Sym_precede_Sym_Sym; /*acons(aadt("Sym",[],contextFreeSyntax()),[aadt("Sym",[],contextFreeSyntax(),alabel="match"),aadt("Sym",[],contextFreeSyntax(),alabel="symbol")],[],alabel="precede")*/ + public final io.usethesource.vallang.type.Type Assignment_subtraction_; /*acons(aadt("Assignment",[],contextFreeSyntax()),[],[],alabel="subtraction")*/ + public final io.usethesource.vallang.type.Type Expression_isDefined_Expression; /*acons(aadt("Expression",[],contextFreeSyntax()),[aadt("Expression",[],contextFreeSyntax(),alabel="argument")],[],alabel="isDefined")*/ + public final io.usethesource.vallang.type.Type QualifiedName_default_iter_seps_Name; /*acons(aadt("QualifiedName",[],contextFreeSyntax()),[\iter-seps(aadt("Name",[],lexicalSyntax()),[aadt("LAYOUTLIST",[],layoutSyntax()),alit("::"),aadt("LAYOUTLIST",[],layoutSyntax())],alabel="names")],[],alabel="default")*/ + public final io.usethesource.vallang.type.Type Expression_subscript_Expression_iter_seps_Expression; /*acons(aadt("Expression",[],contextFreeSyntax()),[aadt("Expression",[],contextFreeSyntax(),alabel="expression"),\iter-seps(aadt("Expression",[],contextFreeSyntax()),[aadt("LAYOUTLIST",[],layoutSyntax()),alit(","),aadt("LAYOUTLIST",[],layoutSyntax())],alabel="subscripts")],[],alabel="subscript")*/ + public final io.usethesource.vallang.type.Type StringTemplate_ifThen_iter_seps_Expression_iter_star_seps_Statement_StringMiddle_iter_star_seps_Statement; /*acons(aadt("StringTemplate",[],contextFreeSyntax()),[\iter-seps(aadt("Expression",[],contextFreeSyntax()),[aadt("LAYOUTLIST",[],layoutSyntax()),alit(","),aadt("LAYOUTLIST",[],layoutSyntax())],alabel="conditions"),\iter-star-seps(aadt("Statement",[],contextFreeSyntax()),[aadt("LAYOUTLIST",[],layoutSyntax())],alabel="preStats"),aadt("StringMiddle",[],contextFreeSyntax(),alabel="body"),\iter-star-seps(aadt("Statement",[],contextFreeSyntax()),[aadt("LAYOUTLIST",[],layoutSyntax())],alabel="postStats")],[],alabel="ifThen")*/ + public final io.usethesource.vallang.type.Type Kind_tag_; /*acons(aadt("Kind",[],contextFreeSyntax()),[],[],alabel="tag")*/ + public final io.usethesource.vallang.type.Type Field_name_Name; /*acons(aadt("Field",[],contextFreeSyntax()),[aadt("Name",[],lexicalSyntax(),alabel="fieldName")],[],alabel="name")*/ + public final io.usethesource.vallang.type.Type ConcretePart_text_str; /*acons(aadt("ConcretePart",[],lexicalSyntax()),[astr()],[],alabel="text")*/ + public final io.usethesource.vallang.type.Type EvalCommand_output_Output; /*acons(aadt("EvalCommand",[],contextFreeSyntax()),[aadt("Output",[],lexicalSyntax())],[],alabel="output")*/ + public final io.usethesource.vallang.type.Type UserType_parametric_QualifiedName_iter_seps_Type; /*acons(aadt("UserType",[],contextFreeSyntax()),[aadt("QualifiedName",[],contextFreeSyntax(),alabel="name"),\iter-seps(aadt("Type",[],contextFreeSyntax()),[aadt("LAYOUTLIST",[],layoutSyntax()),alit(","),aadt("LAYOUTLIST",[],layoutSyntax())],alabel="parameters")],[],alabel="parametric")*/ + public final io.usethesource.vallang.type.Type StringLiteral_template_PreStringChars_StringTemplate_StringTail; /*acons(aadt("StringLiteral",[],contextFreeSyntax()),[aadt("PreStringChars",[],lexicalSyntax(),alabel="pre"),aadt("StringTemplate",[],contextFreeSyntax(),alabel="template"),aadt("StringTail",[],contextFreeSyntax(),alabel="tail")],[],alabel="template")*/ + public final io.usethesource.vallang.type.Type ADT_JustTime; /*aadt("JustTime",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type NT_JustTime; /*aadt("JustTime",[],lexicalSyntax())*/ + public final io.usethesource.vallang.type.Type Statement_continue_Target; /*acons(aadt("Statement",[],contextFreeSyntax()),[aadt("Target",[],contextFreeSyntax(),alabel="target")],[],alabel="continue")*/ + public final io.usethesource.vallang.type.Type Visit_defaultStrategy_Expression_iter_seps_Case; /*acons(aadt("Visit",[],contextFreeSyntax()),[aadt("Expression",[],contextFreeSyntax(),alabel="subject"),\iter-seps(aadt("Case",[],contextFreeSyntax()),[aadt("LAYOUTLIST",[],layoutSyntax())],alabel="cases")],[],alabel="defaultStrategy")*/ + + public $Rascal(RascalExecutionContext rex){ + this(rex, null); + } + + public $Rascal(RascalExecutionContext rex, Object extended){ + super(rex); + this.$me = extended == null ? this : ($Rascal_$I)extended; + ModuleStore mstore = rex.getModuleStore(); + mstore.put(rascal.lang.rascal.syntax.$Rascal.class, this); + + + + + + + $constants = readBinaryConstantsFile(this.getClass(), "rascal/lang/rascal/syntax/$Rascal.constants", 0, "d751713988987e9331980363e24189ce"); + NT_Concrete = $lex("Concrete"); + ADT_Concrete = $adt("Concrete"); + NT_Expression = $sort("Expression"); + ADT_Expression = $adt("Expression"); + NT_Statement = $sort("Statement"); + ADT_Statement = $adt("Statement"); + ADT_LAYOUTLIST = $layouts("LAYOUTLIST"); + NT_UnicodeEscape = $lex("UnicodeEscape"); + ADT_UnicodeEscape = $adt("UnicodeEscape"); + NT_BooleanLiteral = $lex("BooleanLiteral"); + ADT_BooleanLiteral = $adt("BooleanLiteral"); + NT_Case = $sort("Case"); + ADT_Case = $adt("Case"); + NT_Pattern = $sort("Pattern"); + ADT_Pattern = $adt("Pattern"); + NT_ProtocolPart = $sort("ProtocolPart"); + ADT_ProtocolPart = $adt("ProtocolPart"); + NT_MidStringChars = $lex("MidStringChars"); + ADT_MidStringChars = $adt("MidStringChars"); + NT_Strategy = $sort("Strategy"); + ADT_Strategy = $adt("Strategy"); + NT_ShellCommand = $sort("ShellCommand"); + ADT_ShellCommand = $adt("ShellCommand"); + ADT_Tree = $adt("Tree"); + NT_Type = $sort("Type"); + ADT_Type = $adt("Type"); + NT_StringLiteral = $sort("StringLiteral"); + ADT_StringLiteral = $adt("StringLiteral"); + NT_Renamings = $sort("Renamings"); + ADT_Renamings = $adt("Renamings"); + NT_Renaming = $sort("Renaming"); + ADT_Renaming = $adt("Renaming"); + NT_KeywordFormal = $sort("KeywordFormal"); + ADT_KeywordFormal = $adt("KeywordFormal"); + NT_FunctionModifier = $sort("FunctionModifier"); + ADT_FunctionModifier = $adt("FunctionModifier"); + NT_TimePartNoTZ = $lex("TimePartNoTZ"); + ADT_TimePartNoTZ = $adt("TimePartNoTZ"); + NT_Assignable = $sort("Assignable"); + ADT_Assignable = $adt("Assignable"); + NT_Sym = $sort("Sym"); + ADT_Sym = $adt("Sym"); + NT_Target = $sort("Target"); + ADT_Target = $adt("Target"); + NT_IntegerLiteral = $sort("IntegerLiteral"); + ADT_IntegerLiteral = $adt("IntegerLiteral"); + NT_Catch = $sort("Catch"); + ADT_Catch = $adt("Catch"); + NT_OptionalExpression = $sort("OptionalExpression"); + ADT_OptionalExpression = $adt("OptionalExpression"); + NT_Comprehension = $sort("Comprehension"); + ADT_Comprehension = $adt("Comprehension"); + NT_Kind = $sort("Kind"); + ADT_Kind = $adt("Kind"); + NT_ImportedModule = $sort("ImportedModule"); + ADT_ImportedModule = $adt("ImportedModule"); + NT_Class = $sort("Class"); + ADT_Class = $adt("Class"); + NT_FunctionType = $sort("FunctionType"); + ADT_FunctionType = $adt("FunctionType"); + NT_Range = $sort("Range"); + ADT_Range = $adt("Range"); + NT_PostProtocolChars = $lex("PostProtocolChars"); + ADT_PostProtocolChars = $adt("PostProtocolChars"); + NT_Output = $lex("Output"); + ADT_Output = $adt("Output"); + NT_BasicType = $sort("BasicType"); + ADT_BasicType = $adt("BasicType"); + NT_Variable = $sort("Variable"); + ADT_Variable = $adt("Variable"); + NT_Signature = $sort("Signature"); + ADT_Signature = $adt("Signature"); + NT_LAYOUT = $lex("LAYOUT"); + ADT_LAYOUT = $adt("LAYOUT"); + NT_Literal = $sort("Literal"); + ADT_Literal = $adt("Literal"); + NT_Tag = $sort("Tag"); + ADT_Tag = $adt("Tag"); + NT_LocalVariableDeclaration = $sort("LocalVariableDeclaration"); + ADT_LocalVariableDeclaration = $adt("LocalVariableDeclaration"); + NT_Replacement = $sort("Replacement"); + ADT_Replacement = $adt("Replacement"); + NT_PatternWithAction = $sort("PatternWithAction"); + ADT_PatternWithAction = $adt("PatternWithAction"); + NT_Assignment = $sort("Assignment"); + ADT_Assignment = $adt("Assignment"); + NT_Prod = $sort("Prod"); + ADT_Prod = $adt("Prod"); + NT_ProdModifier = $sort("ProdModifier"); + ADT_ProdModifier = $adt("ProdModifier"); + NT_Visibility = $sort("Visibility"); + ADT_Visibility = $adt("Visibility"); + NT_ProtocolChars = $lex("ProtocolChars"); + ADT_ProtocolChars = $adt("ProtocolChars"); + NT_ConcretePart = $lex("ConcretePart"); + ADT_ConcretePart = $adt("ConcretePart"); + NT_Label = $sort("Label"); + ADT_Label = $adt("Label"); + NT_SyntaxDefinition = $sort("SyntaxDefinition"); + ADT_SyntaxDefinition = $adt("SyntaxDefinition"); + NT_TypeArg = $sort("TypeArg"); + ADT_TypeArg = $adt("TypeArg"); + NT_RegExpModifier = $lex("RegExpModifier"); + ADT_RegExpModifier = $adt("RegExpModifier"); + NT_ProtocolTail = $sort("ProtocolTail"); + ADT_ProtocolTail = $adt("ProtocolTail"); + NT_StringTail = $sort("StringTail"); + ADT_StringTail = $adt("StringTail"); + NT_EvalCommand = $sort("EvalCommand"); + ADT_EvalCommand = $adt("EvalCommand"); + NT_Assoc = $sort("Assoc"); + ADT_Assoc = $adt("Assoc"); + NT_DecimalIntegerLiteral = $lex("DecimalIntegerLiteral"); + ADT_DecimalIntegerLiteral = $adt("DecimalIntegerLiteral"); + NT_DateTimeLiteral = $sort("DateTimeLiteral"); + ADT_DateTimeLiteral = $adt("DateTimeLiteral"); + NT_FunctionDeclaration = $sort("FunctionDeclaration"); + ADT_FunctionDeclaration = $adt("FunctionDeclaration"); + NT_Toplevel = $sort("Toplevel"); + ADT_Toplevel = $adt("Toplevel"); + NT_RationalLiteral = $lex("RationalLiteral"); + ADT_RationalLiteral = $adt("RationalLiteral"); + NT_DatePart = $lex("DatePart"); + ADT_DatePart = $adt("DatePart"); + NT_Declarator = $sort("Declarator"); + ADT_Declarator = $adt("Declarator"); + NT_PathTail = $sort("PathTail"); + ADT_PathTail = $adt("PathTail"); + NT_Field = $sort("Field"); + ADT_Field = $adt("Field"); + NT_StringMiddle = $sort("StringMiddle"); + ADT_StringMiddle = $adt("StringMiddle"); + NT_RegExpLiteral = $lex("RegExpLiteral"); + ADT_RegExpLiteral = $adt("RegExpLiteral"); + NT_Import = $sort("Import"); + ADT_Import = $adt("Import"); + NT_ModuleParameters = $sort("ModuleParameters"); + ADT_ModuleParameters = $adt("ModuleParameters"); + NT_StructuredType = $sort("StructuredType"); + ADT_StructuredType = $adt("StructuredType"); + NT_Command = $sort("Command"); + ADT_Command = $adt("Command"); + NT_QualifiedName = $sort("QualifiedName"); + ADT_QualifiedName = $adt("QualifiedName"); + NT_Name = $lex("Name"); + ADT_Name = $adt("Name"); + NT_UserType = $sort("UserType"); + ADT_UserType = $adt("UserType"); + NT_ModuleActuals = $sort("ModuleActuals"); + ADT_ModuleActuals = $adt("ModuleActuals"); + NT_PathPart = $sort("PathPart"); + ADT_PathPart = $adt("PathPart"); + NT_Tags = $sort("Tags"); + ADT_Tags = $adt("Tags"); + NT_URLChars = $lex("URLChars"); + ADT_URLChars = $adt("URLChars"); + NT_Parameters = $sort("Parameters"); + ADT_Parameters = $adt("Parameters"); + NT_FunctionBody = $sort("FunctionBody"); + ADT_FunctionBody = $adt("FunctionBody"); + NT_Declaration = $sort("Declaration"); + ADT_Declaration = $adt("Declaration"); + NT_LocationLiteral = $sort("LocationLiteral"); + ADT_LocationLiteral = $adt("LocationLiteral"); + NT_DataTypeSelector = $sort("DataTypeSelector"); + ADT_DataTypeSelector = $adt("DataTypeSelector"); + NT_OptionalComma = $lex("OptionalComma"); + ADT_OptionalComma = $adt("OptionalComma"); + NT_DataTarget = $sort("DataTarget"); + ADT_DataTarget = $adt("DataTarget"); + NT_HexIntegerLiteral = $lex("HexIntegerLiteral"); + ADT_HexIntegerLiteral = $adt("HexIntegerLiteral"); + NT_TimeZonePart = $lex("TimeZonePart"); + ADT_TimeZonePart = $adt("TimeZonePart"); + NT_KeywordFormals = $sort("KeywordFormals"); + ADT_KeywordFormals = $adt("KeywordFormals"); + NT_Variant = $sort("Variant"); + ADT_Variant = $adt("Variant"); + NT_Start = $sort("Start"); + ADT_Start = $adt("Start"); + NT_TagString = $lex("TagString"); + ADT_TagString = $adt("TagString"); + NT_NonterminalLabel = $lex("NonterminalLabel"); + ADT_NonterminalLabel = $adt("NonterminalLabel"); + NT_Nonterminal = $lex("Nonterminal"); + ADT_Nonterminal = $adt("Nonterminal"); + NT_RegExp = $lex("RegExp"); + ADT_RegExp = $adt("RegExp"); + NT_PostStringChars = $lex("PostStringChars"); + ADT_PostStringChars = $adt("PostStringChars"); + NT_PreStringChars = $lex("PreStringChars"); + ADT_PreStringChars = $adt("PreStringChars"); + NT_Header = $sort("Header"); + ADT_Header = $adt("Header"); + NT_Bound = $sort("Bound"); + ADT_Bound = $adt("Bound"); + NT_TypeVar = $sort("TypeVar"); + ADT_TypeVar = $adt("TypeVar"); + NT_StringTemplate = $sort("StringTemplate"); + ADT_StringTemplate = $adt("StringTemplate"); + NT_Commands = $sort("Commands"); + ADT_Commands = $adt("Commands"); + NT_Formals = $sort("Formals"); + ADT_Formals = $adt("Formals"); + NT_PrePathChars = $lex("PrePathChars"); + ADT_PrePathChars = $adt("PrePathChars"); + NT_Visit = $sort("Visit"); + ADT_Visit = $adt("Visit"); + NT_Body = $sort("Body"); + ADT_Body = $adt("Body"); + NT_JustDate = $lex("JustDate"); + ADT_JustDate = $adt("JustDate"); + NT_StringConstant = $lex("StringConstant"); + ADT_StringConstant = $adt("StringConstant"); + NT_FunctionModifiers = $sort("FunctionModifiers"); + ADT_FunctionModifiers = $adt("FunctionModifiers"); + NT_Module = $sort("Module"); + ADT_Module = $adt("Module"); + NT_MidPathChars = $lex("MidPathChars"); + ADT_MidPathChars = $adt("MidPathChars"); + NT_ConcreteHole = $sort("ConcreteHole"); + ADT_ConcreteHole = $adt("ConcreteHole"); + NT_DateAndTime = $lex("DateAndTime"); + ADT_DateAndTime = $adt("DateAndTime"); + NT_CaseInsensitiveStringConstant = $lex("CaseInsensitiveStringConstant"); + ADT_CaseInsensitiveStringConstant = $adt("CaseInsensitiveStringConstant"); + NT_Char = $lex("Char"); + ADT_Char = $adt("Char"); + NT_Backslash = $lex("Backslash"); + ADT_Backslash = $adt("Backslash"); + NT_CommonKeywordParameters = $sort("CommonKeywordParameters"); + ADT_CommonKeywordParameters = $adt("CommonKeywordParameters"); + NT_RealLiteral = $lex("RealLiteral"); + ADT_RealLiteral = $adt("RealLiteral"); + NT_Comment = $lex("Comment"); + ADT_Comment = $adt("Comment"); + NT_OctalIntegerLiteral = $lex("OctalIntegerLiteral"); + ADT_OctalIntegerLiteral = $adt("OctalIntegerLiteral"); + NT_MidProtocolChars = $lex("MidProtocolChars"); + ADT_MidProtocolChars = $adt("MidProtocolChars"); + ADT_RascalKeywords = $keywords("RascalKeywords"); + NT_NamedRegExp = $lex("NamedRegExp"); + ADT_NamedRegExp = $adt("NamedRegExp"); + NT_PreProtocolChars = $lex("PreProtocolChars"); + ADT_PreProtocolChars = $adt("PreProtocolChars"); + NT_NamedBackslash = $lex("NamedBackslash"); + ADT_NamedBackslash = $adt("NamedBackslash"); + NT_StringCharacter = $lex("StringCharacter"); + ADT_StringCharacter = $adt("StringCharacter"); + NT_PathChars = $lex("PathChars"); + ADT_PathChars = $adt("PathChars"); + NT_PostPathChars = $lex("PostPathChars"); + ADT_PostPathChars = $adt("PostPathChars"); + NT_JustTime = $lex("JustTime"); + ADT_JustTime = $adt("JustTime"); + $T36 = $TF.stringType(); + $T15 = $RTF.nonTerminalType($RVF.constructor(RascalValueFactory.Symbol_IterStarSeps, $RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Statement")), $RVF.list($RVF.constructor(RascalValueFactory.Symbol_Layouts, $RVF.string("LAYOUTLIST"))))); + $T1 = $TF.parameterType("T", ADT_Tree); + NT_KeywordArguments_1 = $parameterizedSort("KeywordArguments", new Type[] { $T1 }, $RVF.list($RVF.constructor(RascalValueFactory.Symbol_Parameter, $RVF.string("T"), $RVF.constructor(RascalValueFactory.Symbol_Adt, $RVF.string("Tree"), $RVF.list())))); + $T3 = $RTF.nonTerminalType($RVF.constructor(RascalValueFactory.Symbol_Lit, $RVF.string(","))); + $T47 = $RTF.nonTerminalType($RVF.constructor(RascalValueFactory.Symbol_IterSeps, $RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Renaming")), $RVF.list($RVF.constructor(RascalValueFactory.Symbol_Layouts, $RVF.string("LAYOUTLIST")), $RVF.constructor(RascalValueFactory.Symbol_Lit, $RVF.string(",")), $RVF.constructor(RascalValueFactory.Symbol_Layouts, $RVF.string("LAYOUTLIST"))))); + NT_Mapping_Expression = $parameterizedSort("Mapping", new Type[] { ADT_Expression }, $RVF.list($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Expression")))); + $T46 = $RTF.nonTerminalType($RVF.constructor(RascalValueFactory.Symbol_IterSeps, $RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Assignable")), $RVF.list($RVF.constructor(RascalValueFactory.Symbol_Layouts, $RVF.string("LAYOUTLIST")), $RVF.constructor(RascalValueFactory.Symbol_Lit, $RVF.string(",")), $RVF.constructor(RascalValueFactory.Symbol_Layouts, $RVF.string("LAYOUTLIST"))))); + $T33 = $RTF.nonTerminalType($RVF.constructor(RascalValueFactory.Symbol_IterSeps, $RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Catch")), $RVF.list($RVF.constructor(RascalValueFactory.Symbol_Layouts, $RVF.string("LAYOUTLIST"))))); + NT_KeywordArguments_Expression = $parameterizedSort("KeywordArguments", new Type[] { ADT_Expression }, $RVF.list($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Expression")))); + $T4 = $RTF.nonTerminalType($RVF.constructor(RascalValueFactory.Symbol_IterSeps, $RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Expression")), $RVF.list($RVF.constructor(RascalValueFactory.Symbol_Layouts, $RVF.string("LAYOUTLIST")), $RVF.constructor(RascalValueFactory.Symbol_Lit, $RVF.string(",")), $RVF.constructor(RascalValueFactory.Symbol_Layouts, $RVF.string("LAYOUTLIST"))))); + $T5 = $RTF.nonTerminalType($RVF.constructor(RascalValueFactory.Symbol_IterSeps, $RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Expression")), $RVF.list($RVF.constructor(RascalValueFactory.Symbol_Layouts, $RVF.string("LAYOUTLIST")), $RVF.constructor(RascalValueFactory.Symbol_Lit, $RVF.string(",")), $RVF.constructor(RascalValueFactory.Symbol_Layouts, $RVF.string("LAYOUTLIST"))))); + NT_Mapping_1 = $parameterizedSort("Mapping", new Type[] { $T1 }, $RVF.list($RVF.constructor(RascalValueFactory.Symbol_Parameter, $RVF.string("T"), $RVF.constructor(RascalValueFactory.Symbol_Adt, $RVF.string("Tree"), $RVF.list())))); + $T24 = $RTF.nonTerminalType($RVF.constructor(RascalValueFactory.Symbol_IterStarSeps, $RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Pattern")), $RVF.list($RVF.constructor(RascalValueFactory.Symbol_Layouts, $RVF.string("LAYOUTLIST")), $RVF.constructor(RascalValueFactory.Symbol_Lit, $RVF.string(",")), $RVF.constructor(RascalValueFactory.Symbol_Layouts, $RVF.string("LAYOUTLIST"))))); + $T7 = $RTF.nonTerminalType($RVF.constructor(RascalValueFactory.Symbol_IterSeps, $RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Expression")), $RVF.list($RVF.constructor(RascalValueFactory.Symbol_Layouts, $RVF.string("LAYOUTLIST")), $RVF.constructor(RascalValueFactory.Symbol_Lit, $RVF.string(",")), $RVF.constructor(RascalValueFactory.Symbol_Layouts, $RVF.string("LAYOUTLIST"))))); + $T28 = $RTF.nonTerminalType($RVF.constructor(RascalValueFactory.Symbol_IterSeps, $RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Pattern")), $RVF.list($RVF.constructor(RascalValueFactory.Symbol_Layouts, $RVF.string("LAYOUTLIST")), $RVF.constructor(RascalValueFactory.Symbol_Lit, $RVF.string(",")), $RVF.constructor(RascalValueFactory.Symbol_Layouts, $RVF.string("LAYOUTLIST"))))); + $T9 = $RTF.nonTerminalType($RVF.constructor(RascalValueFactory.Symbol_Lit, $RVF.string("|"))); + $T10 = $RTF.nonTerminalType($RVF.constructor(RascalValueFactory.Symbol_IterSeps, $RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Sym")), $RVF.list($RVF.constructor(RascalValueFactory.Symbol_Layouts, $RVF.string("LAYOUTLIST")), $RVF.constructor(RascalValueFactory.Symbol_Lit, $RVF.string("|")), $RVF.constructor(RascalValueFactory.Symbol_Layouts, $RVF.string("LAYOUTLIST"))))); + $T18 = $RTF.nonTerminalType($RVF.constructor(RascalValueFactory.Symbol_IterSeps, $RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Type")), $RVF.list($RVF.constructor(RascalValueFactory.Symbol_Layouts, $RVF.string("LAYOUTLIST")), $RVF.constructor(RascalValueFactory.Symbol_Lit, $RVF.string(",")), $RVF.constructor(RascalValueFactory.Symbol_Layouts, $RVF.string("LAYOUTLIST"))))); + $T48 = $RTF.nonTerminalType($RVF.constructor(RascalValueFactory.Symbol_IterStarSeps, $RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("ProdModifier")), $RVF.list($RVF.constructor(RascalValueFactory.Symbol_Layouts, $RVF.string("LAYOUTLIST"))))); + $T49 = $RTF.nonTerminalType($RVF.constructor(RascalValueFactory.Symbol_IterStarSeps, $RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Sym")), $RVF.list($RVF.constructor(RascalValueFactory.Symbol_Layouts, $RVF.string("LAYOUTLIST"))))); + $T54 = $RTF.nonTerminalType($RVF.constructor(RascalValueFactory.Symbol_IterSeps, $RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("TypeArg")), $RVF.list($RVF.constructor(RascalValueFactory.Symbol_Layouts, $RVF.string("LAYOUTLIST")), $RVF.constructor(RascalValueFactory.Symbol_Lit, $RVF.string(",")), $RVF.constructor(RascalValueFactory.Symbol_Layouts, $RVF.string("LAYOUTLIST"))))); + $T12 = $RTF.nonTerminalType($RVF.constructor(RascalValueFactory.Symbol_IterStarSeps, $RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Statement")), $RVF.list($RVF.constructor(RascalValueFactory.Symbol_Layouts, $RVF.string("LAYOUTLIST"))))); + $T58 = $RTF.nonTerminalType($RVF.constructor(RascalValueFactory.Symbol_IterSeps, $RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Assignable")), $RVF.list($RVF.constructor(RascalValueFactory.Symbol_Layouts, $RVF.string("LAYOUTLIST")), $RVF.constructor(RascalValueFactory.Symbol_Lit, $RVF.string(",")), $RVF.constructor(RascalValueFactory.Symbol_Layouts, $RVF.string("LAYOUTLIST"))))); + $T32 = $RTF.nonTerminalType($RVF.constructor(RascalValueFactory.Symbol_IterStarSeps, $RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Toplevel")), $RVF.list($RVF.constructor(RascalValueFactory.Symbol_Layouts, $RVF.string("LAYOUTLIST"))))); + $T53 = $RTF.nonTerminalType($RVF.constructor(RascalValueFactory.Symbol_IterStarSeps, $RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Statement")), $RVF.list($RVF.constructor(RascalValueFactory.Symbol_Layouts, $RVF.string("LAYOUTLIST"))))); + $T44 = $RTF.nonTerminalType($RVF.constructor(RascalValueFactory.Symbol_IterSeps, $RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Expression")), $RVF.list($RVF.constructor(RascalValueFactory.Symbol_Layouts, $RVF.string("LAYOUTLIST")), $RVF.constructor(RascalValueFactory.Symbol_Lit, $RVF.string(",")), $RVF.constructor(RascalValueFactory.Symbol_Layouts, $RVF.string("LAYOUTLIST"))))); + $T16 = $TF.fromSymbol($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("EvalCommand")), $TS, p -> Collections.emptySet()); + $T17 = $RTF.nonTerminalType($RVF.constructor(RascalValueFactory.Symbol_IterSeps, $RVF.constructor(RascalValueFactory.Symbol_Start, $RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("EvalCommand"))), $RVF.list($RVF.constructor(RascalValueFactory.Symbol_Layouts, $RVF.string("LAYOUTLIST"))))); + $T40 = $RTF.nonTerminalType($RVF.constructor(RascalValueFactory.Symbol_IterSeps, $RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Sym")), $RVF.list($RVF.constructor(RascalValueFactory.Symbol_Layouts, $RVF.string("LAYOUTLIST")), $RVF.constructor(RascalValueFactory.Symbol_Lit, $RVF.string(",")), $RVF.constructor(RascalValueFactory.Symbol_Layouts, $RVF.string("LAYOUTLIST"))))); + $T39 = $RTF.nonTerminalType($RVF.constructor(RascalValueFactory.Symbol_IterStarSeps, $RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("TypeArg")), $RVF.list($RVF.constructor(RascalValueFactory.Symbol_Layouts, $RVF.string("LAYOUTLIST")), $RVF.constructor(RascalValueFactory.Symbol_Lit, $RVF.string(",")), $RVF.constructor(RascalValueFactory.Symbol_Layouts, $RVF.string("LAYOUTLIST"))))); + $T45 = $RTF.nonTerminalType($RVF.constructor(RascalValueFactory.Symbol_IterSeps, $RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Field")), $RVF.list($RVF.constructor(RascalValueFactory.Symbol_Layouts, $RVF.string("LAYOUTLIST")), $RVF.constructor(RascalValueFactory.Symbol_Lit, $RVF.string(",")), $RVF.constructor(RascalValueFactory.Symbol_Layouts, $RVF.string("LAYOUTLIST"))))); + $T43 = $RTF.nonTerminalType($RVF.constructor(RascalValueFactory.Symbol_IterStarSeps, $RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Expression")), $RVF.list($RVF.constructor(RascalValueFactory.Symbol_Layouts, $RVF.string("LAYOUTLIST")), $RVF.constructor(RascalValueFactory.Symbol_Lit, $RVF.string(",")), $RVF.constructor(RascalValueFactory.Symbol_Layouts, $RVF.string("LAYOUTLIST"))))); + $T0 = $TF.parameterType("T", ADT_Tree); + $T31 = $RTF.nonTerminalType($RVF.constructor(RascalValueFactory.Symbol_IterSeps, $RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Expression")), $RVF.list($RVF.constructor(RascalValueFactory.Symbol_Layouts, $RVF.string("LAYOUTLIST")), $RVF.constructor(RascalValueFactory.Symbol_Lit, $RVF.string(",")), $RVF.constructor(RascalValueFactory.Symbol_Layouts, $RVF.string("LAYOUTLIST"))))); + $T19 = $RTF.nonTerminalType($RVF.constructor(RascalValueFactory.Symbol_IterSeps, $RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Case")), $RVF.list($RVF.constructor(RascalValueFactory.Symbol_Layouts, $RVF.string("LAYOUTLIST"))))); + NT_KeywordArgument_1 = $parameterizedSort("KeywordArgument", new Type[] { $T1 }, $RVF.list($RVF.constructor(RascalValueFactory.Symbol_Parameter, $RVF.string("T"), $RVF.constructor(RascalValueFactory.Symbol_Adt, $RVF.string("Tree"), $RVF.list())))); + $T55 = $RTF.nonTerminalType($RVF.constructor(RascalValueFactory.Symbol_IterSeps, $RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("QualifiedName")), $RVF.list($RVF.constructor(RascalValueFactory.Symbol_Layouts, $RVF.string("LAYOUTLIST")), $RVF.constructor(RascalValueFactory.Symbol_Lit, $RVF.string(",")), $RVF.constructor(RascalValueFactory.Symbol_Layouts, $RVF.string("LAYOUTLIST"))))); + $T34 = $RTF.nonTerminalType($RVF.constructor(RascalValueFactory.Symbol_Lit, $RVF.string("::"))); + $T35 = $RTF.nonTerminalType($RVF.constructor(RascalValueFactory.Symbol_IterSeps, $RVF.constructor(RascalValueFactory.Symbol_Lex, $RVF.string("Name")), $RVF.list($RVF.constructor(RascalValueFactory.Symbol_Layouts, $RVF.string("LAYOUTLIST")), $RVF.constructor(RascalValueFactory.Symbol_Lit, $RVF.string("::")), $RVF.constructor(RascalValueFactory.Symbol_Layouts, $RVF.string("LAYOUTLIST"))))); + $T14 = $RTF.nonTerminalType($RVF.constructor(RascalValueFactory.Symbol_IterStarSeps, $RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Statement")), $RVF.list($RVF.constructor(RascalValueFactory.Symbol_Layouts, $RVF.string("LAYOUTLIST"))))); + $T29 = $RTF.nonTerminalType($RVF.constructor(RascalValueFactory.Symbol_IterStarSeps, $RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Import")), $RVF.list($RVF.constructor(RascalValueFactory.Symbol_Layouts, $RVF.string("LAYOUTLIST"))))); + $T42 = $RTF.nonTerminalType($RVF.constructor(RascalValueFactory.Symbol_IterStarSeps, $RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Pattern")), $RVF.list($RVF.constructor(RascalValueFactory.Symbol_Layouts, $RVF.string("LAYOUTLIST")), $RVF.constructor(RascalValueFactory.Symbol_Lit, $RVF.string(",")), $RVF.constructor(RascalValueFactory.Symbol_Layouts, $RVF.string("LAYOUTLIST"))))); + $T2 = $RTF.nonTerminalType($RVF.constructor(RascalValueFactory.Symbol_IterSeps, $RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Statement")), $RVF.list($RVF.constructor(RascalValueFactory.Symbol_Layouts, $RVF.string("LAYOUTLIST"))))); + $T56 = $RTF.nonTerminalType($RVF.constructor(RascalValueFactory.Symbol_IterStarSeps, $RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Range")), $RVF.list($RVF.constructor(RascalValueFactory.Symbol_Layouts, $RVF.string("LAYOUTLIST"))))); + $T57 = $RTF.nonTerminalType($RVF.constructor(RascalValueFactory.Symbol_IterSeps, $RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Type")), $RVF.list($RVF.constructor(RascalValueFactory.Symbol_Layouts, $RVF.string("LAYOUTLIST")), $RVF.constructor(RascalValueFactory.Symbol_Lit, $RVF.string(",")), $RVF.constructor(RascalValueFactory.Symbol_Layouts, $RVF.string("LAYOUTLIST"))))); + $T6 = $RTF.nonTerminalType($RVF.constructor(RascalValueFactory.Symbol_IterSeps, $RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("QualifiedName")), $RVF.list($RVF.constructor(RascalValueFactory.Symbol_Layouts, $RVF.string("LAYOUTLIST")), $RVF.constructor(RascalValueFactory.Symbol_Lit, $RVF.string(",")), $RVF.constructor(RascalValueFactory.Symbol_Layouts, $RVF.string("LAYOUTLIST"))))); + $T50 = $RTF.nonTerminalType($RVF.constructor(RascalValueFactory.Symbol_IterStarSeps, $RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Tag")), $RVF.list($RVF.constructor(RascalValueFactory.Symbol_Layouts, $RVF.string("LAYOUTLIST"))))); + $T51 = $RTF.nonTerminalType($RVF.constructor(RascalValueFactory.Symbol_IterSeps, $RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Variant")), $RVF.list($RVF.constructor(RascalValueFactory.Symbol_Layouts, $RVF.string("LAYOUTLIST")), $RVF.constructor(RascalValueFactory.Symbol_Lit, $RVF.string("|")), $RVF.constructor(RascalValueFactory.Symbol_Layouts, $RVF.string("LAYOUTLIST"))))); + $T23 = $RTF.nonTerminalType($RVF.constructor(RascalValueFactory.Symbol_IterStarSeps, $RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Statement")), $RVF.list($RVF.constructor(RascalValueFactory.Symbol_Layouts, $RVF.string("LAYOUTLIST"))))); + NT_Mapping_Pattern = $parameterizedSort("Mapping", new Type[] { ADT_Pattern }, $RVF.list($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Pattern")))); + $T30 = $RTF.nonTerminalType($RVF.constructor(RascalValueFactory.Symbol_IterStarSeps, $RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Statement")), $RVF.list($RVF.constructor(RascalValueFactory.Symbol_Layouts, $RVF.string("LAYOUTLIST"))))); + NT_KeywordArguments_Pattern = $parameterizedSort("KeywordArguments", new Type[] { ADT_Pattern }, $RVF.list($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Pattern")))); + $T27 = $RTF.nonTerminalType($RVF.constructor(RascalValueFactory.Symbol_IterSeps, $RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Variable")), $RVF.list($RVF.constructor(RascalValueFactory.Symbol_Layouts, $RVF.string("LAYOUTLIST")), $RVF.constructor(RascalValueFactory.Symbol_Lit, $RVF.string(",")), $RVF.constructor(RascalValueFactory.Symbol_Layouts, $RVF.string("LAYOUTLIST"))))); + $T52 = $RTF.nonTerminalType($RVF.constructor(RascalValueFactory.Symbol_IterSeps, $RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("TypeVar")), $RVF.list($RVF.constructor(RascalValueFactory.Symbol_Layouts, $RVF.string("LAYOUTLIST")), $RVF.constructor(RascalValueFactory.Symbol_Lit, $RVF.string(",")), $RVF.constructor(RascalValueFactory.Symbol_Layouts, $RVF.string("LAYOUTLIST"))))); + $T22 = $RTF.nonTerminalType($RVF.constructor(RascalValueFactory.Symbol_IterStarSeps, $RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Statement")), $RVF.list($RVF.constructor(RascalValueFactory.Symbol_Layouts, $RVF.string("LAYOUTLIST"))))); + $T26 = $RTF.nonTerminalType($RVF.constructor(RascalValueFactory.Symbol_IterSeps, $RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("KeywordFormal")), $RVF.list($RVF.constructor(RascalValueFactory.Symbol_Layouts, $RVF.string("LAYOUTLIST")), $RVF.constructor(RascalValueFactory.Symbol_Lit, $RVF.string(",")), $RVF.constructor(RascalValueFactory.Symbol_Layouts, $RVF.string("LAYOUTLIST"))))); + $T13 = $RTF.nonTerminalType($RVF.constructor(RascalValueFactory.Symbol_IterStarSeps, $RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Statement")), $RVF.list($RVF.constructor(RascalValueFactory.Symbol_Layouts, $RVF.string("LAYOUTLIST"))))); + $T21 = $RTF.nonTerminalType($RVF.constructor(RascalValueFactory.Symbol_IterStarSeps, $RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Pattern")), $RVF.list($RVF.constructor(RascalValueFactory.Symbol_Layouts, $RVF.string("LAYOUTLIST")), $RVF.constructor(RascalValueFactory.Symbol_Lit, $RVF.string(",")), $RVF.constructor(RascalValueFactory.Symbol_Layouts, $RVF.string("LAYOUTLIST"))))); + $T25 = $RTF.nonTerminalType($RVF.constructor(RascalValueFactory.Symbol_IterStarSeps, $RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Expression")), $RVF.list($RVF.constructor(RascalValueFactory.Symbol_Layouts, $RVF.string("LAYOUTLIST")), $RVF.constructor(RascalValueFactory.Symbol_Lit, $RVF.string(",")), $RVF.constructor(RascalValueFactory.Symbol_Layouts, $RVF.string("LAYOUTLIST"))))); + $T20 = $RTF.nonTerminalType($RVF.constructor(RascalValueFactory.Symbol_IterStarSeps, $RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Mapping")), $RVF.list($RVF.constructor(RascalValueFactory.Symbol_Layouts, $RVF.string("LAYOUTLIST")), $RVF.constructor(RascalValueFactory.Symbol_Lit, $RVF.string(",")), $RVF.constructor(RascalValueFactory.Symbol_Layouts, $RVF.string("LAYOUTLIST"))))); + $T8 = $RTF.nonTerminalType($RVF.constructor(RascalValueFactory.Symbol_IterStarSeps, $RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Mapping")), $RVF.list($RVF.constructor(RascalValueFactory.Symbol_Layouts, $RVF.string("LAYOUTLIST")), $RVF.constructor(RascalValueFactory.Symbol_Lit, $RVF.string(",")), $RVF.constructor(RascalValueFactory.Symbol_Layouts, $RVF.string("LAYOUTLIST"))))); + $T11 = $RTF.nonTerminalType($RVF.constructor(RascalValueFactory.Symbol_IterSeps, $RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("KeywordArgument")), $RVF.list($RVF.constructor(RascalValueFactory.Symbol_Layouts, $RVF.string("LAYOUTLIST")), $RVF.constructor(RascalValueFactory.Symbol_Lit, $RVF.string(",")), $RVF.constructor(RascalValueFactory.Symbol_Layouts, $RVF.string("LAYOUTLIST"))))); + $T37 = $RTF.nonTerminalType($RVF.constructor(RascalValueFactory.Symbol_IterSeps, $RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Type")), $RVF.list($RVF.constructor(RascalValueFactory.Symbol_Layouts, $RVF.string("LAYOUTLIST")), $RVF.constructor(RascalValueFactory.Symbol_Lit, $RVF.string(",")), $RVF.constructor(RascalValueFactory.Symbol_Layouts, $RVF.string("LAYOUTLIST"))))); + $T38 = $RTF.nonTerminalType($RVF.constructor(RascalValueFactory.Symbol_IterSeps, $RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Sym")), $RVF.list($RVF.constructor(RascalValueFactory.Symbol_Layouts, $RVF.string("LAYOUTLIST"))))); + $T41 = $RTF.nonTerminalType($RVF.constructor(RascalValueFactory.Symbol_IterStarSeps, $RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("FunctionModifier")), $RVF.list($RVF.constructor(RascalValueFactory.Symbol_Layouts, $RVF.string("LAYOUTLIST"))))); + ADT_KeywordArguments_1 = $TF.abstractDataType($TS, "KeywordArguments", new Type[] { $T1 }); + ADT_Mapping_Expression = $TF.abstractDataType($TS, "Mapping", new Type[] { ADT_Expression }); + ADT_KeywordArguments_Expression = $TF.abstractDataType($TS, "KeywordArguments", new Type[] { ADT_Expression }); + ADT_Mapping_1 = $TF.abstractDataType($TS, "Mapping", new Type[] { $T1 }); + ADT_KeywordArgument_1 = $TF.abstractDataType($TS, "KeywordArgument", new Type[] { $T1 }); + ADT_Mapping_Pattern = $TF.abstractDataType($TS, "Mapping", new Type[] { ADT_Pattern }); + ADT_KeywordArguments_Pattern = $TF.abstractDataType($TS, "KeywordArguments", new Type[] { ADT_Pattern }); + Concrete_typed_str_Sym_str_str_str = $TF.constructor($TS, ADT_Concrete, "typed", $TF.stringType(), $TF.fromSymbol($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Sym")), $TS, p -> Collections.emptySet()), $TF.stringType(), $TF.stringType(), $TF.stringType()); + Expression_qualifiedName_QualifiedName = $TF.constructor($TS, ADT_Expression, "qualifiedName", $TF.fromSymbol($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("QualifiedName")), $TS, p -> Collections.emptySet()), "qualifiedName"); + Expression_greaterThanOrEq_Expression_Expression = $TF.constructor($TS, ADT_Expression, "greaterThanOrEq", $TF.fromSymbol($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Expression")), $TS, p -> Collections.emptySet()), "lhs", $TF.fromSymbol($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Expression")), $TS, p -> Collections.emptySet()), "rhs"); + UnicodeEscape_utf32_ = $TF.constructor($TS, ADT_UnicodeEscape, "utf32"); + ProtocolPart_nonInterpolated_ProtocolChars = $TF.constructor($TS, ADT_ProtocolPart, "nonInterpolated", ADT_ProtocolChars, "protocolChars"); + ShellCommand_setOption_QualifiedName_Expression = $TF.constructor($TS, ADT_ShellCommand, "setOption", $TF.fromSymbol($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("QualifiedName")), $TS, p -> Collections.emptySet()), "name", $TF.fromSymbol($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Expression")), $TS, p -> Collections.emptySet()), "expression"); + Type_bracket_Type = $TF.constructor($TS, ADT_Type, "bracket", $TF.fromSymbol($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Type")), $TS, p -> Collections.emptySet()), "type"); + StringLiteral_interpolated_PreStringChars_Expression_StringTail = $TF.constructor($TS, ADT_StringLiteral, "interpolated", ADT_PreStringChars, "pre", $TF.fromSymbol($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Expression")), $TS, p -> Collections.emptySet()), "expression", $TF.fromSymbol($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("StringTail")), $TS, p -> Collections.emptySet()), "tail"); + Renamings_default_iter_seps_Renaming = $TF.constructor($TS, ADT_Renamings, "default", $RTF.nonTerminalType($RVF.constructor(RascalValueFactory.Symbol_IterSeps, $RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Renaming")), $RVF.list($RVF.constructor(RascalValueFactory.Symbol_Layouts, $RVF.string("LAYOUTLIST")), $RVF.constructor(RascalValueFactory.Symbol_Lit, $RVF.string(",")), $RVF.constructor(RascalValueFactory.Symbol_Layouts, $RVF.string("LAYOUTLIST"))))), "renamings"); + KeywordFormal_default_Type_Name_Expression = $TF.constructor($TS, ADT_KeywordFormal, "default", $TF.fromSymbol($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Type")), $TS, p -> Collections.emptySet()), "type", ADT_Name, "name", $TF.fromSymbol($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Expression")), $TS, p -> Collections.emptySet()), "expression"); + Statement_expression_Expression = $TF.constructor($TS, ADT_Statement, "expression", $TF.fromSymbol($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Expression")), $TS, p -> Collections.emptySet()), "expression"); + FunctionModifier_default_ = $TF.constructor($TS, ADT_FunctionModifier, "default"); + Assignable_tuple_iter_seps_Assignable = $TF.constructor($TS, ADT_Assignable, "tuple", $RTF.nonTerminalType($RVF.constructor(RascalValueFactory.Symbol_IterSeps, $RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Assignable")), $RVF.list($RVF.constructor(RascalValueFactory.Symbol_Layouts, $RVF.string("LAYOUTLIST")), $RVF.constructor(RascalValueFactory.Symbol_Lit, $RVF.string(",")), $RVF.constructor(RascalValueFactory.Symbol_Layouts, $RVF.string("LAYOUTLIST"))))), "elements"); + Sym_iterStarSep_Sym_Sym = $TF.constructor($TS, ADT_Sym, "iterStarSep", $TF.fromSymbol($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Sym")), $TS, p -> Collections.emptySet()), "symbol", $TF.fromSymbol($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Sym")), $TS, p -> Collections.emptySet()), "sep"); + OptionalExpression_expression_Expression = $TF.constructor($TS, ADT_OptionalExpression, "expression", $TF.fromSymbol($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Expression")), $TS, p -> Collections.emptySet()), "expression"); + Expression_composition_Expression_Expression = $TF.constructor($TS, ADT_Expression, "composition", $TF.fromSymbol($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Expression")), $TS, p -> Collections.emptySet()), "lhs", $TF.fromSymbol($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Expression")), $TS, p -> Collections.emptySet()), "rhs"); + Comprehension_set_iter_seps_Expression_iter_seps_Expression = $TF.constructor($TS, ADT_Comprehension, "set", $RTF.nonTerminalType($RVF.constructor(RascalValueFactory.Symbol_IterSeps, $RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Expression")), $RVF.list($RVF.constructor(RascalValueFactory.Symbol_Layouts, $RVF.string("LAYOUTLIST")), $RVF.constructor(RascalValueFactory.Symbol_Lit, $RVF.string(",")), $RVF.constructor(RascalValueFactory.Symbol_Layouts, $RVF.string("LAYOUTLIST"))))), "results", $RTF.nonTerminalType($RVF.constructor(RascalValueFactory.Symbol_IterSeps, $RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Expression")), $RVF.list($RVF.constructor(RascalValueFactory.Symbol_Layouts, $RVF.string("LAYOUTLIST")), $RVF.constructor(RascalValueFactory.Symbol_Lit, $RVF.string(",")), $RVF.constructor(RascalValueFactory.Symbol_Layouts, $RVF.string("LAYOUTLIST"))))), "generators"); + Kind_all_ = $TF.constructor($TS, ADT_Kind, "all"); + Sym_iterStar_Sym = $TF.constructor($TS, ADT_Sym, "iterStar", $TF.fromSymbol($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Sym")), $TS, p -> Collections.emptySet()), "symbol"); + Statement_ifThenElse_Label_iter_seps_Expression_Statement_Statement = $TF.constructor($TS, ADT_Statement, "ifThenElse", $TF.fromSymbol($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Label")), $TS, p -> Collections.emptySet()), "label", $RTF.nonTerminalType($RVF.constructor(RascalValueFactory.Symbol_IterSeps, $RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Expression")), $RVF.list($RVF.constructor(RascalValueFactory.Symbol_Layouts, $RVF.string("LAYOUTLIST")), $RVF.constructor(RascalValueFactory.Symbol_Lit, $RVF.string(",")), $RVF.constructor(RascalValueFactory.Symbol_Layouts, $RVF.string("LAYOUTLIST"))))), "conditions", $TF.fromSymbol($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Statement")), $TS, p -> Collections.emptySet()), "thenStatement", $TF.fromSymbol($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Statement")), $TS, p -> Collections.emptySet()), "elseStatement"); + Expression_join_Expression_Expression = $TF.constructor($TS, ADT_Expression, "join", $TF.fromSymbol($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Expression")), $TS, p -> Collections.emptySet()), "lhs", $TF.fromSymbol($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Expression")), $TS, p -> Collections.emptySet()), "rhs"); + Class_intersection_Class_Class = $TF.constructor($TS, ADT_Class, "intersection", $TF.fromSymbol($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Class")), $TS, p -> Collections.emptySet()), "lhs", $TF.fromSymbol($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Class")), $TS, p -> Collections.emptySet()), "rhs"); + Output_resultOutput_ = $TF.constructor($TS, ADT_Output, "resultOutput"); + BasicType_tuple_ = $TF.constructor($TS, ADT_BasicType, "tuple"); + Expression_sliceStep_Expression_OptionalExpression_Expression_OptionalExpression = $TF.constructor($TS, ADT_Expression, "sliceStep", $TF.fromSymbol($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Expression")), $TS, p -> Collections.emptySet()), "expression", $TF.fromSymbol($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("OptionalExpression")), $TS, p -> Collections.emptySet()), "optFirst", $TF.fromSymbol($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Expression")), $TS, p -> Collections.emptySet()), "second", $TF.fromSymbol($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("OptionalExpression")), $TS, p -> Collections.emptySet()), "optLast"); + Expression_has_Expression_Name = $TF.constructor($TS, ADT_Expression, "has", $TF.fromSymbol($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Expression")), $TS, p -> Collections.emptySet()), "expression", ADT_Name, "name"); + BasicType_dateTime_ = $TF.constructor($TS, ADT_BasicType, "dateTime"); + ShellCommand_edit_QualifiedName = $TF.constructor($TS, ADT_ShellCommand, "edit", $TF.fromSymbol($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("QualifiedName")), $TS, p -> Collections.emptySet()), "name"); + Variable_initialized_Name_Expression = $TF.constructor($TS, ADT_Variable, "initialized", ADT_Name, "name", $TF.fromSymbol($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Expression")), $TS, p -> Collections.emptySet()), "initial"); + Signature_noThrows_FunctionModifiers_Type_Name_Parameters = $TF.constructor($TS, ADT_Signature, "noThrows", $TF.fromSymbol($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("FunctionModifiers")), $TS, p -> Collections.emptySet()), "modifiers", $TF.fromSymbol($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Type")), $TS, p -> Collections.emptySet()), "type", ADT_Name, "name", $TF.fromSymbol($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Parameters")), $TS, p -> Collections.emptySet()), "parameters"); + Expression_concrete_Concrete = $TF.constructor($TS, ADT_Expression, "concrete", ADT_Concrete, "concrete"); + Literal_string_StringLiteral = $TF.constructor($TS, ADT_Literal, "string", $TF.fromSymbol($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("StringLiteral")), $TS, p -> Collections.emptySet()), "stringLiteral"); + UnicodeEscape_ascii_ = $TF.constructor($TS, ADT_UnicodeEscape, "ascii"); + Tag_expression_Name_Expression = $TF.constructor($TS, ADT_Tag, "expression", ADT_Name, "name", $TF.fromSymbol($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Expression")), $TS, p -> Collections.emptySet()), "expression"); + Kind_module_ = $TF.constructor($TS, ADT_Kind, "module"); + ImportedModule_renamings_QualifiedName_Renamings = $TF.constructor($TS, ADT_ImportedModule, "renamings", $TF.fromSymbol($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("QualifiedName")), $TS, p -> Collections.emptySet()), "name", $TF.fromSymbol($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Renamings")), $TS, p -> Collections.emptySet()), "renamings"); + KeywordArguments_1_none_ = $TF.constructor($TS, ADT_KeywordArguments_1, "none"); + PatternWithAction_replacing_Pattern_Replacement = $TF.constructor($TS, ADT_PatternWithAction, "replacing", $TF.fromSymbol($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Pattern")), $TS, p -> Collections.emptySet()), "pattern", $TF.fromSymbol($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Replacement")), $TS, p -> Collections.emptySet()), "replacement"); + Assignment_division_ = $TF.constructor($TS, ADT_Assignment, "division"); + Sym_optional_Sym = $TF.constructor($TS, ADT_Sym, "optional", $TF.fromSymbol($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Sym")), $TS, p -> Collections.emptySet()), "symbol"); + Class_bracket_Class = $TF.constructor($TS, ADT_Class, "bracket", $TF.fromSymbol($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Class")), $TS, p -> Collections.emptySet()), "charClass"); + Prod_labeled_iter_star_seps_ProdModifier_Name_iter_star_seps_Sym = $TF.constructor($TS, ADT_Prod, "labeled", $RTF.nonTerminalType($RVF.constructor(RascalValueFactory.Symbol_IterStarSeps, $RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("ProdModifier")), $RVF.list($RVF.constructor(RascalValueFactory.Symbol_Layouts, $RVF.string("LAYOUTLIST"))))), "modifiers", ADT_Name, "name", $RTF.nonTerminalType($RVF.constructor(RascalValueFactory.Symbol_IterStarSeps, $RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Sym")), $RVF.list($RVF.constructor(RascalValueFactory.Symbol_Layouts, $RVF.string("LAYOUTLIST"))))), "syms"); + BasicType_bag_ = $TF.constructor($TS, ADT_BasicType, "bag"); + Pattern_multiVariable_QualifiedName = $TF.constructor($TS, ADT_Pattern, "multiVariable", $TF.fromSymbol($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("QualifiedName")), $TS, p -> Collections.emptySet()), "qualifiedName"); + Literal_boolean_BooleanLiteral = $TF.constructor($TS, ADT_Literal, "boolean", ADT_BooleanLiteral, "booleanLiteral"); + ConcretePart_gt_ = $TF.constructor($TS, ADT_ConcretePart, "gt"); + Output_stdoutOutput_ = $TF.constructor($TS, ADT_Output, "stdoutOutput"); + Expression_transitiveReflexiveClosure_Expression = $TF.constructor($TS, ADT_Expression, "transitiveReflexiveClosure", $TF.fromSymbol($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Expression")), $TS, p -> Collections.emptySet()), "argument"); + SyntaxDefinition_layout_Visibility_Sym_Prod = $TF.constructor($TS, ADT_SyntaxDefinition, "layout", $TF.fromSymbol($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Visibility")), $TS, p -> Collections.emptySet()), "vis", $TF.fromSymbol($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Sym")), $TS, p -> Collections.emptySet()), "defined", $TF.fromSymbol($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Prod")), $TS, p -> Collections.emptySet()), "production"); + Expression_modulo_Expression_Expression = $TF.constructor($TS, ADT_Expression, "modulo", $TF.fromSymbol($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Expression")), $TS, p -> Collections.emptySet()), "lhs", $TF.fromSymbol($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Expression")), $TS, p -> Collections.emptySet()), "rhs"); + Range_character_Char = $TF.constructor($TS, ADT_Range, "character", ADT_Char, "character"); + SyntaxDefinition_keyword_Sym_Prod = $TF.constructor($TS, ADT_SyntaxDefinition, "keyword", $TF.fromSymbol($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Sym")), $TS, p -> Collections.emptySet()), "defined", $TF.fromSymbol($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Prod")), $TS, p -> Collections.emptySet()), "production"); + Statement_filter_ = $TF.constructor($TS, ADT_Statement, "filter"); + Expression_reifiedType_Expression_Expression = $TF.constructor($TS, ADT_Expression, "reifiedType", $TF.fromSymbol($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Expression")), $TS, p -> Collections.emptySet()), "symbol", $TF.fromSymbol($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Expression")), $TS, p -> Collections.emptySet()), "definitions"); + StringLiteral_nonInterpolated_StringConstant = $TF.constructor($TS, ADT_StringLiteral, "nonInterpolated", ADT_StringConstant, "constant"); + Visibility_private_ = $TF.constructor($TS, ADT_Visibility, "private"); + Statement_doWhile_Label_Statement_Expression = $TF.constructor($TS, ADT_Statement, "doWhile", $TF.fromSymbol($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Label")), $TS, p -> Collections.emptySet()), "label", $TF.fromSymbol($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Statement")), $TS, p -> Collections.emptySet()), "body", $TF.fromSymbol($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Expression")), $TS, p -> Collections.emptySet()), "condition"); + ProtocolTail_post_PostProtocolChars = $TF.constructor($TS, ADT_ProtocolTail, "post", ADT_PostProtocolChars, "post"); + StringTail_midTemplate_MidStringChars_StringTemplate_StringTail = $TF.constructor($TS, ADT_StringTail, "midTemplate", ADT_MidStringChars, "mid", $TF.fromSymbol($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("StringTemplate")), $TS, p -> Collections.emptySet()), "template", $TF.fromSymbol($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("StringTail")), $TS, p -> Collections.emptySet()), "tail"); + BasicType_real_ = $TF.constructor($TS, ADT_BasicType, "real"); + EvalCommand_declaration_Declaration = $TF.constructor($TS, ADT_EvalCommand, "declaration", $TF.fromSymbol($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Declaration")), $TS, p -> Collections.emptySet()), "declaration"); + ShellCommand_help_ = $TF.constructor($TS, ADT_ShellCommand, "help"); + Pattern_negative_Pattern = $TF.constructor($TS, ADT_Pattern, "negative", $TF.fromSymbol($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Pattern")), $TS, p -> Collections.emptySet()), "argument"); + Statement_return_Statement = $TF.constructor($TS, ADT_Statement, "return", $TF.fromSymbol($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Statement")), $TS, p -> Collections.emptySet()), "statement"); + Comprehension_map_Expression_Expression_iter_seps_Expression = $TF.constructor($TS, ADT_Comprehension, "map", $TF.fromSymbol($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Expression")), $TS, p -> Collections.emptySet()), "from", $TF.fromSymbol($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Expression")), $TS, p -> Collections.emptySet()), "to", $RTF.nonTerminalType($RVF.constructor(RascalValueFactory.Symbol_IterSeps, $RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Expression")), $RVF.list($RVF.constructor(RascalValueFactory.Symbol_Layouts, $RVF.string("LAYOUTLIST")), $RVF.constructor(RascalValueFactory.Symbol_Lit, $RVF.string(",")), $RVF.constructor(RascalValueFactory.Symbol_Layouts, $RVF.string("LAYOUTLIST"))))), "generators"); + FunctionDeclaration_conditional_Tags_Visibility_Signature_Expression_iter_seps_Expression = $TF.constructor($TS, ADT_FunctionDeclaration, "conditional", $TF.fromSymbol($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Tags")), $TS, p -> Collections.emptySet()), "tags", $TF.fromSymbol($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Visibility")), $TS, p -> Collections.emptySet()), "visibility", $TF.fromSymbol($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Signature")), $TS, p -> Collections.emptySet()), "signature", $TF.fromSymbol($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Expression")), $TS, p -> Collections.emptySet()), "expression", $RTF.nonTerminalType($RVF.constructor(RascalValueFactory.Symbol_IterSeps, $RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Expression")), $RVF.list($RVF.constructor(RascalValueFactory.Symbol_Layouts, $RVF.string("LAYOUTLIST")), $RVF.constructor(RascalValueFactory.Symbol_Lit, $RVF.string(",")), $RVF.constructor(RascalValueFactory.Symbol_Layouts, $RVF.string("LAYOUTLIST"))))), "conditions"); + BasicType_list_ = $TF.constructor($TS, ADT_BasicType, "list"); + Strategy_bottomUpBreak_ = $TF.constructor($TS, ADT_Strategy, "bottomUpBreak"); + Strategy_innermost_ = $TF.constructor($TS, ADT_Strategy, "innermost"); + Expression_tuple_iter_seps_Expression = $TF.constructor($TS, ADT_Expression, "tuple", $RTF.nonTerminalType($RVF.constructor(RascalValueFactory.Symbol_IterSeps, $RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Expression")), $RVF.list($RVF.constructor(RascalValueFactory.Symbol_Layouts, $RVF.string("LAYOUTLIST")), $RVF.constructor(RascalValueFactory.Symbol_Lit, $RVF.string(",")), $RVF.constructor(RascalValueFactory.Symbol_Layouts, $RVF.string("LAYOUTLIST"))))), "elements"); + Literal_rational_RationalLiteral = $TF.constructor($TS, ADT_Literal, "rational", ADT_RationalLiteral, "rationalLiteral"); + Strategy_topDown_ = $TF.constructor($TS, ADT_Strategy, "topDown"); + Expression_equals_Expression_Expression = $TF.constructor($TS, ADT_Expression, "equals", $TF.fromSymbol($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Expression")), $TS, p -> Collections.emptySet()), "lhs", $TF.fromSymbol($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Expression")), $TS, p -> Collections.emptySet()), "rhs"); + Expression_nonEquals_Expression_Expression = $TF.constructor($TS, ADT_Expression, "nonEquals", $TF.fromSymbol($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Expression")), $TS, p -> Collections.emptySet()), "lhs", $TF.fromSymbol($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Expression")), $TS, p -> Collections.emptySet()), "rhs"); + ProdModifier_associativity_Assoc = $TF.constructor($TS, ADT_ProdModifier, "associativity", $TF.fromSymbol($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Assoc")), $TS, p -> Collections.emptySet()), "associativity"); + FunctionType_typeArguments_Type_iter_star_seps_TypeArg = $TF.constructor($TS, ADT_FunctionType, "typeArguments", $TF.fromSymbol($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Type")), $TS, p -> Collections.emptySet()), "type", $RTF.nonTerminalType($RVF.constructor(RascalValueFactory.Symbol_IterStarSeps, $RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("TypeArg")), $RVF.list($RVF.constructor(RascalValueFactory.Symbol_Layouts, $RVF.string("LAYOUTLIST")), $RVF.constructor(RascalValueFactory.Symbol_Lit, $RVF.string(",")), $RVF.constructor(RascalValueFactory.Symbol_Layouts, $RVF.string("LAYOUTLIST"))))), "arguments"); + PathTail_mid_MidPathChars_Expression_PathTail = $TF.constructor($TS, ADT_PathTail, "mid", ADT_MidPathChars, "mid", $TF.fromSymbol($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Expression")), $TS, p -> Collections.emptySet()), "expression", $TF.fromSymbol($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("PathTail")), $TS, p -> Collections.emptySet()), "tail"); + Expression_fieldProject_Expression_iter_seps_Field = $TF.constructor($TS, ADT_Expression, "fieldProject", $TF.fromSymbol($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Expression")), $TS, p -> Collections.emptySet()), "expression", $RTF.nonTerminalType($RVF.constructor(RascalValueFactory.Symbol_IterSeps, $RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Field")), $RVF.list($RVF.constructor(RascalValueFactory.Symbol_Layouts, $RVF.string("LAYOUTLIST")), $RVF.constructor(RascalValueFactory.Symbol_Lit, $RVF.string(",")), $RVF.constructor(RascalValueFactory.Symbol_Layouts, $RVF.string("LAYOUTLIST"))))), "fields"); + StringMiddle_template_MidStringChars_StringTemplate_StringMiddle = $TF.constructor($TS, ADT_StringMiddle, "template", ADT_MidStringChars, "mid", $TF.fromSymbol($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("StringTemplate")), $TS, p -> Collections.emptySet()), "template", $TF.fromSymbol($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("StringMiddle")), $TS, p -> Collections.emptySet()), "tail"); + IntegerLiteral_decimalIntegerLiteral_DecimalIntegerLiteral = $TF.constructor($TS, ADT_IntegerLiteral, "decimalIntegerLiteral", ADT_DecimalIntegerLiteral, "decimal"); + ProtocolPart_interpolated_PreProtocolChars_Expression_ProtocolTail = $TF.constructor($TS, ADT_ProtocolPart, "interpolated", ADT_PreProtocolChars, "pre", $TF.fromSymbol($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Expression")), $TS, p -> Collections.emptySet()), "expression", $TF.fromSymbol($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("ProtocolTail")), $TS, p -> Collections.emptySet()), "tail"); + Expression_equivalence_Expression_Expression = $TF.constructor($TS, ADT_Expression, "equivalence", $TF.fromSymbol($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Expression")), $TS, p -> Collections.emptySet()), "lhs", $TF.fromSymbol($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Expression")), $TS, p -> Collections.emptySet()), "rhs"); + StringTail_post_PostStringChars = $TF.constructor($TS, ADT_StringTail, "post", ADT_PostStringChars, "post"); + Expression_set_iter_star_seps_Expression = $TF.constructor($TS, ADT_Expression, "set", $RTF.nonTerminalType($RVF.constructor(RascalValueFactory.Symbol_IterStarSeps, $RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Expression")), $RVF.list($RVF.constructor(RascalValueFactory.Symbol_Layouts, $RVF.string("LAYOUTLIST")), $RVF.constructor(RascalValueFactory.Symbol_Lit, $RVF.string(",")), $RVF.constructor(RascalValueFactory.Symbol_Layouts, $RVF.string("LAYOUTLIST"))))), "elements0"); + OptionalExpression_noExpression_ = $TF.constructor($TS, ADT_OptionalExpression, "noExpression"); + Literal_location_LocationLiteral = $TF.constructor($TS, ADT_Literal, "location", $TF.fromSymbol($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("LocationLiteral")), $TS, p -> Collections.emptySet()), "locationLiteral"); + Assignable_ifDefinedOrDefault_Assignable_Expression = $TF.constructor($TS, ADT_Assignable, "ifDefinedOrDefault", $TF.fromSymbol($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Assignable")), $TS, p -> Collections.emptySet()), "receiver", $TF.fromSymbol($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Expression")), $TS, p -> Collections.emptySet()), "defaultExpression"); + Label_empty_ = $TF.constructor($TS, ADT_Label, "empty"); + Import_default_ImportedModule = $TF.constructor($TS, ADT_Import, "default", $TF.fromSymbol($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("ImportedModule")), $TS, p -> Collections.emptySet()), "module"); + Sym_column_Sym_IntegerLiteral = $TF.constructor($TS, ADT_Sym, "column", $TF.fromSymbol($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Sym")), $TS, p -> Collections.emptySet()), "symbol", $TF.fromSymbol($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("IntegerLiteral")), $TS, p -> Collections.emptySet()), "column"); + Expression_reducer_Expression_Expression_iter_seps_Expression = $TF.constructor($TS, ADT_Expression, "reducer", $TF.fromSymbol($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Expression")), $TS, p -> Collections.emptySet()), "init", $TF.fromSymbol($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Expression")), $TS, p -> Collections.emptySet()), "result", $RTF.nonTerminalType($RVF.constructor(RascalValueFactory.Symbol_IterSeps, $RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Expression")), $RVF.list($RVF.constructor(RascalValueFactory.Symbol_Layouts, $RVF.string("LAYOUTLIST")), $RVF.constructor(RascalValueFactory.Symbol_Lit, $RVF.string(",")), $RVF.constructor(RascalValueFactory.Symbol_Layouts, $RVF.string("LAYOUTLIST"))))), "generators"); + BasicType_void_ = $TF.constructor($TS, ADT_BasicType, "void"); + Expression_stepRange_Expression_Expression_Expression = $TF.constructor($TS, ADT_Expression, "stepRange", $TF.fromSymbol($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Expression")), $TS, p -> Collections.emptySet()), "first", $TF.fromSymbol($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Expression")), $TS, p -> Collections.emptySet()), "second", $TF.fromSymbol($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Expression")), $TS, p -> Collections.emptySet()), "last"); + Kind_function_ = $TF.constructor($TS, ADT_Kind, "function"); + Pattern_qualifiedName_QualifiedName = $TF.constructor($TS, ADT_Pattern, "qualifiedName", $TF.fromSymbol($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("QualifiedName")), $TS, p -> Collections.emptySet()), "qualifiedName"); + BasicType_type_ = $TF.constructor($TS, ADT_BasicType, "type"); + Pattern_literal_Literal = $TF.constructor($TS, ADT_Pattern, "literal", $TF.fromSymbol($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Literal")), $TS, p -> Collections.emptySet()), "literal"); + Literal_regExp_RegExpLiteral = $TF.constructor($TS, ADT_Literal, "regExp", ADT_RegExpLiteral, "regExpLiteral"); + StructuredType_default_BasicType_iter_seps_TypeArg = $TF.constructor($TS, ADT_StructuredType, "default", $TF.fromSymbol($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("BasicType")), $TS, p -> Collections.emptySet()), "basicType", $RTF.nonTerminalType($RVF.constructor(RascalValueFactory.Symbol_IterSeps, $RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("TypeArg")), $RVF.list($RVF.constructor(RascalValueFactory.Symbol_Layouts, $RVF.string("LAYOUTLIST")), $RVF.constructor(RascalValueFactory.Symbol_Lit, $RVF.string(",")), $RVF.constructor(RascalValueFactory.Symbol_Layouts, $RVF.string("LAYOUTLIST"))))), "arguments"); + Command_declaration_Declaration = $TF.constructor($TS, ADT_Command, "declaration", $TF.fromSymbol($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Declaration")), $TS, p -> Collections.emptySet()), "declaration"); + Statement_solve_iter_seps_QualifiedName_Bound_Statement = $TF.constructor($TS, ADT_Statement, "solve", $RTF.nonTerminalType($RVF.constructor(RascalValueFactory.Symbol_IterSeps, $RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("QualifiedName")), $RVF.list($RVF.constructor(RascalValueFactory.Symbol_Layouts, $RVF.string("LAYOUTLIST")), $RVF.constructor(RascalValueFactory.Symbol_Lit, $RVF.string(",")), $RVF.constructor(RascalValueFactory.Symbol_Layouts, $RVF.string("LAYOUTLIST"))))), "variables", $TF.fromSymbol($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Bound")), $TS, p -> Collections.emptySet()), "bound", $TF.fromSymbol($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Statement")), $TS, p -> Collections.emptySet()), "body"); + Pattern_typedVariableBecomes_Type_Name_Pattern = $TF.constructor($TS, ADT_Pattern, "typedVariableBecomes", $TF.fromSymbol($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Type")), $TS, p -> Collections.emptySet()), "type", ADT_Name, "name", $TF.fromSymbol($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Pattern")), $TS, p -> Collections.emptySet()), "pattern"); + Assoc_left_ = $TF.constructor($TS, ADT_Assoc, "left"); + UserType_name_QualifiedName = $TF.constructor($TS, ADT_UserType, "name", $TF.fromSymbol($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("QualifiedName")), $TS, p -> Collections.emptySet()), "name"); + Assignment_ifDefined_ = $TF.constructor($TS, ADT_Assignment, "ifDefined"); + ImportedModule_actualsRenaming_QualifiedName_ModuleActuals_Renamings = $TF.constructor($TS, ADT_ImportedModule, "actualsRenaming", $TF.fromSymbol($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("QualifiedName")), $TS, p -> Collections.emptySet()), "name", $TF.fromSymbol($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("ModuleActuals")), $TS, p -> Collections.emptySet()), "actuals", $TF.fromSymbol($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Renamings")), $TS, p -> Collections.emptySet()), "renamings"); + ShellCommand_unimport_QualifiedName = $TF.constructor($TS, ADT_ShellCommand, "unimport", $TF.fromSymbol($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("QualifiedName")), $TS, p -> Collections.emptySet()), "name"); + PathPart_nonInterpolated_PathChars = $TF.constructor($TS, ADT_PathPart, "nonInterpolated", ADT_PathChars, "pathChars"); + ShellCommand_test_ = $TF.constructor($TS, ADT_ShellCommand, "test"); + BasicType_int_ = $TF.constructor($TS, ADT_BasicType, "int"); + BasicType_listRelation_ = $TF.constructor($TS, ADT_BasicType, "listRelation"); + Expression_negation_Expression = $TF.constructor($TS, ADT_Expression, "negation", $TF.fromSymbol($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Expression")), $TS, p -> Collections.emptySet()), "argument"); + DateTimeLiteral_dateAndTimeLiteral_DateAndTime = $TF.constructor($TS, ADT_DateTimeLiteral, "dateAndTimeLiteral", ADT_DateAndTime, "dateAndTime"); + Pattern_list_iter_star_seps_Pattern = $TF.constructor($TS, ADT_Pattern, "list", $RTF.nonTerminalType($RVF.constructor(RascalValueFactory.Symbol_IterStarSeps, $RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Pattern")), $RVF.list($RVF.constructor(RascalValueFactory.Symbol_Layouts, $RVF.string("LAYOUTLIST")), $RVF.constructor(RascalValueFactory.Symbol_Lit, $RVF.string(",")), $RVF.constructor(RascalValueFactory.Symbol_Layouts, $RVF.string("LAYOUTLIST"))))), "elements0"); + Visibility_default_ = $TF.constructor($TS, ADT_Visibility, "default"); + Parameters_varArgs_Formals_KeywordFormals = $TF.constructor($TS, ADT_Parameters, "varArgs", $TF.fromSymbol($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Formals")), $TS, p -> Collections.emptySet()), "formals", $TF.fromSymbol($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("KeywordFormals")), $TS, p -> Collections.emptySet()), "keywordFormals"); + Assignable_constructor_Name_iter_seps_Assignable = $TF.constructor($TS, ADT_Assignable, "constructor", ADT_Name, "name", $RTF.nonTerminalType($RVF.constructor(RascalValueFactory.Symbol_IterSeps, $RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Assignable")), $RVF.list($RVF.constructor(RascalValueFactory.Symbol_Layouts, $RVF.string("LAYOUTLIST")), $RVF.constructor(RascalValueFactory.Symbol_Lit, $RVF.string(",")), $RVF.constructor(RascalValueFactory.Symbol_Layouts, $RVF.string("LAYOUTLIST"))))), "arguments"); + Expression_ifDefinedOtherwise_Expression_Expression = $TF.constructor($TS, ADT_Expression, "ifDefinedOtherwise", $TF.fromSymbol($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Expression")), $TS, p -> Collections.emptySet()), "lhs", $TF.fromSymbol($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Expression")), $TS, p -> Collections.emptySet()), "rhs"); + Assignable_bracket_Assignable = $TF.constructor($TS, ADT_Assignable, "bracket", $TF.fromSymbol($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Assignable")), $TS, p -> Collections.emptySet()), "arg"); + LocalVariableDeclaration_default_Declarator = $TF.constructor($TS, ADT_LocalVariableDeclaration, "default", $TF.fromSymbol($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Declarator")), $TS, p -> Collections.emptySet()), "declarator"); + Statement_visit_Label_Visit = $TF.constructor($TS, ADT_Statement, "visit", $TF.fromSymbol($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Label")), $TS, p -> Collections.emptySet()), "label", $TF.fromSymbol($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Visit")), $TS, p -> Collections.emptySet()), "visit"); + StringMiddle_interpolated_MidStringChars_Expression_StringMiddle = $TF.constructor($TS, ADT_StringMiddle, "interpolated", ADT_MidStringChars, "mid", $TF.fromSymbol($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Expression")), $TS, p -> Collections.emptySet()), "expression", $TF.fromSymbol($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("StringMiddle")), $TS, p -> Collections.emptySet()), "tail"); + Expression_list_iter_star_seps_Expression = $TF.constructor($TS, ADT_Expression, "list", $RTF.nonTerminalType($RVF.constructor(RascalValueFactory.Symbol_IterStarSeps, $RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Expression")), $RVF.list($RVF.constructor(RascalValueFactory.Symbol_Layouts, $RVF.string("LAYOUTLIST")), $RVF.constructor(RascalValueFactory.Symbol_Lit, $RVF.string(",")), $RVF.constructor(RascalValueFactory.Symbol_Layouts, $RVF.string("LAYOUTLIST"))))), "elements0"); + Expression_asType_Type_Expression = $TF.constructor($TS, ADT_Expression, "asType", $TF.fromSymbol($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Type")), $TS, p -> Collections.emptySet()), "type", $TF.fromSymbol($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Expression")), $TS, p -> Collections.emptySet()), "argument"); + Expression_closure_Type_Parameters_iter_seps_Statement = $TF.constructor($TS, ADT_Expression, "closure", $TF.fromSymbol($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Type")), $TS, p -> Collections.emptySet()), "type", $TF.fromSymbol($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Parameters")), $TS, p -> Collections.emptySet()), "parameters", $RTF.nonTerminalType($RVF.constructor(RascalValueFactory.Symbol_IterSeps, $RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Statement")), $RVF.list($RVF.constructor(RascalValueFactory.Symbol_Layouts, $RVF.string("LAYOUTLIST"))))), "statements"); + Statement_append_DataTarget_Statement = $TF.constructor($TS, ADT_Statement, "append", $TF.fromSymbol($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("DataTarget")), $TS, p -> Collections.emptySet()), "dataTarget", $TF.fromSymbol($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Statement")), $TS, p -> Collections.emptySet()), "statement"); + PathTail_post_PostPathChars = $TF.constructor($TS, ADT_PathTail, "post", ADT_PostPathChars, "post"); + DateTimeLiteral_timeLiteral_JustTime = $TF.constructor($TS, ADT_DateTimeLiteral, "timeLiteral", ADT_JustTime, "time"); + Pattern_splice_Pattern = $TF.constructor($TS, ADT_Pattern, "splice", $TF.fromSymbol($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Pattern")), $TS, p -> Collections.emptySet()), "argument"); + Class_simpleCharclass_iter_star_seps_Range = $TF.constructor($TS, ADT_Class, "simpleCharclass", $RTF.nonTerminalType($RVF.constructor(RascalValueFactory.Symbol_IterStarSeps, $RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Range")), $RVF.list($RVF.constructor(RascalValueFactory.Symbol_Layouts, $RVF.string("LAYOUTLIST"))))), "ranges"); + DataTypeSelector_selector_QualifiedName_Name = $TF.constructor($TS, ADT_DataTypeSelector, "selector", $TF.fromSymbol($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("QualifiedName")), $TS, p -> Collections.emptySet()), "sort", ADT_Name, "production"); + OptionalComma_default_str = $TF.constructor($TS, ADT_OptionalComma, "default", $TF.stringType()); + ConcretePart_newline_ = $TF.constructor($TS, ADT_ConcretePart, "newline"); + IntegerLiteral_octalIntegerLiteral_OctalIntegerLiteral = $TF.constructor($TS, ADT_IntegerLiteral, "octalIntegerLiteral", ADT_OctalIntegerLiteral, "octal"); + Prod_unlabeled_iter_star_seps_ProdModifier_iter_star_seps_Sym = $TF.constructor($TS, ADT_Prod, "unlabeled", $RTF.nonTerminalType($RVF.constructor(RascalValueFactory.Symbol_IterStarSeps, $RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("ProdModifier")), $RVF.list($RVF.constructor(RascalValueFactory.Symbol_Layouts, $RVF.string("LAYOUTLIST"))))), "modifiers", $RTF.nonTerminalType($RVF.constructor(RascalValueFactory.Symbol_IterStarSeps, $RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Sym")), $RVF.list($RVF.constructor(RascalValueFactory.Symbol_Layouts, $RVF.string("LAYOUTLIST"))))), "syms"); + Signature_withThrows_FunctionModifiers_Type_Name_Parameters_iter_seps_Type = $TF.constructor($TS, ADT_Signature, "withThrows", $TF.fromSymbol($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("FunctionModifiers")), $TS, p -> Collections.emptySet()), "modifiers", $TF.fromSymbol($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Type")), $TS, p -> Collections.emptySet()), "type", ADT_Name, "name", $TF.fromSymbol($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Parameters")), $TS, p -> Collections.emptySet()), "parameters", $RTF.nonTerminalType($RVF.constructor(RascalValueFactory.Symbol_IterSeps, $RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Type")), $RVF.list($RVF.constructor(RascalValueFactory.Symbol_Layouts, $RVF.string("LAYOUTLIST")), $RVF.constructor(RascalValueFactory.Symbol_Lit, $RVF.string(",")), $RVF.constructor(RascalValueFactory.Symbol_Layouts, $RVF.string("LAYOUTLIST"))))), "exceptions"); + Assignable_annotation_Assignable_Name = $TF.constructor($TS, ADT_Assignable, "annotation", $TF.fromSymbol($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Assignable")), $TS, p -> Collections.emptySet()), "receiver", ADT_Name, "annotation"); + Sym_characterClass_Class = $TF.constructor($TS, ADT_Sym, "characterClass", $TF.fromSymbol($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Class")), $TS, p -> Collections.emptySet()), "charClass"); + Expression_intersection_Expression_Expression = $TF.constructor($TS, ADT_Expression, "intersection", $TF.fromSymbol($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Expression")), $TS, p -> Collections.emptySet()), "lhs", $TF.fromSymbol($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Expression")), $TS, p -> Collections.emptySet()), "rhs"); + Tags_default_iter_star_seps_Tag = $TF.constructor($TS, ADT_Tags, "default", $RTF.nonTerminalType($RVF.constructor(RascalValueFactory.Symbol_IterStarSeps, $RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Tag")), $RVF.list($RVF.constructor(RascalValueFactory.Symbol_Layouts, $RVF.string("LAYOUTLIST"))))), "tags"); + Declaration_data_Tags_Visibility_UserType_CommonKeywordParameters_iter_seps_Variant = $TF.constructor($TS, ADT_Declaration, "data", $TF.fromSymbol($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Tags")), $TS, p -> Collections.emptySet()), "tags", $TF.fromSymbol($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Visibility")), $TS, p -> Collections.emptySet()), "visibility", $TF.fromSymbol($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("UserType")), $TS, p -> Collections.emptySet()), "user", $TF.fromSymbol($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("CommonKeywordParameters")), $TS, p -> Collections.emptySet()), "commonKeywordParameters", $RTF.nonTerminalType($RVF.constructor(RascalValueFactory.Symbol_IterSeps, $RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Variant")), $RVF.list($RVF.constructor(RascalValueFactory.Symbol_Layouts, $RVF.string("LAYOUTLIST")), $RVF.constructor(RascalValueFactory.Symbol_Lit, $RVF.string("|")), $RVF.constructor(RascalValueFactory.Symbol_Layouts, $RVF.string("LAYOUTLIST"))))), "variants"); + Class_complement_Class = $TF.constructor($TS, ADT_Class, "complement", $TF.fromSymbol($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Class")), $TS, p -> Collections.emptySet()), "charClass"); + ShellCommand_history_ = $TF.constructor($TS, ADT_ShellCommand, "history"); + BasicType_num_ = $TF.constructor($TS, ADT_BasicType, "num"); + Declaration_alias_Tags_Visibility_UserType_Type = $TF.constructor($TS, ADT_Declaration, "alias", $TF.fromSymbol($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Tags")), $TS, p -> Collections.emptySet()), "tags", $TF.fromSymbol($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Visibility")), $TS, p -> Collections.emptySet()), "visibility", $TF.fromSymbol($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("UserType")), $TS, p -> Collections.emptySet()), "user", $TF.fromSymbol($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Type")), $TS, p -> Collections.emptySet()), "base"); + BasicType_string_ = $TF.constructor($TS, ADT_BasicType, "string"); + Literal_dateTime_DateTimeLiteral = $TF.constructor($TS, ADT_Literal, "dateTime", $TF.fromSymbol($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("DateTimeLiteral")), $TS, p -> Collections.emptySet()), "dateTimeLiteral"); + Pattern_reifiedType_Pattern_Pattern = $TF.constructor($TS, ADT_Pattern, "reifiedType", $TF.fromSymbol($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Pattern")), $TS, p -> Collections.emptySet()), "symbol", $TF.fromSymbol($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Pattern")), $TS, p -> Collections.emptySet()), "definitions"); + Expression_lessThanOrEq_Expression_Expression = $TF.constructor($TS, ADT_Expression, "lessThanOrEq", $TF.fromSymbol($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Expression")), $TS, p -> Collections.emptySet()), "lhs", $TF.fromSymbol($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Expression")), $TS, p -> Collections.emptySet()), "rhs"); + Statement_for_Label_iter_seps_Expression_Statement = $TF.constructor($TS, ADT_Statement, "for", $TF.fromSymbol($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Label")), $TS, p -> Collections.emptySet()), "label", $RTF.nonTerminalType($RVF.constructor(RascalValueFactory.Symbol_IterSeps, $RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Expression")), $RVF.list($RVF.constructor(RascalValueFactory.Symbol_Layouts, $RVF.string("LAYOUTLIST")), $RVF.constructor(RascalValueFactory.Symbol_Lit, $RVF.string(",")), $RVF.constructor(RascalValueFactory.Symbol_Layouts, $RVF.string("LAYOUTLIST"))))), "generators", $TF.fromSymbol($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Statement")), $TS, p -> Collections.emptySet()), "body"); + Target_labeled_Name = $TF.constructor($TS, ADT_Target, "labeled", ADT_Name, "name"); + BasicType_value_ = $TF.constructor($TS, ADT_BasicType, "value"); + Expression_setAnnotation_Expression_Name_Expression = $TF.constructor($TS, ADT_Expression, "setAnnotation", $TF.fromSymbol($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Expression")), $TS, p -> Collections.emptySet()), "expression", ADT_Name, "name", $TF.fromSymbol($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Expression")), $TS, p -> Collections.emptySet()), "value"); + Start_present_ = $TF.constructor($TS, ADT_Start, "present"); + ShellCommand_listModules_ = $TF.constructor($TS, ADT_ShellCommand, "listModules"); + Expression_getAnnotation_Expression_Name = $TF.constructor($TS, ADT_Expression, "getAnnotation", $TF.fromSymbol($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Expression")), $TS, p -> Collections.emptySet()), "expression", ADT_Name, "name"); + Kind_data_ = $TF.constructor($TS, ADT_Kind, "data"); + Prod_associativityGroup_Assoc_Prod = $TF.constructor($TS, ADT_Prod, "associativityGroup", $TF.fromSymbol($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Assoc")), $TS, p -> Collections.emptySet()), "associativity", $TF.fromSymbol($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Prod")), $TS, p -> Collections.emptySet()), "group"); + Statement_variableDeclaration_LocalVariableDeclaration = $TF.constructor($TS, ADT_Statement, "variableDeclaration", $TF.fromSymbol($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("LocalVariableDeclaration")), $TS, p -> Collections.emptySet()), "declaration"); + Expression_comprehension_Comprehension = $TF.constructor($TS, ADT_Expression, "comprehension", $TF.fromSymbol($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Comprehension")), $TS, p -> Collections.emptySet()), "comprehension"); + Expression_splice_Expression = $TF.constructor($TS, ADT_Expression, "splice", $TF.fromSymbol($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Expression")), $TS, p -> Collections.emptySet()), "argument"); + Sym_empty_ = $TF.constructor($TS, ADT_Sym, "empty"); + Replacement_unconditional_Expression = $TF.constructor($TS, ADT_Replacement, "unconditional", $TF.fromSymbol($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Expression")), $TS, p -> Collections.emptySet()), "replacementExpression"); + Declaration_dataAbstract_Tags_Visibility_UserType_CommonKeywordParameters = $TF.constructor($TS, ADT_Declaration, "dataAbstract", $TF.fromSymbol($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Tags")), $TS, p -> Collections.emptySet()), "tags", $TF.fromSymbol($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Visibility")), $TS, p -> Collections.emptySet()), "visibility", $TF.fromSymbol($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("UserType")), $TS, p -> Collections.emptySet()), "user", $TF.fromSymbol($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("CommonKeywordParameters")), $TS, p -> Collections.emptySet()), "commonKeywordParameters"); + Sym_iterSep_Sym_Sym = $TF.constructor($TS, ADT_Sym, "iterSep", $TF.fromSymbol($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Sym")), $TS, p -> Collections.emptySet()), "symbol", $TF.fromSymbol($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Sym")), $TS, p -> Collections.emptySet()), "sep"); + ConcretePart_hole_ConcreteHole = $TF.constructor($TS, ADT_ConcretePart, "hole", $TF.fromSymbol($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("ConcreteHole")), $TS, p -> Collections.emptySet()), "hole"); + BasicType_map_ = $TF.constructor($TS, ADT_BasicType, "map"); + Sym_labeled_Sym_NonterminalLabel = $TF.constructor($TS, ADT_Sym, "labeled", $TF.fromSymbol($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Sym")), $TS, p -> Collections.emptySet()), "symbol", ADT_NonterminalLabel, "label"); + Expression_slice_Expression_OptionalExpression_OptionalExpression = $TF.constructor($TS, ADT_Expression, "slice", $TF.fromSymbol($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Expression")), $TS, p -> Collections.emptySet()), "expression", $TF.fromSymbol($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("OptionalExpression")), $TS, p -> Collections.emptySet()), "optFirst", $TF.fromSymbol($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("OptionalExpression")), $TS, p -> Collections.emptySet()), "optLast"); + Sym_start_Nonterminal = $TF.constructor($TS, ADT_Sym, "start", ADT_Nonterminal, "nonterminal"); + Assignable_sliceStep_Assignable_OptionalExpression_Expression_OptionalExpression = $TF.constructor($TS, ADT_Assignable, "sliceStep", $TF.fromSymbol($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Assignable")), $TS, p -> Collections.emptySet()), "receiver", $TF.fromSymbol($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("OptionalExpression")), $TS, p -> Collections.emptySet()), "optFirst", $TF.fromSymbol($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Expression")), $TS, p -> Collections.emptySet()), "second", $TF.fromSymbol($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("OptionalExpression")), $TS, p -> Collections.emptySet()), "optLast"); + TypeArg_named_Type_Name = $TF.constructor($TS, ADT_TypeArg, "named", $TF.fromSymbol($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Type")), $TS, p -> Collections.emptySet()), "type", ADT_Name, "name"); + Header_default_Tags_QualifiedName_iter_star_seps_Import = $TF.constructor($TS, ADT_Header, "default", $TF.fromSymbol($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Tags")), $TS, p -> Collections.emptySet()), "tags", $TF.fromSymbol($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("QualifiedName")), $TS, p -> Collections.emptySet()), "name", $RTF.nonTerminalType($RVF.constructor(RascalValueFactory.Symbol_IterStarSeps, $RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Import")), $RVF.list($RVF.constructor(RascalValueFactory.Symbol_Layouts, $RVF.string("LAYOUTLIST"))))), "imports"); + Expression_ifThenElse_Expression_Expression_Expression = $TF.constructor($TS, ADT_Expression, "ifThenElse", $TF.fromSymbol($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Expression")), $TS, p -> Collections.emptySet()), "condition", $TF.fromSymbol($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Expression")), $TS, p -> Collections.emptySet()), "thenExp", $TF.fromSymbol($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Expression")), $TS, p -> Collections.emptySet()), "elseExp"); + Case_default_Statement = $TF.constructor($TS, ADT_Case, "default", $TF.fromSymbol($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Statement")), $TS, p -> Collections.emptySet()), "statement"); + Statement_tryFinally_Statement_iter_seps_Catch_Statement = $TF.constructor($TS, ADT_Statement, "tryFinally", $TF.fromSymbol($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Statement")), $TS, p -> Collections.emptySet()), "body", $RTF.nonTerminalType($RVF.constructor(RascalValueFactory.Symbol_IterSeps, $RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Catch")), $RVF.list($RVF.constructor(RascalValueFactory.Symbol_Layouts, $RVF.string("LAYOUTLIST"))))), "handlers", $TF.fromSymbol($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Statement")), $TS, p -> Collections.emptySet()), "finallyBody"); + Declaration_variable_Tags_Visibility_Type_iter_seps_Variable = $TF.constructor($TS, ADT_Declaration, "variable", $TF.fromSymbol($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Tags")), $TS, p -> Collections.emptySet()), "tags", $TF.fromSymbol($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Visibility")), $TS, p -> Collections.emptySet()), "visibility", $TF.fromSymbol($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Type")), $TS, p -> Collections.emptySet()), "type", $RTF.nonTerminalType($RVF.constructor(RascalValueFactory.Symbol_IterSeps, $RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Variable")), $RVF.list($RVF.constructor(RascalValueFactory.Symbol_Layouts, $RVF.string("LAYOUTLIST")), $RVF.constructor(RascalValueFactory.Symbol_Lit, $RVF.string(",")), $RVF.constructor(RascalValueFactory.Symbol_Layouts, $RVF.string("LAYOUTLIST"))))), "variables"); + Target_empty_ = $TF.constructor($TS, ADT_Target, "empty"); + FunctionDeclaration_expression_Tags_Visibility_Signature_Expression = $TF.constructor($TS, ADT_FunctionDeclaration, "expression", $TF.fromSymbol($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Tags")), $TS, p -> Collections.emptySet()), "tags", $TF.fromSymbol($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Visibility")), $TS, p -> Collections.emptySet()), "visibility", $TF.fromSymbol($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Signature")), $TS, p -> Collections.emptySet()), "signature", $TF.fromSymbol($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Expression")), $TS, p -> Collections.emptySet()), "expression"); + Sym_caseInsensitiveLiteral_CaseInsensitiveStringConstant = $TF.constructor($TS, ADT_Sym, "caseInsensitiveLiteral", ADT_CaseInsensitiveStringConstant, "cistring"); + Pattern_anti_Pattern = $TF.constructor($TS, ADT_Pattern, "anti", $TF.fromSymbol($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Pattern")), $TS, p -> Collections.emptySet()), "pattern"); + ModuleParameters_default_iter_seps_TypeVar = $TF.constructor($TS, ADT_ModuleParameters, "default", $RTF.nonTerminalType($RVF.constructor(RascalValueFactory.Symbol_IterSeps, $RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("TypeVar")), $RVF.list($RVF.constructor(RascalValueFactory.Symbol_Layouts, $RVF.string("LAYOUTLIST")), $RVF.constructor(RascalValueFactory.Symbol_Lit, $RVF.string(",")), $RVF.constructor(RascalValueFactory.Symbol_Layouts, $RVF.string("LAYOUTLIST"))))), "parameters"); + Prod_all_Prod_Prod = $TF.constructor($TS, ADT_Prod, "all", $TF.fromSymbol($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Prod")), $TS, p -> Collections.emptySet()), "lhs", $TF.fromSymbol($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Prod")), $TS, p -> Collections.emptySet()), "rhs"); + BasicType_relation_ = $TF.constructor($TS, ADT_BasicType, "relation"); + Class_difference_Class_Class = $TF.constructor($TS, ADT_Class, "difference", $TF.fromSymbol($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Class")), $TS, p -> Collections.emptySet()), "lhs", $TF.fromSymbol($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Class")), $TS, p -> Collections.emptySet()), "rhs"); + FunctionBody_default_iter_star_seps_Statement = $TF.constructor($TS, ADT_FunctionBody, "default", $RTF.nonTerminalType($RVF.constructor(RascalValueFactory.Symbol_IterStarSeps, $RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Statement")), $RVF.list($RVF.constructor(RascalValueFactory.Symbol_Layouts, $RVF.string("LAYOUTLIST"))))), "statements"); + Case_patternWithAction_PatternWithAction = $TF.constructor($TS, ADT_Case, "patternWithAction", $TF.fromSymbol($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("PatternWithAction")), $TS, p -> Collections.emptySet()), "patternWithAction"); + Assignment_default_ = $TF.constructor($TS, ADT_Assignment, "default"); + Renaming_default_Name_Name = $TF.constructor($TS, ADT_Renaming, "default", ADT_Name, "from", ADT_Name, "to"); + Expression_subtraction_Expression_Expression = $TF.constructor($TS, ADT_Expression, "subtraction", $TF.fromSymbol($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Expression")), $TS, p -> Collections.emptySet()), "lhs", $TF.fromSymbol($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Expression")), $TS, p -> Collections.emptySet()), "rhs"); + StringTemplate_doWhile_iter_star_seps_Statement_StringMiddle_iter_star_seps_Statement_Expression = $TF.constructor($TS, ADT_StringTemplate, "doWhile", $RTF.nonTerminalType($RVF.constructor(RascalValueFactory.Symbol_IterStarSeps, $RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Statement")), $RVF.list($RVF.constructor(RascalValueFactory.Symbol_Layouts, $RVF.string("LAYOUTLIST"))))), "preStats", $TF.fromSymbol($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("StringMiddle")), $TS, p -> Collections.emptySet()), "body", $RTF.nonTerminalType($RVF.constructor(RascalValueFactory.Symbol_IterStarSeps, $RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Statement")), $RVF.list($RVF.constructor(RascalValueFactory.Symbol_Layouts, $RVF.string("LAYOUTLIST"))))), "postStats", $TF.fromSymbol($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Expression")), $TS, p -> Collections.emptySet()), "condition"); + Bound_default_Expression = $TF.constructor($TS, ADT_Bound, "default", $TF.fromSymbol($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Expression")), $TS, p -> Collections.emptySet()), "expression"); + Prod_reference_Name = $TF.constructor($TS, ADT_Prod, "reference", ADT_Name, "referenced"); + Expression_reifyType_Type = $TF.constructor($TS, ADT_Expression, "reifyType", $TF.fromSymbol($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Type")), $TS, p -> Collections.emptySet()), "type"); + Assignable_fieldAccess_Assignable_Name = $TF.constructor($TS, ADT_Assignable, "fieldAccess", $TF.fromSymbol($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Assignable")), $TS, p -> Collections.emptySet()), "receiver", ADT_Name, "field"); + BasicType_node_ = $TF.constructor($TS, ADT_BasicType, "node"); + Expression_remainder_Expression_Expression = $TF.constructor($TS, ADT_Expression, "remainder", $TF.fromSymbol($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Expression")), $TS, p -> Collections.emptySet()), "lhs", $TF.fromSymbol($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Expression")), $TS, p -> Collections.emptySet()), "rhs"); + Statement_while_Label_iter_seps_Expression_Statement = $TF.constructor($TS, ADT_Statement, "while", $TF.fromSymbol($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Label")), $TS, p -> Collections.emptySet()), "label", $RTF.nonTerminalType($RVF.constructor(RascalValueFactory.Symbol_IterSeps, $RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Expression")), $RVF.list($RVF.constructor(RascalValueFactory.Symbol_Layouts, $RVF.string("LAYOUTLIST")), $RVF.constructor(RascalValueFactory.Symbol_Lit, $RVF.string(",")), $RVF.constructor(RascalValueFactory.Symbol_Layouts, $RVF.string("LAYOUTLIST"))))), "conditions", $TF.fromSymbol($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Statement")), $TS, p -> Collections.emptySet()), "body"); + Expression_in_Expression_Expression = $TF.constructor($TS, ADT_Expression, "in", $TF.fromSymbol($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Expression")), $TS, p -> Collections.emptySet()), "lhs", $TF.fromSymbol($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Expression")), $TS, p -> Collections.emptySet()), "rhs"); + Commands_commandlist_iter_seps_start_EvalCommand = $TF.constructor($TS, ADT_Commands, "commandlist", $RTF.nonTerminalType($RVF.constructor(RascalValueFactory.Symbol_IterSeps, $RVF.constructor(RascalValueFactory.Symbol_Start, $RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("EvalCommand"))), $RVF.list($RVF.constructor(RascalValueFactory.Symbol_Layouts, $RVF.string("LAYOUTLIST"))))), "commands"); + BasicType_set_ = $TF.constructor($TS, ADT_BasicType, "set"); + Import_extend_ImportedModule = $TF.constructor($TS, ADT_Import, "extend", $TF.fromSymbol($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("ImportedModule")), $TS, p -> Collections.emptySet()), "module"); + ModuleActuals_default_iter_seps_Type = $TF.constructor($TS, ADT_ModuleActuals, "default", $RTF.nonTerminalType($RVF.constructor(RascalValueFactory.Symbol_IterSeps, $RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Type")), $RVF.list($RVF.constructor(RascalValueFactory.Symbol_Layouts, $RVF.string("LAYOUTLIST")), $RVF.constructor(RascalValueFactory.Symbol_Lit, $RVF.string(",")), $RVF.constructor(RascalValueFactory.Symbol_Layouts, $RVF.string("LAYOUTLIST"))))), "types"); + Start_absent_ = $TF.constructor($TS, ADT_Start, "absent"); + Statement_insert_DataTarget_Statement = $TF.constructor($TS, ADT_Statement, "insert", $TF.fromSymbol($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("DataTarget")), $TS, p -> Collections.emptySet()), "dataTarget", $TF.fromSymbol($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Statement")), $TS, p -> Collections.emptySet()), "statement"); + Statement_functionDeclaration_FunctionDeclaration = $TF.constructor($TS, ADT_Statement, "functionDeclaration", $TF.fromSymbol($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("FunctionDeclaration")), $TS, p -> Collections.emptySet()), "functionDeclaration"); + IntegerLiteral_hexIntegerLiteral_HexIntegerLiteral = $TF.constructor($TS, ADT_IntegerLiteral, "hexIntegerLiteral", ADT_HexIntegerLiteral, "hex"); + ProdModifier_bracket_ = $TF.constructor($TS, ADT_ProdModifier, "bracket"); + Expression_bracket_Expression = $TF.constructor($TS, ADT_Expression, "bracket", $TF.fromSymbol($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Expression")), $TS, p -> Collections.emptySet()), "expression"); + ProdModifier_tag_Tag = $TF.constructor($TS, ADT_ProdModifier, "tag", $TF.fromSymbol($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Tag")), $TS, p -> Collections.emptySet()), "tag"); + Assoc_right_ = $TF.constructor($TS, ADT_Assoc, "right"); + Expression_any_iter_seps_Expression = $TF.constructor($TS, ADT_Expression, "any", $RTF.nonTerminalType($RVF.constructor(RascalValueFactory.Symbol_IterSeps, $RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Expression")), $RVF.list($RVF.constructor(RascalValueFactory.Symbol_Layouts, $RVF.string("LAYOUTLIST")), $RVF.constructor(RascalValueFactory.Symbol_Lit, $RVF.string(",")), $RVF.constructor(RascalValueFactory.Symbol_Layouts, $RVF.string("LAYOUTLIST"))))), "generators"); + ConcretePart_bs_ = $TF.constructor($TS, ADT_ConcretePart, "bs"); + Expression_literal_Literal = $TF.constructor($TS, ADT_Expression, "literal", $TF.fromSymbol($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Literal")), $TS, p -> Collections.emptySet()), "literal"); + Expression_lessThan_Expression_Expression = $TF.constructor($TS, ADT_Expression, "lessThan", $TF.fromSymbol($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Expression")), $TS, p -> Collections.emptySet()), "lhs", $TF.fromSymbol($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Expression")), $TS, p -> Collections.emptySet()), "rhs"); + Statement_switch_Label_Expression_iter_seps_Case = $TF.constructor($TS, ADT_Statement, "switch", $TF.fromSymbol($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Label")), $TS, p -> Collections.emptySet()), "label", $TF.fromSymbol($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Expression")), $TS, p -> Collections.emptySet()), "expression", $RTF.nonTerminalType($RVF.constructor(RascalValueFactory.Symbol_IterSeps, $RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Case")), $RVF.list($RVF.constructor(RascalValueFactory.Symbol_Layouts, $RVF.string("LAYOUTLIST"))))), "cases"); + Bound_empty_ = $TF.constructor($TS, ADT_Bound, "empty"); + StringTemplate_ifThenElse_iter_seps_Expression_iter_star_seps_Statement_StringMiddle_iter_star_seps_Statement_iter_star_seps_Statement_StringMiddle_iter_star_seps_Statement = $TF.constructor($TS, ADT_StringTemplate, "ifThenElse", $RTF.nonTerminalType($RVF.constructor(RascalValueFactory.Symbol_IterSeps, $RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Expression")), $RVF.list($RVF.constructor(RascalValueFactory.Symbol_Layouts, $RVF.string("LAYOUTLIST")), $RVF.constructor(RascalValueFactory.Symbol_Lit, $RVF.string(",")), $RVF.constructor(RascalValueFactory.Symbol_Layouts, $RVF.string("LAYOUTLIST"))))), "conditions", $RTF.nonTerminalType($RVF.constructor(RascalValueFactory.Symbol_IterStarSeps, $RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Statement")), $RVF.list($RVF.constructor(RascalValueFactory.Symbol_Layouts, $RVF.string("LAYOUTLIST"))))), "preStatsThen", $TF.fromSymbol($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("StringMiddle")), $TS, p -> Collections.emptySet()), "thenString", $RTF.nonTerminalType($RVF.constructor(RascalValueFactory.Symbol_IterStarSeps, $RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Statement")), $RVF.list($RVF.constructor(RascalValueFactory.Symbol_Layouts, $RVF.string("LAYOUTLIST"))))), "postStatsThen", $RTF.nonTerminalType($RVF.constructor(RascalValueFactory.Symbol_IterStarSeps, $RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Statement")), $RVF.list($RVF.constructor(RascalValueFactory.Symbol_Layouts, $RVF.string("LAYOUTLIST"))))), "preStatsElse", $TF.fromSymbol($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("StringMiddle")), $TS, p -> Collections.emptySet()), "elseString", $RTF.nonTerminalType($RVF.constructor(RascalValueFactory.Symbol_IterStarSeps, $RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Statement")), $RVF.list($RVF.constructor(RascalValueFactory.Symbol_Layouts, $RVF.string("LAYOUTLIST"))))), "postStatsElse"); + ShellCommand_undeclare_QualifiedName = $TF.constructor($TS, ADT_ShellCommand, "undeclare", $TF.fromSymbol($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("QualifiedName")), $TS, p -> Collections.emptySet()), "name"); + Catch_default_Statement = $TF.constructor($TS, ADT_Catch, "default", $TF.fromSymbol($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Statement")), $TS, p -> Collections.emptySet()), "body"); + Import_syntax_SyntaxDefinition = $TF.constructor($TS, ADT_Import, "syntax", $TF.fromSymbol($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("SyntaxDefinition")), $TS, p -> Collections.emptySet()), "syntax"); + PatternWithAction_arbitrary_Pattern_Statement = $TF.constructor($TS, ADT_PatternWithAction, "arbitrary", $TF.fromSymbol($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Pattern")), $TS, p -> Collections.emptySet()), "pattern", $TF.fromSymbol($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Statement")), $TS, p -> Collections.emptySet()), "statement"); + Pattern_callOrTree_Pattern_iter_star_seps_Pattern_KeywordArguments_Pattern = $TF.constructor($TS, ADT_Pattern, "callOrTree", $TF.fromSymbol($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Pattern")), $TS, p -> Collections.emptySet()), "expression", $RTF.nonTerminalType($RVF.constructor(RascalValueFactory.Symbol_IterStarSeps, $RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Pattern")), $RVF.list($RVF.constructor(RascalValueFactory.Symbol_Layouts, $RVF.string("LAYOUTLIST")), $RVF.constructor(RascalValueFactory.Symbol_Lit, $RVF.string(",")), $RVF.constructor(RascalValueFactory.Symbol_Layouts, $RVF.string("LAYOUTLIST"))))), "arguments", ADT_KeywordArguments_1, "keywordArguments"); + Expression_match_Pattern_Expression = $TF.constructor($TS, ADT_Expression, "match", $TF.fromSymbol($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Pattern")), $TS, p -> Collections.emptySet()), "pattern", $TF.fromSymbol($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Expression")), $TS, p -> Collections.emptySet()), "expression"); + Statement_assert_Expression = $TF.constructor($TS, ADT_Statement, "assert", $TF.fromSymbol($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Expression")), $TS, p -> Collections.emptySet()), "expression"); + Expression_transitiveClosure_Expression = $TF.constructor($TS, ADT_Expression, "transitiveClosure", $TF.fromSymbol($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Expression")), $TS, p -> Collections.emptySet()), "argument"); + Formals_default_iter_star_seps_Pattern = $TF.constructor($TS, ADT_Formals, "default", $RTF.nonTerminalType($RVF.constructor(RascalValueFactory.Symbol_IterStarSeps, $RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Pattern")), $RVF.list($RVF.constructor(RascalValueFactory.Symbol_Layouts, $RVF.string("LAYOUTLIST")), $RVF.constructor(RascalValueFactory.Symbol_Lit, $RVF.string(",")), $RVF.constructor(RascalValueFactory.Symbol_Layouts, $RVF.string("LAYOUTLIST"))))), "formals"); + UnicodeEscape_utf16_ = $TF.constructor($TS, ADT_UnicodeEscape, "utf16"); + Expression_callOrTree_Expression_iter_star_seps_Expression_KeywordArguments_Expression = $TF.constructor($TS, ADT_Expression, "callOrTree", $TF.fromSymbol($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Expression")), $TS, p -> Collections.emptySet()), "expression", $RTF.nonTerminalType($RVF.constructor(RascalValueFactory.Symbol_IterStarSeps, $RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Expression")), $RVF.list($RVF.constructor(RascalValueFactory.Symbol_Layouts, $RVF.string("LAYOUTLIST")), $RVF.constructor(RascalValueFactory.Symbol_Lit, $RVF.string(",")), $RVF.constructor(RascalValueFactory.Symbol_Layouts, $RVF.string("LAYOUTLIST"))))), "arguments", ADT_KeywordArguments_1, "keywordArguments"); + Literal_integer_IntegerLiteral = $TF.constructor($TS, ADT_Literal, "integer", $TF.fromSymbol($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("IntegerLiteral")), $TS, p -> Collections.emptySet()), "integerLiteral"); + Statement_fail_Target = $TF.constructor($TS, ADT_Statement, "fail", $TF.fromSymbol($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Target")), $TS, p -> Collections.emptySet()), "target"); + StringTemplate_while_Expression_iter_star_seps_Statement_StringMiddle_iter_star_seps_Statement = $TF.constructor($TS, ADT_StringTemplate, "while", $TF.fromSymbol($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Expression")), $TS, p -> Collections.emptySet()), "condition", $RTF.nonTerminalType($RVF.constructor(RascalValueFactory.Symbol_IterStarSeps, $RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Statement")), $RVF.list($RVF.constructor(RascalValueFactory.Symbol_Layouts, $RVF.string("LAYOUTLIST"))))), "preStats", $TF.fromSymbol($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("StringMiddle")), $TS, p -> Collections.emptySet()), "body", $RTF.nonTerminalType($RVF.constructor(RascalValueFactory.Symbol_IterStarSeps, $RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Statement")), $RVF.list($RVF.constructor(RascalValueFactory.Symbol_Layouts, $RVF.string("LAYOUTLIST"))))), "postStats"); + Expression_or_Expression_Expression = $TF.constructor($TS, ADT_Expression, "or", $TF.fromSymbol($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Expression")), $TS, p -> Collections.emptySet()), "lhs", $TF.fromSymbol($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Expression")), $TS, p -> Collections.emptySet()), "rhs"); + Expression_is_Expression_Name = $TF.constructor($TS, ADT_Expression, "is", $TF.fromSymbol($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Expression")), $TS, p -> Collections.emptySet()), "expression", ADT_Name, "name"); + Strategy_topDownBreak_ = $TF.constructor($TS, ADT_Strategy, "topDownBreak"); + Visit_givenStrategy_Strategy_Expression_iter_seps_Case = $TF.constructor($TS, ADT_Visit, "givenStrategy", $TF.fromSymbol($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Strategy")), $TS, p -> Collections.emptySet()), "strategy", $TF.fromSymbol($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Expression")), $TS, p -> Collections.emptySet()), "subject", $RTF.nonTerminalType($RVF.constructor(RascalValueFactory.Symbol_IterSeps, $RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Case")), $RVF.list($RVF.constructor(RascalValueFactory.Symbol_Layouts, $RVF.string("LAYOUTLIST"))))), "cases"); + ConcretePart_bq_ = $TF.constructor($TS, ADT_ConcretePart, "bq"); + Expression_fieldUpdate_Expression_Name_Expression = $TF.constructor($TS, ADT_Expression, "fieldUpdate", $TF.fromSymbol($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Expression")), $TS, p -> Collections.emptySet()), "expression", ADT_Name, "key", $TF.fromSymbol($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Expression")), $TS, p -> Collections.emptySet()), "replacement"); + Output_stderrOutput_ = $TF.constructor($TS, ADT_Output, "stderrOutput"); + ImportedModule_default_QualifiedName = $TF.constructor($TS, ADT_ImportedModule, "default", $TF.fromSymbol($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("QualifiedName")), $TS, p -> Collections.emptySet()), "name"); + Type_variable_TypeVar = $TF.constructor($TS, ADT_Type, "variable", $TF.fromSymbol($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("TypeVar")), $TS, p -> Collections.emptySet()), "typeVar"); + Pattern_map_iter_star_seps_Mapping_Pattern = $TF.constructor($TS, ADT_Pattern, "map", $RTF.nonTerminalType($RVF.constructor(RascalValueFactory.Symbol_IterStarSeps, $RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Mapping")), $RVF.list($RVF.constructor(RascalValueFactory.Symbol_Layouts, $RVF.string("LAYOUTLIST")), $RVF.constructor(RascalValueFactory.Symbol_Lit, $RVF.string(",")), $RVF.constructor(RascalValueFactory.Symbol_Layouts, $RVF.string("LAYOUTLIST"))))), "mappings"); + FunctionDeclaration_default_Tags_Visibility_Signature_FunctionBody = $TF.constructor($TS, ADT_FunctionDeclaration, "default", $TF.fromSymbol($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Tags")), $TS, p -> Collections.emptySet()), "tags", $TF.fromSymbol($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Visibility")), $TS, p -> Collections.emptySet()), "visibility", $TF.fromSymbol($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Signature")), $TS, p -> Collections.emptySet()), "signature", $TF.fromSymbol($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("FunctionBody")), $TS, p -> Collections.emptySet()), "body"); + Type_user_UserType = $TF.constructor($TS, ADT_Type, "user", $TF.fromSymbol($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("UserType")), $TS, p -> Collections.emptySet()), "user"); + Kind_variable_ = $TF.constructor($TS, ADT_Kind, "variable"); + Expression_it_Expression = $TF.constructor($TS, ADT_Expression, "it", $TF.fromSymbol($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Expression")), $TS, p -> Collections.emptySet())); + Module_default_Header_Body = $TF.constructor($TS, ADT_Module, "default", $TF.fromSymbol($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Header")), $TS, p -> Collections.emptySet()), "header", $TF.fromSymbol($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Body")), $TS, p -> Collections.emptySet()), "body"); + Statement_assertWithMessage_Expression_Expression = $TF.constructor($TS, ADT_Statement, "assertWithMessage", $TF.fromSymbol($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Expression")), $TS, p -> Collections.emptySet()), "expression", $TF.fromSymbol($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Expression")), $TS, p -> Collections.emptySet()), "message"); + Sym_endOfLine_Sym = $TF.constructor($TS, ADT_Sym, "endOfLine", $TF.fromSymbol($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Sym")), $TS, p -> Collections.emptySet()), "symbol"); + Command_expression_Expression = $TF.constructor($TS, ADT_Command, "expression", $TF.fromSymbol($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Expression")), $TS, p -> Collections.emptySet()), "expression"); + Label_default_Name = $TF.constructor($TS, ADT_Label, "default", ADT_Name, "name"); + Statement_ifThen_Label_iter_seps_Expression_Statement = $TF.constructor($TS, ADT_Statement, "ifThen", $TF.fromSymbol($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Label")), $TS, p -> Collections.emptySet()), "label", $RTF.nonTerminalType($RVF.constructor(RascalValueFactory.Symbol_IterSeps, $RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Expression")), $RVF.list($RVF.constructor(RascalValueFactory.Symbol_Layouts, $RVF.string("LAYOUTLIST")), $RVF.constructor(RascalValueFactory.Symbol_Lit, $RVF.string(",")), $RVF.constructor(RascalValueFactory.Symbol_Layouts, $RVF.string("LAYOUTLIST"))))), "conditions", $TF.fromSymbol($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Statement")), $TS, p -> Collections.emptySet()), "thenStatement"); + Mapping_1_default_ = $TF.constructor($TS, ADT_Mapping_1, "default"); + Statement_globalDirective_Type_iter_seps_QualifiedName = $TF.constructor($TS, ADT_Statement, "globalDirective", $TF.fromSymbol($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Type")), $TS, p -> Collections.emptySet()), "type", $RTF.nonTerminalType($RVF.constructor(RascalValueFactory.Symbol_IterSeps, $RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("QualifiedName")), $RVF.list($RVF.constructor(RascalValueFactory.Symbol_Layouts, $RVF.string("LAYOUTLIST")), $RVF.constructor(RascalValueFactory.Symbol_Lit, $RVF.string(",")), $RVF.constructor(RascalValueFactory.Symbol_Layouts, $RVF.string("LAYOUTLIST"))))), "names"); + LocationLiteral_default_ProtocolPart_PathPart = $TF.constructor($TS, ADT_LocationLiteral, "default", $TF.fromSymbol($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("ProtocolPart")), $TS, p -> Collections.emptySet()), "protocolPart", $TF.fromSymbol($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("PathPart")), $TS, p -> Collections.emptySet()), "pathPart"); + ConcretePart_lt_ = $TF.constructor($TS, ADT_ConcretePart, "lt"); + Field_index_IntegerLiteral = $TF.constructor($TS, ADT_Field, "index", $TF.fromSymbol($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("IntegerLiteral")), $TS, p -> Collections.emptySet()), "fieldIndex"); + Expression_implication_Expression_Expression = $TF.constructor($TS, ADT_Expression, "implication", $TF.fromSymbol($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Expression")), $TS, p -> Collections.emptySet()), "lhs", $TF.fromSymbol($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Expression")), $TS, p -> Collections.emptySet()), "rhs"); + Tag_default_Name_TagString = $TF.constructor($TS, ADT_Tag, "default", ADT_Name, "name", ADT_TagString, "contents"); + Expression_nonEmptyBlock_iter_seps_Statement = $TF.constructor($TS, ADT_Expression, "nonEmptyBlock", $RTF.nonTerminalType($RVF.constructor(RascalValueFactory.Symbol_IterSeps, $RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Statement")), $RVF.list($RVF.constructor(RascalValueFactory.Symbol_Layouts, $RVF.string("LAYOUTLIST"))))), "statements"); + FunctionModifier_test_ = $TF.constructor($TS, ADT_FunctionModifier, "test"); + Expression_greaterThan_Expression_Expression = $TF.constructor($TS, ADT_Expression, "greaterThan", $TF.fromSymbol($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Expression")), $TS, p -> Collections.emptySet()), "lhs", $TF.fromSymbol($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Expression")), $TS, p -> Collections.emptySet()), "rhs"); + Class_union_Class_Class = $TF.constructor($TS, ADT_Class, "union", $TF.fromSymbol($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Class")), $TS, p -> Collections.emptySet()), "lhs", $TF.fromSymbol($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Class")), $TS, p -> Collections.emptySet()), "rhs"); + BasicType_rational_ = $TF.constructor($TS, ADT_BasicType, "rational"); + LocalVariableDeclaration_dynamic_Declarator = $TF.constructor($TS, ADT_LocalVariableDeclaration, "dynamic", $TF.fromSymbol($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Declarator")), $TS, p -> Collections.emptySet()), "declarator"); + Strategy_outermost_ = $TF.constructor($TS, ADT_Strategy, "outermost"); + Type_basic_BasicType = $TF.constructor($TS, ADT_Type, "basic", $TF.fromSymbol($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("BasicType")), $TS, p -> Collections.emptySet()), "basic"); + Statement_nonEmptyBlock_Label_iter_seps_Statement = $TF.constructor($TS, ADT_Statement, "nonEmptyBlock", $TF.fromSymbol($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Label")), $TS, p -> Collections.emptySet()), "label", $RTF.nonTerminalType($RVF.constructor(RascalValueFactory.Symbol_IterSeps, $RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Statement")), $RVF.list($RVF.constructor(RascalValueFactory.Symbol_Layouts, $RVF.string("LAYOUTLIST"))))), "statements"); + Parameters_default_Formals_KeywordFormals = $TF.constructor($TS, ADT_Parameters, "default", $TF.fromSymbol($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Formals")), $TS, p -> Collections.emptySet()), "formals", $TF.fromSymbol($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("KeywordFormals")), $TS, p -> Collections.emptySet()), "keywordFormals"); + Sym_alternative_Sym_iter_seps_Sym = $TF.constructor($TS, ADT_Sym, "alternative", $TF.fromSymbol($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Sym")), $TS, p -> Collections.emptySet()), "first", $RTF.nonTerminalType($RVF.constructor(RascalValueFactory.Symbol_IterSeps, $RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Sym")), $RVF.list($RVF.constructor(RascalValueFactory.Symbol_Layouts, $RVF.string("LAYOUTLIST")), $RVF.constructor(RascalValueFactory.Symbol_Lit, $RVF.string("|")), $RVF.constructor(RascalValueFactory.Symbol_Layouts, $RVF.string("LAYOUTLIST"))))), "alternatives"); + Sym_follow_Sym_Sym = $TF.constructor($TS, ADT_Sym, "follow", $TF.fromSymbol($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Sym")), $TS, p -> Collections.emptySet()), "symbol", $TF.fromSymbol($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Sym")), $TS, p -> Collections.emptySet()), "match"); + Expression_product_Expression_Expression = $TF.constructor($TS, ADT_Expression, "product", $TF.fromSymbol($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Expression")), $TS, p -> Collections.emptySet()), "lhs", $TF.fromSymbol($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Expression")), $TS, p -> Collections.emptySet()), "rhs"); + ShellCommand_quit_ = $TF.constructor($TS, ADT_ShellCommand, "quit"); + Expression_addition_Expression_Expression = $TF.constructor($TS, ADT_Expression, "addition", $TF.fromSymbol($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Expression")), $TS, p -> Collections.emptySet()), "lhs", $TF.fromSymbol($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Expression")), $TS, p -> Collections.emptySet()), "rhs"); + ImportedModule_actuals_QualifiedName_ModuleActuals = $TF.constructor($TS, ADT_ImportedModule, "actuals", $TF.fromSymbol($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("QualifiedName")), $TS, p -> Collections.emptySet()), "name", $TF.fromSymbol($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("ModuleActuals")), $TS, p -> Collections.emptySet()), "actuals"); + TypeArg_default_Type = $TF.constructor($TS, ADT_TypeArg, "default", $TF.fromSymbol($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Type")), $TS, p -> Collections.emptySet()), "type"); + Expression_all_iter_seps_Expression = $TF.constructor($TS, ADT_Expression, "all", $RTF.nonTerminalType($RVF.constructor(RascalValueFactory.Symbol_IterSeps, $RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Expression")), $RVF.list($RVF.constructor(RascalValueFactory.Symbol_Layouts, $RVF.string("LAYOUTLIST")), $RVF.constructor(RascalValueFactory.Symbol_Lit, $RVF.string(",")), $RVF.constructor(RascalValueFactory.Symbol_Layouts, $RVF.string("LAYOUTLIST"))))), "generators"); + Pattern_asType_Type_Pattern = $TF.constructor($TS, ADT_Pattern, "asType", $TF.fromSymbol($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Type")), $TS, p -> Collections.emptySet()), "type", $TF.fromSymbol($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Pattern")), $TS, p -> Collections.emptySet()), "argument"); + Visibility_public_ = $TF.constructor($TS, ADT_Visibility, "public"); + ConcreteHole_one_Sym_Name = $TF.constructor($TS, ADT_ConcreteHole, "one", $TF.fromSymbol($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Sym")), $TS, p -> Collections.emptySet()), "symbol", ADT_Name, "name"); + Tag_empty_Name = $TF.constructor($TS, ADT_Tag, "empty", ADT_Name, "name"); + KeywordArguments_1_default_OptionalComma_iter_seps_KeywordArgument_1 = $TF.constructor($TS, ADT_KeywordArguments_1, "default", ADT_OptionalComma, "optionalComma", $RTF.nonTerminalType($RVF.constructor(RascalValueFactory.Symbol_IterSeps, $RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("KeywordArgument")), $RVF.list($RVF.constructor(RascalValueFactory.Symbol_Layouts, $RVF.string("LAYOUTLIST")), $RVF.constructor(RascalValueFactory.Symbol_Lit, $RVF.string(",")), $RVF.constructor(RascalValueFactory.Symbol_Layouts, $RVF.string("LAYOUTLIST"))))), "keywordArgumentList"); + CommonKeywordParameters_absent_ = $TF.constructor($TS, ADT_CommonKeywordParameters, "absent"); + Range_fromTo_Char_Char = $TF.constructor($TS, ADT_Range, "fromTo", ADT_Char, "start", ADT_Char, "end"); + Command_statement_Statement = $TF.constructor($TS, ADT_Command, "statement", $TF.fromSymbol($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Statement")), $TS, p -> Collections.emptySet()), "statement"); + EvalCommand_import_Import = $TF.constructor($TS, ADT_EvalCommand, "import", $TF.fromSymbol($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Import")), $TS, p -> Collections.emptySet()), "imported"); + Sym_unequal_Sym_Sym = $TF.constructor($TS, ADT_Sym, "unequal", $TF.fromSymbol($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Sym")), $TS, p -> Collections.emptySet()), "symbol", $TF.fromSymbol($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Sym")), $TS, p -> Collections.emptySet()), "match"); + Comprehension_list_iter_seps_Expression_iter_seps_Expression = $TF.constructor($TS, ADT_Comprehension, "list", $RTF.nonTerminalType($RVF.constructor(RascalValueFactory.Symbol_IterSeps, $RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Expression")), $RVF.list($RVF.constructor(RascalValueFactory.Symbol_Layouts, $RVF.string("LAYOUTLIST")), $RVF.constructor(RascalValueFactory.Symbol_Lit, $RVF.string(",")), $RVF.constructor(RascalValueFactory.Symbol_Layouts, $RVF.string("LAYOUTLIST"))))), "results", $RTF.nonTerminalType($RVF.constructor(RascalValueFactory.Symbol_IterSeps, $RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Expression")), $RVF.list($RVF.constructor(RascalValueFactory.Symbol_Layouts, $RVF.string("LAYOUTLIST")), $RVF.constructor(RascalValueFactory.Symbol_Lit, $RVF.string(",")), $RVF.constructor(RascalValueFactory.Symbol_Layouts, $RVF.string("LAYOUTLIST"))))), "generators"); + Catch_binding_Pattern_Statement = $TF.constructor($TS, ADT_Catch, "binding", $TF.fromSymbol($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Pattern")), $TS, p -> Collections.emptySet()), "pattern", $TF.fromSymbol($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Statement")), $TS, p -> Collections.emptySet()), "body"); + Statement_break_Target = $TF.constructor($TS, ADT_Statement, "break", $TF.fromSymbol($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Target")), $TS, p -> Collections.emptySet()), "target"); + SyntaxDefinition_lexical_Sym_Prod = $TF.constructor($TS, ADT_SyntaxDefinition, "lexical", $TF.fromSymbol($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Sym")), $TS, p -> Collections.emptySet()), "defined", $TF.fromSymbol($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Prod")), $TS, p -> Collections.emptySet()), "production"); + Assignable_slice_Assignable_OptionalExpression_OptionalExpression = $TF.constructor($TS, ADT_Assignable, "slice", $TF.fromSymbol($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Assignable")), $TS, p -> Collections.emptySet()), "receiver", $TF.fromSymbol($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("OptionalExpression")), $TS, p -> Collections.emptySet()), "optFirst", $TF.fromSymbol($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("OptionalExpression")), $TS, p -> Collections.emptySet()), "optLast"); + Sym_notPrecede_Sym_Sym = $TF.constructor($TS, ADT_Sym, "notPrecede", $TF.fromSymbol($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Sym")), $TS, p -> Collections.emptySet()), "match", $TF.fromSymbol($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Sym")), $TS, p -> Collections.emptySet()), "symbol"); + Assoc_associative_ = $TF.constructor($TS, ADT_Assoc, "associative"); + Expression_map_iter_star_seps_Mapping_Expression = $TF.constructor($TS, ADT_Expression, "map", $RTF.nonTerminalType($RVF.constructor(RascalValueFactory.Symbol_IterStarSeps, $RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Mapping")), $RVF.list($RVF.constructor(RascalValueFactory.Symbol_Layouts, $RVF.string("LAYOUTLIST")), $RVF.constructor(RascalValueFactory.Symbol_Lit, $RVF.string(",")), $RVF.constructor(RascalValueFactory.Symbol_Layouts, $RVF.string("LAYOUTLIST"))))), "mappings"); + DataTarget_empty_ = $TF.constructor($TS, ADT_DataTarget, "empty"); + EvalCommand_statement_Statement = $TF.constructor($TS, ADT_EvalCommand, "statement", $TF.fromSymbol($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Statement")), $TS, p -> Collections.emptySet()), "statement"); + Expression_range_Expression_Expression = $TF.constructor($TS, ADT_Expression, "range", $TF.fromSymbol($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Expression")), $TS, p -> Collections.emptySet()), "first", $TF.fromSymbol($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Expression")), $TS, p -> Collections.emptySet()), "last"); + Expression_appendAfter_Expression_Expression = $TF.constructor($TS, ADT_Expression, "appendAfter", $TF.fromSymbol($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Expression")), $TS, p -> Collections.emptySet()), "lhs", $TF.fromSymbol($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Expression")), $TS, p -> Collections.emptySet()), "rhs"); + Expression_enumerator_Pattern_Expression = $TF.constructor($TS, ADT_Expression, "enumerator", $TF.fromSymbol($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Pattern")), $TS, p -> Collections.emptySet()), "pattern", $TF.fromSymbol($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Expression")), $TS, p -> Collections.emptySet()), "expression"); + Sym_notFollow_Sym_Sym = $TF.constructor($TS, ADT_Sym, "notFollow", $TF.fromSymbol($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Sym")), $TS, p -> Collections.emptySet()), "symbol", $TF.fromSymbol($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Sym")), $TS, p -> Collections.emptySet()), "match"); + ShellCommand_clear_ = $TF.constructor($TS, ADT_ShellCommand, "clear"); + Assignment_append_ = $TF.constructor($TS, ADT_Assignment, "append"); + Type_function_FunctionType = $TF.constructor($TS, ADT_Type, "function", $TF.fromSymbol($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("FunctionType")), $TS, p -> Collections.emptySet()), "function"); + Assignable_subscript_Assignable_Expression = $TF.constructor($TS, ADT_Assignable, "subscript", $TF.fromSymbol($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Assignable")), $TS, p -> Collections.emptySet()), "receiver", $TF.fromSymbol($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Expression")), $TS, p -> Collections.emptySet()), "subscript"); + KeywordFormals_none_ = $TF.constructor($TS, ADT_KeywordFormals, "none"); + Command_import_Import = $TF.constructor($TS, ADT_Command, "import", $TF.fromSymbol($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Import")), $TS, p -> Collections.emptySet()), "imported"); + Sym_startOfLine_Sym = $TF.constructor($TS, ADT_Sym, "startOfLine", $TF.fromSymbol($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Sym")), $TS, p -> Collections.emptySet()), "symbol"); + FunctionDeclaration_abstract_Tags_Visibility_Signature = $TF.constructor($TS, ADT_FunctionDeclaration, "abstract", $TF.fromSymbol($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Tags")), $TS, p -> Collections.emptySet()), "tags", $TF.fromSymbol($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Visibility")), $TS, p -> Collections.emptySet()), "visibility", $TF.fromSymbol($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Signature")), $TS, p -> Collections.emptySet()), "signature"); + Kind_anno_ = $TF.constructor($TS, ADT_Kind, "anno"); + Expression_noMatch_Pattern_Expression = $TF.constructor($TS, ADT_Expression, "noMatch", $TF.fromSymbol($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Pattern")), $TS, p -> Collections.emptySet()), "pattern", $TF.fromSymbol($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Expression")), $TS, p -> Collections.emptySet()), "expression"); + Declaration_function_FunctionDeclaration = $TF.constructor($TS, ADT_Declaration, "function", $TF.fromSymbol($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("FunctionDeclaration")), $TS, p -> Collections.emptySet()), "functionDeclaration"); + Expression_visit_Label_Visit = $TF.constructor($TS, ADT_Expression, "visit", $TF.fromSymbol($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Label")), $TS, p -> Collections.emptySet()), "label", $TF.fromSymbol($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Visit")), $TS, p -> Collections.emptySet()), "visit"); + StringTail_midInterpolated_MidStringChars_Expression_StringTail = $TF.constructor($TS, ADT_StringTail, "midInterpolated", ADT_MidStringChars, "mid", $TF.fromSymbol($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Expression")), $TS, p -> Collections.emptySet()), "expression", $TF.fromSymbol($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("StringTail")), $TS, p -> Collections.emptySet()), "tail"); + SyntaxDefinition_language_Start_Sym_Prod = $TF.constructor($TS, ADT_SyntaxDefinition, "language", $TF.fromSymbol($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Start")), $TS, p -> Collections.emptySet()), "start", $TF.fromSymbol($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Sym")), $TS, p -> Collections.emptySet()), "defined", $TF.fromSymbol($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Prod")), $TS, p -> Collections.emptySet()), "production"); + BasicType_bool_ = $TF.constructor($TS, ADT_BasicType, "bool"); + Assignment_intersection_ = $TF.constructor($TS, ADT_Assignment, "intersection"); + Sym_sequence_Sym_iter_seps_Sym = $TF.constructor($TS, ADT_Sym, "sequence", $TF.fromSymbol($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Sym")), $TS, p -> Collections.emptySet()), "first", $RTF.nonTerminalType($RVF.constructor(RascalValueFactory.Symbol_IterSeps, $RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Sym")), $RVF.list($RVF.constructor(RascalValueFactory.Symbol_Layouts, $RVF.string("LAYOUTLIST"))))), "sequence"); + Assignment_product_ = $TF.constructor($TS, ADT_Assignment, "product"); + Prod_first_Prod_Prod = $TF.constructor($TS, ADT_Prod, "first", $TF.fromSymbol($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Prod")), $TS, p -> Collections.emptySet()), "lhs", $TF.fromSymbol($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Prod")), $TS, p -> Collections.emptySet()), "rhs"); + Pattern_concrete_Concrete = $TF.constructor($TS, ADT_Pattern, "concrete", ADT_Concrete, "concrete"); + FunctionModifiers_modifierlist_iter_star_seps_FunctionModifier = $TF.constructor($TS, ADT_FunctionModifiers, "modifierlist", $RTF.nonTerminalType($RVF.constructor(RascalValueFactory.Symbol_IterStarSeps, $RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("FunctionModifier")), $RVF.list($RVF.constructor(RascalValueFactory.Symbol_Layouts, $RVF.string("LAYOUTLIST"))))), "modifiers"); + Expression_insertBefore_Expression_Expression = $TF.constructor($TS, ADT_Expression, "insertBefore", $TF.fromSymbol($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Expression")), $TS, p -> Collections.emptySet()), "lhs", $TF.fromSymbol($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Expression")), $TS, p -> Collections.emptySet()), "rhs"); + Toplevel_givenVisibility_Declaration = $TF.constructor($TS, ADT_Toplevel, "givenVisibility", $TF.fromSymbol($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Declaration")), $TS, p -> Collections.emptySet()), "declaration"); + Statement_emptyStatement_ = $TF.constructor($TS, ADT_Statement, "emptyStatement"); + Declaration_annotation_Tags_Visibility_Type_Type_Name = $TF.constructor($TS, ADT_Declaration, "annotation", $TF.fromSymbol($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Tags")), $TS, p -> Collections.emptySet()), "tags", $TF.fromSymbol($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Visibility")), $TS, p -> Collections.emptySet()), "visibility", $TF.fromSymbol($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Type")), $TS, p -> Collections.emptySet()), "annoType", $TF.fromSymbol($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Type")), $TS, p -> Collections.emptySet()), "onType", ADT_Name, "name"); + DataTarget_labeled_Name = $TF.constructor($TS, ADT_DataTarget, "labeled", ADT_Name, "label"); + PathPart_interpolated_PrePathChars_Expression_PathTail = $TF.constructor($TS, ADT_PathPart, "interpolated", ADT_PrePathChars, "pre", $TF.fromSymbol($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Expression")), $TS, p -> Collections.emptySet()), "expression", $TF.fromSymbol($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("PathTail")), $TS, p -> Collections.emptySet()), "tail"); + FunctionModifier_java_ = $TF.constructor($TS, ADT_FunctionModifier, "java"); + ProtocolTail_mid_MidProtocolChars_Expression_ProtocolTail = $TF.constructor($TS, ADT_ProtocolTail, "mid", ADT_MidProtocolChars, "mid", $TF.fromSymbol($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Expression")), $TS, p -> Collections.emptySet()), "expression", $TF.fromSymbol($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("ProtocolTail")), $TS, p -> Collections.emptySet()), "tail"); + Variant_nAryConstructor_Name_iter_star_seps_TypeArg_KeywordFormals = $TF.constructor($TS, ADT_Variant, "nAryConstructor", ADT_Name, "name", $RTF.nonTerminalType($RVF.constructor(RascalValueFactory.Symbol_IterStarSeps, $RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("TypeArg")), $RVF.list($RVF.constructor(RascalValueFactory.Symbol_Layouts, $RVF.string("LAYOUTLIST")), $RVF.constructor(RascalValueFactory.Symbol_Lit, $RVF.string(",")), $RVF.constructor(RascalValueFactory.Symbol_Layouts, $RVF.string("LAYOUTLIST"))))), "arguments", $TF.fromSymbol($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("KeywordFormals")), $TS, p -> Collections.emptySet()), "keywordArguments"); + Pattern_set_iter_star_seps_Pattern = $TF.constructor($TS, ADT_Pattern, "set", $RTF.nonTerminalType($RVF.constructor(RascalValueFactory.Symbol_IterStarSeps, $RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Pattern")), $RVF.list($RVF.constructor(RascalValueFactory.Symbol_Layouts, $RVF.string("LAYOUTLIST")), $RVF.constructor(RascalValueFactory.Symbol_Lit, $RVF.string(",")), $RVF.constructor(RascalValueFactory.Symbol_Layouts, $RVF.string("LAYOUTLIST"))))), "elements0"); + Expression_division_Expression_Expression = $TF.constructor($TS, ADT_Expression, "division", $TF.fromSymbol($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Expression")), $TS, p -> Collections.emptySet()), "lhs", $TF.fromSymbol($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Expression")), $TS, p -> Collections.emptySet()), "rhs"); + Sym_except_Sym_NonterminalLabel = $TF.constructor($TS, ADT_Sym, "except", $TF.fromSymbol($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Sym")), $TS, p -> Collections.emptySet()), "symbol", ADT_NonterminalLabel, "label"); + Type_selector_DataTypeSelector = $TF.constructor($TS, ADT_Type, "selector", $TF.fromSymbol($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("DataTypeSelector")), $TS, p -> Collections.emptySet()), "selector"); + KeywordFormals_default_OptionalComma_iter_seps_KeywordFormal = $TF.constructor($TS, ADT_KeywordFormals, "default", ADT_OptionalComma, "optionalComma", $RTF.nonTerminalType($RVF.constructor(RascalValueFactory.Symbol_IterSeps, $RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("KeywordFormal")), $RVF.list($RVF.constructor(RascalValueFactory.Symbol_Layouts, $RVF.string("LAYOUTLIST")), $RVF.constructor(RascalValueFactory.Symbol_Lit, $RVF.string(",")), $RVF.constructor(RascalValueFactory.Symbol_Layouts, $RVF.string("LAYOUTLIST"))))), "keywordFormalList"); + Expression_notIn_Expression_Expression = $TF.constructor($TS, ADT_Expression, "notIn", $TF.fromSymbol($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Expression")), $TS, p -> Collections.emptySet()), "lhs", $TF.fromSymbol($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Expression")), $TS, p -> Collections.emptySet()), "rhs"); + Sym_parametrized_Nonterminal_iter_seps_Sym = $TF.constructor($TS, ADT_Sym, "parametrized", ADT_Nonterminal, "nonterminal", $RTF.nonTerminalType($RVF.constructor(RascalValueFactory.Symbol_IterSeps, $RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Sym")), $RVF.list($RVF.constructor(RascalValueFactory.Symbol_Layouts, $RVF.string("LAYOUTLIST")), $RVF.constructor(RascalValueFactory.Symbol_Lit, $RVF.string(",")), $RVF.constructor(RascalValueFactory.Symbol_Layouts, $RVF.string("LAYOUTLIST"))))), "parameters"); + TypeVar_bounded_Name_Type = $TF.constructor($TS, ADT_TypeVar, "bounded", ADT_Name, "name", $TF.fromSymbol($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Type")), $TS, p -> Collections.emptySet()), "bound"); + BasicType_loc_ = $TF.constructor($TS, ADT_BasicType, "loc"); + Literal_real_RealLiteral = $TF.constructor($TS, ADT_Literal, "real", ADT_RealLiteral, "realLiteral"); + KeywordArgument_1_default_Name = $TF.constructor($TS, ADT_KeywordArgument_1, "default", ADT_Name, "name"); + Pattern_typedVariable_Type_Name = $TF.constructor($TS, ADT_Pattern, "typedVariable", $TF.fromSymbol($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Type")), $TS, p -> Collections.emptySet()), "type", ADT_Name, "name"); + Assignable_variable_QualifiedName = $TF.constructor($TS, ADT_Assignable, "variable", $TF.fromSymbol($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("QualifiedName")), $TS, p -> Collections.emptySet()), "qualifiedName"); + Header_parameters_Tags_QualifiedName_ModuleParameters_iter_star_seps_Import = $TF.constructor($TS, ADT_Header, "parameters", $TF.fromSymbol($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Tags")), $TS, p -> Collections.emptySet()), "tags", $TF.fromSymbol($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("QualifiedName")), $TS, p -> Collections.emptySet()), "name", $TF.fromSymbol($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("ModuleParameters")), $TS, p -> Collections.emptySet()), "params", $RTF.nonTerminalType($RVF.constructor(RascalValueFactory.Symbol_IterStarSeps, $RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Import")), $RVF.list($RVF.constructor(RascalValueFactory.Symbol_Layouts, $RVF.string("LAYOUTLIST"))))), "imports"); + StringTemplate_for_iter_seps_Expression_iter_star_seps_Statement_StringMiddle_iter_star_seps_Statement = $TF.constructor($TS, ADT_StringTemplate, "for", $RTF.nonTerminalType($RVF.constructor(RascalValueFactory.Symbol_IterSeps, $RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Expression")), $RVF.list($RVF.constructor(RascalValueFactory.Symbol_Layouts, $RVF.string("LAYOUTLIST")), $RVF.constructor(RascalValueFactory.Symbol_Lit, $RVF.string(",")), $RVF.constructor(RascalValueFactory.Symbol_Layouts, $RVF.string("LAYOUTLIST"))))), "generators", $RTF.nonTerminalType($RVF.constructor(RascalValueFactory.Symbol_IterStarSeps, $RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Statement")), $RVF.list($RVF.constructor(RascalValueFactory.Symbol_Layouts, $RVF.string("LAYOUTLIST"))))), "preStats", $TF.fromSymbol($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("StringMiddle")), $TS, p -> Collections.emptySet()), "body", $RTF.nonTerminalType($RVF.constructor(RascalValueFactory.Symbol_IterStarSeps, $RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Statement")), $RVF.list($RVF.constructor(RascalValueFactory.Symbol_Layouts, $RVF.string("LAYOUTLIST"))))), "postStats"); + StringMiddle_mid_MidStringChars = $TF.constructor($TS, ADT_StringMiddle, "mid", ADT_MidStringChars, "mid"); + Import_external_QualifiedName_LocationLiteral = $TF.constructor($TS, ADT_Import, "external", $TF.fromSymbol($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("QualifiedName")), $TS, p -> Collections.emptySet()), "name", $TF.fromSymbol($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("LocationLiteral")), $TS, p -> Collections.emptySet()), "at"); + Body_toplevels_iter_star_seps_Toplevel = $TF.constructor($TS, ADT_Body, "toplevels", $RTF.nonTerminalType($RVF.constructor(RascalValueFactory.Symbol_IterStarSeps, $RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Toplevel")), $RVF.list($RVF.constructor(RascalValueFactory.Symbol_Layouts, $RVF.string("LAYOUTLIST"))))), "toplevels"); + Statement_try_Statement_iter_seps_Catch = $TF.constructor($TS, ADT_Statement, "try", $TF.fromSymbol($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Statement")), $TS, p -> Collections.emptySet()), "body", $RTF.nonTerminalType($RVF.constructor(RascalValueFactory.Symbol_IterSeps, $RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Catch")), $RVF.list($RVF.constructor(RascalValueFactory.Symbol_Layouts, $RVF.string("LAYOUTLIST"))))), "handlers"); + Kind_view_ = $TF.constructor($TS, ADT_Kind, "view"); + Replacement_conditional_Expression_iter_seps_Expression = $TF.constructor($TS, ADT_Replacement, "conditional", $TF.fromSymbol($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Expression")), $TS, p -> Collections.emptySet()), "replacementExpression", $RTF.nonTerminalType($RVF.constructor(RascalValueFactory.Symbol_IterSeps, $RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Expression")), $RVF.list($RVF.constructor(RascalValueFactory.Symbol_Layouts, $RVF.string("LAYOUTLIST")), $RVF.constructor(RascalValueFactory.Symbol_Lit, $RVF.string(",")), $RVF.constructor(RascalValueFactory.Symbol_Layouts, $RVF.string("LAYOUTLIST"))))), "conditions"); + DateTimeLiteral_dateLiteral_JustDate = $TF.constructor($TS, ADT_DateTimeLiteral, "dateLiteral", ADT_JustDate, "date"); + Variable_unInitialized_Name = $TF.constructor($TS, ADT_Variable, "unInitialized", ADT_Name, "name"); + Sym_literal_StringConstant = $TF.constructor($TS, ADT_Sym, "literal", ADT_StringConstant, "string"); + TypeVar_free_Name = $TF.constructor($TS, ADT_TypeVar, "free", ADT_Name, "name"); + Declarator_default_Type_iter_seps_Variable = $TF.constructor($TS, ADT_Declarator, "default", $TF.fromSymbol($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Type")), $TS, p -> Collections.emptySet()), "type", $RTF.nonTerminalType($RVF.constructor(RascalValueFactory.Symbol_IterSeps, $RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Variable")), $RVF.list($RVF.constructor(RascalValueFactory.Symbol_Layouts, $RVF.string("LAYOUTLIST")), $RVF.constructor(RascalValueFactory.Symbol_Lit, $RVF.string(",")), $RVF.constructor(RascalValueFactory.Symbol_Layouts, $RVF.string("LAYOUTLIST"))))), "variables"); + Declaration_tag_Tags_Visibility_Kind_Name_iter_seps_Type = $TF.constructor($TS, ADT_Declaration, "tag", $TF.fromSymbol($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Tags")), $TS, p -> Collections.emptySet()), "tags", $TF.fromSymbol($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Visibility")), $TS, p -> Collections.emptySet()), "visibility", $TF.fromSymbol($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Kind")), $TS, p -> Collections.emptySet()), "kind", ADT_Name, "name", $RTF.nonTerminalType($RVF.constructor(RascalValueFactory.Symbol_IterSeps, $RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Type")), $RVF.list($RVF.constructor(RascalValueFactory.Symbol_Layouts, $RVF.string("LAYOUTLIST")), $RVF.constructor(RascalValueFactory.Symbol_Lit, $RVF.string(",")), $RVF.constructor(RascalValueFactory.Symbol_Layouts, $RVF.string("LAYOUTLIST"))))), "types"); + Expression_fieldAccess_Expression_Name = $TF.constructor($TS, ADT_Expression, "fieldAccess", $TF.fromSymbol($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Expression")), $TS, p -> Collections.emptySet()), "expression", ADT_Name, "field"); + CommonKeywordParameters_present_iter_seps_KeywordFormal = $TF.constructor($TS, ADT_CommonKeywordParameters, "present", $RTF.nonTerminalType($RVF.constructor(RascalValueFactory.Symbol_IterSeps, $RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("KeywordFormal")), $RVF.list($RVF.constructor(RascalValueFactory.Symbol_Layouts, $RVF.string("LAYOUTLIST")), $RVF.constructor(RascalValueFactory.Symbol_Lit, $RVF.string(",")), $RVF.constructor(RascalValueFactory.Symbol_Layouts, $RVF.string("LAYOUTLIST"))))), "keywordFormalList"); + Type_symbol_Sym = $TF.constructor($TS, ADT_Type, "symbol", $TF.fromSymbol($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Sym")), $TS, p -> Collections.emptySet()), "symbol"); + Sym_parameter_Nonterminal = $TF.constructor($TS, ADT_Sym, "parameter", ADT_Nonterminal, "nonterminal"); + Expression_voidClosure_Parameters_iter_star_seps_Statement = $TF.constructor($TS, ADT_Expression, "voidClosure", $TF.fromSymbol($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Parameters")), $TS, p -> Collections.emptySet()), "parameters", $RTF.nonTerminalType($RVF.constructor(RascalValueFactory.Symbol_IterStarSeps, $RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Statement")), $RVF.list($RVF.constructor(RascalValueFactory.Symbol_Layouts, $RVF.string("LAYOUTLIST"))))), "statements0"); + Command_shell_ShellCommand = $TF.constructor($TS, ADT_Command, "shell", $TF.fromSymbol($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("ShellCommand")), $TS, p -> Collections.emptySet()), "command"); + Strategy_bottomUp_ = $TF.constructor($TS, ADT_Strategy, "bottomUp"); + Pattern_tuple_iter_seps_Pattern = $TF.constructor($TS, ADT_Pattern, "tuple", $RTF.nonTerminalType($RVF.constructor(RascalValueFactory.Symbol_IterSeps, $RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Pattern")), $RVF.list($RVF.constructor(RascalValueFactory.Symbol_Layouts, $RVF.string("LAYOUTLIST")), $RVF.constructor(RascalValueFactory.Symbol_Lit, $RVF.string(",")), $RVF.constructor(RascalValueFactory.Symbol_Layouts, $RVF.string("LAYOUTLIST"))))), "elements"); + Sym_nonterminal_Nonterminal = $TF.constructor($TS, ADT_Sym, "nonterminal", ADT_Nonterminal, "nonterminal"); + Assignment_addition_ = $TF.constructor($TS, ADT_Assignment, "addition"); + Statement_assignment_Assignable_Assignment_Statement = $TF.constructor($TS, ADT_Statement, "assignment", $TF.fromSymbol($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Assignable")), $TS, p -> Collections.emptySet()), "assignable", $TF.fromSymbol($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Assignment")), $TS, p -> Collections.emptySet()), "operator", $TF.fromSymbol($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Statement")), $TS, p -> Collections.emptySet()), "statement"); + Pattern_splicePlus_Pattern = $TF.constructor($TS, ADT_Pattern, "splicePlus", $TF.fromSymbol($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Pattern")), $TS, p -> Collections.emptySet()), "argument"); + Statement_throw_Statement = $TF.constructor($TS, ADT_Statement, "throw", $TF.fromSymbol($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Statement")), $TS, p -> Collections.emptySet()), "statement"); + Pattern_descendant_Pattern = $TF.constructor($TS, ADT_Pattern, "descendant", $TF.fromSymbol($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Pattern")), $TS, p -> Collections.emptySet()), "pattern"); + ShellCommand_listDeclarations_ = $TF.constructor($TS, ADT_ShellCommand, "listDeclarations"); + Expression_negative_Expression = $TF.constructor($TS, ADT_Expression, "negative", $TF.fromSymbol($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Expression")), $TS, p -> Collections.emptySet()), "argument"); + Pattern_variableBecomes_Name_Pattern = $TF.constructor($TS, ADT_Pattern, "variableBecomes", ADT_Name, "name", $TF.fromSymbol($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Pattern")), $TS, p -> Collections.emptySet()), "pattern"); + Assoc_nonAssociative_ = $TF.constructor($TS, ADT_Assoc, "nonAssociative"); + Sym_iter_Sym = $TF.constructor($TS, ADT_Sym, "iter", $TF.fromSymbol($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Sym")), $TS, p -> Collections.emptySet()), "symbol"); + Expression_and_Expression_Expression = $TF.constructor($TS, ADT_Expression, "and", $TF.fromSymbol($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Expression")), $TS, p -> Collections.emptySet()), "lhs", $TF.fromSymbol($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Expression")), $TS, p -> Collections.emptySet()), "rhs"); + Kind_alias_ = $TF.constructor($TS, ADT_Kind, "alias"); + Type_structured_StructuredType = $TF.constructor($TS, ADT_Type, "structured", $TF.fromSymbol($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("StructuredType")), $TS, p -> Collections.emptySet()), "structured"); + Sym_precede_Sym_Sym = $TF.constructor($TS, ADT_Sym, "precede", $TF.fromSymbol($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Sym")), $TS, p -> Collections.emptySet()), "match", $TF.fromSymbol($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Sym")), $TS, p -> Collections.emptySet()), "symbol"); + Assignment_subtraction_ = $TF.constructor($TS, ADT_Assignment, "subtraction"); + Expression_isDefined_Expression = $TF.constructor($TS, ADT_Expression, "isDefined", $TF.fromSymbol($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Expression")), $TS, p -> Collections.emptySet()), "argument"); + QualifiedName_default_iter_seps_Name = $TF.constructor($TS, ADT_QualifiedName, "default", $RTF.nonTerminalType($RVF.constructor(RascalValueFactory.Symbol_IterSeps, $RVF.constructor(RascalValueFactory.Symbol_Lex, $RVF.string("Name")), $RVF.list($RVF.constructor(RascalValueFactory.Symbol_Layouts, $RVF.string("LAYOUTLIST")), $RVF.constructor(RascalValueFactory.Symbol_Lit, $RVF.string("::")), $RVF.constructor(RascalValueFactory.Symbol_Layouts, $RVF.string("LAYOUTLIST"))))), "names"); + Expression_subscript_Expression_iter_seps_Expression = $TF.constructor($TS, ADT_Expression, "subscript", $TF.fromSymbol($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Expression")), $TS, p -> Collections.emptySet()), "expression", $RTF.nonTerminalType($RVF.constructor(RascalValueFactory.Symbol_IterSeps, $RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Expression")), $RVF.list($RVF.constructor(RascalValueFactory.Symbol_Layouts, $RVF.string("LAYOUTLIST")), $RVF.constructor(RascalValueFactory.Symbol_Lit, $RVF.string(",")), $RVF.constructor(RascalValueFactory.Symbol_Layouts, $RVF.string("LAYOUTLIST"))))), "subscripts"); + StringTemplate_ifThen_iter_seps_Expression_iter_star_seps_Statement_StringMiddle_iter_star_seps_Statement = $TF.constructor($TS, ADT_StringTemplate, "ifThen", $RTF.nonTerminalType($RVF.constructor(RascalValueFactory.Symbol_IterSeps, $RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Expression")), $RVF.list($RVF.constructor(RascalValueFactory.Symbol_Layouts, $RVF.string("LAYOUTLIST")), $RVF.constructor(RascalValueFactory.Symbol_Lit, $RVF.string(",")), $RVF.constructor(RascalValueFactory.Symbol_Layouts, $RVF.string("LAYOUTLIST"))))), "conditions", $RTF.nonTerminalType($RVF.constructor(RascalValueFactory.Symbol_IterStarSeps, $RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Statement")), $RVF.list($RVF.constructor(RascalValueFactory.Symbol_Layouts, $RVF.string("LAYOUTLIST"))))), "preStats", $TF.fromSymbol($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("StringMiddle")), $TS, p -> Collections.emptySet()), "body", $RTF.nonTerminalType($RVF.constructor(RascalValueFactory.Symbol_IterStarSeps, $RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Statement")), $RVF.list($RVF.constructor(RascalValueFactory.Symbol_Layouts, $RVF.string("LAYOUTLIST"))))), "postStats"); + Kind_tag_ = $TF.constructor($TS, ADT_Kind, "tag"); + Field_name_Name = $TF.constructor($TS, ADT_Field, "name", ADT_Name, "fieldName"); + ConcretePart_text_str = $TF.constructor($TS, ADT_ConcretePart, "text", $TF.stringType()); + EvalCommand_output_Output = $TF.constructor($TS, ADT_EvalCommand, "output", ADT_Output); + UserType_parametric_QualifiedName_iter_seps_Type = $TF.constructor($TS, ADT_UserType, "parametric", $TF.fromSymbol($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("QualifiedName")), $TS, p -> Collections.emptySet()), "name", $RTF.nonTerminalType($RVF.constructor(RascalValueFactory.Symbol_IterSeps, $RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Type")), $RVF.list($RVF.constructor(RascalValueFactory.Symbol_Layouts, $RVF.string("LAYOUTLIST")), $RVF.constructor(RascalValueFactory.Symbol_Lit, $RVF.string(",")), $RVF.constructor(RascalValueFactory.Symbol_Layouts, $RVF.string("LAYOUTLIST"))))), "parameters"); + StringLiteral_template_PreStringChars_StringTemplate_StringTail = $TF.constructor($TS, ADT_StringLiteral, "template", ADT_PreStringChars, "pre", $TF.fromSymbol($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("StringTemplate")), $TS, p -> Collections.emptySet()), "template", $TF.fromSymbol($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("StringTail")), $TS, p -> Collections.emptySet()), "tail"); + Statement_continue_Target = $TF.constructor($TS, ADT_Statement, "continue", $TF.fromSymbol($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Target")), $TS, p -> Collections.emptySet()), "target"); + Visit_defaultStrategy_Expression_iter_seps_Case = $TF.constructor($TS, ADT_Visit, "defaultStrategy", $TF.fromSymbol($RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Expression")), $TS, p -> Collections.emptySet()), "subject", $RTF.nonTerminalType($RVF.constructor(RascalValueFactory.Symbol_IterSeps, $RVF.constructor(RascalValueFactory.Symbol_Sort, $RVF.string("Case")), $RVF.list($RVF.constructor(RascalValueFactory.Symbol_Layouts, $RVF.string("LAYOUTLIST"))))), "cases"); + + + + } + + + public static void main(String[] args) { + throw new RuntimeException("No function `main` found in Rascal module `lang::rascal::syntax::Rascal`"); + } +} \ No newline at end of file diff --git a/src/rascal/lang/rascal/syntax/$Rascal.tpl b/src/rascal/lang/rascal/syntax/$Rascal.tpl new file mode 100644 index 00000000000..4d526d115de Binary files /dev/null and b/src/rascal/lang/rascal/syntax/$Rascal.tpl differ diff --git a/src/rascal/lang/rascal/syntax/$Rascal_$I.java b/src/rascal/lang/rascal/syntax/$Rascal_$I.java new file mode 100644 index 00000000000..6672e0c314d --- /dev/null +++ b/src/rascal/lang/rascal/syntax/$Rascal_$I.java @@ -0,0 +1,8 @@ +package rascal.lang.rascal.syntax; +import io.usethesource.vallang.*; +import org.rascalmpl.runtime.function.*; + +@SuppressWarnings("unused") +public interface $Rascal_$I { + +} \ No newline at end of file diff --git a/src/rascal/util/$Math.constants b/src/rascal/util/$Math.constants new file mode 100644 index 00000000000..9a185dd76a7 Binary files /dev/null and b/src/rascal/util/$Math.constants differ diff --git a/src/rascal/util/$Math.java b/src/rascal/util/$Math.java new file mode 100644 index 00000000000..80ff1dcdce8 --- /dev/null +++ b/src/rascal/util/$Math.java @@ -0,0 +1,1062 @@ +package rascal.util; +import java.io.PrintWriter; +import java.io.StringWriter; +import java.io.InputStreamReader; +import java.io.PrintWriter; +import java.util.*; +import java.util.regex.Matcher; +import io.usethesource.vallang.*; +import io.usethesource.vallang.type.*; +import org.rascalmpl.runtime.*; +import org.rascalmpl.runtime.RascalExecutionContext; +import org.rascalmpl.runtime.function.*; +import org.rascalmpl.runtime.traverse.*; +import org.rascalmpl.runtime.utils.*; +import org.rascalmpl.exceptions.RuntimeExceptionFactory; +import org.rascalmpl.exceptions.Throw; +import org.rascalmpl.runtime.RascalExecutionContext; +import org.rascalmpl.interpreter.control_exceptions.Filtered; +import org.rascalmpl.types.NonTerminalType; +import org.rascalmpl.types.RascalTypeFactory; +import org.rascalmpl.util.ExpiringFunctionResultCache; +import org.rascalmpl.values.RascalValueFactory; +import org.rascalmpl.values.ValueFactoryFactory; +import org.rascalmpl.values.parsetrees.ITree; +import org.rascalmpl.values.parsetrees.TreeAdapter; + + + +@SuppressWarnings({"unused","unchecked","deprecation"}) +public class $Math + extends + org.rascalmpl.runtime.$RascalModule + implements + rascal.util.$Math_$I { + + private final $Math_$I $me; + private final IList $constants; + + + public final rascal.$Exception M_Exception; + public final rascal.$List M_List; + + + final org.rascalmpl.library.util.Math $Math; // TODO: asBaseClassName will generate name collisions if there are more of the same name in different packages + + + public final io.usethesource.vallang.type.Type $T0; /*anum()*/ + public final io.usethesource.vallang.type.Type $T4; /*aparameter("T",anum(),closed=false)*/ + public final io.usethesource.vallang.type.Type $T3; /*areal()*/ + public final io.usethesource.vallang.type.Type $T1; /*arat()*/ + public final io.usethesource.vallang.type.Type $T2; /*aint()*/ + public final io.usethesource.vallang.type.Type $T5; /*aparameter("T",anum(),closed=true)*/ + public final io.usethesource.vallang.type.Type ADT_RuntimeException; /*aadt("RuntimeException",[],dataSyntax())*/ + + public $Math(RascalExecutionContext rex){ + this(rex, null); + } + + public $Math(RascalExecutionContext rex, Object extended){ + super(rex); + this.$me = extended == null ? this : ($Math_$I)extended; + ModuleStore mstore = rex.getModuleStore(); + mstore.put(rascal.util.$Math.class, this); + + mstore.importModule(rascal.$Exception.class, rex, rascal.$Exception::new); + mstore.importModule(rascal.$List.class, rex, rascal.$List::new); + + M_Exception = mstore.getModule(rascal.$Exception.class); + M_List = mstore.getModule(rascal.$List.class); + + + + $TS.importStore(M_Exception.$TS); + $TS.importStore(M_List.$TS); + + $Math = $initLibrary("org.rascalmpl.library.util.Math"); + + $constants = readBinaryConstantsFile(this.getClass(), "rascal/util/$Math.constants", 10, "904fed9d00b63f2afab18f6f7f7ec9ea"); + ADT_RuntimeException = $adt("RuntimeException"); + $T0 = $TF.numberType(); + $T4 = $TF.parameterType("T", $T0); + $T3 = $TF.realType(); + $T1 = $TF.rationalType(); + $T2 = $TF.integerType(); + $T5 = $TF.parameterType("T", $T0); + + + + } + public IReal log10(IValue $P0){ // Generated by Resolver + IReal $result = null; + Type $P0Type = $P0.getType(); + if($isSubtypeOf($P0Type,$T0)){ + $result = (IReal)util_Math_log10$92e5941cc325ab04((INumber) $P0); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0)); + } + public IReal cos(IValue $P0){ // Generated by Resolver + IReal $result = null; + Type $P0Type = $P0.getType(); + if($isSubtypeOf($P0Type,$T0)){ + $result = (IReal)util_Math_cos$25fdb620b3eb75d8((INumber) $P0); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0)); + } + public IInteger numerator(IValue $P0){ // Generated by Resolver + IInteger $result = null; + Type $P0Type = $P0.getType(); + if($isSubtypeOf($P0Type,$T1)){ + $result = (IInteger)util_Math_numerator$61e94e5a5f76f380((IRational) $P0); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0)); + } + public IReal exp(IValue $P0){ // Generated by Resolver + IReal $result = null; + Type $P0Type = $P0.getType(); + if($isSubtypeOf($P0Type,$T0)){ + $result = (IReal)util_Math_exp$ee5a897e762c5904((INumber) $P0); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0)); + } + public IReal sqrt(IValue $P0){ // Generated by Resolver + IReal $result = null; + Type $P0Type = $P0.getType(); + if($isSubtypeOf($P0Type,$T0)){ + $result = (IReal)util_Math_sqrt$2b673fb474e9231f((INumber) $P0); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0)); + } + public IValue head(IValue $P0){ // Generated by Resolver + return (IValue) M_List.head($P0); + } + public IReal tan(IValue $P0){ // Generated by Resolver + IReal $result = null; + Type $P0Type = $P0.getType(); + if($isSubtypeOf($P0Type,$T0)){ + $result = (IReal)util_Math_tan$981a5d54892b4828((INumber) $P0); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0)); + } + public void arbSeed(IValue $P0){ // Generated by Resolver + Type $P0Type = $P0.getType(); + if($isSubtypeOf($P0Type,$T2)){ + try { util_Math_arbSeed$43617edad6318847((IInteger) $P0); return; } catch (FailReturnFromVoidException e){}; + + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0)); + } + public IReal ln(IValue $P0){ // Generated by Resolver + IReal $result = null; + Type $P0Type = $P0.getType(); + if($isSubtypeOf($P0Type,$T0)){ + $result = (IReal)util_Math_ln$2d862535e4b2cbea((INumber) $P0); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0)); + } + public IReal fitDouble(IValue $P0){ // Generated by Resolver + IReal $result = null; + Type $P0Type = $P0.getType(); + if($isSubtypeOf($P0Type,$T3)){ + $result = (IReal)util_Math_fitDouble$a6a47c152ee8e809((IReal) $P0); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0)); + } + public INumber max(IValue $P0, IValue $P1){ // Generated by Resolver + INumber $result = null; + Type $P0Type = $P0.getType(); + Type $P1Type = $P1.getType(); + if($isSubtypeOf($P0Type,$T4) && $isSubtypeOf($P1Type,$T4)){ + $result = (INumber)util_Math_max$f859d573f509aca0((INumber) $P0, (INumber) $P1); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0, $P1)); + } + public IReal log(IValue $P0, IValue $P1){ // Generated by Resolver + IReal $result = null; + Type $P0Type = $P0.getType(); + Type $P1Type = $P1.getType(); + if($isSubtypeOf($P0Type,$T0) && $isSubtypeOf($P1Type,$T0)){ + $result = (IReal)util_Math_log$a0da2d174a34d686((INumber) $P0, (INumber) $P1); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0, $P1)); + } + public IInteger ceil(IValue $P0){ // Generated by Resolver + IInteger $result = null; + Type $P0Type = $P0.getType(); + if($isSubtypeOf($P0Type,$T0)){ + $result = (IInteger)util_Math_ceil$206c17dde36fddb6((INumber) $P0); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0)); + } + public IInteger remainder(IValue $P0){ // Generated by Resolver + IInteger $result = null; + Type $P0Type = $P0.getType(); + if($isSubtypeOf($P0Type,$T1)){ + $result = (IInteger)util_Math_remainder$eff4c728c226a26d((IRational) $P0); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0)); + } + public IReal E(){ // Generated by Resolver + IReal $result = null; + $result = (IReal)util_Math_E$a634c3472007cc51(); + if($result != null) return $result; + throw RuntimeExceptionFactory.callFailed($RVF.list()); + } + public IInteger percent(IValue $P0, IValue $P1){ // Generated by Resolver + IInteger $result = null; + Type $P0Type = $P0.getType(); + Type $P1Type = $P1.getType(); + if($isSubtypeOf($P0Type,$T0) && $isSubtypeOf($P1Type,$T0)){ + $result = (IInteger)util_Math_percent$eb710c0af01295a1((INumber) $P0, (INumber) $P1); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0, $P1)); + } + public IInteger denominator(IValue $P0){ // Generated by Resolver + IInteger $result = null; + Type $P0Type = $P0.getType(); + if($isSubtypeOf($P0Type,$T1)){ + $result = (IInteger)util_Math_denominator$2b16b1dd44bfd930((IRational) $P0); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0)); + } + public IInteger scale(IValue $P0){ // Generated by Resolver + IInteger $result = null; + Type $P0Type = $P0.getType(); + if($isSubtypeOf($P0Type,$T0)){ + $result = (IInteger)util_Math_scale$57ab720514843992((INumber) $P0); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0)); + } + public IRational toRat(IValue $P0, IValue $P1){ // Generated by Resolver + IRational $result = null; + Type $P0Type = $P0.getType(); + Type $P1Type = $P1.getType(); + if($isSubtypeOf($P0Type,$T2) && $isSubtypeOf($P1Type,$T2)){ + $result = (IRational)util_Math_toRat$f5f51286b388713b((IInteger) $P0, (IInteger) $P1); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0, $P1)); + } + public IReal fitFloat(IValue $P0){ // Generated by Resolver + IReal $result = null; + Type $P0Type = $P0.getType(); + if($isSubtypeOf($P0Type,$T3)){ + $result = (IReal)util_Math_fitFloat$e288e1b3587e03aa((IReal) $P0); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0)); + } + public IInteger floor(IValue $P0){ // Generated by Resolver + IInteger $result = null; + Type $P0Type = $P0.getType(); + if($isSubtypeOf($P0Type,$T0)){ + $result = (IInteger)util_Math_floor$58690a2755890a89((INumber) $P0); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0)); + } + public IString toString(IValue $P0){ // Generated by Resolver + IString $result = null; + Type $P0Type = $P0.getType(); + if($isSubtypeOf($P0Type,$T0)){ + $result = (IString)util_Math_toString$d077706afbfe26cb((INumber) $P0); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0)); + } + public IReal log2(IValue $P0){ // Generated by Resolver + IReal $result = null; + Type $P0Type = $P0.getType(); + if($isSubtypeOf($P0Type,$T0)){ + $result = (IReal)util_Math_log2$d2ec1e9d591b7b56((INumber) $P0); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0)); + } + public IInteger arbPrime(IValue $P0){ // Generated by Resolver + IInteger $result = null; + Type $P0Type = $P0.getType(); + if($isSubtypeOf($P0Type,$T2)){ + $result = (IInteger)util_Math_arbPrime$e6701dcd9718f457((IInteger) $P0); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0)); + } + public IInteger round(IValue $P0){ // Generated by Resolver + IInteger $result = null; + Type $P0Type = $P0.getType(); + if($isSubtypeOf($P0Type,$T0)){ + $result = (IInteger)util_Math_round$0ce679d3da862392((INumber) $P0); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0)); + } + public INumber round(IValue $P0, IValue $P1){ // Generated by Resolver + INumber $result = null; + Type $P0Type = $P0.getType(); + Type $P1Type = $P1.getType(); + if($isSubtypeOf($P0Type,$T4) && $isSubtypeOf($P1Type,$T4)){ + $result = (INumber)util_Math_round$890d09d5b0a9251a((INumber) $P0, (INumber) $P1); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0, $P1)); + } + public IReal arbReal(){ // Generated by Resolver + IReal $result = null; + $result = (IReal)util_Math_arbReal$4590901f60d3c53e(); + if($result != null) return $result; + throw RuntimeExceptionFactory.callFailed($RVF.list()); + } + public IList tail(IValue $P0){ // Generated by Resolver + return (IList) M_List.tail($P0); + } + public ITuple headTail(IValue $P0){ // Generated by Resolver + return (ITuple) M_List.headTail($P0); + } + public IReal nroot(IValue $P0, IValue $P1){ // Generated by Resolver + IReal $result = null; + Type $P0Type = $P0.getType(); + Type $P1Type = $P1.getType(); + if($isSubtypeOf($P0Type,$T0) && $isSubtypeOf($P1Type,$T2)){ + $result = (IReal)util_Math_nroot$9e6edb0a3ad436fd((INumber) $P0, (IInteger) $P1); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0, $P1)); + } + public INumber abs(IValue $P0){ // Generated by Resolver + INumber $result = null; + Type $P0Type = $P0.getType(); + if($isSubtypeOf($P0Type,$T4)){ + $result = (INumber)util_Math_abs$0e04fdcbccce288f((INumber) $P0); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0)); + } + public INumber min(IValue $P0, IValue $P1){ // Generated by Resolver + INumber $result = null; + Type $P0Type = $P0.getType(); + Type $P1Type = $P1.getType(); + if($isSubtypeOf($P0Type,$T4) && $isSubtypeOf($P1Type,$T4)){ + $result = (INumber)util_Math_min$503b13941def78aa((INumber) $P0, (INumber) $P1); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0, $P1)); + } + public IInteger unscaled(IValue $P0){ // Generated by Resolver + IInteger $result = null; + Type $P0Type = $P0.getType(); + if($isSubtypeOf($P0Type,$T3)){ + $result = (IInteger)util_Math_unscaled$44066a1c838c6c08((IReal) $P0); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0)); + } + public IList primes(IValue $P0){ // Generated by Resolver + IList $result = null; + Type $P0Type = $P0.getType(); + if($isSubtypeOf($P0Type,$T2)){ + $result = (IList)util_Math_primes$7f2a2df02bbf181b((IInteger) $P0); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0)); + } + public IInteger toInt(IValue $P0){ // Generated by Resolver + IInteger $result = null; + Type $P0Type = $P0.getType(); + if($isSubtypeOf($P0Type,$T0)){ + $result = (IInteger)util_Math_toInt$90db44238d53444e((INumber) $P0); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0)); + } + public IRational arbRat(IValue $P0, IValue $P1){ // Generated by Resolver + IRational $result = null; + Type $P0Type = $P0.getType(); + Type $P1Type = $P1.getType(); + if($isSubtypeOf($P0Type,$T2) && $isSubtypeOf($P1Type,$T2)){ + $result = (IRational)util_Math_arbRat$e9a5b5406c51e456((IInteger) $P0, (IInteger) $P1); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0, $P1)); + } + public IRational arbRat(){ // Generated by Resolver + IRational $result = null; + $result = (IRational)util_Math_arbRat$6d2dcd00ab5ec3f0(); + if($result != null) return $result; + throw RuntimeExceptionFactory.callFailed($RVF.list()); + } + public IReal sin(IValue $P0){ // Generated by Resolver + IReal $result = null; + Type $P0Type = $P0.getType(); + if($isSubtypeOf($P0Type,$T0)){ + $result = (IReal)util_Math_sin$9ed61b08a75c8bc3((INumber) $P0); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0)); + } + public IReal pow(IValue $P0, IValue $P1){ // Generated by Resolver + IReal $result = null; + Type $P0Type = $P0.getType(); + Type $P1Type = $P1.getType(); + if($isSubtypeOf($P0Type,$T0) && $isSubtypeOf($P1Type,$T3)){ + $result = (IReal)util_Math_pow$2845813828589954((INumber) $P0, (IReal) $P1); + if($result != null) return $result; + } + if($isSubtypeOf($P0Type,$T0) && $isSubtypeOf($P1Type,$T2)){ + $result = (IReal)util_Math_pow$87f4c82cab4a297c((INumber) $P0, (IInteger) $P1); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0, $P1)); + } + public IReal PI(){ // Generated by Resolver + IReal $result = null; + $result = (IReal)util_Math_PI$5ff2190de6bfeaca(); + if($result != null) return $result; + throw RuntimeExceptionFactory.callFailed($RVF.list()); + } + public IReal toReal(IValue $P0){ // Generated by Resolver + IReal $result = null; + Type $P0Type = $P0.getType(); + if($isSubtypeOf($P0Type,$T0)){ + $result = (IReal)util_Math_toReal$0f28a5d4173e938f((INumber) $P0); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0)); + } + public IInteger setPrecision(IValue $P0){ // Generated by Resolver + IInteger $result = null; + Type $P0Type = $P0.getType(); + if($isSubtypeOf($P0Type,$T2)){ + $result = (IInteger)util_Math_setPrecision$e34d4ada2ae3c42f((IInteger) $P0); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0)); + } + public IInteger precision(IValue $P0){ // Generated by Resolver + IInteger $result = null; + Type $P0Type = $P0.getType(); + if($isSubtypeOf($P0Type,$T0)){ + $result = (IInteger)util_Math_precision$096d067774cb10ba((INumber) $P0); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0)); + } + public IReal precision(IValue $P0, IValue $P1){ // Generated by Resolver + IReal $result = null; + Type $P0Type = $P0.getType(); + Type $P1Type = $P1.getType(); + if($isSubtypeOf($P0Type,$T0) && $isSubtypeOf($P1Type,$T2)){ + $result = (IReal)util_Math_precision$df80f78f0ec7a633((INumber) $P0, (IInteger) $P1); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0, $P1)); + } + public IInteger arbInt(IValue $P0){ // Generated by Resolver + IInteger $result = null; + Type $P0Type = $P0.getType(); + if($isSubtypeOf($P0Type,$T2)){ + $result = (IInteger)util_Math_arbInt$774439ec3c7cb5ab((IInteger) $P0); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0)); + } + public IInteger arbInt(){ // Generated by Resolver + IInteger $result = null; + $result = (IInteger)util_Math_arbInt$82b38d5b0ef9bf80(); + if($result != null) return $result; + throw RuntimeExceptionFactory.callFailed($RVF.list()); + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/util/Math.rsc|(667,299,<25,0>,<41,1>) + public INumber util_Math_abs$0e04fdcbccce288f(INumber N_0){ + + + HashMap $typeBindings = new HashMap<>(); + if($T4.match(N_0.getType(), $typeBindings)){ + /*muExists*/$RET0: + do { + if((((IBool)($anum_less_aint(((INumber)N_0),((IInteger)$constants.get(0)/*0*/)).not()))).getValue()){ + final INumber $result1 = ((INumber)N_0); + if($T5.instantiate($typeBindings) != $TF.voidType() && $isSubtypeOf($result1.getType(),$T5)){ + return ((INumber)($result1)); + + } else { + return null; + } + } + + } while(false); + final INumber $result1 = ((INumber)(((INumber)N_0).negate())); + if($T5.instantiate($typeBindings) != $TF.voidType() && $isSubtypeOf($result1.getType(),$T5)){ + return ((INumber)($result1)); + + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/util/Math.rsc|(969,477,<44,0>,<64,25>) + public IInteger util_Math_arbInt$82b38d5b0ef9bf80(){ + + + return ((IInteger)((IInteger)$Math.arbInt())); + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/util/Math.rsc|(1448,78,<66,0>,<67,34>) + public IInteger util_Math_arbInt$774439ec3c7cb5ab(IInteger limit_0){ + + + return ((IInteger)((IInteger)$Math.arbInt(limit_0))); + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/util/Math.rsc|(1529,301,<70,0>,<83,27>) + public IReal util_Math_arbReal$4590901f60d3c53e(){ + + + return ((IReal)((IReal)$Math.arbReal())); + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/util/Math.rsc|(1833,512,<86,0>,<93,35>) + public void util_Math_arbSeed$43617edad6318847(IInteger seed_0){ + + + $Math.arbSeed(seed_0); + return; + + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/util/Math.rsc|(2348,275,<96,0>,<115,1>) + public IRational util_Math_arbRat$6d2dcd00ab5ec3f0(){ + + + IInteger n_0 = ((IInteger)($me.arbInt())); + IInteger d_1 = ((IInteger)($me.arbInt())); + if((((IBool)($equal(((IInteger)d_1), ((IInteger)$constants.get(0)/*0*/))))).getValue()){ + d_1 = ((IInteger)$constants.get(1)/*1*/); + + } + return ((IRational)($me.toRat(((IInteger)n_0), ((IInteger)d_1)))); + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/util/Math.rsc|(2625,129,<117,0>,<123,1>) + public IRational util_Math_arbRat$e9a5b5406c51e456(IInteger limit1_0, IInteger limit2_1){ + + + IInteger n_2 = ((IInteger)($me.arbInt(((IInteger)limit1_0)))); + IInteger d_3 = ((IInteger)($me.arbInt(((IInteger)limit2_1)))); + if((((IBool)($equal(((IInteger)d_3), ((IInteger)$constants.get(0)/*0*/))))).getValue()){ + d_3 = ((IInteger)$constants.get(1)/*1*/); + + } + return ((IRational)($me.toRat(((IInteger)n_2), ((IInteger)d_3)))); + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/util/Math.rsc|(2757,354,<126,0>,<146,1>) + public IInteger util_Math_ceil$206c17dde36fddb6(INumber x_0){ + + + IInteger i_1 = ((IInteger)($me.toInt(((INumber)x_0)))); + if((((IBool)($equal(((IInteger)i_1), ((INumber)x_0))))).getValue()){ + return ((IInteger)i_1); + + } else { + if((((IBool)($anum_less_aint(((INumber)x_0),((IInteger)$constants.get(0)/*0*/))))).getValue()){ + return ((IInteger)i_1); + + } else { + return ((IInteger)($aint_add_aint(((IInteger)i_1),((IInteger)$constants.get(1)/*1*/)))); + + } + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/util/Math.rsc|(3114,252,<149,0>,<161,28>) + public IReal util_Math_cos$25fdb620b3eb75d8(INumber x_0){ + + + return ((IReal)((IReal)$Math.cos(x_0))); + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/util/Math.rsc|(3369,134,<164,0>,<166,35>) + public IInteger util_Math_denominator$2b16b1dd44bfd930(IRational n_0){ + + + return ((IInteger)((IInteger)$Math.denominator(n_0))); + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/util/Math.rsc|(3506,149,<169,0>,<177,21>) + public IReal util_Math_E$a634c3472007cc51(){ + + + return ((IReal)((IReal)$Math.E())); + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/util/Math.rsc|(3659,144,<181,0>,<186,28>) + public IReal util_Math_exp$ee5a897e762c5904(INumber x_0){ + + + return ((IReal)((IReal)$Math.exp(x_0))); + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/util/Math.rsc|(3806,351,<189,0>,<209,1>) + public IInteger util_Math_floor$58690a2755890a89(INumber x_0){ + + + IInteger i_1 = ((IInteger)($me.toInt(((INumber)x_0)))); + if((((IBool)($equal(((IInteger)i_1), ((INumber)x_0))))).getValue()){ + return ((IInteger)i_1); + + } else { + if((((IBool)($anum_less_aint(((INumber)x_0),((IInteger)$constants.get(0)/*0*/)).not()))).getValue()){ + return ((IInteger)i_1); + + } else { + return ((IInteger)(((IInteger) ((IInteger)i_1).subtract(((IInteger)$constants.get(1)/*1*/))))); + + } + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/util/Math.rsc|(4160,244,<212,0>,<224,27>) + public IReal util_Math_ln$2d862535e4b2cbea(INumber x_0){ + + + return ((IReal)((IReal)$Math.ln(x_0))); + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/util/Math.rsc|(4407,297,<227,0>,<240,38>) + public IReal util_Math_log$a0da2d174a34d686(INumber x_0, INumber base_1){ + + + return ((IReal)((IReal)$Math.log(x_0, base_1))); + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/util/Math.rsc|(4707,80,<243,0>,<244,40>) + public IReal util_Math_log10$92e5941cc325ab04(INumber x_0){ + + + return ((IReal)($me.log(((INumber)x_0), ((IReal)$constants.get(2)/*10.0*/)))); + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/util/Math.rsc|(4790,77,<247,0>,<248,38>) + public IReal util_Math_log2$d2ec1e9d591b7b56(INumber x_0){ + + + return ((IReal)($me.log(((INumber)x_0), ((IReal)$constants.get(3)/*2.0*/)))); + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/util/Math.rsc|(4870,340,<251,0>,<266,1>) + public INumber util_Math_max$f859d573f509aca0(INumber N_0, INumber M_1){ + + + HashMap $typeBindings = new HashMap<>(); + if($T4.match(N_0.getType(), $typeBindings)){ + if($T4.match(M_1.getType(), $typeBindings)){ + /*muExists*/$RET2: + do { + if((((IBool)($anum_lessequal_anum(((INumber)N_0),((INumber)M_1)).not()))).getValue()){ + final INumber $result3 = ((INumber)N_0); + if($T5.instantiate($typeBindings) != $TF.voidType() && $isSubtypeOf($result3.getType(),$T5)){ + return ((INumber)($result3)); + + } else { + return null; + } + } + + } while(false); + final INumber $result3 = ((INumber)M_1); + if($T5.instantiate($typeBindings) != $TF.voidType() && $isSubtypeOf($result3.getType(),$T5)){ + return ((INumber)($result3)); + + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/util/Math.rsc|(5213,341,<269,0>,<284,1>) + public INumber util_Math_min$503b13941def78aa(INumber N_0, INumber M_1){ + + + HashMap $typeBindings = new HashMap<>(); + if($T4.match(N_0.getType(), $typeBindings)){ + if($T4.match(M_1.getType(), $typeBindings)){ + /*muExists*/$RET4: + do { + if((((IBool)($anum_less_anum(((INumber)N_0),((INumber)M_1))))).getValue()){ + final INumber $result5 = ((INumber)N_0); + if($T5.instantiate($typeBindings) != $TF.voidType() && $isSubtypeOf($result5.getType(),$T5)){ + return ((INumber)($result5)); + + } else { + return null; + } + } + + } while(false); + final INumber $result5 = ((INumber)M_1); + if($T5.instantiate($typeBindings) != $TF.voidType() && $isSubtypeOf($result5.getType(),$T5)){ + return ((INumber)($result5)); + + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/util/Math.rsc|(5557,130,<287,0>,<289,33>) + public IInteger util_Math_numerator$61e94e5a5f76f380(IRational n_0){ + + + return ((IInteger)((IInteger)$Math.numerator(n_0))); + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/util/Math.rsc|(5690,377,<292,0>,<305,37>) + public IReal util_Math_nroot$9e6edb0a3ad436fd(INumber x_0, IInteger n_1){ + + + return ((IReal)((IReal)$Math.nroot(x_0, n_1))); + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/util/Math.rsc|(6070,152,<308,0>,<316,22>) + public IReal util_Math_PI$5ff2190de6bfeaca(){ + + + return ((IReal)((IReal)$Math.PI())); + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/util/Math.rsc|(6225,323,<319,0>,<331,35>) + public IReal util_Math_pow$87f4c82cab4a297c(INumber x_0, IInteger y_1){ + + + return ((IReal)((IReal)$Math.pow(x_0, y_1))); + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/util/Math.rsc|(6550,327,<333,0>,<345,36>) + public IReal util_Math_pow$2845813828589954(INumber x_0, IReal y_1){ + + + return ((IReal)((IReal)$Math.pow(x_0, y_1))); + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/util/Math.rsc|(6880,127,<348,0>,<350,33>) + public IInteger util_Math_precision$096d067774cb10ba(INumber x_0){ + + + return ((IInteger)((IInteger)$Math.precision(x_0))); + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/util/Math.rsc|(7012,138,<355,0>,<357,41>) + public IReal util_Math_precision$df80f78f0ec7a633(INumber x_0, IInteger p_1){ + + + return ((IReal)((IReal)$Math.precision(x_0, p_1))); + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/util/Math.rsc|(7153,170,<360,0>,<362,36>) + public IInteger util_Math_setPrecision$e34d4ada2ae3c42f(IInteger p_0){ + + + return ((IInteger)((IInteger)$Math.setPrecision(p_0))); + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/util/Math.rsc|(7326,119,<365,0>,<367,29>) + public IInteger util_Math_scale$57ab720514843992(INumber x_0){ + + + return ((IInteger)((IInteger)$Math.scale(x_0))); + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/util/Math.rsc|(7448,127,<370,0>,<372,33>) + public IInteger util_Math_unscaled$44066a1c838c6c08(IReal x_0){ + + + return ((IInteger)((IInteger)$Math.unscaled(x_0))); + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/util/Math.rsc|(7578,155,<375,0>,<377,33>) + public IInteger util_Math_remainder$eff4c728c226a26d(IRational n_0){ + + + return ((IInteger)((IInteger)$Math.remainder(n_0))); + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/util/Math.rsc|(7736,327,<380,0>,<396,29>) + public IInteger util_Math_round$0ce679d3da862392(INumber d_0){ + + + return ((IInteger)((IInteger)$Math.round(d_0))); + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/util/Math.rsc|(8064,96,<397,0>,<397,96>) + public INumber util_Math_round$890d09d5b0a9251a(INumber r_0, INumber nearest_1){ + + + HashMap $typeBindings = new HashMap<>(); + if($T4.match(r_0.getType(), $typeBindings)){ + if($T4.match(nearest_1.getType(), $typeBindings)){ + final INumber $result6 = ((INumber)($aint_product_anum(((IInteger)($me.round(((INumber)($anum_divide_anum(((INumber)r_0),((INumber)($anum_product_areal(((INumber)nearest_1),((IReal)$constants.get(4)/*1.0*/)))))))))),((INumber)nearest_1)))); + if($T5.instantiate($typeBindings) != $TF.voidType() && $isSubtypeOf($result6.getType(),$T5)){ + return ((INumber)($result6)); + + } else { + return null; + } + } else { + return null; + } + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/util/Math.rsc|(8164,720,<401,0>,<416,61>) + public IReal util_Math_fitFloat$e288e1b3587e03aa(IReal r_0){ + + + return ((IReal)((IReal)$Math.fitFloat(r_0))); + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/util/Math.rsc|(8887,732,<419,0>,<433,62>) + public IReal util_Math_fitDouble$a6a47c152ee8e809(IReal r_0){ + + + return ((IReal)((IReal)$Math.fitDouble(r_0))); + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/util/Math.rsc|(9622,251,<436,0>,<445,78>) + public IInteger util_Math_percent$eb710c0af01295a1(INumber part_0, INumber whole_1){ + + + return ((IInteger)($me.round(((INumber)($anum_product_aint(((INumber)($anum_divide_anum(((INumber)part_0),((INumber)($anum_product_areal(((INumber)whole_1),((IReal)$constants.get(4)/*1.0*/))))))),((IInteger)$constants.get(5)/*100*/))))))); + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/util/Math.rsc|(9876,239,<448,0>,<460,28>) + public IReal util_Math_sin$9ed61b08a75c8bc3(INumber x_0){ + + + return ((IReal)((IReal)$Math.sin(x_0))); + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/util/Math.rsc|(10118,290,<463,0>,<475,29>) + public IReal util_Math_sqrt$2b673fb474e9231f(INumber x_0){ + + + return ((IReal)((IReal)$Math.sqrt(x_0))); + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/util/Math.rsc|(10411,246,<478,0>,<490,28>) + public IReal util_Math_tan$981a5d54892b4828(INumber x_0){ + + + return ((IReal)((IReal)$Math.tan(x_0))); + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/util/Math.rsc|(10660,666,<493,0>,<505,29>) + public IInteger util_Math_toInt$90db44238d53444e(INumber N_0){ + + + return ((IInteger)((IInteger)$Math.toInt(N_0))); + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/util/Math.rsc|(11329,175,<508,0>,<510,54>) + public IRational util_Math_toRat$f5f51286b388713b(IInteger numerator_0, IInteger denominator_1){ + + + return ((IRational)((IRational)$Math.toRat(numerator_0, denominator_1))); + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/util/Math.rsc|(11507,197,<513,0>,<522,31>) + public IReal util_Math_toReal$0f28a5d4173e938f(INumber N_0){ + + + return ((IReal)((IReal)$Math.toReal(N_0))); + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/util/Math.rsc|(11707,204,<525,0>,<534,32>) + public IString util_Math_toString$d077706afbfe26cb(INumber N_0){ + + + return ((IString)((IString)$Math.toString(N_0))); + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/util/Math.rsc|(11914,261,<537,0>,<540,99>) + private final ExpiringFunctionResultCache $memo_util_Math_primes$7f2a2df02bbf181b = new ExpiringFunctionResultCache(-1, -1); + public IList util_Math_primes$7f2a2df02bbf181b(IInteger upTo_0){ + + + final IValue[] $actuals = new IValue[] {upTo_0}; + IValue $memoVal = $memo_util_Math_primes$7f2a2df02bbf181b.lookup($actuals, Collections.emptyMap()); + if($memoVal != null) return (IList) $memoVal; + final IListWriter $listwriter7 = (IListWriter)$RVF.listWriter(); + final IInteger $lst2 = ((IInteger)upTo_0); + final boolean $dir3 = ((IInteger)$constants.get(6)/*2*/).less($lst2).getValue(); + + $LCOMP8_GEN12085: + for(IInteger $elem13 = ((IInteger)$constants.get(6)/*2*/); $dir3 ? $aint_less_aint($elem13,$lst2).getValue() + : $aint_lessequal_aint($elem13,$lst2).not().getValue(); $elem13 = $aint_add_aint($elem13,$dir3 ? ((IInteger)$constants.get(1)/*1*/) : ((IInteger)$constants.get(7)/*-1*/))){ + if(true){ + IInteger p_1 = ((IInteger)($elem13)); + if((((IBool)($aint_less_aint(((IInteger)p_1),((IInteger)$constants.get(8)/*4*/))))).getValue()){ + $listwriter7.append(p_1); + + } else { + IBool $done10 = (IBool)(((IBool)$constants.get(9)/*true*/)); + final IInteger $lst7 = ((IInteger)($aint_add_aint(((IInteger)($me.toInt(((INumber)($me.sqrt(((INumber)p_1))))))),((IInteger)$constants.get(1)/*1*/)))); + final boolean $dir8 = ((IInteger)$constants.get(6)/*2*/).less($lst7).getValue(); + + $ALL11_GEN12118: + for(IInteger $elem12 = ((IInteger)$constants.get(6)/*2*/); $dir8 ? $aint_less_aint($elem12,$lst7).getValue() + : $aint_lessequal_aint($elem12,$lst7).not().getValue(); $elem12 = $aint_add_aint($elem12,$dir8 ? ((IInteger)$constants.get(1)/*1*/) : ((IInteger)$constants.get(7)/*-1*/))){ + IInteger i_2 = null; + if((((IBool)($equal(((IInteger)p_1),((IInteger)($elem12))).not()))).getValue()){ + if((((IBool)($equal(((IInteger)(((IInteger)p_1).remainder(((IInteger)($elem12))))),((IInteger)$constants.get(0)/*0*/)).not()))).getValue()){ + continue $ALL11_GEN12118; + + } else { + continue $ALL11_GEN12118; + + } + + } else { + continue $ALL11_GEN12118; + + } + } + + if((((IBool)($done10))).getValue()){ + $listwriter7.append(p_1); + + } else { + continue $LCOMP8_GEN12085; + } + + } + + } else { + continue $LCOMP8_GEN12085; + }} + + $memoVal = $listwriter7.done(); + $memo_util_Math_primes$7f2a2df02bbf181b.store($actuals, Collections.emptyMap(), $memoVal); + return (IList)$memoVal; + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/util/Math.rsc|(12324,87,<544,0>,<544,87>) + public IInteger util_Math_arbPrime$e6701dcd9718f457(IInteger upTo_0){ + + + final IList $subject_val15 = ((IList)($me.primes(((IInteger)upTo_0)))); + IList ps_1 = ((IList)($subject_val15)); + return ((IInteger)($alist_subscript_int(((IList)ps_1),((IInteger)($me.arbInt(((IInteger)(M_List.size(((IList)ps_1))))))).intValue()))); + + } + + + public static void main(String[] args) { + throw new RuntimeException("No function `main` found in Rascal module `util::Math`"); + } +} \ No newline at end of file diff --git a/src/rascal/util/$Math.tpl b/src/rascal/util/$Math.tpl new file mode 100644 index 00000000000..b57b1586a92 Binary files /dev/null and b/src/rascal/util/$Math.tpl differ diff --git a/src/rascal/util/$Math_$I.java b/src/rascal/util/$Math_$I.java new file mode 100644 index 00000000000..38cab74ae6d --- /dev/null +++ b/src/rascal/util/$Math_$I.java @@ -0,0 +1,50 @@ +package rascal.util; +import io.usethesource.vallang.*; +import org.rascalmpl.runtime.function.*; + +@SuppressWarnings("unused") +public interface $Math_$I { + IValue E(); + IValue PI(); + IValue abs(IValue $0); + IValue arbInt(); + IValue arbInt(IValue $0); + IValue arbPrime(IValue $0); + IValue arbRat(); + IValue arbRat(IValue $0, IValue $1); + IValue arbReal(); + void arbSeed(IValue $0); + IValue ceil(IValue $0); + IValue cos(IValue $0); + IValue denominator(IValue $0); + IValue exp(IValue $0); + IValue fitDouble(IValue $0); + IValue fitFloat(IValue $0); + IValue floor(IValue $0); + IValue ln(IValue $0); + IValue log(IValue $0, IValue $1); + IValue log10(IValue $0); + IValue log2(IValue $0); + IValue max(IValue $0, IValue $1); + IValue min(IValue $0, IValue $1); + IValue nroot(IValue $0, IValue $1); + IValue numerator(IValue $0); + IValue percent(IValue $0, IValue $1); + IValue pow(IValue $0, IValue $1); + IValue precision(IValue $0); + IValue precision(IValue $0, IValue $1); + IValue primes(IValue $0); + IValue remainder(IValue $0); + IValue round(IValue $0); + IValue round(IValue $0, IValue $1); + IValue scale(IValue $0); + IValue setPrecision(IValue $0); + IValue sin(IValue $0); + IValue sqrt(IValue $0); + IValue tan(IValue $0); + IValue toInt(IValue $0); + IValue toRat(IValue $0, IValue $1); + IValue toReal(IValue $0); + IValue toString(IValue $0); + IValue unscaled(IValue $0); +} \ No newline at end of file diff --git a/src/rascal/util/$Maybe.constants b/src/rascal/util/$Maybe.constants new file mode 100644 index 00000000000..8b4bc9a8c17 Binary files /dev/null and b/src/rascal/util/$Maybe.constants differ diff --git a/src/rascal/util/$Maybe.java b/src/rascal/util/$Maybe.java new file mode 100644 index 00000000000..ae9d77a3121 --- /dev/null +++ b/src/rascal/util/$Maybe.java @@ -0,0 +1,81 @@ +package rascal.util; +import java.io.PrintWriter; +import java.io.StringWriter; +import java.io.InputStreamReader; +import java.io.PrintWriter; +import java.util.*; +import java.util.regex.Matcher; +import io.usethesource.vallang.*; +import io.usethesource.vallang.type.*; +import org.rascalmpl.runtime.*; +import org.rascalmpl.runtime.RascalExecutionContext; +import org.rascalmpl.runtime.function.*; +import org.rascalmpl.runtime.traverse.*; +import org.rascalmpl.runtime.utils.*; +import org.rascalmpl.exceptions.RuntimeExceptionFactory; +import org.rascalmpl.exceptions.Throw; +import org.rascalmpl.runtime.RascalExecutionContext; +import org.rascalmpl.interpreter.control_exceptions.Filtered; +import org.rascalmpl.types.NonTerminalType; +import org.rascalmpl.types.RascalTypeFactory; +import org.rascalmpl.util.ExpiringFunctionResultCache; +import org.rascalmpl.values.RascalValueFactory; +import org.rascalmpl.values.ValueFactoryFactory; +import org.rascalmpl.values.parsetrees.ITree; +import org.rascalmpl.values.parsetrees.TreeAdapter; + + + +@SuppressWarnings({"unused","unchecked","deprecation"}) +public class $Maybe + extends + org.rascalmpl.runtime.$RascalModule + implements + rascal.util.$Maybe_$I { + + private final $Maybe_$I $me; + private final IList $constants; + + + + + + public final io.usethesource.vallang.type.Type $T0; /*avalue()*/ + public final io.usethesource.vallang.type.Type $T1; /*aparameter("A",avalue(),closed=true)*/ + public final io.usethesource.vallang.type.Type $T2; /*aparameter("A",avalue(),closed=false,alabel="val")*/ + public final io.usethesource.vallang.type.Type ADT_Maybe_1; /*aadt("Maybe",[aparameter("A",avalue(),closed=true)],dataSyntax())*/ + public final io.usethesource.vallang.type.Type Maybe_1_nothing_; /*acons(aadt("Maybe",[aparameter("A",avalue(),closed=true)],dataSyntax()),[],[],alabel="nothing")*/ + public final io.usethesource.vallang.type.Type Maybe_1_just_; /*acons(aadt("Maybe",[aparameter("A",avalue(),closed=true)],dataSyntax()),[aparameter("A",avalue(),closed=false,alabel="val")],[],alabel="just")*/ + + public $Maybe(RascalExecutionContext rex){ + this(rex, null); + } + + public $Maybe(RascalExecutionContext rex, Object extended){ + super(rex); + this.$me = extended == null ? this : ($Maybe_$I)extended; + ModuleStore mstore = rex.getModuleStore(); + mstore.put(rascal.util.$Maybe.class, this); + + + + + + + $constants = readBinaryConstantsFile(this.getClass(), "rascal/util/$Maybe.constants", 0, "d751713988987e9331980363e24189ce"); + $T0 = $TF.valueType(); + $T1 = $TF.parameterType("A", $T0); + $T2 = $TF.parameterType("A", $T0); + ADT_Maybe_1 = $parameterizedAdt("Maybe", new Type[] { $T1 }); + Maybe_1_nothing_ = $TF.constructor($TS, ADT_Maybe_1, "nothing"); + Maybe_1_just_ = $TF.constructor($TS, ADT_Maybe_1, "just", $TF.parameterType("A", $T0), "val"); + + + + } + + + public static void main(String[] args) { + throw new RuntimeException("No function `main` found in Rascal module `util::Maybe`"); + } +} \ No newline at end of file diff --git a/src/rascal/util/$Maybe.tpl b/src/rascal/util/$Maybe.tpl new file mode 100644 index 00000000000..f76213491b7 Binary files /dev/null and b/src/rascal/util/$Maybe.tpl differ diff --git a/src/rascal/util/$Maybe_$I.java b/src/rascal/util/$Maybe_$I.java new file mode 100644 index 00000000000..05791d2e470 --- /dev/null +++ b/src/rascal/util/$Maybe_$I.java @@ -0,0 +1,8 @@ +package rascal.util; +import io.usethesource.vallang.*; +import org.rascalmpl.runtime.function.*; + +@SuppressWarnings("unused") +public interface $Maybe_$I { + +} \ No newline at end of file diff --git a/src/rascal/util/$Monitor.constants b/src/rascal/util/$Monitor.constants new file mode 100644 index 00000000000..6f47606a395 Binary files /dev/null and b/src/rascal/util/$Monitor.constants differ diff --git a/src/rascal/util/$Monitor.java b/src/rascal/util/$Monitor.java new file mode 100644 index 00000000000..f337939a04b --- /dev/null +++ b/src/rascal/util/$Monitor.java @@ -0,0 +1,702 @@ +package rascal.util; +import java.io.PrintWriter; +import java.io.StringWriter; +import java.io.InputStreamReader; +import java.io.PrintWriter; +import java.util.*; +import java.util.regex.Matcher; +import io.usethesource.vallang.*; +import io.usethesource.vallang.type.*; +import org.rascalmpl.runtime.*; +import org.rascalmpl.runtime.RascalExecutionContext; +import org.rascalmpl.runtime.function.*; +import org.rascalmpl.runtime.traverse.*; +import org.rascalmpl.runtime.utils.*; +import org.rascalmpl.exceptions.RuntimeExceptionFactory; +import org.rascalmpl.exceptions.Throw; +import org.rascalmpl.runtime.RascalExecutionContext; +import org.rascalmpl.interpreter.control_exceptions.Filtered; +import org.rascalmpl.types.NonTerminalType; +import org.rascalmpl.types.RascalTypeFactory; +import org.rascalmpl.util.ExpiringFunctionResultCache; +import org.rascalmpl.values.RascalValueFactory; +import org.rascalmpl.values.ValueFactoryFactory; +import org.rascalmpl.values.parsetrees.ITree; +import org.rascalmpl.values.parsetrees.TreeAdapter; + + + +@SuppressWarnings({"unused","unchecked","deprecation"}) +public class $Monitor + extends + org.rascalmpl.runtime.$RascalModule + implements + rascal.util.$Monitor_$I { + + private final $Monitor_$I $me; + private final IList $constants; + final java.util.Map $kwpDefaults_util_Monitor_jobStart$6eca9de903da5efd; + final java.util.Map $kwpDefaults_util_Monitor_jobStep$c4ecb3797f3fc35b; + final java.util.Map $kwpDefaults_util_Monitor_jobEnd$0d9e8a42d2c9205b; + final java.util.Map $kwpDefaults_util_Monitor_jobTodo$e0b8657ec7d3254d; + final java.util.Map $kwpDefaults_util_Monitor_job$709fc0dd3ef7ac2b; + final java.util.Map $kwpDefaults_util_Monitor_job$099df0963e4ce399; + final java.util.Map $kwpDefaults_util_Monitor_job$67c9665eb8ce1e4f; + final java.util.Map $kwpDefaults_util_Monitor_job$93fbc1bd1b37a8be; + + + public final rascal.$IO M_IO; + public final rascal.util.$Math M_util_Math; + public final rascal.$Exception M_Exception; + + + final org.rascalmpl.library.util.Monitor $Monitor; // TODO: asBaseClassName will generate name collisions if there are more of the same name in different packages + + + public final io.usethesource.vallang.type.Type $T13; /*aloc()*/ + public final io.usethesource.vallang.type.Type $T9; /*aint(alabel="worked")*/ + public final io.usethesource.vallang.type.Type $T0; /*astr()*/ + public final io.usethesource.vallang.type.Type $T2; /*avalue()*/ + public final io.usethesource.vallang.type.Type $T17; /*aint(alabel="_")*/ + public final io.usethesource.vallang.type.Type $T15; /*aparameter("T",avalue(),closed=true)*/ + public final io.usethesource.vallang.type.Type $T3; /*aparameter("T",avalue(),closed=false)*/ + public final io.usethesource.vallang.type.Type $T5; /*avoid()*/ + public final io.usethesource.vallang.type.Type $T8; /*astr(alabel="message")*/ + public final io.usethesource.vallang.type.Type $T18; /*afunc(avoid(),[aint(alabel="_")],[],alabel="_")*/ + public final io.usethesource.vallang.type.Type $T16; /*afunc(avoid(),[afunc(avoid(),[aint(alabel="_")],[],alabel="_")],[])*/ + public final io.usethesource.vallang.type.Type $T6; /*afunc(avoid(),[],[],alabel="step")*/ + public final io.usethesource.vallang.type.Type ADT_LocationType; /*aadt("LocationType",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type $T4; /*afunc(aparameter("T",avalue(),closed=false),[afunc(avoid(),[],[],alabel="step")],[])*/ + public final io.usethesource.vallang.type.Type ADT_LocationChangeType; /*aadt("LocationChangeType",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type $T12; /*afunc(avoid(),[aint(alabel="worked")],[],alabel="step")*/ + public final io.usethesource.vallang.type.Type $T11; /*afunc(aparameter("T",avalue(),closed=false),[afunc(avoid(),[aint(alabel="worked")],[],alabel="step")],[])*/ + public final io.usethesource.vallang.type.Type $T1; /*afunc(aparameter("T",avalue(),closed=false),[],[])*/ + public final io.usethesource.vallang.type.Type $T10; /*afunc(avoid(),[astr(alabel="message"),aint(alabel="worked")],[],alabel="step")*/ + public final io.usethesource.vallang.type.Type $T7; /*afunc(aparameter("T",avalue(),closed=false),[afunc(avoid(),[astr(alabel="message"),aint(alabel="worked")],[],alabel="step")],[])*/ + public final io.usethesource.vallang.type.Type $T20; /*afunc(avoid(),[],[],returnsViaAllPath=false)*/ + public final io.usethesource.vallang.type.Type ADT_LocationChangeEvent; /*aadt("LocationChangeEvent",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type $T19; /*afunc(avoid(),[aint(alabel="worked")],[],returnsViaAllPath=false)*/ + public final io.usethesource.vallang.type.Type ADT_RuntimeException; /*aadt("RuntimeException",[],dataSyntax())*/ + public final io.usethesource.vallang.type.Type $T14; /*afunc(avoid(),[astr(alabel="message"),aint(alabel="worked")],[],returnsViaAllPath=false)*/ + public final io.usethesource.vallang.type.Type ADT_IOCapability; /*aadt("IOCapability",[],dataSyntax())*/ + + public $Monitor(RascalExecutionContext rex){ + this(rex, null); + } + + public $Monitor(RascalExecutionContext rex, Object extended){ + super(rex); + this.$me = extended == null ? this : ($Monitor_$I)extended; + ModuleStore mstore = rex.getModuleStore(); + mstore.put(rascal.util.$Monitor.class, this); + + mstore.importModule(rascal.$IO.class, rex, rascal.$IO::new); + mstore.importModule(rascal.util.$Math.class, rex, rascal.util.$Math::new); + mstore.importModule(rascal.$Exception.class, rex, rascal.$Exception::new); + + M_IO = mstore.getModule(rascal.$IO.class); + M_util_Math = mstore.getModule(rascal.util.$Math.class); + M_Exception = mstore.getModule(rascal.$Exception.class); + + + + $TS.importStore(M_IO.$TS); + $TS.importStore(M_util_Math.$TS); + $TS.importStore(M_Exception.$TS); + + $Monitor = $initLibrary("org.rascalmpl.library.util.Monitor"); + + $constants = readBinaryConstantsFile(this.getClass(), "rascal/util/$Monitor.constants", 33, "ada24d8086546d9541cf3e78dea45c77"); + ADT_LocationType = $adt("LocationType"); + ADT_LocationChangeType = $adt("LocationChangeType"); + ADT_LocationChangeEvent = $adt("LocationChangeEvent"); + ADT_RuntimeException = $adt("RuntimeException"); + ADT_IOCapability = $adt("IOCapability"); + $T13 = $TF.sourceLocationType(); + $T9 = $TF.integerType(); + $T0 = $TF.stringType(); + $T2 = $TF.valueType(); + $T17 = $TF.integerType(); + $T15 = $TF.parameterType("T", $T2); + $T3 = $TF.parameterType("T", $T2); + $T5 = $TF.voidType(); + $T8 = $TF.stringType(); + $T18 = $TF.functionType($T5, $TF.tupleType($T17, "_"), $TF.tupleEmpty()); + $T16 = $TF.functionType($T5, $TF.tupleType($T18, "_"), $TF.tupleEmpty()); + $T6 = $TF.functionType($T5, $TF.tupleEmpty(), $TF.tupleEmpty()); + $T4 = $TF.functionType($T3, $TF.tupleType($T6, "step"), $TF.tupleEmpty()); + $T12 = $TF.functionType($T5, $TF.tupleType($T9, "worked"), $TF.tupleEmpty()); + $T11 = $TF.functionType($T3, $TF.tupleType($T12, "step"), $TF.tupleEmpty()); + $T1 = $TF.functionType($T3, $TF.tupleEmpty(), $TF.tupleEmpty()); + $T10 = $TF.functionType($T5, $TF.tupleType($T8, "message", $T9, "worked"), $TF.tupleEmpty()); + $T7 = $TF.functionType($T3, $TF.tupleType($T10, "step"), $TF.tupleEmpty()); + $T20 = $TF.functionType($T5, $TF.tupleEmpty(), $TF.tupleEmpty()); + $T19 = $TF.functionType($T5, $TF.tupleType($T9, "worked"), $TF.tupleEmpty()); + $T14 = $TF.functionType($T5, $TF.tupleType($T8, "message", $T9, "worked"), $TF.tupleEmpty()); + + + $kwpDefaults_util_Monitor_jobStart$6eca9de903da5efd = Util.kwpMap("work", ((IInteger)$constants.get(0)/*1*/), "totalWork", ((IInteger)$constants.get(1)/*100*/)); + $kwpDefaults_util_Monitor_jobStep$c4ecb3797f3fc35b = Util.kwpMap("work", ((IInteger)$constants.get(0)/*1*/)); + $kwpDefaults_util_Monitor_jobEnd$0d9e8a42d2c9205b = Util.kwpMap("success", ((IBool)$constants.get(2)/*true*/)); + $kwpDefaults_util_Monitor_jobTodo$e0b8657ec7d3254d = Util.kwpMap("work", ((IInteger)$constants.get(0)/*1*/)); + $kwpDefaults_util_Monitor_job$709fc0dd3ef7ac2b = Util.kwpMap("totalWork", ((IInteger)$constants.get(1)/*100*/)); + $kwpDefaults_util_Monitor_job$099df0963e4ce399 = Util.kwpMap("totalWork", ((IInteger)$constants.get(0)/*1*/)); + $kwpDefaults_util_Monitor_job$67c9665eb8ce1e4f = Util.kwpMap("totalWork", ((IInteger)$constants.get(0)/*1*/)); + $kwpDefaults_util_Monitor_job$93fbc1bd1b37a8be = Util.kwpMap("totalWork", ((IInteger)$constants.get(0)/*1*/)); + + } + public IValue job(IValue $P0, IValue $P1, java.util.Map $kwpActuals){ // Generated by Resolver + IValue $result = null; + Type $P0Type = $P0.getType(); + Type $P1Type = $P1.getType(); + if($isSubtypeOf($P0Type,$T0) && $isSubtypeOf($P1Type,$T1)){ + $result = (IValue)util_Monitor_job$93fbc1bd1b37a8be((IString) $P0, (TypedFunctionInstance0) $P1, $kwpActuals); + if($result != null) return $result; + } + if($isSubtypeOf($P0Type,$T0) && $isSubtypeOf($P1Type,$T4)){ + $result = (IValue)util_Monitor_job$67c9665eb8ce1e4f((IString) $P0, (TypedFunctionInstance1) $P1, $kwpActuals); + if($result != null) return $result; + } + if($isSubtypeOf($P0Type,$T0) && $isSubtypeOf($P1Type,$T7)){ + $result = (IValue)util_Monitor_job$709fc0dd3ef7ac2b((IString) $P0, (TypedFunctionInstance1) $P1, $kwpActuals); + if($result != null) return $result; + } + if($isSubtypeOf($P0Type,$T0) && $isSubtypeOf($P1Type,$T11)){ + $result = (IValue)util_Monitor_job$099df0963e4ce399((IString) $P0, (TypedFunctionInstance1) $P1, $kwpActuals); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0, $P1)); + } + public IBool horseRaceTest(){ // Generated by Resolver + IBool $result = null; + $result = (IBool)util_Monitor_horseRaceTest$4c48533f01fc7dde(); + if($result != null) return $result; + throw RuntimeExceptionFactory.callFailed($RVF.list()); + } + public IBool unfinishedLinesAtTheEndTest(){ // Generated by Resolver + IBool $result = null; + $result = (IBool)util_Monitor_unfinishedLinesAtTheEndTest$570d0a42211dec4a(); + if($result != null) return $result; + throw RuntimeExceptionFactory.callFailed($RVF.list()); + } + public void jobTodo(IValue $P0, java.util.Map $kwpActuals){ // Generated by Resolver + Type $P0Type = $P0.getType(); + if($isSubtypeOf($P0Type,$T0)){ + try { util_Monitor_jobTodo$e0b8657ec7d3254d((IString) $P0, $kwpActuals); return; } catch (FailReturnFromVoidException e){}; + + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0)); + } + public void jobStart(IValue $P0, java.util.Map $kwpActuals){ // Generated by Resolver + Type $P0Type = $P0.getType(); + if($isSubtypeOf($P0Type,$T0)){ + try { util_Monitor_jobStart$6eca9de903da5efd((IString) $P0, $kwpActuals); return; } catch (FailReturnFromVoidException e){}; + + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0)); + } + public IBool printLongUnfinishedLine(){ // Generated by Resolver + IBool $result = null; + $result = (IBool)util_Monitor_printLongUnfinishedLine$2f78e7621c7925e7(); + if($result != null) return $result; + throw RuntimeExceptionFactory.callFailed($RVF.list()); + } + public void jobStep(IValue $P0, IValue $P1, java.util.Map $kwpActuals){ // Generated by Resolver + Type $P0Type = $P0.getType(); + Type $P1Type = $P1.getType(); + if($isSubtypeOf($P0Type,$T0) && $isSubtypeOf($P1Type,$T8)){ + try { util_Monitor_jobStep$c4ecb3797f3fc35b((IString) $P0, (IString) $P1, $kwpActuals); return; } catch (FailReturnFromVoidException e){}; + + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0, $P1)); + } + public void jobIsCancelled(IValue $P0){ // Generated by Resolver + Type $P0Type = $P0.getType(); + if($isSubtypeOf($P0Type,$T0)){ + try { util_Monitor_jobIsCancelled$ae51a0847a2bc628((IString) $P0); return; } catch (FailReturnFromVoidException e){}; + + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0)); + } + public void println(IValue $P0){ // Generated by Resolver + M_IO.println($P0); + } + public void println(){ // Generated by Resolver + M_IO.println(); + } + public IBool unfinishedInputTest(){ // Generated by Resolver + IBool $result = null; + $result = (IBool)util_Monitor_unfinishedInputTest$da9d8a429289172b(); + if($result != null) return $result; + throw RuntimeExceptionFactory.callFailed($RVF.list()); + } + public IBool simpleAsyncPrintTest(){ // Generated by Resolver + IBool $result = null; + $result = (IBool)util_Monitor_simpleAsyncPrintTest$924211391293f22a(); + if($result != null) return $result; + throw RuntimeExceptionFactory.callFailed($RVF.list()); + } + public IInteger jobEnd(IValue $P0, java.util.Map $kwpActuals){ // Generated by Resolver + IInteger $result = null; + Type $P0Type = $P0.getType(); + if($isSubtypeOf($P0Type,$T0)){ + $result = (IInteger)util_Monitor_jobEnd$0d9e8a42d2c9205b((IString) $P0, $kwpActuals); + if($result != null) return $result; + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0)); + } + public IInteger arbInt(IValue $P0){ // Generated by Resolver + return (IInteger) M_util_Math.arbInt($P0); + } + public IInteger arbInt(){ // Generated by Resolver + return (IInteger) M_util_Math.arbInt(); + } + public void jobWarning(IValue $P0, IValue $P1){ // Generated by Resolver + Type $P0Type = $P0.getType(); + Type $P1Type = $P1.getType(); + if($isSubtypeOf($P0Type,$T8) && $isSubtypeOf($P1Type,$T13)){ + try { util_Monitor_jobWarning$616762a66a90052b((IString) $P0, (ISourceLocation) $P1); return; } catch (FailReturnFromVoidException e){}; + + } + + throw RuntimeExceptionFactory.callFailed($RVF.list($P0, $P1)); + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/util/Monitor.rsc|(478,1430,<18,0>,<41,61>) + public void util_Monitor_jobStart$6eca9de903da5efd(IString label_0, java.util.Map $kwpActuals){ + + java.util.Map $kwpDefaults = $kwpDefaults_util_Monitor_jobStart$6eca9de903da5efd; + + $Monitor.jobStart(label_0, (IInteger)($kwpActuals.containsKey("work") ? $kwpActuals.get("work") : $kwpDefaults.get("work")), (IInteger)($kwpActuals.containsKey("totalWork") ? $kwpActuals.get("totalWork") : $kwpDefaults.get("totalWork"))); + return; + + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/util/Monitor.rsc|(1910,200,<43,0>,<45,56>) + public void util_Monitor_jobStep$c4ecb3797f3fc35b(IString label_0, IString message_1, java.util.Map $kwpActuals){ + + java.util.Map $kwpDefaults = $kwpDefaults_util_Monitor_jobStep$c4ecb3797f3fc35b; + + $Monitor.jobStep(label_0, message_1, (IInteger)($kwpActuals.containsKey("work") ? $kwpActuals.get("work") : $kwpDefaults.get("work"))); + return; + + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/util/Monitor.rsc|(2112,126,<47,0>,<49,46>) + public IInteger util_Monitor_jobEnd$0d9e8a42d2c9205b(IString label_0, java.util.Map $kwpActuals){ + + java.util.Map $kwpDefaults = $kwpDefaults_util_Monitor_jobEnd$0d9e8a42d2c9205b; + + return ((IInteger)((IInteger)$Monitor.jobEnd(label_0, (IBool)($kwpActuals.containsKey("success") ? $kwpActuals.get("success") : $kwpDefaults.get("success"))))); + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/util/Monitor.rsc|(2240,147,<51,0>,<53,41>) + public void util_Monitor_jobTodo$e0b8657ec7d3254d(IString label_0, java.util.Map $kwpActuals){ + + java.util.Map $kwpDefaults = $kwpDefaults_util_Monitor_jobTodo$e0b8657ec7d3254d; + + $Monitor.jobTodo(label_0, (IInteger)($kwpActuals.containsKey("work") ? $kwpActuals.get("work") : $kwpDefaults.get("work"))); + return; + + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/util/Monitor.rsc|(2389,159,<55,0>,<57,36>) + public void util_Monitor_jobIsCancelled$ae51a0847a2bc628(IString label_0){ + + + $Monitor.jobIsCancelled(label_0); + return; + + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/util/Monitor.rsc|(2550,167,<59,0>,<61,43>) + public void util_Monitor_jobWarning$616762a66a90052b(IString message_0, ISourceLocation src_1){ + + + $Monitor.jobWarning(message_0, src_1); + return; + + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/util/Monitor.rsc|(3447,83,<78,17>,<80,5>) + public void $CLOSURE_0(IString message_0, IInteger worked_1, ValueRef label_0){ + + + $me.jobStep(label_0.getValue(), ((IString)message_0), Util.kwpMap("work", worked_1)); + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/util/Monitor.rsc|(2719,885,<63,0>,<88,1>) + public IValue util_Monitor_job$709fc0dd3ef7ac2b(IString $aux_label_0, TypedFunctionInstance1 block_1, java.util.Map $kwpActuals){ + ValueRef label_0 = new ValueRef("label_0", $aux_label_0); + + java.util.Map $kwpDefaults = $kwpDefaults_util_Monitor_job$709fc0dd3ef7ac2b; + + HashMap $typeBindings = new HashMap<>(); + if($T7.match(block_1.getType(), $typeBindings)){ + try { + $me.jobStart(label_0.getValue(), Util.kwpMapExtend(Util.kwpMapRemoveRedeclared($kwpActuals, "totalWork"), "totalWork", ((IInteger) ($kwpActuals.containsKey("totalWork") ? $kwpActuals.get("totalWork") : $kwpDefaults.get("totalWork"))))); + final IValue $result1 = ((IValue)(((TypedFunctionInstance1)block_1).typedCall(new TypedFunctionInstance2(($3447_0, $3447_1) -> { $CLOSURE_0((IString)$3447_0, (IInteger)$3447_1, label_0);return null; }, $T14)))); + if($T15.instantiate($typeBindings) != $TF.voidType() && $isSubtypeOf($result1.getType(),$T15)){ + return ((IValue)($result1)); + + } else { + return null; + } + } catch (Throw $thrown0_as_exception) { + IValue $thrown0 = $thrown0_as_exception.getException(); + + IValue x_3 = ((IValue)($thrown0)); + throw new Throw(x_3); + } + finally { + $me.jobEnd(label_0.getValue(), $kwpActuals);} + + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/util/Monitor.rsc|(4502,68,<109,17>,<111,5>) + public void $CLOSURE_1(IInteger worked_0, ValueRef label_0){ + + + $me.jobStep(label_0.getValue(), label_0.getValue(), Util.kwpMap("work", worked_0)); + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/util/Monitor.rsc|(3606,1037,<90,0>,<119,1>) + public IValue util_Monitor_job$099df0963e4ce399(IString $aux_label_0, TypedFunctionInstance1 block_1, java.util.Map $kwpActuals){ + ValueRef label_0 = new ValueRef("label_0", $aux_label_0); + + java.util.Map $kwpDefaults = $kwpDefaults_util_Monitor_job$099df0963e4ce399; + + HashMap $typeBindings = new HashMap<>(); + if($T11.match(block_1.getType(), $typeBindings)){ + if($isSubtypeOf(block_1.getType(),$T16.instantiate($typeBindings))){ + throw new Throw($RVF.constructor(M_Exception.RuntimeException_IllegalArgument_value_str, new IValue[]{((IValue)block_1), ((IString)$constants.get(3)/*"`block` argument can not be used by job because it returns `void` and `job` must return something."*/)})); + } + try { + $me.jobStart(label_0.getValue(), Util.kwpMapExtend(Util.kwpMapRemoveRedeclared($kwpActuals, "totalWork"), "totalWork", ((IInteger) ($kwpActuals.containsKey("totalWork") ? $kwpActuals.get("totalWork") : $kwpDefaults.get("totalWork"))))); + final IValue $result3 = ((IValue)(((TypedFunctionInstance1)block_1).typedCall(new TypedFunctionInstance1(($4502_0) -> { $CLOSURE_1((IInteger)$4502_0, label_0);return null; }, $T19)))); + if($T15.instantiate($typeBindings) != $TF.voidType() && $isSubtypeOf($result3.getType(),$T15)){ + return ((IValue)($result3)); + + } else { + return null; + } + } catch (Throw $thrown2_as_exception) { + IValue $thrown2 = $thrown2_as_exception.getException(); + + IValue x_3 = ((IValue)($thrown2)); + throw new Throw(x_3); + } + finally { + $me.jobEnd(label_0.getValue(), $kwpActuals);} + + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/util/Monitor.rsc|(5336,52,<136,17>,<138,5>) + public void $CLOSURE_2(ValueRef label_0){ + + + $me.jobStep(label_0.getValue(), label_0.getValue(), Util.kwpMap("work", ((IInteger)$constants.get(0)/*1*/))); + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/util/Monitor.rsc|(4645,816,<121,0>,<146,1>) + public IValue util_Monitor_job$67c9665eb8ce1e4f(IString $aux_label_0, TypedFunctionInstance1 block_1, java.util.Map $kwpActuals){ + ValueRef label_0 = new ValueRef("label_0", $aux_label_0); + + java.util.Map $kwpDefaults = $kwpDefaults_util_Monitor_job$67c9665eb8ce1e4f; + + HashMap $typeBindings = new HashMap<>(); + if($T4.match(block_1.getType(), $typeBindings)){ + try { + $me.jobStart(label_0.getValue(), Util.kwpMapExtend(Util.kwpMapRemoveRedeclared($kwpActuals, "totalWork"), "totalWork", ((IInteger) ($kwpActuals.containsKey("totalWork") ? $kwpActuals.get("totalWork") : $kwpDefaults.get("totalWork"))))); + final IValue $result5 = ((IValue)(((TypedFunctionInstance1)block_1).typedCall(new TypedFunctionInstance0(() -> { $CLOSURE_2(label_0);return null; }, $T20)))); + if($T15.instantiate($typeBindings) != $TF.voidType() && $isSubtypeOf($result5.getType(),$T15)){ + return ((IValue)($result5)); + + } else { + return null; + } + } catch (Throw $thrown4_as_exception) { + IValue $thrown4 = $thrown4_as_exception.getException(); + + IValue x_3 = ((IValue)($thrown4)); + throw new Throw(x_3); + } + finally { + $me.jobEnd(label_0.getValue(), $kwpActuals);} + + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/util/Monitor.rsc|(5463,455,<148,0>,<164,1>) + public IValue util_Monitor_job$93fbc1bd1b37a8be(IString label_0, TypedFunctionInstance0 block_1, java.util.Map $kwpActuals){ + + java.util.Map $kwpDefaults = $kwpDefaults_util_Monitor_job$93fbc1bd1b37a8be; + + HashMap $typeBindings = new HashMap<>(); + if($T1.match(block_1.getType(), $typeBindings)){ + try { + $me.jobStart(((IString)label_0), Util.kwpMapExtend(Util.kwpMapRemoveRedeclared($kwpActuals, "totalWork"), "totalWork", ((IInteger) ($kwpActuals.containsKey("totalWork") ? $kwpActuals.get("totalWork") : $kwpDefaults.get("totalWork"))))); + final IValue $result7 = ((IValue)(((TypedFunctionInstance0)block_1).typedCall())); + if($T15.instantiate($typeBindings) != $TF.voidType() && $isSubtypeOf($result7.getType(),$T15)){ + return ((IValue)($result7)); + + } else { + return null; + } + } catch (Throw $thrown6_as_exception) { + IValue $thrown6 = $thrown6_as_exception.getException(); + + IValue x_3 = ((IValue)($thrown6)); + throw new Throw(x_3); + } + finally { + $me.jobEnd(((IString)label_0), $kwpActuals);} + + } else { + return null; + } + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/util/Monitor.rsc|(5920,824,<166,0>,<194,1>) + public IBool util_Monitor_horseRaceTest$4c48533f01fc7dde(){ + + + IInteger distance_0 = ((IInteger)$constants.get(4)/*3000000*/); + IInteger stride_1 = ((IInteger)$constants.get(5)/*50*/); + IInteger horses_2 = ((IInteger)$constants.get(6)/*5*/); + final IListWriter $listwriter8 = (IListWriter)$RVF.listWriter(); + final IInteger $lst2 = ((IInteger)horses_2); + final boolean $dir3 = ((IInteger)$constants.get(7)/*0*/).less($lst2).getValue(); + + $LCOMP9_GEN6132: + for(IInteger $elem10 = ((IInteger)$constants.get(7)/*0*/); $dir3 ? $aint_less_aint($elem10,$lst2).getValue() + : $aint_lessequal_aint($elem10,$lst2).not().getValue(); $elem10 = $aint_add_aint($elem10,$dir3 ? ((IInteger)$constants.get(0)/*1*/) : ((IInteger)$constants.get(8)/*-1*/))){ + $listwriter8.append(M_util_Math.arbInt(((IInteger)($aint_divide_aint(((IInteger)($aint_product_aint(((IInteger)stride_1),((IInteger)$constants.get(9)/*15*/)))),((IInteger)$constants.get(1)/*100*/)))))); + } + + IList handicaps_3 = ((IList)($listwriter8.done())); + final IListWriter $listwriter11 = (IListWriter)$RVF.listWriter(); + final IInteger $lst7 = ((IInteger)horses_2); + final boolean $dir8 = ((IInteger)$constants.get(7)/*0*/).less($lst7).getValue(); + + $LCOMP12_GEN6210: + for(IInteger $elem14 = ((IInteger)$constants.get(7)/*0*/); $dir8 ? $aint_less_aint($elem14,$lst7).getValue() + : $aint_lessequal_aint($elem14,$lst7).not().getValue(); $elem14 = $aint_add_aint($elem14,$dir8 ? ((IInteger)$constants.get(0)/*1*/) : ((IInteger)$constants.get(8)/*-1*/))){ + IInteger h_5 = null; + final Template $template13 = (Template)new Template($RVF, "Horse "); + $template13.beginIndent(" "); + $template13.addVal($elem14); + $template13.endIndent(" "); + $template13.addStr(" (handicap is "); + $template13.beginIndent(" "); + $template13.addVal($alist_subscript_int(((IList)handicaps_3),((IInteger)($elem14)).intValue())); + $template13.endIndent(" "); + $template13.addStr(")"); + $listwriter11.append($template13.close()); + } + + IList labels_4 = ((IList)($listwriter11.done())); + final IListWriter $listwriter15 = (IListWriter)$RVF.listWriter(); + final IInteger $lst12 = ((IInteger)horses_2); + final boolean $dir13 = ((IInteger)$constants.get(7)/*0*/).less($lst12).getValue(); + + $LCOMP16_GEN6276: + for(IInteger $elem17 = ((IInteger)$constants.get(7)/*0*/); $dir13 ? $aint_less_aint($elem17,$lst12).getValue() + : $aint_lessequal_aint($elem17,$lst12).not().getValue(); $elem17 = $aint_add_aint($elem17,$dir13 ? ((IInteger)$constants.get(0)/*1*/) : ((IInteger)$constants.get(8)/*-1*/))){ + $listwriter15.append(((IInteger)$constants.get(7)/*0*/)); + } + + IList progress_6 = ((IList)($listwriter15.done())); + /*muExists*/FOR5: + do { + final IInteger $lst17 = ((IInteger)horses_2); + final boolean $dir18 = ((IInteger)$constants.get(7)/*0*/).less($lst17).getValue(); + + FOR5_GEN6304: + for(IInteger $elem18 = ((IInteger)$constants.get(7)/*0*/); $dir18 ? $aint_less_aint($elem18,$lst17).getValue() + : $aint_lessequal_aint($elem18,$lst17).not().getValue(); $elem18 = $aint_add_aint($elem18,$dir18 ? ((IInteger)$constants.get(0)/*1*/) : ((IInteger)$constants.get(8)/*-1*/))){ + IInteger h_7 = ((IInteger)($elem18)); + $me.jobStart(((IString)($alist_subscript_int(((IList)labels_4),((IInteger)h_7).intValue()))), Util.kwpMap("totalWork", distance_0)); + } + continue FOR5; + + } while(false); + /* void: muCon([]) *//*muExists*/race_BT: + do { + race: + while(true){ + /*muExists*/FOR6: + do { + final IInteger $lst22 = ((IInteger)horses_2); + final boolean $dir23 = ((IInteger)$constants.get(7)/*0*/).less($lst22).getValue(); + + FOR6_GEN6402: + for(IInteger $elem20 = ((IInteger)$constants.get(7)/*0*/); $dir23 ? $aint_less_aint($elem20,$lst22).getValue() + : $aint_lessequal_aint($elem20,$lst22).not().getValue(); $elem20 = $aint_add_aint($elem20,$dir23 ? ((IInteger)$constants.get(0)/*1*/) : ((IInteger)$constants.get(8)/*-1*/))){ + IInteger h_8 = ((IInteger)($elem20)); + IInteger advance_9 = ((IInteger)(M_util_Math.arbInt(((IInteger)(((IInteger) ((IInteger)stride_1).subtract(((IInteger)($alist_subscript_int(((IList)handicaps_3),((IInteger)h_8).intValue())))))))))); + progress_6 = ((IList)($alist_update(((IInteger)h_8).intValue(),$aint_add_aint(((IInteger)($alist_subscript_int(((IList)progress_6),((IInteger)h_8).intValue()))),((IInteger)advance_9)),((IList)(progress_6))))); + final Template $template19 = (Template)new Template($RVF, "Pacing horse "); + $template19.beginIndent(" "); + $template19.addVal(h_8); + $template19.endIndent(" "); + $template19.addStr(" with "); + $template19.beginIndent(" "); + $template19.addVal(advance_9); + $template19.endIndent(" "); + $template19.addStr("..."); + $me.jobStep(((IString)($alist_subscript_int(((IList)labels_4),((IInteger)h_8).intValue()))), ((IString)($template19.close())), Util.kwpMap("work", advance_9)); + if((((IBool)($aint_less_aint(((IInteger)($alist_subscript_int(((IList)progress_6),((IInteger)h_8).intValue()))),((IInteger)distance_0)).not()))).getValue()){ + break race; // muBreak + + } + } + continue FOR6; + + } while(false); + /* void: muCon([]) */ + } + + } while(false); + /* void: muCon([]) *//*muExists*/FOR8: + do { + final IInteger $lst27 = ((IInteger)horses_2); + final boolean $dir28 = ((IInteger)$constants.get(7)/*0*/).less($lst27).getValue(); + + FOR8_GEN6681: + for(IInteger $elem21 = ((IInteger)$constants.get(7)/*0*/); $dir28 ? $aint_less_aint($elem21,$lst27).getValue() + : $aint_lessequal_aint($elem21,$lst27).not().getValue(); $elem21 = $aint_add_aint($elem21,$dir28 ? ((IInteger)$constants.get(0)/*1*/) : ((IInteger)$constants.get(8)/*-1*/))){ + IInteger h_10 = ((IInteger)($elem21)); + $me.jobEnd(((IString)($alist_subscript_int(((IList)labels_4),((IInteger)h_10).intValue()))), Util.kwpMap()); + } + continue FOR8; + + } while(false); + /* void: muCon([]) */return ((IBool)$constants.get(2)/*true*/); + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/util/Monitor.rsc|(6746,272,<196,0>,<207,1>) + public IBool util_Monitor_simpleAsyncPrintTest$924211391293f22a(){ + + + $me.jobStart(((IString)$constants.get(10)/*"job"*/), Util.kwpMap("totalWork", ((IInteger)$constants.get(11)/*3*/))); + M_IO.println(((IString)$constants.get(12)/*"a"*/)); + $me.jobStep(((IString)$constants.get(10)/*"job"*/), ((IString)$constants.get(13)/*"step 1"*/), Util.kwpMap("work", ((IInteger)$constants.get(0)/*1*/))); + M_IO.println(((IString)$constants.get(14)/*"b"*/)); + $me.jobStep(((IString)$constants.get(10)/*"job"*/), ((IString)$constants.get(15)/*"step 2"*/), Util.kwpMap("work", ((IInteger)$constants.get(0)/*1*/))); + M_IO.println(((IString)$constants.get(16)/*"c"*/)); + $me.jobStep(((IString)$constants.get(10)/*"job"*/), ((IString)$constants.get(17)/*"step 3"*/), Util.kwpMap("work", ((IInteger)$constants.get(0)/*1*/))); + M_IO.println(((IString)$constants.get(18)/*"d"*/)); + $me.jobEnd(((IString)$constants.get(10)/*"job"*/), Util.kwpMap()); + return ((IBool)$constants.get(2)/*true*/); + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/util/Monitor.rsc|(7020,319,<209,0>,<221,1>) + public IBool util_Monitor_unfinishedInputTest$da9d8a429289172b(){ + + + $me.jobStart(((IString)$constants.get(10)/*"job"*/), Util.kwpMap("totalWork", ((IInteger)$constants.get(19)/*26*/))); + /*muExists*/FOR9: + do { + final IString $subject_val23 = ((IString)$constants.get(20)/*"abcdefghijklmnopqrstuwvxyz"*/); + final Matcher $matcher24 = (Matcher)$regExpCompile("([a-z])", ((IString)($subject_val23)).getValue()); + boolean $found25 = true; + + while($found25){ + $found25 = $matcher24.find(); + if($found25){ + IString l_0 = ((IString)($RVF.string($matcher24.group(1)))); + M_IO.print(((IValue)l_0)); + final Template $template22 = (Template)new Template($RVF, "letter "); + $template22.beginIndent(" "); + $template22.addStr(((IString)l_0).getValue()); + $template22.endIndent(" "); + $me.jobStep(((IString)$constants.get(10)/*"job"*/), ((IString)($template22.close())), Util.kwpMap("work", ((IInteger)$constants.get(0)/*1*/))); + if((((IBool)($equal(((IInteger)(M_util_Math.arbInt(((IInteger)$constants.get(21)/*10*/)))), ((IInteger)$constants.get(7)/*0*/))))).getValue()){ + M_IO.println(); + + } + + } else { + continue FOR9; + } + } + + } while(false); + /* void: muCon([]) */$me.jobEnd(((IString)$constants.get(10)/*"job"*/), Util.kwpMap()); + return ((IBool)$constants.get(2)/*true*/); + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/util/Monitor.rsc|(7341,259,<223,0>,<233,1>) + public IBool util_Monitor_unfinishedLinesAtTheEndTest$570d0a42211dec4a(){ + + + $me.jobStart(((IString)$constants.get(10)/*"job"*/), Util.kwpMap("totalWork", ((IInteger)$constants.get(11)/*3*/))); + M_IO.print(((IString)$constants.get(22)/*"ab + c"*/)); + $me.jobStep(((IString)$constants.get(10)/*"job"*/), ((IString)$constants.get(23)/*"1.5"*/), Util.kwpMap("work", ((IInteger)$constants.get(0)/*1*/))); + M_IO.print(((IString)$constants.get(24)/*"d + e"*/)); + $me.jobStep(((IString)$constants.get(10)/*"job"*/), ((IString)$constants.get(25)/*"2.5"*/), Util.kwpMap("work", ((IInteger)$constants.get(0)/*1*/))); + M_IO.print(((IString)$constants.get(26)/*"f + gh + "*/)); + $me.jobStep(((IString)$constants.get(10)/*"job"*/), ((IString)$constants.get(27)/*"3"*/), Util.kwpMap("work", ((IInteger)$constants.get(0)/*1*/))); + $me.jobEnd(((IString)$constants.get(10)/*"job"*/), Util.kwpMap()); + return ((IBool)$constants.get(2)/*true*/); + + } + + // Source: |file:///Users/paulklint/git/rascal/src/org/rascalmpl/library/util/Monitor.rsc|(7625,292,<236,0>,<244,1>) + public IBool util_Monitor_printLongUnfinishedLine$2f78e7621c7925e7(){ + + + $me.jobStart(((IString)$constants.get(10)/*"job"*/), Util.kwpMap("totalWork", ((IInteger)$constants.get(0)/*1*/))); + IString $reducer27 = (IString)(((IString)$constants.get(28)/*""*/)); + + $REDUCER26_GEN7745: + for(IInteger $elem28 = ((IInteger)$constants.get(7)/*0*/); $aint_less_aint($elem28,((IInteger)$constants.get(29)/*1000000*/)).getValue(); $elem28 = $aint_add_aint($elem28,((IInteger)$constants.get(0)/*1*/))){ + IInteger i_2 = null; + $reducer27 = ((IString)($astr_add_astr(((IString)($reducer27)),((IString)$constants.get(30)/*"ab"*/)))); + } + + IString singleString_0 = ((IString)(M_IO.iprintToString(((IValue)($reducer27))))); + M_IO.println(((IValue)singleString_0)); + $me.jobStep(((IString)$constants.get(10)/*"job"*/), ((IString)$constants.get(31)/*"prog"*/), Util.kwpMap("work", ((IInteger)$constants.get(0)/*1*/))); + M_IO.println(((IString)$constants.get(32)/*"Done"*/)); + $me.jobEnd(((IString)$constants.get(10)/*"job"*/), Util.kwpMap()); + return ((IBool)$constants.get(2)/*true*/); + + } + + + public static void main(String[] args) { + throw new RuntimeException("No function `main` found in Rascal module `util::Monitor`"); + } +} \ No newline at end of file diff --git a/src/rascal/util/$Monitor.tpl b/src/rascal/util/$Monitor.tpl new file mode 100644 index 00000000000..eab11ce92f9 Binary files /dev/null and b/src/rascal/util/$Monitor.tpl differ diff --git a/src/rascal/util/$Monitor_$I.java b/src/rascal/util/$Monitor_$I.java new file mode 100644 index 00000000000..140c5f80d97 --- /dev/null +++ b/src/rascal/util/$Monitor_$I.java @@ -0,0 +1,19 @@ +package rascal.util; +import io.usethesource.vallang.*; +import org.rascalmpl.runtime.function.*; + +@SuppressWarnings("unused") +public interface $Monitor_$I { + IValue horseRaceTest(); + IValue job(IValue $0, IValue $1, java.util.Map $kwpActuals); + IValue jobEnd(IValue $0, java.util.Map $kwpActuals); + void jobIsCancelled(IValue $0); + void jobStart(IValue $0, java.util.Map $kwpActuals); + void jobStep(IValue $0, IValue $1, java.util.Map $kwpActuals); + void jobTodo(IValue $0, java.util.Map $kwpActuals); + void jobWarning(IValue $0, IValue $1); + IValue printLongUnfinishedLine(); + IValue simpleAsyncPrintTest(); + IValue unfinishedInputTest(); + IValue unfinishedLinesAtTheEndTest(); +} \ No newline at end of file diff --git a/test/org/rascalmpl/benchmark/RSF/RSFCalls.rsc b/test/org/rascalmpl/benchmark/RSF/RSFCalls.rsc index 915ffdcc99a..6e826139c93 100644 --- a/test/org/rascalmpl/benchmark/RSF/RSFCalls.rsc +++ b/test/org/rascalmpl/benchmark/RSF/RSFCalls.rsc @@ -45,7 +45,7 @@ public int measure(list[str] names){ if({loc x} := findResources("RSF")){ p = x; } - //p = |file:///Users/paulklint/git/rascal//test/org/rascalmpl/benchmark/RSF/|; + //p = |file:///Users/paulklint/git/rascal/test/org/rascalmpl/benchmark/RSF/|; begin = cpuTime(); for(str name <- names){ map[str, rel[str,str]] values = readRSF(p + name);