diff --git a/RELEASE-NOTES.md b/RELEASE-NOTES.md
new file mode 100644
index 00000000000..0f439c1fba1
--- /dev/null
+++ b/RELEASE-NOTES.md
@@ -0,0 +1,303 @@
+
+## Release 0.28.1 - December 2022
+
+* vis::Charts, vis::Graphs and vis::Text were added to the standard library for visualizing charts, graphs and pretty textual values.
+* for Eclipse, several older issues and newer issues were fixed in the run-time of the Figure library
+* in Eclipse and VScode the new logo was applied, as well as on http://www.rascal-mpl.org
+* util::Validator was added to the standard library: a generic validation module for loading node values produced by reading in XML, JSON or YAML (for example) as verified constructors of algebraic data-types.
+* In lang::json::IO the writing of Rascal values to JSON streams was simplified and rationalized. Now every constructor application corresponds to one object, and the fields of Rascal constructors and nodes (keyword fields as well as positional) are always mapped one-to-one to JSON fields by name. Mapping back from JSON values to Rascal can be hard if there are more than one constructors for a data type. In this case have a look at util::Validator.
+* Most documentation was moved from the rascal project to the rascal-website project; this will make it easier and faster to contribute to (fixes in) the Rascal documentation.
+* Rascal-tutor compiler was improved in many dimensions: screenshots of visuals were added and the compiler is incremental now per Markdown/Rascal file.
+
+
+## Release 0.26.5 - November 8, 2022
+
+* the documentation compiler, a.k.a. course compiler, a.k.a. tutor, was separated into its own top-level project called [rascal-tutor](https://www.github.com/usethesource/rascal-tutor)
+* 80% of the documentation was reviewed and fixed
+ * ported from asciidoctor to Docusaurus markdown
+ * using new features of the new tutor compiler
+ * all code examples run again
+ * all broken links fixed
+ * broken rascal-eclipse library documentation moved to the rascal-eclipse project
+* in `util::Benchmark` several overloaded functions were renamed to fix static typing issues.
+* in `IO` read and write functions with positional encoding parameters were made `@deprecated` in favor of their simpler counterparts with keywordparameters for the encoding.
+* rascal no longer depends on jruby or asciidoctor
+* `Node::unsetRec` was optimized which led to a large speed improvement of the parser generator
+* added `PATH:///` logical file resolver which works well in combination with `util::ShellExec` for finding executables in the system `PATH` variable to run.
+* `util::ShellExec` can now deal with `loc` values anywhere the API expects a file location. This goes also for file parameters to executables. Before they are passed to the executable, Rascal finds or creates and absolute file system path with the contents of the file.
+
+## Release 0.25.x
+
+Release 0.25.x were intermediate releases required to eliminate the old tutor from the rascal package. They never made it into an IDE like VScode or Eclipse and no stable commandline release was distributed either.
+
+## Release 0.24.0 - June 21, 2022
+
+Release 24.x is a maintenance release. A lot of changes happened between 0.17.0 and 0.23.x, so if you have not looked here for a while, go to the [release notes for 0.23.x](/release-notes/rascal-0-23-x-release-notes)
+
+* ParseTree::parser and ParseTree::parsers now generate parsing closures that do not need a JVM lock to synchronize on the Evaluator anymore.
+* Also both functions now capture the generated Class> instance instead of a handle to the grammar, for efficiency's sake
+* The interpreter's implementation of concrete syntax does not do its own parser caching anymore. Instead it relies on the aforementioned
+parsing closures. This saves memory (fewer hash-tables) and also more sharing is possible between parsers for different modules that happen to have the same grammar.
+* Issue #1615 was solved
+* Issue #1614 was solved
+* Issue #1613 was solved by providing `loc` based interfaces to files and programs passed to util::ShellExec. The old `str` based interfaces are now deprecated.
+
+## Release 0.23.0 - April 10th, 2022
+
+The 0.23.0 release marks the end of the migration of all Rascal supporting libraries (vallang, capsule) and the Rascal interpreter to **Java 11**. The contributors include Paul Klint, Jouke Stoel, Mauricio Verano Merino, Tijs van der Storm, Rodin Aarssen, Arnold Lankamp, Davy Landman, Pieter Olivier and Jurgen Vinju.
+
+We report on intermediate releases 0.18.x, 0.19.x, 0.20.x, 0.21.x and 0.22.x as well, as these had not lead to a release of the Rascal Eclipse plugins or a stable release of the commandline version.
+
+**Generating Eclipse and VScode Plugins**
+
+This port to Java 11 implies that the current [stable release of the Rascal Eclipse plugin](https://update.rascal-mpl.org/stable/) works again with the latest releases of Eclipse from 2021 and 2022. In the meantime
+releases of the [rascal-language-server extension](https://marketplace.visualstudio.com/items?itemName=usethesource.rascalmpl) for VScode have been developed.
+
+Porting Rascal's IDE generator features to VScode has had minor impact on the modules in the standard library concerning interaction with DSLs and interactions with the IDE (`util::IDEServices`, `util::Monitor` and `util::IDE`). The old API still works and it is backward compatible in Eclipse. However, if you want to port your DSL to VScode, there are minor changes in how to wrap your extension and new interaction possibilities with the IDE which are not present in Eclipse. Not all new IDE API is available in Eclipse yet either. Both directions of consolidation (VScode <-> Eclipse) are interesting directions of future work.
+
+This release works best with Java 11, but not with higher versions. There are still illegal uses of reflective access which need to be resolved before Rascal runs correctly on Java 13 and higher.
+
+**Hosting Releases and Continuous Integration**
+
+* http://releases.usethesource.io is the current place for all Rascal related releases.
+* The Eclipse stable update site is still at https://update.rascal-mpl.org/stable/.
+* http://nexus.usethesource.io/ is still functional but officially deprecated.
+* If you want to test release candidates, then the URL is https://update.rascal-mpl.org/release, but we must warn you that regressing to an earlier version is not supported, so you'd have to reinstall Eclipse from scratch for that.
+* We migrated our continuous integration scripts to GitHub actions. Thanks to Jenkins for the many years of service and the support from CWI staff and management to keep our servers funded, safe and sound.
+
+**Sponsoring**
+
+It has become possible to [sponsor](https://github.com/sponsors/usethesource) the Rascal project. If you are considering, please do not hesitate to contact us.
+
+**Other changes**
+
+* the `private` access modifier is now idempotent for a name of a function, data-type or syntax non-terminal within single module: in other words, if one of the alternatives is marked private, then all of them are private.
+* caching using the @memo tag is done smarter (faster and cleaner cache clearing)
+* run-time bugs around type-parametrized ADTs were fixed
+* support for constructing the right classpaths by calling `mvn` if pom.xml files are present. This affects the JUnit test runners, the REPL shell, the compiler and type-checker configurations, the setup for terminals in Eclipse projects.
+* added functions for inspecting current memory availability and usage
+* fixed bugs around prefix matching on concrete trees, simplified its implementation by removing code clones.
+* fixed serious bug with prefix shared nullable rules in the parser implementation.
+* fixed race conditions around parser generation for asynchronous usage by the language server protocol
+* backtracking over `<==>` and `==>` and `<==` boolean operators is now limited (as limited as backtracking over the `!` boolean operator)
+* case insensitive literals in grammars, such as `'if' Exp 'then' Stat;` are supported better now, also as follow/precede restrictions and keyword reservations (like `Id !>> 'if'`, `Id \ 'if'`) for which an implementation was missing are now supported.
+* many regression tests were added as side-effect of the development on the Rascal compiler in the rascal-core project.
+* added file watch feature in `IO` module
+* added the `lib://libName` scheme for use in `Required-Libraries` in `META-INF/RASCAL.MF` and other places (pathConfig). It resolves to open `project://libName/target/classes` locations or otherwise the jar file that the library is released in and on the classpath.
+* added features for recursive copy and recursive move in `IO`
+* added lenient option to the JSON parser in `lang::json::IO`
+* added utility functions to `util::SystemExec` for easy process creation and termination.
+* parse tree filter functions are not called implicitly anymore by the generated parser when building up the tree. Instead a `filter` function is passed to the generated `parse` function where the user can provide filter functions by composing them with `+`. This removes the need for the generated parser function to learn from the current calling scope which functions are available for filtering, and makes the entire parser generator independent of the internals of the interpreter. The new `parser` generator functions work both in the compiled and the interpreted context. Of course, under the hood the implementation reuses the interpreter, until we have bootstrapped the parser generator using the new compiler.
+* all Rascal REPLS now support HTML output next to normal string output. Each REPL also serves as a web application host. When a value of type `Content` is the result of evaluation, then the REPL hosts that (Response (Request)) callback until 30 minutes of inactivity. The UI context of the REPL decides how/when and where to show the client side.
+* many fixes around higher-order and type-parametrized functions
+* moved from the interpreter-specific ICalleableValue to the more abstract IFunction interface to run-time function values.
+* rewrote all builtin functions in the standard library to become independent of the interpreter's internals. This is done via constructor arguments of the `@javaClass` implementation classes. These can receive `TypeStore`, `PrintStream` and `IValueFactory` parameters to configure themselves with necessary context of the Rascal runtime.
+* `@reflect` is not used anymore by standard library modules. It is deprecated but still supported for now. If you want to make your code robust against compilation by the Rascal compiler, you have to rewrite uses of `@reflect` and receive arguments in your `@javaClass` class constructor.
+* All Rascal REPLS print the current release version of the Rascal run-time before anything else.
+* Added SourceLocationClassLoader which can construct a JVM classloader instance from references encoded as source location URI. It tries to group file URIs to jar files and forward to URLClassLoader for efficiency's sake. Only ISourceLocationInputResolver schemes which also implement IClassLoaderResolver are supported. We added implementations for all the standard resolvers on the commandline and the necessary ones in the Eclipse context.
+* All static errors produced by the new typechecker were fixed in the standard library
+* Cleaned up error messages and exceptions in standard library modules (issues largely detected by the typechecker)
+* REPLs refactored for use within Bacata (http://github.com/cwi-swat/bacata)
+
+## Release 0.17.0 - March 16th, 2020
+
+The 0.15.x releases served as daily pre-releases for 0.17.0, while 0.16.x was a stable release which included all patches since 0.10.0. The releases between 0.10.0 and 0.16.0 have mainly been concerned with bootstrapping and minor bugfixes.
+
+The current release 0.17.x is a step towards bootstrapping the Rascal compiler and making the new static checker (type checker) available.
+
+The static checker:
+
+* checks all features of Rascal
+* is written in Rascal using the [TypePal framework](https://github.com/usethesource/typepal)
+* is activated on "project clean" and "file save"
+* runs for now in the Rascal interpreter and may be slow on bigger projects (this is transitional, so bear with us)
+* enables editor features such as hover-help and jump-to-definition in Eclipse, based on the state of the file after the last "save"
+* using the Eclipse Preferences: Eclipse > Preferences > Rascal > Enable Rascal Compiler, type checking can be turned on or off
+
+Also in this release significant steps have been made towards Rascal project deployment:
+
+* In RASCAL.MF, Use `Required-Libraries: |lib://myDependency|` to declare projects you depend on
+* Declare a project using `Project-Name: projectName` in RASCAL.MF
+* The `|lib://name|` scheme always resolves to the root of a jar or target folder for a project with that name
+* Eclipse, maven and Junit use the above information to configure interpreter and compiler search paths correctly
+* The starting point is the JVM classpath: every RASCAL.MF file found on this path leads to a loadable library
+* IDEs such as Eclipse dynamically resolve `lib://` references to respective project's target folders if so required
+
+Other notable changes:
+
+* all static errors and warnings in the standard library have been resolved
+* general code cleanup
+* resolved many issues (thanks all for reporting!)
+* various performance improvements
+
+# Releases 0.9.x
+
+In this post we report on the Rascal release 0.9.0, which includes all changes since the 0.7.x releases. We have not written release notes for the 0.8.x series (the details are included here). We expect a number of patch releases for 0.9.x, which we report on by updating this post (at its end) when necessary until we move on to 0.10.x.
+
+The Rascal release 0.9.x includes the following main components:
+
+* Parser and interpreter: parsing and running Rascal programs
+* Parser generator: generating parsers for programming languages and domain specific languages
+* Eclipse plugin: an IDE for Rascal, partially supported by the new type checker and compiler
+* Eclipse plugin generator for DSLs: an IDE generator based on Rascal programs
+* Rascal commandline shell: to run Rascal independently from Eclipse
+* Standard library: utilities for programming in Rascal, including several (stable) programming language front-ends and general analysis facilities.
+* Rascal compiler: the experimental compiler for Rascal
+* Rascal type checker: the experimental type checker for Rascal
+* TypePal: experimental generic name and type analysis framework
+* Salix: a html5-based GUI interaction framework for Rascal
+* Shapes: a html5 back-end for the Figure library
+* Capsule: the hash-trie set, map and multimap Java library supporting the implementation of Rascal's maps, sets and relations
+* Clair: a C++ analysis framework based on the CDT parser
+* Split main Rascal Eclipse plugin release from a number of additional libraries, located at a new update site:
+
+The 0.9 release is a landmark release, including a big number of bug fixes and mainly preparations towards releasing a compiled version of Rascal.
+
+* The most notable new features are:
+ 1. Rascal type checker
+ 2. Experimental Rascal compiler
+ 3. Faster and leaner implementations of maps and relations under-the-hood, based on hash-tries (unfinished)
+ 4. Fully lazy and streaming string templates
+ 5. TypePal: a powerful generic type and name analysis framework
+ 6. Re-implementation of the M3 java Jar extractor
+ 7. Very fast streamed binary value (de)serialization
+ 8. Full re-implementation of the tutor documentation generator based on asciidoctor (unfinished)
+ 9. Typed import/export of JSON data
+ 10. New "common keyword parameters" support; `data X(int x = 0)` where the field `x` with default `0` is made available to all constructors of the data-type `X` in the current scope.
+ 11. Calling compiled Rascal functions from Java code using simple Java interface proxy.
+ 12. M3 models now use keyword fields instead of annotations
+
+* Temporarily disabled features:
+ 1. syntax highlighting of concrete syntax fragments in the Eclipse Rascal editor is currently turned off
+
+* Deprecated features:
+ 1. annotations as in `anno int X@name;` and their usage `x()@name` is deprecated. Please start using keyword parameters as in: `data X(str name = "")` and `x.name`
+ 2. asType: `[Type] "string"` in patterns and expressions. Please use the `parse` function for now.
+
+
+* Other things that were added, improved or fixed:
+ 1. subscript on lrels added
+ 2. many, many tests added
+ 3. refactoring of the REPL api to enable reuse in notebook implementations (see Bacata)
+ 4. windows compatibility improved
+ 5. Pattern matchin a bound variable now ignores keyword fields of constructors unless explicitly mentioned
+ 5. steps towards less dependency on the annotation feature
+ 6. several bugs around the annotion feature and map indexing fixed
+ 7. faster field access in the interpreter
+ 8. compiler is automatically and continuously bootstrapped and validated (no binary code needs committing in the repository)
+ 9. rationalization and consistency improvement of all the input and output parameters of the compiler and the interpreter via the PathConfig data-type.
+ 10. quickcheck random value generator also simplified and made consistent and reusable
+ 11. clear separation of REPL functionalities and reuse of Eclipse tm.terminal
+ 12. clarified and fixed UTF8 encoding details in I/O functions
+ 13. clarified and fixed URI encoding details in I/O functions
+ 14. optimized reading from (nested) jar files
+ 15. much improved efficiency of function calling by the Rascal compiler
+ 16. additional API for managing external processes
+ 17. compiler and type-checker support incremental compilation
+ 18. much faster comparison of source locations
+ 19. rename of rascal.values (used to be pdb.values) to independent project called "vallang"
+ 20. support for Java NIO File Channels for (some of the) location schemes.
+ 21. modular re-implementation of type reification
+ 22. new modular subsystem to generate classloader instances from URI source locations, e.g. `|system:///|`, `|classpath:///|` and `|file:///path/to/jarFile.jar|` and `|file:///path/to/classFolder|`
+ 23. interpreter and compiler made maximally code-independent
+ 24. all projects fully "mavenized"
+ 25. advanced interactive debugging features of compiled Rascal
+ 26. REPL and IDE features based on compiled Rascal
+ 27. integrated compiled Rascal modules as JUnit test runners.
+ 28. several fixes in datetime behavior
+ 29. full implementation of JVM bytecode generation by compiler
+ 30. parsing ambiguity is now by default an "error" (an exception is raised by the parse function). Using the `allowAmbiguity=true` flag an ambiguous parse forest can still be produced.
+ 31. added syntax highlighting of parsed source code fragments in the REPL
+ 32. a `jar+:///path/to/jar!/path/in/jar` scheme supports files in jars.
+
+### Contributors to the 0.8.x and 0.9.x releases
+
+Thanks! In no particular order the following people have contributed to the 0.9.x releases of Rascal and its supporting libraries or the libraries it supports:
+
+* Paul Klint
+* Davy Landman
+* Bert Lisser
+* Michael Steindorfer
+* Mark Hills
+* Jurgen Vinju
+* Ferry Rietveld
+* Tijs van der Storm
+* Thomas Degueule
+* Lina Maria Ochoa Venegas
+* Mauricio Verano
+* Rodin Aarssen
+* Anya Helene Bagge
+* Tim Soethout
+* Aiko Yamashita
+* Nick Lodewijks
+* Jouke Stoel
+* Rodrigo Bonifacio
+* Yoan-Alexander Grigorov
+* Vadim Zaytsev
+* Mats Stijlaart
+* Magiel Bruntink
+* Kevin van der Vlist
+
+Also thanks to all the people who have (clearly) reported bugs and provided smaller pull requests! Your help is much appreciated.
+
+### Patch releases
+
+* Patch 0.9.1. bootstrap release to introduce new pattern match semantics for `var1 := var2`
+* Patch 0.9.2. bootstrap release to fix version number reporting in generated kernels
+
+## Release 0.27.2 - November 23, 2022
+
+* the tutor compiler now takes screenshots if an interactive visual is generated in a rascal-shell code block.
+* the JSON serializer maps objects to constructors one-to-one now. Only [AlgebraicDataTypes](/docs/rascalopedia/algebraicdatatype/) with single constructors are allowed, or lists of nullary constructors (for enums).
+* added vis::Chart with 8 basic chart styles based on chart.js
+* added util::Validator which can validate any `node` instances against an [AlgebraicDataType](/docs/rascalopedia/algebraicdatatype/) using matching and memoized backtracking. Useful for reading in complex XML, JSON or YAML data.
+* issue with variablescope leakage in the visit statement was fixed.
+
+## Release 0.7.0
+
+In this post we report on the Rascal release 0.7.0. We expect a number of patch releases as well, which we report on by updating this post (at its end) when necessary. The Rascal release includes the following main components:
+
+* Parser and interpreter: parsing and running Rascal programs
+* Parser generator: generating parsers for programming languages and domain specific languages
+* Eclipse plugin: an IDE for Rascal
+* Eclipse plugin generator for DSLs: an IDE generator based on Rascal programs
+* Rascal commandline shell: to run Rascal independently from Eclipse
+* Standard library: utilities for programming in Rascal, including several (stable) programming language front-ends and general analysis facilities.
+
+Compared to 0.6.x the 0.7 release is mainly a bug fix release, with a number of extensions to the libraries and one new language feature.
+
+* The new language feature is keyword parameters for both functions and data constructors.
+* In terms of library funcionality the big new things is *M3*, a common intermediate format for facts about source code. This includes a standard set of relations (containment, def/use, etc.) and a preferred way of modeling abstract syntax trees.
+
+### M3
+
+### Keyword parameters
+
+### Looking forward to the 0.8.x, 0.9.x and 1.0 releases
+
+The 0.8 release is planned with:
+
+* Re-implemented general top-down parsing algorithm with on-demand lexing
+* Fast regular expressions and better language integrated pattern matching
+* Concrete syntax features completed and streamlined due to new parser integration
+* Standard library component for communicating with SMT solvers easily
+
+The 0.9 release is planned with:
+
+* Keyword parameters replacing annotations completely
+* New Figure library based on javascript
+
+The 1.0 release is a big bang release which includes the following new components which have been developed over the last two years:
+
+* The Rascal type checker
+* Rascal compiler to RVM
+* RVM interpreter
+
+In 1.0 the old Rascal interpreter will still be included, but from here on its usage will be deprecated. We will be working to switch the IDE support to using the new infra-structure for a while and when this is finished the interpreter will not be released any longer. Note that this does not mean that we will not have a REPL for Rascal anymore. We will always have a REPL.
+
+### Patch releases
+
+* Patch 0.7.1. includes an update to the documentation on M3
+* Patch 0.7.2. bug fixes
+* Patch 0.7.3. bug fixes and memory optimizations (more than 50%)
+
diff --git a/src/org/rascalmpl/ast/IASTVisitor.java b/src/org/rascalmpl/ast/IASTVisitor.java
index 97542a0e7de..72a48607b6b 100644
--- a/src/org/rascalmpl/ast/IASTVisitor.java
+++ b/src/org/rascalmpl/ast/IASTVisitor.java
@@ -699,6 +699,16 @@ public interface IASTVisitor {
public T visitSyntaxDefinitionLexical(SyntaxDefinition.Lexical x);
+ public T visitSyntaxRoleModifierData(SyntaxRoleModifier.Data x);
+
+ public T visitSyntaxRoleModifierKeyword(SyntaxRoleModifier.Keyword x);
+
+ public T visitSyntaxRoleModifierLayout(SyntaxRoleModifier.Layout x);
+
+ public T visitSyntaxRoleModifierLexical(SyntaxRoleModifier.Lexical x);
+
+ public T visitSyntaxRoleModifierSyntax(SyntaxRoleModifier.Syntax x);
+
public T visitTagDefault(Tag.Default x);
public T visitTagEmpty(Tag.Empty x);
@@ -719,6 +729,8 @@ public interface IASTVisitor {
public T visitTypeFunction(Type.Function x);
+ public T visitTypeModifier(Type.Modifier x);
+
public T visitTypeSelector(Type.Selector x);
public T visitTypeStructured(Type.Structured x);
diff --git a/src/org/rascalmpl/ast/NullASTVisitor.java b/src/org/rascalmpl/ast/NullASTVisitor.java
index aca2b779cb3..0e6197ed490 100644
--- a/src/org/rascalmpl/ast/NullASTVisitor.java
+++ b/src/org/rascalmpl/ast/NullASTVisitor.java
@@ -1381,6 +1381,26 @@ public T visitSyntaxDefinitionLexical(SyntaxDefinition.Lexical x) {
return null;
}
+ public T visitSyntaxRoleModifierData(SyntaxRoleModifier.Data x) {
+ return null;
+ }
+
+ public T visitSyntaxRoleModifierKeyword(SyntaxRoleModifier.Keyword x) {
+ return null;
+ }
+
+ public T visitSyntaxRoleModifierLayout(SyntaxRoleModifier.Layout x) {
+ return null;
+ }
+
+ public T visitSyntaxRoleModifierLexical(SyntaxRoleModifier.Lexical x) {
+ return null;
+ }
+
+ public T visitSyntaxRoleModifierSyntax(SyntaxRoleModifier.Syntax x) {
+ return null;
+ }
+
public T visitTagDefault(Tag.Default x) {
return null;
}
@@ -1421,6 +1441,10 @@ public T visitTypeFunction(Type.Function x) {
return null;
}
+ public T visitTypeModifier(Type.Modifier x) {
+ return null;
+ }
+
public T visitTypeSelector(Type.Selector x) {
return null;
}
diff --git a/src/org/rascalmpl/ast/SyntaxRoleModifier.java b/src/org/rascalmpl/ast/SyntaxRoleModifier.java
new file mode 100644
index 00000000000..65e043ab577
--- /dev/null
+++ b/src/org/rascalmpl/ast/SyntaxRoleModifier.java
@@ -0,0 +1,410 @@
+/*******************************************************************************
+ * Copyright (c) 2009-2015 CWI
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * * Jurgen J. Vinju - Jurgen.Vinju@cwi.nl - CWI
+ * * Tijs van der Storm - Tijs.van.der.Storm@cwi.nl
+ * * Paul Klint - Paul.Klint@cwi.nl - CWI
+ * * Mark Hills - Mark.Hills@cwi.nl (CWI)
+ * * Arnold Lankamp - Arnold.Lankamp@cwi.nl
+ * * Michael Steindorfer - Michael.Steindorfer@cwi.nl - CWI
+ *******************************************************************************/
+package org.rascalmpl.ast;
+
+
+import io.usethesource.vallang.IConstructor;
+import io.usethesource.vallang.ISourceLocation;
+
+@SuppressWarnings(value = {"unused"})
+public abstract class SyntaxRoleModifier extends AbstractAST {
+ public SyntaxRoleModifier(ISourceLocation src, IConstructor node) {
+ super(src /* we forget node on purpose */);
+ }
+
+
+ public boolean hasArg() {
+ return false;
+ }
+
+ public org.rascalmpl.ast.TypeArg getArg() {
+ throw new UnsupportedOperationException(this.src.toString());
+ }
+
+
+
+
+ public boolean isData() {
+ return false;
+ }
+
+ static public class Data extends SyntaxRoleModifier {
+ // Production: sig("Data",[arg("org.rascalmpl.ast.TypeArg","arg")],breakable=false)
+
+
+ private final org.rascalmpl.ast.TypeArg arg;
+
+ public Data(ISourceLocation src, IConstructor node , org.rascalmpl.ast.TypeArg arg) {
+ super(src, node);
+
+ this.arg = arg;
+ }
+
+ @Override
+ public boolean isData() {
+ return true;
+ }
+
+ @Override
+ public T accept(IASTVisitor visitor) {
+ return visitor.visitSyntaxRoleModifierData(this);
+ }
+
+ @Override
+ protected void addForLineNumber(int $line, java.util.List $result) {
+ if (getLocation().getBeginLine() == $line) {
+ $result.add(this);
+ }
+ ISourceLocation $l;
+
+ $l = arg.getLocation();
+ if ($l.hasLineColumn() && $l.getBeginLine() <= $line && $l.getEndLine() >= $line) {
+ arg.addForLineNumber($line, $result);
+ }
+ if ($l.getBeginLine() > $line) {
+ return;
+ }
+
+ }
+
+ @Override
+ public boolean equals(Object o) {
+ if (!(o instanceof Data)) {
+ return false;
+ }
+ Data tmp = (Data) o;
+ return true && tmp.arg.equals(this.arg) ;
+ }
+
+ @Override
+ public int hashCode() {
+ return 431 + 67 * arg.hashCode() ;
+ }
+
+
+ @Override
+ public org.rascalmpl.ast.TypeArg getArg() {
+ return this.arg;
+ }
+
+ @Override
+ public boolean hasArg() {
+ return true;
+ }
+
+ @Override
+ public Object clone() {
+ return newInstance(getClass(), src, (IConstructor) null , clone(arg));
+ }
+
+ }
+ public boolean isKeyword() {
+ return false;
+ }
+
+ static public class Keyword extends SyntaxRoleModifier {
+ // Production: sig("Keyword",[arg("org.rascalmpl.ast.TypeArg","arg")],breakable=false)
+
+
+ private final org.rascalmpl.ast.TypeArg arg;
+
+ public Keyword(ISourceLocation src, IConstructor node , org.rascalmpl.ast.TypeArg arg) {
+ super(src, node);
+
+ this.arg = arg;
+ }
+
+ @Override
+ public boolean isKeyword() {
+ return true;
+ }
+
+ @Override
+ public T accept(IASTVisitor visitor) {
+ return visitor.visitSyntaxRoleModifierKeyword(this);
+ }
+
+ @Override
+ protected void addForLineNumber(int $line, java.util.List $result) {
+ if (getLocation().getBeginLine() == $line) {
+ $result.add(this);
+ }
+ ISourceLocation $l;
+
+ $l = arg.getLocation();
+ if ($l.hasLineColumn() && $l.getBeginLine() <= $line && $l.getEndLine() >= $line) {
+ arg.addForLineNumber($line, $result);
+ }
+ if ($l.getBeginLine() > $line) {
+ return;
+ }
+
+ }
+
+ @Override
+ public boolean equals(Object o) {
+ if (!(o instanceof Keyword)) {
+ return false;
+ }
+ Keyword tmp = (Keyword) o;
+ return true && tmp.arg.equals(this.arg) ;
+ }
+
+ @Override
+ public int hashCode() {
+ return 19 + 181 * arg.hashCode() ;
+ }
+
+
+ @Override
+ public org.rascalmpl.ast.TypeArg getArg() {
+ return this.arg;
+ }
+
+ @Override
+ public boolean hasArg() {
+ return true;
+ }
+
+ @Override
+ public Object clone() {
+ return newInstance(getClass(), src, (IConstructor) null , clone(arg));
+ }
+
+ }
+ public boolean isLayout() {
+ return false;
+ }
+
+ static public class Layout extends SyntaxRoleModifier {
+ // Production: sig("Layout",[arg("org.rascalmpl.ast.TypeArg","arg")],breakable=false)
+
+
+ private final org.rascalmpl.ast.TypeArg arg;
+
+ public Layout(ISourceLocation src, IConstructor node , org.rascalmpl.ast.TypeArg arg) {
+ super(src, node);
+
+ this.arg = arg;
+ }
+
+ @Override
+ public boolean isLayout() {
+ return true;
+ }
+
+ @Override
+ public T accept(IASTVisitor visitor) {
+ return visitor.visitSyntaxRoleModifierLayout(this);
+ }
+
+ @Override
+ protected void addForLineNumber(int $line, java.util.List $result) {
+ if (getLocation().getBeginLine() == $line) {
+ $result.add(this);
+ }
+ ISourceLocation $l;
+
+ $l = arg.getLocation();
+ if ($l.hasLineColumn() && $l.getBeginLine() <= $line && $l.getEndLine() >= $line) {
+ arg.addForLineNumber($line, $result);
+ }
+ if ($l.getBeginLine() > $line) {
+ return;
+ }
+
+ }
+
+ @Override
+ public boolean equals(Object o) {
+ if (!(o instanceof Layout)) {
+ return false;
+ }
+ Layout tmp = (Layout) o;
+ return true && tmp.arg.equals(this.arg) ;
+ }
+
+ @Override
+ public int hashCode() {
+ return 599 + 101 * arg.hashCode() ;
+ }
+
+
+ @Override
+ public org.rascalmpl.ast.TypeArg getArg() {
+ return this.arg;
+ }
+
+ @Override
+ public boolean hasArg() {
+ return true;
+ }
+
+ @Override
+ public Object clone() {
+ return newInstance(getClass(), src, (IConstructor) null , clone(arg));
+ }
+
+ }
+ public boolean isLexical() {
+ return false;
+ }
+
+ static public class Lexical extends SyntaxRoleModifier {
+ // Production: sig("Lexical",[arg("org.rascalmpl.ast.TypeArg","arg")],breakable=false)
+
+
+ private final org.rascalmpl.ast.TypeArg arg;
+
+ public Lexical(ISourceLocation src, IConstructor node , org.rascalmpl.ast.TypeArg arg) {
+ super(src, node);
+
+ this.arg = arg;
+ }
+
+ @Override
+ public boolean isLexical() {
+ return true;
+ }
+
+ @Override
+ public T accept(IASTVisitor visitor) {
+ return visitor.visitSyntaxRoleModifierLexical(this);
+ }
+
+ @Override
+ protected void addForLineNumber(int $line, java.util.List $result) {
+ if (getLocation().getBeginLine() == $line) {
+ $result.add(this);
+ }
+ ISourceLocation $l;
+
+ $l = arg.getLocation();
+ if ($l.hasLineColumn() && $l.getBeginLine() <= $line && $l.getEndLine() >= $line) {
+ arg.addForLineNumber($line, $result);
+ }
+ if ($l.getBeginLine() > $line) {
+ return;
+ }
+
+ }
+
+ @Override
+ public boolean equals(Object o) {
+ if (!(o instanceof Lexical)) {
+ return false;
+ }
+ Lexical tmp = (Lexical) o;
+ return true && tmp.arg.equals(this.arg) ;
+ }
+
+ @Override
+ public int hashCode() {
+ return 421 + 277 * arg.hashCode() ;
+ }
+
+
+ @Override
+ public org.rascalmpl.ast.TypeArg getArg() {
+ return this.arg;
+ }
+
+ @Override
+ public boolean hasArg() {
+ return true;
+ }
+
+ @Override
+ public Object clone() {
+ return newInstance(getClass(), src, (IConstructor) null , clone(arg));
+ }
+
+ }
+ public boolean isSyntax() {
+ return false;
+ }
+
+ static public class Syntax extends SyntaxRoleModifier {
+ // Production: sig("Syntax",[arg("org.rascalmpl.ast.TypeArg","arg")],breakable=false)
+
+
+ private final org.rascalmpl.ast.TypeArg arg;
+
+ public Syntax(ISourceLocation src, IConstructor node , org.rascalmpl.ast.TypeArg arg) {
+ super(src, node);
+
+ this.arg = arg;
+ }
+
+ @Override
+ public boolean isSyntax() {
+ return true;
+ }
+
+ @Override
+ public T accept(IASTVisitor visitor) {
+ return visitor.visitSyntaxRoleModifierSyntax(this);
+ }
+
+ @Override
+ protected void addForLineNumber(int $line, java.util.List $result) {
+ if (getLocation().getBeginLine() == $line) {
+ $result.add(this);
+ }
+ ISourceLocation $l;
+
+ $l = arg.getLocation();
+ if ($l.hasLineColumn() && $l.getBeginLine() <= $line && $l.getEndLine() >= $line) {
+ arg.addForLineNumber($line, $result);
+ }
+ if ($l.getBeginLine() > $line) {
+ return;
+ }
+
+ }
+
+ @Override
+ public boolean equals(Object o) {
+ if (!(o instanceof Syntax)) {
+ return false;
+ }
+ Syntax tmp = (Syntax) o;
+ return true && tmp.arg.equals(this.arg) ;
+ }
+
+ @Override
+ public int hashCode() {
+ return 487 + 797 * arg.hashCode() ;
+ }
+
+
+ @Override
+ public org.rascalmpl.ast.TypeArg getArg() {
+ return this.arg;
+ }
+
+ @Override
+ public boolean hasArg() {
+ return true;
+ }
+
+ @Override
+ public Object clone() {
+ return newInstance(getClass(), src, (IConstructor) null , clone(arg));
+ }
+
+ }
+}
\ No newline at end of file
diff --git a/src/org/rascalmpl/ast/Tag.java b/src/org/rascalmpl/ast/Tag.java
index b658316cc1e..a41e6d95b37 100644
--- a/src/org/rascalmpl/ast/Tag.java
+++ b/src/org/rascalmpl/ast/Tag.java
@@ -115,7 +115,7 @@ public boolean equals(Object o) {
@Override
public int hashCode() {
- return 431 + 67 * name.hashCode() + 19 * contents.hashCode() ;
+ return 787 + 397 * name.hashCode() + 191 * contents.hashCode() ;
}
@@ -198,7 +198,7 @@ public boolean equals(Object o) {
@Override
public int hashCode() {
- return 181 + 599 * name.hashCode() ;
+ return 977 + 173 * name.hashCode() ;
}
@@ -282,7 +282,7 @@ public boolean equals(Object o) {
@Override
public int hashCode() {
- return 101 + 421 * name.hashCode() + 277 * expression.hashCode() ;
+ return 541 + 491 * name.hashCode() + 331 * expression.hashCode() ;
}
diff --git a/src/org/rascalmpl/ast/Tags.java b/src/org/rascalmpl/ast/Tags.java
index 7ee4dacb2a9..0ae276a0d6a 100644
--- a/src/org/rascalmpl/ast/Tags.java
+++ b/src/org/rascalmpl/ast/Tags.java
@@ -93,7 +93,7 @@ public boolean equals(Object o) {
@Override
public int hashCode() {
- return 487 + 797 * tags.hashCode() ;
+ return 167 + 809 * tags.hashCode() ;
}
diff --git a/src/org/rascalmpl/ast/Target.java b/src/org/rascalmpl/ast/Target.java
index a84492f3059..ee0d7727651 100644
--- a/src/org/rascalmpl/ast/Target.java
+++ b/src/org/rascalmpl/ast/Target.java
@@ -81,7 +81,7 @@ public boolean equals(Object o) {
@Override
public int hashCode() {
- return 787 ;
+ return 109 ;
}
@@ -146,7 +146,7 @@ public boolean equals(Object o) {
@Override
public int hashCode() {
- return 397 + 191 * name.hashCode() ;
+ return 373 + 449 * name.hashCode() ;
}
diff --git a/src/org/rascalmpl/ast/Toplevel.java b/src/org/rascalmpl/ast/Toplevel.java
index 80e0db16d93..3f066ee79ba 100644
--- a/src/org/rascalmpl/ast/Toplevel.java
+++ b/src/org/rascalmpl/ast/Toplevel.java
@@ -91,7 +91,7 @@ public boolean equals(Object o) {
@Override
public int hashCode() {
- return 977 + 173 * declaration.hashCode() ;
+ return 571 + 467 * declaration.hashCode() ;
}
diff --git a/src/org/rascalmpl/ast/Type.java b/src/org/rascalmpl/ast/Type.java
index c7719d2047b..0c9f927251f 100644
--- a/src/org/rascalmpl/ast/Type.java
+++ b/src/org/rascalmpl/ast/Type.java
@@ -61,6 +61,13 @@ public boolean hasSymbol() {
public org.rascalmpl.ast.Sym getSymbol() {
throw new UnsupportedOperationException(this.src.toString());
}
+ public boolean hasModifier() {
+ return false;
+ }
+
+ public org.rascalmpl.ast.SyntaxRoleModifier getModifier() {
+ throw new UnsupportedOperationException(this.src.toString());
+ }
public boolean hasType() {
return false;
}
@@ -140,7 +147,7 @@ public boolean equals(Object o) {
@Override
public int hashCode() {
- return 541 + 491 * basic.hashCode() ;
+ return 691 + 701 * basic.hashCode() ;
}
@@ -214,7 +221,7 @@ public boolean equals(Object o) {
@Override
public int hashCode() {
- return 331 + 167 * type.hashCode() ;
+ return 19 + 137 * type.hashCode() ;
}
@@ -288,7 +295,7 @@ public boolean equals(Object o) {
@Override
public int hashCode() {
- return 809 + 109 * function.hashCode() ;
+ return 907 + 41 * function.hashCode() ;
}
@@ -307,6 +314,80 @@ public Object clone() {
return newInstance(getClass(), src, (IConstructor) null , clone(function));
}
+ }
+ public boolean isModifier() {
+ return false;
+ }
+
+ static public class Modifier extends Type {
+ // Production: sig("Modifier",[arg("org.rascalmpl.ast.SyntaxRoleModifier","modifier")],breakable=false)
+
+
+ private final org.rascalmpl.ast.SyntaxRoleModifier modifier;
+
+ public Modifier(ISourceLocation src, IConstructor node , org.rascalmpl.ast.SyntaxRoleModifier modifier) {
+ super(src, node);
+
+ this.modifier = modifier;
+ }
+
+ @Override
+ public boolean isModifier() {
+ return true;
+ }
+
+ @Override
+ public T accept(IASTVisitor visitor) {
+ return visitor.visitTypeModifier(this);
+ }
+
+ @Override
+ protected void addForLineNumber(int $line, java.util.List $result) {
+ if (getLocation().getBeginLine() == $line) {
+ $result.add(this);
+ }
+ ISourceLocation $l;
+
+ $l = modifier.getLocation();
+ if ($l.hasLineColumn() && $l.getBeginLine() <= $line && $l.getEndLine() >= $line) {
+ modifier.addForLineNumber($line, $result);
+ }
+ if ($l.getBeginLine() > $line) {
+ return;
+ }
+
+ }
+
+ @Override
+ public boolean equals(Object o) {
+ if (!(o instanceof Modifier)) {
+ return false;
+ }
+ Modifier tmp = (Modifier) o;
+ return true && tmp.modifier.equals(this.modifier) ;
+ }
+
+ @Override
+ public int hashCode() {
+ return 59 + 823 * modifier.hashCode() ;
+ }
+
+
+ @Override
+ public org.rascalmpl.ast.SyntaxRoleModifier getModifier() {
+ return this.modifier;
+ }
+
+ @Override
+ public boolean hasModifier() {
+ return true;
+ }
+
+ @Override
+ public Object clone() {
+ return newInstance(getClass(), src, (IConstructor) null , clone(modifier));
+ }
+
}
public boolean isSelector() {
return false;
@@ -362,7 +443,7 @@ public boolean equals(Object o) {
@Override
public int hashCode() {
- return 373 + 449 * selector.hashCode() ;
+ return 139 + 293 * selector.hashCode() ;
}
@@ -436,7 +517,7 @@ public boolean equals(Object o) {
@Override
public int hashCode() {
- return 571 + 467 * structured.hashCode() ;
+ return 773 + 293 * structured.hashCode() ;
}
@@ -510,7 +591,7 @@ public boolean equals(Object o) {
@Override
public int hashCode() {
- return 691 + 701 * symbol.hashCode() ;
+ return 421 + 467 * symbol.hashCode() ;
}
@@ -584,7 +665,7 @@ public boolean equals(Object o) {
@Override
public int hashCode() {
- return 19 + 137 * user.hashCode() ;
+ return 181 + 383 * user.hashCode() ;
}
@@ -658,7 +739,7 @@ public boolean equals(Object o) {
@Override
public int hashCode() {
- return 907 + 41 * typeVar.hashCode() ;
+ return 263 + 463 * typeVar.hashCode() ;
}
diff --git a/src/org/rascalmpl/ast/TypeArg.java b/src/org/rascalmpl/ast/TypeArg.java
index 7e7739e6839..7601cbce295 100644
--- a/src/org/rascalmpl/ast/TypeArg.java
+++ b/src/org/rascalmpl/ast/TypeArg.java
@@ -98,7 +98,7 @@ public boolean equals(Object o) {
@Override
public int hashCode() {
- return 59 + 823 * type.hashCode() ;
+ return 223 + 139 * type.hashCode() ;
}
@@ -182,7 +182,7 @@ public boolean equals(Object o) {
@Override
public int hashCode() {
- return 139 + 293 * type.hashCode() + 773 * name.hashCode() ;
+ return 347 + 557 * type.hashCode() + 131 * name.hashCode() ;
}
diff --git a/src/org/rascalmpl/ast/TypeVar.java b/src/org/rascalmpl/ast/TypeVar.java
index fe9ddcbbe12..3d0be0f0a41 100644
--- a/src/org/rascalmpl/ast/TypeVar.java
+++ b/src/org/rascalmpl/ast/TypeVar.java
@@ -108,7 +108,7 @@ public boolean equals(Object o) {
@Override
public int hashCode() {
- return 293 + 421 * name.hashCode() + 467 * bound.hashCode() ;
+ return 797 + 149 * name.hashCode() + 877 * bound.hashCode() ;
}
@@ -191,7 +191,7 @@ public boolean equals(Object o) {
@Override
public int hashCode() {
- return 181 + 383 * name.hashCode() ;
+ return 401 + 787 * name.hashCode() ;
}
diff --git a/src/org/rascalmpl/ast/UserType.java b/src/org/rascalmpl/ast/UserType.java
index 4412e457c6d..03ffc3ebeda 100644
--- a/src/org/rascalmpl/ast/UserType.java
+++ b/src/org/rascalmpl/ast/UserType.java
@@ -98,7 +98,7 @@ public boolean equals(Object o) {
@Override
public int hashCode() {
- return 263 + 463 * name.hashCode() ;
+ return 239 + 997 * name.hashCode() ;
}
@@ -184,7 +184,7 @@ public boolean equals(Object o) {
@Override
public int hashCode() {
- return 223 + 139 * name.hashCode() + 347 * parameters.hashCode() ;
+ return 641 + 701 * name.hashCode() + 13 * parameters.hashCode() ;
}
diff --git a/src/org/rascalmpl/ast/Variable.java b/src/org/rascalmpl/ast/Variable.java
index cd729995ec5..34896631a9f 100644
--- a/src/org/rascalmpl/ast/Variable.java
+++ b/src/org/rascalmpl/ast/Variable.java
@@ -108,7 +108,7 @@ public boolean equals(Object o) {
@Override
public int hashCode() {
- return 557 + 131 * name.hashCode() + 797 * initial.hashCode() ;
+ return 179 + 797 * name.hashCode() + 101 * initial.hashCode() ;
}
@@ -191,7 +191,7 @@ public boolean equals(Object o) {
@Override
public int hashCode() {
- return 149 + 877 * name.hashCode() ;
+ return 17 + 797 * name.hashCode() ;
}
diff --git a/src/org/rascalmpl/ast/Variant.java b/src/org/rascalmpl/ast/Variant.java
index 81f794323ca..7c144add988 100644
--- a/src/org/rascalmpl/ast/Variant.java
+++ b/src/org/rascalmpl/ast/Variant.java
@@ -127,7 +127,7 @@ public boolean equals(Object o) {
@Override
public int hashCode() {
- return 401 + 787 * name.hashCode() + 239 * arguments.hashCode() + 997 * keywordArguments.hashCode() ;
+ return 499 + 347 * name.hashCode() + 947 * arguments.hashCode() + 571 * keywordArguments.hashCode() ;
}
diff --git a/src/org/rascalmpl/ast/Visibility.java b/src/org/rascalmpl/ast/Visibility.java
index 153a25a5b71..31462f79b3a 100644
--- a/src/org/rascalmpl/ast/Visibility.java
+++ b/src/org/rascalmpl/ast/Visibility.java
@@ -74,7 +74,7 @@ public boolean equals(Object o) {
@Override
public int hashCode() {
- return 641 ;
+ return 907 ;
}
@@ -129,7 +129,7 @@ public boolean equals(Object o) {
@Override
public int hashCode() {
- return 701 ;
+ return 173 ;
}
@@ -184,7 +184,7 @@ public boolean equals(Object o) {
@Override
public int hashCode() {
- return 13 ;
+ return 269 ;
}
diff --git a/src/org/rascalmpl/ast/Visit.java b/src/org/rascalmpl/ast/Visit.java
index 31ee6b548a6..350e05d8495 100644
--- a/src/org/rascalmpl/ast/Visit.java
+++ b/src/org/rascalmpl/ast/Visit.java
@@ -117,7 +117,7 @@ public boolean equals(Object o) {
@Override
public int hashCode() {
- return 179 + 797 * subject.hashCode() + 101 * cases.hashCode() ;
+ return 349 + 251 * subject.hashCode() + 487 * cases.hashCode() ;
}
@@ -222,7 +222,7 @@ public boolean equals(Object o) {
@Override
public int hashCode() {
- return 17 + 797 * strategy.hashCode() + 499 * subject.hashCode() + 347 * cases.hashCode() ;
+ return 421 + 59 * strategy.hashCode() + 179 * subject.hashCode() + 197 * cases.hashCode() ;
}
diff --git a/src/org/rascalmpl/compiler/lang/rascalcore/check/AType.rsc b/src/org/rascalmpl/compiler/lang/rascalcore/check/AType.rsc
index 8a7ce513151..7deaedb168e 100644
--- a/src/org/rascalmpl/compiler/lang/rascalcore/check/AType.rsc
+++ b/src/org/rascalmpl/compiler/lang/rascalcore/check/AType.rsc
@@ -238,6 +238,18 @@ bool asubtype(adt:aadt(str n, list[AType] l, SyntaxRole sr), AType b){
fail;
}
+// Open modifiers are sub-types of the kinds that they modify _to_.
+// It's good to remember that _closed_ syntax role modifiers are already rewritten
+// to the type they modify to in ATypeBase
+bool asubtype(\asyntaxRoleModifier(SyntaxRole role, \aparameter(_,_)), aadt(_, _, role)) = true;
+
+// All open syntax role modifiers are sub-types of `node`
+bool asubtype(\asyntaxRoleModifier(SyntaxRole role, \aparameter(_,_)), anode(_)) = true;
+
+// All context-free grammar-related syntax roles are sub-types of `Tree`
+bool asubtype(\asyntaxRoleModifier(SyntaxRole role, \aparameter(_,_)), aadt("Tree", [], dataSyntax())) = true
+ when role in {contextFreeSyntax(), lexicalSyntax(), keywordSyntax(), layoutSyntax()};
+
bool asubtype(\start(AType a), AType b) = asubtype(a, b);
bool asubtype(i:\iter(AType s), AType b){
@@ -517,6 +529,52 @@ bool comparableList(list[AType] l, list[AType] r) {
return size(l) == size(r) && all(i <- index(l), comparable(l[i], r[i]));
}
+bool outerComparable(AType l, AType r){
+ return outerComparable1(l, r);
+}
+
+bool outerComparable1(AType l, l) = true;
+bool outerComparable1(alist(_), alist(_)) = true;
+bool outerComparable1(aset(_), aset(_)) = true;
+bool outerComparable1(abag(_), abag(_)) = true;
+bool outerComparable1(arel(atypeList(list[AType] ts1)), arel(atypeList(list[AType] ts2))) = size(ts1) == size(ts2);
+bool outerComparable1(arel(_), aset(_)) = true;
+bool outerComparable1(aset(_), arel(_)) = true;
+bool outerComparable1(alrel(atypeList(list[AType] ts1)), alrel(atypeList(list[AType] ts2))) = size(ts1) == size(ts2);
+bool outerComparable1(alrel(_), alist(_)) = true;
+bool outerComparable1(atuple(atypeList(ts1)), atuple(atypeList(ts2))) = size(ts1) == size(ts2);
+bool outerComparable1(amap(_,_), amap(_,_)) = true;
+
+bool outerComparable1(f1:afunc(AType r1, list[AType] p1, list[Keyword] _), f2:afunc(AType r2, list[AType] p2, list[Keyword] _))
+ = outerComparable(r1, r2) && (f1.varArgs ? (f2.varArgs ? outerComparable(p1, p2)
+ : outerComparable(p1[0..-1], p2))
+ : (f2.varArgs ? outerComparable(p1, p2[0..-1])
+ : outerComparable(p1, p2)));
+
+bool outerComparable1(afunc(AType r1, list[AType] p1, list[Keyword] _), acons(AType r2, list[AType] p2, list[Keyword] _))
+ = outerComparable(r1, r2) && outerComparable(p1, p2);
+bool outerComparable1(acons(AType r1, list[AType] p1, list[Keyword] _), afunc(AType r2, list[AType] p2, list[Keyword] _))
+ = outerComparable(r1, r2) && outerComparable(p1, p2);
+
+bool outerComparable1(aparameter(str pname1, AType bound1), aparameter(str pname2, AType bound2))
+ = outerComparable(bound1, bound2);
+
+bool outerComparable1(aadt(str adtName1, list[AType] parameters1, SyntaxRole syntaxRole1), areified(_)) = true;
+
+// syntax role with incomparable roles are not outer comparable, but otherwise they act like aadt's:
+// JV: commented out until I understand the use of outerComparable1 better.
+// bool outerComparable1(asyntaxRoleModifier(SyntaxRole role, aparameter(_,_)), asyntaxRoleModifier(role, aparameter(_,_))) = true;
+// bool outerComparable1(asyntaxRoleModifier(SyntaxRole role, aparameter(_,_)), aadt(_,_,role)) = true;
+// bool outerComparable1(aadt(_,_,role), asyntaxRoleModifier(SyntaxRole role, aparameter(_,_))) = true;
+
+default bool outerComparable1(AType l, AType r) {
+ return comparable(l, r);
+}
+
+bool outerComparable(list[AType] l, list[AType] r) = all(i <- index(l), outerComparable(l[i], r[i])) when size(l) == size(r) && size(l) > 0;
+default bool outerComparable(list[AType] l, list[AType] r) = size(l) == 0 && size(r) == 0;
+
+
@doc{
.Synopsis
Check if two types are equivalent.
@@ -637,6 +695,7 @@ AType addADTLabel(AType a1, AType a2, AType adt){
return adt;
}
+
//AType alub(acons(AType la, list[AType] _, list[Keyword] _), acons(AType ra, list[AType] _, list[Keyword] _)) = alub(la,ra);
AType alub(acons(AType lr, list[AType] lp, list[Keyword] lkw), acons(AType rr, list[AType] rp, list[Keyword] rkw)) {
if(size(lp) == size(rp)){
@@ -683,6 +742,32 @@ AType alub(AType l, p:aparameter(n, b, closed=true)) = lb == b ? p : lb when !(
AType alub(areified(AType l), areified(AType r)) = areified(alub(l,r));
AType alub(areified(AType l), anode(_)) = anode([]);
+AType alub(\asyntaxRoleModifier(SyntaxRole role, \aparameter(_,_)), a:aadt(_, _, role)) = a;
+AType alub(a:aadt(_, _, role), \asyntaxRoleModifier(SyntaxRole role, \aparameter(_,_))) = a;
+
+AType alub(\asyntaxRoleModifier(_, \aparameter(_, _)), anode(l)) = \anode(l);
+AType alub(\anode(l), \asyntaxRoleModifier(_, \aparameter(_, _))) = \anode(l);
+
+AType alub(\asyntaxRoleModifier(SyntaxRole role, \aparameter(_, _)), aadt("Tree",[], dataSyntax()))
+ = aadt("Tree",[], dataSyntax())
+ when role in {contextFreeSyntax(), lexicalSyntax(), keywordSyntax(), layoutSyntax()};
+
+AType alub(aadt("Tree",[], dataSyntax()), \asyntaxRoleModifier(SyntaxRole role, \aparameter(_, _)))
+ = aadt("Tree",[], dataSyntax())
+ when role in {contextFreeSyntax(), lexicalSyntax(), keywordSyntax(), layoutSyntax()};
+
+// ---
+
+AType alub(\asyntaxRoleModifier(dataSyntax(), \aparameter(x, _)),
+ \asyntaxRoleModifier(SyntaxRole _, \aparameter(y, _))) = anode([]) when x != y;
+
+AType alub(\asyntaxRoleModifier(SyntaxRole _, \aparameter(x, _)),
+ \asyntaxRoleModifier(dataSyntax(), \aparameter(y, _))) = anode([]) when x != y;
+
+AType alub(\asyntaxRoleModifier(SyntaxRole a, \aparameter(x, _)),
+ \asyntaxRoleModifier(SyntaxRole b, \aparameter(y, _))) = aadt("Tree",[], dataSyntax())
+ when x != y, {a,b} < {contextFreeSyntax(), lexicalSyntax(), keywordSyntax(), layoutSyntax()};
+
AType alub(l:\achar-class(_), r:\achar-class(_)) = union(l, r);
AType alub(\iter(AType l), \iter(AType r)) = aadt("Tree", [], dataSyntax()) when l != r;
@@ -848,5 +933,18 @@ public AType aglb(afunc(AType lr, list[AType] lp, list[Keyword] kwl), afunc(ATyp
return avalue();
}
+AType aglb(asyntaxRoleModifier(SyntaxRole role, p1:aparameter(_,_)),
+ asyntaxRoleModifier( role, p2:aparameter(_,_)))
+ = asyntaxRoleModifier(r, glb(p1, p2)) when p1 != p2;
+
+AType aglb(a:asyntaxRoleModifier(SyntaxRole _, aparameter(_,_)), \anode(_)) = a;
+AType aglb(\anode(_), a:asyntaxRoleModifier(SyntaxRole _, aparameter(_,_))) = a;
+
+AType aglb(a:asyntaxRoleModifier(SyntaxRole role, aparameter(_,_)), aadt("Tree", [], dataSyntax())) = a
+ when role in {contextFreeSyntax(), lexicalSyntax(), keywordSyntax(), layoutSyntax()};
+
+AType aglb(aadt("Tree", [], dataSyntax()), a:asyntaxRoleModifier(SyntaxRole role, aparameter(_,_))) = a
+ when role in {contextFreeSyntax(), lexicalSyntax(), keywordSyntax(), layoutSyntax()};
+
public list[AType] aglbList(list[AType] l, list[AType] r) = [aglb(l[idx],r[idx]) | idx <- index(l)] when size(l) == size(r);
public default list[AType] aglbList(list[AType] l, list[AType] r) = [avalue()];
diff --git a/src/org/rascalmpl/compiler/lang/rascalcore/check/ATypeBase.rsc b/src/org/rascalmpl/compiler/lang/rascalcore/check/ATypeBase.rsc
index bd754637dec..164d810053b 100644
--- a/src/org/rascalmpl/compiler/lang/rascalcore/check/ATypeBase.rsc
+++ b/src/org/rascalmpl/compiler/lang/rascalcore/check/ATypeBase.rsc
@@ -324,6 +324,16 @@ data AType
| \start(AType atype)
;
+@synopsis{These are the syntax role modifier constructors}
+data AType = \asyntaxRoleModifier(SyntaxRole role, AType modified);
+
+@synopsis{this is the core modifier feature: force the "role", keep the rest}
+AType asyntaxRoleModifier(SyntaxRole newRole, aadt(n, ps, SyntaxRole _oldRole)) = aadt(n, ps, newRole);
+
+@synopsis{The outermost modifier eventually always wins, even on open modified types.}
+AType asyntaxRoleModifier(SyntaxRole role, asyntaxRoleModifier(_, AType s))
+ = asyntaxRoleModifier(role, s);
+
//public AType \iter-seps(AType atype, []) = \iter(atype);
//public AType \iter-star-seps(AType atype, []) = \iter-star(atype);
diff --git a/src/org/rascalmpl/compiler/lang/rascalcore/check/CollectType.rsc b/src/org/rascalmpl/compiler/lang/rascalcore/check/CollectType.rsc
index 71e91d02998..6f6fcbbb53b 100644
--- a/src/org/rascalmpl/compiler/lang/rascalcore/check/CollectType.rsc
+++ b/src/org/rascalmpl/compiler/lang/rascalcore/check/CollectType.rsc
@@ -875,7 +875,37 @@ void collect(current: (TypeVar) `& \<: `, Collector c){
collect(tp, c);
}
-@doc{A parsing function, useful for generating test cases.}
+// syntax type modifiers
+
+void collect(current: (Type) `data[]`, Collector c)
+ = collectSyntaxRoleModifiers(dataSyntax(), current, tp, c);
+
+void collect(current: (Type) `syntax[]`, Collector c)
+ = collectSyntaxRoleModifiers(contextFreeSyntax(), current, tp, c);
+
+void collect(current: (Type) `lexical[]`, Collector c)
+ = collectSyntaxRoleModifiers(lexicalSyntax(), current, tp, c);
+
+void collect(current: (Type) `keyword[]`, Collector c)
+ = collectSyntaxRoleModifiers(keywordSyntax(), current, tp, c);
+
+void collect(current: (Type) `layout[]`, Collector c)
+ = collectSyntaxRoleModifiers(layoutSyntax(), current, tp, c);
+
+private void collectSyntaxRoleModifiers(SyntaxRole role, Type current, Type tp, Collector c) {
+ collect(tp, c);
+ par = c.getType(tp);
+
+ if(!par is aparameter && !par is aadt && !par is asyntaxRoleModifier) {
+ c.report(error(current, "Unable to handle the parameter kind in ``; only type parameters like `&T`, or data, syntax, lexical, layout or keyword names like `Stat` are understood."));
+ }
+ else {
+ c.fact(current, asyntaxRoleModifier(role, c.getType(tp)));
+ }
+}
+
+
+@synopsis{A parsing function, useful for generating test cases.}
public Type parseType(str s) {
return parse(#Type, s);
}
diff --git a/src/org/rascalmpl/compiler/lang/rascalcore/compile/muRascal2Java/JGenie.rsc b/src/org/rascalmpl/compiler/lang/rascalcore/compile/muRascal2Java/JGenie.rsc
index 09099adbe7f..631e95e00f3 100644
--- a/src/org/rascalmpl/compiler/lang/rascalcore/compile/muRascal2Java/JGenie.rsc
+++ b/src/org/rascalmpl/compiler/lang/rascalcore/compile/muRascal2Java/JGenie.rsc
@@ -657,7 +657,24 @@ JGenie makeJGenie(MuModule m,
kwpTypeDecls += "$TS.declareKeywordParameter(,\"\", <_getATypeAccessor(kwpField.fieldType)>);\n";
}
}
- } else {
+ }
+ else if (asyntaxRoleModifier(SyntaxRole role, p:aparameter(_,_)) := s) {
+ // all other cases of this constructor have been rewritten to aadt(...) instances,
+ // or caused a fatal error in the type-checker.
+ isLocal = isEmpty(_getATypeAccessor(s));
+ if (isLocal) {
+ switch (role) {
+ case contextFreeSyntax() : r = "Syntax";
+ case lexicalSyntax() : r = "Lexical";
+ case keywordSyntax() : r = "Keyword";
+ case layoutSyntax() : r = "Layout";
+ case dataSyntax() : r = "Data";
+ }
+
+ return "$modifyTo()";
+ }
+ }
+ else {
tdecls += "public final io.usethesource.vallang.type.Type ;\t/**/\n";
tinits += " = ;\n";
}
diff --git a/src/org/rascalmpl/interpreter/staticErrors/JavaMethodNotFound.java b/src/org/rascalmpl/interpreter/staticErrors/JavaMethodNotFound.java
new file mode 100644
index 00000000000..c958c4b9ac6
--- /dev/null
+++ b/src/org/rascalmpl/interpreter/staticErrors/JavaMethodNotFound.java
@@ -0,0 +1,12 @@
+package org.rascalmpl.interpreter.staticErrors;
+
+import io.usethesource.vallang.ISourceLocation;
+
+public class JavaMethodNotFound extends StaticError {
+ private static final long serialVersionUID = 6760221123820619061L;
+
+ public JavaMethodNotFound(String message, ISourceLocation loc, Throwable cause) {
+ super(message, loc, cause);
+ }
+
+}
diff --git a/src/org/rascalmpl/interpreter/staticErrors/UnexpectedType.java b/src/org/rascalmpl/interpreter/staticErrors/UnexpectedType.java
index 706b97018ff..ca40ab85243 100644
--- a/src/org/rascalmpl/interpreter/staticErrors/UnexpectedType.java
+++ b/src/org/rascalmpl/interpreter/staticErrors/UnexpectedType.java
@@ -14,6 +14,10 @@
package org.rascalmpl.interpreter.staticErrors;
import org.rascalmpl.ast.AbstractAST;
+import org.rascalmpl.types.NonTerminalType;
+import org.rascalmpl.types.RascalType;
+import org.rascalmpl.values.parsetrees.SymbolAdapter;
+
import io.usethesource.vallang.ISourceLocation;
import io.usethesource.vallang.type.Type;
@@ -21,10 +25,22 @@ public class UnexpectedType extends StaticError {
private static final long serialVersionUID = -9009407553448884728L;
public UnexpectedType(Type expected, Type got, AbstractAST ast) {
- super("Expected " + expected + ", but got " + got, ast);
+ super(computeMessage(expected, got), ast);
}
public UnexpectedType(Type expected, Type got, ISourceLocation loc) {
- super("Expected " + expected + ", but got " + got, loc);
+ super(computeMessage(expected, got), loc);
+ }
+
+ private static String computeMessage(Type expected, Type got) {
+ if (expected.isAbstractData() && (got.isExternalType() && ((RascalType) got).isNonterminal())) {
+ return "Expected data[" + expected + "], but got " + (SymbolAdapter.isSort(((NonTerminalType) got).getSymbol()) ? "syntax" : "lexical") + "[" + got + "]";
+ }
+ else if (got.isAbstractData() && (expected.isExternalType() && ((RascalType) expected).isNonterminal())) {
+ return "Expected " + (SymbolAdapter.isSort(((NonTerminalType) expected).getSymbol()) ? "syntax" : "lexical") + "[" + expected + "], but got data[" + got + "]";
+ }
+ else {
+ return "Expected " + expected + ", but got " + got;
+ }
}
}
diff --git a/src/org/rascalmpl/library/ParseTree.rsc b/src/org/rascalmpl/library/ParseTree.rsc
index e1e49aa00de..50affa48917 100644
--- a/src/org/rascalmpl/library/ParseTree.rsc
+++ b/src/org/rascalmpl/library/ParseTree.rsc
@@ -148,6 +148,9 @@ extend Type;
import Node;
import Set;
+extend Message;
+extend Type;
+
@synopsis{The Tree data type as produced by the parser.}
@description{
@@ -313,7 +316,99 @@ data Symbol
data Symbol // <19>
= \conditional(Symbol symbol, set[Condition] conditions);
-bool subtype(Symbol::\sort(_), Symbol::\adt("Tree", _)) = true;
+data Symbol
+ = \syntax(Symbol modified)
+ | \lexical(Symbol modified)
+ | \keyword(Symbol modified)
+ | \layout(Symbol modified)
+ ;
+
+Symbol \data(\syntax(Symbol s)) = \data(s);
+Symbol \data(\lexical(Symbol s)) = \data(s);
+Symbol \data(\keyword(Symbol s)) = \data(s);
+Symbol \data(\layout(Symbol s)) = \data(s);
+
+Symbol \data(a:adt(n, ps)) = a;
+Symbol \data(sort(n)) = \adt(n, []);
+Symbol \data(\parameterized-sort(n, ps)) = \adt(n, ps);
+Symbol \data(lex(n)) = \adt(n, []);
+Symbol \data(\parameterized-lex(n, ps)) = \adt(n, ps);
+Symbol \data(\keywords(n)) = \adt(n, []);
+Symbol \data(\layouts(n)) = \adt(n, []);
+
+Symbol \syntax(\data(Symbol s)) = \syntax(s);
+Symbol \syntax(\syntax(Symbol s)) = \syntax(s);
+Symbol \syntax(\lexical(Symbol s)) = \syntax(s);
+Symbol \syntax(\keyword(Symbol s)) = \syntax(s);
+Symbol \syntax(\layout(Symbol s)) = \syntax(s);
+
+Symbol \syntax(adt(n, [])) = sort(n);
+Symbol \syntax(adt(n, [p, *ps])) = \parameterized-sort(n, [p, *ps]);
+Symbol \syntax(lex(n)) = sort(n);
+Symbol \syntax(\parameterized-lex(n,ps)) = \parameterized-sort(n,ps);
+Symbol \syntax(sort(n)) = sort(n);
+Symbol \syntax(\parameterized-sort(n,ps))= \parameterized-sort(n,ps);
+Symbol \syntax(\keywords(n)) = sort(n);
+Symbol \syntax(\layouts(n)) = sort(n);
+
+Symbol \lexical(\data(Symbol s)) = \lexical(s);
+Symbol \lexical(\syntax(Symbol s)) = \lexical(s);
+Symbol \lexical(\lexical(Symbol s)) = \lexical(s);
+Symbol \lexical(\keyword(Symbol s)) = \lexical(s);
+Symbol \lexical(\layout(Symbol s)) = \lexical(s);
+
+Symbol \lexical(adt(n, [])) = lex(n);
+Symbol \lexical(adt(n, [p, *ps])) = \parameterized-lex(n, [p, *ps]);
+Symbol \lexical(lex(n)) = lex(n);
+Symbol \lexical(\parameterized-lex(n,ps)) = \parameterized-lex(n,ps);
+Symbol \lexical(sort(n)) = lex(n);
+Symbol \lexical(\parameterized-sort(n,ps))= \parameterized-lex(n,ps);
+Symbol \lexical(\keywords(n)) = lex(n);
+Symbol \lexical(\layouts(n)) = lex(n);
+
+Symbol \keyword(\data(Symbol s)) = \keyword(s);
+Symbol \keyword(\syntax(Symbol s)) = \keyword(s);
+Symbol \keyword(\lexical(Symbol s)) = \keyword(s);
+Symbol \keyword(\keyword(Symbol s)) = \keyword(s);
+Symbol \keyword(\layout(Symbol s)) = \keyword(s);
+
+Symbol \keyword(adt(n, [])) = keywords(n);
+Symbol \keyword(lex(n)) = keywords(n);
+Symbol \keyword(sort(n)) = keywords(n);
+Symbol \keyword(\keywords(n)) = keywords(n);
+Symbol \keyword(\layouts(n)) = keywords(n);
+
+Symbol \layout(\data(Symbol s)) = \layout(s);
+Symbol \layout(\syntax(Symbol s)) = \layout(s);
+Symbol \layout(\lexical(Symbol s)) = \layout(s);
+Symbol \layout(\keyword(Symbol s)) = \layout(s);
+Symbol \layout(\layout(Symbol s)) = \layout(s);
+
+Symbol \layout(adt(n, [])) = layouts(n);
+Symbol \layout(lex(n)) = layouts(n);
+Symbol \layout(sort(n)) = layouts(n);
+Symbol \layout(\keywords(n)) = layouts(n);
+Symbol \layout(\layouts(n)) = layouts(n);
+
+
+bool subtype(Symbol::\sort(_), Symbol::\adt("Tree", [])) = true;
+bool subtype(Symbol::\parameterized-sort(_,_), Symbol::\adt("Tree", [])) = true;
+bool subtype(Symbol::\lex(_), Symbol::\adt("Tree", [])) = true;
+bool subtype(Symbol::\parameterized-lex(_,_), Symbol::\adt("Tree", [])) = true;
+bool subtype(Symbol::\layouts(_), Symbol::\adt("Tree", [])) = true;
+bool subtype(Symbol::\keywords(_), Symbol::\adt("Tree", [])) = true;
+
+bool subtype(\syntax(_), Symbol::\adt("Tree", [])) = true;
+bool subtype(\lexical(_), Symbol::\adt("Tree", [])) = true;
+bool subtype(\layout(_), Symbol::\adt("Tree", [])) = true;
+bool subtype(\keyword(_), Symbol::\adt("Tree", [])) = true;
+
+bool subtype(\syntax(parameter(_,_)), sort(_)) = true;
+bool subtype(\syntax(parameter(_,_)), \parameterized-sort(_,_)) = true;
+bool subtype(\lexical(parameter(_,_)), lex(_)) = true;
+bool subtype(\lexical(parameter(_,_)), \parameterized-lex(_,_)) = true;
+bool subtype(\keyword(parameter(_,_)), keywords(_)) = true;
+bool subtype(\layout(parameter(_,_)), layouts(_)) = true;
@synopsis{Datatype for declaring preconditions and postconditions on symbols}
diff --git a/src/org/rascalmpl/library/Type.java b/src/org/rascalmpl/library/Type.java
index 2c6b2c8adf9..fc5290be1fd 100644
--- a/src/org/rascalmpl/library/Type.java
+++ b/src/org/rascalmpl/library/Type.java
@@ -11,33 +11,33 @@
*******************************************************************************/
package org.rascalmpl.library;
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.Iterator;
+import java.util.HashSet;
import java.util.Map;
-import java.util.Map.Entry;
+import java.util.stream.Collectors;
import org.rascalmpl.exceptions.RuntimeExceptionFactory;
import org.rascalmpl.types.TypeReifier;
+import org.rascalmpl.values.IRascalValueFactory;
+import org.rascalmpl.values.RascalValueFactory;
import io.usethesource.vallang.IBool;
import io.usethesource.vallang.IConstructor;
import io.usethesource.vallang.IList;
import io.usethesource.vallang.IMap;
+import io.usethesource.vallang.INode;
+import io.usethesource.vallang.ISetWriter;
import io.usethesource.vallang.IString;
+import io.usethesource.vallang.ITuple;
import io.usethesource.vallang.IValue;
-import io.usethesource.vallang.IValueFactory;
import io.usethesource.vallang.exceptions.FactTypeUseException;
import io.usethesource.vallang.type.TypeFactory;
import io.usethesource.vallang.type.TypeStore;
public class Type {
- private final IValueFactory vf;
- private final IMap emptyMap;
+ private final IRascalValueFactory vf;
- public Type(IValueFactory vf) {
+ public Type(IRascalValueFactory vf, TypeFactory tf) {
this.vf = vf;
- emptyMap = vf.mapWriter().done();
}
public IValue typeOf(IValue v) {
@@ -48,39 +48,44 @@ public IValue typeOf(IValue v) {
).get("symbol");
}
+ public IValue getConstructor(INode v) {
+ assert v.getType().isAbstractData();
+ io.usethesource.vallang.type.Type constructor = ((IConstructor) v).getUninstantiatedConstructorType();
+
+ TypeStore store = new TypeStore();
+ store.declareAbstractDataType(v.getType());
+ store.declareConstructor(constructor);
+
+ ISetWriter grammar = vf.setWriter();
+
+ new TypeReifier(vf).typeToValue(constructor, store, vf.map());
+
+ constructor.asProductions(vf, store, grammar, new HashSet<>());
+
+ return grammar.done().stream().map(t -> ((ITuple) t).get(1)).findFirst().get();
+ }
+
public IBool eq(IValue x, IValue y) {
return vf.bool(x.equals(y));
}
public IValue make(IValue type, IString name, IList args) {
- return make(type, name, args, emptyMap);
+ return make(type, name, args, vf.map());
}
public IValue make(IValue type, IString name, IList args, IMap keywordParameters) {
- TypeStore store = new TypeStore();
- io.usethesource.vallang.type.Type t = new TypeReifier(vf).valueToType((IConstructor) type, store);
-
- IValue[] children = new IValue[args.length()];
- io.usethesource.vallang.type.Type[] argsTypes = new io.usethesource.vallang.type.Type[args.length()];
+ Map kwMap = keywordParameters
+ .stream()
+ .map(v -> (ITuple) v)
+ .collect(Collectors.toMap(t -> ((IString) t.get(0)).getValue(), t -> t.get(1)));
- for (int i = 0; i < args.length(); i++) {
- children[i] = args.get(i);
- argsTypes[i] = children[i].getType();
- }
+ IValue[] children = args.stream().toArray(IValue[]::new);
- Map kwmap;
-
- if(keywordParameters.size() == 0){
- kwmap = Collections.emptyMap();
- } else {
-
- Iterator> iter = keywordParameters.entryIterator();
- kwmap = new HashMap();
- while(iter.hasNext()){
- Entry entry = iter.next();
- kwmap.put(((IString) entry.getKey()).getValue(), entry.getValue());
- }
- }
+ io.usethesource.vallang.type.Type[] argsTypes
+ = args.stream().map(v -> v.getType()).toArray(io.usethesource.vallang.type.Type[]::new);
+
+ TypeStore store = new TypeStore();
+ io.usethesource.vallang.type.Type t = new TypeReifier(vf).valueToType((IConstructor) type, store);
try {
@@ -88,15 +93,40 @@ public IValue make(IValue type, IString name, IList args, IMap keywordParameters
= store.lookupConstructor(t, name.getValue(), TypeFactory.getInstance().tupleType(argsTypes));
if (constructor == null) {
- // TODO: improve error messaging, using specialized exception
- throw RuntimeExceptionFactory.illegalArgument(type, null, null);
+ throw RuntimeExceptionFactory.illegalArgument(type, vf.string("one of the parameters of the constructor did not fit its declaration."));
}
- return vf.constructor(constructor, children, kwmap);
+
+ return vf.constructor(constructor, children, kwMap);
+
+ }
+ catch (FactTypeUseException e) {
+ throw RuntimeExceptionFactory.illegalArgument(type, vf.string("one of the (keyword) parameters of the constructor did not fit its declaration."));
+ }
+ }
+ public IValue make(IConstructor cons, IList args, IMap keywordParameters) {
+ Map kwMap = keywordParameters
+ .stream()
+ .map(v -> (ITuple) v)
+ .collect(Collectors.toMap(t -> ((IString) t.get(0)).getValue(), t -> t.get(1)));
+
+ if (cons.getConstructorType() == RascalValueFactory.Production_Default) {
+ // this is a parse tree production. We can just return the tree, and add the keyword parameters
+ return vf.appl(cons, args).asWithKeywordParameters().setParameters(kwMap);
+ }
+
+ if (cons.getConstructorType() != RascalValueFactory.Production_Cons) {
+ throw RuntimeExceptionFactory.illegalArgument(cons, "must be a cons or a prod rule.");
+ }
+
+ io.usethesource.vallang.type.Type constructor = new TypeReifier(vf).productionToConstructorType(cons);
+
+ try {
+ IValue[] children = args.stream().toArray(IValue[]::new);
+ return vf.constructor(constructor, children, kwMap);
}
catch (FactTypeUseException e) {
- // TODO: improve error messaging, using specialized exception
- throw RuntimeExceptionFactory.illegalArgument(type, null, null);
+ throw RuntimeExceptionFactory.illegalArgument(cons, vf.string("one of the parameters of the constructor did not fit its declaration."));
}
}
diff --git a/src/org/rascalmpl/library/Type.rsc b/src/org/rascalmpl/library/Type.rsc
index 8c6cafe1997..6932df5bd31 100644
--- a/src/org/rascalmpl/library/Type.rsc
+++ b/src/org/rascalmpl/library/Type.rsc
@@ -104,6 +104,14 @@ data Symbol // <4>
= \parameter(str name, Symbol bound)
;
+data Symbol = \data(Symbol modified); // to-data modifier
+
+Symbol \data(\data(Symbol s)) = \data(s);
+Symbol \data(adt(n, ps)) = adt(n, ps);
+
+bool subtype(\data(Symbol s), \node()) = true;
+bool subtype(\data(parameter(_,_)), adt(_,_)) = true;
+
@synopsis{rel types are syntactic sugar for sets of tuples.}
Symbol \rel(list[Symbol] symbols)
= \set(\tuple(symbols));
@@ -112,7 +120,6 @@ Symbol \rel(list[Symbol] symbols)
Symbol \lrel(list[Symbol] symbols)
= \list(\tuple(symbols));
-
@synopsis{Overloaded/union types are always reduced to the least upper bound of their constituents.}
@description{
This semantics of overloading in the type system is essential to make sure it remains a _lattice_.
@@ -318,8 +325,31 @@ This function can be used to validate external data sources against a data type
java &T make(type[&T] typ, str name, list[value] args);
@javaClass{org.rascalmpl.library.Type}
-java &T make(type[&T] typ, str name, list[value] args, map[str,value] keywordArgs);
-
+public java &T make(type[&T] typ, str name, list[value] args, map[str,value] keywordArgs);
+
+@javaClass{org.rascalmpl.library.Type}
+@synopsis{Instantiate a constructor value by first declaring the given constructor and then applying it to the given parameters.}
+@description{
+The grammar rules for data constructors in a reified type can inversely be applied
+again to construct constructor instances, dynamically.
+
+This "reflection" feature is dynamically typed, so we don't know statically which type
+of ADT will come out.
+}
+@examples{
+This is the value-ified represention of `data Exp = constant(int n)`:
+```rascal-shell
+import Type;
+rule = cons(label("constant",adt("Exp",[])),[label("n",\int())],[],{});
+// we can use it to instantiate a constructor value that uses that rule:
+example = make(rule, [1]);
+// to illustrate we now construct it the normal way and test for equivalence:
+data Exp = constant(int n);
+example == constant(1);
+```
+}
+public java node make(Production cons, list[value] args, map[str,value] keywordArgs=());
+
@synopsis{Returns the dynamic type of a value as a ((Type-Symbol)).}
@description{
As opposed to the # operator, which produces the type of a value statically, this
@@ -343,4 +373,7 @@ Note that the `typeOf` function does not produce definitions, like the
reify operator `#` does, since values may escape the scope in which they've been constructed.
}
@javaClass{org.rascalmpl.library.Type}
-java Symbol typeOf(value v);
\ No newline at end of file
+public java Symbol typeOf(value v);
+
+@javaClass{org.rascalmpl.library.Type}
+public java Production getConstructor(&A <: node constructor);
diff --git a/src/org/rascalmpl/library/lang/paths/Windows.rsc b/src/org/rascalmpl/library/lang/paths/Windows.rsc
index 20a38c7db41..133c00b9a71 100644
--- a/src/org/rascalmpl/library/lang/paths/Windows.rsc
+++ b/src/org/rascalmpl/library/lang/paths/Windows.rsc
@@ -10,7 +10,7 @@ The main function of this module, ((parseWindowsPath)):
* throws a ParseError if the path does not comply. Typically file names ending in spaces do not comply.
* ensures that if the file exists on system A, then the `loc` representation
resolves to the same file on system A via any ((Library:module:IO)) function.
-* and nothing more. No normalization, no interpretation of `.` and `..`, no changing of cases.
+* and nothing more. No normalization, no interpretation of `.` and `..`, no changing of cases.
This is left to downstream processors of `loc` values, if necessary. The current transformation
is purely syntactical, and tries to preserve the semantics of the path as much as possible.
}
diff --git a/src/org/rascalmpl/library/lang/rascal/syntax/Rascal.rsc b/src/org/rascalmpl/library/lang/rascal/syntax/Rascal.rsc
index 8398358ff60..cc93f9be079 100644
--- a/src/org/rascalmpl/library/lang/rascal/syntax/Rascal.rsc
+++ b/src/org/rascalmpl/library/lang/rascal/syntax/Rascal.rsc
@@ -157,10 +157,10 @@ lexical Name
;
syntax SyntaxDefinition
- = @Foldable \layout : Visibility vis "layout" Sym defined "=" Prod production ";"
- | @Foldable \lexical : "lexical" Sym defined "=" Prod production ";"
- | @Foldable \keyword : "keyword" Sym defined "=" Prod production ";"
- | @Foldable language: Start start "syntax" Sym defined "=" Prod production ";" ;
+ = @Foldable \layout : Visibility vis "layout" Sym!characterClass defined "=" Prod production ";"
+ | @Foldable \lexical : "lexical" Sym!characterClass defined "=" Prod production ";"
+ | @Foldable \keyword : "keyword" Sym!characterClass defined "=" Prod production ";"
+ | @Foldable language: Start start "syntax" Sym!characterClass defined "=" Prod production ";" ;
syntax Kind
= function: "function"
@@ -745,6 +745,15 @@ syntax Type
| selector: DataTypeSelector selector
| variable: TypeVar typeVar
| symbol: Sym!nonterminal!labeled!parametrized!parameter symbol
+ | modifier: SyntaxRoleModifier modifier
+ ;
+
+syntax SyntaxRoleModifier // TODO @rodin zegt dat dit Type moet zijn en niet TypeArg
+ = \syntax: "syntax" "[" TypeArg arg "]"
+ | \lexical: "lexical" "[" TypeArg arg "]"
+ | \layout: "layout" "[" TypeArg arg "]"
+ | \keyword: "keyword" "[" TypeArg arg "]"
+ | \data: "data" "[" TypeArg arg "]"
;
syntax Declaration
diff --git a/src/org/rascalmpl/library/lang/rascal/syntax/RascalParser.java b/src/org/rascalmpl/library/lang/rascal/syntax/RascalParser.java
index 4d9382f98d8..8eb1a99df9c 100644
--- a/src/org/rascalmpl/library/lang/rascal/syntax/RascalParser.java
+++ b/src/org/rascalmpl/library/lang/rascal/syntax/RascalParser.java
@@ -79,103 +79,29 @@ protected static IntegerKeyedHashMap _initDontNest() {
_putDontNest(result, 1561, 1592);
- _putDontNest(result, 1344, 1388);
-
- _putDontNest(result, 1344, 1473);
-
- _putDontNest(result, 1344, 1358);
-
- _putDontNest(result, 1344, 1426);
-
- _putDontNest(result, 1344, 1416);
-
- _putDontNest(result, 1344, 1379);
-
- _putDontNest(result, 1344, 1397);
-
- _putDontNest(result, 1344, 1483);
-
- _putDontNest(result, 1344, 1445);
-
- _putDontNest(result, 1344, 1493);
-
- _putDontNest(result, 1344, 1349);
-
- _putDontNest(result, 1344, 1370);
-
- _putDontNest(result, 1344, 1508);
-
- _putDontNest(result, 1344, 1407);
-
- _putDontNest(result, 1344, 1464);
-
- _putDontNest(result, 1344, 1436);
-
- _putDontNest(result, 1344, 1454);
-
- _putDontNest(result, 1034, 1388);
-
- _putDontNest(result, 1034, 1473);
-
- _putDontNest(result, 1034, 1358);
-
- _putDontNest(result, 1034, 1210);
-
- _putDontNest(result, 1034, 1416);
-
- _putDontNest(result, 1034, 1379);
-
- _putDontNest(result, 1034, 1204);
-
- _putDontNest(result, 1034, 1397);
-
- _putDontNest(result, 1034, 1483);
-
- _putDontNest(result, 1034, 1445);
-
- _putDontNest(result, 1034, 1234);
-
- _putDontNest(result, 1034, 1339);
-
- _putDontNest(result, 1034, 1370);
-
- _putDontNest(result, 1034, 1253);
-
- _putDontNest(result, 1034, 1267);
-
- _putDontNest(result, 1034, 1329);
-
- _putDontNest(result, 1034, 1508);
-
- _putDontNest(result, 1034, 1319);
-
- _putDontNest(result, 1034, 1288);
-
- _putDontNest(result, 1034, 1407);
-
- _putDontNest(result, 1034, 1464);
+ _putDontNest(result, 1379, 1388);
- _putDontNest(result, 1034, 1308);
+ _putDontNest(result, 1379, 1473);
- _putDontNest(result, 1034, 1426);
+ _putDontNest(result, 1379, 1426);
- _putDontNest(result, 1034, 1493);
+ _putDontNest(result, 1379, 1416);
- _putDontNest(result, 1034, 1276);
+ _putDontNest(result, 1379, 1379);
- _putDontNest(result, 1034, 1224);
+ _putDontNest(result, 1379, 1397);
- _putDontNest(result, 1034, 1244);
+ _putDontNest(result, 1379, 1483);
- _putDontNest(result, 1034, 1217);
+ _putDontNest(result, 1379, 1493);
- _putDontNest(result, 1034, 1349);
+ _putDontNest(result, 1379, 1370);
- _putDontNest(result, 1034, 1298);
+ _putDontNest(result, 1379, 1508);
- _putDontNest(result, 1034, 1436);
+ _putDontNest(result, 1379, 1407);
- _putDontNest(result, 1034, 1454);
+ _putDontNest(result, 1379, 1464);
_putDontNest(result, 1339, 1388);
@@ -207,60 +133,6 @@ protected static IntegerKeyedHashMap _initDontNest() {
_putDontNest(result, 1339, 1464);
- _putDontNest(result, 1229, 1388);
-
- _putDontNest(result, 1229, 1473);
-
- _putDontNest(result, 1229, 1358);
-
- _putDontNest(result, 1229, 1416);
-
- _putDontNest(result, 1229, 1379);
-
- _putDontNest(result, 1229, 1397);
-
- _putDontNest(result, 1229, 1483);
-
- _putDontNest(result, 1229, 1445);
-
- _putDontNest(result, 1229, 1244);
-
- _putDontNest(result, 1229, 1339);
-
- _putDontNest(result, 1229, 1349);
-
- _putDontNest(result, 1229, 1370);
-
- _putDontNest(result, 1229, 1253);
-
- _putDontNest(result, 1229, 1267);
-
- _putDontNest(result, 1229, 1329);
-
- _putDontNest(result, 1229, 1508);
-
- _putDontNest(result, 1229, 1319);
-
- _putDontNest(result, 1229, 1288);
-
- _putDontNest(result, 1229, 1407);
-
- _putDontNest(result, 1229, 1464);
-
- _putDontNest(result, 1229, 1308);
-
- _putDontNest(result, 1229, 1426);
-
- _putDontNest(result, 1229, 1493);
-
- _putDontNest(result, 1229, 1276);
-
- _putDontNest(result, 1229, 1298);
-
- _putDontNest(result, 1229, 1436);
-
- _putDontNest(result, 1229, 1454);
-
_putDontNest(result, 1043, 1388);
_putDontNest(result, 1043, 1473);
@@ -325,19 +197,21 @@ protected static IntegerKeyedHashMap _initDontNest() {
_putDontNest(result, 1043, 1454);
- _putDontNest(result, 2620, 14526);
+ _putDontNest(result, 7382, 7382);
- _putDontNest(result, 2620, 14641);
+ _putDontNest(result, 7382, 7394);
- _putDontNest(result, 2620, 14634);
+ _putDontNest(result, 14574, 14756);
- _putDontNest(result, 2620, 14542);
+ _putDontNest(result, 14574, 14747);
- _putDontNest(result, 1576, 1592);
+ _putDontNest(result, 14574, 14774);
- _putDontNest(result, 10788, 10721);
+ _putDontNest(result, 14574, 14784);
- _putDontNest(result, 10788, 10890);
+ _putDontNest(result, 14574, 14765);
+
+ _putDontNest(result, 1576, 1592);
_putDontNest(result, 1388, 1388);
@@ -363,6 +237,10 @@ protected static IntegerKeyedHashMap _initDontNest() {
_putDontNest(result, 1388, 1464);
+ _putDontNest(result, 10959, 879);
+
+ _putDontNest(result, 10959, 810);
+
_putDontNest(result, 1421, 1473);
_putDontNest(result, 1421, 1464);
@@ -451,9 +329,65 @@ protected static IntegerKeyedHashMap _initDontNest() {
_putDontNest(result, 1116, 1454);
- _putDontNest(result, 14330, 1426);
+ _putDontNest(result, 14426, 1426);
+
+ _putDontNest(result, 14769, 14784);
+
+ _putDontNest(result, 4648, 4781);
+
+ _putDontNest(result, 4648, 4799);
+
+ _putDontNest(result, 4648, 4793);
+
+ _putDontNest(result, 4648, 4761);
+
+ _putDontNest(result, 4648, 4772);
+
+ _putDontNest(result, 1344, 1388);
+
+ _putDontNest(result, 1344, 1473);
+
+ _putDontNest(result, 1344, 1358);
+
+ _putDontNest(result, 1344, 1426);
+
+ _putDontNest(result, 1344, 1416);
+
+ _putDontNest(result, 1344, 1379);
+
+ _putDontNest(result, 1344, 1397);
+
+ _putDontNest(result, 1344, 1483);
- _putDontNest(result, 14664, 14688);
+ _putDontNest(result, 1344, 1445);
+
+ _putDontNest(result, 1344, 1493);
+
+ _putDontNest(result, 1344, 1349);
+
+ _putDontNest(result, 1344, 1370);
+
+ _putDontNest(result, 1344, 1508);
+
+ _putDontNest(result, 1344, 1407);
+
+ _putDontNest(result, 1344, 1464);
+
+ _putDontNest(result, 1344, 1436);
+
+ _putDontNest(result, 1344, 1454);
+
+ _putDontNest(result, 7832, 14705);
+
+ _putDontNest(result, 14756, 14756);
+
+ _putDontNest(result, 14756, 14747);
+
+ _putDontNest(result, 14756, 14774);
+
+ _putDontNest(result, 14756, 14784);
+
+ _putDontNest(result, 14756, 14765);
_putDontNest(result, 1473, 1473);
@@ -529,62 +463,6 @@ protected static IntegerKeyedHashMap _initDontNest() {
_putDontNest(result, 1189, 1454);
- _putDontNest(result, 1239, 1388);
-
- _putDontNest(result, 1239, 1473);
-
- _putDontNest(result, 1239, 1358);
-
- _putDontNest(result, 1239, 1416);
-
- _putDontNest(result, 1239, 1379);
-
- _putDontNest(result, 1239, 1397);
-
- _putDontNest(result, 1239, 1483);
-
- _putDontNest(result, 1239, 1445);
-
- _putDontNest(result, 1239, 1493);
-
- _putDontNest(result, 1239, 1339);
-
- _putDontNest(result, 1239, 1349);
-
- _putDontNest(result, 1239, 1370);
-
- _putDontNest(result, 1239, 1329);
-
- _putDontNest(result, 1239, 1508);
-
- _putDontNest(result, 1239, 1319);
-
- _putDontNest(result, 1239, 1288);
-
- _putDontNest(result, 1239, 1407);
-
- _putDontNest(result, 1239, 1464);
-
- _putDontNest(result, 1239, 1308);
-
- _putDontNest(result, 1239, 1426);
-
- _putDontNest(result, 1239, 1298);
-
- _putDontNest(result, 1239, 1436);
-
- _putDontNest(result, 1239, 1454);
-
- _putDontNest(result, 14545, 14660);
-
- _putDontNest(result, 14545, 14688);
-
- _putDontNest(result, 14545, 14678);
-
- _putDontNest(result, 14545, 14669);
-
- _putDontNest(result, 14545, 14651);
-
_putDontNest(result, 1106, 1388);
_putDontNest(result, 1106, 1473);
@@ -637,17 +515,63 @@ protected static IntegerKeyedHashMap _initDontNest() {
_putDontNest(result, 1106, 1224);
- _putDontNest(result, 1106, 1244);
+ _putDontNest(result, 1106, 1244);
+
+ _putDontNest(result, 1106, 1217);
+
+ _putDontNest(result, 1106, 1349);
+
+ _putDontNest(result, 1106, 1298);
+
+ _putDontNest(result, 1106, 1436);
+
+ _putDontNest(result, 1106, 1454);
+
+ _putDontNest(result, 1239, 1388);
+
+ _putDontNest(result, 1239, 1473);
+
+ _putDontNest(result, 1239, 1358);
+
+ _putDontNest(result, 1239, 1416);
+
+ _putDontNest(result, 1239, 1379);
+
+ _putDontNest(result, 1239, 1397);
+
+ _putDontNest(result, 1239, 1483);
+
+ _putDontNest(result, 1239, 1445);
+
+ _putDontNest(result, 1239, 1493);
+
+ _putDontNest(result, 1239, 1339);
+
+ _putDontNest(result, 1239, 1349);
+
+ _putDontNest(result, 1239, 1370);
+
+ _putDontNest(result, 1239, 1329);
+
+ _putDontNest(result, 1239, 1508);
+
+ _putDontNest(result, 1239, 1319);
+
+ _putDontNest(result, 1239, 1288);
+
+ _putDontNest(result, 1239, 1407);
+
+ _putDontNest(result, 1239, 1464);
- _putDontNest(result, 1106, 1217);
+ _putDontNest(result, 1239, 1308);
- _putDontNest(result, 1106, 1349);
+ _putDontNest(result, 1239, 1426);
- _putDontNest(result, 1106, 1298);
+ _putDontNest(result, 1239, 1298);
- _putDontNest(result, 1106, 1436);
+ _putDontNest(result, 1239, 1436);
- _putDontNest(result, 1106, 1454);
+ _putDontNest(result, 1239, 1454);
_putDontNest(result, 1319, 1388);
@@ -687,6 +611,16 @@ protected static IntegerKeyedHashMap _initDontNest() {
_putDontNest(result, 1319, 1426);
+ _putDontNest(result, 14650, 14756);
+
+ _putDontNest(result, 14650, 14747);
+
+ _putDontNest(result, 14650, 14774);
+
+ _putDontNest(result, 14650, 14784);
+
+ _putDontNest(result, 14650, 14765);
+
_putDontNest(result, 1459, 1473);
_putDontNest(result, 1459, 1464);
@@ -827,6 +761,8 @@ protected static IntegerKeyedHashMap _initDontNest() {
_putDontNest(result, 1248, 1454);
+ _putDontNest(result, 7877, 14705);
+
_putDontNest(result, 1358, 1388);
_putDontNest(result, 1358, 1473);
@@ -861,9 +797,9 @@ protected static IntegerKeyedHashMap _initDontNest() {
_putDontNest(result, 1571, 1592);
- _putDontNest(result, 10863, 879);
+ _putDontNest(result, 10884, 10817);
- _putDontNest(result, 10863, 810);
+ _putDontNest(result, 10884, 10986);
_putDontNest(result, 1407, 1473);
@@ -945,10 +881,6 @@ protected static IntegerKeyedHashMap _initDontNest() {
_putDontNest(result, 1081, 1454);
- _putDontNest(result, 10922, 10721);
-
- _putDontNest(result, 10922, 10890);
-
_putDontNest(result, 1464, 1473);
_putDontNest(result, 1464, 1464);
@@ -959,13 +891,13 @@ protected static IntegerKeyedHashMap _initDontNest() {
_putDontNest(result, 1464, 1508);
- _putDontNest(result, 8644, 879);
+ _putDontNest(result, 11310, 10823);
- _putDontNest(result, 8649, 10727);
+ _putDontNest(result, 11310, 10817);
- _putDontNest(result, 8649, 10721);
+ _putDontNest(result, 11310, 10986);
- _putDontNest(result, 8649, 10890);
+ _putDontNest(result, 8740, 879);
_putDontNest(result, 1581, 1581);
@@ -1035,6 +967,16 @@ protected static IntegerKeyedHashMap _initDontNest() {
_putDontNest(result, 1072, 1454);
+ _putDontNest(result, 14641, 14756);
+
+ _putDontNest(result, 14641, 14747);
+
+ _putDontNest(result, 14641, 14774);
+
+ _putDontNest(result, 14641, 14784);
+
+ _putDontNest(result, 14641, 14765);
+
_putDontNest(result, 1293, 1388);
_putDontNest(result, 1293, 1473);
@@ -1071,32 +1013,6 @@ protected static IntegerKeyedHashMap _initDontNest() {
_putDontNest(result, 1293, 1454);
- _putDontNest(result, 14495, 14660);
-
- _putDontNest(result, 14495, 14688);
-
- _putDontNest(result, 14495, 14678);
-
- _putDontNest(result, 14495, 14669);
-
- _putDontNest(result, 14495, 14651);
-
- _putDontNest(result, 7302, 7302);
-
- _putDontNest(result, 14554, 14660);
-
- _putDontNest(result, 14554, 14688);
-
- _putDontNest(result, 14554, 14678);
-
- _putDontNest(result, 14554, 14669);
-
- _putDontNest(result, 14554, 14651);
-
- _putDontNest(result, 11030, 10721);
-
- _putDontNest(result, 11030, 10890);
-
_putDontNest(result, 1308, 1388);
_putDontNest(result, 1308, 1473);
@@ -1139,15 +1055,9 @@ protected static IntegerKeyedHashMap _initDontNest() {
_putDontNest(result, 1308, 1454);
- _putDontNest(result, 14660, 14660);
-
- _putDontNest(result, 14660, 14688);
-
- _putDontNest(result, 14660, 14678);
+ _putDontNest(result, 10931, 10817);
- _putDontNest(result, 14660, 14669);
-
- _putDontNest(result, 14660, 14651);
+ _putDontNest(result, 10931, 10986);
_putDontNest(result, 1426, 1473);
@@ -1161,17 +1071,25 @@ protected static IntegerKeyedHashMap _initDontNest() {
_putDontNest(result, 1426, 1508);
- _putDontNest(result, 14478, 14660);
+ _putDontNest(result, 10844, 10817);
+
+ _putDontNest(result, 10844, 10986);
+
+ _putDontNest(result, 14629, 14756);
+
+ _putDontNest(result, 14629, 14747);
- _putDontNest(result, 14478, 14688);
+ _putDontNest(result, 14629, 14774);
- _putDontNest(result, 14478, 14678);
+ _putDontNest(result, 14629, 14784);
- _putDontNest(result, 14478, 14669);
+ _putDontNest(result, 14629, 14765);
- _putDontNest(result, 14478, 14651);
+ _putDontNest(result, 8745, 10823);
- _putDontNest(result, 14688, 14688);
+ _putDontNest(result, 8745, 10817);
+
+ _putDontNest(result, 8745, 10986);
_putDontNest(result, 1210, 1388);
@@ -1253,9 +1171,9 @@ protected static IntegerKeyedHashMap _initDontNest() {
_putDontNest(result, 1392, 1454);
- _putDontNest(result, 10781, 10721);
+ _putDontNest(result, 10810, 10817);
- _putDontNest(result, 10781, 10890);
+ _putDontNest(result, 10810, 10986);
_putDontNest(result, 1416, 1473);
@@ -1273,39 +1191,15 @@ protected static IntegerKeyedHashMap _initDontNest() {
_putDontNest(result, 1416, 1464);
- _putDontNest(result, 1379, 1388);
-
- _putDontNest(result, 1379, 1473);
-
- _putDontNest(result, 1379, 1426);
-
- _putDontNest(result, 1379, 1416);
-
- _putDontNest(result, 1379, 1379);
-
- _putDontNest(result, 1379, 1397);
-
- _putDontNest(result, 1379, 1483);
-
- _putDontNest(result, 1379, 1493);
-
- _putDontNest(result, 1379, 1370);
-
- _putDontNest(result, 1379, 1508);
-
- _putDontNest(result, 1379, 1407);
-
- _putDontNest(result, 1379, 1464);
-
- _putDontNest(result, 10835, 10721);
+ _putDontNest(result, 14591, 14756);
- _putDontNest(result, 10835, 10890);
+ _putDontNest(result, 14591, 14747);
- _putDontNest(result, 10991, 10721);
+ _putDontNest(result, 14591, 14774);
- _putDontNest(result, 10991, 10890);
+ _putDontNest(result, 14591, 14784);
- _putDontNest(result, 7285, 7302);
+ _putDontNest(result, 14591, 14765);
_putDontNest(result, 1383, 1388);
@@ -1337,6 +1231,8 @@ protected static IntegerKeyedHashMap _initDontNest() {
_putDontNest(result, 1383, 1454);
+ _putDontNest(result, 14760, 14784);
+
_putDontNest(result, 1204, 1388);
_putDontNest(result, 1204, 1473);
@@ -1391,31 +1287,11 @@ protected static IntegerKeyedHashMap _initDontNest() {
_putDontNest(result, 1204, 1454);
- _putDontNest(result, 14678, 14660);
-
- _putDontNest(result, 14678, 14688);
-
- _putDontNest(result, 14678, 14678);
-
- _putDontNest(result, 14678, 14669);
-
- _putDontNest(result, 14678, 14651);
-
_putDontNest(result, 1488, 1508);
- _putDontNest(result, 10714, 10721);
-
- _putDontNest(result, 10714, 10890);
-
- _putDontNest(result, 14487, 14660);
-
- _putDontNest(result, 14487, 14688);
-
- _putDontNest(result, 14487, 14678);
-
- _putDontNest(result, 14487, 14669);
+ _putDontNest(result, 11087, 10817);
- _putDontNest(result, 14487, 14651);
+ _putDontNest(result, 11087, 10986);
_putDontNest(result, 1397, 1388);
@@ -1441,9 +1317,15 @@ protected static IntegerKeyedHashMap _initDontNest() {
_putDontNest(result, 1397, 1464);
- _putDontNest(result, 10748, 10721);
+ _putDontNest(result, 14747, 14756);
- _putDontNest(result, 10748, 10890);
+ _putDontNest(result, 14747, 14747);
+
+ _putDontNest(result, 14747, 14774);
+
+ _putDontNest(result, 14747, 14784);
+
+ _putDontNest(result, 14747, 14765);
_putDontNest(result, 1483, 1483);
@@ -1451,7 +1333,7 @@ protected static IntegerKeyedHashMap _initDontNest() {
_putDontNest(result, 1483, 1508);
- _putDontNest(result, 1173, 2624);
+ _putDontNest(result, 1173, 2648);
_putDontNest(result, 1445, 1473);
@@ -1463,15 +1345,19 @@ protected static IntegerKeyedHashMap _initDontNest() {
_putDontNest(result, 1445, 1508);
- _putDontNest(result, 14669, 14660);
+ _putDontNest(result, 10877, 10817);
+
+ _putDontNest(result, 10877, 10986);
- _putDontNest(result, 14669, 14688);
+ _putDontNest(result, 14686, 14756);
- _putDontNest(result, 14669, 14678);
+ _putDontNest(result, 14686, 14747);
- _putDontNest(result, 14669, 14669);
+ _putDontNest(result, 14686, 14774);
- _putDontNest(result, 14669, 14651);
+ _putDontNest(result, 14686, 14784);
+
+ _putDontNest(result, 14686, 14765);
_putDontNest(result, 945, 1388);
@@ -1623,6 +1509,10 @@ protected static IntegerKeyedHashMap _initDontNest() {
_putDontNest(result, 1312, 1454);
+ _putDontNest(result, 7394, 7394);
+
+ _putDontNest(result, 14742, 14784);
+
_putDontNest(result, 1493, 1493);
_putDontNest(result, 1493, 1508);
@@ -1705,28 +1595,10 @@ protected static IntegerKeyedHashMap _initDontNest() {
_putDontNest(result, 1374, 1454);
- _putDontNest(result, 10764, 10721);
-
- _putDontNest(result, 10764, 10890);
-
_putDontNest(result, 1478, 1493);
_putDontNest(result, 1478, 1508);
- _putDontNest(result, 14638, 14660);
-
- _putDontNest(result, 14638, 14688);
-
- _putDontNest(result, 14638, 14678);
-
- _putDontNest(result, 14638, 14669);
-
- _putDontNest(result, 14638, 14651);
-
- _putDontNest(result, 7290, 7302);
-
- _putDontNest(result, 7290, 7290);
-
_putDontNest(result, 1402, 1473);
_putDontNest(result, 1402, 1426);
@@ -1919,7 +1791,97 @@ protected static IntegerKeyedHashMap _initDontNest() {
_putDontNest(result, 1244, 1276);
- _putDontNest(result, 1498, 1508);
+ _putDontNest(result, 11126, 10817);
+
+ _putDontNest(result, 11126, 10986);
+
+ _putDontNest(result, 14583, 14756);
+
+ _putDontNest(result, 14583, 14747);
+
+ _putDontNest(result, 14583, 14774);
+
+ _putDontNest(result, 14583, 14784);
+
+ _putDontNest(result, 14583, 14765);
+
+ _putDontNest(result, 7377, 7394);
+
+ _putDontNest(result, 1034, 1388);
+
+ _putDontNest(result, 1034, 1473);
+
+ _putDontNest(result, 1034, 1358);
+
+ _putDontNest(result, 1034, 1210);
+
+ _putDontNest(result, 1034, 1416);
+
+ _putDontNest(result, 1034, 1379);
+
+ _putDontNest(result, 1034, 1204);
+
+ _putDontNest(result, 1034, 1397);
+
+ _putDontNest(result, 1034, 1483);
+
+ _putDontNest(result, 1034, 1445);
+
+ _putDontNest(result, 1034, 1234);
+
+ _putDontNest(result, 1034, 1339);
+
+ _putDontNest(result, 1034, 1370);
+
+ _putDontNest(result, 1034, 1253);
+
+ _putDontNest(result, 1034, 1267);
+
+ _putDontNest(result, 1034, 1329);
+
+ _putDontNest(result, 1034, 1508);
+
+ _putDontNest(result, 1034, 1319);
+
+ _putDontNest(result, 1034, 1288);
+
+ _putDontNest(result, 1034, 1407);
+
+ _putDontNest(result, 1034, 1464);
+
+ _putDontNest(result, 1034, 1308);
+
+ _putDontNest(result, 1034, 1426);
+
+ _putDontNest(result, 1034, 1493);
+
+ _putDontNest(result, 1034, 1276);
+
+ _putDontNest(result, 1034, 1224);
+
+ _putDontNest(result, 1034, 1244);
+
+ _putDontNest(result, 1034, 1217);
+
+ _putDontNest(result, 1034, 1349);
+
+ _putDontNest(result, 1034, 1298);
+
+ _putDontNest(result, 1034, 1436);
+
+ _putDontNest(result, 1034, 1454);
+
+ _putDontNest(result, 14774, 14756);
+
+ _putDontNest(result, 14774, 14747);
+
+ _putDontNest(result, 14774, 14774);
+
+ _putDontNest(result, 14774, 14784);
+
+ _putDontNest(result, 14774, 14765);
+
+ _putDontNest(result, 14784, 14784);
_putDontNest(result, 1217, 1388);
@@ -1975,16 +1937,6 @@ protected static IntegerKeyedHashMap _initDontNest() {
_putDontNest(result, 1217, 1454);
- _putDontNest(result, 14590, 14660);
-
- _putDontNest(result, 14590, 14688);
-
- _putDontNest(result, 14590, 14678);
-
- _putDontNest(result, 14590, 14669);
-
- _putDontNest(result, 14590, 14651);
-
_putDontNest(result, 1324, 1388);
_putDontNest(result, 1324, 1473);
@@ -2025,6 +1977,10 @@ protected static IntegerKeyedHashMap _initDontNest() {
_putDontNest(result, 1324, 1454);
+ _putDontNest(result, 10867, 10817);
+
+ _putDontNest(result, 10867, 10986);
+
_putDontNest(result, 1349, 1388);
_putDontNest(result, 1349, 1473);
@@ -2053,6 +2009,20 @@ protected static IntegerKeyedHashMap _initDontNest() {
_putDontNest(result, 1349, 1464);
+ _putDontNest(result, 1498, 1508);
+
+ _putDontNest(result, 14734, 14756);
+
+ _putDontNest(result, 14734, 14747);
+
+ _putDontNest(result, 14734, 14774);
+
+ _putDontNest(result, 14734, 14784);
+
+ _putDontNest(result, 14734, 14765);
+
+ _putDontNest(result, 7860, 14705);
+
_putDontNest(result, 1370, 1388);
_putDontNest(result, 1370, 1473);
@@ -2077,6 +2047,14 @@ protected static IntegerKeyedHashMap _initDontNest() {
_putDontNest(result, 1370, 1464);
+ _putDontNest(result, 2644, 14737);
+
+ _putDontNest(result, 2644, 14730);
+
+ _putDontNest(result, 2644, 14638);
+
+ _putDontNest(result, 2644, 14622);
+
_putDontNest(result, 925, 1388);
_putDontNest(result, 925, 1473);
@@ -2147,7 +2125,9 @@ protected static IntegerKeyedHashMap _initDontNest() {
_putDontNest(result, 925, 1454);
- _putDontNest(result, 14673, 14688);
+ _putDontNest(result, 11018, 10817);
+
+ _putDontNest(result, 11018, 10986);
_putDontNest(result, 1334, 1388);
@@ -2251,69 +2231,131 @@ protected static IntegerKeyedHashMap _initDontNest() {
_putDontNest(result, 1353, 1493);
- _putDontNest(result, 1353, 1349);
+ _putDontNest(result, 1353, 1349);
+
+ _putDontNest(result, 1353, 1370);
+
+ _putDontNest(result, 1353, 1508);
+
+ _putDontNest(result, 1353, 1407);
+
+ _putDontNest(result, 1353, 1464);
+
+ _putDontNest(result, 1353, 1436);
+
+ _putDontNest(result, 1353, 1454);
+
+ _putDontNest(result, 1271, 1388);
+
+ _putDontNest(result, 1271, 1473);
+
+ _putDontNest(result, 1271, 1358);
+
+ _putDontNest(result, 1271, 1416);
+
+ _putDontNest(result, 1271, 1379);
+
+ _putDontNest(result, 1271, 1397);
+
+ _putDontNest(result, 1271, 1483);
+
+ _putDontNest(result, 1271, 1445);
+
+ _putDontNest(result, 1271, 1493);
+
+ _putDontNest(result, 1271, 1339);
+
+ _putDontNest(result, 1271, 1349);
+
+ _putDontNest(result, 1271, 1370);
+
+ _putDontNest(result, 1271, 1329);
+
+ _putDontNest(result, 1271, 1508);
+
+ _putDontNest(result, 1271, 1319);
+
+ _putDontNest(result, 1271, 1288);
+
+ _putDontNest(result, 1271, 1407);
+
+ _putDontNest(result, 1271, 1464);
+
+ _putDontNest(result, 1271, 1308);
+
+ _putDontNest(result, 1271, 1426);
+
+ _putDontNest(result, 1271, 1298);
+
+ _putDontNest(result, 1271, 1436);
+
+ _putDontNest(result, 1271, 1454);
+
+ _putDontNest(result, 1229, 1388);
+
+ _putDontNest(result, 1229, 1473);
- _putDontNest(result, 1353, 1370);
+ _putDontNest(result, 1229, 1358);
- _putDontNest(result, 1353, 1508);
+ _putDontNest(result, 1229, 1416);
- _putDontNest(result, 1353, 1407);
+ _putDontNest(result, 1229, 1379);
- _putDontNest(result, 1353, 1464);
+ _putDontNest(result, 1229, 1397);
- _putDontNest(result, 1353, 1436);
+ _putDontNest(result, 1229, 1483);
- _putDontNest(result, 1353, 1454);
+ _putDontNest(result, 1229, 1445);
- _putDontNest(result, 1271, 1388);
+ _putDontNest(result, 1229, 1244);
- _putDontNest(result, 1271, 1473);
+ _putDontNest(result, 1229, 1339);
- _putDontNest(result, 1271, 1358);
+ _putDontNest(result, 1229, 1349);
- _putDontNest(result, 1271, 1416);
+ _putDontNest(result, 1229, 1370);
- _putDontNest(result, 1271, 1379);
+ _putDontNest(result, 1229, 1253);
- _putDontNest(result, 1271, 1397);
+ _putDontNest(result, 1229, 1267);
- _putDontNest(result, 1271, 1483);
+ _putDontNest(result, 1229, 1329);
- _putDontNest(result, 1271, 1445);
+ _putDontNest(result, 1229, 1508);
- _putDontNest(result, 1271, 1493);
+ _putDontNest(result, 1229, 1319);
- _putDontNest(result, 1271, 1339);
+ _putDontNest(result, 1229, 1288);
- _putDontNest(result, 1271, 1349);
+ _putDontNest(result, 1229, 1407);
- _putDontNest(result, 1271, 1370);
+ _putDontNest(result, 1229, 1464);
- _putDontNest(result, 1271, 1329);
+ _putDontNest(result, 1229, 1308);
- _putDontNest(result, 1271, 1508);
+ _putDontNest(result, 1229, 1426);
- _putDontNest(result, 1271, 1319);
+ _putDontNest(result, 1229, 1493);
- _putDontNest(result, 1271, 1288);
+ _putDontNest(result, 1229, 1276);
- _putDontNest(result, 1271, 1407);
+ _putDontNest(result, 1229, 1298);
- _putDontNest(result, 1271, 1464);
+ _putDontNest(result, 1229, 1436);
- _putDontNest(result, 1271, 1308);
+ _putDontNest(result, 1229, 1454);
- _putDontNest(result, 1271, 1426);
+ _putDontNest(result, 14765, 14756);
- _putDontNest(result, 1271, 1298);
+ _putDontNest(result, 14765, 14747);
- _putDontNest(result, 1271, 1436);
+ _putDontNest(result, 14765, 14774);
- _putDontNest(result, 1271, 1454);
+ _putDontNest(result, 14765, 14784);
- _putDontNest(result, 10771, 10721);
+ _putDontNest(result, 14765, 14765);
- _putDontNest(result, 10771, 10890);
+ _putDontNest(result, 14751, 14784);
_putDontNest(result, 1468, 1473);
@@ -2483,22 +2525,6 @@ protected static IntegerKeyedHashMap _initDontNest() {
_putDontNest(result, 1436, 1508);
- _putDontNest(result, 11214, 10727);
-
- _putDontNest(result, 11214, 10721);
-
- _putDontNest(result, 11214, 10890);
-
- _putDontNest(result, 14651, 14660);
-
- _putDontNest(result, 14651, 14688);
-
- _putDontNest(result, 14651, 14678);
-
- _putDontNest(result, 14651, 14669);
-
- _putDontNest(result, 14651, 14651);
-
_putDontNest(result, 1454, 1473);
_putDontNest(result, 1454, 1464);
@@ -2601,6 +2627,12 @@ protected static IntegerKeyedHashMap _initDontNest() {
_putDontNest(result, 853, 1454);
+ _putDontNest(result, 7846, 14705);
+
+ _putDontNest(result, 10860, 10817);
+
+ _putDontNest(result, 10860, 10986);
+
_putDontNest(result, 1267, 1388);
_putDontNest(result, 1267, 1473);
@@ -2717,16 +2749,6 @@ protected static IntegerKeyedHashMap _initDontNest() {
_putDontNest(result, 1064, 1454);
- _putDontNest(result, 4616, 4729);
-
- _putDontNest(result, 4616, 4749);
-
- _putDontNest(result, 4616, 4767);
-
- _putDontNest(result, 4616, 4761);
-
- _putDontNest(result, 4616, 4740);
-
_putDontNest(result, 969, 1388);
_putDontNest(result, 969, 1473);
@@ -2797,16 +2819,6 @@ protected static IntegerKeyedHashMap _initDontNest() {
_putDontNest(result, 969, 1454);
- _putDontNest(result, 14533, 14660);
-
- _putDontNest(result, 14533, 14688);
-
- _putDontNest(result, 14533, 14678);
-
- _putDontNest(result, 14533, 14669);
-
- _putDontNest(result, 14533, 14651);
-
_putDontNest(result, 1363, 1388);
_putDontNest(result, 1363, 1473);
@@ -2875,10 +2887,6 @@ protected static IntegerKeyedHashMap _initDontNest() {
_putDontNest(result, 1329, 1426);
- _putDontNest(result, 14646, 14688);
-
- _putDontNest(result, 14655, 14688);
-
_putDontNest(result, 1302, 1388);
_putDontNest(result, 1302, 1473);
@@ -2943,36 +2951,28 @@ protected static IntegerMap _initDontNestGroups() {
result.putUnsafe(1217, resultStoreId);
++resultStoreId;
- result.putUnsafe(14664, resultStoreId);
- result.putUnsafe(14688, resultStoreId);
- result.putUnsafe(14673, resultStoreId);
- result.putUnsafe(14646, resultStoreId);
- result.putUnsafe(14655, resultStoreId);
+ result.putUnsafe(1392, resultStoreId);
+ result.putUnsafe(1383, resultStoreId);
+ result.putUnsafe(1374, resultStoreId);
+ result.putUnsafe(1363, resultStoreId);
++resultStoreId;
- result.putUnsafe(1473, resultStoreId);
- result.putUnsafe(1459, resultStoreId);
- result.putUnsafe(1464, resultStoreId);
- result.putUnsafe(1445, resultStoreId);
- result.putUnsafe(1468, resultStoreId);
- result.putUnsafe(1436, resultStoreId);
- result.putUnsafe(1454, resultStoreId);
+ result.putUnsafe(1210, resultStoreId);
+ result.putUnsafe(1234, resultStoreId);
+ result.putUnsafe(1224, resultStoreId);
++resultStoreId;
result.putUnsafe(1493, resultStoreId);
result.putUnsafe(1478, resultStoreId);
++resultStoreId;
- result.putUnsafe(1426, resultStoreId);
- ++resultStoreId;
-
result.putUnsafe(1276, resultStoreId);
result.putUnsafe(1244, resultStoreId);
result.putUnsafe(1253, resultStoreId);
++resultStoreId;
- result.putUnsafe(1488, resultStoreId);
- result.putUnsafe(1498, resultStoreId);
+ result.putUnsafe(11310, resultStoreId);
+ result.putUnsafe(8745, resultStoreId);
++resultStoreId;
result.putUnsafe(1421, resultStoreId);
@@ -2984,12 +2984,6 @@ protected static IntegerMap _initDontNestGroups() {
result.putUnsafe(1370, resultStoreId);
++resultStoreId;
- result.putUnsafe(1173, resultStoreId);
- ++resultStoreId;
-
- result.putUnsafe(2620, resultStoreId);
- ++resultStoreId;
-
result.putUnsafe(1561, resultStoreId);
result.putUnsafe(1571, resultStoreId);
++resultStoreId;
@@ -3004,27 +2998,20 @@ protected static IntegerMap _initDontNestGroups() {
result.putUnsafe(1483, resultStoreId);
++resultStoreId;
- result.putUnsafe(8644, resultStoreId);
+ result.putUnsafe(8740, resultStoreId);
++resultStoreId;
result.putUnsafe(1229, resultStoreId);
++resultStoreId;
- result.putUnsafe(1392, resultStoreId);
- result.putUnsafe(1383, resultStoreId);
- result.putUnsafe(1374, resultStoreId);
- result.putUnsafe(1363, resultStoreId);
- ++resultStoreId;
-
- result.putUnsafe(7302, resultStoreId);
- result.putUnsafe(7285, resultStoreId);
- ++resultStoreId;
-
result.putUnsafe(1407, resultStoreId);
result.putUnsafe(1416, resultStoreId);
++resultStoreId;
- result.putUnsafe(14330, resultStoreId);
+ result.putUnsafe(1173, resultStoreId);
+ ++resultStoreId;
+
+ result.putUnsafe(14426, resultStoreId);
++resultStoreId;
result.putUnsafe(1239, resultStoreId);
@@ -3033,35 +3020,20 @@ protected static IntegerMap _initDontNestGroups() {
result.putUnsafe(1257, resultStoreId);
++resultStoreId;
- result.putUnsafe(1210, resultStoreId);
- result.putUnsafe(1234, resultStoreId);
- result.putUnsafe(1224, resultStoreId);
+ result.putUnsafe(2644, resultStoreId);
++resultStoreId;
- result.putUnsafe(14545, resultStoreId);
- result.putUnsafe(14495, resultStoreId);
- result.putUnsafe(14554, resultStoreId);
- result.putUnsafe(14678, resultStoreId);
- result.putUnsafe(14487, resultStoreId);
- result.putUnsafe(14669, resultStoreId);
- result.putUnsafe(14638, resultStoreId);
- result.putUnsafe(14590, resultStoreId);
- result.putUnsafe(14651, resultStoreId);
- result.putUnsafe(14533, resultStoreId);
- result.putUnsafe(14660, resultStoreId);
- result.putUnsafe(14478, resultStoreId);
+ result.putUnsafe(1473, resultStoreId);
+ result.putUnsafe(1459, resultStoreId);
+ result.putUnsafe(1464, resultStoreId);
+ result.putUnsafe(1445, resultStoreId);
+ result.putUnsafe(1468, resultStoreId);
+ result.putUnsafe(1436, resultStoreId);
+ result.putUnsafe(1454, resultStoreId);
++resultStoreId;
- result.putUnsafe(10788, resultStoreId);
- result.putUnsafe(10922, resultStoreId);
- result.putUnsafe(11030, resultStoreId);
- result.putUnsafe(10781, resultStoreId);
- result.putUnsafe(10714, resultStoreId);
- result.putUnsafe(10748, resultStoreId);
- result.putUnsafe(10764, resultStoreId);
- result.putUnsafe(10771, resultStoreId);
- result.putUnsafe(10835, resultStoreId);
- result.putUnsafe(10991, resultStoreId);
+ result.putUnsafe(7394, resultStoreId);
+ result.putUnsafe(7377, resultStoreId);
++resultStoreId;
result.putUnsafe(1402, resultStoreId);
@@ -3071,31 +3043,47 @@ protected static IntegerMap _initDontNestGroups() {
result.putUnsafe(1339, resultStoreId);
++resultStoreId;
+ result.putUnsafe(1576, resultStoreId);
+ result.putUnsafe(1592, resultStoreId);
+ ++resultStoreId;
+
result.putUnsafe(1308, resultStoreId);
++resultStoreId;
- result.putUnsafe(1576, resultStoreId);
- result.putUnsafe(1592, resultStoreId);
+ result.putUnsafe(7382, resultStoreId);
++resultStoreId;
result.putUnsafe(1267, resultStoreId);
++resultStoreId;
- result.putUnsafe(10863, resultStoreId);
+ result.putUnsafe(10959, resultStoreId);
++resultStoreId;
- result.putUnsafe(1324, resultStoreId);
+ result.putUnsafe(14769, resultStoreId);
+ result.putUnsafe(14760, resultStoreId);
+ result.putUnsafe(14742, resultStoreId);
+ result.putUnsafe(14784, resultStoreId);
+ result.putUnsafe(14751, resultStoreId);
++resultStoreId;
- result.putUnsafe(4616, resultStoreId);
+ result.putUnsafe(1426, resultStoreId);
++resultStoreId;
- result.putUnsafe(1319, resultStoreId);
- result.putUnsafe(1298, resultStoreId);
- result.putUnsafe(1329, resultStoreId);
+ result.putUnsafe(14574, resultStoreId);
+ result.putUnsafe(14756, resultStoreId);
+ result.putUnsafe(14650, resultStoreId);
+ result.putUnsafe(14641, resultStoreId);
+ result.putUnsafe(14629, resultStoreId);
+ result.putUnsafe(14591, resultStoreId);
+ result.putUnsafe(14747, resultStoreId);
+ result.putUnsafe(14686, resultStoreId);
+ result.putUnsafe(14583, resultStoreId);
+ result.putUnsafe(14774, resultStoreId);
+ result.putUnsafe(14734, resultStoreId);
+ result.putUnsafe(14765, resultStoreId);
++resultStoreId;
- result.putUnsafe(7290, resultStoreId);
+ result.putUnsafe(1324, resultStoreId);
++resultStoreId;
result.putUnsafe(1581, resultStoreId);
@@ -3107,8 +3095,12 @@ protected static IntegerMap _initDontNestGroups() {
result.putUnsafe(1302, resultStoreId);
++resultStoreId;
- result.putUnsafe(8649, resultStoreId);
- result.putUnsafe(11214, resultStoreId);
+ result.putUnsafe(1319, resultStoreId);
+ result.putUnsafe(1298, resultStoreId);
+ result.putUnsafe(1329, resultStoreId);
+ ++resultStoreId;
+
+ result.putUnsafe(4648, resultStoreId);
++resultStoreId;
result.putUnsafe(1358, resultStoreId);
@@ -3124,6 +3116,28 @@ protected static IntegerMap _initDontNestGroups() {
result.putUnsafe(1064, resultStoreId);
result.putUnsafe(1189, resultStoreId);
result.putUnsafe(1106, resultStoreId);
+ ++resultStoreId;
+
+ result.putUnsafe(10884, resultStoreId);
+ result.putUnsafe(10810, resultStoreId);
+ result.putUnsafe(11087, resultStoreId);
+ result.putUnsafe(10877, resultStoreId);
+ result.putUnsafe(11126, resultStoreId);
+ result.putUnsafe(10867, resultStoreId);
+ result.putUnsafe(11018, resultStoreId);
+ result.putUnsafe(10860, resultStoreId);
+ result.putUnsafe(10931, resultStoreId);
+ result.putUnsafe(10844, resultStoreId);
+ ++resultStoreId;
+
+ result.putUnsafe(1488, resultStoreId);
+ result.putUnsafe(1498, resultStoreId);
+ ++resultStoreId;
+
+ result.putUnsafe(7832, resultStoreId);
+ result.putUnsafe(7877, resultStoreId);
+ result.putUnsafe(7860, resultStoreId);
+ result.putUnsafe(7846, resultStoreId);
return result;
}
@@ -3180,6 +3194,7 @@ protected IntegerList getFilteredParents(int childId) {
private static final IConstructor cHJvZChsYWJlbCgiZmFpbCIsc29ydCgiU3RhdGVtZW50IikpLFtsaXQoImZhaWwiKSxsYXlvdXRzKCJMQVlPVVRMSVNUIiksbGFiZWwoInRhcmdldCIsc29ydCgiVGFyZ2V0IikpLGxheW91dHMoIkxBWU9VVExJU1QiKSxsaXQoIjsiKV0se3RhZygiYnJlYWthYmxlIigpKX0p = (IConstructor) _read("prod(label(\"fail\",sort(\"Statement\")),[lit(\"fail\"),layouts(\"LAYOUTLIST\"),label(\"target\",sort(\"Target\")),layouts(\"LAYOUTLIST\"),lit(\";\")],{tag(\"breakable\"())})", RascalValueFactory.Production);
private static final IConstructor cHJvZChsZXgoIkJhY2tzbGFzaCIpLFtjb25kaXRpb25hbChcY2hhci1jbGFzcyhbcmFuZ2UoOTIsOTIpXSkse1xub3QtZm9sbG93KFxjaGFyLWNsYXNzKFtyYW5nZSg0Nyw0NykscmFuZ2UoNjAsNjApLHJhbmdlKDYyLDYyKSxyYW5nZSg5Miw5MildKSl9KV0se30p = (IConstructor) _read("prod(lex(\"Backslash\"),[conditional(\\char-class([range(92,92)]),{\\not-follow(\\char-class([range(47,47),range(60,60),range(62,62),range(92,92)]))})],{})", RascalValueFactory.Production);
private static final IConstructor cHJvZChsYWJlbCgiY29tcHJlaGVuc2lvbiIsc29ydCgiRXhwcmVzc2lvbiIpKSxbbGFiZWwoImNvbXByZWhlbnNpb24iLHNvcnQoIkNvbXByZWhlbnNpb24iKSldLHt9KQ0000 = (IConstructor) _read("prod(label(\"comprehension\",sort(\"Expression\")),[label(\"comprehension\",sort(\"Comprehension\"))],{})", RascalValueFactory.Production);
+ private static final IConstructor cHJvZChsYWJlbCgibGF5b3V0Iixzb3J0KCJTeW50YXhEZWZpbml0aW9uIikpLFtsYWJlbCgidmlzIixzb3J0KCJWaXNpYmlsaXR5IikpLGxheW91dHMoIkxBWU9VVExJU1QiKSxsaXQoImxheW91dCIpLGxheW91dHMoIkxBWU9VVExJU1QiKSxsYWJlbCgiZGVmaW5lZCIsY29uZGl0aW9uYWwoc29ydCgiU3ltIikse2V4Y2VwdCgiY2hhcmFjdGVyQ2xhc3MiKX0pKSxsYXlvdXRzKCJMQVlPVVRMSVNUIiksbGl0KCI9IiksbGF5b3V0cygiTEFZT1VUTElTVCIpLGxhYmVsKCJwcm9kdWN0aW9uIixzb3J0KCJQcm9kIikpLGxheW91dHMoIkxBWU9VVExJU1QiKSxsaXQoIjsiKV0se3RhZygiRm9sZGFibGUiKCkpfSk00 = (IConstructor) _read("prod(label(\"layout\",sort(\"SyntaxDefinition\")),[label(\"vis\",sort(\"Visibility\")),layouts(\"LAYOUTLIST\"),lit(\"layout\"),layouts(\"LAYOUTLIST\"),label(\"defined\",conditional(sort(\"Sym\"),{except(\"characterClass\")})),layouts(\"LAYOUTLIST\"),lit(\"=\"),layouts(\"LAYOUTLIST\"),label(\"production\",sort(\"Prod\")),layouts(\"LAYOUTLIST\"),lit(\";\")],{tag(\"Foldable\"())})", RascalValueFactory.Production);
private static final IConstructor cHJvZChsaXQoIioiKSxbXGNoYXItY2xhc3MoW3JhbmdlKDQyLDQyKV0pXSx7fSk00 = (IConstructor) _read("prod(lit(\"*\"),[\\char-class([range(42,42)])],{})", RascalValueFactory.Production);
private static final IConstructor cHJvZChsYWJlbCgibmFtZSIsc29ydCgiRmllbGQiKSksW2xhYmVsKCJmaWVsZE5hbWUiLGxleCgiTmFtZSIpKV0se30p = (IConstructor) _read("prod(label(\"name\",sort(\"Field\")),[label(\"fieldName\",lex(\"Name\"))],{})", RascalValueFactory.Production);
private static final IConstructor cHJvZChsaXQoInNvcnQoXCJJbnRlZ2VyTGl0ZXJhbFwiKSIpLFtcY2hhci1jbGFzcyhbcmFuZ2UoMTE1LDExNSldKSxcY2hhci1jbGFzcyhbcmFuZ2UoMTExLDExMSldKSxcY2hhci1jbGFzcyhbcmFuZ2UoMTE0LDExNCldKSxcY2hhci1jbGFzcyhbcmFuZ2UoMTE2LDExNildKSxcY2hhci1jbGFzcyhbcmFuZ2UoNDAsNDApXSksXGNoYXItY2xhc3MoW3JhbmdlKDM0LDM0KV0pLFxjaGFyLWNsYXNzKFtyYW5nZSg3Myw3MyldKSxcY2hhci1jbGFzcyhbcmFuZ2UoMTEwLDExMCldKSxcY2hhci1jbGFzcyhbcmFuZ2UoMTE2LDExNildKSxcY2hhci1jbGFzcyhbcmFuZ2UoMTAxLDEwMSldKSxcY2hhci1jbGFzcyhbcmFuZ2UoMTAzLDEwMyldKSxcY2hhci1jbGFzcyhbcmFuZ2UoMTAxLDEwMSldKSxcY2hhci1jbGFzcyhbcmFuZ2UoMTE0LDExNCldKSxcY2hhci1jbGFzcyhbcmFuZ2UoNzYsNzYpXSksXGNoYXItY2xhc3MoW3JhbmdlKDEwNSwxMDUpXSksXGNoYXItY2xhc3MoW3JhbmdlKDExNiwxMTYpXSksXGNoYXItY2xhc3MoW3JhbmdlKDEwMSwxMDEpXSksXGNoYXItY2xhc3MoW3JhbmdlKDExNCwxMTQpXSksXGNoYXItY2xhc3MoW3JhbmdlKDk3LDk3KV0pLFxjaGFyLWNsYXNzKFtyYW5nZSgxMDgsMTA4KV0pLFxjaGFyLWNsYXNzKFtyYW5nZSgzNCwzNCldKSxcY2hhci1jbGFzcyhbcmFuZ2UoNDEsNDEpXSldLHt9KQ0000 = (IConstructor) _read("prod(lit(\"sort(\\\"IntegerLiteral\\\")\"),[\\char-class([range(115,115)]),\\char-class([range(111,111)]),\\char-class([range(114,114)]),\\char-class([range(116,116)]),\\char-class([range(40,40)]),\\char-class([range(34,34)]),\\char-class([range(73,73)]),\\char-class([range(110,110)]),\\char-class([range(116,116)]),\\char-class([range(101,101)]),\\char-class([range(103,103)]),\\char-class([range(101,101)]),\\char-class([range(114,114)]),\\char-class([range(76,76)]),\\char-class([range(105,105)]),\\char-class([range(116,116)]),\\char-class([range(101,101)]),\\char-class([range(114,114)]),\\char-class([range(97,97)]),\\char-class([range(108,108)]),\\char-class([range(34,34)]),\\char-class([range(41,41)])],{})", RascalValueFactory.Production);
@@ -3187,7 +3202,6 @@ protected IntegerList getFilteredParents(int childId) {
private static final IConstructor cHJvZChsYWJlbCgiJE1ldGFIb2xlIixsZXgoIlRhZ1N0cmluZyIpKSxbXGNoYXItY2xhc3MoW3JhbmdlKDAsMCldKSxsaXQoInNvcnQoXCJUYWdTdHJpbmdcIikiKSxsaXQoIjoiKSxpdGVyKFxjaGFyLWNsYXNzKFtyYW5nZSg0OCw1NyldKSksXGNoYXItY2xhc3MoW3JhbmdlKDAsMCldKV0se3RhZygiaG9sZVR5cGUiKGxleCgiVGFnU3RyaW5nIikpKX0p = (IConstructor) _read("prod(label(\"$MetaHole\",lex(\"TagString\")),[\\char-class([range(0,0)]),lit(\"sort(\\\"TagString\\\")\"),lit(\":\"),iter(\\char-class([range(48,57)])),\\char-class([range(0,0)])],{tag(\"holeType\"(lex(\"TagString\")))})", RascalValueFactory.Production);
private static final IConstructor cHJvZChsYWJlbCgic2ltcGxlQ2hhcmNsYXNzIixzb3J0KCJDbGFzcyIpKSxbbGl0KCJbIiksbGF5b3V0cygiTEFZT1VUTElTVCIpLGxhYmVsKCJyYW5nZXMiLFxpdGVyLXN0YXItc2Vwcyhzb3J0KCJSYW5nZSIpLFtsYXlvdXRzKCJMQVlPVVRMSVNUIildKSksbGF5b3V0cygiTEFZT1VUTElTVCIpLGxpdCgiXSIpXSx7fSk00 = (IConstructor) _read("prod(label(\"simpleCharclass\",sort(\"Class\")),[lit(\"[\"),layouts(\"LAYOUTLIST\"),label(\"ranges\",\\iter-star-seps(sort(\"Range\"),[layouts(\"LAYOUTLIST\")])),layouts(\"LAYOUTLIST\"),lit(\"]\")],{})", RascalValueFactory.Production);
private static final IConstructor cHJvZChsYWJlbCgidHJ5RmluYWxseSIsc29ydCgiU3RhdGVtZW50IikpLFtsaXQoInRyeSIpLGxheW91dHMoIkxBWU9VVExJU1QiKSxsYWJlbCgiYm9keSIsc29ydCgiU3RhdGVtZW50IikpLGxheW91dHMoIkxBWU9VVExJU1QiKSxsYWJlbCgiaGFuZGxlcnMiLFxpdGVyLXNlcHMoc29ydCgiQ2F0Y2giKSxbbGF5b3V0cygiTEFZT1VUTElTVCIpXSkpLGxheW91dHMoIkxBWU9VVExJU1QiKSxsaXQoImZpbmFsbHkiKSxsYXlvdXRzKCJMQVlPVVRMSVNUIiksbGFiZWwoImZpbmFsbHlCb2R5Iixjb25kaXRpb25hbChzb3J0KCJTdGF0ZW1lbnQiKSx7ZXhjZXB0KCJ2YXJpYWJsZURlY2xhcmF0aW9uIiksZXhjZXB0KCJmdW5jdGlvbkRlY2xhcmF0aW9uIil9KSldLHt0YWcoImJyZWFrYWJsZSIoKSl9KQ0000 = (IConstructor) _read("prod(label(\"tryFinally\",sort(\"Statement\")),[lit(\"try\"),layouts(\"LAYOUTLIST\"),label(\"body\",sort(\"Statement\")),layouts(\"LAYOUTLIST\"),label(\"handlers\",\\iter-seps(sort(\"Catch\"),[layouts(\"LAYOUTLIST\")])),layouts(\"LAYOUTLIST\"),lit(\"finally\"),layouts(\"LAYOUTLIST\"),label(\"finallyBody\",conditional(sort(\"Statement\"),{except(\"variableDeclaration\"),except(\"functionDeclaration\")}))],{tag(\"breakable\"())})", RascalValueFactory.Production);
- private static final IConstructor cHJvZChrZXl3b3JkcygiUmFzY2FsS2V5d29yZHMiKSxbbGl0KCJiYWciKV0se30p = (IConstructor) _read("prod(keywords(\"RascalKeywords\"),[lit(\"bag\")],{})", RascalValueFactory.Production);
private static final IConstructor cHJvZChsYWJlbCgibm9uRXF1YWxzIixzb3J0KCJFeHByZXNzaW9uIikpLFtsYWJlbCgibGhzIixzb3J0KCJFeHByZXNzaW9uIikpLGxheW91dHMoIkxBWU9VVExJU1QiKSxsaXQoIiE9IiksbGF5b3V0cygiTEFZT1VUTElTVCIpLGxhYmVsKCJyaHMiLHNvcnQoIkV4cHJlc3Npb24iKSldLHt9KQ0000 = (IConstructor) _read("prod(label(\"nonEquals\",sort(\"Expression\")),[label(\"lhs\",sort(\"Expression\")),layouts(\"LAYOUTLIST\"),lit(\"!=\"),layouts(\"LAYOUTLIST\"),label(\"rhs\",sort(\"Expression\"))],{})", RascalValueFactory.Production);
private static final IConstructor cHJvZChsZXgoIkp1c3RUaW1lIiksW2xpdCgiJFQiKSxsZXgoIlRpbWVQYXJ0Tm9UWiIpLGxleCgiVGltZVpvbmVQYXJ0IiksbGl0KCIkIildLHt9KQ0000 = (IConstructor) _read("prod(lex(\"JustTime\"),[lit(\"$T\"),lex(\"TimePartNoTZ\"),lex(\"TimeZonePart\"),lit(\"$\")],{})", RascalValueFactory.Production);
private static final IConstructor cHJvZChsYWJlbCgicmVhbCIsc29ydCgiQmFzaWNUeXBlIikpLFtsaXQoInJlYWwiKV0se30p = (IConstructor) _read("prod(label(\"real\",sort(\"BasicType\")),[lit(\"real\")],{})", RascalValueFactory.Production);
@@ -3211,6 +3225,8 @@ protected IntegerList getFilteredParents(int childId) {
private static final IConstructor cHJvZChsZXgoIlByZVByb3RvY29sQ2hhcnMiKSxbbGl0KCJ8IiksbGV4KCJVUkxDaGFycyIpLGxpdCgiXDwiKV0se30p = (IConstructor) _read("prod(lex(\"PreProtocolChars\"),[lit(\"|\"),lex(\"URLChars\"),lit(\"\\<\")],{})", RascalValueFactory.Production);
private static final IConstructor cHJvZChrZXl3b3JkcygiUmFzY2FsS2V5d29yZHMiKSxbbGl0KCJhc3NvYyIpXSx7fSk00 = (IConstructor) _read("prod(keywords(\"RascalKeywords\"),[lit(\"assoc\")],{})", RascalValueFactory.Production);
private static final IConstructor cHJvZChsZXgoIlRpbWVab25lUGFydCIpLFtcY2hhci1jbGFzcyhbcmFuZ2UoNDMsNDMpLHJhbmdlKDQ1LDQ1KV0pLFxjaGFyLWNsYXNzKFtyYW5nZSg0OCw0OSldKSxcY2hhci1jbGFzcyhbcmFuZ2UoNDgsNTcpXSldLHt9KQ0000 = (IConstructor) _read("prod(lex(\"TimeZonePart\"),[\\char-class([range(43,43),range(45,45)]),\\char-class([range(48,49)]),\\char-class([range(48,57)])],{})", RascalValueFactory.Production);
+ private static final IConstructor cHJvZChrZXl3b3JkcygiUmFzY2FsS2V5d29yZHMiKSxbbGl0KCJiYWciKV0se30p = (IConstructor) _read("prod(keywords(\"RascalKeywords\"),[lit(\"bag\")],{})", RascalValueFactory.Production);
+ private static final IConstructor cHJvZChsYWJlbCgibGV4aWNhbCIsc29ydCgiU3ludGF4Um9sZU1vZGlmaWVyIikpLFtsaXQoImxleGljYWwiKSxsYXlvdXRzKCJMQVlPVVRMSVNUIiksbGl0KCJbIiksbGF5b3V0cygiTEFZT1VUTElTVCIpLGxhYmVsKCJhcmciLHNvcnQoIlR5cGVBcmciKSksbGF5b3V0cygiTEFZT1VUTElTVCIpLGxpdCgiXSIpXSx7fSk00 = (IConstructor) _read("prod(label(\"lexical\",sort(\"SyntaxRoleModifier\")),[lit(\"lexical\"),layouts(\"LAYOUTLIST\"),lit(\"[\"),layouts(\"LAYOUTLIST\"),label(\"arg\",sort(\"TypeArg\")),layouts(\"LAYOUTLIST\"),lit(\"]\")],{})", RascalValueFactory.Production);
private static final IConstructor cHJvZChsaXQoIlw11XD4iKSxbXGNoYXItY2xhc3MoW3JhbmdlKDYyLDYyKV0pLFxjaGFyLWNsYXNzKFtyYW5nZSg2Miw2MildKV0se30p = (IConstructor) _read("prod(lit(\"\\>\\>\"),[\\char-class([range(62,62)]),\\char-class([range(62,62)])],{})", RascalValueFactory.Production);
private static final IConstructor cHJvZChsYWJlbCgiaWZUaGVuIixzb3J0KCJTdHJpbmdUZW1wbGF0ZSIpKSxbbGl0KCJpZiIpLGxheW91dHMoIkxBWU9VVExJU1QiKSxsaXQoIigiKSxsYXlvdXRzKCJMQVlPVVRMSVNUIiksbGFiZWwoImNvbmRpdGlvbnMiLFxpdGVyLXNlcHMoc29ydCgiRXhwcmVzc2lvbiIpLFtsYXlvdXRzKCJMQVlPVVRMSVNUIiksbGl0KCIsIiksbGF5b3V0cygiTEFZT1VUTElTVCIpXSkpLGxheW91dHMoIkxBWU9VVExJU1QiKSxsaXQoIikiKSxsYXlvdXRzKCJMQVlPVVRMSVNUIiksbGl0KCJ7IiksbGF5b3V0cygiTEFZT1VUTElTVCIpLGxhYmVsKCJwcmVTdGF0cyIsXGl0ZXItc3Rhci1zZXBzKHNvcnQoIlN0YXRlbWVudCIpLFtsYXlvdXRzKCJMQVlPVVRMSVNUIildKSksbGF5b3V0cygiTEFZT1VUTElTVCIpLGxhYmVsKCJib2R5Iixzb3J0KCJTdHJpbmdNaWRkbGUiKSksbGF5b3V0cygiTEFZT1VUTElTVCIpLGxhYmVsKCJwb3N0U3RhdHMiLFxpdGVyLXN0YXItc2Vwcyhzb3J0KCJTdGF0ZW1lbnQiKSxbbGF5b3V0cygiTEFZT1VUTElTVCIpXSkpLGxheW91dHMoIkxBWU9VVExJU1QiKSxsaXQoIn0iKV0se30p = (IConstructor) _read("prod(label(\"ifThen\",sort(\"StringTemplate\")),[lit(\"if\"),layouts(\"LAYOUTLIST\"),lit(\"(\"),layouts(\"LAYOUTLIST\"),label(\"conditions\",\\iter-seps(sort(\"Expression\"),[layouts(\"LAYOUTLIST\"),lit(\",\"),layouts(\"LAYOUTLIST\")])),layouts(\"LAYOUTLIST\"),lit(\")\"),layouts(\"LAYOUTLIST\"),lit(\"{\"),layouts(\"LAYOUTLIST\"),label(\"preStats\",\\iter-star-seps(sort(\"Statement\"),[layouts(\"LAYOUTLIST\")])),layouts(\"LAYOUTLIST\"),label(\"body\",sort(\"StringMiddle\")),layouts(\"LAYOUTLIST\"),label(\"postStats\",\\iter-star-seps(sort(\"Statement\"),[layouts(\"LAYOUTLIST\")])),layouts(\"LAYOUTLIST\"),lit(\"}\")],{})", RascalValueFactory.Production);
private static final IConstructor cHJvZChsYWJlbCgiJE1ldGFIb2xlIixzb3J0KCJDYXNlIikpLFtcY2hhci1jbGFzcyhbcmFuZ2UoMCwwKV0pLGxpdCgiaXRlcihzb3J0KFwiQ2FzZVwiKSkiKSxsaXQoIjoiKSxpdGVyKFxjaGFyLWNsYXNzKFtyYW5nZSg0OCw1NyldKSksXGNoYXItY2xhc3MoW3JhbmdlKDAsMCldKV0se3RhZygiaG9sZVR5cGUiKFxpdGVyLXNlcHMoc29ydCgiQ2FzZSIpLFtsYXlvdXRzKCJMQVlPVVRMSVNUIildKSkpfSk00 = (IConstructor) _read("prod(label(\"$MetaHole\",sort(\"Case\")),[\\char-class([range(0,0)]),lit(\"iter(sort(\\\"Case\\\"))\"),lit(\":\"),iter(\\char-class([range(48,57)])),\\char-class([range(0,0)])],{tag(\"holeType\"(\\iter-seps(sort(\"Case\"),[layouts(\"LAYOUTLIST\")])))})", RascalValueFactory.Production);
@@ -3456,6 +3472,7 @@ protected IntegerList getFilteredParents(int childId) {
private static final IConstructor cHJvZChsaXQoInNvcnQoXCJMb2NhdGlvbkxpdGVyYWxcIikiKSxbXGNoYXItY2xhc3MoW3JhbmdlKDExNSwxMTUpXSksXGNoYXItY2xhc3MoW3JhbmdlKDExMSwxMTEpXSksXGNoYXItY2xhc3MoW3JhbmdlKDExNCwxMTQpXSksXGNoYXItY2xhc3MoW3JhbmdlKDExNiwxMTYpXSksXGNoYXItY2xhc3MoW3JhbmdlKDQwLDQwKV0pLFxjaGFyLWNsYXNzKFtyYW5nZSgzNCwzNCldKSxcY2hhci1jbGFzcyhbcmFuZ2UoNzYsNzYpXSksXGNoYXItY2xhc3MoW3JhbmdlKDExMSwxMTEpXSksXGNoYXItY2xhc3MoW3JhbmdlKDk5LDk5KV0pLFxjaGFyLWNsYXNzKFtyYW5nZSg5Nyw5NyldKSxcY2hhci1jbGFzcyhbcmFuZ2UoMTE2LDExNildKSxcY2hhci1jbGFzcyhbcmFuZ2UoMTA1LDEwNSldKSxcY2hhci1jbGFzcyhbcmFuZ2UoMTExLDExMSldKSxcY2hhci1jbGFzcyhbcmFuZ2UoMTEwLDExMCldKSxcY2hhci1jbGFzcyhbcmFuZ2UoNzYsNzYpXSksXGNoYXItY2xhc3MoW3JhbmdlKDEwNSwxMDUpXSksXGNoYXItY2xhc3MoW3JhbmdlKDExNiwxMTYpXSksXGNoYXItY2xhc3MoW3JhbmdlKDEwMSwxMDEpXSksXGNoYXItY2xhc3MoW3JhbmdlKDExNCwxMTQpXSksXGNoYXItY2xhc3MoW3JhbmdlKDk3LDk3KV0pLFxjaGFyLWNsYXNzKFtyYW5nZSgxMDgsMTA4KV0pLFxjaGFyLWNsYXNzKFtyYW5nZSgzNCwzNCldKSxcY2hhci1jbGFzcyhbcmFuZ2UoNDEsNDEpXSldLHt9KQ0000 = (IConstructor) _read("prod(lit(\"sort(\\\"LocationLiteral\\\")\"),[\\char-class([range(115,115)]),\\char-class([range(111,111)]),\\char-class([range(114,114)]),\\char-class([range(116,116)]),\\char-class([range(40,40)]),\\char-class([range(34,34)]),\\char-class([range(76,76)]),\\char-class([range(111,111)]),\\char-class([range(99,99)]),\\char-class([range(97,97)]),\\char-class([range(116,116)]),\\char-class([range(105,105)]),\\char-class([range(111,111)]),\\char-class([range(110,110)]),\\char-class([range(76,76)]),\\char-class([range(105,105)]),\\char-class([range(116,116)]),\\char-class([range(101,101)]),\\char-class([range(114,114)]),\\char-class([range(97,97)]),\\char-class([range(108,108)]),\\char-class([range(34,34)]),\\char-class([range(41,41)])],{})", RascalValueFactory.Production);
private static final IConstructor cHJvZChsZXgoIk5hbWUiKSxbY29uZGl0aW9uYWwoc2VxKFtjb25kaXRpb25hbChcY2hhci1jbGFzcyhbcmFuZ2UoNjUsOTApLHJhbmdlKDk1LDk1KSxyYW5nZSg5NywxMjIpXSkse1xub3QtcHJlY2VkZShcY2hhci1jbGFzcyhbcmFuZ2UoNjUsOTApLHJhbmdlKDk1LDk1KSxyYW5nZSg5NywxMjIpXSkpfSksY29uZGl0aW9uYWwoXGl0ZXItc3RhcihcY2hhci1jbGFzcyhbcmFuZ2UoNDgsNTcpLHJhbmdlKDY1LDkwKSxyYW5nZSg5NSw5NSkscmFuZ2UoOTcsMTIyKV0pKSx7XG5vdC1mb2xsb3coXGNoYXItY2xhc3MoW3JhbmdlKDQ4LDU3KSxyYW5nZSg2NSw5MCkscmFuZ2UoOTUsOTUpLHJhbmdlKDk3LDEyMildKSl9KV0pLHtkZWxldGUoa2V5d29yZHMoIlJhc2NhbEtleXdvcmRzIikpfSldLHt9KQ0000 = (IConstructor) _read("prod(lex(\"Name\"),[conditional(seq([conditional(\\char-class([range(65,90),range(95,95),range(97,122)]),{\\not-precede(\\char-class([range(65,90),range(95,95),range(97,122)]))}),conditional(\\iter-star(\\char-class([range(48,57),range(65,90),range(95,95),range(97,122)])),{\\not-follow(\\char-class([range(48,57),range(65,90),range(95,95),range(97,122)]))})]),{delete(keywords(\"RascalKeywords\"))})],{})", RascalValueFactory.Production);
private static final IConstructor cHJvZChrZXl3b3JkcygiUmFzY2FsS2V5d29yZHMiKSxbbGl0KCJlbHNlIildLHt9KQ0000 = (IConstructor) _read("prod(keywords(\"RascalKeywords\"),[lit(\"else\")],{})", RascalValueFactory.Production);
+ private static final IConstructor cHJvZChsYWJlbCgic3ludGF4Iixzb3J0KCJTeW50YXhSb2xlTW9kaWZpZXIiKSksW2xpdCgic3ludGF4IiksbGF5b3V0cygiTEFZT1VUTElTVCIpLGxpdCgiWyIpLGxheW91dHMoIkxBWU9VVExJU1QiKSxsYWJlbCgiYXJnIixzb3J0KCJUeXBlQXJnIikpLGxheW91dHMoIkxBWU9VVExJU1QiKSxsaXQoIl0iKV0se30p = (IConstructor) _read("prod(label(\"syntax\",sort(\"SyntaxRoleModifier\")),[lit(\"syntax\"),layouts(\"LAYOUTLIST\"),lit(\"[\"),layouts(\"LAYOUTLIST\"),label(\"arg\",sort(\"TypeArg\")),layouts(\"LAYOUTLIST\"),lit(\"]\")],{})", RascalValueFactory.Production);
private static final IConstructor cHJvZChrZXl3b3JkcygiUmFzY2FsS2V5d29yZHMiKSxbbGl0KCJpdCIpXSx7fSk00 = (IConstructor) _read("prod(keywords(\"RascalKeywords\"),[lit(\"it\")],{})", RascalValueFactory.Production);
private static final IConstructor cHJvZChrZXl3b3JkcygiUmFzY2FsS2V5d29yZHMiKSxbbGl0KCJpbiIpXSx7fSk00 = (IConstructor) _read("prod(keywords(\"RascalKeywords\"),[lit(\"in\")],{})", RascalValueFactory.Production);
private static final IConstructor cHJvZChsYWJlbCgiJE1ldGFIb2xlIixzb3J0KCJGaWVsZCIpKSxbXGNoYXItY2xhc3MoW3JhbmdlKDAsMCldKSxsaXQoIlxcaXRlci1zZXBzKHNvcnQoXCJGaWVsZFwiKSxbbGl0KFwiLFwiKV0pIiksbGl0KCI6IiksaXRlcihcY2hhci1jbGFzcyhbcmFuZ2UoNDgsNTcpXSkpLFxjaGFyLWNsYXNzKFtyYW5nZSgwLDApXSldLHt0YWcoImhvbGVUeXBlIihcaXRlci1zZXBzKHNvcnQoIkZpZWxkIiksW2xheW91dHMoIkxBWU9VVExJU1QiKSxsaXQoIiwiKSxsYXlvdXRzKCJMQVlPVVRMSVNUIildKSkpfSk00 = (IConstructor) _read("prod(label(\"$MetaHole\",sort(\"Field\")),[\\char-class([range(0,0)]),lit(\"\\\\iter-seps(sort(\\\"Field\\\"),[lit(\\\",\\\")])\"),lit(\":\"),iter(\\char-class([range(48,57)])),\\char-class([range(0,0)])],{tag(\"holeType\"(\\iter-seps(sort(\"Field\"),[layouts(\"LAYOUTLIST\"),lit(\",\"),layouts(\"LAYOUTLIST\")])))})", RascalValueFactory.Production);
@@ -3519,6 +3536,7 @@ protected IntegerList getFilteredParents(int childId) {
private static final IConstructor cHJvZChsaXQoInNlcShbXFxjaGFyLWNsYXNzKFtyYW5nZSg0OCw1NyldKSxvcHQoXFxjaGFyLWNsYXNzKFtyYW5nZSg0OCw1NyldKSldKSIpLFtcY2hhci1jbGFzcyhbcmFuZ2UoMTE1LDExNSldKSxcY2hhci1jbGFzcyhbcmFuZ2UoMTAxLDEwMSldKSxcY2hhci1jbGFzcyhbcmFuZ2UoMTEzLDExMyldKSxcY2hhci1jbGFzcyhbcmFuZ2UoNDAsNDApXSksXGNoYXItY2xhc3MoW3JhbmdlKDkxLDkxKV0pLFxjaGFyLWNsYXNzKFtyYW5nZSg5Miw5MildKSxcY2hhci1jbGFzcyhbcmFuZ2UoOTksOTkpXSksXGNoYXItY2xhc3MoW3JhbmdlKDEwNCwxMDQpXSksXGNoYXItY2xhc3MoW3JhbmdlKDk3LDk3KV0pLFxjaGFyLWNsYXNzKFtyYW5nZSgxMTQsMTE0KV0pLFxjaGFyLWNsYXNzKFtyYW5nZSg0NSw0NSldKSxcY2hhci1jbGFzcyhbcmFuZ2UoOTksOTkpXSksXGNoYXItY2xhc3MoW3JhbmdlKDEwOCwxMDgpXSksXGNoYXItY2xhc3MoW3JhbmdlKDk3LDk3KV0pLFxjaGFyLWNsYXNzKFtyYW5nZSgxMTUsMTE1KV0pLFxjaGFyLWNsYXNzKFtyYW5nZSgxMTUsMTE1KV0pLFxjaGFyLWNsYXNzKFtyYW5nZSg0MCw0MCldKSxcY2hhci1jbGFzcyhbcmFuZ2UoOTEsOTEpXSksXGNoYXItY2xhc3MoW3JhbmdlKDExNCwxMTQpXSksXGNoYXItY2xhc3MoW3JhbmdlKDk3LDk3KV0pLFxjaGFyLWNsYXNzKFtyYW5nZSgxMTAsMTEwKV0pLFxjaGFyLWNsYXNzKFtyYW5nZSgxMDMsMTAzKV0pLFxjaGFyLWNsYXNzKFtyYW5nZSgxMDEsMTAxKV0pLFxjaGFyLWNsYXNzKFtyYW5nZSg0MCw0MCldKSxcY2hhci1jbGFzcyhbcmFuZ2UoNTIsNTIpXSksXGNoYXItY2xhc3MoW3JhbmdlKDU2LDU2KV0pLFxjaGFyLWNsYXNzKFtyYW5nZSg0NCw0NCldKSxcY2hhci1jbGFzcyhbcmFuZ2UoNTMsNTMpXSksXGNoYXItY2xhc3MoW3JhbmdlKDU1LDU1KV0pLFxjaGFyLWNsYXNzKFtyYW5nZSg0MSw0MSldKSxcY2hhci1jbGFzcyhbcmFuZ2UoOTMsOTMpXSksXGNoYXItY2xhc3MoW3JhbmdlKDQxLDQxKV0pLFxjaGFyLWNsYXNzKFtyYW5nZSg0NCw0NCldKSxcY2hhci1jbGFzcyhbcmFuZ2UoMTExLDExMSldKSxcY2hhci1jbGFzcyhbcmFuZ2UoMTEyLDExMildKSxcY2hhci1jbGFzcyhbcmFuZ2UoMTE2LDExNildKSxcY2hhci1jbGFzcyhbcmFuZ2UoNDAsNDApXSksXGNoYXItY2xhc3MoW3JhbmdlKDkyLDkyKV0pLFxjaGFyLWNsYXNzKFtyYW5nZSg5OSw5OSldKSxcY2hhci1jbGFzcyhbcmFuZ2UoMTA0LDEwNCldKSxcY2hhci1jbGFzcyhbcmFuZ2UoOTcsOTcpXSksXGNoYXItY2xhc3MoW3JhbmdlKDExNCwxMTQpXSksXGNoYXItY2xhc3MoW3JhbmdlKDQ1LDQ1KV0pLFxjaGFyLWNsYXNzKFtyYW5nZSg5OSw5OSldKSxcY2hhci1jbGFzcyhbcmFuZ2UoMTA4LDEwOCldKSxcY2hhci1jbGFzcyhbcmFuZ2UoOTcsOTcpXSksXGNoYXItY2xhc3MoW3JhbmdlKDExNSwxMTUpXSksXGNoYXItY2xhc3MoW3JhbmdlKDExNSwxMTUpXSksXGNoYXItY2xhc3MoW3JhbmdlKDQwLDQwKV0pLFxjaGFyLWNsYXNzKFtyYW5nZSg5MSw5MSldKSxcY2hhci1jbGFzcyhbcmFuZ2UoMTE0LDExNCldKSxcY2hhci1jbGFzcyhbcmFuZ2UoOTcsOTcpXSksXGNoYXItY2xhc3MoW3JhbmdlKDExMCwxMTApXSksXGNoYXItY2xhc3MoW3JhbmdlKDEwMywxMDMpXSksXGNoYXItY2xhc3MoW3JhbmdlKDEwMSwxMDEpXSksXGNoYXItY2xhc3MoW3JhbmdlKDQwLDQwKV0pLFxjaGFyLWNsYXNzKFtyYW5nZSg1Miw1MildKSxcY2hhci1jbGFzcyhbcmFuZ2UoNTYsNTYpXSksXGNoYXItY2xhc3MoW3JhbmdlKDQ0LDQ0KV0pLFxjaGFyLWNsYXNzKFtyYW5nZSg1Myw1MyldKSxcY2hhci1jbGFzcyhbcmFuZ2UoNTUsNTUpXSksXGNoYXItY2xhc3MoW3JhbmdlKDQxLDQxKV0pLFxjaGFyLWNsYXNzKFtyYW5nZSg5Myw5MyldKSxcY2hhci1jbGFzcyhbcmFuZ2UoNDEsNDEpXSksXGNoYXItY2xhc3MoW3JhbmdlKDQxLDQxKV0pLFxjaGFyLWNsYXNzKFtyYW5nZSg5Myw5MyldKSxcY2hhci1jbGFzcyhbcmFuZ2UoNDEsNDEpXSldLHt9KQ0000 = (IConstructor) _read("prod(lit(\"seq([\\\\char-class([range(48,57)]),opt(\\\\char-class([range(48,57)]))])\"),[\\char-class([range(115,115)]),\\char-class([range(101,101)]),\\char-class([range(113,113)]),\\char-class([range(40,40)]),\\char-class([range(91,91)]),\\char-class([range(92,92)]),\\char-class([range(99,99)]),\\char-class([range(104,104)]),\\char-class([range(97,97)]),\\char-class([range(114,114)]),\\char-class([range(45,45)]),\\char-class([range(99,99)]),\\char-class([range(108,108)]),\\char-class([range(97,97)]),\\char-class([range(115,115)]),\\char-class([range(115,115)]),\\char-class([range(40,40)]),\\char-class([range(91,91)]),\\char-class([range(114,114)]),\\char-class([range(97,97)]),\\char-class([range(110,110)]),\\char-class([range(103,103)]),\\char-class([range(101,101)]),\\char-class([range(40,40)]),\\char-class([range(52,52)]),\\char-class([range(56,56)]),\\char-class([range(44,44)]),\\char-class([range(53,53)]),\\char-class([range(55,55)]),\\char-class([range(41,41)]),\\char-class([range(93,93)]),\\char-class([range(41,41)]),\\char-class([range(44,44)]),\\char-class([range(111,111)]),\\char-class([range(112,112)]),\\char-class([range(116,116)]),\\char-class([range(40,40)]),\\char-class([range(92,92)]),\\char-class([range(99,99)]),\\char-class([range(104,104)]),\\char-class([range(97,97)]),\\char-class([range(114,114)]),\\char-class([range(45,45)]),\\char-class([range(99,99)]),\\char-class([range(108,108)]),\\char-class([range(97,97)]),\\char-class([range(115,115)]),\\char-class([range(115,115)]),\\char-class([range(40,40)]),\\char-class([range(91,91)]),\\char-class([range(114,114)]),\\char-class([range(97,97)]),\\char-class([range(110,110)]),\\char-class([range(103,103)]),\\char-class([range(101,101)]),\\char-class([range(40,40)]),\\char-class([range(52,52)]),\\char-class([range(56,56)]),\\char-class([range(44,44)]),\\char-class([range(53,53)]),\\char-class([range(55,55)]),\\char-class([range(41,41)]),\\char-class([range(93,93)]),\\char-class([range(41,41)]),\\char-class([range(41,41)]),\\char-class([range(93,93)]),\\char-class([range(41,41)])],{})", RascalValueFactory.Production);
private static final IConstructor cHJvZChsYWJlbCgiJE1ldGFIb2xlIixsZXgoIlByZVBhdGhDaGFycyIpKSxbXGNoYXItY2xhc3MoW3JhbmdlKDAsMCldKSxsaXQoInNvcnQoXCJQcmVQYXRoQ2hhcnNcIikiKSxsaXQoIjoiKSxpdGVyKFxjaGFyLWNsYXNzKFtyYW5nZSg0OCw1NyldKSksXGNoYXItY2xhc3MoW3JhbmdlKDAsMCldKV0se3RhZygiaG9sZVR5cGUiKGxleCgiUHJlUGF0aENoYXJzIikpKX0p = (IConstructor) _read("prod(label(\"$MetaHole\",lex(\"PrePathChars\")),[\\char-class([range(0,0)]),lit(\"sort(\\\"PrePathChars\\\")\"),lit(\":\"),iter(\\char-class([range(48,57)])),\\char-class([range(0,0)])],{tag(\"holeType\"(lex(\"PrePathChars\")))})", RascalValueFactory.Production);
private static final IConstructor cHJvZChsYWJlbCgiZGVmYXVsdFN0cmF0ZWd5Iixzb3J0KCJWaXNpdCIpKSxbbGl0KCJ2aXNpdCIpLGxheW91dHMoIkxBWU9VVExJU1QiKSxsaXQoIigiKSxsYXlvdXRzKCJMQVlPVVRMSVNUIiksbGFiZWwoInN1YmplY3QiLHNvcnQoIkV4cHJlc3Npb24iKSksbGF5b3V0cygiTEFZT1VUTElTVCIpLGxpdCgiKSIpLGxheW91dHMoIkxBWU9VVExJU1QiKSxsaXQoInsiKSxsYXlvdXRzKCJMQVlPVVRMSVNUIiksbGFiZWwoImNhc2VzIixcaXRlci1zZXBzKHNvcnQoIkNhc2UiKSxbbGF5b3V0cygiTEFZT1VUTElTVCIpXSkpLGxheW91dHMoIkxBWU9VVExJU1QiKSxsaXQoIn0iKV0se30p = (IConstructor) _read("prod(label(\"defaultStrategy\",sort(\"Visit\")),[lit(\"visit\"),layouts(\"LAYOUTLIST\"),lit(\"(\"),layouts(\"LAYOUTLIST\"),label(\"subject\",sort(\"Expression\")),layouts(\"LAYOUTLIST\"),lit(\")\"),layouts(\"LAYOUTLIST\"),lit(\"{\"),layouts(\"LAYOUTLIST\"),label(\"cases\",\\iter-seps(sort(\"Case\"),[layouts(\"LAYOUTLIST\")])),layouts(\"LAYOUTLIST\"),lit(\"}\")],{})", RascalValueFactory.Production);
+ private static final IConstructor cHJvZChsYWJlbCgid2hpbGUiLHNvcnQoIlN0cmluZ1RlbXBsYXRlIikpLFtsaXQoIndoaWxlIiksbGF5b3V0cygiTEFZT1VUTElTVCIpLGxpdCgiKCIpLGxheW91dHMoIkxBWU9VVExJU1QiKSxsYWJlbCgiY29uZGl0aW9uIixzb3J0KCJFeHByZXNzaW9uIikpLGxheW91dHMoIkxBWU9VVExJU1QiKSxsaXQoIikiKSxsYXlvdXRzKCJMQVlPVVRMSVNUIiksbGl0KCJ7IiksbGF5b3V0cygiTEFZT1VUTElTVCIpLGxhYmVsKCJwcmVTdGF0cyIsXGl0ZXItc3Rhci1zZXBzKHNvcnQoIlN0YXRlbWVudCIpLFtsYXlvdXRzKCJMQVlPVVRMSVNUIildKSksbGF5b3V0cygiTEFZT1VUTElTVCIpLGxhYmVsKCJib2R5Iixzb3J0KCJTdHJpbmdNaWRkbGUiKSksbGF5b3V0cygiTEFZT1VUTElTVCIpLGxhYmVsKCJwb3N0U3RhdHMiLFxpdGVyLXN0YXItc2Vwcyhzb3J0KCJTdGF0ZW1lbnQiKSxbbGF5b3V0cygiTEFZT1VUTElTVCIpXSkpLGxheW91dHMoIkxBWU9VVExJU1QiKSxsaXQoIn0iKV0se30p = (IConstructor) _read("prod(label(\"while\",sort(\"StringTemplate\")),[lit(\"while\"),layouts(\"LAYOUTLIST\"),lit(\"(\"),layouts(\"LAYOUTLIST\"),label(\"condition\",sort(\"Expression\")),layouts(\"LAYOUTLIST\"),lit(\")\"),layouts(\"LAYOUTLIST\"),lit(\"{\"),layouts(\"LAYOUTLIST\"),label(\"preStats\",\\iter-star-seps(sort(\"Statement\"),[layouts(\"LAYOUTLIST\")])),layouts(\"LAYOUTLIST\"),label(\"body\",sort(\"StringMiddle\")),layouts(\"LAYOUTLIST\"),label(\"postStats\",\\iter-star-seps(sort(\"Statement\"),[layouts(\"LAYOUTLIST\")])),layouts(\"LAYOUTLIST\"),lit(\"}\")],{})", RascalValueFactory.Production);
private static final IConstructor cHJvZChsYWJlbCgiYnMiLGxleCgiQ29uY3JldGVQYXJ0IikpLFtsaXQoIlxcXFwiKV0se3RhZygiY2F0ZWdvcnkiKCJzdHJpbmciKSl9KQ0000 = (IConstructor) _read("prod(label(\"bs\",lex(\"ConcretePart\")),[lit(\"\\\\\\\\\")],{tag(\"category\"(\"string\"))})", RascalValueFactory.Production);
private static final IConstructor cmVndWxhcihcaXRlci1zZXBzKHNvcnQoIlN5bSIpLFtsYXlvdXRzKCJMQVlPVVRMSVNUIildKSk00 = (IConstructor) _read("regular(\\iter-seps(sort(\"Sym\"),[layouts(\"LAYOUTLIST\")]))", RascalValueFactory.Production);
private static final IConstructor cHJvZChsYWJlbCgicHJlc2VudCIsc29ydCgiU3RhcnQiKSksW2xpdCgic3RhcnQiKV0se30p = (IConstructor) _read("prod(label(\"present\",sort(\"Start\")),[lit(\"start\")],{})", RascalValueFactory.Production);
@@ -3535,8 +3553,6 @@ protected IntegerList getFilteredParents(int childId) {
private static final IConstructor cHJvZChsaXQoInNvcnQoXCJIZXhJbnRlZ2VyTGl0ZXJhbFwiKSIpLFtcY2hhci1jbGFzcyhbcmFuZ2UoMTE1LDExNSldKSxcY2hhci1jbGFzcyhbcmFuZ2UoMTExLDExMSldKSxcY2hhci1jbGFzcyhbcmFuZ2UoMTE0LDExNCldKSxcY2hhci1jbGFzcyhbcmFuZ2UoMTE2LDExNildKSxcY2hhci1jbGFzcyhbcmFuZ2UoNDAsNDApXSksXGNoYXItY2xhc3MoW3JhbmdlKDM0LDM0KV0pLFxjaGFyLWNsYXNzKFtyYW5nZSg3Miw3MildKSxcY2hhci1jbGFzcyhbcmFuZ2UoMTAxLDEwMSldKSxcY2hhci1jbGFzcyhbcmFuZ2UoMTIwLDEyMCldKSxcY2hhci1jbGFzcyhbcmFuZ2UoNzMsNzMpXSksXGNoYXItY2xhc3MoW3JhbmdlKDExMCwxMTApXSksXGNoYXItY2xhc3MoW3JhbmdlKDExNiwxMTYpXSksXGNoYXItY2xhc3MoW3JhbmdlKDEwMSwxMDEpXSksXGNoYXItY2xhc3MoW3JhbmdlKDEwMywxMDMpXSksXGNoYXItY2xhc3MoW3JhbmdlKDEwMSwxMDEpXSksXGNoYXItY2xhc3MoW3JhbmdlKDExNCwxMTQpXSksXGNoYXItY2xhc3MoW3JhbmdlKDc2LDc2KV0pLFxjaGFyLWNsYXNzKFtyYW5nZSgxMDUsMTA1KV0pLFxjaGFyLWNsYXNzKFtyYW5nZSgxMTYsMTE2KV0pLFxjaGFyLWNsYXNzKFtyYW5nZSgxMDEsMTAxKV0pLFxjaGFyLWNsYXNzKFtyYW5nZSgxMTQsMTE0KV0pLFxjaGFyLWNsYXNzKFtyYW5nZSg5Nyw5NyldKSxcY2hhci1jbGFzcyhbcmFuZ2UoMTA4LDEwOCldKSxcY2hhci1jbGFzcyhbcmFuZ2UoMzQsMzQpXSksXGNoYXItY2xhc3MoW3JhbmdlKDQxLDQxKV0pXSx7fSk00 = (IConstructor) _read("prod(lit(\"sort(\\\"HexIntegerLiteral\\\")\"),[\\char-class([range(115,115)]),\\char-class([range(111,111)]),\\char-class([range(114,114)]),\\char-class([range(116,116)]),\\char-class([range(40,40)]),\\char-class([range(34,34)]),\\char-class([range(72,72)]),\\char-class([range(101,101)]),\\char-class([range(120,120)]),\\char-class([range(73,73)]),\\char-class([range(110,110)]),\\char-class([range(116,116)]),\\char-class([range(101,101)]),\\char-class([range(103,103)]),\\char-class([range(101,101)]),\\char-class([range(114,114)]),\\char-class([range(76,76)]),\\char-class([range(105,105)]),\\char-class([range(116,116)]),\\char-class([range(101,101)]),\\char-class([range(114,114)]),\\char-class([range(97,97)]),\\char-class([range(108,108)]),\\char-class([range(34,34)]),\\char-class([range(41,41)])],{})", RascalValueFactory.Production);
private static final IConstructor cHJvZChsaXQoInNvcnQoXCJUeXBlXCIpIiksW1xjaGFyLWNsYXNzKFtyYW5nZSgxMTUsMTE1KV0pLFxjaGFyLWNsYXNzKFtyYW5nZSgxMTEsMTExKV0pLFxjaGFyLWNsYXNzKFtyYW5nZSgxMTQsMTE0KV0pLFxjaGFyLWNsYXNzKFtyYW5nZSgxMTYsMTE2KV0pLFxjaGFyLWNsYXNzKFtyYW5nZSg0MCw0MCldKSxcY2hhci1jbGFzcyhbcmFuZ2UoMzQsMzQpXSksXGNoYXItY2xhc3MoW3JhbmdlKDg0LDg0KV0pLFxjaGFyLWNsYXNzKFtyYW5nZSgxMjEsMTIxKV0pLFxjaGFyLWNsYXNzKFtyYW5nZSgxMTIsMTEyKV0pLFxjaGFyLWNsYXNzKFtyYW5nZSgxMDEsMTAxKV0pLFxjaGFyLWNsYXNzKFtyYW5nZSgzNCwzNCldKSxcY2hhci1jbGFzcyhbcmFuZ2UoNDEsNDEpXSldLHt9KQ0000 = (IConstructor) _read("prod(lit(\"sort(\\\"Type\\\")\"),[\\char-class([range(115,115)]),\\char-class([range(111,111)]),\\char-class([range(114,114)]),\\char-class([range(116,116)]),\\char-class([range(40,40)]),\\char-class([range(34,34)]),\\char-class([range(84,84)]),\\char-class([range(121,121)]),\\char-class([range(112,112)]),\\char-class([range(101,101)]),\\char-class([range(34,34)]),\\char-class([range(41,41)])],{})", RascalValueFactory.Production);
private static final IConstructor cHJvZChsaXQoInRhZyIpLFtcY2hhci1jbGFzcyhbcmFuZ2UoMTE2LDExNildKSxcY2hhci1jbGFzcyhbcmFuZ2UoOTcsOTcpXSksXGNoYXItY2xhc3MoW3JhbmdlKDEwMywxMDMpXSldLHt9KQ0000 = (IConstructor) _read("prod(lit(\"tag\"),[\\char-class([range(116,116)]),\\char-class([range(97,97)]),\\char-class([range(103,103)])],{})", RascalValueFactory.Production);
- private static final IConstructor cHJvZChsYWJlbCgia2V5d29yZCIsc29ydCgiU3ludGF4RGVmaW5pdGlvbiIpKSxbbGl0KCJrZXl3b3JkIiksbGF5b3V0cygiTEFZT1VUTElTVCIpLGxhYmVsKCJkZWZpbmVkIixzb3J0KCJTeW0iKSksbGF5b3V0cygiTEFZT1VUTElTVCIpLGxpdCgiPSIpLGxheW91dHMoIkxBWU9VVExJU1QiKSxsYWJlbCgicHJvZHVjdGlvbiIsc29ydCgiUHJvZCIpKSxsYXlvdXRzKCJMQVlPVVRMSVNUIiksbGl0KCI7IildLHt0YWcoIkZvbGRhYmxlIigpKX0p = (IConstructor) _read("prod(label(\"keyword\",sort(\"SyntaxDefinition\")),[lit(\"keyword\"),layouts(\"LAYOUTLIST\"),label(\"defined\",sort(\"Sym\")),layouts(\"LAYOUTLIST\"),lit(\"=\"),layouts(\"LAYOUTLIST\"),label(\"production\",sort(\"Prod\")),layouts(\"LAYOUTLIST\"),lit(\";\")],{tag(\"Foldable\"())})", RascalValueFactory.Production);
- private static final IConstructor cHJvZChsYWJlbCgid2hpbGUiLHNvcnQoIlN0cmluZ1RlbXBsYXRlIikpLFtsaXQoIndoaWxlIiksbGF5b3V0cygiTEFZT1VUTElTVCIpLGxpdCgiKCIpLGxheW91dHMoIkxBWU9VVExJU1QiKSxsYWJlbCgiY29uZGl0aW9uIixzb3J0KCJFeHByZXNzaW9uIikpLGxheW91dHMoIkxBWU9VVExJU1QiKSxsaXQoIikiKSxsYXlvdXRzKCJMQVlPVVRMSVNUIiksbGl0KCJ7IiksbGF5b3V0cygiTEFZT1VUTElTVCIpLGxhYmVsKCJwcmVTdGF0cyIsXGl0ZXItc3Rhci1zZXBzKHNvcnQoIlN0YXRlbWVudCIpLFtsYXlvdXRzKCJMQVlPVVRMSVNUIildKSksbGF5b3V0cygiTEFZT1VUTElTVCIpLGxhYmVsKCJib2R5Iixzb3J0KCJTdHJpbmdNaWRkbGUiKSksbGF5b3V0cygiTEFZT1VUTElTVCIpLGxhYmVsKCJwb3N0U3RhdHMiLFxpdGVyLXN0YXItc2Vwcyhzb3J0KCJTdGF0ZW1lbnQiKSxbbGF5b3V0cygiTEFZT1VUTElTVCIpXSkpLGxheW91dHMoIkxBWU9VVExJU1QiKSxsaXQoIn0iKV0se30p = (IConstructor) _read("prod(label(\"while\",sort(\"StringTemplate\")),[lit(\"while\"),layouts(\"LAYOUTLIST\"),lit(\"(\"),layouts(\"LAYOUTLIST\"),label(\"condition\",sort(\"Expression\")),layouts(\"LAYOUTLIST\"),lit(\")\"),layouts(\"LAYOUTLIST\"),lit(\"{\"),layouts(\"LAYOUTLIST\"),label(\"preStats\",\\iter-star-seps(sort(\"Statement\"),[layouts(\"LAYOUTLIST\")])),layouts(\"LAYOUTLIST\"),label(\"body\",sort(\"StringMiddle\")),layouts(\"LAYOUTLIST\"),label(\"postStats\",\\iter-star-seps(sort(\"Statement\"),[layouts(\"LAYOUTLIST\")])),layouts(\"LAYOUTLIST\"),lit(\"}\")],{})", RascalValueFactory.Production);
private static final IConstructor cHJvZChsYWJlbCgiY2FsbE9yVHJlZSIsc29ydCgiRXhwcmVzc2lvbiIpKSxbbGFiZWwoImV4cHJlc3Npb24iLGNvbmRpdGlvbmFsKHNvcnQoIkV4cHJlc3Npb24iKSx7ZXhjZXB0KCJpc0RlZmluZWQiKSxleGNlcHQoInRyYW5zaXRpdmVDbG9zdXJlIiksZXhjZXB0KCJ0cmFuc2l0aXZlUmVmbGV4aXZlQ2xvc3VyZSIpfSkpLGxheW91dHMoIkxBWU9VVExJU1QiKSxsaXQoIigiKSxsYXlvdXRzKCJMQVlPVVRMSVNUIiksbGFiZWwoImFyZ3VtZW50cyIsXGl0ZXItc3Rhci1zZXBzKHNvcnQoIkV4cHJlc3Npb24iKSxbbGF5b3V0cygiTEFZT1VUTElTVCIpLGxpdCgiLCIpLGxheW91dHMoIkxBWU9VVExJU1QiKV0pKSxsYXlvdXRzKCJMQVlPVVRMSVNUIiksbGFiZWwoImtleXdvcmRBcmd1bWVudHMiLFxwYXJhbWV0ZXJpemVkLXNvcnQoIktleXdvcmRBcmd1bWVudHMiLFtzb3J0KCJFeHByZXNzaW9uIildKSksbGF5b3V0cygiTEFZT1VUTElTVCIpLGxpdCgiKSIpXSx7fSk00 = (IConstructor) _read("prod(label(\"callOrTree\",sort(\"Expression\")),[label(\"expression\",conditional(sort(\"Expression\"),{except(\"isDefined\"),except(\"transitiveClosure\"),except(\"transitiveReflexiveClosure\")})),layouts(\"LAYOUTLIST\"),lit(\"(\"),layouts(\"LAYOUTLIST\"),label(\"arguments\",\\iter-star-seps(sort(\"Expression\"),[layouts(\"LAYOUTLIST\"),lit(\",\"),layouts(\"LAYOUTLIST\")])),layouts(\"LAYOUTLIST\"),label(\"keywordArguments\",\\parameterized-sort(\"KeywordArguments\",[sort(\"Expression\")])),layouts(\"LAYOUTLIST\"),lit(\")\")],{})", RascalValueFactory.Production);
private static final IConstructor cHJvZChrZXl3b3JkcygiUmFzY2FsS2V5d29yZHMiKSxbbGl0KCJ2YWx1ZSIpXSx7fSk00 = (IConstructor) _read("prod(keywords(\"RascalKeywords\"),[lit(\"value\")],{})", RascalValueFactory.Production);
private static final IConstructor cHJvZChsYWJlbCgiaW5zZXJ0QmVmb3JlIixzb3J0KCJFeHByZXNzaW9uIikpLFtsYWJlbCgibGhzIixzb3J0KCJFeHByZXNzaW9uIikpLGxheW91dHMoIkxBWU9VVExJU1QiKSxsaXQoIlw11XD4iKSxsYXlvdXRzKCJMQVlPVVRMSVNUIiksbGFiZWwoInJocyIsc29ydCgiRXhwcmVzc2lvbiIpKV0se30p = (IConstructor) _read("prod(label(\"insertBefore\",sort(\"Expression\")),[label(\"lhs\",sort(\"Expression\")),layouts(\"LAYOUTLIST\"),lit(\"\\>\\>\"),layouts(\"LAYOUTLIST\"),label(\"rhs\",sort(\"Expression\"))],{})", RascalValueFactory.Production);
@@ -3553,10 +3569,10 @@ protected IntegerList getFilteredParents(int childId) {
private static final IConstructor cmVndWxhcihpdGVyKFxjaGFyLWNsYXNzKFtyYW5nZSg0OCw1NykscmFuZ2UoNjUsNzApLHJhbmdlKDk3LDEwMildKSkp = (IConstructor) _read("regular(iter(\\char-class([range(48,57),range(65,70),range(97,102)])))", RascalValueFactory.Production);
private static final IConstructor cmVndWxhcihvcHQoc2VxKFtcY2hhci1jbGFzcyhbcmFuZ2UoNDQsNDQpLHJhbmdlKDQ2LDQ2KV0pLFxjaGFyLWNsYXNzKFtyYW5nZSg0OCw1NyldKSxvcHQoc2VxKFtcY2hhci1jbGFzcyhbcmFuZ2UoNDgsNTcpXSksb3B0KFxjaGFyLWNsYXNzKFtyYW5nZSg0OCw1NyldKSldKSldKSkp = (IConstructor) _read("regular(opt(seq([\\char-class([range(44,44),range(46,46)]),\\char-class([range(48,57)]),opt(seq([\\char-class([range(48,57)]),opt(\\char-class([range(48,57)]))]))])))", RascalValueFactory.Production);
private static final IConstructor cHJvZChrZXl3b3JkcygiUmFzY2FsS2V5d29yZHMiKSxbbGl0KCJtYXAiKV0se30p = (IConstructor) _read("prod(keywords(\"RascalKeywords\"),[lit(\"map\")],{})", RascalValueFactory.Production);
+ private static final IConstructor cHJvZChsYWJlbCgibW9kaWZpZXIiLHNvcnQoIlR5cGUiKSksW2xhYmVsKCJtb2RpZmllciIsc29ydCgiU3ludGF4Um9sZU1vZGlmaWVyIikpXSx7fSk00 = (IConstructor) _read("prod(label(\"modifier\",sort(\"Type\")),[label(\"modifier\",sort(\"SyntaxRoleModifier\"))],{})", RascalValueFactory.Production);
private static final IConstructor cHJvZChsYWJlbCgiZHluYW1pYyIsc29ydCgiTG9jYWxWYXJpYWJsZURlY2xhcmF0aW9uIikpLFtsaXQoImR5bmFtaWMiKSxsYXlvdXRzKCJMQVlPVVRMSVNUIiksbGFiZWwoImRlY2xhcmF0b3IiLHNvcnQoIkRlY2xhcmF0b3IiKSldLHt9KQ0000 = (IConstructor) _read("prod(label(\"dynamic\",sort(\"LocalVariableDeclaration\")),[lit(\"dynamic\"),layouts(\"LAYOUTLIST\"),label(\"declarator\",sort(\"Declarator\"))],{})", RascalValueFactory.Production);
private static final IConstructor cHJvZChsYWJlbCgidGFnIixzb3J0KCJLaW5kIikpLFtsaXQoInRhZyIpXSx7fSk00 = (IConstructor) _read("prod(label(\"tag\",sort(\"Kind\")),[lit(\"tag\")],{})", RascalValueFactory.Production);
private static final IConstructor cHJvZChsYWJlbCgiJE1ldGFIb2xlIixzb3J0KCJEYXRlVGltZUxpdGVyYWwiKSksW1xjaGFyLWNsYXNzKFtyYW5nZSgwLDApXSksbGl0KCJzb3J0KFwiRGF0ZVRpbWVMaXRlcmFsXCIpIiksbGl0KCI6IiksaXRlcihcY2hhci1jbGFzcyhbcmFuZ2UoNDgsNTcpXSkpLFxjaGFyLWNsYXNzKFtyYW5nZSgwLDApXSldLHt0YWcoImhvbGVUeXBlIihzb3J0KCJEYXRlVGltZUxpdGVyYWwiKSkpfSk00 = (IConstructor) _read("prod(label(\"$MetaHole\",sort(\"DateTimeLiteral\")),[\\char-class([range(0,0)]),lit(\"sort(\\\"DateTimeLiteral\\\")\"),lit(\":\"),iter(\\char-class([range(48,57)])),\\char-class([range(0,0)])],{tag(\"holeType\"(sort(\"DateTimeLiteral\")))})", RascalValueFactory.Production);
- private static final IConstructor cHJvZChsYWJlbCgibGFuZ3VhZ2UiLHNvcnQoIlN5bnRheERlZmluaXRpb24iKSksW2xhYmVsKCJzdGFydCIsc29ydCgiU3RhcnQiKSksbGF5b3V0cygiTEFZT1VUTElTVCIpLGxpdCgic3ludGF4IiksbGF5b3V0cygiTEFZT1VUTElTVCIpLGxhYmVsKCJkZWZpbmVkIixzb3J0KCJTeW0iKSksbGF5b3V0cygiTEFZT1VUTElTVCIpLGxpdCgiPSIpLGxheW91dHMoIkxBWU9VVExJU1QiKSxsYWJlbCgicHJvZHVjdGlvbiIsc29ydCgiUHJvZCIpKSxsYXlvdXRzKCJMQVlPVVRMSVNUIiksbGl0KCI7IildLHt0YWcoIkZvbGRhYmxlIigpKX0p = (IConstructor) _read("prod(label(\"language\",sort(\"SyntaxDefinition\")),[label(\"start\",sort(\"Start\")),layouts(\"LAYOUTLIST\"),lit(\"syntax\"),layouts(\"LAYOUTLIST\"),label(\"defined\",sort(\"Sym\")),layouts(\"LAYOUTLIST\"),lit(\"=\"),layouts(\"LAYOUTLIST\"),label(\"production\",sort(\"Prod\")),layouts(\"LAYOUTLIST\"),lit(\";\")],{tag(\"Foldable\"())})", RascalValueFactory.Production);
private static final IConstructor cHJvZChsYWJlbCgicmVnRXhwIixzb3J0KCJMaXRlcmFsIikpLFtsYWJlbCgicmVnRXhwTGl0ZXJhbCIsbGV4KCJSZWdFeHBMaXRlcmFsIikpXSx7dGFnKCJjYXRlZ29yeSIoInJlZ2V4cCIpKX0p = (IConstructor) _read("prod(label(\"regExp\",sort(\"Literal\")),[label(\"regExpLiteral\",lex(\"RegExpLiteral\"))],{tag(\"category\"(\"regexp\"))})", RascalValueFactory.Production);
private static final IConstructor cHJvZChsaXQoInNvcnQoXCJUYWdTdHJpbmdcIikiKSxbXGNoYXItY2xhc3MoW3JhbmdlKDExNSwxMTUpXSksXGNoYXItY2xhc3MoW3JhbmdlKDExMSwxMTEpXSksXGNoYXItY2xhc3MoW3JhbmdlKDExNCwxMTQpXSksXGNoYXItY2xhc3MoW3JhbmdlKDExNiwxMTYpXSksXGNoYXItY2xhc3MoW3JhbmdlKDQwLDQwKV0pLFxjaGFyLWNsYXNzKFtyYW5nZSgzNCwzNCldKSxcY2hhci1jbGFzcyhbcmFuZ2UoODQsODQpXSksXGNoYXItY2xhc3MoW3JhbmdlKDk3LDk3KV0pLFxjaGFyLWNsYXNzKFtyYW5nZSgxMDMsMTAzKV0pLFxjaGFyLWNsYXNzKFtyYW5nZSg4Myw4MyldKSxcY2hhci1jbGFzcyhbcmFuZ2UoMTE2LDExNildKSxcY2hhci1jbGFzcyhbcmFuZ2UoMTE0LDExNCldKSxcY2hhci1jbGFzcyhbcmFuZ2UoMTA1LDEwNSldKSxcY2hhci1jbGFzcyhbcmFuZ2UoMTEwLDExMCldKSxcY2hhci1jbGFzcyhbcmFuZ2UoMTAzLDEwMyldKSxcY2hhci1jbGFzcyhbcmFuZ2UoMzQsMzQpXSksXGNoYXItY2xhc3MoW3JhbmdlKDQxLDQxKV0pXSx7fSk00 = (IConstructor) _read("prod(lit(\"sort(\\\"TagString\\\")\"),[\\char-class([range(115,115)]),\\char-class([range(111,111)]),\\char-class([range(114,114)]),\\char-class([range(116,116)]),\\char-class([range(40,40)]),\\char-class([range(34,34)]),\\char-class([range(84,84)]),\\char-class([range(97,97)]),\\char-class([range(103,103)]),\\char-class([range(83,83)]),\\char-class([range(116,116)]),\\char-class([range(114,114)]),\\char-class([range(105,105)]),\\char-class([range(110,110)]),\\char-class([range(103,103)]),\\char-class([range(34,34)]),\\char-class([range(41,41)])],{})", RascalValueFactory.Production);
private static final IConstructor cHJvZChsYWJlbCgibm9uRW1wdHlCbG9jayIsc29ydCgiRXhwcmVzc2lvbiIpKSxbbGl0KCJ7IiksbGF5b3V0cygiTEFZT1VUTElTVCIpLGxhYmVsKCJzdGF0ZW1lbnRzIixcaXRlci1zZXBzKHNvcnQoIlN0YXRlbWVudCIpLFtsYXlvdXRzKCJMQVlPVVRMSVNUIildKSksbGF5b3V0cygiTEFZT1VUTElTVCIpLGxpdCgifSIpXSx7fSk00 = (IConstructor) _read("prod(label(\"nonEmptyBlock\",sort(\"Expression\")),[lit(\"{\"),layouts(\"LAYOUTLIST\"),label(\"statements\",\\iter-seps(sort(\"Statement\"),[layouts(\"LAYOUTLIST\")])),layouts(\"LAYOUTLIST\"),lit(\"}\")],{})", RascalValueFactory.Production);
@@ -3643,7 +3659,6 @@ protected IntegerList getFilteredParents(int childId) {
private static final IConstructor cHJvZChsaXQoIjsiKSxbXGNoYXItY2xhc3MoW3JhbmdlKDU5LDU5KV0pXSx7fSk00 = (IConstructor) _read("prod(lit(\";\"),[\\char-class([range(59,59)])],{})", RascalValueFactory.Production);
private static final IConstructor cHJvZChsaXQoIndoaWxlIiksW1xjaGFyLWNsYXNzKFtyYW5nZSgxMTksMTE5KV0pLFxjaGFyLWNsYXNzKFtyYW5nZSgxMDQsMTA0KV0pLFxjaGFyLWNsYXNzKFtyYW5nZSgxMDUsMTA1KV0pLFxjaGFyLWNsYXNzKFtyYW5nZSgxMDgsMTA4KV0pLFxjaGFyLWNsYXNzKFtyYW5nZSgxMDEsMTAxKV0pXSx7fSk00 = (IConstructor) _read("prod(lit(\"while\"),[\\char-class([range(119,119)]),\\char-class([range(104,104)]),\\char-class([range(105,105)]),\\char-class([range(108,108)]),\\char-class([range(101,101)])],{})", RascalValueFactory.Production);
private static final IConstructor cHJvZChsYWJlbCgiJE1ldGFIb2xlIixzb3J0KCJUYXJnZXQiKSksW1xjaGFyLWNsYXNzKFtyYW5nZSgwLDApXSksbGl0KCJzb3J0KFwiVGFyZ2V0XCIpIiksbGl0KCI6IiksaXRlcihcY2hhci1jbGFzcyhbcmFuZ2UoNDgsNTcpXSkpLFxjaGFyLWNsYXNzKFtyYW5nZSgwLDApXSldLHt0YWcoImhvbGVUeXBlIihzb3J0KCJUYXJnZXQiKSkpfSk00 = (IConstructor) _read("prod(label(\"$MetaHole\",sort(\"Target\")),[\\char-class([range(0,0)]),lit(\"sort(\\\"Target\\\")\"),lit(\":\"),iter(\\char-class([range(48,57)])),\\char-class([range(0,0)])],{tag(\"holeType\"(sort(\"Target\")))})", RascalValueFactory.Production);
- private static final IConstructor cHJvZChsaXQoInNvcnQoXCJUYXJnZXRcIikiKSxbXGNoYXItY2xhc3MoW3JhbmdlKDExNSwxMTUpXSksXGNoYXItY2xhc3MoW3JhbmdlKDExMSwxMTEpXSksXGNoYXItY2xhc3MoW3JhbmdlKDExNCwxMTQpXSksXGNoYXItY2xhc3MoW3JhbmdlKDExNiwxMTYpXSksXGNoYXItY2xhc3MoW3JhbmdlKDQwLDQwKV0pLFxjaGFyLWNsYXNzKFtyYW5nZSgzNCwzNCldKSxcY2hhci1jbGFzcyhbcmFuZ2UoODQsODQpXSksXGNoYXItY2xhc3MoW3JhbmdlKDk3LDk3KV0pLFxjaGFyLWNsYXNzKFtyYW5nZSgxMTQsMTE0KV0pLFxjaGFyLWNsYXNzKFtyYW5nZSgxMDMsMTAzKV0pLFxjaGFyLWNsYXNzKFtyYW5nZSgxMDEsMTAxKV0pLFxjaGFyLWNsYXNzKFtyYW5nZSgxMTYsMTE2KV0pLFxjaGFyLWNsYXNzKFtyYW5nZSgzNCwzNCldKSxcY2hhci1jbGFzcyhbcmFuZ2UoNDEsNDEpXSldLHt9KQ0000 = (IConstructor) _read("prod(lit(\"sort(\\\"Target\\\")\"),[\\char-class([range(115,115)]),\\char-class([range(111,111)]),\\char-class([range(114,114)]),\\char-class([range(116,116)]),\\char-class([range(40,40)]),\\char-class([range(34,34)]),\\char-class([range(84,84)]),\\char-class([range(97,97)]),\\char-class([range(114,114)]),\\char-class([range(103,103)]),\\char-class([range(101,101)]),\\char-class([range(116,116)]),\\char-class([range(34,34)]),\\char-class([range(41,41)])],{})", RascalValueFactory.Production);
private static final IConstructor cHJvZChrZXl3b3JkcygiUmFzY2FsS2V5d29yZHMiKSxbbGl0KCJyZWFsIildLHt9KQ0000 = (IConstructor) _read("prod(keywords(\"RascalKeywords\"),[lit(\"real\")],{})", RascalValueFactory.Production);
private static final IConstructor cHJvZChsaXQoImJhZyIpLFtcY2hhci1jbGFzcyhbcmFuZ2UoOTgsOTgpXSksXGNoYXItY2xhc3MoW3JhbmdlKDk3LDk3KV0pLFxjaGFyLWNsYXNzKFtyYW5nZSgxMDMsMTAzKV0pXSx7fSk00 = (IConstructor) _read("prod(lit(\"bag\"),[\\char-class([range(98,98)]),\\char-class([range(97,97)]),\\char-class([range(103,103)])],{})", RascalValueFactory.Production);
private static final IConstructor cHJvZChsaXQoIlxcaXRlci1zZXBzKHNvcnQoXCJOYW1lXCIpLFtsaXQoXCI6OlwiKV0pIiksW1xjaGFyLWNsYXNzKFtyYW5nZSg5Miw5MildKSxcY2hhci1jbGFzcyhbcmFuZ2UoMTA1LDEwNSldKSxcY2hhci1jbGFzcyhbcmFuZ2UoMTE2LDExNildKSxcY2hhci1jbGFzcyhbcmFuZ2UoMTAxLDEwMSldKSxcY2hhci1jbGFzcyhbcmFuZ2UoMTE0LDExNCldKSxcY2hhci1jbGFzcyhbcmFuZ2UoNDUsNDUpXSksXGNoYXItY2xhc3MoW3JhbmdlKDExNSwxMTUpXSksXGNoYXItY2xhc3MoW3JhbmdlKDEwMSwxMDEpXSksXGNoYXItY2xhc3MoW3JhbmdlKDExMiwxMTIpXSksXGNoYXItY2xhc3MoW3JhbmdlKDExNSwxMTUpXSksXGNoYXItY2xhc3MoW3JhbmdlKDQwLDQwKV0pLFxjaGFyLWNsYXNzKFtyYW5nZSgxMTUsMTE1KV0pLFxjaGFyLWNsYXNzKFtyYW5nZSgxMTEsMTExKV0pLFxjaGFyLWNsYXNzKFtyYW5nZSgxMTQsMTE0KV0pLFxjaGFyLWNsYXNzKFtyYW5nZSgxMTYsMTE2KV0pLFxjaGFyLWNsYXNzKFtyYW5nZSg0MCw0MCldKSxcY2hhci1jbGFzcyhbcmFuZ2UoMzQsMzQpXSksXGNoYXItY2xhc3MoW3JhbmdlKDc4LDc4KV0pLFxjaGFyLWNsYXNzKFtyYW5nZSg5Nyw5NyldKSxcY2hhci1jbGFzcyhbcmFuZ2UoMTA5LDEwOSldKSxcY2hhci1jbGFzcyhbcmFuZ2UoMTAxLDEwMSldKSxcY2hhci1jbGFzcyhbcmFuZ2UoMzQsMzQpXSksXGNoYXItY2xhc3MoW3JhbmdlKDQxLDQxKV0pLFxjaGFyLWNsYXNzKFtyYW5nZSg0NCw0NCldKSxcY2hhci1jbGFzcyhbcmFuZ2UoOTEsOTEpXSksXGNoYXItY2xhc3MoW3JhbmdlKDEwOCwxMDgpXSksXGNoYXItY2xhc3MoW3JhbmdlKDEwNSwxMDUpXSksXGNoYXItY2xhc3MoW3JhbmdlKDExNiwxMTYpXSksXGNoYXItY2xhc3MoW3JhbmdlKDQwLDQwKV0pLFxjaGFyLWNsYXNzKFtyYW5nZSgzNCwzNCldKSxcY2hhci1jbGFzcyhbcmFuZ2UoNTgsNTgpXSksXGNoYXItY2xhc3MoW3JhbmdlKDU4LDU4KV0pLFxjaGFyLWNsYXNzKFtyYW5nZSgzNCwzNCldKSxcY2hhci1jbGFzcyhbcmFuZ2UoNDEsNDEpXSksXGNoYXItY2xhc3MoW3JhbmdlKDkzLDkzKV0pLFxjaGFyLWNsYXNzKFtyYW5nZSg0MSw0MSldKV0se30p = (IConstructor) _read("prod(lit(\"\\\\iter-seps(sort(\\\"Name\\\"),[lit(\\\"::\\\")])\"),[\\char-class([range(92,92)]),\\char-class([range(105,105)]),\\char-class([range(116,116)]),\\char-class([range(101,101)]),\\char-class([range(114,114)]),\\char-class([range(45,45)]),\\char-class([range(115,115)]),\\char-class([range(101,101)]),\\char-class([range(112,112)]),\\char-class([range(115,115)]),\\char-class([range(40,40)]),\\char-class([range(115,115)]),\\char-class([range(111,111)]),\\char-class([range(114,114)]),\\char-class([range(116,116)]),\\char-class([range(40,40)]),\\char-class([range(34,34)]),\\char-class([range(78,78)]),\\char-class([range(97,97)]),\\char-class([range(109,109)]),\\char-class([range(101,101)]),\\char-class([range(34,34)]),\\char-class([range(41,41)]),\\char-class([range(44,44)]),\\char-class([range(91,91)]),\\char-class([range(108,108)]),\\char-class([range(105,105)]),\\char-class([range(116,116)]),\\char-class([range(40,40)]),\\char-class([range(34,34)]),\\char-class([range(58,58)]),\\char-class([range(58,58)]),\\char-class([range(34,34)]),\\char-class([range(41,41)]),\\char-class([range(93,93)]),\\char-class([range(41,41)])],{})", RascalValueFactory.Production);
@@ -3669,6 +3684,8 @@ protected IntegerList getFilteredParents(int childId) {
private static final IConstructor cmVndWxhcihcaXRlci1zZXBzKGxleCgiTmFtZSIpLFtsYXlvdXRzKCJMQVlPVVRMSVNUIiksbGl0KCI6OiIpLGxheW91dHMoIkxBWU9VVExJU1QiKV0pKQ0000 = (IConstructor) _read("regular(\\iter-seps(lex(\"Name\"),[layouts(\"LAYOUTLIST\"),lit(\"::\"),layouts(\"LAYOUTLIST\")]))", RascalValueFactory.Production);
private static final IConstructor cHJvZChrZXl3b3JkcygiUmFzY2FsS2V5d29yZHMiKSxbbGl0KCJmaW5hbGx5IildLHt9KQ0000 = (IConstructor) _read("prod(keywords(\"RascalKeywords\"),[lit(\"finally\")],{})", RascalValueFactory.Production);
private static final IConstructor cHJvZChsaXQoIml0ZXIoc29ydChcIkNhdGNoXCIpKSIpLFtcY2hhci1jbGFzcyhbcmFuZ2UoMTA1LDEwNSldKSxcY2hhci1jbGFzcyhbcmFuZ2UoMTE2LDExNildKSxcY2hhci1jbGFzcyhbcmFuZ2UoMTAxLDEwMSldKSxcY2hhci1jbGFzcyhbcmFuZ2UoMTE0LDExNCldKSxcY2hhci1jbGFzcyhbcmFuZ2UoNDAsNDApXSksXGNoYXItY2xhc3MoW3JhbmdlKDExNSwxMTUpXSksXGNoYXItY2xhc3MoW3JhbmdlKDExMSwxMTEpXSksXGNoYXItY2xhc3MoW3JhbmdlKDExNCwxMTQpXSksXGNoYXItY2xhc3MoW3JhbmdlKDExNiwxMTYpXSksXGNoYXItY2xhc3MoW3JhbmdlKDQwLDQwKV0pLFxjaGFyLWNsYXNzKFtyYW5nZSgzNCwzNCldKSxcY2hhci1jbGFzcyhbcmFuZ2UoNjcsNjcpXSksXGNoYXItY2xhc3MoW3JhbmdlKDk3LDk3KV0pLFxjaGFyLWNsYXNzKFtyYW5nZSgxMTYsMTE2KV0pLFxjaGFyLWNsYXNzKFtyYW5nZSg5OSw5OSldKSxcY2hhci1jbGFzcyhbcmFuZ2UoMTA0LDEwNCldKSxcY2hhci1jbGFzcyhbcmFuZ2UoMzQsMzQpXSksXGNoYXItY2xhc3MoW3JhbmdlKDQxLDQxKV0pLFxjaGFyLWNsYXNzKFtyYW5nZSg0MSw0MSldKV0se30p = (IConstructor) _read("prod(lit(\"iter(sort(\\\"Catch\\\"))\"),[\\char-class([range(105,105)]),\\char-class([range(116,116)]),\\char-class([range(101,101)]),\\char-class([range(114,114)]),\\char-class([range(40,40)]),\\char-class([range(115,115)]),\\char-class([range(111,111)]),\\char-class([range(114,114)]),\\char-class([range(116,116)]),\\char-class([range(40,40)]),\\char-class([range(34,34)]),\\char-class([range(67,67)]),\\char-class([range(97,97)]),\\char-class([range(116,116)]),\\char-class([range(99,99)]),\\char-class([range(104,104)]),\\char-class([range(34,34)]),\\char-class([range(41,41)]),\\char-class([range(41,41)])],{})", RascalValueFactory.Production);
+ private static final IConstructor cHJvZChsaXQoInNvcnQoXCJUYXJnZXRcIikiKSxbXGNoYXItY2xhc3MoW3JhbmdlKDExNSwxMTUpXSksXGNoYXItY2xhc3MoW3JhbmdlKDExMSwxMTEpXSksXGNoYXItY2xhc3MoW3JhbmdlKDExNCwxMTQpXSksXGNoYXItY2xhc3MoW3JhbmdlKDExNiwxMTYpXSksXGNoYXItY2xhc3MoW3JhbmdlKDQwLDQwKV0pLFxjaGFyLWNsYXNzKFtyYW5nZSgzNCwzNCldKSxcY2hhci1jbGFzcyhbcmFuZ2UoODQsODQpXSksXGNoYXItY2xhc3MoW3JhbmdlKDk3LDk3KV0pLFxjaGFyLWNsYXNzKFtyYW5nZSgxMTQsMTE0KV0pLFxjaGFyLWNsYXNzKFtyYW5nZSgxMDMsMTAzKV0pLFxjaGFyLWNsYXNzKFtyYW5nZSgxMDEsMTAxKV0pLFxjaGFyLWNsYXNzKFtyYW5nZSgxMTYsMTE2KV0pLFxjaGFyLWNsYXNzKFtyYW5nZSgzNCwzNCldKSxcY2hhci1jbGFzcyhbcmFuZ2UoNDEsNDEpXSldLHt9KQ0000 = (IConstructor) _read("prod(lit(\"sort(\\\"Target\\\")\"),[\\char-class([range(115,115)]),\\char-class([range(111,111)]),\\char-class([range(114,114)]),\\char-class([range(116,116)]),\\char-class([range(40,40)]),\\char-class([range(34,34)]),\\char-class([range(84,84)]),\\char-class([range(97,97)]),\\char-class([range(114,114)]),\\char-class([range(103,103)]),\\char-class([range(101,101)]),\\char-class([range(116,116)]),\\char-class([range(34,34)]),\\char-class([range(41,41)])],{})", RascalValueFactory.Production);
+ private static final IConstructor cHJvZChsaXQoInNvcnQoXCJTeW50YXhSb2xlTW9kaWZpZXJcIikiKSxbXGNoYXItY2xhc3MoW3JhbmdlKDExNSwxMTUpXSksXGNoYXItY2xhc3MoW3JhbmdlKDExMSwxMTEpXSksXGNoYXItY2xhc3MoW3JhbmdlKDExNCwxMTQpXSksXGNoYXItY2xhc3MoW3JhbmdlKDExNiwxMTYpXSksXGNoYXItY2xhc3MoW3JhbmdlKDQwLDQwKV0pLFxjaGFyLWNsYXNzKFtyYW5nZSgzNCwzNCldKSxcY2hhci1jbGFzcyhbcmFuZ2UoODMsODMpXSksXGNoYXItY2xhc3MoW3JhbmdlKDEyMSwxMjEpXSksXGNoYXItY2xhc3MoW3JhbmdlKDExMCwxMTApXSksXGNoYXItY2xhc3MoW3JhbmdlKDExNiwxMTYpXSksXGNoYXItY2xhc3MoW3JhbmdlKDk3LDk3KV0pLFxjaGFyLWNsYXNzKFtyYW5nZSgxMjAsMTIwKV0pLFxjaGFyLWNsYXNzKFtyYW5nZSg4Miw4MildKSxcY2hhci1jbGFzcyhbcmFuZ2UoMTExLDExMSldKSxcY2hhci1jbGFzcyhbcmFuZ2UoMTA4LDEwOCldKSxcY2hhci1jbGFzcyhbcmFuZ2UoMTAxLDEwMSldKSxcY2hhci1jbGFzcyhbcmFuZ2UoNzcsNzcpXSksXGNoYXItY2xhc3MoW3JhbmdlKDExMSwxMTEpXSksXGNoYXItY2xhc3MoW3JhbmdlKDEwMCwxMDApXSksXGNoYXItY2xhc3MoW3JhbmdlKDEwNSwxMDUpXSksXGNoYXItY2xhc3MoW3JhbmdlKDEwMiwxMDIpXSksXGNoYXItY2xhc3MoW3JhbmdlKDEwNSwxMDUpXSksXGNoYXItY2xhc3MoW3JhbmdlKDEwMSwxMDEpXSksXGNoYXItY2xhc3MoW3JhbmdlKDExNCwxMTQpXSksXGNoYXItY2xhc3MoW3JhbmdlKDM0LDM0KV0pLFxjaGFyLWNsYXNzKFtyYW5nZSg0MSw0MSldKV0se30p = (IConstructor) _read("prod(lit(\"sort(\\\"SyntaxRoleModifier\\\")\"),[\\char-class([range(115,115)]),\\char-class([range(111,111)]),\\char-class([range(114,114)]),\\char-class([range(116,116)]),\\char-class([range(40,40)]),\\char-class([range(34,34)]),\\char-class([range(83,83)]),\\char-class([range(121,121)]),\\char-class([range(110,110)]),\\char-class([range(116,116)]),\\char-class([range(97,97)]),\\char-class([range(120,120)]),\\char-class([range(82,82)]),\\char-class([range(111,111)]),\\char-class([range(108,108)]),\\char-class([range(101,101)]),\\char-class([range(77,77)]),\\char-class([range(111,111)]),\\char-class([range(100,100)]),\\char-class([range(105,105)]),\\char-class([range(102,102)]),\\char-class([range(105,105)]),\\char-class([range(101,101)]),\\char-class([range(114,114)]),\\char-class([range(34,34)]),\\char-class([range(41,41)])],{})", RascalValueFactory.Production);
private static final IConstructor cHJvZChrZXl3b3JkcygiUmFzY2FsS2V5d29yZHMiKSxbbGl0KCJ2b2lkIildLHt9KQ0000 = (IConstructor) _read("prod(keywords(\"RascalKeywords\"),[lit(\"void\")],{})", RascalValueFactory.Production);
private static final IConstructor cHJvZChsYWJlbCgiJE1ldGFIb2xlIixhbHQoe3NlcShbbGl0KCJcXCIpLFxjaGFyLWNsYXNzKFtyYW5nZSgxMjMsMTIzKSxyYW5nZSgxMjUsMTI1KV0pXSksbGV4KCJUYWdTdHJpbmciKSxcY2hhci1jbGFzcyhbcmFuZ2UoMSwxMjIpLHJhbmdlKDEyNCwxMjQpLHJhbmdlKDEyNiwxMTE0MTExKV0pfSkpLFtcY2hhci1jbGFzcyhbcmFuZ2UoMCwwKV0pLGxpdCgiXFxpdGVyLXN0YXIoYWx0KHtzZXEoW2xpdChcIlxcXFxcIiksXFxjaGFyLWNsYXNzKFtyYW5nZSgxMjMsMTIzKSxyYW5nZSgxMjUsMTI1KV0pXSksc29ydChcIlRhZ1N0cmluZ1wiKSxcXGNoYXItY2xhc3MoW3JhbmdlKDEsMTIyKSxyYW5nZSgxMjQsMTI0KSxyYW5nZSgxMjYsMTExNDExMSldKX0pKSIpLGxpdCgiOiIpLGl0ZXIoXGNoYXItY2xhc3MoW3JhbmdlKDQ4LDU3KV0pKSxcY2hhci1jbGFzcyhbcmFuZ2UoMCwwKV0pXSx7dGFnKCJob2xlVHlwZSIoXGl0ZXItc3RhcihhbHQoe3NlcShbbGl0KCJcXCIpLFxjaGFyLWNsYXNzKFtyYW5nZSgxMjMsMTIzKSxyYW5nZSgxMjUsMTI1KV0pXSksbGV4KCJUYWdTdHJpbmciKSxcY2hhci1jbGFzcyhbcmFuZ2UoMSwxMjIpLHJhbmdlKDEyNCwxMjQpLHJhbmdlKDEyNiwxMTE0MTExKV0pfSkpKSl9KQ0000 = (IConstructor) _read("prod(label(\"$MetaHole\",alt({seq([lit(\"\\\\\"),\\char-class([range(123,123),range(125,125)])]),lex(\"TagString\"),\\char-class([range(1,122),range(124,124),range(126,1114111)])})),[\\char-class([range(0,0)]),lit(\"\\\\iter-star(alt({seq([lit(\\\"\\\\\\\\\\\"),\\\\char-class([range(123,123),range(125,125)])]),sort(\\\"TagString\\\"),\\\\char-class([range(1,122),range(124,124),range(126,1114111)])}))\"),lit(\":\"),iter(\\char-class([range(48,57)])),\\char-class([range(0,0)])],{tag(\"holeType\"(\\iter-star(alt({seq([lit(\"\\\\\"),\\char-class([range(123,123),range(125,125)])]),lex(\"TagString\"),\\char-class([range(1,122),range(124,124),range(126,1114111)])}))))})", RascalValueFactory.Production);
private static final IConstructor cHJvZChsYWJlbCgiJE1ldGFIb2xlIixzb3J0KCJNb2R1bGVQYXJhbWV0ZXJzIikpLFtcY2hhci1jbGFzcyhbcmFuZ2UoMCwwKV0pLGxpdCgic29ydChcIk1vZHVsZVBhcmFtZXRlcnNcIikiKSxsaXQoIjoiKSxpdGVyKFxjaGFyLWNsYXNzKFtyYW5nZSg0OCw1NyldKSksXGNoYXItY2xhc3MoW3JhbmdlKDAsMCldKV0se3RhZygiaG9sZVR5cGUiKHNvcnQoIk1vZHVsZVBhcmFtZXRlcnMiKSkpfSk00 = (IConstructor) _read("prod(label(\"$MetaHole\",sort(\"ModuleParameters\")),[\\char-class([range(0,0)]),lit(\"sort(\\\"ModuleParameters\\\")\"),lit(\":\"),iter(\\char-class([range(48,57)])),\\char-class([range(0,0)])],{tag(\"holeType\"(sort(\"ModuleParameters\")))})", RascalValueFactory.Production);
@@ -3726,7 +3743,6 @@ protected IntegerList getFilteredParents(int childId) {
private static final IConstructor cHJvZChsaXQoIm1vZHVsZXMiKSxbXGNoYXItY2xhc3MoW3JhbmdlKDEwOSwxMDkpXSksXGNoYXItY2xhc3MoW3JhbmdlKDExMSwxMTEpXSksXGNoYXItY2xhc3MoW3JhbmdlKDEwMCwxMDApXSksXGNoYXItY2xhc3MoW3JhbmdlKDExNywxMTcpXSksXGNoYXItY2xhc3MoW3JhbmdlKDEwOCwxMDgpXSksXGNoYXItY2xhc3MoW3JhbmdlKDEwMSwxMDEpXSksXGNoYXItY2xhc3MoW3JhbmdlKDExNSwxMTUpXSldLHt9KQ0000 = (IConstructor) _read("prod(lit(\"modules\"),[\\char-class([range(109,109)]),\\char-class([range(111,111)]),\\char-class([range(100,100)]),\\char-class([range(117,117)]),\\char-class([range(108,108)]),\\char-class([range(101,101)]),\\char-class([range(115,115)])],{})", RascalValueFactory.Production);
private static final IConstructor cHJvZChsYWJlbCgiZXh0ZW5kIixzb3J0KCJJbXBvcnQiKSksW2xpdCgiZXh0ZW5kIiksbGF5b3V0cygiTEFZT1VUTElTVCIpLGxhYmVsKCJtb2R1bGUiLHNvcnQoIkltcG9ydGVkTW9kdWxlIikpLGxheW91dHMoIkxBWU9VVExJU1QiKSxsaXQoIjsiKV0se30p = (IConstructor) _read("prod(label(\"extend\",sort(\"Import\")),[lit(\"extend\"),layouts(\"LAYOUTLIST\"),label(\"module\",sort(\"ImportedModule\")),layouts(\"LAYOUTLIST\"),lit(\";\")],{})", RascalValueFactory.Production);
private static final IConstructor cHJvZChsYWJlbCgiJE1ldGFIb2xlIixzb3J0KCJTdHJpbmdUYWlsIikpLFtcY2hhci1jbGFzcyhbcmFuZ2UoMCwwKV0pLGxpdCgic29ydChcIlN0cmluZ1RhaWxcIikiKSxsaXQoIjoiKSxpdGVyKFxjaGFyLWNsYXNzKFtyYW5nZSg0OCw1NyldKSksXGNoYXItY2xhc3MoW3JhbmdlKDAsMCldKV0se3RhZygiaG9sZVR5cGUiKHNvcnQoIlN0cmluZ1RhaWwiKSkpfSk00 = (IConstructor) _read("prod(label(\"$MetaHole\",sort(\"StringTail\")),[\\char-class([range(0,0)]),lit(\"sort(\\\"StringTail\\\")\"),lit(\":\"),iter(\\char-class([range(48,57)])),\\char-class([range(0,0)])],{tag(\"holeType\"(sort(\"StringTail\")))})", RascalValueFactory.Production);
- private static final IConstructor cHJvZChsYWJlbCgibGV4aWNhbCIsc29ydCgiU3ludGF4RGVmaW5pdGlvbiIpKSxbbGl0KCJsZXhpY2FsIiksbGF5b3V0cygiTEFZT1VUTElTVCIpLGxhYmVsKCJkZWZpbmVkIixzb3J0KCJTeW0iKSksbGF5b3V0cygiTEFZT1VUTElTVCIpLGxpdCgiPSIpLGxheW91dHMoIkxBWU9VVExJU1QiKSxsYWJlbCgicHJvZHVjdGlvbiIsc29ydCgiUHJvZCIpKSxsYXlvdXRzKCJMQVlPVVRMSVNUIiksbGl0KCI7IildLHt0YWcoIkZvbGRhYmxlIigpKX0p = (IConstructor) _read("prod(label(\"lexical\",sort(\"SyntaxDefinition\")),[lit(\"lexical\"),layouts(\"LAYOUTLIST\"),label(\"defined\",sort(\"Sym\")),layouts(\"LAYOUTLIST\"),lit(\"=\"),layouts(\"LAYOUTLIST\"),label(\"production\",sort(\"Prod\")),layouts(\"LAYOUTLIST\"),lit(\";\")],{tag(\"Foldable\"())})", RascalValueFactory.Production);
private static final IConstructor cHJvZChsaXQoIlxcaXRlci1zdGFyKGFsdCh7c2VxKFtsaXQoXCJcXFxcXCIpLFxcY2hhci1jbGFzcyhbcmFuZ2UoMTIzLDEyMykscmFuZ2UoMTI1LDEyNSldKV0pLHNvcnQoXCJUYWdTdHJpbmdcIiksXFxjaGFyLWNsYXNzKFtyYW5nZSgxLDEyMikscmFuZ2UoMTI0LDEyNCkscmFuZ2UoMTI2LDExMTQxMTEpXSl9KSkiKSxbXGNoYXItY2xhc3MoW3JhbmdlKDkyLDkyKV0pLFxjaGFyLWNsYXNzKFtyYW5nZSgxMDUsMTA1KV0pLFxjaGFyLWNsYXNzKFtyYW5nZSgxMTYsMTE2KV0pLFxjaGFyLWNsYXNzKFtyYW5nZSgxMDEsMTAxKV0pLFxjaGFyLWNsYXNzKFtyYW5nZSgxMTQsMTE0KV0pLFxjaGFyLWNsYXNzKFtyYW5nZSg0NSw0NSldKSxcY2hhci1jbGFzcyhbcmFuZ2UoMTE1LDExNSldKSxcY2hhci1jbGFzcyhbcmFuZ2UoMTE2LDExNildKSxcY2hhci1jbGFzcyhbcmFuZ2UoOTcsOTcpXSksXGNoYXItY2xhc3MoW3JhbmdlKDExNCwxMTQpXSksXGNoYXItY2xhc3MoW3JhbmdlKDQwLDQwKV0pLFxjaGFyLWNsYXNzKFtyYW5nZSg5Nyw5NyldKSxcY2hhci1jbGFzcyhbcmFuZ2UoMTA4LDEwOCldKSxcY2hhci1jbGFzcyhbcmFuZ2UoMTE2LDExNildKSxcY2hhci1jbGFzcyhbcmFuZ2UoNDAsNDApXSksXGNoYXItY2xhc3MoW3JhbmdlKDEyMywxMjMpXSksXGNoYXItY2xhc3MoW3JhbmdlKDExNSwxMTUpXSksXGNoYXItY2xhc3MoW3JhbmdlKDEwMSwxMDEpXSksXGNoYXItY2xhc3MoW3JhbmdlKDExMywxMTMpXSksXGNoYXItY2xhc3MoW3JhbmdlKDQwLDQwKV0pLFxjaGFyLWNsYXNzKFtyYW5nZSg5MSw5MSldKSxcY2hhci1jbGFzcyhbcmFuZ2UoMTA4LDEwOCldKSxcY2hhci1jbGFzcyhbcmFuZ2UoMTA1LDEwNSldKSxcY2hhci1jbGFzcyhbcmFuZ2UoMTE2LDExNildKSxcY2hhci1jbGFzcyhbcmFuZ2UoNDAsNDApXSksXGNoYXItY2xhc3MoW3JhbmdlKDM0LDM0KV0pLFxjaGFyLWNsYXNzKFtyYW5nZSg5Miw5MildKSxcY2hhci1jbGFzcyhbcmFuZ2UoOTIsOTIpXSksXGNoYXItY2xhc3MoW3JhbmdlKDM0LDM0KV0pLFxjaGFyLWNsYXNzKFtyYW5nZSg0MSw0MSldKSxcY2hhci1jbGFzcyhbcmFuZ2UoNDQsNDQpXSksXGNoYXItY2xhc3MoW3JhbmdlKDkyLDkyKV0pLFxjaGFyLWNsYXNzKFtyYW5nZSg5OSw5OSldKSxcY2hhci1jbGFzcyhbcmFuZ2UoMTA0LDEwNCldKSxcY2hhci1jbGFzcyhbcmFuZ2UoOTcsOTcpXSksXGNoYXItY2xhc3MoW3JhbmdlKDExNCwxMTQpXSksXGNoYXItY2xhc3MoW3JhbmdlKDQ1LDQ1KV0pLFxjaGFyLWNsYXNzKFtyYW5nZSg5OSw5OSldKSxcY2hhci1jbGFzcyhbcmFuZ2UoMTA4LDEwOCldKSxcY2hhci1jbGFzcyhbcmFuZ2UoOTcsOTcpXSksXGNoYXItY2xhc3MoW3JhbmdlKDExNSwxMTUpXSksXGNoYXItY2xhc3MoW3JhbmdlKDExNSwxMTUpXSksXGNoYXItY2xhc3MoW3JhbmdlKDQwLDQwKV0pLFxjaGFyLWNsYXNzKFtyYW5nZSg5MSw5MSldKSxcY2hhci1jbGFzcyhbcmFuZ2UoMTE0LDExNCldKSxcY2hhci1jbGFzcyhbcmFuZ2UoOTcsOTcpXSksXGNoYXItY2xhc3MoW3JhbmdlKDExMCwxMTApXSksXGNoYXItY2xhc3MoW3JhbmdlKDEwMywxMDMpXSksXGNoYXItY2xhc3MoW3JhbmdlKDEwMSwxMDEpXSksXGNoYXItY2xhc3MoW3JhbmdlKDQwLDQwKV0pLFxjaGFyLWNsYXNzKFtyYW5nZSg0OSw0OSldKSxcY2hhci1jbGFzcyhbcmFuZ2UoNTAsNTApXSksXGNoYXItY2xhc3MoW3JhbmdlKDUxLDUxKV0pLFxjaGFyLWNsYXNzKFtyYW5nZSg0NCw0NCldKSxcY2hhci1jbGFzcyhbcmFuZ2UoNDksNDkpXSksXGNoYXItY2xhc3MoW3JhbmdlKDUwLDUwKV0pLFxjaGFyLWNsYXNzKFtyYW5nZSg1MSw1MSldKSxcY2hhci1jbGFzcyhbcmFuZ2UoNDEsNDEpXSksXGNoYXItY2xhc3MoW3JhbmdlKDQ0LDQ0KV0pLFxjaGFyLWNsYXNzKFtyYW5nZSgxMTQsMTE0KV0pLFxjaGFyLWNsYXNzKFtyYW5nZSg5Nyw5NyldKSxcY2hhci1jbGFzcyhbcmFuZ2UoMTEwLDExMCldKSxcY2hhci1jbGFzcyhbcmFuZ2UoMTAzLDEwMyldKSxcY2hhci1jbGFzcyhbcmFuZ2UoMTAxLDEwMSldKSxcY2hhci1jbGFzcyhbcmFuZ2UoNDAsNDApXSksXGNoYXItY2xhc3MoW3JhbmdlKDQ5LDQ5KV0pLFxjaGFyLWNsYXNzKFtyYW5nZSg1MCw1MCldKSxcY2hhci1jbGFzcyhbcmFuZ2UoNTMsNTMpXSksXGNoYXItY2xhc3MoW3JhbmdlKDQ0LDQ0KV0pLFxjaGFyLWNsYXNzKFtyYW5nZSg0OSw0OSldKSxcY2hhci1jbGFzcyhbcmFuZ2UoNTAsNTApXSksXGNoYXItY2xhc3MoW3JhbmdlKDUzLDUzKV0pLFxjaGFyLWNsYXNzKFtyYW5nZSg0MSw0MSldKSxcY2hhci1jbGFzcyhbcmFuZ2UoOTMsOTMpXSksXGNoYXItY2xhc3MoW3JhbmdlKDQxLDQxKV0pLFxjaGFyLWNsYXNzKFtyYW5nZSg5Myw5MyldKSxcY2hhci1jbGFzcyhbcmFuZ2UoNDEsNDEpXSksXGNoYXItY2xhc3MoW3JhbmdlKDQ0LDQ0KV0pLFxjaGFyLWNsYXNzKFtyYW5nZSgxMTUsMTE1KV0pLFxjaGFyLWNsYXNzKFtyYW5nZSgxMTEsMTExKV0pLFxjaGFyLWNsYXNzKFtyYW5nZSgxMTQsMTE0KV0pLFxjaGFyLWNsYXNzKFtyYW5nZSgxMTYsMTE2KV0pLFxjaGFyLWNsYXNzKFtyYW5nZSg0MCw0MCldKSxcY2hhci1jbGFzcyhbcmFuZ2UoMzQsMzQpXSksXGNoYXItY2xhc3MoW3JhbmdlKDg0LDg0KV0pLFxjaGFyLWNsYXNzKFtyYW5nZSg5Nyw5NyldKSxcY2hhci1jbGFzcyhbcmFuZ2UoMTAzLDEwMyldKSxcY2hhci1jbGFzcyhbcmFuZ2UoODMsODMpXSksXGNoYXItY2xhc3MoW3JhbmdlKDExNiwxMTYpXSksXGNoYXItY2xhc3MoW3JhbmdlKDExNCwxMTQpXSksXGNoYXItY2xhc3MoW3JhbmdlKDEwNSwxMDUpXSksXGNoYXItY2xhc3MoW3JhbmdlKDExMCwxMTApXSksXGNoYXItY2xhc3MoW3JhbmdlKDEwMywxMDMpXSksXGNoYXItY2xhc3MoW3JhbmdlKDM0LDM0KV0pLFxjaGFyLWNsYXNzKFtyYW5nZSg0MSw0MSldKSxcY2hhci1jbGFzcyhbcmFuZ2UoNDQsNDQpXSksXGNoYXItY2xhc3MoW3JhbmdlKDkyLDkyKV0pLFxjaGFyLWNsYXNzKFtyYW5nZSg5OSw5OSldKSxcY2hhci1jbGFzcyhbcmFuZ2UoMTA0LDEwNCldKSxcY2hhci1jbGFzcyhbcmFuZ2UoOTcsOTcpXSksXGNoYXItY2xhc3MoW3JhbmdlKDExNCwxMTQpXSksXGNoYXItY2xhc3MoW3JhbmdlKDQ1LDQ1KV0pLFxjaGFyLWNsYXNzKFtyYW5nZSg5OSw5OSldKSxcY2hhci1jbGFzcyhbcmFuZ2UoMTA4LDEwOCldKSxcY2hhci1jbGFzcyhbcmFuZ2UoOTcsOTcpXSksXGNoYXItY2xhc3MoW3JhbmdlKDExNSwxMTUpXSksXGNoYXItY2xhc3MoW3JhbmdlKDExNSwxMTUpXSksXGNoYXItY2xhc3MoW3JhbmdlKDQwLDQwKV0pLFxjaGFyLWNsYXNzKFtyYW5nZSg5MSw5MSldKSxcY2hhci1jbGFzcyhbcmFuZ2UoMTE0LDExNCldKSxcY2hhci1jbGFzcyhbcmFuZ2UoOTcsOTcpXSksXGNoYXItY2xhc3MoW3JhbmdlKDExMCwxMTApXSksXGNoYXItY2xhc3MoW3JhbmdlKDEwMywxMDMpXSksXGNoYXItY2xhc3MoW3JhbmdlKDEwMSwxMDEpXSksXGNoYXItY2xhc3MoW3JhbmdlKDQwLDQwKV0pLFxjaGFyLWNsYXNzKFtyYW5nZSg0OSw0OSldKSxcY2hhci1jbGFzcyhbcmFuZ2UoNDQsNDQpXSksXGNoYXItY2xhc3MoW3JhbmdlKDQ5LDQ5KV0pLFxjaGFyLWNsYXNzKFtyYW5nZSg1MCw1MCldKSxcY2hhci1jbGFzcyhbcmFuZ2UoNTAsNTApXSksXGNoYXItY2xhc3MoW3JhbmdlKDQxLDQxKV0pLFxjaGFyLWNsYXNzKFtyYW5nZSg0NCw0NCldKSxcY2hhci1jbGFzcyhbcmFuZ2UoMTE0LDExNCldKSxcY2hhci1jbGFzcyhbcmFuZ2UoOTcsOTcpXSksXGNoYXItY2xhc3MoW3JhbmdlKDExMCwxMTApXSksXGNoYXItY2xhc3MoW3JhbmdlKDEwMywxMDMpXSksXGNoYXItY2xhc3MoW3JhbmdlKDEwMSwxMDEpXSksXGNoYXItY2xhc3MoW3JhbmdlKDQwLDQwKV0pLFxjaGFyLWNsYXNzKFtyYW5nZSg0OSw0OSldKSxcY2hhci1jbGFzcyhbcmFuZ2UoNTAsNTApXSksXGNoYXItY2xhc3MoW3JhbmdlKDUyLDUyKV0pLFxjaGFyLWNsYXNzKFtyYW5nZSg0NCw0NCldKSxcY2hhci1jbGFzcyhbcmFuZ2UoNDksNDkpXSksXGNoYXItY2xhc3MoW3JhbmdlKDUwLDUwKV0pLFxjaGFyLWNsYXNzKFtyYW5nZSg1Miw1MildKSxcY2hhci1jbGFzcyhbcmFuZ2UoNDEsNDEpXSksXGNoYXItY2xhc3MoW3JhbmdlKDQ0LDQ0KV0pLFxjaGFyLWNsYXNzKFtyYW5nZSgxMTQsMTE0KV0pLFxjaGFyLWNsYXNzKFtyYW5nZSg5Nyw5NyldKSxcY2hhci1jbGFzcyhbcmFuZ2UoMTEwLDExMCldKSxcY2hhci1jbGFzcyhbcmFuZ2UoMTAzLDEwMyldKSxcY2hhci1jbGFzcyhbcmFuZ2UoMTAxLDEwMSldKSxcY2hhci1jbGFzcyhbcmFuZ2UoNDAsNDApXSksXGNoYXItY2xhc3MoW3JhbmdlKDQ5LDQ5KV0pLFxjaGFyLWNsYXNzKFtyYW5nZSg1MCw1MCldKSxcY2hhci1jbGFzcyhbcmFuZ2UoNTQsNTQpXSksXGNoYXItY2xhc3MoW3JhbmdlKDQ0LDQ0KV0pLFxjaGFyLWNsYXNzKFtyYW5nZSg0OSw0OSldKSxcY2hhci1jbGFzcyhbcmFuZ2UoNDksNDkpXSksXGNoYXItY2xhc3MoW3JhbmdlKDQ5LDQ5KV0pLFxjaGFyLWNsYXNzKFtyYW5nZSg1Miw1MildKSxcY2hhci1jbGFzcyhbcmFuZ2UoNDksNDkpXSksXGNoYXItY2xhc3MoW3JhbmdlKDQ5LDQ5KV0pLFxjaGFyLWNsYXNzKFtyYW5nZSg0OSw0OSldKSxcY2hhci1jbGFzcyhbcmFuZ2UoNDEsNDEpXSksXGNoYXItY2xhc3MoW3JhbmdlKDkzLDkzKV0pLFxjaGFyLWNsYXNzKFtyYW5nZSg0MSw0MSldKSxcY2hhci1jbGFzcyhbcmFuZ2UoMTI1LDEyNSldKSxcY2hhci1jbGFzcyhbcmFuZ2UoNDEsNDEpXSksXGNoYXItY2xhc3MoW3JhbmdlKDQxLDQxKV0pXSx7fSk00 = (IConstructor) _read("prod(lit(\"\\\\iter-star(alt({seq([lit(\\\"\\\\\\\\\\\"),\\\\char-class([range(123,123),range(125,125)])]),sort(\\\"TagString\\\"),\\\\char-class([range(1,122),range(124,124),range(126,1114111)])}))\"),[\\char-class([range(92,92)]),\\char-class([range(105,105)]),\\char-class([range(116,116)]),\\char-class([range(101,101)]),\\char-class([range(114,114)]),\\char-class([range(45,45)]),\\char-class([range(115,115)]),\\char-class([range(116,116)]),\\char-class([range(97,97)]),\\char-class([range(114,114)]),\\char-class([range(40,40)]),\\char-class([range(97,97)]),\\char-class([range(108,108)]),\\char-class([range(116,116)]),\\char-class([range(40,40)]),\\char-class([range(123,123)]),\\char-class([range(115,115)]),\\char-class([range(101,101)]),\\char-class([range(113,113)]),\\char-class([range(40,40)]),\\char-class([range(91,91)]),\\char-class([range(108,108)]),\\char-class([range(105,105)]),\\char-class([range(116,116)]),\\char-class([range(40,40)]),\\char-class([range(34,34)]),\\char-class([range(92,92)]),\\char-class([range(92,92)]),\\char-class([range(34,34)]),\\char-class([range(41,41)]),\\char-class([range(44,44)]),\\char-class([range(92,92)]),\\char-class([range(99,99)]),\\char-class([range(104,104)]),\\char-class([range(97,97)]),\\char-class([range(114,114)]),\\char-class([range(45,45)]),\\char-class([range(99,99)]),\\char-class([range(108,108)]),\\char-class([range(97,97)]),\\char-class([range(115,115)]),\\char-class([range(115,115)]),\\char-class([range(40,40)]),\\char-class([range(91,91)]),\\char-class([range(114,114)]),\\char-class([range(97,97)]),\\char-class([range(110,110)]),\\char-class([range(103,103)]),\\char-class([range(101,101)]),\\char-class([range(40,40)]),\\char-class([range(49,49)]),\\char-class([range(50,50)]),\\char-class([range(51,51)]),\\char-class([range(44,44)]),\\char-class([range(49,49)]),\\char-class([range(50,50)]),\\char-class([range(51,51)]),\\char-class([range(41,41)]),\\char-class([range(44,44)]),\\char-class([range(114,114)]),\\char-class([range(97,97)]),\\char-class([range(110,110)]),\\char-class([range(103,103)]),\\char-class([range(101,101)]),\\char-class([range(40,40)]),\\char-class([range(49,49)]),\\char-class([range(50,50)]),\\char-class([range(53,53)]),\\char-class([range(44,44)]),\\char-class([range(49,49)]),\\char-class([range(50,50)]),\\char-class([range(53,53)]),\\char-class([range(41,41)]),\\char-class([range(93,93)]),\\char-class([range(41,41)]),\\char-class([range(93,93)]),\\char-class([range(41,41)]),\\char-class([range(44,44)]),\\char-class([range(115,115)]),\\char-class([range(111,111)]),\\char-class([range(114,114)]),\\char-class([range(116,116)]),\\char-class([range(40,40)]),\\char-class([range(34,34)]),\\char-class([range(84,84)]),\\char-class([range(97,97)]),\\char-class([range(103,103)]),\\char-class([range(83,83)]),\\char-class([range(116,116)]),\\char-class([range(114,114)]),\\char-class([range(105,105)]),\\char-class([range(110,110)]),\\char-class([range(103,103)]),\\char-class([range(34,34)]),\\char-class([range(41,41)]),\\char-class([range(44,44)]),\\char-class([range(92,92)]),\\char-class([range(99,99)]),\\char-class([range(104,104)]),\\char-class([range(97,97)]),\\char-class([range(114,114)]),\\char-class([range(45,45)]),\\char-class([range(99,99)]),\\char-class([range(108,108)]),\\char-class([range(97,97)]),\\char-class([range(115,115)]),\\char-class([range(115,115)]),\\char-class([range(40,40)]),\\char-class([range(91,91)]),\\char-class([range(114,114)]),\\char-class([range(97,97)]),\\char-class([range(110,110)]),\\char-class([range(103,103)]),\\char-class([range(101,101)]),\\char-class([range(40,40)]),\\char-class([range(49,49)]),\\char-class([range(44,44)]),\\char-class([range(49,49)]),\\char-class([range(50,50)]),\\char-class([range(50,50)]),\\char-class([range(41,41)]),\\char-class([range(44,44)]),\\char-class([range(114,114)]),\\char-class([range(97,97)]),\\char-class([range(110,110)]),\\char-class([range(103,103)]),\\char-class([range(101,101)]),\\char-class([range(40,40)]),\\char-class([range(49,49)]),\\char-class([range(50,50)]),\\char-class([range(52,52)]),\\char-class([range(44,44)]),\\char-class([range(49,49)]),\\char-class([range(50,50)]),\\char-class([range(52,52)]),\\char-class([range(41,41)]),\\char-class([range(44,44)]),\\char-class([range(114,114)]),\\char-class([range(97,97)]),\\char-class([range(110,110)]),\\char-class([range(103,103)]),\\char-class([range(101,101)]),\\char-class([range(40,40)]),\\char-class([range(49,49)]),\\char-class([range(50,50)]),\\char-class([range(54,54)]),\\char-class([range(44,44)]),\\char-class([range(49,49)]),\\char-class([range(49,49)]),\\char-class([range(49,49)]),\\char-class([range(52,52)]),\\char-class([range(49,49)]),\\char-class([range(49,49)]),\\char-class([range(49,49)]),\\char-class([range(41,41)]),\\char-class([range(93,93)]),\\char-class([range(41,41)]),\\char-class([range(125,125)]),\\char-class([range(41,41)]),\\char-class([range(41,41)])],{})", RascalValueFactory.Production);
private static final IConstructor cHJvZChsaXQoInNvcnQoXCJDbGFzc1wiKSIpLFtcY2hhci1jbGFzcyhbcmFuZ2UoMTE1LDExNSldKSxcY2hhci1jbGFzcyhbcmFuZ2UoMTExLDExMSldKSxcY2hhci1jbGFzcyhbcmFuZ2UoMTE0LDExNCldKSxcY2hhci1jbGFzcyhbcmFuZ2UoMTE2LDExNildKSxcY2hhci1jbGFzcyhbcmFuZ2UoNDAsNDApXSksXGNoYXItY2xhc3MoW3JhbmdlKDM0LDM0KV0pLFxjaGFyLWNsYXNzKFtyYW5nZSg2Nyw2NyldKSxcY2hhci1jbGFzcyhbcmFuZ2UoMTA4LDEwOCldKSxcY2hhci1jbGFzcyhbcmFuZ2UoOTcsOTcpXSksXGNoYXItY2xhc3MoW3JhbmdlKDExNSwxMTUpXSksXGNoYXItY2xhc3MoW3JhbmdlKDExNSwxMTUpXSksXGNoYXItY2xhc3MoW3JhbmdlKDM0LDM0KV0pLFxjaGFyLWNsYXNzKFtyYW5nZSg0MSw0MSldKV0se30p = (IConstructor) _read("prod(lit(\"sort(\\\"Class\\\")\"),[\\char-class([range(115,115)]),\\char-class([range(111,111)]),\\char-class([range(114,114)]),\\char-class([range(116,116)]),\\char-class([range(40,40)]),\\char-class([range(34,34)]),\\char-class([range(67,67)]),\\char-class([range(108,108)]),\\char-class([range(97,97)]),\\char-class([range(115,115)]),\\char-class([range(115,115)]),\\char-class([range(34,34)]),\\char-class([range(41,41)])],{})", RascalValueFactory.Production);
private static final IConstructor cHJvZChsYWJlbCgic2V0Iixzb3J0KCJDb21wcmVoZW5zaW9uIikpLFtsaXQoInsiKSxsYXlvdXRzKCJMQVlPVVRMSVNUIiksbGFiZWwoInJlc3VsdHMiLFxpdGVyLXNlcHMoc29ydCgiRXhwcmVzc2lvbiIpLFtsYXlvdXRzKCJMQVlPVVRMSVNUIiksbGl0KCIsIiksbGF5b3V0cygiTEFZT1VUTElTVCIpXSkpLGxheW91dHMoIkxBWU9VVExJU1QiKSxsaXQoInwiKSxsYXlvdXRzKCJMQVlPVVRMSVNUIiksbGFiZWwoImdlbmVyYXRvcnMiLFxpdGVyLXNlcHMoc29ydCgiRXhwcmVzc2lvbiIpLFtsYXlvdXRzKCJMQVlPVVRMSVNUIiksbGl0KCIsIiksbGF5b3V0cygiTEFZT1VUTElTVCIpXSkpLGxheW91dHMoIkxBWU9VVExJU1QiKSxsaXQoIn0iKV0se3RhZygiYnJlYWthYmxlIigie3Jlc3VsdHMsZ2VuZXJhdG9yc30iKSl9KQ0000 = (IConstructor) _read("prod(label(\"set\",sort(\"Comprehension\")),[lit(\"{\"),layouts(\"LAYOUTLIST\"),label(\"results\",\\iter-seps(sort(\"Expression\"),[layouts(\"LAYOUTLIST\"),lit(\",\"),layouts(\"LAYOUTLIST\")])),layouts(\"LAYOUTLIST\"),lit(\"|\"),layouts(\"LAYOUTLIST\"),label(\"generators\",\\iter-seps(sort(\"Expression\"),[layouts(\"LAYOUTLIST\"),lit(\",\"),layouts(\"LAYOUTLIST\")])),layouts(\"LAYOUTLIST\"),lit(\"}\")],{tag(\"breakable\"(\"{results,generators}\"))})", RascalValueFactory.Production);
@@ -3803,7 +3819,6 @@ protected IntegerList getFilteredParents(int childId) {
private static final IConstructor cHJvZChsYWJlbCgiJE1ldGFIb2xlIixzb3J0KCJLaW5kIikpLFtcY2hhci1jbGFzcyhbcmFuZ2UoMCwwKV0pLGxpdCgic29ydChcIktpbmRcIikiKSxsaXQoIjoiKSxpdGVyKFxjaGFyLWNsYXNzKFtyYW5nZSg0OCw1NyldKSksXGNoYXItY2xhc3MoW3JhbmdlKDAsMCldKV0se3RhZygiaG9sZVR5cGUiKHNvcnQoIktpbmQiKSkpfSk00 = (IConstructor) _read("prod(label(\"$MetaHole\",sort(\"Kind\")),[\\char-class([range(0,0)]),lit(\"sort(\\\"Kind\\\")\"),lit(\":\"),iter(\\char-class([range(48,57)])),\\char-class([range(0,0)])],{tag(\"holeType\"(sort(\"Kind\")))})", RascalValueFactory.Production);
private static final IConstructor cHJvZChsYWJlbCgiJE1ldGFIb2xlIixsZXgoIkJvb2xlYW5MaXRlcmFsIikpLFtcY2hhci1jbGFzcyhbcmFuZ2UoMCwwKV0pLGxpdCgic29ydChcIkJvb2xlYW5MaXRlcmFsXCIpIiksbGl0KCI6IiksaXRlcihcY2hhci1jbGFzcyhbcmFuZ2UoNDgsNTcpXSkpLFxjaGFyLWNsYXNzKFtyYW5nZSgwLDApXSldLHt0YWcoImhvbGVUeXBlIihsZXgoIkJvb2xlYW5MaXRlcmFsIikpKX0p = (IConstructor) _read("prod(label(\"$MetaHole\",lex(\"BooleanLiteral\")),[\\char-class([range(0,0)]),lit(\"sort(\\\"BooleanLiteral\\\")\"),lit(\":\"),iter(\\char-class([range(48,57)])),\\char-class([range(0,0)])],{tag(\"holeType\"(lex(\"BooleanLiteral\")))})", RascalValueFactory.Production);
private static final IConstructor cHJvZChsYWJlbCgiJE1ldGFIb2xlIixzb3J0KCJBc3NpZ25hYmxlIikpLFtcY2hhci1jbGFzcyhbcmFuZ2UoMCwwKV0pLGxpdCgiXFxpdGVyLXNlcHMoc29ydChcIkFzc2lnbmFibGVcIiksW2xpdChcIixcIildKSIpLGxpdCgiOiIpLGl0ZXIoXGNoYXItY2xhc3MoW3JhbmdlKDQ4LDU3KV0pKSxcY2hhci1jbGFzcyhbcmFuZ2UoMCwwKV0pXSx7dGFnKCJob2xlVHlwZSIoXGl0ZXItc2Vwcyhzb3J0KCJBc3NpZ25hYmxlIiksW2xheW91dHMoIkxBWU9VVExJU1QiKSxsaXQoIiwiKSxsYXlvdXRzKCJMQVlPVVRMSVNUIildKSkpfSk00 = (IConstructor) _read("prod(label(\"$MetaHole\",sort(\"Assignable\")),[\\char-class([range(0,0)]),lit(\"\\\\iter-seps(sort(\\\"Assignable\\\"),[lit(\\\",\\\")])\"),lit(\":\"),iter(\\char-class([range(48,57)])),\\char-class([range(0,0)])],{tag(\"holeType\"(\\iter-seps(sort(\"Assignable\"),[layouts(\"LAYOUTLIST\"),lit(\",\"),layouts(\"LAYOUTLIST\")])))})", RascalValueFactory.Production);
- private static final IConstructor cHJvZChsYWJlbCgibGF5b3V0Iixzb3J0KCJTeW50YXhEZWZpbml0aW9uIikpLFtsYWJlbCgidmlzIixzb3J0KCJWaXNpYmlsaXR5IikpLGxheW91dHMoIkxBWU9VVExJU1QiKSxsaXQoImxheW91dCIpLGxheW91dHMoIkxBWU9VVExJU1QiKSxsYWJlbCgiZGVmaW5lZCIsc29ydCgiU3ltIikpLGxheW91dHMoIkxBWU9VVExJU1QiKSxsaXQoIj0iKSxsYXlvdXRzKCJMQVlPVVRMSVNUIiksbGFiZWwoInByb2R1Y3Rpb24iLHNvcnQoIlByb2QiKSksbGF5b3V0cygiTEFZT1VUTElTVCIpLGxpdCgiOyIpXSx7dGFnKCJGb2xkYWJsZSIoKSl9KQ0000 = (IConstructor) _read("prod(label(\"layout\",sort(\"SyntaxDefinition\")),[label(\"vis\",sort(\"Visibility\")),layouts(\"LAYOUTLIST\"),lit(\"layout\"),layouts(\"LAYOUTLIST\"),label(\"defined\",sort(\"Sym\")),layouts(\"LAYOUTLIST\"),lit(\"=\"),layouts(\"LAYOUTLIST\"),label(\"production\",sort(\"Prod\")),layouts(\"LAYOUTLIST\"),lit(\";\")],{tag(\"Foldable\"())})", RascalValueFactory.Production);
private static final IConstructor cHJvZChsYWJlbCgiJE1ldGFIb2xlIixcY2hhci1jbGFzcyhbcmFuZ2UoNDgsNTcpXSkpLFtcY2hhci1jbGFzcyhbcmFuZ2UoMCwwKV0pLGxpdCgiXFxpdGVyLXN0YXIoXFxjaGFyLWNsYXNzKFtyYW5nZSg0OCw1NyldKSkiKSxsaXQoIjoiKSxpdGVyKFxjaGFyLWNsYXNzKFtyYW5nZSg0OCw1NyldKSksXGNoYXItY2xhc3MoW3JhbmdlKDAsMCldKV0se3RhZygiaG9sZVR5cGUiKFxpdGVyLXN0YXIoXGNoYXItY2xhc3MoW3JhbmdlKDQ4LDU3KV0pKSkpfSk00 = (IConstructor) _read("prod(label(\"$MetaHole\",\\char-class([range(48,57)])),[\\char-class([range(0,0)]),lit(\"\\\\iter-star(\\\\char-class([range(48,57)]))\"),lit(\":\"),iter(\\char-class([range(48,57)])),\\char-class([range(0,0)])],{tag(\"holeType\"(\\iter-star(\\char-class([range(48,57)]))))})", RascalValueFactory.Production);
private static final IConstructor cHJvZChsYWJlbCgiJE1ldGFIb2xlIixzb3J0KCJFeHByZXNzaW9uIikpLFtcY2hhci1jbGFzcyhbcmFuZ2UoMCwwKV0pLGxpdCgiXFxpdGVyLXN0YXItc2Vwcyhzb3J0KFwiRXhwcmVzc2lvblwiKSxbbGl0KFwiLFwiKV0pIiksbGl0KCI6IiksaXRlcihcY2hhci1jbGFzcyhbcmFuZ2UoNDgsNTcpXSkpLFxjaGFyLWNsYXNzKFtyYW5nZSgwLDApXSldLHt0YWcoImhvbGVUeXBlIihcaXRlci1zdGFyLXNlcHMoc29ydCgiRXhwcmVzc2lvbiIpLFtsYXlvdXRzKCJMQVlPVVRMSVNUIiksbGl0KCIsIiksbGF5b3V0cygiTEFZT1VUTElTVCIpXSkpKX0p = (IConstructor) _read("prod(label(\"$MetaHole\",sort(\"Expression\")),[\\char-class([range(0,0)]),lit(\"\\\\iter-star-seps(sort(\\\"Expression\\\"),[lit(\\\",\\\")])\"),lit(\":\"),iter(\\char-class([range(48,57)])),\\char-class([range(0,0)])],{tag(\"holeType\"(\\iter-star-seps(sort(\"Expression\"),[layouts(\"LAYOUTLIST\"),lit(\",\"),layouts(\"LAYOUTLIST\")])))})", RascalValueFactory.Production);
private static final IConstructor cHJvZChsaXQoIlwiIiksW1xjaGFyLWNsYXNzKFtyYW5nZSgzNCwzNCldKV0se30p = (IConstructor) _read("prod(lit(\"\\\"\"),[\\char-class([range(34,34)])],{})", RascalValueFactory.Production);
@@ -3861,13 +3876,14 @@ protected IntegerList getFilteredParents(int childId) {
private static final IConstructor cHJvZChsaXQoInJhdCIpLFtcY2hhci1jbGFzcyhbcmFuZ2UoMTE0LDExNCldKSxcY2hhci1jbGFzcyhbcmFuZ2UoOTcsOTcpXSksXGNoYXItY2xhc3MoW3JhbmdlKDExNiwxMTYpXSldLHt9KQ0000 = (IConstructor) _read("prod(lit(\"rat\"),[\\char-class([range(114,114)]),\\char-class([range(97,97)]),\\char-class([range(116,116)])],{})", RascalValueFactory.Production);
private static final IConstructor cHJvZChsaXQoInRocm93cyIpLFtcY2hhci1jbGFzcyhbcmFuZ2UoMTE2LDExNildKSxcY2hhci1jbGFzcyhbcmFuZ2UoMTA0LDEwNCldKSxcY2hhci1jbGFzcyhbcmFuZ2UoMTE0LDExNCldKSxcY2hhci1jbGFzcyhbcmFuZ2UoMTExLDExMSldKSxcY2hhci1jbGFzcyhbcmFuZ2UoMTE5LDExOSldKSxcY2hhci1jbGFzcyhbcmFuZ2UoMTE1LDExNSldKV0se30p = (IConstructor) _read("prod(lit(\"throws\"),[\\char-class([range(116,116)]),\\char-class([range(104,104)]),\\char-class([range(114,114)]),\\char-class([range(111,111)]),\\char-class([range(119,119)]),\\char-class([range(115,115)])],{})", RascalValueFactory.Production);
private static final IConstructor cmVndWxhcihpdGVyKFxjaGFyLWNsYXNzKFtyYW5nZSg0OCw1NSldKSkp = (IConstructor) _read("regular(iter(\\char-class([range(48,55)])))", RascalValueFactory.Production);
- private static final IConstructor cHJvZChsYWJlbCgibGFiZWxlZCIsc29ydCgiVGFyZ2V0IikpLFtsYWJlbCgibmFtZSIsbGV4KCJOYW1lIikpXSx7fSk00 = (IConstructor) _read("prod(label(\"labeled\",sort(\"Target\")),[label(\"name\",lex(\"Name\"))],{})", RascalValueFactory.Production);
private static final IConstructor cHJvZChsYWJlbCgiYm9vbGVhbiIsc29ydCgiTGl0ZXJhbCIpKSxbbGFiZWwoImJvb2xlYW5MaXRlcmFsIixsZXgoIkJvb2xlYW5MaXRlcmFsIikpXSx7fSk00 = (IConstructor) _read("prod(label(\"boolean\",sort(\"Literal\")),[label(\"booleanLiteral\",lex(\"BooleanLiteral\"))],{})", RascalValueFactory.Production);
private static final IConstructor cHJvZChsaXQoIlxcaXRlci1zdGFyLXNlcHMoXFxwYXJhbWV0ZXJpemVkLXNvcnQoXCJNYXBwaW5nXCIsW3NvcnQoXCJFeHByZXNzaW9uXCIpXSksW2xpdChcIixcIildKSIpLFtcY2hhci1jbGFzcyhbcmFuZ2UoOTIsOTIpXSksXGNoYXItY2xhc3MoW3JhbmdlKDEwNSwxMDUpXSksXGNoYXItY2xhc3MoW3JhbmdlKDExNiwxMTYpXSksXGNoYXItY2xhc3MoW3JhbmdlKDEwMSwxMDEpXSksXGNoYXItY2xhc3MoW3JhbmdlKDExNCwxMTQpXSksXGNoYXItY2xhc3MoW3JhbmdlKDQ1LDQ1KV0pLFxjaGFyLWNsYXNzKFtyYW5nZSgxMTUsMTE1KV0pLFxjaGFyLWNsYXNzKFtyYW5nZSgxMTYsMTE2KV0pLFxjaGFyLWNsYXNzKFtyYW5nZSg5Nyw5NyldKSxcY2hhci1jbGFzcyhbcmFuZ2UoMTE0LDExNCldKSxcY2hhci1jbGFzcyhbcmFuZ2UoNDUsNDUpXSksXGNoYXItY2xhc3MoW3JhbmdlKDExNSwxMTUpXSksXGNoYXItY2xhc3MoW3JhbmdlKDEwMSwxMDEpXSksXGNoYXItY2xhc3MoW3JhbmdlKDExMiwxMTIpXSksXGNoYXItY2xhc3MoW3JhbmdlKDExNSwxMTUpXSksXGNoYXItY2xhc3MoW3JhbmdlKDQwLDQwKV0pLFxjaGFyLWNsYXNzKFtyYW5nZSg5Miw5MildKSxcY2hhci1jbGFzcyhbcmFuZ2UoMTEyLDExMildKSxcY2hhci1jbGFzcyhbcmFuZ2UoOTcsOTcpXSksXGNoYXItY2xhc3MoW3JhbmdlKDExNCwxMTQpXSksXGNoYXItY2xhc3MoW3JhbmdlKDk3LDk3KV0pLFxjaGFyLWNsYXNzKFtyYW5nZSgxMDksMTA5KV0pLFxjaGFyLWNsYXNzKFtyYW5nZSgxMDEsMTAxKV0pLFxjaGFyLWNsYXNzKFtyYW5nZSgxMTYsMTE2KV0pLFxjaGFyLWNsYXNzKFtyYW5nZSgxMDEsMTAxKV0pLFxjaGFyLWNsYXNzKFtyYW5nZSgxMTQsMTE0KV0pLFxjaGFyLWNsYXNzKFtyYW5nZSgxMDUsMTA1KV0pLFxjaGFyLWNsYXNzKFtyYW5nZSgxMjIsMTIyKV0pLFxjaGFyLWNsYXNzKFtyYW5nZSgxMDEsMTAxKV0pLFxjaGFyLWNsYXNzKFtyYW5nZSgxMDAsMTAwKV0pLFxjaGFyLWNsYXNzKFtyYW5nZSg0NSw0NSldKSxcY2hhci1jbGFzcyhbcmFuZ2UoMTE1LDExNSldKSxcY2hhci1jbGFzcyhbcmFuZ2UoMTExLDExMSldKSxcY2hhci1jbGFzcyhbcmFuZ2UoMTE0LDExNCldKSxcY2hhci1jbGFzcyhbcmFuZ2UoMTE2LDExNildKSxcY2hhci1jbGFzcyhbcmFuZ2UoNDAsNDApXSksXGNoYXItY2xhc3MoW3JhbmdlKDM0LDM0KV0pLFxjaGFyLWNsYXNzKFtyYW5nZSg3Nyw3NyldKSxcY2hhci1jbGFzcyhbcmFuZ2UoOTcsOTcpXSksXGNoYXItY2xhc3MoW3JhbmdlKDExMiwxMTIpXSksXGNoYXItY2xhc3MoW3JhbmdlKDExMiwxMTIpXSksXGNoYXItY2xhc3MoW3JhbmdlKDEwNSwxMDUpXSksXGNoYXItY2xhc3MoW3JhbmdlKDExMCwxMTApXSksXGNoYXItY2xhc3MoW3JhbmdlKDEwMywxMDMpXSksXGNoYXItY2xhc3MoW3JhbmdlKDM0LDM0KV0pLFxjaGFyLWNsYXNzKFtyYW5nZSg0NCw0NCldKSxcY2hhci1jbGFzcyhbcmFuZ2UoOTEsOTEpXSksXGNoYXItY2xhc3MoW3JhbmdlKDExNSwxMTUpXSksXGNoYXItY2xhc3MoW3JhbmdlKDExMSwxMTEpXSksXGNoYXItY2xhc3MoW3JhbmdlKDExNCwxMTQpXSksXGNoYXItY2xhc3MoW3JhbmdlKDExNiwxMTYpXSksXGNoYXItY2xhc3MoW3JhbmdlKDQwLDQwKV0pLFxjaGFyLWNsYXNzKFtyYW5nZSgzNCwzNCldKSxcY2hhci1jbGFzcyhbcmFuZ2UoNjksNjkpXSksXGNoYXItY2xhc3MoW3JhbmdlKDEyMCwxMjApXSksXGNoYXItY2xhc3MoW3JhbmdlKDExMiwxMTIpXSksXGNoYXItY2xhc3MoW3JhbmdlKDExNCwxMTQpXSksXGNoYXItY2xhc3MoW3JhbmdlKDEwMSwxMDEpXSksXGNoYXItY2xhc3MoW3JhbmdlKDExNSwxMTUpXSksXGNoYXItY2xhc3MoW3JhbmdlKDExNSwxMTUpXSksXGNoYXItY2xhc3MoW3JhbmdlKDEwNSwxMDUpXSksXGNoYXItY2xhc3MoW3JhbmdlKDExMSwxMTEpXSksXGNoYXItY2xhc3MoW3JhbmdlKDExMCwxMTApXSksXGNoYXItY2xhc3MoW3JhbmdlKDM0LDM0KV0pLFxjaGFyLWNsYXNzKFtyYW5nZSg0MSw0MSldKSxcY2hhci1jbGFzcyhbcmFuZ2UoOTMsOTMpXSksXGNoYXItY2xhc3MoW3JhbmdlKDQxLDQxKV0pLFxjaGFyLWNsYXNzKFtyYW5nZSg0NCw0NCldKSxcY2hhci1jbGFzcyhbcmFuZ2UoOTEsOTEpXSksXGNoYXItY2xhc3MoW3JhbmdlKDEwOCwxMDgpXSksXGNoYXItY2xhc3MoW3JhbmdlKDEwNSwxMDUpXSksXGNoYXItY2xhc3MoW3JhbmdlKDExNiwxMTYpXSksXGNoYXItY2xhc3MoW3JhbmdlKDQwLDQwKV0pLFxjaGFyLWNsYXNzKFtyYW5nZSgzNCwzNCldKSxcY2hhci1jbGFzcyhbcmFuZ2UoNDQsNDQpXSksXGNoYXItY2xhc3MoW3JhbmdlKDM0LDM0KV0pLFxjaGFyLWNsYXNzKFtyYW5nZSg0MSw0MSldKSxcY2hhci1jbGFzcyhbcmFuZ2UoOTMsOTMpXSksXGNoYXItY2xhc3MoW3JhbmdlKDQxLDQxKV0pXSx7fSk00 = (IConstructor) _read("prod(lit(\"\\\\iter-star-seps(\\\\parameterized-sort(\\\"Mapping\\\",[sort(\\\"Expression\\\")]),[lit(\\\",\\\")])\"),[\\char-class([range(92,92)]),\\char-class([range(105,105)]),\\char-class([range(116,116)]),\\char-class([range(101,101)]),\\char-class([range(114,114)]),\\char-class([range(45,45)]),\\char-class([range(115,115)]),\\char-class([range(116,116)]),\\char-class([range(97,97)]),\\char-class([range(114,114)]),\\char-class([range(45,45)]),\\char-class([range(115,115)]),\\char-class([range(101,101)]),\\char-class([range(112,112)]),\\char-class([range(115,115)]),\\char-class([range(40,40)]),\\char-class([range(92,92)]),\\char-class([range(112,112)]),\\char-class([range(97,97)]),\\char-class([range(114,114)]),\\char-class([range(97,97)]),\\char-class([range(109,109)]),\\char-class([range(101,101)]),\\char-class([range(116,116)]),\\char-class([range(101,101)]),\\char-class([range(114,114)]),\\char-class([range(105,105)]),\\char-class([range(122,122)]),\\char-class([range(101,101)]),\\char-class([range(100,100)]),\\char-class([range(45,45)]),\\char-class([range(115,115)]),\\char-class([range(111,111)]),\\char-class([range(114,114)]),\\char-class([range(116,116)]),\\char-class([range(40,40)]),\\char-class([range(34,34)]),\\char-class([range(77,77)]),\\char-class([range(97,97)]),\\char-class([range(112,112)]),\\char-class([range(112,112)]),\\char-class([range(105,105)]),\\char-class([range(110,110)]),\\char-class([range(103,103)]),\\char-class([range(34,34)]),\\char-class([range(44,44)]),\\char-class([range(91,91)]),\\char-class([range(115,115)]),\\char-class([range(111,111)]),\\char-class([range(114,114)]),\\char-class([range(116,116)]),\\char-class([range(40,40)]),\\char-class([range(34,34)]),\\char-class([range(69,69)]),\\char-class([range(120,120)]),\\char-class([range(112,112)]),\\char-class([range(114,114)]),\\char-class([range(101,101)]),\\char-class([range(115,115)]),\\char-class([range(115,115)]),\\char-class([range(105,105)]),\\char-class([range(111,111)]),\\char-class([range(110,110)]),\\char-class([range(34,34)]),\\char-class([range(41,41)]),\\char-class([range(93,93)]),\\char-class([range(41,41)]),\\char-class([range(44,44)]),\\char-class([range(91,91)]),\\char-class([range(108,108)]),\\char-class([range(105,105)]),\\char-class([range(116,116)]),\\char-class([range(40,40)]),\\char-class([range(34,34)]),\\char-class([range(44,44)]),\\char-class([range(34,34)]),\\char-class([range(41,41)]),\\char-class([range(93,93)]),\\char-class([range(41,41)])],{})", RascalValueFactory.Production);
private static final IConstructor cHJvZChsYWJlbCgibGVzc1RoYW5PckVxIixzb3J0KCJFeHByZXNzaW9uIikpLFtsYWJlbCgibGhzIixzb3J0KCJFeHByZXNzaW9uIikpLGxheW91dHMoIkxBWU9VVExJU1QiKSxsaXQoIlw8PSIpLGxheW91dHMoIkxBWU9VVExJU1QiKSxsYWJlbCgicmhzIixzb3J0KCJFeHByZXNzaW9uIikpXSx7fSk00 = (IConstructor) _read("prod(label(\"lessThanOrEq\",sort(\"Expression\")),[label(\"lhs\",sort(\"Expression\")),layouts(\"LAYOUTLIST\"),lit(\"\\<=\"),layouts(\"LAYOUTLIST\"),label(\"rhs\",sort(\"Expression\"))],{})", RascalValueFactory.Production);
private static final IConstructor cHJvZChsaXQoInNldCIpLFtcY2hhci1jbGFzcyhbcmFuZ2UoMTE1LDExNSldKSxcY2hhci1jbGFzcyhbcmFuZ2UoMTAxLDEwMSldKSxcY2hhci1jbGFzcyhbcmFuZ2UoMTE2LDExNildKV0se30p = (IConstructor) _read("prod(lit(\"set\"),[\\char-class([range(115,115)]),\\char-class([range(101,101)]),\\char-class([range(116,116)])],{})", RascalValueFactory.Production);
private static final IConstructor cHJvZChsaXQoIiFcPFw8IiksW1xjaGFyLWNsYXNzKFtyYW5nZSgzMywzMyldKSxcY2hhci1jbGFzcyhbcmFuZ2UoNjAsNjApXSksXGNoYXItY2xhc3MoW3JhbmdlKDYwLDYwKV0pXSx7fSk00 = (IConstructor) _read("prod(lit(\"!\\<\\<\"),[\\char-class([range(33,33)]),\\char-class([range(60,60)]),\\char-class([range(60,60)])],{})", RascalValueFactory.Production);
private static final IConstructor cHJvZChsaXQoInNvcnQoXCJDYXNlSW5zZW5zaXRpdmVTdHJpbmdDb25zdGFudFwiKSIpLFtcY2hhci1jbGFzcyhbcmFuZ2UoMTE1LDExNSldKSxcY2hhci1jbGFzcyhbcmFuZ2UoMTExLDExMSldKSxcY2hhci1jbGFzcyhbcmFuZ2UoMTE0LDExNCldKSxcY2hhci1jbGFzcyhbcmFuZ2UoMTE2LDExNildKSxcY2hhci1jbGFzcyhbcmFuZ2UoNDAsNDApXSksXGNoYXItY2xhc3MoW3JhbmdlKDM0LDM0KV0pLFxjaGFyLWNsYXNzKFtyYW5nZSg2Nyw2NyldKSxcY2hhci1jbGFzcyhbcmFuZ2UoOTcsOTcpXSksXGNoYXItY2xhc3MoW3JhbmdlKDExNSwxMTUpXSksXGNoYXItY2xhc3MoW3JhbmdlKDEwMSwxMDEpXSksXGNoYXItY2xhc3MoW3JhbmdlKDczLDczKV0pLFxjaGFyLWNsYXNzKFtyYW5nZSgxMTAsMTEwKV0pLFxjaGFyLWNsYXNzKFtyYW5nZSgxMTUsMTE1KV0pLFxjaGFyLWNsYXNzKFtyYW5nZSgxMDEsMTAxKV0pLFxjaGFyLWNsYXNzKFtyYW5nZSgxMTAsMTEwKV0pLFxjaGFyLWNsYXNzKFtyYW5nZSgxMTUsMTE1KV0pLFxjaGFyLWNsYXNzKFtyYW5nZSgxMDUsMTA1KV0pLFxjaGFyLWNsYXNzKFtyYW5nZSgxMTYsMTE2KV0pLFxjaGFyLWNsYXNzKFtyYW5nZSgxMDUsMTA1KV0pLFxjaGFyLWNsYXNzKFtyYW5nZSgxMTgsMTE4KV0pLFxjaGFyLWNsYXNzKFtyYW5nZSgxMDEsMTAxKV0pLFxjaGFyLWNsYXNzKFtyYW5nZSg4Myw4MyldKSxcY2hhci1jbGFzcyhbcmFuZ2UoMTE2LDExNildKSxcY2hhci1jbGFzcyhbcmFuZ2UoMTE0LDExNCldKSxcY2hhci1jbGFzcyhbcmFuZ2UoMTA1LDEwNSldKSxcY2hhci1jbGFzcyhbcmFuZ2UoMTEwLDExMCldKSxcY2hhci1jbGFzcyhbcmFuZ2UoMTAzLDEwMyldKSxcY2hhci1jbGFzcyhbcmFuZ2UoNjcsNjcpXSksXGNoYXItY2xhc3MoW3JhbmdlKDExMSwxMTEpXSksXGNoYXItY2xhc3MoW3JhbmdlKDExMCwxMTApXSksXGNoYXItY2xhc3MoW3JhbmdlKDExNSwxMTUpXSksXGNoYXItY2xhc3MoW3JhbmdlKDExNiwxMTYpXSksXGNoYXItY2xhc3MoW3JhbmdlKDk3LDk3KV0pLFxjaGFyLWNsYXNzKFtyYW5nZSgxMTAsMTEwKV0pLFxjaGFyLWNsYXNzKFtyYW5nZSgxMTYsMTE2KV0pLFxjaGFyLWNsYXNzKFtyYW5nZSgzNCwzNCldKSxcY2hhci1jbGFzcyhbcmFuZ2UoNDEsNDEpXSldLHt9KQ0000 = (IConstructor) _read("prod(lit(\"sort(\\\"CaseInsensitiveStringConstant\\\")\"),[\\char-class([range(115,115)]),\\char-class([range(111,111)]),\\char-class([range(114,114)]),\\char-class([range(116,116)]),\\char-class([range(40,40)]),\\char-class([range(34,34)]),\\char-class([range(67,67)]),\\char-class([range(97,97)]),\\char-class([range(115,115)]),\\char-class([range(101,101)]),\\char-class([range(73,73)]),\\char-class([range(110,110)]),\\char-class([range(115,115)]),\\char-class([range(101,101)]),\\char-class([range(110,110)]),\\char-class([range(115,115)]),\\char-class([range(105,105)]),\\char-class([range(116,116)]),\\char-class([range(105,105)]),\\char-class([range(118,118)]),\\char-class([range(101,101)]),\\char-class([range(83,83)]),\\char-class([range(116,116)]),\\char-class([range(114,114)]),\\char-class([range(105,105)]),\\char-class([range(110,110)]),\\char-class([range(103,103)]),\\char-class([range(67,67)]),\\char-class([range(111,111)]),\\char-class([range(110,110)]),\\char-class([range(115,115)]),\\char-class([range(116,116)]),\\char-class([range(97,97)]),\\char-class([range(110,110)]),\\char-class([range(116,116)]),\\char-class([range(34,34)]),\\char-class([range(41,41)])],{})", RascalValueFactory.Production);
+ private static final IConstructor cHJvZChsYWJlbCgibGF5b3V0Iixzb3J0KCJTeW50YXhSb2xlTW9kaWZpZXIiKSksW2xpdCgibGF5b3V0IiksbGF5b3V0cygiTEFZT1VUTElTVCIpLGxpdCgiWyIpLGxheW91dHMoIkxBWU9VVExJU1QiKSxsYWJlbCgiYXJnIixzb3J0KCJUeXBlQXJnIikpLGxheW91dHMoIkxBWU9VVExJU1QiKSxsaXQoIl0iKV0se30p = (IConstructor) _read("prod(label(\"layout\",sort(\"SyntaxRoleModifier\")),[lit(\"layout\"),layouts(\"LAYOUTLIST\"),lit(\"[\"),layouts(\"LAYOUTLIST\"),label(\"arg\",sort(\"TypeArg\")),layouts(\"LAYOUTLIST\"),lit(\"]\")],{})", RascalValueFactory.Production);
+ private static final IConstructor cHJvZChsYWJlbCgibGFiZWxlZCIsc29ydCgiVGFyZ2V0IikpLFtsYWJlbCgibmFtZSIsbGV4KCJOYW1lIikpXSx7fSk00 = (IConstructor) _read("prod(label(\"labeled\",sort(\"Target\")),[label(\"name\",lex(\"Name\"))],{})", RascalValueFactory.Production);
private static final IConstructor cHJvZChsYWJlbCgicHVibGljIixzb3J0KCJWaXNpYmlsaXR5IikpLFtsaXQoInB1YmxpYyIpXSx7fSk00 = (IConstructor) _read("prod(label(\"public\",sort(\"Visibility\")),[lit(\"public\")],{})", RascalValueFactory.Production);
private static final IConstructor cHJvZChsaXQoImNhc2UiKSxbXGNoYXItY2xhc3MoW3JhbmdlKDk5LDk5KV0pLFxjaGFyLWNsYXNzKFtyYW5nZSg5Nyw5NyldKSxcY2hhci1jbGFzcyhbcmFuZ2UoMTE1LDExNSldKSxcY2hhci1jbGFzcyhbcmFuZ2UoMTAxLDEwMSldKV0se30p = (IConstructor) _read("prod(lit(\"case\"),[\\char-class([range(99,99)]),\\char-class([range(97,97)]),\\char-class([range(115,115)]),\\char-class([range(101,101)])],{})", RascalValueFactory.Production);
private static final IConstructor cHJvZChsaXQoIm9wdChzb3J0KFwiUXVhbGlmaWVkTmFtZVwiKSkiKSxbXGNoYXItY2xhc3MoW3JhbmdlKDExMSwxMTEpXSksXGNoYXItY2xhc3MoW3JhbmdlKDExMiwxMTIpXSksXGNoYXItY2xhc3MoW3JhbmdlKDExNiwxMTYpXSksXGNoYXItY2xhc3MoW3JhbmdlKDQwLDQwKV0pLFxjaGFyLWNsYXNzKFtyYW5nZSgxMTUsMTE1KV0pLFxjaGFyLWNsYXNzKFtyYW5nZSgxMTEsMTExKV0pLFxjaGFyLWNsYXNzKFtyYW5nZSgxMTQsMTE0KV0pLFxjaGFyLWNsYXNzKFtyYW5nZSgxMTYsMTE2KV0pLFxjaGFyLWNsYXNzKFtyYW5nZSg0MCw0MCldKSxcY2hhci1jbGFzcyhbcmFuZ2UoMzQsMzQpXSksXGNoYXItY2xhc3MoW3JhbmdlKDgxLDgxKV0pLFxjaGFyLWNsYXNzKFtyYW5nZSgxMTcsMTE3KV0pLFxjaGFyLWNsYXNzKFtyYW5nZSg5Nyw5NyldKSxcY2hhci1jbGFzcyhbcmFuZ2UoMTA4LDEwOCldKSxcY2hhci1jbGFzcyhbcmFuZ2UoMTA1LDEwNSldKSxcY2hhci1jbGFzcyhbcmFuZ2UoMTAyLDEwMildKSxcY2hhci1jbGFzcyhbcmFuZ2UoMTA1LDEwNSldKSxcY2hhci1jbGFzcyhbcmFuZ2UoMTAxLDEwMSldKSxcY2hhci1jbGFzcyhbcmFuZ2UoMTAwLDEwMCldKSxcY2hhci1jbGFzcyhbcmFuZ2UoNzgsNzgpXSksXGNoYXItY2xhc3MoW3JhbmdlKDk3LDk3KV0pLFxjaGFyLWNsYXNzKFtyYW5nZSgxMDksMTA5KV0pLFxjaGFyLWNsYXNzKFtyYW5nZSgxMDEsMTAxKV0pLFxjaGFyLWNsYXNzKFtyYW5nZSgzNCwzNCldKSxcY2hhci1jbGFzcyhbcmFuZ2UoNDEsNDEpXSksXGNoYXItY2xhc3MoW3JhbmdlKDQxLDQxKV0pXSx7fSk00 = (IConstructor) _read("prod(lit(\"opt(sort(\\\"QualifiedName\\\"))\"),[\\char-class([range(111,111)]),\\char-class([range(112,112)]),\\char-class([range(116,116)]),\\char-class([range(40,40)]),\\char-class([range(115,115)]),\\char-class([range(111,111)]),\\char-class([range(114,114)]),\\char-class([range(116,116)]),\\char-class([range(40,40)]),\\char-class([range(34,34)]),\\char-class([range(81,81)]),\\char-class([range(117,117)]),\\char-class([range(97,97)]),\\char-class([range(108,108)]),\\char-class([range(105,105)]),\\char-class([range(102,102)]),\\char-class([range(105,105)]),\\char-class([range(101,101)]),\\char-class([range(100,100)]),\\char-class([range(78,78)]),\\char-class([range(97,97)]),\\char-class([range(109,109)]),\\char-class([range(101,101)]),\\char-class([range(34,34)]),\\char-class([range(41,41)]),\\char-class([range(41,41)])],{})", RascalValueFactory.Production);
@@ -3883,6 +3899,7 @@ protected IntegerList getFilteredParents(int childId) {
private static final IConstructor cHJvZChsYWJlbCgiJE1ldGFIb2xlIixccGFyYW1ldGVyaXplZC1zb3J0KCJLZXl3b3JkQXJndW1lbnQiLFtzb3J0KCJQYXR0ZXJuIildKSksW1xjaGFyLWNsYXNzKFtyYW5nZSgwLDApXSksbGl0KCJcXGl0ZXItc2VwcyhcXHBhcmFtZXRlcml6ZWQtc29ydChcIktleXdvcmRBcmd1bWVudFwiLFtzb3J0KFwiUGF0dGVyblwiKV0pLFtsaXQoXCIsXCIpXSkiKSxsaXQoIjoiKSxpdGVyKFxjaGFyLWNsYXNzKFtyYW5nZSg0OCw1NyldKSksXGNoYXItY2xhc3MoW3JhbmdlKDAsMCldKV0se3RhZygiaG9sZVR5cGUiKFxpdGVyLXNlcHMoXHBhcmFtZXRlcml6ZWQtc29ydCgiS2V5d29yZEFyZ3VtZW50Iixbc29ydCgiUGF0dGVybiIpXSksW2xheW91dHMoIkxBWU9VVExJU1QiKSxsaXQoIiwiKSxsYXlvdXRzKCJMQVlPVVRMSVNUIildKSkpfSk00 = (IConstructor) _read("prod(label(\"$MetaHole\",\\parameterized-sort(\"KeywordArgument\",[sort(\"Pattern\")])),[\\char-class([range(0,0)]),lit(\"\\\\iter-seps(\\\\parameterized-sort(\\\"KeywordArgument\\\",[sort(\\\"Pattern\\\")]),[lit(\\\",\\\")])\"),lit(\":\"),iter(\\char-class([range(48,57)])),\\char-class([range(0,0)])],{tag(\"holeType\"(\\iter-seps(\\parameterized-sort(\"KeywordArgument\",[sort(\"Pattern\")]),[layouts(\"LAYOUTLIST\"),lit(\",\"),layouts(\"LAYOUTLIST\")])))})", RascalValueFactory.Production);
private static final IConstructor cHJvZChsZXgoIlBvc3RQcm90b2NvbENoYXJzIiksW2xpdCgiXD4iKSxsZXgoIlVSTENoYXJzIiksbGl0KCI6Ly8iKV0se30p = (IConstructor) _read("prod(lex(\"PostProtocolChars\"),[lit(\"\\>\"),lex(\"URLChars\"),lit(\"://\")],{})", RascalValueFactory.Production);
private static final IConstructor cHJvZChsaXQoIm91dGVybW9zdCIpLFtcY2hhci1jbGFzcyhbcmFuZ2UoMTExLDExMSldKSxcY2hhci1jbGFzcyhbcmFuZ2UoMTE3LDExNyldKSxcY2hhci1jbGFzcyhbcmFuZ2UoMTE2LDExNildKSxcY2hhci1jbGFzcyhbcmFuZ2UoMTAxLDEwMSldKSxcY2hhci1jbGFzcyhbcmFuZ2UoMTE0LDExNCldKSxcY2hhci1jbGFzcyhbcmFuZ2UoMTA5LDEwOSldKSxcY2hhci1jbGFzcyhbcmFuZ2UoMTExLDExMSldKSxcY2hhci1jbGFzcyhbcmFuZ2UoMTE1LDExNSldKSxcY2hhci1jbGFzcyhbcmFuZ2UoMTE2LDExNildKV0se30p = (IConstructor) _read("prod(lit(\"outermost\"),[\\char-class([range(111,111)]),\\char-class([range(117,117)]),\\char-class([range(116,116)]),\\char-class([range(101,101)]),\\char-class([range(114,114)]),\\char-class([range(109,109)]),\\char-class([range(111,111)]),\\char-class([range(115,115)]),\\char-class([range(116,116)])],{})", RascalValueFactory.Production);
+ private static final IConstructor cHJvZChsYWJlbCgiZGF0YSIsc29ydCgiU3ludGF4Um9sZU1vZGlmaWVyIikpLFtsaXQoImRhdGEiKSxsYXlvdXRzKCJMQVlPVVRMSVNUIiksbGl0KCJbIiksbGF5b3V0cygiTEFZT1VUTElTVCIpLGxhYmVsKCJhcmciLHNvcnQoIlR5cGVBcmciKSksbGF5b3V0cygiTEFZT1VUTElTVCIpLGxpdCgiXSIpXSx7fSk00 = (IConstructor) _read("prod(label(\"data\",sort(\"SyntaxRoleModifier\")),[lit(\"data\"),layouts(\"LAYOUTLIST\"),lit(\"[\"),layouts(\"LAYOUTLIST\"),label(\"arg\",sort(\"TypeArg\")),layouts(\"LAYOUTLIST\"),lit(\"]\")],{})", RascalValueFactory.Production);
private static final IConstructor cHJvZChrZXl3b3JkcygiUmFzY2FsS2V5d29yZHMiKSxbbGl0KCJhbGlhcyIpXSx7fSk00 = (IConstructor) _read("prod(keywords(\"RascalKeywords\"),[lit(\"alias\")],{})", RascalValueFactory.Production);
private static final IConstructor cHJvZChsYWJlbCgiJE1ldGFIb2xlIixzb3J0KCJJbXBvcnQiKSksW1xjaGFyLWNsYXNzKFtyYW5nZSgwLDApXSksbGl0KCJzb3J0KFwiSW1wb3J0XCIpIiksbGl0KCI6IiksaXRlcihcY2hhci1jbGFzcyhbcmFuZ2UoNDgsNTcpXSkpLFxjaGFyLWNsYXNzKFtyYW5nZSgwLDApXSldLHt0YWcoImhvbGVUeXBlIihzb3J0KCJJbXBvcnQiKSkpfSk00 = (IConstructor) _read("prod(label(\"$MetaHole\",sort(\"Import\")),[\\char-class([range(0,0)]),lit(\"sort(\\\"Import\\\")\"),lit(\":\"),iter(\\char-class([range(48,57)])),\\char-class([range(0,0)])],{tag(\"holeType\"(sort(\"Import\")))})", RascalValueFactory.Production);
private static final IConstructor cHJvZChsaXQoIlw8XDw9IiksW1xjaGFyLWNsYXNzKFtyYW5nZSg2MCw2MCldKSxcY2hhci1jbGFzcyhbcmFuZ2UoNjAsNjApXSksXGNoYXItY2xhc3MoW3JhbmdlKDYxLDYxKV0pXSx7fSk00 = (IConstructor) _read("prod(lit(\"\\<\\<=\"),[\\char-class([range(60,60)]),\\char-class([range(60,60)]),\\char-class([range(61,61)])],{})", RascalValueFactory.Production);
@@ -3899,7 +3916,6 @@ protected IntegerList getFilteredParents(int childId) {
private static final IConstructor cmVndWxhcihvcHQoc2VxKFtcY2hhci1jbGFzcyhbcmFuZ2UoNDgsNTcpXSksb3B0KFxjaGFyLWNsYXNzKFtyYW5nZSg0OCw1NyldKSldKSkp = (IConstructor) _read("regular(opt(seq([\\char-class([range(48,57)]),opt(\\char-class([range(48,57)]))])))", RascalValueFactory.Production);
private static final IConstructor cHJvZChsYWJlbCgiJE1ldGFIb2xlIixzb3J0KCJTdGF0ZW1lbnQiKSksW1xjaGFyLWNsYXNzKFtyYW5nZSgwLDApXSksbGl0KCJzb3J0KFwiU3RhdGVtZW50XCIpIiksbGl0KCI6IiksaXRlcihcY2hhci1jbGFzcyhbcmFuZ2UoNDgsNTcpXSkpLFxjaGFyLWNsYXNzKFtyYW5nZSgwLDApXSldLHt0YWcoImhvbGVUeXBlIihzb3J0KCJTdGF0ZW1lbnQiKSkpfSk00 = (IConstructor) _read("prod(label(\"$MetaHole\",sort(\"Statement\")),[\\char-class([range(0,0)]),lit(\"sort(\\\"Statement\\\")\"),lit(\":\"),iter(\\char-class([range(48,57)])),\\char-class([range(0,0)])],{tag(\"holeType\"(sort(\"Statement\")))})", RascalValueFactory.Production);
private static final IConstructor cHJvZChsaXQoInVuZXh0ZW5kIiksW1xjaGFyLWNsYXNzKFtyYW5nZSgxMTcsMTE3KV0pLFxjaGFyLWNsYXNzKFtyYW5nZSgxMTAsMTEwKV0pLFxjaGFyLWNsYXNzKFtyYW5nZSgxMDEsMTAxKV0pLFxjaGFyLWNsYXNzKFtyYW5nZSgxMjAsMTIwKV0pLFxjaGFyLWNsYXNzKFtyYW5nZSgxMTYsMTE2KV0pLFxjaGFyLWNsYXNzKFtyYW5nZSgxMDEsMTAxKV0pLFxjaGFyLWNsYXNzKFtyYW5nZSgxMTAsMTEwKV0pLFxjaGFyLWNsYXNzKFtyYW5nZSgxMDAsMTAwKV0pXSx7fSk00 = (IConstructor) _read("prod(lit(\"unextend\"),[\\char-class([range(117,117)]),\\char-class([range(110,110)]),\\char-class([range(101,101)]),\\char-class([range(120,120)]),\\char-class([range(116,116)]),\\char-class([range(101,101)]),\\char-class([range(110,110)]),\\char-class([range(100,100)])],{})", RascalValueFactory.Production);
- private static final IConstructor cHJvZChsYWJlbCgiZnVuY3Rpb24iLHNvcnQoIkRlY2xhcmF0aW9uIikpLFtsYWJlbCgiZnVuY3Rpb25EZWNsYXJhdGlvbiIsc29ydCgiRnVuY3Rpb25EZWNsYXJhdGlvbiIpKV0se30p = (IConstructor) _read("prod(label(\"function\",sort(\"Declaration\")),[label(\"functionDeclaration\",sort(\"FunctionDeclaration\"))],{})", RascalValueFactory.Production);
private static final IConstructor cHJvZChsYWJlbCgidW5sYWJlbGVkIixzb3J0KCJQcm9kIikpLFtsYWJlbCgibW9kaWZpZXJzIixcaXRlci1zdGFyLXNlcHMoc29ydCgiUHJvZE1vZGlmaWVyIiksW2xheW91dHMoIkxBWU9VVExJU1QiKV0pKSxsYXlvdXRzKCJMQVlPVVRMSVNUIiksbGFiZWwoInN5bXMiLFxpdGVyLXN0YXItc2Vwcyhzb3J0KCJTeW0iKSxbbGF5b3V0cygiTEFZT1VUTElTVCIpXSkpXSx7fSk00 = (IConstructor) _read("prod(label(\"unlabeled\",sort(\"Prod\")),[label(\"modifiers\",\\iter-star-seps(sort(\"ProdModifier\"),[layouts(\"LAYOUTLIST\")])),layouts(\"LAYOUTLIST\"),label(\"syms\",\\iter-star-seps(sort(\"Sym\"),[layouts(\"LAYOUTLIST\")]))],{})", RascalValueFactory.Production);
private static final IConstructor cHJvZChsYWJlbCgiJE1ldGFIb2xlIixzb3J0KCJMb2NhbFZhcmlhYmxlRGVjbGFyYXRpb24iKSksW1xjaGFyLWNsYXNzKFtyYW5nZSgwLDApXSksbGl0KCJzb3J0KFwiTG9jYWxWYXJpYWJsZURlY2xhcmF0aW9uXCIpIiksbGl0KCI6IiksaXRlcihcY2hhci1jbGFzcyhbcmFuZ2UoNDgsNTcpXSkpLFxjaGFyLWNsYXNzKFtyYW5nZSgwLDApXSldLHt0YWcoImhvbGVUeXBlIihzb3J0KCJMb2NhbFZhcmlhYmxlRGVjbGFyYXRpb24iKSkpfSk00 = (IConstructor) _read("prod(label(\"$MetaHole\",sort(\"LocalVariableDeclaration\")),[\\char-class([range(0,0)]),lit(\"sort(\\\"LocalVariableDeclaration\\\")\"),lit(\":\"),iter(\\char-class([range(48,57)])),\\char-class([range(0,0)])],{tag(\"holeType\"(sort(\"LocalVariableDeclaration\")))})", RascalValueFactory.Production);
private static final IConstructor cHJvZChsaXQoInNvcnQoXCJSZWdFeHBMaXRlcmFsXCIpIiksW1xjaGFyLWNsYXNzKFtyYW5nZSgxMTUsMTE1KV0pLFxjaGFyLWNsYXNzKFtyYW5nZSgxMTEsMTExKV0pLFxjaGFyLWNsYXNzKFtyYW5nZSgxMTQsMTE0KV0pLFxjaGFyLWNsYXNzKFtyYW5nZSgxMTYsMTE2KV0pLFxjaGFyLWNsYXNzKFtyYW5nZSg0MCw0MCldKSxcY2hhci1jbGFzcyhbcmFuZ2UoMzQsMzQpXSksXGNoYXItY2xhc3MoW3JhbmdlKDgyLDgyKV0pLFxjaGFyLWNsYXNzKFtyYW5nZSgxMDEsMTAxKV0pLFxjaGFyLWNsYXNzKFtyYW5nZSgxMDMsMTAzKV0pLFxjaGFyLWNsYXNzKFtyYW5nZSg2OSw2OSldKSxcY2hhci1jbGFzcyhbcmFuZ2UoMTIwLDEyMCldKSxcY2hhci1jbGFzcyhbcmFuZ2UoMTEyLDExMildKSxcY2hhci1jbGFzcyhbcmFuZ2UoNzYsNzYpXSksXGNoYXItY2xhc3MoW3JhbmdlKDEwNSwxMDUpXSksXGNoYXItY2xhc3MoW3JhbmdlKDExNiwxMTYpXSksXGNoYXItY2xhc3MoW3JhbmdlKDEwMSwxMDEpXSksXGNoYXItY2xhc3MoW3JhbmdlKDExNCwxMTQpXSksXGNoYXItY2xhc3MoW3JhbmdlKDk3LDk3KV0pLFxjaGFyLWNsYXNzKFtyYW5nZSgxMDgsMTA4KV0pLFxjaGFyLWNsYXNzKFtyYW5nZSgzNCwzNCldKSxcY2hhci1jbGFzcyhbcmFuZ2UoNDEsNDEpXSldLHt9KQ0000 = (IConstructor) _read("prod(lit(\"sort(\\\"RegExpLiteral\\\")\"),[\\char-class([range(115,115)]),\\char-class([range(111,111)]),\\char-class([range(114,114)]),\\char-class([range(116,116)]),\\char-class([range(40,40)]),\\char-class([range(34,34)]),\\char-class([range(82,82)]),\\char-class([range(101,101)]),\\char-class([range(103,103)]),\\char-class([range(69,69)]),\\char-class([range(120,120)]),\\char-class([range(112,112)]),\\char-class([range(76,76)]),\\char-class([range(105,105)]),\\char-class([range(116,116)]),\\char-class([range(101,101)]),\\char-class([range(114,114)]),\\char-class([range(97,97)]),\\char-class([range(108,108)]),\\char-class([range(34,34)]),\\char-class([range(41,41)])],{})", RascalValueFactory.Production);
@@ -3918,6 +3934,8 @@ protected IntegerList getFilteredParents(int childId) {
private static final IConstructor cHJvZChsaXQoImluc2VydCIpLFtcY2hhci1jbGFzcyhbcmFuZ2UoMTA1LDEwNSldKSxcY2hhci1jbGFzcyhbcmFuZ2UoMTEwLDExMCldKSxcY2hhci1jbGFzcyhbcmFuZ2UoMTE1LDExNSldKSxcY2hhci1jbGFzcyhbcmFuZ2UoMTAxLDEwMSldKSxcY2hhci1jbGFzcyhbcmFuZ2UoMTE0LDExNCldKSxcY2hhci1jbGFzcyhbcmFuZ2UoMTE2LDExNildKV0se30p = (IConstructor) _read("prod(lit(\"insert\"),[\\char-class([range(105,105)]),\\char-class([range(110,110)]),\\char-class([range(115,115)]),\\char-class([range(101,101)]),\\char-class([range(114,114)]),\\char-class([range(116,116)])],{})", RascalValueFactory.Production);
private static final IConstructor cHJvZChsaXQoInNvcnQoXCJDb21tb25LZXl3b3JkUGFyYW1ldGVyc1wiKSIpLFtcY2hhci1jbGFzcyhbcmFuZ2UoMTE1LDExNSldKSxcY2hhci1jbGFzcyhbcmFuZ2UoMTExLDExMSldKSxcY2hhci1jbGFzcyhbcmFuZ2UoMTE0LDExNCldKSxcY2hhci1jbGFzcyhbcmFuZ2UoMTE2LDExNildKSxcY2hhci1jbGFzcyhbcmFuZ2UoNDAsNDApXSksXGNoYXItY2xhc3MoW3JhbmdlKDM0LDM0KV0pLFxjaGFyLWNsYXNzKFtyYW5nZSg2Nyw2NyldKSxcY2hhci1jbGFzcyhbcmFuZ2UoMTExLDExMSldKSxcY2hhci1jbGFzcyhbcmFuZ2UoMTA5LDEwOSldKSxcY2hhci1jbGFzcyhbcmFuZ2UoMTA5LDEwOSldKSxcY2hhci1jbGFzcyhbcmFuZ2UoMTExLDExMSldKSxcY2hhci1jbGFzcyhbcmFuZ2UoMTEwLDExMCldKSxcY2hhci1jbGFzcyhbcmFuZ2UoNzUsNzUpXSksXGNoYXItY2xhc3MoW3JhbmdlKDEwMSwxMDEpXSksXGNoYXItY2xhc3MoW3JhbmdlKDEyMSwxMjEpXSksXGNoYXItY2xhc3MoW3JhbmdlKDExOSwxMTkpXSksXGNoYXItY2xhc3MoW3JhbmdlKDExMSwxMTEpXSksXGNoYXItY2xhc3MoW3JhbmdlKDExNCwxMTQpXSksXGNoYXItY2xhc3MoW3JhbmdlKDEwMCwxMDApXSksXGNoYXItY2xhc3MoW3JhbmdlKDgwLDgwKV0pLFxjaGFyLWNsYXNzKFtyYW5nZSg5Nyw5NyldKSxcY2hhci1jbGFzcyhbcmFuZ2UoMTE0LDExNCldKSxcY2hhci1jbGFzcyhbcmFuZ2UoOTcsOTcpXSksXGNoYXItY2xhc3MoW3JhbmdlKDEwOSwxMDkpXSksXGNoYXItY2xhc3MoW3JhbmdlKDEwMSwxMDEpXSksXGNoYXItY2xhc3MoW3JhbmdlKDExNiwxMTYpXSksXGNoYXItY2xhc3MoW3JhbmdlKDEwMSwxMDEpXSksXGNoYXItY2xhc3MoW3JhbmdlKDExNCwxMTQpXSksXGNoYXItY2xhc3MoW3JhbmdlKDExNSwxMTUpXSksXGNoYXItY2xhc3MoW3JhbmdlKDM0LDM0KV0pLFxjaGFyLWNsYXNzKFtyYW5nZSg0MSw0MSldKV0se30p = (IConstructor) _read("prod(lit(\"sort(\\\"CommonKeywordParameters\\\")\"),[\\char-class([range(115,115)]),\\char-class([range(111,111)]),\\char-class([range(114,114)]),\\char-class([range(116,116)]),\\char-class([range(40,40)]),\\char-class([range(34,34)]),\\char-class([range(67,67)]),\\char-class([range(111,111)]),\\char-class([range(109,109)]),\\char-class([range(109,109)]),\\char-class([range(111,111)]),\\char-class([range(110,110)]),\\char-class([range(75,75)]),\\char-class([range(101,101)]),\\char-class([range(121,121)]),\\char-class([range(119,119)]),\\char-class([range(111,111)]),\\char-class([range(114,114)]),\\char-class([range(100,100)]),\\char-class([range(80,80)]),\\char-class([range(97,97)]),\\char-class([range(114,114)]),\\char-class([range(97,97)]),\\char-class([range(109,109)]),\\char-class([range(101,101)]),\\char-class([range(116,116)]),\\char-class([range(101,101)]),\\char-class([range(114,114)]),\\char-class([range(115,115)]),\\char-class([range(34,34)]),\\char-class([range(41,41)])],{})", RascalValueFactory.Production);
private static final IConstructor cHJvZChsaXQoIlxcaXRlci1zdGFyKHNvcnQoXCJUYWdcIikpIiksW1xjaGFyLWNsYXNzKFtyYW5nZSg5Miw5MildKSxcY2hhci1jbGFzcyhbcmFuZ2UoMTA1LDEwNSldKSxcY2hhci1jbGFzcyhbcmFuZ2UoMTE2LDExNildKSxcY2hhci1jbGFzcyhbcmFuZ2UoMTAxLDEwMSldKSxcY2hhci1jbGFzcyhbcmFuZ2UoMTE0LDExNCldKSxcY2hhci1jbGFzcyhbcmFuZ2UoNDUsNDUpXSksXGNoYXItY2xhc3MoW3JhbmdlKDExNSwxMTUpXSksXGNoYXItY2xhc3MoW3JhbmdlKDExNiwxMTYpXSksXGNoYXItY2xhc3MoW3JhbmdlKDk3LDk3KV0pLFxjaGFyLWNsYXNzKFtyYW5nZSgxMTQsMTE0KV0pLFxjaGFyLWNsYXNzKFtyYW5nZSg0MCw0MCldKSxcY2hhci1jbGFzcyhbcmFuZ2UoMTE1LDExNSldKSxcY2hhci1jbGFzcyhbcmFuZ2UoMTExLDExMSldKSxcY2hhci1jbGFzcyhbcmFuZ2UoMTE0LDExNCldKSxcY2hhci1jbGFzcyhbcmFuZ2UoMTE2LDExNildKSxcY2hhci1jbGFzcyhbcmFuZ2UoNDAsNDApXSksXGNoYXItY2xhc3MoW3JhbmdlKDM0LDM0KV0pLFxjaGFyLWNsYXNzKFtyYW5nZSg4NCw4NCldKSxcY2hhci1jbGFzcyhbcmFuZ2UoOTcsOTcpXSksXGNoYXItY2xhc3MoW3JhbmdlKDEwMywxMDMpXSksXGNoYXItY2xhc3MoW3JhbmdlKDM0LDM0KV0pLFxjaGFyLWNsYXNzKFtyYW5nZSg0MSw0MSldKSxcY2hhci1jbGFzcyhbcmFuZ2UoNDEsNDEpXSldLHt9KQ0000 = (IConstructor) _read("prod(lit(\"\\\\iter-star(sort(\\\"Tag\\\"))\"),[\\char-class([range(92,92)]),\\char-class([range(105,105)]),\\char-class([range(116,116)]),\\char-class([range(101,101)]),\\char-class([range(114,114)]),\\char-class([range(45,45)]),\\char-class([range(115,115)]),\\char-class([range(116,116)]),\\char-class([range(97,97)]),\\char-class([range(114,114)]),\\char-class([range(40,40)]),\\char-class([range(115,115)]),\\char-class([range(111,111)]),\\char-class([range(114,114)]),\\char-class([range(116,116)]),\\char-class([range(40,40)]),\\char-class([range(34,34)]),\\char-class([range(84,84)]),\\char-class([range(97,97)]),\\char-class([range(103,103)]),\\char-class([range(34,34)]),\\char-class([range(41,41)]),\\char-class([range(41,41)])],{})", RascalValueFactory.Production);
+ private static final IConstructor cHJvZChsYWJlbCgiJE1ldGFIb2xlIixzb3J0KCJTeW50YXhSb2xlTW9kaWZpZXIiKSksW1xjaGFyLWNsYXNzKFtyYW5nZSgwLDApXSksbGl0KCJzb3J0KFwiU3ludGF4Um9sZU1vZGlmaWVyXCIpIiksbGl0KCI6IiksaXRlcihcY2hhci1jbGFzcyhbcmFuZ2UoNDgsNTcpXSkpLFxjaGFyLWNsYXNzKFtyYW5nZSgwLDApXSldLHt0YWcoImhvbGVUeXBlIihzb3J0KCJTeW50YXhSb2xlTW9kaWZpZXIiKSkpfSk00 = (IConstructor) _read("prod(label(\"$MetaHole\",sort(\"SyntaxRoleModifier\")),[\\char-class([range(0,0)]),lit(\"sort(\\\"SyntaxRoleModifier\\\")\"),lit(\":\"),iter(\\char-class([range(48,57)])),\\char-class([range(0,0)])],{tag(\"holeType\"(sort(\"SyntaxRoleModifier\")))})", RascalValueFactory.Production);
+ private static final IConstructor cHJvZChsYWJlbCgiZnVuY3Rpb24iLHNvcnQoIkRlY2xhcmF0aW9uIikpLFtsYWJlbCgiZnVuY3Rpb25EZWNsYXJhdGlvbiIsc29ydCgiRnVuY3Rpb25EZWNsYXJhdGlvbiIpKV0se30p = (IConstructor) _read("prod(label(\"function\",sort(\"Declaration\")),[label(\"functionDeclaration\",sort(\"FunctionDeclaration\"))],{})", RascalValueFactory.Production);
private static final IConstructor cHJvZChsYWJlbCgiJE1ldGFIb2xlIixzb3J0KCJUeXBlQXJnIikpLFtcY2hhci1jbGFzcyhbcmFuZ2UoMCwwKV0pLGxpdCgiXFxpdGVyLXNlcHMoc29ydChcIlR5cGVBcmdcIiksW2xpdChcIixcIildKSIpLGxpdCgiOiIpLGl0ZXIoXGNoYXItY2xhc3MoW3JhbmdlKDQ4LDU3KV0pKSxcY2hhci1jbGFzcyhbcmFuZ2UoMCwwKV0pXSx7dGFnKCJob2xlVHlwZSIoXGl0ZXItc2Vwcyhzb3J0KCJUeXBlQXJnIiksW2xheW91dHMoIkxBWU9VVExJU1QiKSxsaXQoIiwiKSxsYXlvdXRzKCJMQVlPVVRMSVNUIildKSkpfSk00 = (IConstructor) _read("prod(label(\"$MetaHole\",sort(\"TypeArg\")),[\\char-class([range(0,0)]),lit(\"\\\\iter-seps(sort(\\\"TypeArg\\\"),[lit(\\\",\\\")])\"),lit(\":\"),iter(\\char-class([range(48,57)])),\\char-class([range(0,0)])],{tag(\"holeType\"(\\iter-seps(sort(\"TypeArg\"),[layouts(\"LAYOUTLIST\"),lit(\",\"),layouts(\"LAYOUTLIST\")])))})", RascalValueFactory.Production);
private static final IConstructor cHJvZChsYWJlbCgiYnEiLGxleCgiQ29uY3JldGVQYXJ0IikpLFtsaXQoIlxcYCIpXSx7dGFnKCJjYXRlZ29yeSIoInN0cmluZyIpKX0p = (IConstructor) _read("prod(label(\"bq\",lex(\"ConcretePart\")),[lit(\"\\\\`\")],{tag(\"category\"(\"string\"))})", RascalValueFactory.Production);
private static final IConstructor cHJvZChsaXQoImFsdCh7XFxjaGFyLWNsYXNzKFtyYW5nZSg0Miw0MildKSxcXGNoYXItY2xhc3MoW3JhbmdlKDEsNDEpLHJhbmdlKDQzLDExMTQxMTEpXSl9KSIpLFtcY2hhci1jbGFzcyhbcmFuZ2UoOTcsOTcpXSksXGNoYXItY2xhc3MoW3JhbmdlKDEwOCwxMDgpXSksXGNoYXItY2xhc3MoW3JhbmdlKDExNiwxMTYpXSksXGNoYXItY2xhc3MoW3JhbmdlKDQwLDQwKV0pLFxjaGFyLWNsYXNzKFtyYW5nZSgxMjMsMTIzKV0pLFxjaGFyLWNsYXNzKFtyYW5nZSg5Miw5MildKSxcY2hhci1jbGFzcyhbcmFuZ2UoOTksOTkpXSksXGNoYXItY2xhc3MoW3JhbmdlKDEwNCwxMDQpXSksXGNoYXItY2xhc3MoW3JhbmdlKDk3LDk3KV0pLFxjaGFyLWNsYXNzKFtyYW5nZSgxMTQsMTE0KV0pLFxjaGFyLWNsYXNzKFtyYW5nZSg0NSw0NSldKSxcY2hhci1jbGFzcyhbcmFuZ2UoOTksOTkpXSksXGNoYXItY2xhc3MoW3JhbmdlKDEwOCwxMDgpXSksXGNoYXItY2xhc3MoW3JhbmdlKDk3LDk3KV0pLFxjaGFyLWNsYXNzKFtyYW5nZSgxMTUsMTE1KV0pLFxjaGFyLWNsYXNzKFtyYW5nZSgxMTUsMTE1KV0pLFxjaGFyLWNsYXNzKFtyYW5nZSg0MCw0MCldKSxcY2hhci1jbGFzcyhbcmFuZ2UoOTEsOTEpXSksXGNoYXItY2xhc3MoW3JhbmdlKDExNCwxMTQpXSksXGNoYXItY2xhc3MoW3JhbmdlKDk3LDk3KV0pLFxjaGFyLWNsYXNzKFtyYW5nZSgxMTAsMTEwKV0pLFxjaGFyLWNsYXNzKFtyYW5nZSgxMDMsMTAzKV0pLFxjaGFyLWNsYXNzKFtyYW5nZSgxMDEsMTAxKV0pLFxjaGFyLWNsYXNzKFtyYW5nZSg0MCw0MCldKSxcY2hhci1jbGFzcyhbcmFuZ2UoNTIsNTIpXSksXGNoYXItY2xhc3MoW3JhbmdlKDUwLDUwKV0pLFxjaGFyLWNsYXNzKFtyYW5nZSg0NCw0NCldKSxcY2hhci1jbGFzcyhbcmFuZ2UoNTIsNTIpXSksXGNoYXItY2xhc3MoW3JhbmdlKDUwLDUwKV0pLFxjaGFyLWNsYXNzKFtyYW5nZSg0MSw0MSldKSxcY2hhci1jbGFzcyhbcmFuZ2UoOTMsOTMpXSksXGNoYXItY2xhc3MoW3JhbmdlKDQxLDQxKV0pLFxjaGFyLWNsYXNzKFtyYW5nZSg0NCw0NCldKSxcY2hhci1jbGFzcyhbcmFuZ2UoOTIsOTIpXSksXGNoYXItY2xhc3MoW3JhbmdlKDk5LDk5KV0pLFxjaGFyLWNsYXNzKFtyYW5nZSgxMDQsMTA0KV0pLFxjaGFyLWNsYXNzKFtyYW5nZSg5Nyw5NyldKSxcY2hhci1jbGFzcyhbcmFuZ2UoMTE0LDExNCldKSxcY2hhci1jbGFzcyhbcmFuZ2UoNDUsNDUpXSksXGNoYXItY2xhc3MoW3JhbmdlKDk5LDk5KV0pLFxjaGFyLWNsYXNzKFtyYW5nZSgxMDgsMTA4KV0pLFxjaGFyLWNsYXNzKFtyYW5nZSg5Nyw5NyldKSxcY2hhci1jbGFzcyhbcmFuZ2UoMTE1LDExNSldKSxcY2hhci1jbGFzcyhbcmFuZ2UoMTE1LDExNSldKSxcY2hhci1jbGFzcyhbcmFuZ2UoNDAsNDApXSksXGNoYXItY2xhc3MoW3JhbmdlKDkxLDkxKV0pLFxjaGFyLWNsYXNzKFtyYW5nZSgxMTQsMTE0KV0pLFxjaGFyLWNsYXNzKFtyYW5nZSg5Nyw5NyldKSxcY2hhci1jbGFzcyhbcmFuZ2UoMTEwLDExMCldKSxcY2hhci1jbGFzcyhbcmFuZ2UoMTAzLDEwMyldKSxcY2hhci1jbGFzcyhbcmFuZ2UoMTAxLDEwMSldKSxcY2hhci1jbGFzcyhbcmFuZ2UoNDAsNDApXSksXGNoYXItY2xhc3MoW3JhbmdlKDQ5LDQ5KV0pLFxjaGFyLWNsYXNzKFtyYW5nZSg0NCw0NCldKSxcY2hhci1jbGFzcyhbcmFuZ2UoNTIsNTIpXSksXGNoYXItY2xhc3MoW3JhbmdlKDQ5LDQ5KV0pLFxjaGFyLWNsYXNzKFtyYW5nZSg0MSw0MSldKSxcY2hhci1jbGFzcyhbcmFuZ2UoNDQsNDQpXSksXGNoYXItY2xhc3MoW3JhbmdlKDExNCwxMTQpXSksXGNoYXItY2xhc3MoW3JhbmdlKDk3LDk3KV0pLFxjaGFyLWNsYXNzKFtyYW5nZSgxMTAsMTEwKV0pLFxjaGFyLWNsYXNzKFtyYW5nZSgxMDMsMTAzKV0pLFxjaGFyLWNsYXNzKFtyYW5nZSgxMDEsMTAxKV0pLFxjaGFyLWNsYXNzKFtyYW5nZSg0MCw0MCldKSxcY2hhci1jbGFzcyhbcmFuZ2UoNTIsNTIpXSksXGNoYXItY2xhc3MoW3JhbmdlKDUxLDUxKV0pLFxjaGFyLWNsYXNzKFtyYW5nZSg0NCw0NCldKSxcY2hhci1jbGFzcyhbcmFuZ2UoNDksNDkpXSksXGNoYXItY2xhc3MoW3JhbmdlKDQ5LDQ5KV0pLFxjaGFyLWNsYXNzKFtyYW5nZSg0OSw0OSldKSxcY2hhci1jbGFzcyhbcmFuZ2UoNTIsNTIpXSksXGNoYXItY2xhc3MoW3JhbmdlKDQ5LDQ5KV0pLFxjaGFyLWNsYXNzKFtyYW5nZSg0OSw0OSldKSxcY2hhci1jbGFzcyhbcmFuZ2UoNDksNDkpXSksXGNoYXItY2xhc3MoW3JhbmdlKDQxLDQxKV0pLFxjaGFyLWNsYXNzKFtyYW5nZSg5Myw5MyldKSxcY2hhci1jbGFzcyhbcmFuZ2UoNDEsNDEpXSksXGNoYXItY2xhc3MoW3JhbmdlKDEyNSwxMjUpXSksXGNoYXItY2xhc3MoW3JhbmdlKDQxLDQxKV0pXSx7fSk00 = (IConstructor) _read("prod(lit(\"alt({\\\\char-class([range(42,42)]),\\\\char-class([range(1,41),range(43,1114111)])})\"),[\\char-class([range(97,97)]),\\char-class([range(108,108)]),\\char-class([range(116,116)]),\\char-class([range(40,40)]),\\char-class([range(123,123)]),\\char-class([range(92,92)]),\\char-class([range(99,99)]),\\char-class([range(104,104)]),\\char-class([range(97,97)]),\\char-class([range(114,114)]),\\char-class([range(45,45)]),\\char-class([range(99,99)]),\\char-class([range(108,108)]),\\char-class([range(97,97)]),\\char-class([range(115,115)]),\\char-class([range(115,115)]),\\char-class([range(40,40)]),\\char-class([range(91,91)]),\\char-class([range(114,114)]),\\char-class([range(97,97)]),\\char-class([range(110,110)]),\\char-class([range(103,103)]),\\char-class([range(101,101)]),\\char-class([range(40,40)]),\\char-class([range(52,52)]),\\char-class([range(50,50)]),\\char-class([range(44,44)]),\\char-class([range(52,52)]),\\char-class([range(50,50)]),\\char-class([range(41,41)]),\\char-class([range(93,93)]),\\char-class([range(41,41)]),\\char-class([range(44,44)]),\\char-class([range(92,92)]),\\char-class([range(99,99)]),\\char-class([range(104,104)]),\\char-class([range(97,97)]),\\char-class([range(114,114)]),\\char-class([range(45,45)]),\\char-class([range(99,99)]),\\char-class([range(108,108)]),\\char-class([range(97,97)]),\\char-class([range(115,115)]),\\char-class([range(115,115)]),\\char-class([range(40,40)]),\\char-class([range(91,91)]),\\char-class([range(114,114)]),\\char-class([range(97,97)]),\\char-class([range(110,110)]),\\char-class([range(103,103)]),\\char-class([range(101,101)]),\\char-class([range(40,40)]),\\char-class([range(49,49)]),\\char-class([range(44,44)]),\\char-class([range(52,52)]),\\char-class([range(49,49)]),\\char-class([range(41,41)]),\\char-class([range(44,44)]),\\char-class([range(114,114)]),\\char-class([range(97,97)]),\\char-class([range(110,110)]),\\char-class([range(103,103)]),\\char-class([range(101,101)]),\\char-class([range(40,40)]),\\char-class([range(52,52)]),\\char-class([range(51,51)]),\\char-class([range(44,44)]),\\char-class([range(49,49)]),\\char-class([range(49,49)]),\\char-class([range(49,49)]),\\char-class([range(52,52)]),\\char-class([range(49,49)]),\\char-class([range(49,49)]),\\char-class([range(49,49)]),\\char-class([range(41,41)]),\\char-class([range(93,93)]),\\char-class([range(41,41)]),\\char-class([range(125,125)]),\\char-class([range(41,41)])],{})", RascalValueFactory.Production);
@@ -3980,6 +3998,7 @@ protected IntegerList getFilteredParents(int childId) {
private static final IConstructor cHJvZChsYWJlbCgiJE1ldGFIb2xlIixzb3J0KCJMaXRlcmFsIikpLFtcY2hhci1jbGFzcyhbcmFuZ2UoMCwwKV0pLGxpdCgic29ydChcIkxpdGVyYWxcIikiKSxsaXQoIjoiKSxpdGVyKFxjaGFyLWNsYXNzKFtyYW5nZSg0OCw1NyldKSksXGNoYXItY2xhc3MoW3JhbmdlKDAsMCldKV0se3RhZygiaG9sZVR5cGUiKHNvcnQoIkxpdGVyYWwiKSkpfSk00 = (IConstructor) _read("prod(label(\"$MetaHole\",sort(\"Literal\")),[\\char-class([range(0,0)]),lit(\"sort(\\\"Literal\\\")\"),lit(\":\"),iter(\\char-class([range(48,57)])),\\char-class([range(0,0)])],{tag(\"holeType\"(sort(\"Literal\")))})", RascalValueFactory.Production);
private static final IConstructor cHJvZChsYWJlbCgiZmlsdGVyIixzb3J0KCJTdGF0ZW1lbnQiKSksW2xpdCgiZmlsdGVyIiksbGF5b3V0cygiTEFZT1VUTElTVCIpLGxpdCgiOyIpXSx7dGFnKCJicmVha2FibGUiKCkpfSk00 = (IConstructor) _read("prod(label(\"filter\",sort(\"Statement\")),[lit(\"filter\"),layouts(\"LAYOUTLIST\"),lit(\";\")],{tag(\"breakable\"())})", RascalValueFactory.Production);
private static final IConstructor cHJvZChsYWJlbCgiJE1ldGFIb2xlIixzb3J0KCJMYWJlbCIpKSxbXGNoYXItY2xhc3MoW3JhbmdlKDAsMCldKSxsaXQoInNvcnQoXCJMYWJlbFwiKSIpLGxpdCgiOiIpLGl0ZXIoXGNoYXItY2xhc3MoW3JhbmdlKDQ4LDU3KV0pKSxcY2hhci1jbGFzcyhbcmFuZ2UoMCwwKV0pXSx7dGFnKCJob2xlVHlwZSIoc29ydCgiTGFiZWwiKSkpfSk00 = (IConstructor) _read("prod(label(\"$MetaHole\",sort(\"Label\")),[\\char-class([range(0,0)]),lit(\"sort(\\\"Label\\\")\"),lit(\":\"),iter(\\char-class([range(48,57)])),\\char-class([range(0,0)])],{tag(\"holeType\"(sort(\"Label\")))})", RascalValueFactory.Production);
+ private static final IConstructor cHJvZChsYWJlbCgia2V5d29yZCIsc29ydCgiU3ludGF4Um9sZU1vZGlmaWVyIikpLFtsaXQoImtleXdvcmQiKSxsYXlvdXRzKCJMQVlPVVRMSVNUIiksbGl0KCJbIiksbGF5b3V0cygiTEFZT1VUTElTVCIpLGxhYmVsKCJhcmciLHNvcnQoIlR5cGVBcmciKSksbGF5b3V0cygiTEFZT1VUTElTVCIpLGxpdCgiXSIpXSx7fSk00 = (IConstructor) _read("prod(label(\"keyword\",sort(\"SyntaxRoleModifier\")),[lit(\"keyword\"),layouts(\"LAYOUTLIST\"),lit(\"[\"),layouts(\"LAYOUTLIST\"),label(\"arg\",sort(\"TypeArg\")),layouts(\"LAYOUTLIST\"),lit(\"]\")],{})", RascalValueFactory.Production);
private static final IConstructor cHJvZChsYWJlbCgiYW5ubyIsc29ydCgiS2luZCIpKSxbbGl0KCJhbm5vIildLHt9KQ0000 = (IConstructor) _read("prod(label(\"anno\",sort(\"Kind\")),[lit(\"anno\")],{})", RascalValueFactory.Production);
private static final IConstructor cHJvZChsaXQoImJyYWNrZXQiKSxbXGNoYXItY2xhc3MoW3JhbmdlKDk4LDk4KV0pLFxjaGFyLWNsYXNzKFtyYW5nZSgxMTQsMTE0KV0pLFxjaGFyLWNsYXNzKFtyYW5nZSg5Nyw5NyldKSxcY2hhci1jbGFzcyhbcmFuZ2UoOTksOTkpXSksXGNoYXItY2xhc3MoW3JhbmdlKDEwNywxMDcpXSksXGNoYXItY2xhc3MoW3JhbmdlKDEwMSwxMDEpXSksXGNoYXItY2xhc3MoW3JhbmdlKDExNiwxMTYpXSldLHt9KQ0000 = (IConstructor) _read("prod(lit(\"bracket\"),[\\char-class([range(98,98)]),\\char-class([range(114,114)]),\\char-class([range(97,97)]),\\char-class([range(99,99)]),\\char-class([range(107,107)]),\\char-class([range(101,101)]),\\char-class([range(116,116)])],{})", RascalValueFactory.Production);
private static final IConstructor cHJvZChsYWJlbCgicHJlc2VudCIsc29ydCgiQ29tbW9uS2V5d29yZFBhcmFtZXRlcnMiKSksW2xpdCgiKCIpLGxheW91dHMoIkxBWU9VVExJU1QiKSxsYWJlbCgia2V5d29yZEZvcm1hbExpc3QiLFxpdGVyLXNlcHMoc29ydCgiS2V5d29yZEZvcm1hbCIpLFtsYXlvdXRzKCJMQVlPVVRMSVNUIiksbGl0KCIsIiksbGF5b3V0cygiTEFZT1VUTElTVCIpXSkpLGxheW91dHMoIkxBWU9VVExJU1QiKSxsaXQoIikiKV0se30p = (IConstructor) _read("prod(label(\"present\",sort(\"CommonKeywordParameters\")),[lit(\"(\"),layouts(\"LAYOUTLIST\"),label(\"keywordFormalList\",\\iter-seps(sort(\"KeywordFormal\"),[layouts(\"LAYOUTLIST\"),lit(\",\"),layouts(\"LAYOUTLIST\")])),layouts(\"LAYOUTLIST\"),lit(\")\")],{})", RascalValueFactory.Production);
@@ -4143,6 +4162,7 @@ protected IntegerList getFilteredParents(int childId) {
private static final IConstructor cHJvZChsYWJlbCgiJE1ldGFIb2xlIixzb3J0KCJEYXRhVGFyZ2V0IikpLFtcY2hhci1jbGFzcyhbcmFuZ2UoMCwwKV0pLGxpdCgic29ydChcIkRhdGFUYXJnZXRcIikiKSxsaXQoIjoiKSxpdGVyKFxjaGFyLWNsYXNzKFtyYW5nZSg0OCw1NyldKSksXGNoYXItY2xhc3MoW3JhbmdlKDAsMCldKV0se3RhZygiaG9sZVR5cGUiKHNvcnQoIkRhdGFUYXJnZXQiKSkpfSk00 = (IConstructor) _read("prod(label(\"$MetaHole\",sort(\"DataTarget\")),[\\char-class([range(0,0)]),lit(\"sort(\\\"DataTarget\\\")\"),lit(\":\"),iter(\\char-class([range(48,57)])),\\char-class([range(0,0)])],{tag(\"holeType\"(sort(\"DataTarget\")))})", RascalValueFactory.Production);
private static final IConstructor cHJvZChsYWJlbCgicG9zdCIsc29ydCgiUHJvdG9jb2xUYWlsIikpLFtsYWJlbCgicG9zdCIsbGV4KCJQb3N0UHJvdG9jb2xDaGFycyIpKV0se30p = (IConstructor) _read("prod(label(\"post\",sort(\"ProtocolTail\")),[label(\"post\",lex(\"PostProtocolChars\"))],{})", RascalValueFactory.Production);
private static final IConstructor cHJvZChsaXQoIlxcaXRlci1zdGFyKFxcY2hhci1jbGFzcyhbcmFuZ2UoNDgsNTcpLHJhbmdlKDY1LDkwKSxyYW5nZSg5NSw5NSkscmFuZ2UoOTcsMTIyKV0pKSIpLFtcY2hhci1jbGFzcyhbcmFuZ2UoOTIsOTIpXSksXGNoYXItY2xhc3MoW3JhbmdlKDEwNSwxMDUpXSksXGNoYXItY2xhc3MoW3JhbmdlKDExNiwxMTYpXSksXGNoYXItY2xhc3MoW3JhbmdlKDEwMSwxMDEpXSksXGNoYXItY2xhc3MoW3JhbmdlKDExNCwxMTQpXSksXGNoYXItY2xhc3MoW3JhbmdlKDQ1LDQ1KV0pLFxjaGFyLWNsYXNzKFtyYW5nZSgxMTUsMTE1KV0pLFxjaGFyLWNsYXNzKFtyYW5nZSgxMTYsMTE2KV0pLFxjaGFyLWNsYXNzKFtyYW5nZSg5Nyw5NyldKSxcY2hhci1jbGFzcyhbcmFuZ2UoMTE0LDExNCldKSxcY2hhci1jbGFzcyhbcmFuZ2UoNDAsNDApXSksXGNoYXItY2xhc3MoW3JhbmdlKDkyLDkyKV0pLFxjaGFyLWNsYXNzKFtyYW5nZSg5OSw5OSldKSxcY2hhci1jbGFzcyhbcmFuZ2UoMTA0LDEwNCldKSxcY2hhci1jbGFzcyhbcmFuZ2UoOTcsOTcpXSksXGNoYXItY2xhc3MoW3JhbmdlKDExNCwxMTQpXSksXGNoYXItY2xhc3MoW3JhbmdlKDQ1LDQ1KV0pLFxjaGFyLWNsYXNzKFtyYW5nZSg5OSw5OSldKSxcY2hhci1jbGFzcyhbcmFuZ2UoMTA4LDEwOCldKSxcY2hhci1jbGFzcyhbcmFuZ2UoOTcsOTcpXSksXGNoYXItY2xhc3MoW3JhbmdlKDExNSwxMTUpXSksXGNoYXItY2xhc3MoW3JhbmdlKDExNSwxMTUpXSksXGNoYXItY2xhc3MoW3JhbmdlKDQwLDQwKV0pLFxjaGFyLWNsYXNzKFtyYW5nZSg5MSw5MSldKSxcY2hhci1jbGFzcyhbcmFuZ2UoMTE0LDExNCldKSxcY2hhci1jbGFzcyhbcmFuZ2UoOTcsOTcpXSksXGNoYXItY2xhc3MoW3JhbmdlKDExMCwxMTApXSksXGNoYXItY2xhc3MoW3JhbmdlKDEwMywxMDMpXSksXGNoYXItY2xhc3MoW3JhbmdlKDEwMSwxMDEpXSksXGNoYXItY2xhc3MoW3JhbmdlKDQwLDQwKV0pLFxjaGFyLWNsYXNzKFtyYW5nZSg1Miw1MildKSxcY2hhci1jbGFzcyhbcmFuZ2UoNTYsNTYpXSksXGNoYXItY2xhc3MoW3JhbmdlKDQ0LDQ0KV0pLFxjaGFyLWNsYXNzKFtyYW5nZSg1Myw1MyldKSxcY2hhci1jbGFzcyhbcmFuZ2UoNTUsNTUpXSksXGNoYXItY2xhc3MoW3JhbmdlKDQxLDQxKV0pLFxjaGFyLWNsYXNzKFtyYW5nZSg0NCw0NCldKSxcY2hhci1jbGFzcyhbcmFuZ2UoMTE0LDExNCldKSxcY2hhci1jbGFzcyhbcmFuZ2UoOTcsOTcpXSksXGNoYXItY2xhc3MoW3JhbmdlKDExMCwxMTApXSksXGNoYXItY2xhc3MoW3JhbmdlKDEwMywxMDMpXSksXGNoYXItY2xhc3MoW3JhbmdlKDEwMSwxMDEpXSksXGNoYXItY2xhc3MoW3JhbmdlKDQwLDQwKV0pLFxjaGFyLWNsYXNzKFtyYW5nZSg1NCw1NCldKSxcY2hhci1jbGFzcyhbcmFuZ2UoNTMsNTMpXSksXGNoYXItY2xhc3MoW3JhbmdlKDQ0LDQ0KV0pLFxjaGFyLWNsYXNzKFtyYW5nZSg1Nyw1NyldKSxcY2hhci1jbGFzcyhbcmFuZ2UoNDgsNDgpXSksXGNoYXItY2xhc3MoW3JhbmdlKDQxLDQxKV0pLFxjaGFyLWNsYXNzKFtyYW5nZSg0NCw0NCldKSxcY2hhci1jbGFzcyhbcmFuZ2UoMTE0LDExNCldKSxcY2hhci1jbGFzcyhbcmFuZ2UoOTcsOTcpXSksXGNoYXItY2xhc3MoW3JhbmdlKDExMCwxMTApXSksXGNoYXItY2xhc3MoW3JhbmdlKDEwMywxMDMpXSksXGNoYXItY2xhc3MoW3JhbmdlKDEwMSwxMDEpXSksXGNoYXItY2xhc3MoW3JhbmdlKDQwLDQwKV0pLFxjaGFyLWNsYXNzKFtyYW5nZSg1Nyw1NyldKSxcY2hhci1jbGFzcyhbcmFuZ2UoNTMsNTMpXSksXGNoYXItY2xhc3MoW3JhbmdlKDQ0LDQ0KV0pLFxjaGFyLWNsYXNzKFtyYW5nZSg1Nyw1NyldKSxcY2hhci1jbGFzcyhbcmFuZ2UoNTMsNTMpXSksXGNoYXItY2xhc3MoW3JhbmdlKDQxLDQxKV0pLFxjaGFyLWNsYXNzKFtyYW5nZSg0NCw0NCldKSxcY2hhci1jbGFzcyhbcmFuZ2UoMTE0LDExNCldKSxcY2hhci1jbGFzcyhbcmFuZ2UoOTcsOTcpXSksXGNoYXItY2xhc3MoW3JhbmdlKDExMCwxMTApXSksXGNoYXItY2xhc3MoW3JhbmdlKDEwMywxMDMpXSksXGNoYXItY2xhc3MoW3JhbmdlKDEwMSwxMDEpXSksXGNoYXItY2xhc3MoW3JhbmdlKDQwLDQwKV0pLFxjaGFyLWNsYXNzKFtyYW5nZSg1Nyw1NyldKSxcY2hhci1jbGFzcyhbcmFuZ2UoNTUsNTUpXSksXGNoYXItY2xhc3MoW3JhbmdlKDQ0LDQ0KV0pLFxjaGFyLWNsYXNzKFtyYW5nZSg0OSw0OSldKSxcY2hhci1jbGFzcyhbcmFuZ2UoNTAsNTApXSksXGNoYXItY2xhc3MoW3JhbmdlKDUwLDUwKV0pLFxjaGFyLWNsYXNzKFtyYW5nZSg0MSw0MSldKSxcY2hhci1jbGFzcyhbcmFuZ2UoOTMsOTMpXSksXGNoYXItY2xhc3MoW3JhbmdlKDQxLDQxKV0pLFxjaGFyLWNsYXNzKFtyYW5nZSg0MSw0MSldKV0se30p = (IConstructor) _read("prod(lit(\"\\\\iter-star(\\\\char-class([range(48,57),range(65,90),range(95,95),range(97,122)]))\"),[\\char-class([range(92,92)]),\\char-class([range(105,105)]),\\char-class([range(116,116)]),\\char-class([range(101,101)]),\\char-class([range(114,114)]),\\char-class([range(45,45)]),\\char-class([range(115,115)]),\\char-class([range(116,116)]),\\char-class([range(97,97)]),\\char-class([range(114,114)]),\\char-class([range(40,40)]),\\char-class([range(92,92)]),\\char-class([range(99,99)]),\\char-class([range(104,104)]),\\char-class([range(97,97)]),\\char-class([range(114,114)]),\\char-class([range(45,45)]),\\char-class([range(99,99)]),\\char-class([range(108,108)]),\\char-class([range(97,97)]),\\char-class([range(115,115)]),\\char-class([range(115,115)]),\\char-class([range(40,40)]),\\char-class([range(91,91)]),\\char-class([range(114,114)]),\\char-class([range(97,97)]),\\char-class([range(110,110)]),\\char-class([range(103,103)]),\\char-class([range(101,101)]),\\char-class([range(40,40)]),\\char-class([range(52,52)]),\\char-class([range(56,56)]),\\char-class([range(44,44)]),\\char-class([range(53,53)]),\\char-class([range(55,55)]),\\char-class([range(41,41)]),\\char-class([range(44,44)]),\\char-class([range(114,114)]),\\char-class([range(97,97)]),\\char-class([range(110,110)]),\\char-class([range(103,103)]),\\char-class([range(101,101)]),\\char-class([range(40,40)]),\\char-class([range(54,54)]),\\char-class([range(53,53)]),\\char-class([range(44,44)]),\\char-class([range(57,57)]),\\char-class([range(48,48)]),\\char-class([range(41,41)]),\\char-class([range(44,44)]),\\char-class([range(114,114)]),\\char-class([range(97,97)]),\\char-class([range(110,110)]),\\char-class([range(103,103)]),\\char-class([range(101,101)]),\\char-class([range(40,40)]),\\char-class([range(57,57)]),\\char-class([range(53,53)]),\\char-class([range(44,44)]),\\char-class([range(57,57)]),\\char-class([range(53,53)]),\\char-class([range(41,41)]),\\char-class([range(44,44)]),\\char-class([range(114,114)]),\\char-class([range(97,97)]),\\char-class([range(110,110)]),\\char-class([range(103,103)]),\\char-class([range(101,101)]),\\char-class([range(40,40)]),\\char-class([range(57,57)]),\\char-class([range(55,55)]),\\char-class([range(44,44)]),\\char-class([range(49,49)]),\\char-class([range(50,50)]),\\char-class([range(50,50)]),\\char-class([range(41,41)]),\\char-class([range(93,93)]),\\char-class([range(41,41)]),\\char-class([range(41,41)])],{})", RascalValueFactory.Production);
+ private static final IConstructor cHJvZChsYWJlbCgia2V5d29yZCIsc29ydCgiU3ludGF4RGVmaW5pdGlvbiIpKSxbbGl0KCJrZXl3b3JkIiksbGF5b3V0cygiTEFZT1VUTElTVCIpLGxhYmVsKCJkZWZpbmVkIixjb25kaXRpb25hbChzb3J0KCJTeW0iKSx7ZXhjZXB0KCJjaGFyYWN0ZXJDbGFzcyIpfSkpLGxheW91dHMoIkxBWU9VVExJU1QiKSxsaXQoIj0iKSxsYXlvdXRzKCJMQVlPVVRMSVNUIiksbGFiZWwoInByb2R1Y3Rpb24iLHNvcnQoIlByb2QiKSksbGF5b3V0cygiTEFZT1VUTElTVCIpLGxpdCgiOyIpXSx7dGFnKCJGb2xkYWJsZSIoKSl9KQ0000 = (IConstructor) _read("prod(label(\"keyword\",sort(\"SyntaxDefinition\")),[lit(\"keyword\"),layouts(\"LAYOUTLIST\"),label(\"defined\",conditional(sort(\"Sym\"),{except(\"characterClass\")})),layouts(\"LAYOUTLIST\"),lit(\"=\"),layouts(\"LAYOUTLIST\"),label(\"production\",sort(\"Prod\")),layouts(\"LAYOUTLIST\"),lit(\";\")],{tag(\"Foldable\"())})", RascalValueFactory.Production);
private static final IConstructor cHJvZChsYWJlbCgiaGlzdG9yeSIsc29ydCgiU2hlbGxDb21tYW5kIikpLFtsaXQoImhpc3RvcnkiKSxsYXlvdXRzKCJMQVlPVVRMSVNUIiksbGFiZWwoInRlcm1pbmF0b3IiLGxleCgiT3B0aW9uYWxUZXJtaW5hdG9yIikpXSx7fSk00 = (IConstructor) _read("prod(label(\"history\",sort(\"ShellCommand\")),[lit(\"history\"),layouts(\"LAYOUTLIST\"),label(\"terminator\",lex(\"OptionalTerminator\"))],{})", RascalValueFactory.Production);
private static final IConstructor cHJvZChrZXl3b3JkcygiUmFzY2FsS2V5d29yZHMiKSxbbGl0KCJmaWx0ZXIiKV0se30p = (IConstructor) _read("prod(keywords(\"RascalKeywords\"),[lit(\"filter\")],{})", RascalValueFactory.Production);
private static final IConstructor cHJvZChsYWJlbCgiZGF0YSIsc29ydCgiS2luZCIpKSxbbGl0KCJkYXRhIildLHt9KQ0000 = (IConstructor) _read("prod(label(\"data\",sort(\"Kind\")),[lit(\"data\")],{})", RascalValueFactory.Production);
@@ -4201,6 +4221,7 @@ protected IntegerList getFilteredParents(int childId) {
private static final IConstructor cHJvZChsYWJlbCgiJE1ldGFIb2xlIixsZXgoIlJlZ0V4cExpdGVyYWwiKSksW1xjaGFyLWNsYXNzKFtyYW5nZSgwLDApXSksbGl0KCJzb3J0KFwiUmVnRXhwTGl0ZXJhbFwiKSIpLGxpdCgiOiIpLGl0ZXIoXGNoYXItY2xhc3MoW3JhbmdlKDQ4LDU3KV0pKSxcY2hhci1jbGFzcyhbcmFuZ2UoMCwwKV0pXSx7dGFnKCJob2xlVHlwZSIobGV4KCJSZWdFeHBMaXRlcmFsIikpKX0p = (IConstructor) _read("prod(label(\"$MetaHole\",lex(\"RegExpLiteral\")),[\\char-class([range(0,0)]),lit(\"sort(\\\"RegExpLiteral\\\")\"),lit(\":\"),iter(\\char-class([range(48,57)])),\\char-class([range(0,0)])],{tag(\"holeType\"(lex(\"RegExpLiteral\")))})", RascalValueFactory.Production);
private static final IConstructor cHJvZChsaXQoIj8iKSxbXGNoYXItY2xhc3MoW3JhbmdlKDYzLDYzKV0pXSx7fSk00 = (IConstructor) _read("prod(lit(\"?\"),[\\char-class([range(63,63)])],{})", RascalValueFactory.Production);
private static final IConstructor cHJvZChsYWJlbCgiYnJhY2tldCIsc29ydCgiQ2xhc3MiKSksW2xpdCgiKCIpLGxheW91dHMoIkxBWU9VVExJU1QiKSxsYWJlbCgiY2hhckNsYXNzIixzb3J0KCJDbGFzcyIpKSxsYXlvdXRzKCJMQVlPVVRMSVNUIiksbGl0KCIpIildLHticmFja2V0KCl9KQ0000 = (IConstructor) _read("prod(label(\"bracket\",sort(\"Class\")),[lit(\"(\"),layouts(\"LAYOUTLIST\"),label(\"charClass\",sort(\"Class\")),layouts(\"LAYOUTLIST\"),lit(\")\")],{bracket()})", RascalValueFactory.Production);
+ private static final IConstructor cHJvZChsYWJlbCgibGFuZ3VhZ2UiLHNvcnQoIlN5bnRheERlZmluaXRpb24iKSksW2xhYmVsKCJzdGFydCIsc29ydCgiU3RhcnQiKSksbGF5b3V0cygiTEFZT1VUTElTVCIpLGxpdCgic3ludGF4IiksbGF5b3V0cygiTEFZT1VUTElTVCIpLGxhYmVsKCJkZWZpbmVkIixjb25kaXRpb25hbChzb3J0KCJTeW0iKSx7ZXhjZXB0KCJjaGFyYWN0ZXJDbGFzcyIpfSkpLGxheW91dHMoIkxBWU9VVExJU1QiKSxsaXQoIj0iKSxsYXlvdXRzKCJMQVlPVVRMSVNUIiksbGFiZWwoInByb2R1Y3Rpb24iLHNvcnQoIlByb2QiKSksbGF5b3V0cygiTEFZT1VUTElTVCIpLGxpdCgiOyIpXSx7dGFnKCJGb2xkYWJsZSIoKSl9KQ0000 = (IConstructor) _read("prod(label(\"language\",sort(\"SyntaxDefinition\")),[label(\"start\",sort(\"Start\")),layouts(\"LAYOUTLIST\"),lit(\"syntax\"),layouts(\"LAYOUTLIST\"),label(\"defined\",conditional(sort(\"Sym\"),{except(\"characterClass\")})),layouts(\"LAYOUTLIST\"),lit(\"=\"),layouts(\"LAYOUTLIST\"),label(\"production\",sort(\"Prod\")),layouts(\"LAYOUTLIST\"),lit(\";\")],{tag(\"Foldable\"())})", RascalValueFactory.Production);
private static final IConstructor cHJvZChsZXgoIk1pZFBhdGhDaGFycyIpLFtsaXQoIlw11IiksbGV4KCJVUkxDaGFycyIpLGxpdCgiXDwiKV0se30p = (IConstructor) _read("prod(lex(\"MidPathChars\"),[lit(\"\\>\"),lex(\"URLChars\"),lit(\"\\<\")],{})", RascalValueFactory.Production);
private static final IConstructor cHJvZChsaXQoInNvcnQoXCJUeXBlVmFyXCIpIiksW1xjaGFyLWNsYXNzKFtyYW5nZSgxMTUsMTE1KV0pLFxjaGFyLWNsYXNzKFtyYW5nZSgxMTEsMTExKV0pLFxjaGFyLWNsYXNzKFtyYW5nZSgxMTQsMTE0KV0pLFxjaGFyLWNsYXNzKFtyYW5nZSgxMTYsMTE2KV0pLFxjaGFyLWNsYXNzKFtyYW5nZSg0MCw0MCldKSxcY2hhci1jbGFzcyhbcmFuZ2UoMzQsMzQpXSksXGNoYXItY2xhc3MoW3JhbmdlKDg0LDg0KV0pLFxjaGFyLWNsYXNzKFtyYW5nZSgxMjEsMTIxKV0pLFxjaGFyLWNsYXNzKFtyYW5nZSgxMTIsMTEyKV0pLFxjaGFyLWNsYXNzKFtyYW5nZSgxMDEsMTAxKV0pLFxjaGFyLWNsYXNzKFtyYW5nZSg4Niw4NildKSxcY2hhci1jbGFzcyhbcmFuZ2UoOTcsOTcpXSksXGNoYXItY2xhc3MoW3JhbmdlKDExNCwxMTQpXSksXGNoYXItY2xhc3MoW3JhbmdlKDM0LDM0KV0pLFxjaGFyLWNsYXNzKFtyYW5nZSg0MSw0MSldKV0se30p = (IConstructor) _read("prod(lit(\"sort(\\\"TypeVar\\\")\"),[\\char-class([range(115,115)]),\\char-class([range(111,111)]),\\char-class([range(114,114)]),\\char-class([range(116,116)]),\\char-class([range(40,40)]),\\char-class([range(34,34)]),\\char-class([range(84,84)]),\\char-class([range(121,121)]),\\char-class([range(112,112)]),\\char-class([range(101,101)]),\\char-class([range(86,86)]),\\char-class([range(97,97)]),\\char-class([range(114,114)]),\\char-class([range(34,34)]),\\char-class([range(41,41)])],{})", RascalValueFactory.Production);
private static final IConstructor cHJvZChsYWJlbCgiJE1ldGFIb2xlIixzb3J0KCJWaXNpdCIpKSxbXGNoYXItY2xhc3MoW3JhbmdlKDAsMCldKSxsaXQoInNvcnQoXCJWaXNpdFwiKSIpLGxpdCgiOiIpLGl0ZXIoXGNoYXItY2xhc3MoW3JhbmdlKDQ4LDU3KV0pKSxcY2hhci1jbGFzcyhbcmFuZ2UoMCwwKV0pXSx7dGFnKCJob2xlVHlwZSIoc29ydCgiVmlzaXQiKSkpfSk00 = (IConstructor) _read("prod(label(\"$MetaHole\",sort(\"Visit\")),[\\char-class([range(0,0)]),lit(\"sort(\\\"Visit\\\")\"),lit(\":\"),iter(\\char-class([range(48,57)])),\\char-class([range(0,0)])],{tag(\"holeType\"(sort(\"Visit\")))})", RascalValueFactory.Production);
@@ -4345,6 +4366,7 @@ protected IntegerList getFilteredParents(int childId) {
private static final IConstructor cHJvZChsaXQoImJvb2wiKSxbXGNoYXItY2xhc3MoW3JhbmdlKDk4LDk4KV0pLFxjaGFyLWNsYXNzKFtyYW5nZSgxMTEsMTExKV0pLFxjaGFyLWNsYXNzKFtyYW5nZSgxMTEsMTExKV0pLFxjaGFyLWNsYXNzKFtyYW5nZSgxMDgsMTA4KV0pXSx7fSk00 = (IConstructor) _read("prod(lit(\"bool\"),[\\char-class([range(98,98)]),\\char-class([range(111,111)]),\\char-class([range(111,111)]),\\char-class([range(108,108)])],{})", RascalValueFactory.Production);
private static final IConstructor cHJvZChsYWJlbCgiJE1ldGFIb2xlIixzb3J0KCJWYXJpYW50IikpLFtcY2hhci1jbGFzcyhbcmFuZ2UoMCwwKV0pLGxpdCgic29ydChcIlZhcmlhbnRcIikiKSxsaXQoIjoiKSxpdGVyKFxjaGFyLWNsYXNzKFtyYW5nZSg0OCw1NyldKSksXGNoYXItY2xhc3MoW3JhbmdlKDAsMCldKV0se3RhZygiaG9sZVR5cGUiKHNvcnQoIlZhcmlhbnQiKSkpfSk00 = (IConstructor) _read("prod(label(\"$MetaHole\",sort(\"Variant\")),[\\char-class([range(0,0)]),lit(\"sort(\\\"Variant\\\")\"),lit(\":\"),iter(\\char-class([range(48,57)])),\\char-class([range(0,0)])],{tag(\"holeType\"(sort(\"Variant\")))})", RascalValueFactory.Production);
private static final IConstructor cmVndWxhcihvcHQoXGNoYXItY2xhc3MoW3JhbmdlKDQ4LDU3KV0pKSk00 = (IConstructor) _read("regular(opt(\\char-class([range(48,57)])))", RascalValueFactory.Production);
+ private static final IConstructor cHJvZChsYWJlbCgibGV4aWNhbCIsc29ydCgiU3ludGF4RGVmaW5pdGlvbiIpKSxbbGl0KCJsZXhpY2FsIiksbGF5b3V0cygiTEFZT1VUTElTVCIpLGxhYmVsKCJkZWZpbmVkIixjb25kaXRpb25hbChzb3J0KCJTeW0iKSx7ZXhjZXB0KCJjaGFyYWN0ZXJDbGFzcyIpfSkpLGxheW91dHMoIkxBWU9VVExJU1QiKSxsaXQoIj0iKSxsYXlvdXRzKCJMQVlPVVRMSVNUIiksbGFiZWwoInByb2R1Y3Rpb24iLHNvcnQoIlByb2QiKSksbGF5b3V0cygiTEFZT1VUTElTVCIpLGxpdCgiOyIpXSx7dGFnKCJGb2xkYWJsZSIoKSl9KQ0000 = (IConstructor) _read("prod(label(\"lexical\",sort(\"SyntaxDefinition\")),[lit(\"lexical\"),layouts(\"LAYOUTLIST\"),label(\"defined\",conditional(sort(\"Sym\"),{except(\"characterClass\")})),layouts(\"LAYOUTLIST\"),lit(\"=\"),layouts(\"LAYOUTLIST\"),label(\"production\",sort(\"Prod\")),layouts(\"LAYOUTLIST\"),lit(\";\")],{tag(\"Foldable\"())})", RascalValueFactory.Production);
private static final IConstructor cHJvZChsYWJlbCgiZW1wdHkiLHNvcnQoIlN5bSIpKSxbbGl0KCIoIiksbGF5b3V0cygiTEFZT1VUTElTVCIpLGxpdCgiKSIpXSx7fSk00 = (IConstructor) _read("prod(label(\"empty\",sort(\"Sym\")),[lit(\"(\"),layouts(\"LAYOUTLIST\"),lit(\")\")],{})", RascalValueFactory.Production);
private static final IConstructor cHJvZChsZXgoIlByb3RvY29sQ2hhcnMiKSxbXGNoYXItY2xhc3MoW3JhbmdlKDEyNCwxMjQpXSksbGV4KCJVUkxDaGFycyIpLGNvbmRpdGlvbmFsKGxpdCgiOi8vIikse1xub3QtZm9sbG93KFxjaGFyLWNsYXNzKFtyYW5nZSg5LDEwKSxyYW5nZSgxMywxMykscmFuZ2UoMzIsMzIpLHJhbmdlKDE2MCwxNjApLHJhbmdlKDU3NjAsNTc2MCkscmFuZ2UoODE5Miw4MjAyKSxyYW5nZSg4MjM5LDgyMzkpLHJhbmdlKDgyODcsODI4NykscmFuZ2UoMTIyODgsMTIyODgpXSkpfSldLHt9KQ0000 = (IConstructor) _read("prod(lex(\"ProtocolChars\"),[\\char-class([range(124,124)]),lex(\"URLChars\"),conditional(lit(\"://\"),{\\not-follow(\\char-class([range(9,10),range(13,13),range(32,32),range(160,160),range(5760,5760),range(8192,8202),range(8239,8239),range(8287,8287),range(12288,12288)]))})],{})", RascalValueFactory.Production);
private static final IConstructor cHJvZChsaXQoInJldHVybiIpLFtcY2hhci1jbGFzcyhbcmFuZ2UoMTE0LDExNCldKSxcY2hhci1jbGFzcyhbcmFuZ2UoMTAxLDEwMSldKSxcY2hhci1jbGFzcyhbcmFuZ2UoMTE2LDExNildKSxcY2hhci1jbGFzcyhbcmFuZ2UoMTE3LDExNyldKSxcY2hhci1jbGFzcyhbcmFuZ2UoMTE0LDExNCldKSxcY2hhci1jbGFzcyhbcmFuZ2UoMTEwLDExMCldKV0se30p = (IConstructor) _read("prod(lit(\"return\"),[\\char-class([range(114,114)]),\\char-class([range(101,101)]),\\char-class([range(116,116)]),\\char-class([range(117,117)]),\\char-class([range(114,114)]),\\char-class([range(110,110)])],{})", RascalValueFactory.Production);
@@ -6145,31 +6167,31 @@ protected static class Renaming {
protected static final void _init_cHJvZChsYWJlbCgiZGVmYXVsdCIsc29ydCgiUmVuYW1pbmciKSksW2xhYmVsKCJmcm9tIixsZXgoIk5hbWUiKSksbGF5b3V0cygiTEFZT1VUTElTVCIpLGxpdCgiPVw11IiksbGF5b3V0cygiTEFZT1VUTElTVCIpLGxhYmVsKCJ0byIsbGV4KCJOYW1lIikpXSx7fSk00(ExpectBuilder builder) {
AbstractStackNode[] tmp = (AbstractStackNode[]) new AbstractStackNode[5];
- tmp[1] = new NonTerminalStackNode(1921, 1, "layouts_LAYOUTLIST", null, null);
- tmp[2] = new LiteralStackNode(1922, 2, cHJvZChsaXQoIj1cPiIpLFtcY2hhci1jbGFzcyhbcmFuZ2UoNjEsNjEpXSksXGNoYXItY2xhc3MoW3JhbmdlKDYyLDYyKV0pXSx7fSk00, new int[] {61,62}, null, null);
- tmp[4] = new NonTerminalStackNode(1924, 4, "Name", null, null);
- tmp[3] = new NonTerminalStackNode(1923, 3, "layouts_LAYOUTLIST", null, null);
- tmp[0] = new NonTerminalStackNode(1919, 0, "Name", null, null);
+ tmp[1] = new NonTerminalStackNode(1918, 1, "layouts_LAYOUTLIST", null, null);
+ tmp[2] = new LiteralStackNode(1919, 2, cHJvZChsaXQoIj1cPiIpLFtcY2hhci1jbGFzcyhbcmFuZ2UoNjEsNjEpXSksXGNoYXItY2xhc3MoW3JhbmdlKDYyLDYyKV0pXSx7fSk00, new int[] {61,62}, null, null);
+ tmp[4] = new NonTerminalStackNode(1921, 4, "Name", null, null);
+ tmp[3] = new NonTerminalStackNode(1920, 3, "layouts_LAYOUTLIST", null, null);
+ tmp[0] = new NonTerminalStackNode(1916, 0, "Name", null, null);
builder.addAlternative(RascalParser.cHJvZChsYWJlbCgiZGVmYXVsdCIsc29ydCgiUmVuYW1pbmciKSksW2xhYmVsKCJmcm9tIixsZXgoIk5hbWUiKSksbGF5b3V0cygiTEFZT1VUTElTVCIpLGxpdCgiPVw11IiksbGF5b3V0cygiTEFZT1VUTElTVCIpLGxhYmVsKCJ0byIsbGV4KCJOYW1lIikpXSx7fSk00, tmp);
}
protected static final void _init_cHJvZChsYWJlbCgiJE1ldGFIb2xlIixzb3J0KCJSZW5hbWluZyIpKSxbXGNoYXItY2xhc3MoW3JhbmdlKDAsMCldKSxsaXQoInNvcnQoXCJSZW5hbWluZ1wiKSIpLGxpdCgiOiIpLGl0ZXIoXGNoYXItY2xhc3MoW3JhbmdlKDQ4LDU3KV0pKSxcY2hhci1jbGFzcyhbcmFuZ2UoMCwwKV0pXSx7dGFnKCJob2xlVHlwZSIoc29ydCgiUmVuYW1pbmciKSkpfSk00(ExpectBuilder builder) {
AbstractStackNode[] tmp = (AbstractStackNode[]) new AbstractStackNode[5];
- tmp[2] = new LiteralStackNode(1930, 2, cHJvZChsaXQoIjoiKSxbXGNoYXItY2xhc3MoW3JhbmdlKDU4LDU4KV0pXSx7fSk00, new int[] {58}, null, null);
- tmp[4] = new CharStackNode(1933, 4, new int[][]{{0,0}}, null, null);
- tmp[0] = new CharStackNode(1928, 0, new int[][]{{0,0}}, null, null);
- tmp[1] = new LiteralStackNode(1929, 1, cHJvZChsaXQoInNvcnQoXCJSZW5hbWluZ1wiKSIpLFtcY2hhci1jbGFzcyhbcmFuZ2UoMTE1LDExNSldKSxcY2hhci1jbGFzcyhbcmFuZ2UoMTExLDExMSldKSxcY2hhci1jbGFzcyhbcmFuZ2UoMTE0LDExNCldKSxcY2hhci1jbGFzcyhbcmFuZ2UoMTE2LDExNildKSxcY2hhci1jbGFzcyhbcmFuZ2UoNDAsNDApXSksXGNoYXItY2xhc3MoW3JhbmdlKDM0LDM0KV0pLFxjaGFyLWNsYXNzKFtyYW5nZSg4Miw4MildKSxcY2hhci1jbGFzcyhbcmFuZ2UoMTAxLDEwMSldKSxcY2hhci1jbGFzcyhbcmFuZ2UoMTEwLDExMCldKSxcY2hhci1jbGFzcyhbcmFuZ2UoOTcsOTcpXSksXGNoYXItY2xhc3MoW3JhbmdlKDEwOSwxMDkpXSksXGNoYXItY2xhc3MoW3JhbmdlKDEwNSwxMDUpXSksXGNoYXItY2xhc3MoW3JhbmdlKDExMCwxMTApXSksXGNoYXItY2xhc3MoW3JhbmdlKDEwMywxMDMpXSksXGNoYXItY2xhc3MoW3JhbmdlKDM0LDM0KV0pLFxjaGFyLWNsYXNzKFtyYW5nZSg0MSw0MSldKV0se30p, new int[] {115,111,114,116,40,34,82,101,110,97,109,105,110,103,34,41}, null, null);
- tmp[3] = new ListStackNode(1932, 3, cmVndWxhcihpdGVyKFxjaGFyLWNsYXNzKFtyYW5nZSg0OCw1NyldKSkp, new CharStackNode(1931, 0, new int[][]{{48,57}}, null, null), true, null, null);
+ tmp[2] = new LiteralStackNode(1927, 2, cHJvZChsaXQoIjoiKSxbXGNoYXItY2xhc3MoW3JhbmdlKDU4LDU4KV0pXSx7fSk00, new int[] {58}, null, null);
+ tmp[4] = new CharStackNode(1930, 4, new int[][]{{0,0}}, null, null);
+ tmp[0] = new CharStackNode(1925, 0, new int[][]{{0,0}}, null, null);
+ tmp[1] = new LiteralStackNode(1926, 1, cHJvZChsaXQoInNvcnQoXCJSZW5hbWluZ1wiKSIpLFtcY2hhci1jbGFzcyhbcmFuZ2UoMTE1LDExNSldKSxcY2hhci1jbGFzcyhbcmFuZ2UoMTExLDExMSldKSxcY2hhci1jbGFzcyhbcmFuZ2UoMTE0LDExNCldKSxcY2hhci1jbGFzcyhbcmFuZ2UoMTE2LDExNildKSxcY2hhci1jbGFzcyhbcmFuZ2UoNDAsNDApXSksXGNoYXItY2xhc3MoW3JhbmdlKDM0LDM0KV0pLFxjaGFyLWNsYXNzKFtyYW5nZSg4Miw4MildKSxcY2hhci1jbGFzcyhbcmFuZ2UoMTAxLDEwMSldKSxcY2hhci1jbGFzcyhbcmFuZ2UoMTEwLDExMCldKSxcY2hhci1jbGFzcyhbcmFuZ2UoOTcsOTcpXSksXGNoYXItY2xhc3MoW3JhbmdlKDEwOSwxMDkpXSksXGNoYXItY2xhc3MoW3JhbmdlKDEwNSwxMDUpXSksXGNoYXItY2xhc3MoW3JhbmdlKDExMCwxMTApXSksXGNoYXItY2xhc3MoW3JhbmdlKDEwMywxMDMpXSksXGNoYXItY2xhc3MoW3JhbmdlKDM0LDM0KV0pLFxjaGFyLWNsYXNzKFtyYW5nZSg0MSw0MSldKV0se30p, new int[] {115,111,114,116,40,34,82,101,110,97,109,105,110,103,34,41}, null, null);
+ tmp[3] = new ListStackNode(1929, 3, cmVndWxhcihpdGVyKFxjaGFyLWNsYXNzKFtyYW5nZSg0OCw1NyldKSkp, new CharStackNode(1928, 0, new int[][]{{48,57}}, null, null), true, null, null);
builder.addAlternative(RascalParser.cHJvZChsYWJlbCgiJE1ldGFIb2xlIixzb3J0KCJSZW5hbWluZyIpKSxbXGNoYXItY2xhc3MoW3JhbmdlKDAsMCldKSxsaXQoInNvcnQoXCJSZW5hbWluZ1wiKSIpLGxpdCgiOiIpLGl0ZXIoXGNoYXItY2xhc3MoW3JhbmdlKDQ4LDU3KV0pKSxcY2hhci1jbGFzcyhbcmFuZ2UoMCwwKV0pXSx7dGFnKCJob2xlVHlwZSIoc29ydCgiUmVuYW1pbmciKSkpfSk00, tmp);
}
protected static final void _init_cHJvZChsYWJlbCgiJE1ldGFIb2xlIixzb3J0KCJSZW5hbWluZyIpKSxbXGNoYXItY2xhc3MoW3JhbmdlKDAsMCldKSxsaXQoIlxcaXRlci1zZXBzKHNvcnQoXCJSZW5hbWluZ1wiKSxbbGl0KFwiLFwiKV0pIiksbGl0KCI6IiksaXRlcihcY2hhci1jbGFzcyhbcmFuZ2UoNDgsNTcpXSkpLFxjaGFyLWNsYXNzKFtyYW5nZSgwLDApXSldLHt0YWcoImhvbGVUeXBlIihcaXRlci1zZXBzKHNvcnQoIlJlbmFtaW5nIiksW2xheW91dHMoIkxBWU9VVExJU1QiKSxsaXQoIiwiKSxsYXlvdXRzKCJMQVlPVVRMSVNUIildKSkpfSk00(ExpectBuilder builder) {
AbstractStackNode[] tmp = (AbstractStackNode[]) new AbstractStackNode[5];
- tmp[2] = new LiteralStackNode(1939, 2, cHJvZChsaXQoIjoiKSxbXGNoYXItY2xhc3MoW3JhbmdlKDU4LDU4KV0pXSx7fSk00, new int[] {58}, null, null);
- tmp[4] = new CharStackNode(1942, 4, new int[][]{{0,0}}, null, null);
- tmp[0] = new CharStackNode(1937, 0, new int[][]{{0,0}}, null, null);
- tmp[1] = new LiteralStackNode(1938, 1, cHJvZChsaXQoIlxcaXRlci1zZXBzKHNvcnQoXCJSZW5hbWluZ1wiKSxbbGl0KFwiLFwiKV0pIiksW1xjaGFyLWNsYXNzKFtyYW5nZSg5Miw5MildKSxcY2hhci1jbGFzcyhbcmFuZ2UoMTA1LDEwNSldKSxcY2hhci1jbGFzcyhbcmFuZ2UoMTE2LDExNildKSxcY2hhci1jbGFzcyhbcmFuZ2UoMTAxLDEwMSldKSxcY2hhci1jbGFzcyhbcmFuZ2UoMTE0LDExNCldKSxcY2hhci1jbGFzcyhbcmFuZ2UoNDUsNDUpXSksXGNoYXItY2xhc3MoW3JhbmdlKDExNSwxMTUpXSksXGNoYXItY2xhc3MoW3JhbmdlKDEwMSwxMDEpXSksXGNoYXItY2xhc3MoW3JhbmdlKDExMiwxMTIpXSksXGNoYXItY2xhc3MoW3JhbmdlKDExNSwxMTUpXSksXGNoYXItY2xhc3MoW3JhbmdlKDQwLDQwKV0pLFxjaGFyLWNsYXNzKFtyYW5nZSgxMTUsMTE1KV0pLFxjaGFyLWNsYXNzKFtyYW5nZSgxMTEsMTExKV0pLFxjaGFyLWNsYXNzKFtyYW5nZSgxMTQsMTE0KV0pLFxjaGFyLWNsYXNzKFtyYW5nZSgxMTYsMTE2KV0pLFxjaGFyLWNsYXNzKFtyYW5nZSg0MCw0MCldKSxcY2hhci1jbGFzcyhbcmFuZ2UoMzQsMzQpXSksXGNoYXItY2xhc3MoW3JhbmdlKDgyLDgyKV0pLFxjaGFyLWNsYXNzKFtyYW5nZSgxMDEsMTAxKV0pLFxjaGFyLWNsYXNzKFtyYW5nZSgxMTAsMTEwKV0pLFxjaGFyLWNsYXNzKFtyYW5nZSg5Nyw5NyldKSxcY2hhci1jbGFzcyhbcmFuZ2UoMTA5LDEwOSldKSxcY2hhci1jbGFzcyhbcmFuZ2UoMTA1LDEwNSldKSxcY2hhci1jbGFzcyhbcmFuZ2UoMTEwLDExMCldKSxcY2hhci1jbGFzcyhbcmFuZ2UoMTAzLDEwMyldKSxcY2hhci1jbGFzcyhbcmFuZ2UoMzQsMzQpXSksXGNoYXItY2xhc3MoW3JhbmdlKDQxLDQxKV0pLFxjaGFyLWNsYXNzKFtyYW5nZSg0NCw0NCldKSxcY2hhci1jbGFzcyhbcmFuZ2UoOTEsOTEpXSksXGNoYXItY2xhc3MoW3JhbmdlKDEwOCwxMDgpXSksXGNoYXItY2xhc3MoW3JhbmdlKDEwNSwxMDUpXSksXGNoYXItY2xhc3MoW3JhbmdlKDExNiwxMTYpXSksXGNoYXItY2xhc3MoW3JhbmdlKDQwLDQwKV0pLFxjaGFyLWNsYXNzKFtyYW5nZSgzNCwzNCldKSxcY2hhci1jbGFzcyhbcmFuZ2UoNDQsNDQpXSksXGNoYXItY2xhc3MoW3JhbmdlKDM0LDM0KV0pLFxjaGFyLWNsYXNzKFtyYW5nZSg0MSw0MSldKSxcY2hhci1jbGFzcyhbcmFuZ2UoOTMsOTMpXSksXGNoYXItY2xhc3MoW3JhbmdlKDQxLDQxKV0pXSx7fSk00, new int[] {92,105,116,101,114,45,115,101,112,115,40,115,111,114,116,40,34,82,101,110,97,109,105,110,103,34,41,44,91,108,105,116,40,34,44,34,41,93,41}, null, null);
- tmp[3] = new ListStackNode(1941, 3, cmVndWxhcihpdGVyKFxjaGFyLWNsYXNzKFtyYW5nZSg0OCw1NyldKSkp, new CharStackNode(1940, 0, new int[][]{{48,57}}, null, null), true, null, null);
+ tmp[2] = new LiteralStackNode(1936, 2, cHJvZChsaXQoIjoiKSxbXGNoYXItY2xhc3MoW3JhbmdlKDU4LDU4KV0pXSx7fSk00, new int[] {58}, null, null);
+ tmp[4] = new CharStackNode(1939, 4, new int[][]{{0,0}}, null, null);
+ tmp[0] = new CharStackNode(1934, 0, new int[][]{{0,0}}, null, null);
+ tmp[1] = new LiteralStackNode(1935, 1, cHJvZChsaXQoIlxcaXRlci1zZXBzKHNvcnQoXCJSZW5hbWluZ1wiKSxbbGl0KFwiLFwiKV0pIiksW1xjaGFyLWNsYXNzKFtyYW5nZSg5Miw5MildKSxcY2hhci1jbGFzcyhbcmFuZ2UoMTA1LDEwNSldKSxcY2hhci1jbGFzcyhbcmFuZ2UoMTE2LDExNildKSxcY2hhci1jbGFzcyhbcmFuZ2UoMTAxLDEwMSldKSxcY2hhci1jbGFzcyhbcmFuZ2UoMTE0LDExNCldKSxcY2hhci1jbGFzcyhbcmFuZ2UoNDUsNDUpXSksXGNoYXItY2xhc3MoW3JhbmdlKDExNSwxMTUpXSksXGNoYXItY2xhc3MoW3JhbmdlKDEwMSwxMDEpXSksXGNoYXItY2xhc3MoW3JhbmdlKDExMiwxMTIpXSksXGNoYXItY2xhc3MoW3JhbmdlKDExNSwxMTUpXSksXGNoYXItY2xhc3MoW3JhbmdlKDQwLDQwKV0pLFxjaGFyLWNsYXNzKFtyYW5nZSgxMTUsMTE1KV0pLFxjaGFyLWNsYXNzKFtyYW5nZSgxMTEsMTExKV0pLFxjaGFyLWNsYXNzKFtyYW5nZSgxMTQsMTE0KV0pLFxjaGFyLWNsYXNzKFtyYW5nZSgxMTYsMTE2KV0pLFxjaGFyLWNsYXNzKFtyYW5nZSg0MCw0MCldKSxcY2hhci1jbGFzcyhbcmFuZ2UoMzQsMzQpXSksXGNoYXItY2xhc3MoW3JhbmdlKDgyLDgyKV0pLFxjaGFyLWNsYXNzKFtyYW5nZSgxMDEsMTAxKV0pLFxjaGFyLWNsYXNzKFtyYW5nZSgxMTAsMTEwKV0pLFxjaGFyLWNsYXNzKFtyYW5nZSg5Nyw5NyldKSxcY2hhci1jbGFzcyhbcmFuZ2UoMTA5LDEwOSldKSxcY2hhci1jbGFzcyhbcmFuZ2UoMTA1LDEwNSldKSxcY2hhci1jbGFzcyhbcmFuZ2UoMTEwLDExMCldKSxcY2hhci1jbGFzcyhbcmFuZ2UoMTAzLDEwMyldKSxcY2hhci1jbGFzcyhbcmFuZ2UoMzQsMzQpXSksXGNoYXItY2xhc3MoW3JhbmdlKDQxLDQxKV0pLFxjaGFyLWNsYXNzKFtyYW5nZSg0NCw0NCldKSxcY2hhci1jbGFzcyhbcmFuZ2UoOTEsOTEpXSksXGNoYXItY2xhc3MoW3JhbmdlKDEwOCwxMDgpXSksXGNoYXItY2xhc3MoW3JhbmdlKDEwNSwxMDUpXSksXGNoYXItY2xhc3MoW3JhbmdlKDExNiwxMTYpXSksXGNoYXItY2xhc3MoW3JhbmdlKDQwLDQwKV0pLFxjaGFyLWNsYXNzKFtyYW5nZSgzNCwzNCldKSxcY2hhci1jbGFzcyhbcmFuZ2UoNDQsNDQpXSksXGNoYXItY2xhc3MoW3JhbmdlKDM0LDM0KV0pLFxjaGFyLWNsYXNzKFtyYW5nZSg0MSw0MSldKSxcY2hhci1jbGFzcyhbcmFuZ2UoOTMsOTMpXSksXGNoYXItY2xhc3MoW3JhbmdlKDQxLDQxKV0pXSx7fSk00, new int[] {92,105,116,101,114,45,115,101,112,115,40,115,111,114,116,40,34,82,101,110,97,109,105,110,103,34,41,44,91,108,105,116,40,34,44,34,41,93,41}, null, null);
+ tmp[3] = new ListStackNode(1938, 3, cmVndWxhcihpdGVyKFxjaGFyLWNsYXNzKFtyYW5nZSg0OCw1NyldKSkp, new CharStackNode(1937, 0, new int[][]{{48,57}}, null, null), true, null, null);
builder.addAlternative(RascalParser.cHJvZChsYWJlbCgiJE1ldGFIb2xlIixzb3J0KCJSZW5hbWluZyIpKSxbXGNoYXItY2xhc3MoW3JhbmdlKDAsMCldKSxsaXQoIlxcaXRlci1zZXBzKHNvcnQoXCJSZW5hbWluZ1wiKSxbbGl0KFwiLFwiKV0pIiksbGl0KCI6IiksaXRlcihcY2hhci1jbGFzcyhbcmFuZ2UoNDgsNTcpXSkpLFxjaGFyLWNsYXNzKFtyYW5nZSgwLDApXSldLHt0YWcoImhvbGVUeXBlIihcaXRlci1zZXBzKHNvcnQoIlJlbmFtaW5nIiksW2xheW91dHMoIkxBWU9VVExJU1QiKSxsaXQoIiwiKSxsYXlvdXRzKCJMQVlPVVRMSVNUIildKSkpfSk00, tmp);
}
public static void init(ExpectBuilder builder){
@@ -6194,43 +6216,43 @@ protected static class Catch {
protected static final void _init_cHJvZChsYWJlbCgiJE1ldGFIb2xlIixzb3J0KCJDYXRjaCIpKSxbXGNoYXItY2xhc3MoW3JhbmdlKDAsMCldKSxsaXQoIml0ZXIoc29ydChcIkNhdGNoXCIpKSIpLGxpdCgiOiIpLGl0ZXIoXGNoYXItY2xhc3MoW3JhbmdlKDQ4LDU3KV0pKSxcY2hhci1jbGFzcyhbcmFuZ2UoMCwwKV0pXSx7dGFnKCJob2xlVHlwZSIoXGl0ZXItc2Vwcyhzb3J0KCJDYXRjaCIpLFtsYXlvdXRzKCJMQVlPVVRMSVNUIildKSkpfSk00(ExpectBuilder builder) {
AbstractStackNode[] tmp = (AbstractStackNode[]) new AbstractStackNode[5];
- tmp[1] = new LiteralStackNode(1985, 1, cHJvZChsaXQoIml0ZXIoc29ydChcIkNhdGNoXCIpKSIpLFtcY2hhci1jbGFzcyhbcmFuZ2UoMTA1LDEwNSldKSxcY2hhci1jbGFzcyhbcmFuZ2UoMTE2LDExNildKSxcY2hhci1jbGFzcyhbcmFuZ2UoMTAxLDEwMSldKSxcY2hhci1jbGFzcyhbcmFuZ2UoMTE0LDExNCldKSxcY2hhci1jbGFzcyhbcmFuZ2UoNDAsNDApXSksXGNoYXItY2xhc3MoW3JhbmdlKDExNSwxMTUpXSksXGNoYXItY2xhc3MoW3JhbmdlKDExMSwxMTEpXSksXGNoYXItY2xhc3MoW3JhbmdlKDExNCwxMTQpXSksXGNoYXItY2xhc3MoW3JhbmdlKDExNiwxMTYpXSksXGNoYXItY2xhc3MoW3JhbmdlKDQwLDQwKV0pLFxjaGFyLWNsYXNzKFtyYW5nZSgzNCwzNCldKSxcY2hhci1jbGFzcyhbcmFuZ2UoNjcsNjcpXSksXGNoYXItY2xhc3MoW3JhbmdlKDk3LDk3KV0pLFxjaGFyLWNsYXNzKFtyYW5nZSgxMTYsMTE2KV0pLFxjaGFyLWNsYXNzKFtyYW5nZSg5OSw5OSldKSxcY2hhci1jbGFzcyhbcmFuZ2UoMTA0LDEwNCldKSxcY2hhci1jbGFzcyhbcmFuZ2UoMzQsMzQpXSksXGNoYXItY2xhc3MoW3JhbmdlKDQxLDQxKV0pLFxjaGFyLWNsYXNzKFtyYW5nZSg0MSw0MSldKV0se30p, new int[] {105,116,101,114,40,115,111,114,116,40,34,67,97,116,99,104,34,41,41}, null, null);
- tmp[2] = new LiteralStackNode(1986, 2, cHJvZChsaXQoIjoiKSxbXGNoYXItY2xhc3MoW3JhbmdlKDU4LDU4KV0pXSx7fSk00, new int[] {58}, null, null);
- tmp[4] = new CharStackNode(1989, 4, new int[][]{{0,0}}, null, null);
- tmp[3] = new ListStackNode(1988, 3, cmVndWxhcihpdGVyKFxjaGFyLWNsYXNzKFtyYW5nZSg0OCw1NyldKSkp, new CharStackNode(1987, 0, new int[][]{{48,57}}, null, null), true, null, null);
- tmp[0] = new CharStackNode(1984, 0, new int[][]{{0,0}}, null, null);
+ tmp[1] = new LiteralStackNode(1982, 1, cHJvZChsaXQoIml0ZXIoc29ydChcIkNhdGNoXCIpKSIpLFtcY2hhci1jbGFzcyhbcmFuZ2UoMTA1LDEwNSldKSxcY2hhci1jbGFzcyhbcmFuZ2UoMTE2LDExNildKSxcY2hhci1jbGFzcyhbcmFuZ2UoMTAxLDEwMSldKSxcY2hhci1jbGFzcyhbcmFuZ2UoMTE0LDExNCldKSxcY2hhci1jbGFzcyhbcmFuZ2UoNDAsNDApXSksXGNoYXItY2xhc3MoW3JhbmdlKDExNSwxMTUpXSksXGNoYXItY2xhc3MoW3JhbmdlKDExMSwxMTEpXSksXGNoYXItY2xhc3MoW3JhbmdlKDExNCwxMTQpXSksXGNoYXItY2xhc3MoW3JhbmdlKDExNiwxMTYpXSksXGNoYXItY2xhc3MoW3JhbmdlKDQwLDQwKV0pLFxjaGFyLWNsYXNzKFtyYW5nZSgzNCwzNCldKSxcY2hhci1jbGFzcyhbcmFuZ2UoNjcsNjcpXSksXGNoYXItY2xhc3MoW3JhbmdlKDk3LDk3KV0pLFxjaGFyLWNsYXNzKFtyYW5nZSgxMTYsMTE2KV0pLFxjaGFyLWNsYXNzKFtyYW5nZSg5OSw5OSldKSxcY2hhci1jbGFzcyhbcmFuZ2UoMTA0LDEwNCldKSxcY2hhci1jbGFzcyhbcmFuZ2UoMzQsMzQpXSksXGNoYXItY2xhc3MoW3JhbmdlKDQxLDQxKV0pLFxjaGFyLWNsYXNzKFtyYW5nZSg0MSw0MSldKV0se30p, new int[] {105,116,101,114,40,115,111,114,116,40,34,67,97,116,99,104,34,41,41}, null, null);
+ tmp[2] = new LiteralStackNode(1983, 2, cHJvZChsaXQoIjoiKSxbXGNoYXItY2xhc3MoW3JhbmdlKDU4LDU4KV0pXSx7fSk00, new int[] {58}, null, null);
+ tmp[4] = new CharStackNode(1986, 4, new int[][]{{0,0}}, null, null);
+ tmp[3] = new ListStackNode(1985, 3, cmVndWxhcihpdGVyKFxjaGFyLWNsYXNzKFtyYW5nZSg0OCw1NyldKSkp, new CharStackNode(1984, 0, new int[][]{{48,57}}, null, null), true, null, null);
+ tmp[0] = new CharStackNode(1981, 0, new int[][]{{0,0}}, null, null);
builder.addAlternative(RascalParser.cHJvZChsYWJlbCgiJE1ldGFIb2xlIixzb3J0KCJDYXRjaCIpKSxbXGNoYXItY2xhc3MoW3JhbmdlKDAsMCldKSxsaXQoIml0ZXIoc29ydChcIkNhdGNoXCIpKSIpLGxpdCgiOiIpLGl0ZXIoXGNoYXItY2xhc3MoW3JhbmdlKDQ4LDU3KV0pKSxcY2hhci1jbGFzcyhbcmFuZ2UoMCwwKV0pXSx7dGFnKCJob2xlVHlwZSIoXGl0ZXItc2Vwcyhzb3J0KCJDYXRjaCIpLFtsYXlvdXRzKCJMQVlPVVRMSVNUIildKSkpfSk00, tmp);
}
protected static final void _init_cHJvZChsYWJlbCgiJE1ldGFIb2xlIixzb3J0KCJDYXRjaCIpKSxbXGNoYXItY2xhc3MoW3JhbmdlKDAsMCldKSxsaXQoInNvcnQoXCJDYXRjaFwiKSIpLGxpdCgiOiIpLGl0ZXIoXGNoYXItY2xhc3MoW3JhbmdlKDQ4LDU3KV0pKSxcY2hhci1jbGFzcyhbcmFuZ2UoMCwwKV0pXSx7dGFnKCJob2xlVHlwZSIoc29ydCgiQ2F0Y2giKSkpfSk00(ExpectBuilder builder) {
AbstractStackNode[] tmp = (AbstractStackNode[]) new AbstractStackNode[5];
- tmp[1] = new LiteralStackNode(1996, 1, cHJvZChsaXQoInNvcnQoXCJDYXRjaFwiKSIpLFtcY2hhci1jbGFzcyhbcmFuZ2UoMTE1LDExNSldKSxcY2hhci1jbGFzcyhbcmFuZ2UoMTExLDExMSldKSxcY2hhci1jbGFzcyhbcmFuZ2UoMTE0LDExNCldKSxcY2hhci1jbGFzcyhbcmFuZ2UoMTE2LDExNildKSxcY2hhci1jbGFzcyhbcmFuZ2UoNDAsNDApXSksXGNoYXItY2xhc3MoW3JhbmdlKDM0LDM0KV0pLFxjaGFyLWNsYXNzKFtyYW5nZSg2Nyw2NyldKSxcY2hhci1jbGFzcyhbcmFuZ2UoOTcsOTcpXSksXGNoYXItY2xhc3MoW3JhbmdlKDExNiwxMTYpXSksXGNoYXItY2xhc3MoW3JhbmdlKDk5LDk5KV0pLFxjaGFyLWNsYXNzKFtyYW5nZSgxMDQsMTA0KV0pLFxjaGFyLWNsYXNzKFtyYW5nZSgzNCwzNCldKSxcY2hhci1jbGFzcyhbcmFuZ2UoNDEsNDEpXSldLHt9KQ0000, new int[] {115,111,114,116,40,34,67,97,116,99,104,34,41}, null, null);
- tmp[3] = new ListStackNode(1999, 3, cmVndWxhcihpdGVyKFxjaGFyLWNsYXNzKFtyYW5nZSg0OCw1NyldKSkp, new CharStackNode(1998, 0, new int[][]{{48,57}}, null, null), true, null, null);
- tmp[0] = new CharStackNode(1995, 0, new int[][]{{0,0}}, null, null);
- tmp[2] = new LiteralStackNode(1997, 2, cHJvZChsaXQoIjoiKSxbXGNoYXItY2xhc3MoW3JhbmdlKDU4LDU4KV0pXSx7fSk00, new int[] {58}, null, null);
- tmp[4] = new CharStackNode(2000, 4, new int[][]{{0,0}}, null, null);
+ tmp[1] = new LiteralStackNode(1993, 1, cHJvZChsaXQoInNvcnQoXCJDYXRjaFwiKSIpLFtcY2hhci1jbGFzcyhbcmFuZ2UoMTE1LDExNSldKSxcY2hhci1jbGFzcyhbcmFuZ2UoMTExLDExMSldKSxcY2hhci1jbGFzcyhbcmFuZ2UoMTE0LDExNCldKSxcY2hhci1jbGFzcyhbcmFuZ2UoMTE2LDExNildKSxcY2hhci1jbGFzcyhbcmFuZ2UoNDAsNDApXSksXGNoYXItY2xhc3MoW3JhbmdlKDM0LDM0KV0pLFxjaGFyLWNsYXNzKFtyYW5nZSg2Nyw2NyldKSxcY2hhci1jbGFzcyhbcmFuZ2UoOTcsOTcpXSksXGNoYXItY2xhc3MoW3JhbmdlKDExNiwxMTYpXSksXGNoYXItY2xhc3MoW3JhbmdlKDk5LDk5KV0pLFxjaGFyLWNsYXNzKFtyYW5nZSgxMDQsMTA0KV0pLFxjaGFyLWNsYXNzKFtyYW5nZSgzNCwzNCldKSxcY2hhci1jbGFzcyhbcmFuZ2UoNDEsNDEpXSldLHt9KQ0000, new int[] {115,111,114,116,40,34,67,97,116,99,104,34,41}, null, null);
+ tmp[3] = new ListStackNode(1996, 3, cmVndWxhcihpdGVyKFxjaGFyLWNsYXNzKFtyYW5nZSg0OCw1NyldKSkp, new CharStackNode(1995, 0, new int[][]{{48,57}}, null, null), true, null, null);
+ tmp[0] = new CharStackNode(1992, 0, new int[][]{{0,0}}, null, null);
+ tmp[2] = new LiteralStackNode(1994, 2, cHJvZChsaXQoIjoiKSxbXGNoYXItY2xhc3MoW3JhbmdlKDU4LDU4KV0pXSx7fSk00, new int[] {58}, null, null);
+ tmp[4] = new CharStackNode(1997, 4, new int[][]{{0,0}}, null, null);
builder.addAlternative(RascalParser.cHJvZChsYWJlbCgiJE1ldGFIb2xlIixzb3J0KCJDYXRjaCIpKSxbXGNoYXItY2xhc3MoW3JhbmdlKDAsMCldKSxsaXQoInNvcnQoXCJDYXRjaFwiKSIpLGxpdCgiOiIpLGl0ZXIoXGNoYXItY2xhc3MoW3JhbmdlKDQ4LDU3KV0pKSxcY2hhci1jbGFzcyhbcmFuZ2UoMCwwKV0pXSx7dGFnKCJob2xlVHlwZSIoc29ydCgiQ2F0Y2giKSkpfSk00, tmp);
}
protected static final void _init_cHJvZChsYWJlbCgiYmluZGluZyIsc29ydCgiQ2F0Y2giKSksW2xpdCgiY2F0Y2giKSxsYXlvdXRzKCJMQVlPVVRMSVNUIiksbGFiZWwoInBhdHRlcm4iLHNvcnQoIlBhdHRlcm4iKSksbGF5b3V0cygiTEFZT1VUTElTVCIpLGxpdCgiOiIpLGxheW91dHMoIkxBWU9VVExJU1QiKSxsYWJlbCgiYm9keSIsc29ydCgiU3RhdGVtZW50IikpXSx7fSk00(ExpectBuilder builder) {
AbstractStackNode[] tmp = (AbstractStackNode[]) new AbstractStackNode[7];
- tmp[3] = new NonTerminalStackNode(2008, 3, "layouts_LAYOUTLIST", null, null);
- tmp[0] = new LiteralStackNode(2004, 0, cHJvZChsaXQoImNhdGNoIiksW1xjaGFyLWNsYXNzKFtyYW5nZSg5OSw5OSldKSxcY2hhci1jbGFzcyhbcmFuZ2UoOTcsOTcpXSksXGNoYXItY2xhc3MoW3JhbmdlKDExNiwxMTYpXSksXGNoYXItY2xhc3MoW3JhbmdlKDk5LDk5KV0pLFxjaGFyLWNsYXNzKFtyYW5nZSgxMDQsMTA0KV0pXSx7fSk00, new int[] {99,97,116,99,104}, null, null);
- tmp[2] = new NonTerminalStackNode(2006, 2, "Pattern", null, null);
- tmp[1] = new NonTerminalStackNode(2005, 1, "layouts_LAYOUTLIST", null, null);
- tmp[5] = new NonTerminalStackNode(2010, 5, "layouts_LAYOUTLIST", null, null);
- tmp[4] = new LiteralStackNode(2009, 4, cHJvZChsaXQoIjoiKSxbXGNoYXItY2xhc3MoW3JhbmdlKDU4LDU4KV0pXSx7fSk00, new int[] {58}, null, null);
- tmp[6] = new NonTerminalStackNode(2011, 6, "Statement", null, null);
+ tmp[3] = new NonTerminalStackNode(2005, 3, "layouts_LAYOUTLIST", null, null);
+ tmp[0] = new LiteralStackNode(2001, 0, cHJvZChsaXQoImNhdGNoIiksW1xjaGFyLWNsYXNzKFtyYW5nZSg5OSw5OSldKSxcY2hhci1jbGFzcyhbcmFuZ2UoOTcsOTcpXSksXGNoYXItY2xhc3MoW3JhbmdlKDExNiwxMTYpXSksXGNoYXItY2xhc3MoW3JhbmdlKDk5LDk5KV0pLFxjaGFyLWNsYXNzKFtyYW5nZSgxMDQsMTA0KV0pXSx7fSk00, new int[] {99,97,116,99,104}, null, null);
+ tmp[2] = new NonTerminalStackNode(2003, 2, "Pattern", null, null);
+ tmp[1] = new NonTerminalStackNode(2002, 1, "layouts_LAYOUTLIST", null, null);
+ tmp[5] = new NonTerminalStackNode(2007, 5, "layouts_LAYOUTLIST", null, null);
+ tmp[4] = new LiteralStackNode(2006, 4, cHJvZChsaXQoIjoiKSxbXGNoYXItY2xhc3MoW3JhbmdlKDU4LDU4KV0pXSx7fSk00, new int[] {58}, null, null);
+ tmp[6] = new NonTerminalStackNode(2008, 6, "Statement", null, null);
builder.addAlternative(RascalParser.cHJvZChsYWJlbCgiYmluZGluZyIsc29ydCgiQ2F0Y2giKSksW2xpdCgiY2F0Y2giKSxsYXlvdXRzKCJMQVlPVVRMSVNUIiksbGFiZWwoInBhdHRlcm4iLHNvcnQoIlBhdHRlcm4iKSksbGF5b3V0cygiTEFZT1VUTElTVCIpLGxpdCgiOiIpLGxheW91dHMoIkxBWU9VVExJU1QiKSxsYWJlbCgiYm9keSIsc29ydCgiU3RhdGVtZW50IikpXSx7fSk00, tmp);
}
protected static final void _init_cHJvZChsYWJlbCgiZGVmYXVsdCIsc29ydCgiQ2F0Y2giKSksW2xpdCgiY2F0Y2giKSxsYXlvdXRzKCJMQVlPVVRMSVNUIiksbGl0KCI6IiksbGF5b3V0cygiTEFZT1VUTElTVCIpLGxhYmVsKCJib2R5Iixzb3J0KCJTdGF0ZW1lbnQiKSldLHt9KQ0000(ExpectBuilder builder) {
AbstractStackNode[] tmp = (AbstractStackNode[]) new AbstractStackNode[5];
- tmp[2] = new LiteralStackNode(2017, 2, cHJvZChsaXQoIjoiKSxbXGNoYXItY2xhc3MoW3JhbmdlKDU4LDU4KV0pXSx7fSk00, new int[] {58}, null, null);
- tmp[0] = new LiteralStackNode(2015, 0, cHJvZChsaXQoImNhdGNoIiksW1xjaGFyLWNsYXNzKFtyYW5nZSg5OSw5OSldKSxcY2hhci1jbGFzcyhbcmFuZ2UoOTcsOTcpXSksXGNoYXItY2xhc3MoW3JhbmdlKDExNiwxMTYpXSksXGNoYXItY2xhc3MoW3JhbmdlKDk5LDk5KV0pLFxjaGFyLWNsYXNzKFtyYW5nZSgxMDQsMTA0KV0pXSx7fSk00, new int[] {99,97,116,99,104}, null, null);
- tmp[4] = new NonTerminalStackNode(2019, 4, "Statement", null, null);
- tmp[1] = new NonTerminalStackNode(2016, 1, "layouts_LAYOUTLIST", null, null);
- tmp[3] = new NonTerminalStackNode(2018, 3, "layouts_LAYOUTLIST", null, null);
+ tmp[2] = new LiteralStackNode(2014, 2, cHJvZChsaXQoIjoiKSxbXGNoYXItY2xhc3MoW3JhbmdlKDU4LDU4KV0pXSx7fSk00, new int[] {58}, null, null);
+ tmp[0] = new LiteralStackNode(2012, 0, cHJvZChsaXQoImNhdGNoIiksW1xjaGFyLWNsYXNzKFtyYW5nZSg5OSw5OSldKSxcY2hhci1jbGFzcyhbcmFuZ2UoOTcsOTcpXSksXGNoYXItY2xhc3MoW3JhbmdlKDExNiwxMTYpXSksXGNoYXItY2xhc3MoW3JhbmdlKDk5LDk5KV0pLFxjaGFyLWNsYXNzKFtyYW5nZSgxMDQsMTA0KV0pXSx7fSk00, new int[] {99,97,116,99,104}, null, null);
+ tmp[4] = new NonTerminalStackNode(2016, 4, "Statement", null, null);
+ tmp[1] = new NonTerminalStackNode(2013, 1, "layouts_LAYOUTLIST", null, null);
+ tmp[3] = new NonTerminalStackNode(2015, 3, "layouts_LAYOUTLIST", null, null);
builder.addAlternative(RascalParser.cHJvZChsYWJlbCgiZGVmYXVsdCIsc29ydCgiQ2F0Y2giKSksW2xpdCgiY2F0Y2giKSxsYXlvdXRzKCJMQVlPVVRMSVNUIiksbGl0KCI6IiksbGF5b3V0cygiTEFZT1VUTElTVCIpLGxhYmVsKCJib2R5Iixzb3J0KCJTdGF0ZW1lbnQiKSldLHt9KQ0000, tmp);
}
public static void init(ExpectBuilder builder){
@@ -6257,51 +6279,51 @@ protected static class Tag {
protected static final void _init_cHJvZChsYWJlbCgiZW1wdHkiLHNvcnQoIlRhZyIpKSxbbGl0KCJAIiksbGF5b3V0cygiTEFZT1VUTElTVCIpLGxhYmVsKCJuYW1lIixsZXgoIk5hbWUiKSldLHt0YWcoIkZvbGRlZCIoKSksdGFnKCJjYXRlZ29yeSIoImNvbW1lbnQiKSl9KQ0000(ExpectBuilder builder) {
AbstractStackNode[] tmp = (AbstractStackNode[]) new AbstractStackNode[3];
- tmp[1] = new NonTerminalStackNode(2131, 1, "layouts_LAYOUTLIST", null, null);
- tmp[2] = new NonTerminalStackNode(2132, 2, "Name", null, null);
- tmp[0] = new LiteralStackNode(2130, 0, cHJvZChsaXQoIkAiKSxbXGNoYXItY2xhc3MoW3JhbmdlKDY0LDY0KV0pXSx7fSk00, new int[] {64}, null, null);
+ tmp[1] = new NonTerminalStackNode(2159, 1, "layouts_LAYOUTLIST", null, null);
+ tmp[2] = new NonTerminalStackNode(2160, 2, "Name", null, null);
+ tmp[0] = new LiteralStackNode(2158, 0, cHJvZChsaXQoIkAiKSxbXGNoYXItY2xhc3MoW3JhbmdlKDY0LDY0KV0pXSx7fSk00, new int[] {64}, null, null);
builder.addAlternative(RascalParser.cHJvZChsYWJlbCgiZW1wdHkiLHNvcnQoIlRhZyIpKSxbbGl0KCJAIiksbGF5b3V0cygiTEFZT1VUTElTVCIpLGxhYmVsKCJuYW1lIixsZXgoIk5hbWUiKSldLHt0YWcoIkZvbGRlZCIoKSksdGFnKCJjYXRlZ29yeSIoImNvbW1lbnQiKSl9KQ0000, tmp);
}
protected static final void _init_cHJvZChsYWJlbCgiJE1ldGFIb2xlIixzb3J0KCJUYWciKSksW1xjaGFyLWNsYXNzKFtyYW5nZSgwLDApXSksbGl0KCJzb3J0KFwiVGFnXCIpIiksbGl0KCI6IiksaXRlcihcY2hhci1jbGFzcyhbcmFuZ2UoNDgsNTcpXSkpLFxjaGFyLWNsYXNzKFtyYW5nZSgwLDApXSldLHt0YWcoImhvbGVUeXBlIihzb3J0KCJUYWciKSkpfSk00(ExpectBuilder builder) {
AbstractStackNode[] tmp = (AbstractStackNode[]) new AbstractStackNode[5];
- tmp[1] = new LiteralStackNode(2137, 1, cHJvZChsaXQoInNvcnQoXCJUYWdcIikiKSxbXGNoYXItY2xhc3MoW3JhbmdlKDExNSwxMTUpXSksXGNoYXItY2xhc3MoW3JhbmdlKDExMSwxMTEpXSksXGNoYXItY2xhc3MoW3JhbmdlKDExNCwxMTQpXSksXGNoYXItY2xhc3MoW3JhbmdlKDExNiwxMTYpXSksXGNoYXItY2xhc3MoW3JhbmdlKDQwLDQwKV0pLFxjaGFyLWNsYXNzKFtyYW5nZSgzNCwzNCldKSxcY2hhci1jbGFzcyhbcmFuZ2UoODQsODQpXSksXGNoYXItY2xhc3MoW3JhbmdlKDk3LDk3KV0pLFxjaGFyLWNsYXNzKFtyYW5nZSgxMDMsMTAzKV0pLFxjaGFyLWNsYXNzKFtyYW5nZSgzNCwzNCldKSxcY2hhci1jbGFzcyhbcmFuZ2UoNDEsNDEpXSldLHt9KQ0000, new int[] {115,111,114,116,40,34,84,97,103,34,41}, null, null);
- tmp[3] = new ListStackNode(2140, 3, cmVndWxhcihpdGVyKFxjaGFyLWNsYXNzKFtyYW5nZSg0OCw1NyldKSkp, new CharStackNode(2139, 0, new int[][]{{48,57}}, null, null), true, null, null);
- tmp[2] = new LiteralStackNode(2138, 2, cHJvZChsaXQoIjoiKSxbXGNoYXItY2xhc3MoW3JhbmdlKDU4LDU4KV0pXSx7fSk00, new int[] {58}, null, null);
- tmp[4] = new CharStackNode(2141, 4, new int[][]{{0,0}}, null, null);
- tmp[0] = new CharStackNode(2136, 0, new int[][]{{0,0}}, null, null);
+ tmp[1] = new LiteralStackNode(2165, 1, cHJvZChsaXQoInNvcnQoXCJUYWdcIikiKSxbXGNoYXItY2xhc3MoW3JhbmdlKDExNSwxMTUpXSksXGNoYXItY2xhc3MoW3JhbmdlKDExMSwxMTEpXSksXGNoYXItY2xhc3MoW3JhbmdlKDExNCwxMTQpXSksXGNoYXItY2xhc3MoW3JhbmdlKDExNiwxMTYpXSksXGNoYXItY2xhc3MoW3JhbmdlKDQwLDQwKV0pLFxjaGFyLWNsYXNzKFtyYW5nZSgzNCwzNCldKSxcY2hhci1jbGFzcyhbcmFuZ2UoODQsODQpXSksXGNoYXItY2xhc3MoW3JhbmdlKDk3LDk3KV0pLFxjaGFyLWNsYXNzKFtyYW5nZSgxMDMsMTAzKV0pLFxjaGFyLWNsYXNzKFtyYW5nZSgzNCwzNCldKSxcY2hhci1jbGFzcyhbcmFuZ2UoNDEsNDEpXSldLHt9KQ0000, new int[] {115,111,114,116,40,34,84,97,103,34,41}, null, null);
+ tmp[3] = new ListStackNode(2168, 3, cmVndWxhcihpdGVyKFxjaGFyLWNsYXNzKFtyYW5nZSg0OCw1NyldKSkp, new CharStackNode(2167, 0, new int[][]{{48,57}}, null, null), true, null, null);
+ tmp[2] = new LiteralStackNode(2166, 2, cHJvZChsaXQoIjoiKSxbXGNoYXItY2xhc3MoW3JhbmdlKDU4LDU4KV0pXSx7fSk00, new int[] {58}, null, null);
+ tmp[4] = new CharStackNode(2169, 4, new int[][]{{0,0}}, null, null);
+ tmp[0] = new CharStackNode(2164, 0, new int[][]{{0,0}}, null, null);
builder.addAlternative(RascalParser.cHJvZChsYWJlbCgiJE1ldGFIb2xlIixzb3J0KCJUYWciKSksW1xjaGFyLWNsYXNzKFtyYW5nZSgwLDApXSksbGl0KCJzb3J0KFwiVGFnXCIpIiksbGl0KCI6IiksaXRlcihcY2hhci1jbGFzcyhbcmFuZ2UoNDgsNTcpXSkpLFxjaGFyLWNsYXNzKFtyYW5nZSgwLDApXSldLHt0YWcoImhvbGVUeXBlIihzb3J0KCJUYWciKSkpfSk00, tmp);
}
protected static final void _init_cHJvZChsYWJlbCgiJE1ldGFIb2xlIixzb3J0KCJUYWciKSksW1xjaGFyLWNsYXNzKFtyYW5nZSgwLDApXSksbGl0KCJcXGl0ZXItc3Rhcihzb3J0KFwiVGFnXCIpKSIpLGxpdCgiOiIpLGl0ZXIoXGNoYXItY2xhc3MoW3JhbmdlKDQ4LDU3KV0pKSxcY2hhci1jbGFzcyhbcmFuZ2UoMCwwKV0pXSx7dGFnKCJob2xlVHlwZSIoXGl0ZXItc3Rhci1zZXBzKHNvcnQoIlRhZyIpLFtsYXlvdXRzKCJMQVlPVVRMSVNUIildKSkpfSk00(ExpectBuilder builder) {
AbstractStackNode[] tmp = (AbstractStackNode[]) new AbstractStackNode[5];
- tmp[1] = new LiteralStackNode(2146, 1, cHJvZChsaXQoIlxcaXRlci1zdGFyKHNvcnQoXCJUYWdcIikpIiksW1xjaGFyLWNsYXNzKFtyYW5nZSg5Miw5MildKSxcY2hhci1jbGFzcyhbcmFuZ2UoMTA1LDEwNSldKSxcY2hhci1jbGFzcyhbcmFuZ2UoMTE2LDExNildKSxcY2hhci1jbGFzcyhbcmFuZ2UoMTAxLDEwMSldKSxcY2hhci1jbGFzcyhbcmFuZ2UoMTE0LDExNCldKSxcY2hhci1jbGFzcyhbcmFuZ2UoNDUsNDUpXSksXGNoYXItY2xhc3MoW3JhbmdlKDExNSwxMTUpXSksXGNoYXItY2xhc3MoW3JhbmdlKDExNiwxMTYpXSksXGNoYXItY2xhc3MoW3JhbmdlKDk3LDk3KV0pLFxjaGFyLWNsYXNzKFtyYW5nZSgxMTQsMTE0KV0pLFxjaGFyLWNsYXNzKFtyYW5nZSg0MCw0MCldKSxcY2hhci1jbGFzcyhbcmFuZ2UoMTE1LDExNSldKSxcY2hhci1jbGFzcyhbcmFuZ2UoMTExLDExMSldKSxcY2hhci1jbGFzcyhbcmFuZ2UoMTE0LDExNCldKSxcY2hhci1jbGFzcyhbcmFuZ2UoMTE2LDExNildKSxcY2hhci1jbGFzcyhbcmFuZ2UoNDAsNDApXSksXGNoYXItY2xhc3MoW3JhbmdlKDM0LDM0KV0pLFxjaGFyLWNsYXNzKFtyYW5nZSg4NCw4NCldKSxcY2hhci1jbGFzcyhbcmFuZ2UoOTcsOTcpXSksXGNoYXItY2xhc3MoW3JhbmdlKDEwMywxMDMpXSksXGNoYXItY2xhc3MoW3JhbmdlKDM0LDM0KV0pLFxjaGFyLWNsYXNzKFtyYW5nZSg0MSw0MSldKSxcY2hhci1jbGFzcyhbcmFuZ2UoNDEsNDEpXSldLHt9KQ0000, new int[] {92,105,116,101,114,45,115,116,97,114,40,115,111,114,116,40,34,84,97,103,34,41,41}, null, null);
- tmp[3] = new ListStackNode(2149, 3, cmVndWxhcihpdGVyKFxjaGFyLWNsYXNzKFtyYW5nZSg0OCw1NyldKSkp, new CharStackNode(2148, 0, new int[][]{{48,57}}, null, null), true, null, null);
- tmp[0] = new CharStackNode(2145, 0, new int[][]{{0,0}}, null, null);
- tmp[2] = new LiteralStackNode(2147, 2, cHJvZChsaXQoIjoiKSxbXGNoYXItY2xhc3MoW3JhbmdlKDU4LDU4KV0pXSx7fSk00, new int[] {58}, null, null);
- tmp[4] = new CharStackNode(2150, 4, new int[][]{{0,0}}, null, null);
+ tmp[1] = new LiteralStackNode(2174, 1, cHJvZChsaXQoIlxcaXRlci1zdGFyKHNvcnQoXCJUYWdcIikpIiksW1xjaGFyLWNsYXNzKFtyYW5nZSg5Miw5MildKSxcY2hhci1jbGFzcyhbcmFuZ2UoMTA1LDEwNSldKSxcY2hhci1jbGFzcyhbcmFuZ2UoMTE2LDExNildKSxcY2hhci1jbGFzcyhbcmFuZ2UoMTAxLDEwMSldKSxcY2hhci1jbGFzcyhbcmFuZ2UoMTE0LDExNCldKSxcY2hhci1jbGFzcyhbcmFuZ2UoNDUsNDUpXSksXGNoYXItY2xhc3MoW3JhbmdlKDExNSwxMTUpXSksXGNoYXItY2xhc3MoW3JhbmdlKDExNiwxMTYpXSksXGNoYXItY2xhc3MoW3JhbmdlKDk3LDk3KV0pLFxjaGFyLWNsYXNzKFtyYW5nZSgxMTQsMTE0KV0pLFxjaGFyLWNsYXNzKFtyYW5nZSg0MCw0MCldKSxcY2hhci1jbGFzcyhbcmFuZ2UoMTE1LDExNSldKSxcY2hhci1jbGFzcyhbcmFuZ2UoMTExLDExMSldKSxcY2hhci1jbGFzcyhbcmFuZ2UoMTE0LDExNCldKSxcY2hhci1jbGFzcyhbcmFuZ2UoMTE2LDExNildKSxcY2hhci1jbGFzcyhbcmFuZ2UoNDAsNDApXSksXGNoYXItY2xhc3MoW3JhbmdlKDM0LDM0KV0pLFxjaGFyLWNsYXNzKFtyYW5nZSg4NCw4NCldKSxcY2hhci1jbGFzcyhbcmFuZ2UoOTcsOTcpXSksXGNoYXItY2xhc3MoW3JhbmdlKDEwMywxMDMpXSksXGNoYXItY2xhc3MoW3JhbmdlKDM0LDM0KV0pLFxjaGFyLWNsYXNzKFtyYW5nZSg0MSw0MSldKSxcY2hhci1jbGFzcyhbcmFuZ2UoNDEsNDEpXSldLHt9KQ0000, new int[] {92,105,116,101,114,45,115,116,97,114,40,115,111,114,116,40,34,84,97,103,34,41,41}, null, null);
+ tmp[3] = new ListStackNode(2177, 3, cmVndWxhcihpdGVyKFxjaGFyLWNsYXNzKFtyYW5nZSg0OCw1NyldKSkp, new CharStackNode(2176, 0, new int[][]{{48,57}}, null, null), true, null, null);
+ tmp[0] = new CharStackNode(2173, 0, new int[][]{{0,0}}, null, null);
+ tmp[2] = new LiteralStackNode(2175, 2, cHJvZChsaXQoIjoiKSxbXGNoYXItY2xhc3MoW3JhbmdlKDU4LDU4KV0pXSx7fSk00, new int[] {58}, null, null);
+ tmp[4] = new CharStackNode(2178, 4, new int[][]{{0,0}}, null, null);
builder.addAlternative(RascalParser.cHJvZChsYWJlbCgiJE1ldGFIb2xlIixzb3J0KCJUYWciKSksW1xjaGFyLWNsYXNzKFtyYW5nZSgwLDApXSksbGl0KCJcXGl0ZXItc3Rhcihzb3J0KFwiVGFnXCIpKSIpLGxpdCgiOiIpLGl0ZXIoXGNoYXItY2xhc3MoW3JhbmdlKDQ4LDU3KV0pKSxcY2hhci1jbGFzcyhbcmFuZ2UoMCwwKV0pXSx7dGFnKCJob2xlVHlwZSIoXGl0ZXItc3Rhci1zZXBzKHNvcnQoIlRhZyIpLFtsYXlvdXRzKCJMQVlPVVRMSVNUIildKSkpfSk00, tmp);
}
protected static final void _init_cHJvZChsYWJlbCgiZGVmYXVsdCIsc29ydCgiVGFnIikpLFtsaXQoIkAiKSxsYXlvdXRzKCJMQVlPVVRMSVNUIiksbGFiZWwoIm5hbWUiLGxleCgiTmFtZSIpKSxsYXlvdXRzKCJMQVlPVVRMSVNUIiksbGFiZWwoImNvbnRlbnRzIixsZXgoIlRhZ1N0cmluZyIpKV0se3RhZygiRm9sZGVkIigpKSx0YWcoImNhdGVnb3J5IigiY29tbWVudCIpKX0p(ExpectBuilder builder) {
AbstractStackNode[] tmp = (AbstractStackNode[]) new AbstractStackNode[5];
- tmp[1] = new NonTerminalStackNode(2157, 1, "layouts_LAYOUTLIST", null, null);
- tmp[4] = new NonTerminalStackNode(2161, 4, "TagString", null, null);
- tmp[2] = new NonTerminalStackNode(2158, 2, "Name", null, null);
- tmp[3] = new NonTerminalStackNode(2160, 3, "layouts_LAYOUTLIST", null, null);
- tmp[0] = new LiteralStackNode(2156, 0, cHJvZChsaXQoIkAiKSxbXGNoYXItY2xhc3MoW3JhbmdlKDY0LDY0KV0pXSx7fSk00, new int[] {64}, null, null);
+ tmp[1] = new NonTerminalStackNode(2185, 1, "layouts_LAYOUTLIST", null, null);
+ tmp[4] = new NonTerminalStackNode(2189, 4, "TagString", null, null);
+ tmp[2] = new NonTerminalStackNode(2186, 2, "Name", null, null);
+ tmp[3] = new NonTerminalStackNode(2188, 3, "layouts_LAYOUTLIST", null, null);
+ tmp[0] = new LiteralStackNode(2184, 0, cHJvZChsaXQoIkAiKSxbXGNoYXItY2xhc3MoW3JhbmdlKDY0LDY0KV0pXSx7fSk00, new int[] {64}, null, null);
builder.addAlternative(RascalParser.cHJvZChsYWJlbCgiZGVmYXVsdCIsc29ydCgiVGFnIikpLFtsaXQoIkAiKSxsYXlvdXRzKCJMQVlPVVRMSVNUIiksbGFiZWwoIm5hbWUiLGxleCgiTmFtZSIpKSxsYXlvdXRzKCJMQVlPVVRMSVNUIiksbGFiZWwoImNvbnRlbnRzIixsZXgoIlRhZ1N0cmluZyIpKV0se3RhZygiRm9sZGVkIigpKSx0YWcoImNhdGVnb3J5IigiY29tbWVudCIpKX0p, tmp);
}
protected static final void _init_cHJvZChsYWJlbCgiZXhwcmVzc2lvbiIsc29ydCgiVGFnIikpLFtsaXQoIkAiKSxsYXlvdXRzKCJMQVlPVVRMSVNUIiksbGFiZWwoIm5hbWUiLGxleCgiTmFtZSIpKSxsYXlvdXRzKCJMQVlPVVRMSVNUIiksbGl0KCI9IiksbGF5b3V0cygiTEFZT1VUTElTVCIpLGNvbmRpdGlvbmFsKGxhYmVsKCJleHByZXNzaW9uIixzb3J0KCJFeHByZXNzaW9uIikpLHtcbm90LWZvbGxvdyhsaXQoIkAiKSl9KV0se3RhZygiRm9sZGVkIigpKSx0YWcoImNhdGVnb3J5IigiY29tbWVudCIpKX0p(ExpectBuilder builder) {
AbstractStackNode[] tmp = (AbstractStackNode[]) new AbstractStackNode[7];
- tmp[4] = new LiteralStackNode(2170, 4, cHJvZChsaXQoIj0iKSxbXGNoYXItY2xhc3MoW3JhbmdlKDYxLDYxKV0pXSx7fSk00, new int[] {61}, null, null);
- tmp[6] = new NonTerminalStackNode(2175, 6, "Expression", null, new ICompletionFilter[] {new StringFollowRestriction(new int[] {64})});
- tmp[2] = new NonTerminalStackNode(2167, 2, "Name", null, null);
- tmp[0] = new LiteralStackNode(2165, 0, cHJvZChsaXQoIkAiKSxbXGNoYXItY2xhc3MoW3JhbmdlKDY0LDY0KV0pXSx7fSk00, new int[] {64}, null, null);
- tmp[3] = new NonTerminalStackNode(2169, 3, "layouts_LAYOUTLIST", null, null);
- tmp[1] = new NonTerminalStackNode(2166, 1, "layouts_LAYOUTLIST", null, null);
- tmp[5] = new NonTerminalStackNode(2171, 5, "layouts_LAYOUTLIST", null, null);
+ tmp[4] = new LiteralStackNode(2198, 4, cHJvZChsaXQoIj0iKSxbXGNoYXItY2xhc3MoW3JhbmdlKDYxLDYxKV0pXSx7fSk00, new int[] {61}, null, null);
+ tmp[6] = new NonTerminalStackNode(2203, 6, "Expression", null, new ICompletionFilter[] {new StringFollowRestriction(new int[] {64})});
+ tmp[2] = new NonTerminalStackNode(2195, 2, "Name", null, null);
+ tmp[0] = new LiteralStackNode(2193, 0, cHJvZChsaXQoIkAiKSxbXGNoYXItY2xhc3MoW3JhbmdlKDY0LDY0KV0pXSx7fSk00, new int[] {64}, null, null);
+ tmp[3] = new NonTerminalStackNode(2197, 3, "layouts_LAYOUTLIST", null, null);
+ tmp[1] = new NonTerminalStackNode(2194, 1, "layouts_LAYOUTLIST", null, null);
+ tmp[5] = new NonTerminalStackNode