diff --git a/.github/workflows/gradle-build.yml b/.github/workflows/gradle-build.yml index fe716262..b60d6c94 100644 --- a/.github/workflows/gradle-build.yml +++ b/.github/workflows/gradle-build.yml @@ -28,3 +28,7 @@ jobs: with: arguments: build + - uses: gradle/gradle-build-action@v1 + with: + arguments: test + diff --git a/README.md b/README.md index 0d8e46b1..58668f81 100644 --- a/README.md +++ b/README.md @@ -6,4 +6,63 @@ [![Gradle Build](https://github.com/polystat/j2eo/actions/workflows/gradle-build.yml/badge.svg)](https://github.com/polystat/j2eo/actions/workflows/gradle-build.yml) -This is a translator of Java to [EOLANG](https://www.eolang.org). \ No newline at end of file +This is a translator of Java to [EOLANG](https://www.eolang.org). + +--- + +## Motivation + +This project is a part of Polystat project, the goal of which is to statically analyze different languages using EOLANG, +the implementation of phi-calculus. In order to do that, the first step is to convert source language into EO. This +particular repository contains translator from Java to EO. + +--- + +## Decisions + +**Q**: Why do we implement yet another Java parser? + +**A**: Publicly available parsers only support older versions of Java, while we aim to support the latest version ( +currently 16). Thus, we had to create our own parser. + +--- + +**Q**: Why do we implement EO AST? + +**A**: Working with AST instead of raw strings allows utilization of Java compiler's type checking to minimize amount of +bugs in our code. It is also much easier to work with abstraction layer than with strings. + +--- + +## Usage + +> ⚠️ NOTE: for now, the entire pipeline is not available. Project is Work In Progress. + +```shell +java -jar j2eo.jar -o +``` + +--- + +## How does it work? + +- First, the Java source code files are parsed recursively. +- Then, for each file, translator converts Java AST to EO AST. +- Then, EO AST is printed out as a source code to output directory in the same directory structure. + +## NOT covered Java features list + +- Type Erasure +- Subtyping +- Conversions +- Casting +- Modules +- Exceptions +- Asserts +- Throws +- ``synchronized`` blocks +- ``try``/``catch`` blocks +- ``yeild`` feature +- Threads and Locks + +In general, we cover **91 feature of 112** described in the Java language specification. \ No newline at end of file diff --git a/build.gradle.kts b/build.gradle.kts index 957bfcf1..65d43ac5 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -27,8 +27,8 @@ repositories { } dependencies { - testImplementation("org.junit.jupiter:junit-jupiter-api:5.6.0") - testRuntimeOnly("org.junit.jupiter:junit-jupiter-engine") + testImplementation("org.junit.jupiter:junit-jupiter-api:5.8.0") + testRuntimeOnly("org.junit.jupiter:junit-jupiter-engine:5.8.0") } tasks.withType(JavaCompile::class).configureEach { @@ -78,8 +78,9 @@ fun runBison() = workingDir = File(".") executable = "bin/win_bison.exe" args = mutableListOf( - "-r", - "all", + "--report=states,lookaheads", + // "-r", "all", + // "--debug", "--help", "--stacktrace", "--report-file=${reportFilePath}", "--output=${javaParserFilePath}", javaGrammarFilePath @@ -90,8 +91,7 @@ fun runBison() = workingDir = File(".") executable = "bin/bison_mac" args = mutableListOf( - "-r", - "all", + "-r", "all", "--report-file=${reportFilePath}", "--output=${javaParserFilePath}", javaGrammarFilePath @@ -102,8 +102,7 @@ fun runBison() = workingDir = File(".") executable = "bison" args = mutableListOf( - "-r", - "all", + "-r", "all", "--report-file=${reportFilePath}", "--output=${javaParserFilePath}", javaGrammarFilePath @@ -125,7 +124,7 @@ fun generateMD5(filepath: String): String { val buffer = ByteArray(8192) var read = 0 do { - digest.update(buffer, 0, read); + digest.update(buffer, 0, read) read = inputStream.read(buffer) } while (read > 0) } diff --git a/src/main/java/eotree/EOAnonExpr.java b/src/main/java/eotree/EOAnonExpr.java new file mode 100644 index 00000000..a574a177 --- /dev/null +++ b/src/main/java/eotree/EOAnonExpr.java @@ -0,0 +1,12 @@ +package eotree; + +public class EOAnonExpr extends EOBnd { + public EOAnonExpr(EOExpr expr) { + super(expr); + } + + @Override + public String generateEO(int indent) { + return expr.generateEO(indent); + } +} diff --git a/src/main/java/eotree/EOAttribute.java b/src/main/java/eotree/EOAttribute.java new file mode 100644 index 00000000..96f7c0b3 --- /dev/null +++ b/src/main/java/eotree/EOAttribute.java @@ -0,0 +1,26 @@ +package eotree; + +/** + * EBNF representation: + * + * '@' | name [ '...' ] + * + */ +public class EOAttribute extends EONode { + public static final EOAttribute DECORATEE = new EOAttribute("@", false); + public static final EOAttribute PARENT = new EOAttribute("^", false); + public static final EOAttribute CURRENT = new EOAttribute("$", false); + + public String name; + public boolean isVarArg; + + public EOAttribute(String name, boolean isVarArg) { + this.name = name; + this.isVarArg = isVarArg; + } + + @Override + public String generateEO(int indent) { + return name + (isVarArg ? " ..." : ""); + } +} diff --git a/src/main/java/eotree/EOAttributes.java b/src/main/java/eotree/EOAttributes.java new file mode 100644 index 00000000..a4202104 --- /dev/null +++ b/src/main/java/eotree/EOAttributes.java @@ -0,0 +1,21 @@ +package eotree; + +import java.util.List; +import java.util.stream.Collectors; + +public class EOAttributes extends EONode { + public List attributes; + + public EOAttributes(List attributes) { + this.attributes = attributes; + } + + @Override + public String generateEO(int indent) { + return "[" + + attributes.stream() + .map(attribute -> attribute.generateEO(indent)) + .collect(Collectors.joining(" ")) + + "]"; + } +} diff --git a/src/main/java/eotree/EOBnd.java b/src/main/java/eotree/EOBnd.java new file mode 100644 index 00000000..56a80b31 --- /dev/null +++ b/src/main/java/eotree/EOBnd.java @@ -0,0 +1,9 @@ +package eotree; + +public abstract class EOBnd extends EONode { + public EOExpr expr; + + public EOBnd(EOExpr expr) { + this.expr = expr; + } +} diff --git a/src/main/java/eotree/EOBndExpr.java b/src/main/java/eotree/EOBndExpr.java new file mode 100644 index 00000000..786015c4 --- /dev/null +++ b/src/main/java/eotree/EOBndExpr.java @@ -0,0 +1,15 @@ +package eotree; + +public class EOBndExpr extends EOBnd { + public EOBndName bndName; + + public EOBndExpr(EOExpr expr, EOBndName bndName) { + super(expr); + this.bndName = bndName; + } + + @Override + public String generateEO(int indent) { + return expr.generateEO(indent) + " > " + bndName.generateEO(0); + } +} diff --git a/src/main/java/eotree/EOBndName.java b/src/main/java/eotree/EOBndName.java new file mode 100644 index 00000000..ec4f8a0e --- /dev/null +++ b/src/main/java/eotree/EOBndName.java @@ -0,0 +1,14 @@ +package eotree; + +public class EOBndName extends EONode { + public String name; + + public EOBndName(String name) { + this.name = name; + } + + @Override + public String generateEO(int indent) { + return name; + } +} diff --git a/src/main/java/eotree/EOComment.java b/src/main/java/eotree/EOComment.java new file mode 100644 index 00000000..8877fbce --- /dev/null +++ b/src/main/java/eotree/EOComment.java @@ -0,0 +1,20 @@ +package eotree; + +/** + * EBNF representation: + * + * '#' ANY EOL + * + */ +public class EOComment extends EONode { + public String comment; + + public EOComment(String comment) { + this.comment = comment; + } + + @Override + public String generateEO(int indent) { + return "# " + comment; + } +} diff --git a/src/main/java/eotree/EOCopy.java b/src/main/java/eotree/EOCopy.java new file mode 100644 index 00000000..b3b37ef9 --- /dev/null +++ b/src/main/java/eotree/EOCopy.java @@ -0,0 +1,21 @@ +package eotree; + +import java.util.List; +import java.util.stream.Collectors; + +public class EOCopy extends EOExpr { + public EOExpr trg; + public List args; + + public EOCopy(EOExpr trg, List args) { + this.trg = trg; + this.args = args; + } + + @Override + public String generateEO(int indent) { + return trg.generateEO(indent) + args.stream() + .map(arg -> " " + arg.generateEO(indent + 1)) + .collect(Collectors.joining()); + } +} diff --git a/src/main/java/eotree/EODot.java b/src/main/java/eotree/EODot.java new file mode 100644 index 00000000..8d7389ba --- /dev/null +++ b/src/main/java/eotree/EODot.java @@ -0,0 +1,22 @@ +package eotree; + +import java.util.Optional; + +public class EODot extends EOExpr { + public Optional src; + public String name; + + public EODot(Optional src, String name) { + this.src = src; + this.name = name; + } + + @Override + public String generateEO(int indent) { + return + src + .map(eoExpr -> eoExpr.generateEO(indent) + ".") + .orElse(indent(indent)) + + name; + } +} diff --git a/src/main/java/eotree/EOExpr.java b/src/main/java/eotree/EOExpr.java new file mode 100644 index 00000000..a0380dab --- /dev/null +++ b/src/main/java/eotree/EOExpr.java @@ -0,0 +1,4 @@ +package eotree; + +public abstract class EOExpr extends EONode { +} diff --git a/src/main/java/eotree/EOLicense.java b/src/main/java/eotree/EOLicense.java new file mode 100644 index 00000000..e5435ddd --- /dev/null +++ b/src/main/java/eotree/EOLicense.java @@ -0,0 +1,30 @@ +package eotree; + +import java.util.Arrays; +import java.util.List; +import java.util.stream.Collectors; + +/** + * EBNF representation: + * + * { comment EOL } EOL + * + */ +public class EOLicense extends EONode { + public List comments; + + public EOLicense(List comments) { + this.comments = comments; + } + + public EOLicense(EOComment... comments) { + this(Arrays.stream(comments).collect(Collectors.toList())); + } + + @Override + public String generateEO(int indent) { + return comments.stream() + .map(comment -> comment.generateEO(indent)) + .collect(Collectors.joining("\n")); + } +} diff --git a/src/main/java/eotree/EOMeta.java b/src/main/java/eotree/EOMeta.java new file mode 100644 index 00000000..20208c07 --- /dev/null +++ b/src/main/java/eotree/EOMeta.java @@ -0,0 +1,22 @@ +package eotree; + +/** + * EBNF representation: + * + * '+' name '␣' ANY EOL + * + */ +public class EOMeta extends EONode { + public String name; + public String value; + + public EOMeta(String name, String value) { + this.name = name; + this.value = value; + } + + @Override + public String generateEO(int indent) { + return "+" + name + " " + value; + } +} diff --git a/src/main/java/eotree/EOMetas.java b/src/main/java/eotree/EOMetas.java new file mode 100644 index 00000000..7838f228 --- /dev/null +++ b/src/main/java/eotree/EOMetas.java @@ -0,0 +1,31 @@ +package eotree; + +import java.util.List; +import java.util.Optional; +import java.util.stream.Collectors; + +/** + * EBNF representation: + * + * { meta EOL } EOL + * + */ +public class EOMetas extends EONode { + public Optional packageName; + public List metas; + + public EOMetas(Optional packageName, List metas) { + this.packageName = packageName; + this.metas = metas; + } + + @Override + public String generateEO(int indent) { + return packageName + .map(p -> "+package " + p + "\n") + .orElse("") + + metas.stream() + .map(m -> m.generateEO(indent)) + .collect(Collectors.joining("\n")); + } +} diff --git a/src/main/java/eotree/EONode.java b/src/main/java/eotree/EONode.java new file mode 100644 index 00000000..ae353e07 --- /dev/null +++ b/src/main/java/eotree/EONode.java @@ -0,0 +1,11 @@ +package eotree; + +public abstract class EONode { + public static final int INDENT_SIZE = 2; + + public static String indent(int indent) { + return " ".repeat(indent * INDENT_SIZE); + } + + public abstract String generateEO(int indent); +} diff --git a/src/main/java/eotree/EOObject.java b/src/main/java/eotree/EOObject.java new file mode 100644 index 00000000..08e1a8f7 --- /dev/null +++ b/src/main/java/eotree/EOObject.java @@ -0,0 +1,41 @@ +package eotree; + +import java.util.List; +import java.util.Optional; +import java.util.stream.Collectors; + +public class EOObject extends EOExpr { + public List freeAttrs; + public Optional varargAttr; + public List bndAttrs; + public Optional name; + + public EOObject(List freeAttrs, + Optional varargAttr, + List bndAttrs, + Optional name) { + this.freeAttrs = freeAttrs; + this.varargAttr = varargAttr; + this.bndAttrs = bndAttrs; + this.name = name; + } + + @Override + public String generateEO(int indent) { + return indent(indent) + "[" + + freeAttrs.stream() + .map(attr -> attr.generateEO(indent)) + .collect(Collectors.joining(" ")) + + (varargAttr + .map(attr -> " " + attr.generateEO(indent) + "...") + .orElse("")) + + "]" + + (name + .map(n -> " > " + name.get()) + .orElse("") + ) + "\n" + + bndAttrs.stream() + .map(attr -> attr.generateEO(indent + 1)) + .collect(Collectors.joining("\n")); + } +} diff --git a/src/main/java/eotree/EOProgram.java b/src/main/java/eotree/EOProgram.java new file mode 100644 index 00000000..b0a35879 --- /dev/null +++ b/src/main/java/eotree/EOProgram.java @@ -0,0 +1,33 @@ +package eotree; + +import java.util.List; +import java.util.stream.Collectors; + +/** + * EBNF representation: + * + * [ license ] [ metas ] { object eol } + * + */ +public class EOProgram extends EONode { + public EOLicense license; + public EOMetas metas; + public List bnds; + + public EOProgram(EOLicense license, EOMetas metas, List bnds) { + this.license = license; + this.metas = metas; + this.bnds = bnds; + } + + @Override + public String generateEO(int indent) { + return license.generateEO(indent) + + "\n" + + metas.generateEO(indent) + + "\n" + + bnds.stream() + .map(bnd -> bnd.generateEO(indent)) + .collect(Collectors.joining("\n")); + } +} diff --git a/src/main/java/eotree/data/EOByte.java b/src/main/java/eotree/data/EOByte.java new file mode 100644 index 00000000..61de9a84 --- /dev/null +++ b/src/main/java/eotree/data/EOByte.java @@ -0,0 +1,22 @@ +package eotree.data; + +import eotree.EONode; + +/** + * EBNF representation: + * + * /[\dA-F][\dA-F]/ + * + */ +public class EOByte extends EONode { + public Byte b; + + public EOByte(Byte b) { + this.b = b; + } + + @Override + public String generateEO(int indent) { + return String.format("%02x", b).toUpperCase(); + } +} diff --git a/src/main/java/eotree/data/EOBytesData.java b/src/main/java/eotree/data/EOBytesData.java new file mode 100644 index 00000000..a57759a9 --- /dev/null +++ b/src/main/java/eotree/data/EOBytesData.java @@ -0,0 +1,32 @@ +package eotree.data; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Collections; +import java.util.List; +import java.util.stream.Collectors; + +/** + * EBNF representation: + * + * byte { '-' byte } + * + */ +public class EOBytesData extends EOData { + public EOBytesData(List bytes) { + this.bytes = bytes; + } + + public EOBytesData(EOByte... bytes) { + this(Arrays.stream(bytes).collect(Collectors.toList())); + } + + public List bytes; + + @Override + public String generateEO(int indent) { + return bytes.stream() + .map(b -> b.generateEO(indent)) + .collect(Collectors.joining("-")); + } +} diff --git a/src/main/java/eotree/data/EOCharData.java b/src/main/java/eotree/data/EOCharData.java new file mode 100644 index 00000000..44e9e759 --- /dev/null +++ b/src/main/java/eotree/data/EOCharData.java @@ -0,0 +1,22 @@ +package eotree.data; + +import eotree.data.EOData; + +/** + * EBNF representation: + * + * /'([^']|\\\d+)'/ + * + */ +public class EOCharData extends EOData { + public Character c; + + public EOCharData(Character c) { + this.c = c; + } + + @Override + public String generateEO(int indent) { + return "'" + c + "'"; + } +} diff --git a/src/main/java/eotree/data/EOData.java b/src/main/java/eotree/data/EOData.java new file mode 100644 index 00000000..6a5c5c54 --- /dev/null +++ b/src/main/java/eotree/data/EOData.java @@ -0,0 +1,13 @@ +package eotree.data; + +import eotree.EOExpr; + +/** + * EBNF representation: + * + * bytes | string | integer | char | float | regex + * + * + */ +public abstract class EOData extends EOExpr { +} diff --git a/src/main/java/eotree/data/EOFloatData.java b/src/main/java/eotree/data/EOFloatData.java new file mode 100644 index 00000000..5dcf1a82 --- /dev/null +++ b/src/main/java/eotree/data/EOFloatData.java @@ -0,0 +1,20 @@ +package eotree.data; + +/** + * EBNF representation: + * + * /[+-]?\d+(\.\d+)?/ + * + */ +public class EOFloatData extends EOData { + public Float f; + + public EOFloatData(Float f) { + this.f = f; + } + + @Override + public String generateEO(int indent) { + return f.toString(); + } +} diff --git a/src/main/java/eotree/data/EOIntData.java b/src/main/java/eotree/data/EOIntData.java new file mode 100644 index 00000000..c1ca1349 --- /dev/null +++ b/src/main/java/eotree/data/EOIntData.java @@ -0,0 +1,20 @@ +package eotree.data; + +/** + * EBNF representation: + * + * /[+-]?\d+|0x[a-f\d]+/ + * + */ +public class EOIntData extends EOData { + public Integer i; + + public EOIntData(Integer i) { + this.i = i; + } + + @Override + public String generateEO(int indent) { + return i.toString(); + } +} diff --git a/src/main/java/eotree/data/EORegexData.java b/src/main/java/eotree/data/EORegexData.java new file mode 100644 index 00000000..6fc0b884 --- /dev/null +++ b/src/main/java/eotree/data/EORegexData.java @@ -0,0 +1,20 @@ +package eotree.data; + +/** + * EBNF representation: + * + * / /.+/[a-z]* / + * + */ +public class EORegexData extends EOData { + public String regex; + + public EORegexData(String regex) { + this.regex = regex; + } + + @Override + public String generateEO(int indent) { + return regex; + } +} diff --git a/src/main/java/eotree/data/EOStringData.java b/src/main/java/eotree/data/EOStringData.java new file mode 100644 index 00000000..a4e98636 --- /dev/null +++ b/src/main/java/eotree/data/EOStringData.java @@ -0,0 +1,20 @@ +package eotree.data; + +/** + * EBNF representation: + * + * /"[^"]*"/ + * + */ +public class EOStringData extends EOData { + public String str; + + public EOStringData(String str) { + this.str = str; + } + + @Override + public String generateEO(int indent) { + return "\"" + str + "\""; + } +} diff --git a/src/main/java/lexer/Token.java b/src/main/java/lexer/Token.java index 13da84a7..6c7ce53e 100644 --- a/src/main/java/lexer/Token.java +++ b/src/main/java/lexer/Token.java @@ -1,6 +1,8 @@ package lexer; -public class Token +import tree.*; + +public class Token extends Entity { public Span span; public String image; diff --git a/src/main/java/parser/JavaParser.java b/src/main/java/parser/JavaParser.java index 72aa0d50..e679d9d0 100644 --- a/src/main/java/parser/JavaParser.java +++ b/src/main/java/parser/JavaParser.java @@ -39,6 +39,25 @@ the parser skeleton itself, you may (at your option) remove this import java.text.MessageFormat; +/* "%code imports" blocks. */ +/* "src/main/resources/Java_16_Grammar.y":131 */ + import lexer.*; +/* "src/main/resources/Java_16_Grammar.y":132 */ + import tree.*; +/* "src/main/resources/Java_16_Grammar.y":133 */ + import tree.Compilation.*; +/* "src/main/resources/Java_16_Grammar.y":134 */ + import tree.Declaration.*; +/* "src/main/resources/Java_16_Grammar.y":135 */ + import tree.Expression.*; +/* "src/main/resources/Java_16_Grammar.y":136 */ + import tree.Expression.Primary.*; +/* "src/main/resources/Java_16_Grammar.y":137 */ + import tree.Statement.*; +/* "src/main/resources/Java_16_Grammar.y":138 */ + import tree.Type.*; + +/* "src/main/java/parser/JavaParser.java":61 */ /** * A Bison parser, automatically generated from src/main/resources/Java_16_Grammar.y. @@ -193,8 +212,8 @@ public enum SymbolKind S_Package(130), /* Package */ S_Module(131), /* Module */ S_ImportDeclarationSeqOpt(132), /* ImportDeclarationSeqOpt */ - S_ImportDeclaration(133), /* ImportDeclaration */ - S_StaticOpt(134), /* StaticOpt */ + S_ImportDeclarationSeq(133), /* ImportDeclarationSeq */ + S_ImportDeclaration(134), /* ImportDeclaration */ S_TopLevelComponentSeqOpt(135), /* TopLevelComponentSeqOpt */ S_TopLevelComponentSeq(136), /* TopLevelComponentSeq */ S_TopLevelComponent(137), /* TopLevelComponent */ @@ -318,58 +337,55 @@ public enum SymbolKind S_TypeArguments(255), /* TypeArguments */ S_TypeArgumentList(256), /* TypeArgumentList */ S_TypeArgument(257), /* TypeArgument */ - S_WildcardBoundsOpt(258), /* WildcardBoundsOpt */ - S_FieldAccess(259), /* FieldAccess */ - S_ArrayAccess(260), /* ArrayAccess */ - S_MethodInvocation(261), /* MethodInvocation */ - S_Arguments(262), /* Arguments */ - S_ArgumentList(263), /* ArgumentList */ - S_MethodReference(264), /* MethodReference */ - S_ArrayCreationExpression(265), /* ArrayCreationExpression */ - S_DimExprs(266), /* DimExprs */ - S_DimExpr(267), /* DimExpr */ - S_Expression(268), /* Expression */ - S_LambdaExpression(269), /* LambdaExpression */ - S_LambdaParameters(270), /* LambdaParameters */ - S_LambdaParameterList1(271), /* LambdaParameterList1 */ - S_LambdaParameterList2(272), /* LambdaParameterList2 */ - S_LambdaParameter(273), /* LambdaParameter */ - S_LambdaBody(274), /* LambdaBody */ - S_AssignmentExpression(275), /* AssignmentExpression */ - S_Assignment(276), /* Assignment */ - S_LeftHandSide(277), /* LeftHandSide */ - S_AssignmentOperator(278), /* AssignmentOperator */ - S_ConditionalExpression(279), /* ConditionalExpression */ - S_ConditionalOrTail(280), /* ConditionalOrTail */ - S_ConditionalOrExpression(281), /* ConditionalOrExpression */ - S_ConditionalAndExpression(282), /* ConditionalAndExpression */ - S_InclusiveOrExpression(283), /* InclusiveOrExpression */ - S_ExclusiveOrExpression(284), /* ExclusiveOrExpression */ - S_AndExpression(285), /* AndExpression */ - S_EqualityExpression(286), /* EqualityExpression */ - S_RelationalExpression(287), /* RelationalExpression */ - S_InstanceofExpression(288), /* InstanceofExpression */ - S_ShiftExpression(289), /* ShiftExpression */ - S_AdditiveExpression(290), /* AdditiveExpression */ - S_MultiplicativeExpression(291), /* MultiplicativeExpression */ - S_UnaryExpression(292), /* UnaryExpression */ - S_PreIncrementExpression(293), /* PreIncrementExpression */ - S_PreDecrementExpression(294), /* PreDecrementExpression */ - S_UnaryExpressionNotPlusMinus(295), /* UnaryExpressionNotPlusMinus */ - S_PostfixExpression(296), /* PostfixExpression */ - S_PostIncrementExpression(297), /* PostIncrementExpression */ - S_PostDecrementExpression(298), /* PostDecrementExpression */ - S_CastExpression(299), /* CastExpression */ - S_TargetType(300), /* TargetType */ - S_TypeList(301), /* TypeList */ - S_SwitchExpression(302), /* SwitchExpression */ - S_AnnotationSeqOpt(303), /* AnnotationSeqOpt */ - S_AnnotationSeq(304), /* AnnotationSeq */ - S_Annotation(305), /* Annotation */ - S_AnnotationTailOpt(306), /* AnnotationTailOpt */ - S_AnnoParameterList(307), /* AnnoParameterList */ - S_ElementValue(308), /* ElementValue */ - S_ElementValueListOpt(309); /* ElementValueListOpt */ + S_FieldAccess(258), /* FieldAccess */ + S_ArrayAccess(259), /* ArrayAccess */ + S_MethodInvocation(260), /* MethodInvocation */ + S_Arguments(261), /* Arguments */ + S_ArgumentList(262), /* ArgumentList */ + S_MethodReference(263), /* MethodReference */ + S_ArrayCreationExpression(264), /* ArrayCreationExpression */ + S_DimExprs(265), /* DimExprs */ + S_DimExpr(266), /* DimExpr */ + S_Expression(267), /* Expression */ + S_LambdaExpression(268), /* LambdaExpression */ + S_LambdaParameters(269), /* LambdaParameters */ + S_LambdaParameterList1(270), /* LambdaParameterList1 */ + S_LambdaParameterList2(271), /* LambdaParameterList2 */ + S_LambdaParameter(272), /* LambdaParameter */ + S_AssignmentExpression(273), /* AssignmentExpression */ + S_Assignment(274), /* Assignment */ + S_LeftHandSide(275), /* LeftHandSide */ + S_AssignmentOperator(276), /* AssignmentOperator */ + S_ConditionalExpression(277), /* ConditionalExpression */ + S_ConditionalOrTail(278), /* ConditionalOrTail */ + S_ConditionalOrExpression(279), /* ConditionalOrExpression */ + S_ConditionalAndExpression(280), /* ConditionalAndExpression */ + S_InclusiveOrExpression(281), /* InclusiveOrExpression */ + S_ExclusiveOrExpression(282), /* ExclusiveOrExpression */ + S_AndExpression(283), /* AndExpression */ + S_EqualityExpression(284), /* EqualityExpression */ + S_RelationalExpression(285), /* RelationalExpression */ + S_InstanceofExpression(286), /* InstanceofExpression */ + S_ShiftExpression(287), /* ShiftExpression */ + S_AdditiveExpression(288), /* AdditiveExpression */ + S_MultiplicativeExpression(289), /* MultiplicativeExpression */ + S_UnaryExpression(290), /* UnaryExpression */ + S_PreIncrementExpression(291), /* PreIncrementExpression */ + S_PreDecrementExpression(292), /* PreDecrementExpression */ + S_UnaryExpressionNotPlusMinus(293), /* UnaryExpressionNotPlusMinus */ + S_PostfixExpression(294), /* PostfixExpression */ + S_PostIncrementExpression(295), /* PostIncrementExpression */ + S_PostDecrementExpression(296), /* PostDecrementExpression */ + S_CastExpression(297), /* CastExpression */ + S_TargetType(298), /* TargetType */ + S_TypeList(299), /* TypeList */ + S_SwitchExpression(300), /* SwitchExpression */ + S_AnnotationSeqOpt(301), /* AnnotationSeqOpt */ + S_AnnotationSeq(302), /* AnnotationSeq */ + S_Annotation(303), /* Annotation */ + S_AnnoParameterList(304), /* AnnoParameterList */ + S_ElementValue(305), /* ElementValue */ + S_ElementValueListOpt(306); /* ElementValueListOpt */ private final int yycode_; @@ -512,8 +528,8 @@ public enum SymbolKind SymbolKind.S_Package, SymbolKind.S_Module, SymbolKind.S_ImportDeclarationSeqOpt, + SymbolKind.S_ImportDeclarationSeq, SymbolKind.S_ImportDeclaration, - SymbolKind.S_StaticOpt, SymbolKind.S_TopLevelComponentSeqOpt, SymbolKind.S_TopLevelComponentSeq, SymbolKind.S_TopLevelComponent, @@ -637,7 +653,6 @@ public enum SymbolKind SymbolKind.S_TypeArguments, SymbolKind.S_TypeArgumentList, SymbolKind.S_TypeArgument, - SymbolKind.S_WildcardBoundsOpt, SymbolKind.S_FieldAccess, SymbolKind.S_ArrayAccess, SymbolKind.S_MethodInvocation, @@ -653,7 +668,6 @@ public enum SymbolKind SymbolKind.S_LambdaParameterList1, SymbolKind.S_LambdaParameterList2, SymbolKind.S_LambdaParameter, - SymbolKind.S_LambdaBody, SymbolKind.S_AssignmentExpression, SymbolKind.S_Assignment, SymbolKind.S_LeftHandSide, @@ -685,7 +699,6 @@ public enum SymbolKind SymbolKind.S_AnnotationSeqOpt, SymbolKind.S_AnnotationSeq, SymbolKind.S_Annotation, - SymbolKind.S_AnnotationTailOpt, SymbolKind.S_AnnoParameterList, SymbolKind.S_ElementValue, SymbolKind.S_ElementValueListOpt @@ -762,7 +775,7 @@ private static final String[] yytname_init() "\"provides\"", "\"with\"", "$accept", "Literal", "CompoundName", "ModifierSeqOpt", "ModifierSeq", "StandardModifierSeq", "StandardModifier", "CompilationUnit", "Package", "Module", - "ImportDeclarationSeqOpt", "ImportDeclaration", "StaticOpt", + "ImportDeclarationSeqOpt", "ImportDeclarationSeq", "ImportDeclaration", "TopLevelComponentSeqOpt", "TopLevelComponentSeq", "TopLevelComponent", "ModuleDirectiveSeqOpt", "ModuleDirectiveSeq", "ModuleDirective", "ModuleNameList", "RequiresModifierSeqOpt", "Type", "UnannotatedType", @@ -805,11 +818,10 @@ private static final String[] yytname_init() "UnqualifiedClassInstanceCreationExpression", "ClassOrInterfaceTypeToInstantiate", "AnnotatedCompoundName", "TypeArgumentsOpt", "TypeArguments", "TypeArgumentList", "TypeArgument", - "WildcardBoundsOpt", "FieldAccess", "ArrayAccess", "MethodInvocation", - "Arguments", "ArgumentList", "MethodReference", - "ArrayCreationExpression", "DimExprs", "DimExpr", "Expression", - "LambdaExpression", "LambdaParameters", "LambdaParameterList1", - "LambdaParameterList2", "LambdaParameter", "LambdaBody", + "FieldAccess", "ArrayAccess", "MethodInvocation", "Arguments", + "ArgumentList", "MethodReference", "ArrayCreationExpression", "DimExprs", + "DimExpr", "Expression", "LambdaExpression", "LambdaParameters", + "LambdaParameterList1", "LambdaParameterList2", "LambdaParameter", "AssignmentExpression", "Assignment", "LeftHandSide", "AssignmentOperator", "ConditionalExpression", "ConditionalOrTail", "ConditionalOrExpression", "ConditionalAndExpression", @@ -820,8 +832,8 @@ private static final String[] yytname_init() "UnaryExpressionNotPlusMinus", "PostfixExpression", "PostIncrementExpression", "PostDecrementExpression", "CastExpression", "TargetType", "TypeList", "SwitchExpression", "AnnotationSeqOpt", - "AnnotationSeq", "Annotation", "AnnotationTailOpt", "AnnoParameterList", - "ElementValue", "ElementValueListOpt", null + "AnnotationSeq", "Annotation", "AnnoParameterList", "ElementValue", + "ElementValueListOpt", null }; } @@ -1078,7 +1090,7 @@ public interface Lexer { * Method to retrieve the semantic value of the last scanned token. * @return the semantic value of the last scanned token. */ - Object getLVal(); + Entity getLVal(); /** * Entry point for the scanner. Returns the token identifier corresponding @@ -1142,12 +1154,12 @@ public final void yyerror(String msg) { private final class YYStack { private int[] stateStack = new int[16]; - private Object[] valueStack = new Object[16]; + private Entity[] valueStack = new Entity[16]; public int size = 16; public int height = -1; - public final void push (int state, Object value) { + public final void push (int state, Entity value) { height++; if (size == height) { @@ -1155,7 +1167,7 @@ public final void push (int state, Object value) { System.arraycopy (stateStack, 0, newStateStack, 0, height); stateStack = newStateStack; - Object[] newValueStack = new Object[size * 2]; + Entity[] newValueStack = new Entity[size * 2]; System.arraycopy (valueStack, 0, newValueStack, 0, height); valueStack = newValueStack; @@ -1182,7 +1194,7 @@ public final int stateAt (int i) { return stateStack[height - i]; } - public final Object valueAt (int i) { + public final Entity valueAt (int i) { return valueStack[height - i]; } @@ -1265,12 +1277,2752 @@ private int yyaction(int yyn, YYStack yystack, int yylen) Otherwise, the following line sets YYVAL to garbage. This behavior is undocumented and Bison users should not rely upon it. */ - Object yyval = (0 < yylen) ? yystack.valueAt(yylen - 1) : yystack.valueAt(0); + Entity yyval = (0 < yylen) ? yystack.valueAt(yylen - 1) : yystack.valueAt(0); switch (yyn) { - -/* "src/main/java/parser/JavaParser.java":1274 */ + case 2: /* Literal: INTEGER_LITERAL */ + if (yyn == 2) + /* "src/main/resources/Java_16_Grammar.y":241 */ + { yyval = ((Token)(yystack.valueAt (0))); }; + break; + + + case 3: /* Literal: FLOATING_POINT_LITERAL */ + if (yyn == 3) + /* "src/main/resources/Java_16_Grammar.y":242 */ + { yyval = ((Token)(yystack.valueAt (0))); }; + break; + + + case 4: /* Literal: TRUE */ + if (yyn == 4) + /* "src/main/resources/Java_16_Grammar.y":243 */ + { yyval = ((Token)(yystack.valueAt (0))); }; + break; + + + case 5: /* Literal: FALSE */ + if (yyn == 5) + /* "src/main/resources/Java_16_Grammar.y":244 */ + { yyval = ((Token)(yystack.valueAt (0))); }; + break; + + + case 6: /* Literal: CHARACTER_LITERAL */ + if (yyn == 6) + /* "src/main/resources/Java_16_Grammar.y":245 */ + { yyval = ((Token)(yystack.valueAt (0))); }; + break; + + + case 7: /* Literal: STRING_LITERAL */ + if (yyn == 7) + /* "src/main/resources/Java_16_Grammar.y":246 */ + { yyval = ((Token)(yystack.valueAt (0))); }; + break; + + + case 8: /* Literal: NULL */ + if (yyn == 8) + /* "src/main/resources/Java_16_Grammar.y":248 */ + { yyval = ((Token)(yystack.valueAt (0))); }; + break; + + + case 9: /* CompoundName: IDENTIFIER */ + if (yyn == 9) + /* "src/main/resources/Java_16_Grammar.y":254 */ + { yyval = new CompoundName(((Token)(yystack.valueAt (0))).image); }; + break; + + + case 10: /* CompoundName: CompoundName DOT IDENTIFIER */ + if (yyn == 10) + /* "src/main/resources/Java_16_Grammar.y":255 */ + { yyval = ((CompoundName)(yystack.valueAt (2))).add(((Token)(yystack.valueAt (0))).image); }; + break; + + + case 11: /* ModifierSeqOpt: %empty */ + if (yyn == 11) + /* "src/main/resources/Java_16_Grammar.y":259 */ + { yyval = null; }; + break; + + + case 12: /* ModifierSeqOpt: ModifierSeq */ + if (yyn == 12) + /* "src/main/resources/Java_16_Grammar.y":260 */ + { yyval = ((Modifiers)(yystack.valueAt (0))); }; + break; + + + case 13: /* ModifierSeq: StandardModifierSeq */ + if (yyn == 13) + /* "src/main/resources/Java_16_Grammar.y":264 */ + { yyval = new Modifiers(null,((StandardModifiers)(yystack.valueAt (0)))); }; + break; + + + case 14: /* ModifierSeq: AnnotationSeq StandardModifierSeq */ + if (yyn == 14) + /* "src/main/resources/Java_16_Grammar.y":265 */ + { yyval = new Modifiers(((Annotations)(yystack.valueAt (1))),((StandardModifiers)(yystack.valueAt (0)))); }; + break; + + + case 15: /* StandardModifierSeq: StandardModifier */ + if (yyn == 15) + /* "src/main/resources/Java_16_Grammar.y":269 */ + { yyval = new StandardModifiers(((Token)(yystack.valueAt (0)))); }; + break; + + + case 16: /* StandardModifierSeq: StandardModifierSeq StandardModifier */ + if (yyn == 16) + /* "src/main/resources/Java_16_Grammar.y":270 */ + { yyval = ((StandardModifiers)(yystack.valueAt (1))).add(((Token)(yystack.valueAt (0)))); }; + break; + + + case 17: /* StandardModifier: DEFAULT */ + if (yyn == 17) + /* "src/main/resources/Java_16_Grammar.y":275 */ + { yyval = ((Token)(yystack.valueAt (0))); }; + break; + + + case 18: /* StandardModifier: FINAL */ + if (yyn == 18) + /* "src/main/resources/Java_16_Grammar.y":276 */ + { yyval = ((Token)(yystack.valueAt (0))); }; + break; + + + case 19: /* StandardModifier: PUBLIC */ + if (yyn == 19) + /* "src/main/resources/Java_16_Grammar.y":277 */ + { yyval = ((Token)(yystack.valueAt (0))); }; + break; + + + case 20: /* StandardModifier: PROTECTED */ + if (yyn == 20) + /* "src/main/resources/Java_16_Grammar.y":278 */ + { yyval = ((Token)(yystack.valueAt (0))); }; + break; + + + case 21: /* StandardModifier: PRIVATE */ + if (yyn == 21) + /* "src/main/resources/Java_16_Grammar.y":279 */ + { yyval = ((Token)(yystack.valueAt (0))); }; + break; + + + case 22: /* StandardModifier: ABSTRACT */ + if (yyn == 22) + /* "src/main/resources/Java_16_Grammar.y":280 */ + { yyval = ((Token)(yystack.valueAt (0))); }; + break; + + + case 23: /* StandardModifier: STATIC */ + if (yyn == 23) + /* "src/main/resources/Java_16_Grammar.y":281 */ + { yyval = ((Token)(yystack.valueAt (0))); }; + break; + + + case 24: /* StandardModifier: STRICTFP */ + if (yyn == 24) + /* "src/main/resources/Java_16_Grammar.y":282 */ + { yyval = ((Token)(yystack.valueAt (0))); }; + break; + + + case 25: /* StandardModifier: SYNCHRONIZED */ + if (yyn == 25) + /* "src/main/resources/Java_16_Grammar.y":283 */ + { yyval = ((Token)(yystack.valueAt (0))); }; + break; + + + case 26: /* StandardModifier: TRANSIENT */ + if (yyn == 26) + /* "src/main/resources/Java_16_Grammar.y":284 */ + { yyval = ((Token)(yystack.valueAt (0))); }; + break; + + + case 27: /* StandardModifier: VOLATILE */ + if (yyn == 27) + /* "src/main/resources/Java_16_Grammar.y":285 */ + { yyval = ((Token)(yystack.valueAt (0))); }; + break; + + + case 28: /* StandardModifier: OPEN */ + if (yyn == 28) + /* "src/main/resources/Java_16_Grammar.y":286 */ + { yyval = ((Token)(yystack.valueAt (0))); }; + break; + + + case 29: /* CompilationUnit: %empty */ + if (yyn == 29) + /* "src/main/resources/Java_16_Grammar.y":292 */ + { yyval = null; }; + break; + + + case 30: /* CompilationUnit: Package */ + if (yyn == 30) + /* "src/main/resources/Java_16_Grammar.y":293 */ + { yyval = ((tree.Compilation.CompilationUnit)(yystack.valueAt (0))); }; + break; + + + case 31: /* CompilationUnit: Module */ + if (yyn == 31) + /* "src/main/resources/Java_16_Grammar.y":294 */ + { yyval = ((tree.Compilation.Module)(yystack.valueAt (0))); }; + break; + + + case 32: /* CompilationUnit: ImportDeclarationSeqOpt TopLevelComponentSeq */ + if (yyn == 32) + /* "src/main/resources/Java_16_Grammar.y":295 */ + { yyval = new SimpleCompilationUnit(((tree.Declaration.ImportDeclarations)(yystack.valueAt (1))),((tree.Compilation.TopLevelComponents)(yystack.valueAt (0)))); }; + break; + + + case 33: /* Package: PACKAGE CompoundName SEMICOLON ImportDeclarationSeqOpt TopLevelComponentSeqOpt */ + if (yyn == 33) + /* "src/main/resources/Java_16_Grammar.y":300 */ + { yyval = new tree.Compilation.Package(((CompoundName)(yystack.valueAt (3))),((tree.Declaration.ImportDeclarations)(yystack.valueAt (1))),((tree.Compilation.TopLevelComponents)(yystack.valueAt (0)))); }; + break; + + + case 34: /* Module: ModifierSeqOpt MODULE CompoundName LBRACE ModuleDirectiveSeqOpt RBRACE */ + if (yyn == 34) + /* "src/main/resources/Java_16_Grammar.y":306 */ + { yyval = null; }; + break; + + + case 35: /* ImportDeclarationSeqOpt: %empty */ + if (yyn == 35) + /* "src/main/resources/Java_16_Grammar.y":310 */ + { yyval = null; }; + break; + + + case 36: /* ImportDeclarationSeqOpt: ImportDeclarationSeq */ + if (yyn == 36) + /* "src/main/resources/Java_16_Grammar.y":311 */ + { yyval = ((tree.Declaration.ImportDeclarations)(yystack.valueAt (0))); }; + break; + + + case 37: /* ImportDeclarationSeq: ImportDeclaration */ + if (yyn == 37) + /* "src/main/resources/Java_16_Grammar.y":315 */ + { yyval = new ImportDeclarations(((tree.Declaration.ImportDeclaration)(yystack.valueAt (0)))); }; + break; + + + case 38: /* ImportDeclarationSeq: ImportDeclarationSeqOpt ImportDeclaration */ + if (yyn == 38) + /* "src/main/resources/Java_16_Grammar.y":316 */ + { yyval = ((tree.Declaration.ImportDeclarations)(yystack.valueAt (1))).add(((tree.Declaration.ImportDeclaration)(yystack.valueAt (0)))); }; + break; + + + case 39: /* ImportDeclaration: IMPORT CompoundName SEMICOLON */ + if (yyn == 39) + /* "src/main/resources/Java_16_Grammar.y":320 */ + { yyval = new ImportDeclaration(false,((CompoundName)(yystack.valueAt (1))),false); }; + break; + + + case 40: /* ImportDeclaration: IMPORT STATIC CompoundName SEMICOLON */ + if (yyn == 40) + /* "src/main/resources/Java_16_Grammar.y":321 */ + { yyval = new ImportDeclaration(true,((CompoundName)(yystack.valueAt (1))),false); }; + break; + + + case 41: /* ImportDeclaration: IMPORT CompoundName DOT STAR SEMICOLON */ + if (yyn == 41) + /* "src/main/resources/Java_16_Grammar.y":322 */ + { yyval = new ImportDeclaration(false,((CompoundName)(yystack.valueAt (3))),true); }; + break; + + + case 42: /* ImportDeclaration: IMPORT STATIC CompoundName DOT STAR SEMICOLON */ + if (yyn == 42) + /* "src/main/resources/Java_16_Grammar.y":323 */ + { yyval = new ImportDeclaration(true,((CompoundName)(yystack.valueAt (3))),true); }; + break; + + + case 43: /* TopLevelComponentSeqOpt: %empty */ + if (yyn == 43) + /* "src/main/resources/Java_16_Grammar.y":327 */ + { yyval = null; }; + break; + + + case 44: /* TopLevelComponentSeqOpt: TopLevelComponentSeq */ + if (yyn == 44) + /* "src/main/resources/Java_16_Grammar.y":328 */ + { yyval = ((tree.Compilation.TopLevelComponents)(yystack.valueAt (0))); }; + break; + + + case 45: /* TopLevelComponentSeq: ModifierSeqOpt TopLevelComponent */ + if (yyn == 45) + /* "src/main/resources/Java_16_Grammar.y":332 */ + { ((tree.Compilation.TopLevelComponent)(yystack.valueAt (0))).addModifiers(((Modifiers)(yystack.valueAt (1)))); yyval = new TopLevelComponents(((tree.Compilation.TopLevelComponent)(yystack.valueAt (0)))); }; + break; + + + case 46: /* TopLevelComponentSeq: TopLevelComponentSeq ModifierSeqOpt TopLevelComponent */ + if (yyn == 46) + /* "src/main/resources/Java_16_Grammar.y":333 */ + { ((tree.Compilation.TopLevelComponent)(yystack.valueAt (0))).addModifiers(((Modifiers)(yystack.valueAt (1)))); yyval = ((tree.Compilation.TopLevelComponents)(yystack.valueAt (2))).add(((tree.Compilation.TopLevelComponent)(yystack.valueAt (0)))); }; + break; + + + case 47: /* TopLevelComponent: ClassDeclaration */ + if (yyn == 47) + /* "src/main/resources/Java_16_Grammar.y":337 */ + { yyval = ((tree.Declaration.Declaration)(yystack.valueAt (0))); }; + break; + + + case 48: /* TopLevelComponent: InterfaceDeclaration */ + if (yyn == 48) + /* "src/main/resources/Java_16_Grammar.y":338 */ + { yyval = ((tree.Declaration.Declaration)(yystack.valueAt (0))); }; + break; + + + case 67: /* Type: UnannotatedType */ + if (yyn == 67) + /* "src/main/resources/Java_16_Grammar.y":385 */ + { yyval = ((tree.Type.UnannotatedType)(yystack.valueAt (0))); }; + break; + + + case 68: /* Type: AnnotationSeq UnannotatedType */ + if (yyn == 68) + /* "src/main/resources/Java_16_Grammar.y":386 */ + { yyval = ((tree.Type.UnannotatedType)(yystack.valueAt (0))).addAnnotations(((Annotations)(yystack.valueAt (1)))); }; + break; + + + case 69: /* UnannotatedType: PrimitiveType */ + if (yyn == 69) + /* "src/main/resources/Java_16_Grammar.y":390 */ + { yyval = new PrimitiveType(((Token)(yystack.valueAt (0)))); }; + break; + + + case 70: /* UnannotatedType: CompoundName */ + if (yyn == 70) + /* "src/main/resources/Java_16_Grammar.y":392 */ + { yyval = new TypeName(((CompoundName)(yystack.valueAt (0))),null); }; + break; + + + case 71: /* UnannotatedType: CompoundName TypeArguments */ + if (yyn == 71) + /* "src/main/resources/Java_16_Grammar.y":393 */ + { yyval = new TypeName(((CompoundName)(yystack.valueAt (1))),((tree.Type.TypeArguments)(yystack.valueAt (0)))); }; + break; + + + case 72: /* UnannotatedType: UnannotatedType Dim */ + if (yyn == 72) + /* "src/main/resources/Java_16_Grammar.y":395 */ + { yyval = ((tree.Type.UnannotatedType)(yystack.valueAt (1))).addDimension(((Dim)(yystack.valueAt (0)))); }; + break; + + + case 73: /* PrimitiveType: BYTE */ + if (yyn == 73) + /* "src/main/resources/Java_16_Grammar.y":404 */ + { yyval = ((Token)(yystack.valueAt (0))); }; + break; + + + case 74: /* PrimitiveType: SHORT */ + if (yyn == 74) + /* "src/main/resources/Java_16_Grammar.y":405 */ + { yyval = ((Token)(yystack.valueAt (0))); }; + break; + + + case 75: /* PrimitiveType: INT */ + if (yyn == 75) + /* "src/main/resources/Java_16_Grammar.y":406 */ + { yyval = ((Token)(yystack.valueAt (0))); }; + break; + + + case 76: /* PrimitiveType: LONG */ + if (yyn == 76) + /* "src/main/resources/Java_16_Grammar.y":407 */ + { yyval = ((Token)(yystack.valueAt (0))); }; + break; + + + case 77: /* PrimitiveType: CHAR */ + if (yyn == 77) + /* "src/main/resources/Java_16_Grammar.y":408 */ + { yyval = ((Token)(yystack.valueAt (0))); }; + break; + + + case 78: /* PrimitiveType: FLOAT */ + if (yyn == 78) + /* "src/main/resources/Java_16_Grammar.y":410 */ + { yyval = ((Token)(yystack.valueAt (0))); }; + break; + + + case 79: /* PrimitiveType: DOUBLE */ + if (yyn == 79) + /* "src/main/resources/Java_16_Grammar.y":411 */ + { yyval = ((Token)(yystack.valueAt (0))); }; + break; + + + case 80: /* PrimitiveType: BOOLEAN */ + if (yyn == 80) + /* "src/main/resources/Java_16_Grammar.y":412 */ + { yyval = ((Token)(yystack.valueAt (0))); }; + break; + + + case 81: /* ClassDeclaration: NormalClassDeclaration */ + if (yyn == 81) + /* "src/main/resources/Java_16_Grammar.y":433 */ + { yyval = ((tree.Declaration.Declaration)(yystack.valueAt (0))); }; + break; + + + case 82: /* ClassDeclaration: EnumDeclaration */ + if (yyn == 82) + /* "src/main/resources/Java_16_Grammar.y":434 */ + { yyval = ((tree.Declaration.Declaration)(yystack.valueAt (0))); }; + break; + + + case 83: /* ClassDeclaration: RecordDeclaration */ + if (yyn == 83) + /* "src/main/resources/Java_16_Grammar.y":435 */ + { yyval = ((tree.Declaration.Declaration)(yystack.valueAt (0))); }; + break; + + + case 84: /* NormalClassDeclaration: CLASS IDENTIFIER TypeParametersOpt ClassExtendsOpt ClassImplementsOpt ClassBody */ + if (yyn == 84) + /* "src/main/resources/Java_16_Grammar.y":440 */ + { yyval = new NormalClassDeclaration(((Token)(yystack.valueAt (4))),((TypeParameters)(yystack.valueAt (3))),((tree.Type.Type)(yystack.valueAt (2))),((tree.Type.TypeList)(yystack.valueAt (1))),((Declarations)(yystack.valueAt (0)))); }; + break; + + + case 85: /* TypeParametersOpt: %empty */ + if (yyn == 85) + /* "src/main/resources/Java_16_Grammar.y":444 */ + { yyval = null; }; + break; + + + case 86: /* TypeParametersOpt: TypeParameters */ + if (yyn == 86) + /* "src/main/resources/Java_16_Grammar.y":445 */ + { yyval = ((TypeParameters)(yystack.valueAt (0))); }; + break; + + + case 87: /* TypeParameters: LESS TypeParameterList GREATER */ + if (yyn == 87) + /* "src/main/resources/Java_16_Grammar.y":449 */ + { yyval = ((TypeParameters)(yystack.valueAt (1))); }; + break; + + + case 88: /* TypeParameterList: TypeParameter */ + if (yyn == 88) + /* "src/main/resources/Java_16_Grammar.y":453 */ + { yyval = new TypeParameters(((TypeParameter)(yystack.valueAt (0)))); }; + break; + + + case 89: /* TypeParameterList: TypeParameterList COMMA TypeParameter */ + if (yyn == 89) + /* "src/main/resources/Java_16_Grammar.y":454 */ + { yyval = ((TypeParameters)(yystack.valueAt (2))).add(((TypeParameter)(yystack.valueAt (0)))); }; + break; + + + case 90: /* TypeParameter: AnnotationSeq TypeParameterTail */ + if (yyn == 90) + /* "src/main/resources/Java_16_Grammar.y":464 */ + { yyval = new TypeParameter(((Annotations)(yystack.valueAt (1))),((TypeParameterTail)(yystack.valueAt (0)))); }; + break; + + + case 91: /* TypeParameter: TypeParameterTail */ + if (yyn == 91) + /* "src/main/resources/Java_16_Grammar.y":465 */ + { yyval = new TypeParameter(null,((TypeParameterTail)(yystack.valueAt (0)))); }; + break; + + + case 92: /* TypeParameterTail: IDENTIFIER */ + if (yyn == 92) + /* "src/main/resources/Java_16_Grammar.y":469 */ + { yyval = new TypeParameterTail(((Token)(yystack.valueAt (0))),null); }; + break; + + + case 93: /* TypeParameterTail: IDENTIFIER EXTENDS AnnotationSeqOpt IDENTIFIER */ + if (yyn == 93) + /* "src/main/resources/Java_16_Grammar.y":470 */ + { yyval = new TypeParameterTail(((Token)(yystack.valueAt (3))),((Annotations)(yystack.valueAt (1))),((Token)(yystack.valueAt (0)))); }; + break; + + + case 94: /* TypeParameterTail: IDENTIFIER EXTENDS ClassTypeList2 */ + if (yyn == 94) + /* "src/main/resources/Java_16_Grammar.y":471 */ + { yyval = new TypeParameterTail(((Token)(yystack.valueAt (2))),((tree.Type.TypeList)(yystack.valueAt (0)))); }; + break; + + + case 95: /* ClassExtendsOpt: %empty */ + if (yyn == 95) + /* "src/main/resources/Java_16_Grammar.y":475 */ + { yyval = null; }; + break; + + + case 96: /* ClassExtendsOpt: EXTENDS Type */ + if (yyn == 96) + /* "src/main/resources/Java_16_Grammar.y":476 */ + { yyval = ((tree.Type.Type)(yystack.valueAt (0))); }; + break; + + + case 97: /* ClassImplementsOpt: %empty */ + if (yyn == 97) + /* "src/main/resources/Java_16_Grammar.y":480 */ + { yyval = null; }; + break; + + + case 98: /* ClassImplementsOpt: IMPLEMENTS ClassTypeList1 */ + if (yyn == 98) + /* "src/main/resources/Java_16_Grammar.y":481 */ + { yyval = ((tree.Type.TypeList)(yystack.valueAt (0))); }; + break; + + + case 99: /* ClassTypeList1: Type */ + if (yyn == 99) + /* "src/main/resources/Java_16_Grammar.y":485 */ + { yyval = new TypeList(((tree.Type.Type)(yystack.valueAt (0)))); }; + break; + + + case 100: /* ClassTypeList1: ClassTypeList1 COMMA Type */ + if (yyn == 100) + /* "src/main/resources/Java_16_Grammar.y":486 */ + { yyval = ((tree.Type.TypeList)(yystack.valueAt (2))).add(((tree.Type.Type)(yystack.valueAt (0)))); }; + break; + + + case 101: /* ClassTypeList2: Type */ + if (yyn == 101) + /* "src/main/resources/Java_16_Grammar.y":490 */ + { yyval = new TypeList(((tree.Type.Type)(yystack.valueAt (0)))); }; + break; + + + case 102: /* ClassTypeList2: ClassTypeList2 AMPERSAND Type */ + if (yyn == 102) + /* "src/main/resources/Java_16_Grammar.y":491 */ + { yyval = ((tree.Type.TypeList)(yystack.valueAt (2))).add(((tree.Type.Type)(yystack.valueAt (0)))); }; + break; + + + case 103: /* ClassBodyOpt: %empty */ + if (yyn == 103) + /* "src/main/resources/Java_16_Grammar.y":495 */ + { yyval = null; }; + break; + + + case 104: /* ClassBodyOpt: ClassBody */ + if (yyn == 104) + /* "src/main/resources/Java_16_Grammar.y":496 */ + { yyval = ((Declarations)(yystack.valueAt (0))); }; + break; + + + case 105: /* ClassBody: LBRACE RBRACE */ + if (yyn == 105) + /* "src/main/resources/Java_16_Grammar.y":500 */ + { yyval = null; }; + break; + + + case 106: /* ClassBody: LBRACE ClassBodyDeclarationSeq RBRACE */ + if (yyn == 106) + /* "src/main/resources/Java_16_Grammar.y":501 */ + { yyval = ((Declarations)(yystack.valueAt (1))); }; + break; + + + case 107: /* ClassBodyDeclarationSeq: ClassBodyDeclaration */ + if (yyn == 107) + /* "src/main/resources/Java_16_Grammar.y":505 */ + { yyval = new Declarations(((tree.Declaration.Declaration)(yystack.valueAt (0)))); }; + break; + + + case 108: /* ClassBodyDeclarationSeq: ClassBodyDeclarationSeq ClassBodyDeclaration */ + if (yyn == 108) + /* "src/main/resources/Java_16_Grammar.y":506 */ + { yyval = ((Declarations)(yystack.valueAt (1))).add(((tree.Declaration.Declaration)(yystack.valueAt (0)))); }; + break; + + + case 109: /* ClassBodyDeclaration: ModifierSeqOpt PureBodyDeclaration */ + if (yyn == 109) + /* "src/main/resources/Java_16_Grammar.y":510 */ + { yyval = ((tree.Declaration.Declaration)(yystack.valueAt (0))).addModifiers(((Modifiers)(yystack.valueAt (1)))); }; + break; + + + case 110: /* ClassBodyDeclaration: Block */ + if (yyn == 110) + /* "src/main/resources/Java_16_Grammar.y":511 */ + { yyval = new ClassInitializer(((tree.Statement.Block)(yystack.valueAt (0))),false); }; + break; + + + case 111: /* ClassBodyDeclaration: STATIC Block */ + if (yyn == 111) + /* "src/main/resources/Java_16_Grammar.y":512 */ + { yyval = new ClassInitializer(((tree.Statement.Block)(yystack.valueAt (0))),true); }; + break; + + + case 112: /* ClassBodyDeclaration: SEMICOLON */ + if (yyn == 112) + /* "src/main/resources/Java_16_Grammar.y":513 */ + { yyval = null; }; + break; + + + case 113: /* PureBodyDeclaration: FieldDeclaration */ + if (yyn == 113) + /* "src/main/resources/Java_16_Grammar.y":517 */ + { yyval = ((tree.Declaration.Declaration)(yystack.valueAt (0))); }; + break; + + + case 114: /* PureBodyDeclaration: MethodDeclaration */ + if (yyn == 114) + /* "src/main/resources/Java_16_Grammar.y":518 */ + { yyval = ((tree.Declaration.Declaration)(yystack.valueAt (0))); }; + break; + + + case 115: /* PureBodyDeclaration: ClassDeclaration */ + if (yyn == 115) + /* "src/main/resources/Java_16_Grammar.y":519 */ + { yyval = ((tree.Declaration.Declaration)(yystack.valueAt (0))); }; + break; + + + case 116: /* PureBodyDeclaration: InterfaceDeclaration */ + if (yyn == 116) + /* "src/main/resources/Java_16_Grammar.y":520 */ + { yyval = ((tree.Declaration.Declaration)(yystack.valueAt (0))); }; + break; + + + case 117: /* PureBodyDeclaration: ConstructorDeclaration */ + if (yyn == 117) + /* "src/main/resources/Java_16_Grammar.y":521 */ + { yyval = ((ConstructorDeclaration)(yystack.valueAt (0))); }; + break; + + + case 118: /* ConstructorDeclaration: ConstructorDeclarator ThrowsOpt ConstructorBody */ + if (yyn == 118) + /* "src/main/resources/Java_16_Grammar.y":528 */ + { yyval = new ConstructorDeclaration(null,((ConstructorDeclarator)(yystack.valueAt (2))).typeParameters,((ConstructorDeclarator)(yystack.valueAt (2))).formalParameters, + ((tree.Type.TypeList)(yystack.valueAt (1))),((ConstructorBody)(yystack.valueAt (0))).invocation,((ConstructorBody)(yystack.valueAt (0))).block); }; + break; + + + case 119: /* ConstructorDeclarator: TypeParametersOpt IDENTIFIER LPAREN FormalParameterList RPAREN */ + if (yyn == 119) + /* "src/main/resources/Java_16_Grammar.y":534 */ + { yyval = new ConstructorDeclarator(((TypeParameters)(yystack.valueAt (4))),((ParameterDeclarations)(yystack.valueAt (1)))); }; + break; + + + case 120: /* ConstructorBody: LBRACE RBRACE */ + if (yyn == 120) + /* "src/main/resources/Java_16_Grammar.y":538 */ + { yyval = new ConstructorBody(null,null); }; + break; + + + case 121: /* ConstructorBody: LBRACE ExplicitConstructorInvocation RBRACE */ + if (yyn == 121) + /* "src/main/resources/Java_16_Grammar.y":539 */ + { yyval = new ConstructorBody(((ExplicitConstructorInvocation)(yystack.valueAt (1))),null); }; + break; + + + case 122: /* ConstructorBody: LBRACE BlockStatementSeq RBRACE */ + if (yyn == 122) + /* "src/main/resources/Java_16_Grammar.y":540 */ + { yyval = new ConstructorBody(null,new Block(null,((tree.Statement.BlockStatements)(yystack.valueAt (1))))); }; + break; + + + case 123: /* ConstructorBody: LBRACE ExplicitConstructorInvocation BlockStatementSeq RBRACE */ + if (yyn == 123) + /* "src/main/resources/Java_16_Grammar.y":541 */ + { yyval = new ConstructorBody(((ExplicitConstructorInvocation)(yystack.valueAt (2))),new Block(null,((tree.Statement.BlockStatements)(yystack.valueAt (1))))); }; + break; + + + case 124: /* ExplicitConstructorInvocation: TypeArgumentsOpt THIS Arguments SEMICOLON */ + if (yyn == 124) + /* "src/main/resources/Java_16_Grammar.y":545 */ + { yyval = new ExplicitConstructorInvocation(null,((tree.Type.TypeArguments)(yystack.valueAt (3))),false,((tree.Expression.ArgumentList)(yystack.valueAt (1)))); }; + break; + + + case 125: /* ExplicitConstructorInvocation: TypeArgumentsOpt SUPER Arguments SEMICOLON */ + if (yyn == 125) + /* "src/main/resources/Java_16_Grammar.y":546 */ + { yyval = new ExplicitConstructorInvocation(null,((tree.Type.TypeArguments)(yystack.valueAt (3))),true,((tree.Expression.ArgumentList)(yystack.valueAt (1)))); }; + break; + + + case 126: /* ExplicitConstructorInvocation: CompoundName DOT TypeArgumentsOpt SUPER Arguments SEMICOLON */ + if (yyn == 126) + /* "src/main/resources/Java_16_Grammar.y":547 */ + { Expression expr = new SimpleReference(((CompoundName)(yystack.valueAt (5)))); + yyval = new ExplicitConstructorInvocation(expr,((tree.Type.TypeArguments)(yystack.valueAt (3))),true,((tree.Expression.ArgumentList)(yystack.valueAt (1)))); }; + break; + + + case 127: /* ExplicitConstructorInvocation: Primary DOT TypeArgumentsOpt SUPER Arguments SEMICOLON */ + if (yyn == 127) + /* "src/main/resources/Java_16_Grammar.y":549 */ + { yyval = new ExplicitConstructorInvocation(((tree.Expression.Expression)(yystack.valueAt (5))),((tree.Type.TypeArguments)(yystack.valueAt (3))),true,((tree.Expression.ArgumentList)(yystack.valueAt (1)))); }; + break; + + + case 128: /* EnumDeclaration: ENUM IDENTIFIER ClassImplementsOpt EnumBody */ + if (yyn == 128) + /* "src/main/resources/Java_16_Grammar.y":555 */ + { yyval = null; }; + break; + + + case 139: /* RecordDeclaration: RECORD IDENTIFIER TypeParametersOpt RecordHeader ClassImplementsOpt RecordBody */ + if (yyn == 139) + /* "src/main/resources/Java_16_Grammar.y":583 */ + { yyval = null; }; + break; + + + case 152: /* FieldDeclaration: UnannotatedType VariableDeclaratorList SEMICOLON */ + if (yyn == 152) + /* "src/main/resources/Java_16_Grammar.y":619 */ + { yyval = new TypeAndDeclarators(((tree.Type.UnannotatedType)(yystack.valueAt (2))),((VariableDeclarators)(yystack.valueAt (1)))); }; + break; + + + case 153: /* VariableDeclaratorList: VariableDeclarator */ + if (yyn == 153) + /* "src/main/resources/Java_16_Grammar.y":623 */ + { yyval = new VariableDeclarators(((VariableDeclarator)(yystack.valueAt (0)))); }; + break; + + + case 154: /* VariableDeclaratorList: VariableDeclaratorList COMMA VariableDeclarator */ + if (yyn == 154) + /* "src/main/resources/Java_16_Grammar.y":624 */ + { yyval = ((VariableDeclarators)(yystack.valueAt (2))).add(((VariableDeclarator)(yystack.valueAt (0)))); }; + break; + + + case 155: /* VariableDeclarator: IDENTIFIER */ + if (yyn == 155) + /* "src/main/resources/Java_16_Grammar.y":628 */ + { yyval = new VariableDeclarator(((Token)(yystack.valueAt (0))),null,null); }; + break; + + + case 156: /* VariableDeclarator: IDENTIFIER EQUAL Expression */ + if (yyn == 156) + /* "src/main/resources/Java_16_Grammar.y":629 */ + { yyval = new VariableDeclarator(((Token)(yystack.valueAt (2))),null,((tree.Expression.Expression)(yystack.valueAt (0)))); }; + break; + + + case 157: /* VariableDeclarator: IDENTIFIER Dims */ + if (yyn == 157) + /* "src/main/resources/Java_16_Grammar.y":630 */ + { yyval = new VariableDeclarator(((Token)(yystack.valueAt (1))),((Dims)(yystack.valueAt (0))),null); }; + break; + + + case 158: /* VariableDeclarator: IDENTIFIER Dims EQUAL ArrayInitializer */ + if (yyn == 158) + /* "src/main/resources/Java_16_Grammar.y":631 */ + { yyval = new VariableDeclarator(((Token)(yystack.valueAt (3))),((Dims)(yystack.valueAt (2))),((Initializer)(yystack.valueAt (0)))); }; + break; + + + case 159: /* ArrayInitializer: LBRACE VariableInitializerListOpt RBRACE */ + if (yyn == 159) + /* "src/main/resources/Java_16_Grammar.y":635 */ + { yyval = ((Initializer)(yystack.valueAt (1))); }; + break; + + + case 160: /* ArrayInitializer: LBRACE VariableInitializerListOpt COMMA RBRACE */ + if (yyn == 160) + /* "src/main/resources/Java_16_Grammar.y":636 */ + { yyval = ((Initializer)(yystack.valueAt (2))); }; + break; + + + case 161: /* VariableInitializerListOpt: %empty */ + if (yyn == 161) + /* "src/main/resources/Java_16_Grammar.y":640 */ + { yyval = null; }; + break; + + + case 162: /* VariableInitializerListOpt: VariableInitializerList */ + if (yyn == 162) + /* "src/main/resources/Java_16_Grammar.y":641 */ + { yyval = ((Initializer)(yystack.valueAt (0))); }; + break; + + + case 163: /* VariableInitializerList: VariableInitializer */ + if (yyn == 163) + /* "src/main/resources/Java_16_Grammar.y":645 */ + { yyval = new InitializerArray(((Initializer)(yystack.valueAt (0)))); }; + break; + + + case 164: /* VariableInitializerList: VariableInitializerList COMMA VariableInitializer */ + if (yyn == 164) + /* "src/main/resources/Java_16_Grammar.y":646 */ + { yyval = ((Initializer)(yystack.valueAt (2))).add(((Initializer)(yystack.valueAt (0)))); }; + break; + + + case 165: /* VariableInitializer: Expression */ + if (yyn == 165) + /* "src/main/resources/Java_16_Grammar.y":650 */ + { yyval = new InitializerSimple(((tree.Expression.Expression)(yystack.valueAt (0)))); }; + break; + + + case 166: /* VariableInitializer: ArrayInitializer */ + if (yyn == 166) + /* "src/main/resources/Java_16_Grammar.y":651 */ + { yyval = ((Initializer)(yystack.valueAt (0))); }; + break; + + + case 167: /* MethodDeclaration: MethodHeader MethodBody */ + if (yyn == 167) + /* "src/main/resources/Java_16_Grammar.y":657 */ + { yyval = null; }; + break; + + + case 176: /* FormalParameterList: FormalParameter */ + if (yyn == 176) + /* "src/main/resources/Java_16_Grammar.y":696 */ + { yyval = new ParameterDeclarations(((ParameterDeclaration)(yystack.valueAt (0)))); }; + break; + + + case 177: /* FormalParameterList: FormalParameterList COMMA FormalParameter */ + if (yyn == 177) + /* "src/main/resources/Java_16_Grammar.y":697 */ + { yyval = ((ParameterDeclarations)(yystack.valueAt (2))).add(((ParameterDeclaration)(yystack.valueAt (0))));}; + break; + + + case 178: /* FormalParameter: ModifierSeq UnannotatedType FormalParameterTail */ + if (yyn == 178) + /* "src/main/resources/Java_16_Grammar.y":701 */ + { yyval = ParameterDeclaration.create(((Modifiers)(yystack.valueAt (2))),((tree.Type.UnannotatedType)(yystack.valueAt (1))),((ParameterTail)(yystack.valueAt (0)))); }; + break; + + + case 179: /* FormalParameter: UnannotatedType FormalParameterTail */ + if (yyn == 179) + /* "src/main/resources/Java_16_Grammar.y":702 */ + { yyval = ParameterDeclaration.create(null,((tree.Type.UnannotatedType)(yystack.valueAt (1))),((ParameterTail)(yystack.valueAt (0)))); }; + break; + + + case 180: /* FormalParameterTail: IDENTIFIER DimsOpt */ + if (yyn == 180) + /* "src/main/resources/Java_16_Grammar.y":706 */ + { yyval = new ParameterTail(null,((Token)(yystack.valueAt (1))),((Dims)(yystack.valueAt (0))),false,false); }; + break; + + + case 181: /* FormalParameterTail: AnnotationSeqOpt ELLIPSIS IDENTIFIER */ + if (yyn == 181) + /* "src/main/resources/Java_16_Grammar.y":707 */ + { yyval = new ParameterTail(((Annotations)(yystack.valueAt (2))),((Token)(yystack.valueAt (0))),null,true,false); }; + break; + + + case 182: /* FormalParameterTail: THIS */ + if (yyn == 182) + /* "src/main/resources/Java_16_Grammar.y":708 */ + { yyval = new ParameterTail(null,null,null,false,true); }; + break; + + + case 183: /* FormalParameterTail: IDENTIFIER DOT THIS */ + if (yyn == 183) + /* "src/main/resources/Java_16_Grammar.y":709 */ + { yyval = new ParameterTail(null,((Token)(yystack.valueAt (2))),null,false,true); }; + break; + + + case 184: /* ThrowsOpt: %empty */ + if (yyn == 184) + /* "src/main/resources/Java_16_Grammar.y":721 */ + { yyval = null; }; + break; + + + case 185: /* ThrowsOpt: THROWS ClassTypeList1 */ + if (yyn == 185) + /* "src/main/resources/Java_16_Grammar.y":722 */ + { yyval = ((tree.Type.TypeList)(yystack.valueAt (0))); }; + break; + + + case 188: /* DimsOpt: %empty */ + if (yyn == 188) + /* "src/main/resources/Java_16_Grammar.y":733 */ + { yyval = null; }; + break; + + + case 189: /* DimsOpt: Dims */ + if (yyn == 189) + /* "src/main/resources/Java_16_Grammar.y":734 */ + { yyval = ((Dims)(yystack.valueAt (0))); }; + break; + + + case 190: /* Dims: Dim */ + if (yyn == 190) + /* "src/main/resources/Java_16_Grammar.y":738 */ + { yyval = new Dims(((Dim)(yystack.valueAt (0)))); }; + break; + + + case 191: /* Dims: Dims Dim */ + if (yyn == 191) + /* "src/main/resources/Java_16_Grammar.y":739 */ + { yyval = ((Dims)(yystack.valueAt (1))).add(((Dim)(yystack.valueAt (0)))); }; + break; + + + case 192: /* Dim: AnnotationSeq LBRACKET RBRACKET */ + if (yyn == 192) + /* "src/main/resources/Java_16_Grammar.y":743 */ + { yyval = new Dim(((Annotations)(yystack.valueAt (2)))); }; + break; + + + case 193: /* Dim: LBRACKET RBRACKET */ + if (yyn == 193) + /* "src/main/resources/Java_16_Grammar.y":744 */ + { yyval = new Dim(null); }; + break; + + + case 194: /* InterfaceDeclaration: NormalInterfaceDeclaration */ + if (yyn == 194) + /* "src/main/resources/Java_16_Grammar.y":750 */ + { yyval = ((tree.Declaration.Declaration)(yystack.valueAt (0))); }; + break; + + + case 195: /* InterfaceDeclaration: AnnotationInterfaceDeclaration */ + if (yyn == 195) + /* "src/main/resources/Java_16_Grammar.y":751 */ + { yyval = null; }; + break; + + + case 196: /* NormalInterfaceDeclaration: INTERFACE IDENTIFIER TypeParametersOpt InterfaceExtendsOpt InterfaceBody */ + if (yyn == 196) + /* "src/main/resources/Java_16_Grammar.y":756 */ + { yyval = new NormalInterfaceDeclaration(((Token)(yystack.valueAt (3))),((TypeParameters)(yystack.valueAt (2))),((tree.Type.TypeList)(yystack.valueAt (1))),((Declarations)(yystack.valueAt (0)))); }; + break; + + + case 197: /* InterfaceExtendsOpt: %empty */ + if (yyn == 197) + /* "src/main/resources/Java_16_Grammar.y":760 */ + { yyval = null; }; + break; + + + case 198: /* InterfaceExtendsOpt: InterfaceExtends */ + if (yyn == 198) + /* "src/main/resources/Java_16_Grammar.y":761 */ + { yyval = ((tree.Type.TypeList)(yystack.valueAt (0))); }; + break; + + + case 199: /* InterfaceExtends: EXTENDS Type */ + if (yyn == 199) + /* "src/main/resources/Java_16_Grammar.y":765 */ + { yyval = new TypeList(((tree.Type.Type)(yystack.valueAt (0)))); }; + break; + + + case 200: /* InterfaceExtends: InterfaceExtends COMMA Type */ + if (yyn == 200) + /* "src/main/resources/Java_16_Grammar.y":766 */ + { yyval = ((tree.Type.TypeList)(yystack.valueAt (2))).add(((tree.Type.Type)(yystack.valueAt (0)))); }; + break; + + + case 201: /* InterfaceBody: LBRACE RBRACE */ + if (yyn == 201) + /* "src/main/resources/Java_16_Grammar.y":770 */ + { yyval = null; }; + break; + + + case 202: /* InterfaceBody: LBRACE InterfaceMemberDeclarationSeq RBRACE */ + if (yyn == 202) + /* "src/main/resources/Java_16_Grammar.y":771 */ + { yyval = ((Declarations)(yystack.valueAt (1))); }; + break; + + + case 203: /* InterfaceMemberDeclarationSeq: ModifierSeqOpt InterfaceMemberDeclaration */ + if (yyn == 203) + /* "src/main/resources/Java_16_Grammar.y":775 */ + { yyval = new Declarations(((tree.Declaration.Declaration)(yystack.valueAt (0))).addModifiers(((Modifiers)(yystack.valueAt (1))))); }; + break; + + + case 204: /* InterfaceMemberDeclarationSeq: InterfaceMemberDeclarationSeq ModifierSeqOpt InterfaceMemberDeclaration */ + if (yyn == 204) + /* "src/main/resources/Java_16_Grammar.y":776 */ + { yyval = ((Declarations)(yystack.valueAt (2))).add(((tree.Declaration.Declaration)(yystack.valueAt (0))).addModifiers(((Modifiers)(yystack.valueAt (1))))); }; + break; + + + case 205: /* InterfaceMemberDeclaration: ConstantDeclaration */ + if (yyn == 205) + /* "src/main/resources/Java_16_Grammar.y":780 */ + { yyval = ((tree.Declaration.Declaration)(yystack.valueAt (0))); }; + break; + + + case 206: /* InterfaceMemberDeclaration: InterfaceMethodDeclaration */ + if (yyn == 206) + /* "src/main/resources/Java_16_Grammar.y":781 */ + { yyval = ((tree.Declaration.Declaration)(yystack.valueAt (0))); }; + break; + + + case 207: /* InterfaceMemberDeclaration: ClassDeclaration */ + if (yyn == 207) + /* "src/main/resources/Java_16_Grammar.y":782 */ + { yyval = ((tree.Declaration.Declaration)(yystack.valueAt (0))); }; + break; + + + case 208: /* InterfaceMemberDeclaration: InterfaceDeclaration */ + if (yyn == 208) + /* "src/main/resources/Java_16_Grammar.y":783 */ + { yyval = ((tree.Declaration.Declaration)(yystack.valueAt (0))); }; + break; + + + case 209: /* ConstantDeclaration: Type VariableDeclaratorList SEMICOLON */ + if (yyn == 209) + /* "src/main/resources/Java_16_Grammar.y":787 */ + { yyval = new TypeAndDeclarators(((tree.Type.Type)(yystack.valueAt (2))),((VariableDeclarators)(yystack.valueAt (1)))); }; + break; + + + case 210: /* InterfaceMethodDeclaration: MethodHeader MethodBody */ + if (yyn == 210) + /* "src/main/resources/Java_16_Grammar.y":791 */ + { yyval = null; }; + break; + + + case 211: /* AnnotationInterfaceDeclaration: AT INTERFACE IDENTIFIER AnnotationInterfaceBody */ + if (yyn == 211) + /* "src/main/resources/Java_16_Grammar.y":795 */ + { yyval = null; }; + break; + + + case 223: /* Block: LBRACE RBRACE */ + if (yyn == 223) + /* "src/main/resources/Java_16_Grammar.y":827 */ + { yyval = null; }; + break; + + + case 224: /* Block: LBRACE BlockStatementSeq RBRACE */ + if (yyn == 224) + /* "src/main/resources/Java_16_Grammar.y":828 */ + { yyval = ((tree.Statement.BlockStatements)(yystack.valueAt (1))); }; + break; + + + case 225: /* BlockStatementSeq: BlockStatement */ + if (yyn == 225) + /* "src/main/resources/Java_16_Grammar.y":832 */ + { yyval = new BlockStatements(((tree.Statement.BlockStatement)(yystack.valueAt (0)))); }; + break; + + + case 226: /* BlockStatementSeq: BlockStatementSeq BlockStatement */ + if (yyn == 226) + /* "src/main/resources/Java_16_Grammar.y":833 */ + { yyval = ((tree.Statement.BlockStatements)(yystack.valueAt (1))).add(((tree.Statement.BlockStatement)(yystack.valueAt (0)))); }; + break; + + + case 227: /* BlockStatement: ModifierSeqOpt BlockDeclaration */ + if (yyn == 227) + /* "src/main/resources/Java_16_Grammar.y":837 */ + { yyval = new BlockStatement(((tree.Declaration.Declaration)(yystack.valueAt (0))).addModifiers(((Modifiers)(yystack.valueAt (1))))); }; + break; + + + case 228: /* BlockStatement: Statement */ + if (yyn == 228) + /* "src/main/resources/Java_16_Grammar.y":838 */ + { yyval = ((tree.Statement.Statement)(yystack.valueAt (0))); }; + break; + + + case 229: /* BlockDeclaration: ClassDeclaration */ + if (yyn == 229) + /* "src/main/resources/Java_16_Grammar.y":842 */ + { yyval = ((tree.Declaration.Declaration)(yystack.valueAt (0))); }; + break; + + + case 230: /* BlockDeclaration: NormalInterfaceDeclaration */ + if (yyn == 230) + /* "src/main/resources/Java_16_Grammar.y":843 */ + { yyval = ((tree.Declaration.Declaration)(yystack.valueAt (0))); }; + break; + + + case 231: /* BlockDeclaration: LocalVariableDeclaration SEMICOLON */ + if (yyn == 231) + /* "src/main/resources/Java_16_Grammar.y":844 */ + { yyval = ((tree.Declaration.Declaration)(yystack.valueAt (1))); }; + break; + + + case 232: /* LocalVariableDeclaration: UnannotatedType VariableDeclaratorList */ + if (yyn == 232) + /* "src/main/resources/Java_16_Grammar.y":848 */ + { yyval = new TypeAndDeclarators(((tree.Type.UnannotatedType)(yystack.valueAt (1))),((VariableDeclarators)(yystack.valueAt (0)))); }; + break; + + + case 233: /* LocalVariableDeclaration: VAR VariableDeclaratorList */ + if (yyn == 233) + /* "src/main/resources/Java_16_Grammar.y":849 */ + { yyval = new TypeAndDeclarators(null,((VariableDeclarators)(yystack.valueAt (0)))); }; + break; + + + case 239: /* SimpleStatement: Block */ + if (yyn == 239) + /* "src/main/resources/Java_16_Grammar.y":861 */ + { yyval = ((tree.Statement.Block)(yystack.valueAt (0))); }; + break; + + + case 240: /* SimpleStatement: SEMICOLON */ + if (yyn == 240) + /* "src/main/resources/Java_16_Grammar.y":862 */ + { yyval = null; }; + break; + + + case 241: /* SimpleStatement: StatementExpression SEMICOLON */ + if (yyn == 241) + /* "src/main/resources/Java_16_Grammar.y":863 */ + { yyval = new StatementExpression(((tree.Expression.Expression)(yystack.valueAt (1)))); }; + break; + + + case 242: /* SimpleStatement: ASSERT Expression SEMICOLON */ + if (yyn == 242) + /* "src/main/resources/Java_16_Grammar.y":865 */ + { yyval = new Assert(null,((tree.Expression.Expression)(yystack.valueAt (1))),null); }; + break; + + + case 243: /* SimpleStatement: ASSERT Expression COLON Expression SEMICOLON */ + if (yyn == 243) + /* "src/main/resources/Java_16_Grammar.y":866 */ + { yyval = new Assert(null,((tree.Expression.Expression)(yystack.valueAt (3))),((tree.Expression.Expression)(yystack.valueAt (1)))); }; + break; + + + case 244: /* SimpleStatement: SWITCH LPAREN Expression RPAREN SwitchBlock */ + if (yyn == 244) + /* "src/main/resources/Java_16_Grammar.y":868 */ + { yyval = null; }; + break; + + + case 245: /* SimpleStatement: DO Statement WHILE LPAREN Expression RPAREN SEMICOLON */ + if (yyn == 245) + /* "src/main/resources/Java_16_Grammar.y":869 */ + { yyval = new Do(null,((tree.Statement.Statement)(yystack.valueAt (5))),((tree.Expression.Expression)(yystack.valueAt (2)))); }; + break; + + + case 246: /* SimpleStatement: BREAK SEMICOLON */ + if (yyn == 246) + /* "src/main/resources/Java_16_Grammar.y":871 */ + { yyval = new Break(null,null); }; + break; + + + case 247: /* SimpleStatement: BREAK IDENTIFIER SEMICOLON */ + if (yyn == 247) + /* "src/main/resources/Java_16_Grammar.y":872 */ + { yyval = new Break(null,((Token)(yystack.valueAt (1)))); }; + break; + + + case 248: /* SimpleStatement: CONTINUE SEMICOLON */ + if (yyn == 248) + /* "src/main/resources/Java_16_Grammar.y":874 */ + { yyval = new Continue(null,null); }; + break; + + + case 249: /* SimpleStatement: CONTINUE IDENTIFIER SEMICOLON */ + if (yyn == 249) + /* "src/main/resources/Java_16_Grammar.y":875 */ + { yyval = new Continue(null,((Token)(yystack.valueAt (1)))); }; + break; + + + case 250: /* SimpleStatement: RETURN SEMICOLON */ + if (yyn == 250) + /* "src/main/resources/Java_16_Grammar.y":877 */ + { yyval = new Return(null,null); }; + break; + + + case 251: /* SimpleStatement: RETURN Expression SEMICOLON */ + if (yyn == 251) + /* "src/main/resources/Java_16_Grammar.y":878 */ + { yyval = new Return(null,((tree.Expression.Expression)(yystack.valueAt (1)))); }; + break; + + + case 252: /* SimpleStatement: SYNCHRONIZED LPAREN Expression RPAREN Block */ + if (yyn == 252) + /* "src/main/resources/Java_16_Grammar.y":880 */ + { yyval = new Synchronized(null,((tree.Expression.Expression)(yystack.valueAt (2))),((tree.Statement.Block)(yystack.valueAt (0)))); }; + break; + + + case 253: /* SimpleStatement: THROW Expression SEMICOLON */ + if (yyn == 253) + /* "src/main/resources/Java_16_Grammar.y":882 */ + { yyval = new Throw(null,((tree.Expression.Expression)(yystack.valueAt (1)))); }; + break; + + + case 254: /* SimpleStatement: YIELD Expression SEMICOLON */ + if (yyn == 254) + /* "src/main/resources/Java_16_Grammar.y":883 */ + { yyval = new Yield(null,((tree.Expression.Expression)(yystack.valueAt (1)))); }; + break; + + + case 255: /* SimpleStatement: TRY Block Catches */ + if (yyn == 255) + /* "src/main/resources/Java_16_Grammar.y":886 */ + { yyval = null; }; + break; + + + case 256: /* SimpleStatement: TRY Block Catches Finally */ + if (yyn == 256) + /* "src/main/resources/Java_16_Grammar.y":887 */ + { yyval = null; }; + break; + + + case 257: /* SimpleStatement: TRY Block Finally */ + if (yyn == 257) + /* "src/main/resources/Java_16_Grammar.y":888 */ + { yyval = null; }; + break; + + + case 258: /* SimpleStatement: TRY ResourceSpecification Block CatchesOpt FinallyOpt */ + if (yyn == 258) + /* "src/main/resources/Java_16_Grammar.y":890 */ + { yyval = null; }; + break; + + + case 259: /* LabeledStatement: IDENTIFIER COLON Statement */ + if (yyn == 259) + /* "src/main/resources/Java_16_Grammar.y":894 */ + { yyval = ((tree.Statement.Statement)(yystack.valueAt (0))).addLabel(((Token)(yystack.valueAt (2)))); }; + break; + + + case 260: /* StatementExpression: Assignment */ + if (yyn == 260) + /* "src/main/resources/Java_16_Grammar.y":898 */ + { yyval = ((tree.Expression.Expression)(yystack.valueAt (0))); }; + break; + + + case 261: /* StatementExpression: PreIncrementExpression */ + if (yyn == 261) + /* "src/main/resources/Java_16_Grammar.y":899 */ + { yyval = ((UnaryPrefix)(yystack.valueAt (0))); }; + break; + + + case 262: /* StatementExpression: PreDecrementExpression */ + if (yyn == 262) + /* "src/main/resources/Java_16_Grammar.y":900 */ + { yyval = ((UnaryPrefix)(yystack.valueAt (0))); }; + break; + + + case 263: /* StatementExpression: PostIncrementExpression */ + if (yyn == 263) + /* "src/main/resources/Java_16_Grammar.y":901 */ + { yyval = ((UnaryPostfix)(yystack.valueAt (0))); }; + break; + + + case 264: /* StatementExpression: PostDecrementExpression */ + if (yyn == 264) + /* "src/main/resources/Java_16_Grammar.y":902 */ + { yyval = ((UnaryPostfix)(yystack.valueAt (0))); }; + break; + + + case 265: /* StatementExpression: MethodInvocation */ + if (yyn == 265) + /* "src/main/resources/Java_16_Grammar.y":903 */ + { yyval = ((tree.Expression.Expression)(yystack.valueAt (0))); }; + break; + + + case 266: /* StatementExpression: ClassInstanceCreationExpression */ + if (yyn == 266) + /* "src/main/resources/Java_16_Grammar.y":904 */ + { yyval = ((tree.Expression.Expression)(yystack.valueAt (0))); }; + break; + + + case 267: /* IfThenElseStatement: IF LPAREN Expression RPAREN Statement ElsePartOpt */ + if (yyn == 267) + /* "src/main/resources/Java_16_Grammar.y":908 */ + { yyval = null; }; + break; + + + case 268: /* ElsePartOpt: %empty */ + if (yyn == 268) + /* "src/main/resources/Java_16_Grammar.y":912 */ + { yyval = null; }; + break; + + + case 269: /* ElsePartOpt: ELSE Statement */ + if (yyn == 269) + /* "src/main/resources/Java_16_Grammar.y":913 */ + { yyval = ((tree.Statement.Statement)(yystack.valueAt (0))); }; + break; + + + case 270: /* SwitchBlock: LBRACE SwitchRuleSeq RBRACE */ + if (yyn == 270) + /* "src/main/resources/Java_16_Grammar.y":917 */ + { yyval = null; }; + break; + + + case 271: /* SwitchBlock: LBRACE SwitchBlockStatementGroupSeqOpt RBRACE */ + if (yyn == 271) + /* "src/main/resources/Java_16_Grammar.y":918 */ + { yyval = null; }; + break; + + + case 272: /* SwitchBlock: LBRACE SwitchBlockStatementGroupSeqOpt SwitchLabelSeq RBRACE */ + if (yyn == 272) + /* "src/main/resources/Java_16_Grammar.y":919 */ + { yyval = null; }; + break; + + + case 273: /* SwitchRuleSeq: SwitchRule */ + if (yyn == 273) + /* "src/main/resources/Java_16_Grammar.y":923 */ + { yyval = new SwitchRules(((SwitchRule)(yystack.valueAt (0)))); }; + break; + + + case 274: /* SwitchRuleSeq: SwitchRuleSeq SwitchRule */ + if (yyn == 274) + /* "src/main/resources/Java_16_Grammar.y":924 */ + { yyval = ((SwitchRules)(yystack.valueAt (1))).add(((SwitchRule)(yystack.valueAt (0)))); }; + break; + + + case 275: /* SwitchRule: SwitchLabel ARROW Expression SEMICOLON */ + if (yyn == 275) + /* "src/main/resources/Java_16_Grammar.y":928 */ + { yyval = new SwitchRule(((SwitchLabel)(yystack.valueAt (3))),((tree.Expression.Expression)(yystack.valueAt (1)))); }; + break; + + + case 276: /* SwitchRule: SwitchLabel ARROW Block */ + if (yyn == 276) + /* "src/main/resources/Java_16_Grammar.y":929 */ + { yyval = new SwitchRule(((SwitchLabel)(yystack.valueAt (2))),((tree.Statement.Block)(yystack.valueAt (0)))); }; + break; + + + case 277: /* SwitchRule: SwitchLabel ARROW THROW Expression SEMICOLON */ + if (yyn == 277) + /* "src/main/resources/Java_16_Grammar.y":930 */ + { yyval = new SwitchRule(((SwitchLabel)(yystack.valueAt (4))),new Throw(null,((tree.Expression.Expression)(yystack.valueAt (1))))); }; + break; + + + case 283: /* SwitchLabelSeq: SwitchLabel COLON */ + if (yyn == 283) + /* "src/main/resources/Java_16_Grammar.y":945 */ + { yyval = new SwitchLables(((Token)(yystack.valueAt (0)))); }; + break; + + + case 284: /* SwitchLabelSeq: SwitchLabelSeq SwitchLabel COLON */ + if (yyn == 284) + /* "src/main/resources/Java_16_Grammar.y":946 */ + { yyval = ((SwitchLabels)(yystack.valueAt (2))).add(((SwitchLabel)(yystack.valueAt (1)))); }; + break; + + + case 285: /* SwitchLabel: CASE CaseExpressionList */ + if (yyn == 285) + /* "src/main/resources/Java_16_Grammar.y":950 */ + { yyval = ((SwitchLabel)(yystack.valueAt (0))); }; + break; + + + case 286: /* SwitchLabel: DEFAULT */ + if (yyn == 286) + /* "src/main/resources/Java_16_Grammar.y":951 */ + { yyval = null; }; + break; + + + case 287: /* CaseExpressionList: AssignmentExpression */ + if (yyn == 287) + /* "src/main/resources/Java_16_Grammar.y":955 */ + { yyval = new SwitchLabel(((tree.Expression.Expression)(yystack.valueAt (0)))); }; + break; + + + case 288: /* CaseExpressionList: CaseExpressionList COMMA AssignmentExpression */ + if (yyn == 288) + /* "src/main/resources/Java_16_Grammar.y":956 */ + { yyval = ((SwitchLabel)(yystack.valueAt (2))).add(((tree.Expression.Expression)(yystack.valueAt (0)))); }; + break; + + + case 289: /* WhileStatement: WHILE LPAREN Expression RPAREN Statement */ + if (yyn == 289) + /* "src/main/resources/Java_16_Grammar.y":963 */ + { yyval = new While(null,((tree.Expression.Expression)(yystack.valueAt (2))),((tree.Statement.Statement)(yystack.valueAt (0)))); }; + break; + + + case 290: /* ForStatement: BasicForStatement */ + if (yyn == 290) + /* "src/main/resources/Java_16_Grammar.y":967 */ + { yyval = ((tree.Statement.Statement)(yystack.valueAt (0))); }; + break; + + + case 291: /* ForStatement: EnhancedForStatement */ + if (yyn == 291) + /* "src/main/resources/Java_16_Grammar.y":968 */ + { yyval = ((tree.Statement.Statement)(yystack.valueAt (0))); }; + break; + + + case 292: /* BasicForStatement: FOR LPAREN ForInitOpt SEMICOLON ExpressionOpt SEMICOLON StatementExpressionListOpt RPAREN Statement */ + if (yyn == 292) + /* "src/main/resources/Java_16_Grammar.y":973 */ + { yyval = null; }; + break; + + + case 296: /* ExpressionOpt: %empty */ + if (yyn == 296) + /* "src/main/resources/Java_16_Grammar.y":983 */ + { yyval = null; }; + break; + + + case 297: /* ExpressionOpt: Expression */ + if (yyn == 297) + /* "src/main/resources/Java_16_Grammar.y":984 */ + { yyval = ((tree.Expression.Expression)(yystack.valueAt (0))); }; + break; + + + case 298: /* StatementExpressionList: StatementExpression */ + if (yyn == 298) + /* "src/main/resources/Java_16_Grammar.y":991 */ + { yyval = new StatementExpressions(((tree.Expression.Expression)(yystack.valueAt (0)))); }; + break; + + + case 299: /* StatementExpressionList: StatementExpressionList COMMA StatementExpression */ + if (yyn == 299) + /* "src/main/resources/Java_16_Grammar.y":992 */ + { yyval = ((StatementExpressions)(yystack.valueAt (2))).add(((tree.Expression.Expression)(yystack.valueAt (0)))); }; + break; + + + case 300: /* StatementExpressionListOpt: %empty */ + if (yyn == 300) + /* "src/main/resources/Java_16_Grammar.y":996 */ + { yyval = null; }; + break; + + + case 301: /* StatementExpressionListOpt: StatementExpressionList */ + if (yyn == 301) + /* "src/main/resources/Java_16_Grammar.y":997 */ + { yyval = ((StatementExpressions)(yystack.valueAt (0))); }; + break; + + + case 302: /* EnhancedForStatement: FOR LPAREN LocalVariableDeclaration COLON Expression RPAREN Statement */ + if (yyn == 302) + /* "src/main/resources/Java_16_Grammar.y":1001 */ + { yyval = null; }; + break; + + + case 303: /* CatchesOpt: %empty */ + if (yyn == 303) + /* "src/main/resources/Java_16_Grammar.y":1005 */ + { yyval = null; }; + break; + + + case 304: /* CatchesOpt: Catches */ + if (yyn == 304) + /* "src/main/resources/Java_16_Grammar.y":1006 */ + { yyval = ((CatchClauses)(yystack.valueAt (0))); }; + break; + + + case 305: /* Catches: CatchClause */ + if (yyn == 305) + /* "src/main/resources/Java_16_Grammar.y":1010 */ + { yyval = new CatchClauses(((CatchClause)(yystack.valueAt (0)))); }; + break; + + + case 306: /* Catches: Catches CatchClause */ + if (yyn == 306) + /* "src/main/resources/Java_16_Grammar.y":1011 */ + { yyval = ((CatchClauses)(yystack.valueAt (1))).add(((CatchClause)(yystack.valueAt (0)))); }; + break; + + + case 307: /* CatchClause: CATCH LPAREN CatchFormalParameter RPAREN Block */ + if (yyn == 307) + /* "src/main/resources/Java_16_Grammar.y":1015 */ + { yyval = new CatchClause(((CatchParameter)(yystack.valueAt (2))),((tree.Statement.Block)(yystack.valueAt (0)))); }; + break; + + + case 308: /* CatchFormalParameter: ModifierSeqOpt CatchType IDENTIFIER DimsOpt */ + if (yyn == 308) + /* "src/main/resources/Java_16_Grammar.y":1019 */ + { yyval = new CatchParameter(((Modifiers)(yystack.valueAt (3))),((tree.Type.TypeList)(yystack.valueAt (2))),((Token)(yystack.valueAt (1))),((Dims)(yystack.valueAt (0)))); }; + break; + + + case 309: /* CatchType: Type */ + if (yyn == 309) + /* "src/main/resources/Java_16_Grammar.y":1023 */ + { yyval = new TypeList(((tree.Type.Type)(yystack.valueAt (0)))); }; + break; + + + case 310: /* CatchType: CatchType VERTICAL Type */ + if (yyn == 310) + /* "src/main/resources/Java_16_Grammar.y":1024 */ + { yyval = ((tree.Type.TypeList)(yystack.valueAt (2))).add(((tree.Type.Type)(yystack.valueAt (0)))); }; + break; + + + case 321: /* Primary: Literal */ + if (yyn == 321) + /* "src/main/resources/Java_16_Grammar.y":1061 */ + { yyval = ((Token)(yystack.valueAt (0))); }; + break; + + + case 322: /* Primary: Type DimsOpt DOT CLASS */ + if (yyn == 322) + /* "src/main/resources/Java_16_Grammar.y":1062 */ + { yyval = new ClassLiteral(((tree.Type.Type)(yystack.valueAt (3))),((Dims)(yystack.valueAt (2)))); }; + break; + + + case 323: /* Primary: VOID DimsOpt DOT CLASS */ + if (yyn == 323) + /* "src/main/resources/Java_16_Grammar.y":1063 */ + { yyval = new ClassLiteral(null,((Dims)(yystack.valueAt (2)))); }; + break; + + + case 324: /* Primary: THIS */ + if (yyn == 324) + /* "src/main/resources/Java_16_Grammar.y":1064 */ + { yyval = new This(null); }; + break; + + + case 325: /* Primary: Type DOT THIS */ + if (yyn == 325) + /* "src/main/resources/Java_16_Grammar.y":1065 */ + { yyval = new This(((tree.Type.Type)(yystack.valueAt (2)))); }; + break; + + + case 326: /* Primary: LPAREN Expression RPAREN */ + if (yyn == 326) + /* "src/main/resources/Java_16_Grammar.y":1066 */ + { yyval = new Parenthesized(((tree.Expression.Expression)(yystack.valueAt (1)))); }; + break; + + + case 327: /* Primary: ClassInstanceCreationExpression */ + if (yyn == 327) + /* "src/main/resources/Java_16_Grammar.y":1067 */ + { yyval = null; }; + break; + + + case 328: /* Primary: FieldAccess */ + if (yyn == 328) + /* "src/main/resources/Java_16_Grammar.y":1068 */ + { yyval = ((tree.Expression.Expression)(yystack.valueAt (0))); }; + break; + + + case 329: /* Primary: ArrayAccess */ + if (yyn == 329) + /* "src/main/resources/Java_16_Grammar.y":1069 */ + { yyval = ((tree.Expression.Expression)(yystack.valueAt (0))); }; + break; + + + case 330: /* Primary: MethodInvocation */ + if (yyn == 330) + /* "src/main/resources/Java_16_Grammar.y":1070 */ + { yyval = ((tree.Expression.Expression)(yystack.valueAt (0))); }; + break; + + + case 331: /* Primary: MethodReference */ + if (yyn == 331) + /* "src/main/resources/Java_16_Grammar.y":1071 */ + { yyval = ((tree.Expression.Expression)(yystack.valueAt (0))); }; + break; + + + case 332: /* Primary: ArrayCreationExpression */ + if (yyn == 332) + /* "src/main/resources/Java_16_Grammar.y":1072 */ + { yyval = ((tree.Expression.Expression)(yystack.valueAt (0))); }; + break; + + + case 333: /* ClassInstanceCreationExpression: UnqualifiedClassInstanceCreationExpression */ + if (yyn == 333) + /* "src/main/resources/Java_16_Grammar.y":1082 */ + { yyval = null; }; + break; + + + case 334: /* ClassInstanceCreationExpression: CompoundName DOT UnqualifiedClassInstanceCreationExpression */ + if (yyn == 334) + /* "src/main/resources/Java_16_Grammar.y":1083 */ + { yyval = null; }; + break; + + + case 335: /* ClassInstanceCreationExpression: Primary DOT UnqualifiedClassInstanceCreationExpression */ + if (yyn == 335) + /* "src/main/resources/Java_16_Grammar.y":1084 */ + { yyval = null; }; + break; + + + case 341: /* TypeArgumentsOpt: %empty */ + if (yyn == 341) + /* "src/main/resources/Java_16_Grammar.y":1102 */ + { yyval = null; }; + break; + + + case 342: /* TypeArgumentsOpt: TypeArguments */ + if (yyn == 342) + /* "src/main/resources/Java_16_Grammar.y":1103 */ + { yyval = ((tree.Type.TypeArguments)(yystack.valueAt (0))); }; + break; + + + case 343: /* TypeArguments: LESS TypeArgumentList GREATER */ + if (yyn == 343) + /* "src/main/resources/Java_16_Grammar.y":1107 */ + { yyval = ((tree.Type.TypeArguments)(yystack.valueAt (1))); }; + break; + + + case 344: /* TypeArgumentList: TypeArgument */ + if (yyn == 344) + /* "src/main/resources/Java_16_Grammar.y":1111 */ + { yyval = new TypeArguments(((tree.Type.TypeArgument)(yystack.valueAt (0)))); }; + break; + + + case 345: /* TypeArgumentList: TypeArgumentList COMMA TypeArgument */ + if (yyn == 345) + /* "src/main/resources/Java_16_Grammar.y":1112 */ + { yyval = ((tree.Type.TypeArguments)(yystack.valueAt (2))).add(((tree.Type.TypeArgument)(yystack.valueAt (0)))); }; + break; + + + case 346: /* TypeArgument: Type */ + if (yyn == 346) + /* "src/main/resources/Java_16_Grammar.y":1116 */ + { yyval = new TypeArgument(((tree.Type.Type)(yystack.valueAt (0))),0,null); }; + break; + + + case 347: /* TypeArgument: QUESTION */ + if (yyn == 347) + /* "src/main/resources/Java_16_Grammar.y":1117 */ + { yyval = new TypeArgument(null,1,null); }; + break; + + + case 348: /* TypeArgument: QUESTION EXTENDS Type */ + if (yyn == 348) + /* "src/main/resources/Java_16_Grammar.y":1118 */ + { yyval = new TypeArgument(((tree.Type.Type)(yystack.valueAt (0))),1,null); }; + break; + + + case 349: /* TypeArgument: QUESTION SUPER Type */ + if (yyn == 349) + /* "src/main/resources/Java_16_Grammar.y":1119 */ + { yyval = new TypeArgument(((tree.Type.Type)(yystack.valueAt (0))),2,null); }; + break; + + + case 350: /* TypeArgument: AnnotationSeq QUESTION */ + if (yyn == 350) + /* "src/main/resources/Java_16_Grammar.y":1120 */ + { yyval = new TypeArgument(null,1,((Annotations)(yystack.valueAt (1)))); }; + break; + + + case 351: /* TypeArgument: AnnotationSeq QUESTION EXTENDS Type */ + if (yyn == 351) + /* "src/main/resources/Java_16_Grammar.y":1121 */ + { yyval = new TypeArgument(((tree.Type.Type)(yystack.valueAt (0))),2,((Annotations)(yystack.valueAt (3)))); }; + break; + + + case 352: /* TypeArgument: AnnotationSeq QUESTION SUPER Type */ + if (yyn == 352) + /* "src/main/resources/Java_16_Grammar.y":1122 */ + { yyval = new TypeArgument(((tree.Type.Type)(yystack.valueAt (0))),3,((Annotations)(yystack.valueAt (3)))); }; + break; + + + case 353: /* FieldAccess: Primary DOT IDENTIFIER */ + if (yyn == 353) + /* "src/main/resources/Java_16_Grammar.y":1132 */ + { yyval = new FieldAccess(((tree.Expression.Expression)(yystack.valueAt (2))), false,((Token)(yystack.valueAt (0)))); }; + break; + + + case 354: /* FieldAccess: SUPER DOT IDENTIFIER */ + if (yyn == 354) + /* "src/main/resources/Java_16_Grammar.y":1133 */ + { yyval = new FieldAccess(null,true, ((Token)(yystack.valueAt (0)))); }; + break; + + + case 355: /* FieldAccess: CompoundName DOT SUPER DOT IDENTIFIER */ + if (yyn == 355) + /* "src/main/resources/Java_16_Grammar.y":1134 */ + { yyval = new FieldAccess(new SimpleReference(((CompoundName)(yystack.valueAt (4)))),true,((Token)(yystack.valueAt (0)))); }; + break; + + + case 356: /* ArrayAccess: CompoundName LBRACKET Expression RBRACKET */ + if (yyn == 356) + /* "src/main/resources/Java_16_Grammar.y":1138 */ + { yyval = new ArrayAccess(new SimpleReference(((CompoundName)(yystack.valueAt (3)))),((tree.Expression.Expression)(yystack.valueAt (1)))); }; + break; + + + case 357: /* ArrayAccess: Primary LBRACKET Expression RBRACKET */ + if (yyn == 357) + /* "src/main/resources/Java_16_Grammar.y":1139 */ + { yyval = new ArrayAccess(((tree.Expression.Expression)(yystack.valueAt (3))),((tree.Expression.Expression)(yystack.valueAt (1)))); }; + break; + + + case 358: /* MethodInvocation: IDENTIFIER Arguments */ + if (yyn == 358) + /* "src/main/resources/Java_16_Grammar.y":1143 */ + { yyval = null; }; + break; + + + case 359: /* MethodInvocation: CompoundName DOT TypeArgumentsOpt IDENTIFIER Arguments */ + if (yyn == 359) + /* "src/main/resources/Java_16_Grammar.y":1144 */ + { yyval = null; }; + break; + + + case 360: /* MethodInvocation: Primary DOT TypeArgumentsOpt IDENTIFIER Arguments */ + if (yyn == 360) + /* "src/main/resources/Java_16_Grammar.y":1145 */ + { yyval = null; }; + break; + + + case 361: /* MethodInvocation: SUPER DOT TypeArgumentsOpt IDENTIFIER Arguments */ + if (yyn == 361) + /* "src/main/resources/Java_16_Grammar.y":1146 */ + { yyval = null; }; + break; + + + case 362: /* MethodInvocation: CompoundName DOT SUPER DOT TypeArgumentsOpt IDENTIFIER Arguments */ + if (yyn == 362) + /* "src/main/resources/Java_16_Grammar.y":1147 */ + { yyval = null; }; + break; + + + case 363: /* Arguments: LPAREN RPAREN */ + if (yyn == 363) + /* "src/main/resources/Java_16_Grammar.y":1151 */ + { yyval = null; }; + break; + + + case 364: /* Arguments: LPAREN ArgumentList RPAREN */ + if (yyn == 364) + /* "src/main/resources/Java_16_Grammar.y":1152 */ + { yyval = ((tree.Expression.ArgumentList)(yystack.valueAt (1))); }; + break; + + + case 365: /* ArgumentList: Expression */ + if (yyn == 365) + /* "src/main/resources/Java_16_Grammar.y":1161 */ + { yyval = new ArgumentList(((tree.Expression.Expression)(yystack.valueAt (0)))); }; + break; + + + case 366: /* ArgumentList: ArgumentList COMMA Expression */ + if (yyn == 366) + /* "src/main/resources/Java_16_Grammar.y":1162 */ + { yyval = ((tree.Expression.ArgumentList)(yystack.valueAt (2))).add(((tree.Expression.Expression)(yystack.valueAt (0)))); }; + break; + + + case 367: /* MethodReference: CompoundName DBL_COLON TypeArgumentsOpt IDENTIFIER */ + if (yyn == 367) + /* "src/main/resources/Java_16_Grammar.y":1166 */ + { yyval = null; }; + break; + + + case 368: /* MethodReference: Primary DBL_COLON TypeArgumentsOpt IDENTIFIER */ + if (yyn == 368) + /* "src/main/resources/Java_16_Grammar.y":1167 */ + { yyval = null; }; + break; + + + case 369: /* MethodReference: Type DBL_COLON TypeArgumentsOpt IDENTIFIER */ + if (yyn == 369) + /* "src/main/resources/Java_16_Grammar.y":1168 */ + { yyval = null; }; + break; + + + case 370: /* MethodReference: SUPER DBL_COLON TypeArgumentsOpt IDENTIFIER */ + if (yyn == 370) + /* "src/main/resources/Java_16_Grammar.y":1169 */ + { yyval = null; }; + break; + + + case 371: /* MethodReference: Type DOT SUPER DBL_COLON TypeArgumentsOpt IDENTIFIER */ + if (yyn == 371) + /* "src/main/resources/Java_16_Grammar.y":1170 */ + { yyval = null; }; + break; + + + case 372: /* MethodReference: Type DBL_COLON TypeArgumentsOpt NEW */ + if (yyn == 372) + /* "src/main/resources/Java_16_Grammar.y":1171 */ + { yyval = null; }; + break; + + + case 373: /* ArrayCreationExpression: NEW Type DimExprs DimsOpt */ + if (yyn == 373) + /* "src/main/resources/Java_16_Grammar.y":1175 */ + { yyval = null; }; + break; + + + case 374: /* ArrayCreationExpression: NEW Type Dims ArrayInitializer */ + if (yyn == 374) + /* "src/main/resources/Java_16_Grammar.y":1176 */ + { yyval = null; }; + break; + + + case 379: /* Expression: LambdaExpression */ + if (yyn == 379) + /* "src/main/resources/Java_16_Grammar.y":1192 */ + { yyval = ((tree.Expression.Expression)(yystack.valueAt (0))); }; + break; + + + case 380: /* Expression: AssignmentExpression */ + if (yyn == 380) + /* "src/main/resources/Java_16_Grammar.y":1193 */ + { yyval = ((tree.Expression.Expression)(yystack.valueAt (0))); }; + break; + + + case 381: /* LambdaExpression: IDENTIFIER ARROW Expression */ + if (yyn == 381) + /* "src/main/resources/Java_16_Grammar.y":1198 */ + { yyval = new Lambda(new ParameterDeclarations(new ParameterDeclaration(((Token)(yystack.valueAt (2))))),((tree.Expression.Expression)(yystack.valueAt (0)))); }; + break; + + + case 382: /* LambdaExpression: IDENTIFIER ARROW Block */ + if (yyn == 382) + /* "src/main/resources/Java_16_Grammar.y":1200 */ + { yyval = new Lambda(new ParameterDeclarations(new ParameterDeclaration(((Token)(yystack.valueAt (2))))),((tree.Statement.Block)(yystack.valueAt (0)))); }; + break; + + + case 383: /* LambdaExpression: LambdaParameters ARROW Expression */ + if (yyn == 383) + /* "src/main/resources/Java_16_Grammar.y":1201 */ + { yyval = new Lambda(((ParameterDeclarations)(yystack.valueAt (2))),((tree.Expression.Expression)(yystack.valueAt (0)))); }; + break; + + + case 384: /* LambdaExpression: LambdaParameters ARROW Block */ + if (yyn == 384) + /* "src/main/resources/Java_16_Grammar.y":1202 */ + { yyval = new Lambda(((ParameterDeclarations)(yystack.valueAt (2))),((tree.Statement.Block)(yystack.valueAt (0)))); }; + break; + + + case 385: /* LambdaParameters: LPAREN RPAREN */ + if (yyn == 385) + /* "src/main/resources/Java_16_Grammar.y":1211 */ + { yyval = null; }; + break; + + + case 386: /* LambdaParameters: LPAREN LambdaParameterList1 RPAREN */ + if (yyn == 386) + /* "src/main/resources/Java_16_Grammar.y":1212 */ + { yyval = ((ParameterDeclarations)(yystack.valueAt (1))); }; + break; + + + case 387: /* LambdaParameters: LPAREN LambdaParameterList2 RPAREN */ + if (yyn == 387) + /* "src/main/resources/Java_16_Grammar.y":1213 */ + { yyval = ((ParameterDeclarations)(yystack.valueAt (1))); }; + break; + + + case 388: /* LambdaParameterList1: IDENTIFIER */ + if (yyn == 388) + /* "src/main/resources/Java_16_Grammar.y":1218 */ + { yyval = new ParameterDeclarations(new ParameterDeclaration(((Token)(yystack.valueAt (0))))); }; + break; + + + case 389: /* LambdaParameterList1: LambdaParameterList1 COMMA IDENTIFIER */ + if (yyn == 389) + /* "src/main/resources/Java_16_Grammar.y":1219 */ + { yyval = ((ParameterDeclarations)(yystack.valueAt (2))).add(new ParameterDeclaration(((Token)(yystack.valueAt (0))))); }; + break; + + + case 390: /* LambdaParameterList2: LambdaParameter */ + if (yyn == 390) + /* "src/main/resources/Java_16_Grammar.y":1223 */ + { yyval = new ParameterDeclarations(((ParameterDeclaration)(yystack.valueAt (0)))); }; + break; + + + case 391: /* LambdaParameterList2: LambdaParameterList2 COMMA LambdaParameter */ + if (yyn == 391) + /* "src/main/resources/Java_16_Grammar.y":1224 */ + { yyval = ((ParameterDeclarations)(yystack.valueAt (2))).add(((ParameterDeclaration)(yystack.valueAt (0)))); }; + break; + + + case 392: /* LambdaParameter: ModifierSeqOpt UnannotatedType IDENTIFIER DimsOpt */ + if (yyn == 392) + /* "src/main/resources/Java_16_Grammar.y":1235 */ + { yyval = new ParameterDeclaration(((Modifiers)(yystack.valueAt (3))),((tree.Type.UnannotatedType)(yystack.valueAt (2))),((Token)(yystack.valueAt (1))).image,null,false,((Dims)(yystack.valueAt (0)))); }; + break; + + + case 393: /* LambdaParameter: ModifierSeqOpt VAR IDENTIFIER DimsOpt */ + if (yyn == 393) + /* "src/main/resources/Java_16_Grammar.y":1236 */ + { yyval = new ParameterDeclaration(((Modifiers)(yystack.valueAt (3))),null,((Token)(yystack.valueAt (1))).image,null,false,((Dims)(yystack.valueAt (0)))); }; + break; + + + case 394: /* LambdaParameter: ModifierSeqOpt UnannotatedType AnnotationSeqOpt ELLIPSIS IDENTIFIER */ + if (yyn == 394) + /* "src/main/resources/Java_16_Grammar.y":1238 */ + { yyval = new ParameterDeclaration(((Modifiers)(yystack.valueAt (4))),((tree.Type.UnannotatedType)(yystack.valueAt (3))),((Token)(yystack.valueAt (0))).image,((Annotations)(yystack.valueAt (2))),true,null); }; + break; + + + case 395: /* AssignmentExpression: ConditionalExpression */ + if (yyn == 395) + /* "src/main/resources/Java_16_Grammar.y":1248 */ + { yyval = ((tree.Expression.Expression)(yystack.valueAt (0))); }; + break; + + + case 396: /* AssignmentExpression: Assignment */ + if (yyn == 396) + /* "src/main/resources/Java_16_Grammar.y":1249 */ + { yyval = ((tree.Expression.Expression)(yystack.valueAt (0))); }; + break; + + + case 397: /* Assignment: LeftHandSide AssignmentOperator Expression */ + if (yyn == 397) + /* "src/main/resources/Java_16_Grammar.y":1253 */ + { yyval = new Binary(((tree.Expression.Expression)(yystack.valueAt (2))),((tree.Expression.Expression)(yystack.valueAt (0))),((Token)(yystack.valueAt (1)))); }; + break; + + + case 398: /* LeftHandSide: CompoundName */ + if (yyn == 398) + /* "src/main/resources/Java_16_Grammar.y":1257 */ + { yyval = new SimpleReference(((CompoundName)(yystack.valueAt (0)))); }; + break; + + + case 399: /* LeftHandSide: FieldAccess */ + if (yyn == 399) + /* "src/main/resources/Java_16_Grammar.y":1258 */ + { yyval = ((tree.Expression.Expression)(yystack.valueAt (0))); }; + break; + + + case 400: /* LeftHandSide: ArrayAccess */ + if (yyn == 400) + /* "src/main/resources/Java_16_Grammar.y":1259 */ + { yyval = ((tree.Expression.Expression)(yystack.valueAt (0))); }; + break; + + + case 401: /* AssignmentOperator: EQUAL */ + if (yyn == 401) + /* "src/main/resources/Java_16_Grammar.y":1263 */ + { yyval = ((Token)(yystack.valueAt (0))); }; + break; + + + case 402: /* AssignmentOperator: STAR_EQUAL */ + if (yyn == 402) + /* "src/main/resources/Java_16_Grammar.y":1264 */ + { yyval = ((Token)(yystack.valueAt (0))); }; + break; + + + case 403: /* AssignmentOperator: SLASH_EQUAL */ + if (yyn == 403) + /* "src/main/resources/Java_16_Grammar.y":1265 */ + { yyval = ((Token)(yystack.valueAt (0))); }; + break; + + + case 404: /* AssignmentOperator: PERCENT_EQUAL */ + if (yyn == 404) + /* "src/main/resources/Java_16_Grammar.y":1266 */ + { yyval = ((Token)(yystack.valueAt (0))); }; + break; + + + case 405: /* AssignmentOperator: PLUS_EQUAL */ + if (yyn == 405) + /* "src/main/resources/Java_16_Grammar.y":1267 */ + { yyval = ((Token)(yystack.valueAt (0))); }; + break; + + + case 406: /* AssignmentOperator: MINUS_EQUAL */ + if (yyn == 406) + /* "src/main/resources/Java_16_Grammar.y":1268 */ + { yyval = ((Token)(yystack.valueAt (0))); }; + break; + + + case 407: /* AssignmentOperator: LESS_LESS_EQUAL */ + if (yyn == 407) + /* "src/main/resources/Java_16_Grammar.y":1269 */ + { yyval = ((Token)(yystack.valueAt (0))); }; + break; + + + case 408: /* AssignmentOperator: GR_GR_EQUAL */ + if (yyn == 408) + /* "src/main/resources/Java_16_Grammar.y":1270 */ + { yyval = ((Token)(yystack.valueAt (0))); }; + break; + + + case 409: /* AssignmentOperator: GR_GR_GR_EQUAL */ + if (yyn == 409) + /* "src/main/resources/Java_16_Grammar.y":1271 */ + { yyval = ((Token)(yystack.valueAt (0))); }; + break; + + + case 410: /* AssignmentOperator: AMP_EQUAL */ + if (yyn == 410) + /* "src/main/resources/Java_16_Grammar.y":1272 */ + { yyval = ((Token)(yystack.valueAt (0))); }; + break; + + + case 411: /* AssignmentOperator: CARET_EQUAL */ + if (yyn == 411) + /* "src/main/resources/Java_16_Grammar.y":1273 */ + { yyval = ((Token)(yystack.valueAt (0))); }; + break; + + + case 412: /* AssignmentOperator: VERTICAL_EQUAL */ + if (yyn == 412) + /* "src/main/resources/Java_16_Grammar.y":1274 */ + { yyval = ((Token)(yystack.valueAt (0))); }; + break; + + + case 413: /* ConditionalExpression: ConditionalOrExpression ConditionalOrTail */ + if (yyn == 413) + /* "src/main/resources/Java_16_Grammar.y":1278 */ + { if ( ((tree.Expression.Binary)(yystack.valueAt (0))) == null ) yyval = ((tree.Expression.Binary)(yystack.valueAt (1))); + else yyval = new Conditional(((tree.Expression.Binary)(yystack.valueAt (1))),((tree.Expression.Binary)(yystack.valueAt (0))).left,((tree.Expression.Binary)(yystack.valueAt (0))).right); }; + break; + + + case 414: /* ConditionalOrTail: %empty */ + if (yyn == 414) + /* "src/main/resources/Java_16_Grammar.y":1283 */ + { yyval = null; }; + break; + + + case 415: /* ConditionalOrTail: QUESTION Expression COLON ConditionalExpression */ + if (yyn == 415) + /* "src/main/resources/Java_16_Grammar.y":1284 */ + { yyval = new Binary(((tree.Expression.Expression)(yystack.valueAt (2))),((tree.Expression.Expression)(yystack.valueAt (0))),null); }; + break; + + + case 416: /* ConditionalOrTail: QUESTION Expression COLON LambdaExpression */ + if (yyn == 416) + /* "src/main/resources/Java_16_Grammar.y":1285 */ + { yyval = new Binary(((tree.Expression.Expression)(yystack.valueAt (2))),((tree.Expression.Expression)(yystack.valueAt (0))),null); }; + break; + + + case 417: /* ConditionalOrExpression: ConditionalAndExpression */ + if (yyn == 417) + /* "src/main/resources/Java_16_Grammar.y":1289 */ + { yyval = ((tree.Expression.Binary)(yystack.valueAt (0))); }; + break; + + + case 418: /* ConditionalOrExpression: ConditionalOrExpression DBL_VERTICAL ConditionalAndExpression */ + if (yyn == 418) + /* "src/main/resources/Java_16_Grammar.y":1290 */ + { yyval = new Binary(((tree.Expression.Binary)(yystack.valueAt (2))),((tree.Expression.Binary)(yystack.valueAt (0))),((Token)(yystack.valueAt (1)))); }; + break; + + + case 419: /* ConditionalAndExpression: InclusiveOrExpression */ + if (yyn == 419) + /* "src/main/resources/Java_16_Grammar.y":1294 */ + { yyval = ((tree.Expression.Binary)(yystack.valueAt (0))); }; + break; + + + case 420: /* ConditionalAndExpression: ConditionalAndExpression DBL_AMPERSAND InclusiveOrExpression */ + if (yyn == 420) + /* "src/main/resources/Java_16_Grammar.y":1295 */ + { yyval = new Binary(((tree.Expression.Binary)(yystack.valueAt (2))),((tree.Expression.Binary)(yystack.valueAt (0))),((Token)(yystack.valueAt (1)))); }; + break; + + + case 421: /* InclusiveOrExpression: ExclusiveOrExpression */ + if (yyn == 421) + /* "src/main/resources/Java_16_Grammar.y":1299 */ + { yyval = ((tree.Expression.Binary)(yystack.valueAt (0))); }; + break; + + + case 422: /* InclusiveOrExpression: InclusiveOrExpression VERTICAL ExclusiveOrExpression */ + if (yyn == 422) + /* "src/main/resources/Java_16_Grammar.y":1300 */ + { yyval = new Binary(((tree.Expression.Binary)(yystack.valueAt (2))),((tree.Expression.Binary)(yystack.valueAt (0))),((Token)(yystack.valueAt (1)))); }; + break; + + + case 423: /* ExclusiveOrExpression: AndExpression */ + if (yyn == 423) + /* "src/main/resources/Java_16_Grammar.y":1304 */ + { yyval = ((tree.Expression.Binary)(yystack.valueAt (0))); }; + break; + + + case 424: /* ExclusiveOrExpression: ExclusiveOrExpression CARET AndExpression */ + if (yyn == 424) + /* "src/main/resources/Java_16_Grammar.y":1305 */ + { yyval = new Binary(((tree.Expression.Binary)(yystack.valueAt (2))),((tree.Expression.Binary)(yystack.valueAt (0))),((Token)(yystack.valueAt (1)))); }; + break; + + + case 425: /* AndExpression: EqualityExpression */ + if (yyn == 425) + /* "src/main/resources/Java_16_Grammar.y":1309 */ + { yyval = ((tree.Expression.Binary)(yystack.valueAt (0))); }; + break; + + + case 426: /* AndExpression: AndExpression AMPERSAND EqualityExpression */ + if (yyn == 426) + /* "src/main/resources/Java_16_Grammar.y":1310 */ + { yyval = new Binary(((tree.Expression.Binary)(yystack.valueAt (2))),((tree.Expression.Binary)(yystack.valueAt (0))),((Token)(yystack.valueAt (1)))); }; + break; + + + case 427: /* EqualityExpression: RelationalExpression */ + if (yyn == 427) + /* "src/main/resources/Java_16_Grammar.y":1314 */ + { yyval = ((tree.Expression.Binary)(yystack.valueAt (0))); }; + break; + + + case 428: /* EqualityExpression: EqualityExpression DBL_EQUAL RelationalExpression */ + if (yyn == 428) + /* "src/main/resources/Java_16_Grammar.y":1315 */ + { yyval = new Binary(((tree.Expression.Binary)(yystack.valueAt (2))),((tree.Expression.Binary)(yystack.valueAt (0))),((Token)(yystack.valueAt (1)))); }; + break; + + + case 429: /* EqualityExpression: EqualityExpression NON_EQUAL RelationalExpression */ + if (yyn == 429) + /* "src/main/resources/Java_16_Grammar.y":1316 */ + { yyval = new Binary(((tree.Expression.Binary)(yystack.valueAt (2))),((tree.Expression.Binary)(yystack.valueAt (0))),((Token)(yystack.valueAt (1)))); }; + break; + + + case 430: /* RelationalExpression: ShiftExpression */ + if (yyn == 430) + /* "src/main/resources/Java_16_Grammar.y":1320 */ + { yyval = ((tree.Expression.Binary)(yystack.valueAt (0))); }; + break; + + + case 431: /* RelationalExpression: RelationalExpression LESS ShiftExpression */ + if (yyn == 431) + /* "src/main/resources/Java_16_Grammar.y":1321 */ + { yyval = new Binary(((tree.Expression.Binary)(yystack.valueAt (2))),((tree.Expression.Binary)(yystack.valueAt (0))),((Token)(yystack.valueAt (1)))); }; + break; + + + case 432: /* RelationalExpression: RelationalExpression GREATER ShiftExpression */ + if (yyn == 432) + /* "src/main/resources/Java_16_Grammar.y":1322 */ + { yyval = new Binary(((tree.Expression.Binary)(yystack.valueAt (2))),((tree.Expression.Binary)(yystack.valueAt (0))),((Token)(yystack.valueAt (1)))); }; + break; + + + case 433: /* RelationalExpression: RelationalExpression LESS_EQUAL ShiftExpression */ + if (yyn == 433) + /* "src/main/resources/Java_16_Grammar.y":1323 */ + { yyval = new Binary(((tree.Expression.Binary)(yystack.valueAt (2))),((tree.Expression.Binary)(yystack.valueAt (0))),((Token)(yystack.valueAt (1)))); }; + break; + + + case 434: /* RelationalExpression: RelationalExpression GREATER_EQUAL ShiftExpression */ + if (yyn == 434) + /* "src/main/resources/Java_16_Grammar.y":1324 */ + { yyval = new Binary(((tree.Expression.Binary)(yystack.valueAt (2))),((tree.Expression.Binary)(yystack.valueAt (0))),((Token)(yystack.valueAt (1)))); }; + break; + + + case 435: /* RelationalExpression: InstanceofExpression */ + if (yyn == 435) + /* "src/main/resources/Java_16_Grammar.y":1325 */ + { yyval = ((tree.Expression.Expression)(yystack.valueAt (0))); }; + break; + + + case 436: /* InstanceofExpression: RelationalExpression INSTANCEOF Type */ + if (yyn == 436) + /* "src/main/resources/Java_16_Grammar.y":1329 */ + { yyval = new InstanceOf(((tree.Expression.Binary)(yystack.valueAt (2))),((tree.Type.Type)(yystack.valueAt (0)))); }; + break; + + + case 437: /* InstanceofExpression: RelationalExpression INSTANCEOF Pattern */ + if (yyn == 437) + /* "src/main/resources/Java_16_Grammar.y":1330 */ + { yyval = new InstanceOf(((tree.Expression.Binary)(yystack.valueAt (2))),((tree.Declaration.Declaration)(yystack.valueAt (0)))); }; + break; + + + case 438: /* ShiftExpression: AdditiveExpression */ + if (yyn == 438) + /* "src/main/resources/Java_16_Grammar.y":1334 */ + { yyval = ((tree.Expression.Binary)(yystack.valueAt (0))); }; + break; + + + case 439: /* ShiftExpression: ShiftExpression DBL_LESS AdditiveExpression */ + if (yyn == 439) + /* "src/main/resources/Java_16_Grammar.y":1335 */ + { yyval = new Binary(((tree.Expression.Binary)(yystack.valueAt (2))),((tree.Expression.Binary)(yystack.valueAt (0))),((Token)(yystack.valueAt (1)))); }; + break; + + + case 440: /* ShiftExpression: ShiftExpression DBL_GREATER AdditiveExpression */ + if (yyn == 440) + /* "src/main/resources/Java_16_Grammar.y":1336 */ + { yyval = new Binary(((tree.Expression.Binary)(yystack.valueAt (2))),((tree.Expression.Binary)(yystack.valueAt (0))),((Token)(yystack.valueAt (1)))); }; + break; + + + case 441: /* ShiftExpression: ShiftExpression TRIPL_GREATER AdditiveExpression */ + if (yyn == 441) + /* "src/main/resources/Java_16_Grammar.y":1337 */ + { yyval = new Binary(((tree.Expression.Binary)(yystack.valueAt (2))),((tree.Expression.Binary)(yystack.valueAt (0))),((Token)(yystack.valueAt (1)))); }; + break; + + + case 442: /* AdditiveExpression: MultiplicativeExpression */ + if (yyn == 442) + /* "src/main/resources/Java_16_Grammar.y":1341 */ + { yyval = ((tree.Expression.Binary)(yystack.valueAt (0))); }; + break; + + + case 443: /* AdditiveExpression: AdditiveExpression PLUS MultiplicativeExpression */ + if (yyn == 443) + /* "src/main/resources/Java_16_Grammar.y":1342 */ + { yyval = new Binary(((tree.Expression.Binary)(yystack.valueAt (2))),((tree.Expression.Binary)(yystack.valueAt (0))),((Token)(yystack.valueAt (1)))); }; + break; + + + case 444: /* AdditiveExpression: AdditiveExpression MINUS MultiplicativeExpression */ + if (yyn == 444) + /* "src/main/resources/Java_16_Grammar.y":1343 */ + { yyval = new Binary(((tree.Expression.Binary)(yystack.valueAt (2))),((tree.Expression.Binary)(yystack.valueAt (0))),((Token)(yystack.valueAt (1)))); }; + break; + + + case 445: /* MultiplicativeExpression: UnaryExpression */ + if (yyn == 445) + /* "src/main/resources/Java_16_Grammar.y":1347 */ + { yyval = ((tree.Expression.Expression)(yystack.valueAt (0))); }; + break; + + + case 446: /* MultiplicativeExpression: MultiplicativeExpression STAR UnaryExpression */ + if (yyn == 446) + /* "src/main/resources/Java_16_Grammar.y":1348 */ + { yyval = new Binary(((tree.Expression.Binary)(yystack.valueAt (2))),((tree.Expression.Expression)(yystack.valueAt (0))),((Token)(yystack.valueAt (1)))); }; + break; + + + case 447: /* MultiplicativeExpression: MultiplicativeExpression SLASH UnaryExpression */ + if (yyn == 447) + /* "src/main/resources/Java_16_Grammar.y":1349 */ + { yyval = new Binary(((tree.Expression.Binary)(yystack.valueAt (2))),((tree.Expression.Expression)(yystack.valueAt (0))),((Token)(yystack.valueAt (1)))); }; + break; + + + case 448: /* MultiplicativeExpression: MultiplicativeExpression PERCENT UnaryExpression */ + if (yyn == 448) + /* "src/main/resources/Java_16_Grammar.y":1350 */ + { yyval = new Binary(((tree.Expression.Binary)(yystack.valueAt (2))),((tree.Expression.Expression)(yystack.valueAt (0))),((Token)(yystack.valueAt (1)))); }; + break; + + + case 449: /* UnaryExpression: PreIncrementExpression */ + if (yyn == 449) + /* "src/main/resources/Java_16_Grammar.y":1354 */ + { yyval = ((UnaryPrefix)(yystack.valueAt (0))); }; + break; + + + case 450: /* UnaryExpression: PreDecrementExpression */ + if (yyn == 450) + /* "src/main/resources/Java_16_Grammar.y":1355 */ + { yyval = ((UnaryPrefix)(yystack.valueAt (0))); }; + break; + + + case 451: /* UnaryExpression: PLUS UnaryExpression */ + if (yyn == 451) + /* "src/main/resources/Java_16_Grammar.y":1356 */ + { yyval = new UnaryPrefix(((Token)(yystack.valueAt (1))),((tree.Expression.Expression)(yystack.valueAt (0)))); }; + break; + + + case 452: /* UnaryExpression: MINUS UnaryExpression */ + if (yyn == 452) + /* "src/main/resources/Java_16_Grammar.y":1357 */ + { yyval = new UnaryPrefix(((Token)(yystack.valueAt (1))),((tree.Expression.Expression)(yystack.valueAt (0)))); }; + break; + + + case 453: /* UnaryExpression: UnaryExpressionNotPlusMinus */ + if (yyn == 453) + /* "src/main/resources/Java_16_Grammar.y":1358 */ + { yyval = ((tree.Expression.Expression)(yystack.valueAt (0))); }; + break; + + + case 454: /* PreIncrementExpression: DBL_PLUS UnaryExpression */ + if (yyn == 454) + /* "src/main/resources/Java_16_Grammar.y":1362 */ + { yyval = new UnaryPrefix(((Token)(yystack.valueAt (1))),((tree.Expression.Expression)(yystack.valueAt (0)))); }; + break; + + + case 455: /* PreDecrementExpression: DBL_MINUS UnaryExpression */ + if (yyn == 455) + /* "src/main/resources/Java_16_Grammar.y":1366 */ + { yyval = new UnaryPrefix(((Token)(yystack.valueAt (1))),((tree.Expression.Expression)(yystack.valueAt (0)))); }; + break; + + + case 457: /* UnaryExpressionNotPlusMinus: TILDE UnaryExpression */ + if (yyn == 457) + /* "src/main/resources/Java_16_Grammar.y":1371 */ + { yyval = new UnaryPrefix(((Token)(yystack.valueAt (1))),((tree.Expression.Expression)(yystack.valueAt (0)))); }; + break; + + + case 458: /* UnaryExpressionNotPlusMinus: EXCLAMATION UnaryExpression */ + if (yyn == 458) + /* "src/main/resources/Java_16_Grammar.y":1372 */ + { yyval = new UnaryPrefix(((Token)(yystack.valueAt (1))),((tree.Expression.Expression)(yystack.valueAt (0)))); }; + break; + + + case 459: /* UnaryExpressionNotPlusMinus: CastExpression */ + if (yyn == 459) + /* "src/main/resources/Java_16_Grammar.y":1373 */ + { yyval = ((tree.Expression.Expression)(yystack.valueAt (0))); }; + break; + + + case 460: /* UnaryExpressionNotPlusMinus: SwitchExpression */ + if (yyn == 460) + /* "src/main/resources/Java_16_Grammar.y":1374 */ + { yyval = ((tree.Expression.Expression)(yystack.valueAt (0))); }; + break; + + + case 461: /* PostfixExpression: Primary */ + if (yyn == 461) + /* "src/main/resources/Java_16_Grammar.y":1378 */ + { yyval = ((tree.Expression.Expression)(yystack.valueAt (0))); }; + break; + + + case 462: /* PostfixExpression: CompoundName */ + if (yyn == 462) + /* "src/main/resources/Java_16_Grammar.y":1379 */ + { yyval = new SimpleReference(((CompoundName)(yystack.valueAt (0)))); }; + break; + + + case 463: /* PostfixExpression: PostIncrementExpression */ + if (yyn == 463) + /* "src/main/resources/Java_16_Grammar.y":1380 */ + { yyval = ((UnaryPostfix)(yystack.valueAt (0))); }; + break; + + + case 464: /* PostfixExpression: PostDecrementExpression */ + if (yyn == 464) + /* "src/main/resources/Java_16_Grammar.y":1381 */ + { yyval = ((UnaryPostfix)(yystack.valueAt (0))); }; + break; + + + case 465: /* PostIncrementExpression: PostfixExpression DBL_PLUS */ + if (yyn == 465) + /* "src/main/resources/Java_16_Grammar.y":1385 */ + { yyval = new UnaryPostfix(((Token)(yystack.valueAt (0))),((tree.Expression.Expression)(yystack.valueAt (1)))); }; + break; + + + case 466: /* PostDecrementExpression: PostfixExpression DBL_MINUS */ + if (yyn == 466) + /* "src/main/resources/Java_16_Grammar.y":1389 */ + { yyval = new UnaryPostfix(((Token)(yystack.valueAt (0))),((tree.Expression.Expression)(yystack.valueAt (1)))); }; + break; + + + case 467: /* CastExpression: TargetType UnaryExpression */ + if (yyn == 467) + /* "src/main/resources/Java_16_Grammar.y":1393 */ + { yyval = new Cast(((tree.Type.TypeList)(yystack.valueAt (1))),((tree.Expression.Expression)(yystack.valueAt (0)))); }; + break; + + + case 468: /* CastExpression: TargetType LambdaExpression */ + if (yyn == 468) + /* "src/main/resources/Java_16_Grammar.y":1394 */ + { yyval = new Cast(((tree.Type.TypeList)(yystack.valueAt (1))),((tree.Expression.Expression)(yystack.valueAt (0)))); }; + break; + + + case 469: /* TargetType: LPAREN TypeList RPAREN */ + if (yyn == 469) + /* "src/main/resources/Java_16_Grammar.y":1398 */ + { yyval = ((tree.Type.TypeList)(yystack.valueAt (1))); }; + break; + + + case 470: /* TypeList: Type */ + if (yyn == 470) + /* "src/main/resources/Java_16_Grammar.y":1402 */ + { yyval = new TypeList(((tree.Type.Type)(yystack.valueAt (0)))); }; + break; + + + case 471: /* TypeList: TypeList AMPERSAND Type */ + if (yyn == 471) + /* "src/main/resources/Java_16_Grammar.y":1403 */ + { yyval = ((tree.Type.TypeList)(yystack.valueAt (2))).add(((tree.Type.Type)(yystack.valueAt (0)))); }; + break; + + + case 472: /* SwitchExpression: SWITCH LPAREN Expression RPAREN SwitchBlock */ + if (yyn == 472) + /* "src/main/resources/Java_16_Grammar.y":1407 */ + { yyval = new SwitchExpression(((tree.Expression.Expression)(yystack.valueAt (2))),((SwitchBlock)(yystack.valueAt (0)))); }; + break; + + + case 473: /* AnnotationSeqOpt: %empty */ + if (yyn == 473) + /* "src/main/resources/Java_16_Grammar.y":1419 */ + { yyval = null; }; + break; + + + case 474: /* AnnotationSeqOpt: AnnotationSeq */ + if (yyn == 474) + /* "src/main/resources/Java_16_Grammar.y":1420 */ + { yyval = ((Annotations)(yystack.valueAt (0))); }; + break; + + + case 475: /* AnnotationSeq: Annotation */ + if (yyn == 475) + /* "src/main/resources/Java_16_Grammar.y":1424 */ + { yyval = new Annotations(((Annotation)(yystack.valueAt (0)))); }; + break; + + + case 476: /* AnnotationSeq: AnnotationSeq Annotation */ + if (yyn == 476) + /* "src/main/resources/Java_16_Grammar.y":1425 */ + { yyval = ((Annotations)(yystack.valueAt (1))).add(((Annotation)(yystack.valueAt (0)))); }; + break; + + + case 477: /* Annotation: AT CompoundName */ + if (yyn == 477) + /* "src/main/resources/Java_16_Grammar.y":1429 */ + { yyval = new Annotation(((CompoundName)(yystack.valueAt (0))),(AnnoParameterList)null); }; + break; + + + case 478: /* Annotation: AT CompoundName LPAREN RPAREN */ + if (yyn == 478) + /* "src/main/resources/Java_16_Grammar.y":1430 */ + { yyval = new Annotation(((CompoundName)(yystack.valueAt (2))),(AnnoParameterList)null); }; + break; + + + case 479: /* Annotation: AT CompoundName LPAREN AnnoParameterList RPAREN */ + if (yyn == 479) + /* "src/main/resources/Java_16_Grammar.y":1431 */ + { yyval = new Annotation(((CompoundName)(yystack.valueAt (3))),/*$4*/ (AnnoParameterList)null); }; + break; + + + case 480: /* Annotation: AT CompoundName LPAREN ElementValue RPAREN */ + if (yyn == 480) + /* "src/main/resources/Java_16_Grammar.y":1432 */ + { yyval = new Annotation(((CompoundName)(yystack.valueAt (3))),(AnnoElementValue)null); }; + break; + + + case 481: /* AnnoParameterList: IDENTIFIER EQUAL ElementValue */ + if (yyn == 481) + /* "src/main/resources/Java_16_Grammar.y":1436 */ + { yyval = null; }; + break; + + + case 482: /* AnnoParameterList: AnnoParameterList COMMA IDENTIFIER EQUAL ElementValue */ + if (yyn == 482) + /* "src/main/resources/Java_16_Grammar.y":1437 */ + { yyval = null; }; + break; + + + case 483: /* ElementValue: ConditionalExpression */ + if (yyn == 483) + /* "src/main/resources/Java_16_Grammar.y":1441 */ + { yyval = null; }; + break; + + + case 484: /* ElementValue: LBRACE ElementValueListOpt RBRACE */ + if (yyn == 484) + /* "src/main/resources/Java_16_Grammar.y":1442 */ + { yyval = null; }; + break; + + + case 485: /* ElementValue: LBRACE COMMA RBRACE */ + if (yyn == 485) + /* "src/main/resources/Java_16_Grammar.y":1443 */ + { yyval = null; }; + break; + + + case 486: /* ElementValue: Annotation */ + if (yyn == 486) + /* "src/main/resources/Java_16_Grammar.y":1444 */ + { yyval = null; }; + break; + + + +/* "src/main/java/parser/JavaParser.java":4026 */ default: break; } @@ -1313,7 +4065,7 @@ public boolean parse() throws java.io.IOException /* Semantic value of the lookahead. */ - Object yylval = null; + Entity yylval = null; yyerrstatus_ = 0; yynerrs = 0; @@ -1624,8 +4376,8 @@ private static boolean yyTableValueIsError (int yyvalue) return yyvalue == yytable_ninf_; } - private static final short yypact_ninf_ = -686; - private static final short yytable_ninf_ = -485; + private static final short yypact_ninf_ = -730; + private static final short yytable_ninf_ = -487; /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing STATE-NUM. */ @@ -1634,94 +4386,94 @@ private static final short[] yypact_init() { return new short[] { - 467, 19, -686, -686, -686, -17, -686, 19, -686, -686, - -686, -686, -686, -686, -686, -686, 120, -686, 1512, -686, - 246, -686, -686, 549, -686, 4296, -686, -686, 253, -686, - 19, 296, 19, -686, -686, 156, -686, 1501, 1512, -686, - 202, 19, -686, 354, 267, 357, 250, 335, 356, 369, - 401, -686, -686, -686, -686, -686, -686, -686, -686, 156, - -686, 437, 53, -686, 1439, 514, 435, 522, 320, 522, - 522, -686, 2843, 551, -686, 1564, 265, 19, 19, 19, - 19, 507, 514, -686, 565, 118, 515, -686, 2136, 618, - 563, 637, 3540, -686, 2919, 3609, 3609, 3609, 3609, 3609, - 3609, 174, -686, -686, -686, -686, -686, -686, -686, -686, - -686, -686, -686, -686, 2884, -686, -686, 446, 646, -686, - -686, 336, -686, 477, 372, 336, -686, 295, -686, -686, - -686, -686, -686, -686, -686, -686, 37, 596, 632, 658, - 663, 392, 159, -686, 558, 500, 598, -686, -686, -686, - -686, 432, -686, -686, -686, 3540, -686, 2136, 494, 482, - 687, -686, 585, 595, 19, 36, 43, 536, 30, -686, - -686, 4144, -686, 620, 348, -686, -686, 118, 2136, 320, - 384, -686, 692, 155, -686, 2136, 691, 697, 338, 320, - 2733, 228, 4396, 372, 631, 675, 700, -686, 696, -686, - -686, 2280, -686, 66, 715, 728, -686, 579, -686, -686, - -686, -686, -686, -686, 3057, 3126, -686, 1912, 415, 714, - -686, 144, 716, 3540, 725, 726, 336, -686, 428, 3540, - 39, 716, -686, 412, 716, 727, -686, 3540, 22, 716, - 3540, 3609, -686, 3609, 3609, 3609, 3609, 3609, 3609, 3609, - 3609, 3609, 3609, 2687, 3609, 3609, 3609, 3609, 3609, 3609, - 3609, 3609, -686, -686, -686, -686, 336, -686, 685, -686, - -686, -686, 542, -686, 19, -686, 19, -686, 19, -686, - 1800, 4171, 2136, 118, -686, -686, -686, 736, 2136, 572, - -686, 688, 714, -686, 4203, -686, 2136, 488, -686, 1689, - 739, -686, 264, 1326, 502, 512, -686, 4285, 3195, -686, - 3195, -686, -686, -686, -686, -686, -686, -686, -686, -686, - -686, -686, -686, 3540, -686, 2136, -686, -686, 3126, -686, - 520, -686, -686, 138, -686, 434, -686, 2024, 3264, 327, - 415, -686, 455, 728, 274, 693, -686, 694, 698, 741, - -686, 682, -686, 745, 747, 716, 748, -686, 707, 708, - 750, -686, 7, 702, 756, -686, -686, 713, 717, 758, - 596, 632, 658, 663, 392, 159, 159, 558, 558, 558, - 558, 718, -686, 50, -686, -686, 500, 500, 500, 598, - 598, -686, -686, -686, 746, -686, 763, 592, 627, 641, - 100, 718, 62, -686, -686, -686, -686, -686, -686, 1800, - -686, 759, 721, 2136, -686, 3934, -686, -686, 176, 3961, - 771, 728, -686, 959, 4235, -686, -686, 714, 108, 4007, - -686, 724, 182, -686, 729, -686, 4296, 2071, -686, -686, - -686, -686, -686, -686, -686, -686, 3540, 2136, 2136, -686, - 1912, -686, 138, 772, 3333, -686, -686, -686, 3402, 736, - 714, -686, -686, -686, 728, -686, 776, -686, -686, -686, - 157, 728, -686, 716, -686, -686, -686, -686, 728, -686, - 3540, 242, 773, -686, 773, 3126, 19, -686, -686, -686, - 645, 781, -686, 2136, -686, -686, -686, 782, 1105, 4039, - -686, -686, -686, 783, 4066, -686, 736, 734, 226, -686, - 1043, 469, -686, -686, -686, -686, -686, 959, -686, -686, - 760, 428, -686, 2796, -686, 4112, -686, 336, 336, 762, - -686, -686, 3540, -686, -686, 394, 3540, 32, 150, 2631, - 787, 792, 3471, 795, 796, 3540, 655, 797, 3540, 1006, - -686, 2183, -686, -686, -686, -686, 793, -686, -686, -686, - -686, -686, 460, 498, -686, -686, -686, 432, 485, 560, - -686, -686, -686, -686, -686, -686, -686, 591, 794, -686, - -686, 799, -686, -686, 754, -686, 470, -686, -686, 757, - -686, 761, -686, -686, -686, 3540, 261, 718, -686, 763, - -686, 813, -686, -686, 243, -686, 764, 1043, -686, -686, - 719, -686, -686, 469, -686, -686, -686, -686, -686, 817, - 719, 719, 734, 734, 226, 1215, -686, -686, -686, -686, - 768, 818, -686, -686, -686, -686, 775, 2631, 605, -686, - 816, -686, 819, 796, 731, 3668, 3540, -686, 820, 3540, - 3540, 828, 3847, 235, 782, 3540, 829, 50, -686, -686, - -686, 830, -686, -686, -686, -686, 822, 3333, -686, -686, - 3609, -686, 45, -686, 111, -686, 1623, 347, 728, -686, - -686, 837, -686, 336, 236, 653, 843, 2136, 818, -686, - 3902, -686, -686, 719, 719, 719, 734, -686, 1735, -686, - -686, -686, -686, 3540, -686, -686, 844, 838, -686, 840, - 845, 848, -686, 849, 852, -686, 291, -686, 464, -686, - 295, 490, 846, 782, 235, -686, -686, 798, 854, -686, - -686, -686, -686, 850, -686, -686, -686, 836, -686, -686, - 1847, 855, 856, 1959, 857, -686, 2988, -686, -686, 801, - -686, 4285, 692, -686, 336, 1689, 38, 529, -686, -686, - -686, -686, 719, -686, 407, 2295, 2407, 374, 499, 853, - 3540, 3540, 3540, 3727, 2631, 776, 782, -686, 3788, 4296, - -686, -686, -686, 784, 798, 2631, 3609, -686, -686, 3540, - -686, 872, 3126, 884, 533, -686, 38, 386, -686, -686, - 835, 336, 4285, -686, 39, -686, 2519, -686, 22, 728, - 728, -686, 893, 894, 888, -686, -686, 831, -686, -686, - -686, -686, 2136, 896, -686, -686, -686, -686, 895, -686, - -686, -686, -686, -686, 802, -686, 858, -686, -686, -4, - -686, 1, 900, 902, 903, 2631, 3727, 2631, -686, -686, - 161, 782, -686, -686, -686, 728, 728, -686, -686, -686, - -686, 845, 912, -686, 2136, 336, -686, 906, 909, 2631, - -686, -686, -686, -686, -686 + 1429, 54, -730, -730, -730, -6, -730, 54, -730, -730, + -730, -730, -730, -730, -730, -730, 51, -730, 502, -730, + 205, -730, -730, 217, -730, -730, 325, -730, -730, 252, + 54, 526, 571, 54, -730, -730, 82, -730, 1068, 502, + -730, 2914, 107, 616, 52, -730, 146, 220, 172, 292, + 317, 333, 358, -730, -730, -730, -730, -730, -730, -730, + -730, 82, 3611, -730, 2990, 3680, 3680, 3680, 3680, 3680, + 3680, 150, -730, -730, -730, -730, -730, -730, -730, -730, + -730, -730, -730, -730, 2955, -730, -730, 416, 417, -730, + -730, 319, -730, 436, 493, 319, -730, 566, -730, -730, + -730, -730, -730, -730, -730, -730, 41, 409, 458, 482, + 539, 603, 149, -730, 355, 625, 623, -730, -730, -730, + -730, 609, -730, -730, -730, 3611, -730, 2095, 508, 463, + 520, -730, 67, -730, 532, 1529, 370, 510, 553, 494, + 553, 553, -730, 2804, 270, 4447, 493, 1614, 2239, 586, + -730, 569, -730, -730, 2351, -730, 300, 591, 600, -730, + 432, -730, -730, -730, -730, -730, -730, 3128, 3197, -730, + 1115, 311, 379, 605, -730, 187, 613, 3611, 627, 630, + 319, -730, 381, 3611, 42, 613, -730, 353, 613, 668, + -730, 3611, 24, 613, 3611, 3680, -730, 3680, 3680, 3680, + 3680, 3680, 3680, 3680, 3680, 3680, 3680, 913, 3680, 3680, + 3680, 3680, 3680, 3680, 3680, 3680, -730, -730, -730, -730, + 319, -730, 626, -730, 677, -730, -730, 1626, 238, 54, + 54, 54, 54, 694, 370, -730, 697, 79, 634, -730, + 2095, 705, 646, 720, -730, 309, 2096, 512, 530, -730, + 4270, 3266, -730, 3266, -730, -730, -730, -730, -730, -730, + -730, -730, -730, -730, -730, -730, 3611, -730, 2095, -730, + -730, 3197, -730, 543, -730, -730, 148, -730, 393, -730, + 1871, 3335, 348, 379, -730, 403, 600, 303, 670, 605, + -730, 673, 679, 724, -730, 664, -730, 728, 729, 613, + 732, -730, 685, 689, 731, -730, 155, 678, 740, -730, + -730, 693, 695, 738, 409, 458, 482, 539, 603, 149, + 149, 355, 355, 355, 355, 700, -730, 29, -730, -730, + 625, 625, 625, 623, 623, -730, -730, -730, 723, -730, + 650, 660, 54, 22, 35, 674, 11, -730, -730, 1477, + -730, 686, 405, -730, -730, 79, 2095, 494, -730, 750, + 142, -730, 2095, 756, 754, 259, 494, 716, 61, -730, + 717, -730, 325, 2142, -730, -730, -730, -730, -730, -730, + -730, -730, 3611, 2095, 2095, 1115, -730, 190, 760, 3404, + -730, -730, -730, 3473, 770, 605, -730, -730, -730, 600, + -730, 771, -730, -730, -730, 188, 600, -730, 613, -730, + -730, -730, -730, 600, -730, 3611, 267, 768, -730, 768, + 3197, -730, -730, 684, -730, 54, -730, 54, -730, 54, + -730, 1759, 4169, 2095, 79, -730, -730, -730, 770, 2095, + 454, -730, 733, -730, 4201, -730, 2095, 546, -730, 1276, + 785, 319, 319, 761, 381, -730, -730, 3611, -730, -730, + 378, 3611, 100, 105, 2702, 788, 791, 3542, 792, 793, + 3611, 442, 794, 3611, 1984, -730, 2254, -730, -730, -730, + -730, 787, -730, -730, -730, -730, -730, 531, 542, -730, + -730, -730, 609, 651, 653, -730, -730, -730, -730, 2095, + 2095, -730, -730, 489, 790, -730, -730, 796, 935, -730, + -730, 751, -730, 236, -730, -730, 752, -730, 753, -730, + -730, -730, 3611, 296, 700, -730, -730, 799, 469, 504, + 580, 161, 700, 69, -730, -730, -730, -730, -730, -730, + 1759, -730, 802, 759, 2095, -730, -730, -730, 71, 4005, + 804, 600, -730, 2867, 4228, -730, -730, 605, 83, 4032, + -730, -730, -730, 762, 2702, 703, -730, 809, -730, 810, + 793, 709, 3739, 3611, -730, 813, 3611, 3611, 815, 3918, + 168, 822, 3611, 819, 29, -730, -730, -730, 820, -730, + -730, -730, -730, -730, -730, 826, 3404, -730, -730, -730, + 822, 4324, 4078, -730, -730, -730, 3680, -730, 160, -730, + 170, -730, 1694, 308, 600, -730, -730, 830, -730, 54, + -730, -730, -730, 598, 833, -730, 2095, -730, -730, 831, + 4110, -730, 770, 797, 129, -730, 421, 151, -730, -730, + -730, -730, -730, 2867, -730, -730, 811, -730, 4361, -730, + 4137, -730, -730, -730, -730, 3611, -730, -730, 838, 835, + -730, 837, 841, 848, -730, 849, 850, -730, 464, -730, + 297, -730, 566, 340, 852, 822, 168, -730, -730, 795, + 853, -730, -730, -730, -730, -730, 167, -730, 805, 421, + -730, -730, 757, -730, -730, 151, -730, -730, -730, 847, + -730, -730, -730, 834, -730, -730, 1806, 854, 855, 1918, + 857, -730, 3059, -730, -730, 799, -730, 860, -730, -730, + -730, 858, 757, 757, 797, 797, 129, 995, -730, -730, + -730, -730, 814, 867, -730, -730, 862, 3611, 3611, 3611, + 3798, 2702, 771, 822, -730, 3859, 325, -730, -730, -730, + 798, 795, 2702, 375, 635, 871, 2095, 867, -730, 3680, + -730, -730, 3611, -730, 866, 319, 3973, -730, -730, 757, + 757, 757, 797, -730, 2030, -730, -730, 861, 874, 873, + -730, -730, 821, -730, -730, -730, -730, 2095, 879, -730, + -730, -730, -730, 4270, 750, -730, -730, 876, -730, 816, + 319, 1276, 45, 601, -730, -730, -730, -730, 757, -730, + 451, 2366, 2478, 567, 460, 880, 2702, 3798, 2702, -730, + -730, 23, 822, 602, -730, 3197, 885, -730, 45, 351, + -730, -730, 868, 319, 4270, -730, 42, -730, 2590, -730, + 24, 600, 600, -730, -730, 841, 893, -730, 2095, 319, + -730, -730, -730, -730, -730, 801, -730, 844, -730, -730, + -15, -730, 26, 890, 891, 2702, -730, -730, -730, -730, + 600, 600, -730, -730, -730, 894, 897, -730, -730 }; } @@ -1733,94 +4485,94 @@ private static final short[] yydefact_init() { return new short[] { - 35, 0, 22, 17, 18, 40, 28, 0, 21, 20, + 35, 0, 22, 17, 18, 0, 28, 0, 21, 20, 19, 23, 24, 25, 26, 27, 0, 12, 13, 15, - 0, 30, 31, 11, 36, 0, 472, 9, 475, 41, - 0, 0, 0, 16, 1, 0, 37, 11, 14, 473, - 0, 0, 474, 0, 35, 0, 0, 0, 0, 0, - 0, 44, 46, 79, 80, 81, 47, 192, 193, 0, - 10, 0, 0, 38, 11, 0, 0, 83, 95, 83, - 83, 45, 0, 0, 33, 11, 60, 0, 0, 0, - 0, 0, 48, 49, 0, 0, 93, 84, 0, 0, - 195, 0, 0, 476, 485, 0, 0, 0, 0, 0, - 0, 9, 2, 3, 6, 7, 78, 71, 75, 77, - 5, 76, 73, 74, 0, 8, 72, 0, 0, 322, - 4, 186, 319, 459, 0, 65, 67, 458, 325, 331, - 326, 327, 328, 329, 330, 481, 411, 414, 416, 418, - 420, 422, 424, 432, 427, 435, 439, 442, 446, 447, - 450, 453, 460, 461, 456, 0, 457, 0, 472, 0, - 0, 39, 63, 61, 0, 0, 0, 0, 0, 34, - 50, 11, 209, 90, 0, 86, 89, 0, 0, 95, - 68, 97, 96, 129, 126, 0, 0, 196, 470, 95, - 11, 9, 459, 467, 326, 327, 0, 376, 0, 377, - 393, 0, 392, 0, 0, 9, 486, 0, 448, 449, - 454, 455, 451, 452, 0, 0, 355, 0, 0, 470, - 340, 0, 339, 0, 0, 0, 187, 188, 0, 0, - 0, 339, 69, 0, 339, 0, 70, 0, 0, 339, - 0, 0, 410, 0, 0, 0, 0, 0, 0, 0, + 0, 30, 31, 11, 36, 37, 0, 475, 9, 477, + 0, 0, 0, 0, 16, 1, 0, 38, 11, 14, + 476, 0, 0, 0, 0, 39, 35, 0, 0, 0, + 0, 0, 0, 45, 47, 81, 82, 83, 48, 194, + 195, 0, 0, 478, 487, 0, 0, 0, 0, 0, + 0, 9, 2, 3, 6, 7, 80, 73, 77, 79, + 5, 78, 75, 76, 0, 8, 74, 0, 0, 324, + 4, 188, 321, 462, 0, 67, 69, 461, 327, 333, + 328, 329, 330, 331, 332, 483, 414, 417, 419, 421, + 423, 425, 427, 435, 430, 438, 442, 445, 449, 450, + 453, 456, 463, 464, 459, 0, 460, 0, 475, 0, + 0, 10, 0, 40, 0, 11, 49, 0, 85, 97, + 85, 85, 46, 11, 9, 462, 470, 328, 329, 0, + 379, 0, 380, 396, 0, 395, 0, 0, 9, 488, + 0, 451, 452, 457, 458, 454, 455, 0, 0, 358, + 0, 70, 0, 473, 342, 0, 341, 0, 0, 0, + 189, 190, 0, 0, 0, 341, 71, 0, 341, 0, + 72, 0, 0, 341, 0, 0, 413, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 462, 463, 465, 464, 66, 477, 0, 478, - 64, 62, 0, 52, 0, 54, 0, 56, 0, 210, - 0, 11, 0, 0, 85, 88, 94, 0, 0, 134, - 130, 0, 471, 197, 11, 194, 0, 0, 140, 0, - 0, 380, 9, 0, 0, 0, 385, 0, 0, 324, - 0, 398, 399, 400, 401, 402, 403, 404, 405, 406, - 407, 408, 409, 0, 466, 0, 483, 482, 0, 360, - 0, 362, 479, 347, 344, 0, 342, 0, 0, 0, - 186, 372, 0, 0, 339, 0, 351, 0, 0, 0, - 191, 0, 189, 0, 0, 339, 0, 332, 0, 0, - 0, 323, 0, 0, 0, 350, 333, 0, 0, 0, - 415, 417, 419, 421, 423, 425, 426, 428, 429, 430, - 431, 0, 433, 65, 318, 434, 436, 437, 438, 440, - 441, 443, 444, 445, 0, 51, 58, 0, 0, 0, - 0, 0, 0, 216, 217, 215, 212, 214, 211, 0, - 99, 92, 0, 0, 87, 11, 82, 98, 134, 11, - 0, 0, 199, 0, 11, 198, 138, 470, 470, 11, - 137, 0, 470, 381, 0, 382, 11, 11, 391, 390, - 378, 379, 394, 468, 487, 361, 0, 0, 0, 345, - 0, 341, 347, 0, 159, 371, 370, 373, 0, 101, - 470, 336, 335, 337, 0, 367, 0, 321, 190, 353, - 0, 0, 364, 339, 366, 369, 320, 354, 0, 365, - 0, 153, 231, 151, 230, 0, 0, 53, 55, 57, - 0, 0, 213, 0, 91, 103, 110, 23, 0, 11, - 105, 108, 131, 0, 11, 127, 132, 0, 0, 205, - 0, 0, 206, 201, 203, 204, 200, 0, 141, 142, - 0, 471, 144, 0, 148, 11, 146, 186, 186, 0, - 384, 386, 0, 221, 238, 9, 0, 0, 0, 0, - 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, - 237, 11, 223, 226, 232, 233, 0, 234, 235, 236, - 288, 289, 325, 328, 258, 259, 260, 0, 261, 262, - 363, 348, 349, 343, 346, 374, 164, 0, 160, 161, - 163, 0, 334, 102, 0, 358, 276, 469, 352, 0, - 356, 0, 357, 413, 412, 0, 155, 0, 480, 59, - 207, 0, 100, 109, 0, 113, 0, 0, 107, 115, - 182, 111, 112, 0, 114, 104, 106, 128, 133, 0, - 182, 182, 0, 0, 0, 0, 185, 208, 184, 202, - 0, 9, 145, 147, 388, 387, 0, 0, 0, 244, - 0, 246, 0, 0, 0, 291, 0, 248, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 227, 228, - 225, 0, 222, 224, 239, 157, 0, 0, 375, 338, - 0, 284, 0, 271, 0, 277, 11, 0, 0, 368, - 154, 0, 152, 186, 153, 0, 0, 0, 0, 165, - 0, 171, 170, 182, 182, 182, 0, 143, 11, 149, - 389, 257, 240, 0, 245, 247, 0, 293, 296, 0, - 292, 0, 249, 0, 0, 251, 68, 316, 0, 314, - 0, 326, 0, 0, 253, 303, 255, 301, 0, 252, - 229, 158, 162, 283, 285, 268, 272, 0, 269, 278, - 11, 0, 17, 11, 0, 281, 0, 359, 156, 219, - 150, 0, 183, 116, 186, 0, 470, 0, 174, 169, - 166, 168, 182, 118, 395, 11, 11, 458, 0, 0, - 0, 0, 294, 0, 0, 0, 0, 312, 0, 11, - 311, 304, 254, 309, 302, 0, 0, 270, 282, 0, - 274, 0, 0, 0, 0, 172, 470, 186, 180, 177, - 0, 186, 0, 167, 0, 119, 11, 120, 339, 0, - 0, 241, 0, 0, 0, 295, 297, 266, 242, 250, - 313, 315, 0, 0, 256, 310, 287, 286, 0, 273, - 220, 218, 117, 176, 0, 178, 0, 173, 175, 0, - 121, 0, 0, 0, 0, 0, 298, 0, 265, 307, - 0, 0, 275, 181, 179, 0, 0, 123, 122, 243, - 300, 299, 0, 267, 0, 186, 305, 0, 0, 0, - 308, 306, 124, 125, 290 + 0, 0, 0, 0, 0, 0, 465, 466, 468, 467, + 68, 479, 0, 480, 0, 41, 33, 11, 62, 0, + 0, 0, 0, 0, 50, 51, 0, 0, 95, 86, + 0, 0, 197, 0, 385, 9, 0, 0, 0, 390, + 0, 0, 326, 0, 401, 402, 403, 404, 405, 406, + 407, 408, 409, 410, 411, 412, 0, 469, 0, 485, + 484, 0, 363, 0, 365, 481, 347, 346, 0, 344, + 0, 0, 0, 188, 375, 0, 0, 341, 0, 474, + 354, 0, 0, 0, 193, 0, 191, 0, 0, 341, + 0, 334, 0, 0, 0, 325, 0, 0, 0, 353, + 335, 0, 0, 0, 418, 420, 422, 424, 426, 428, + 429, 431, 432, 433, 434, 0, 436, 67, 320, 437, + 439, 440, 441, 443, 444, 446, 447, 448, 0, 42, + 65, 63, 0, 0, 0, 0, 0, 34, 52, 11, + 211, 92, 0, 88, 91, 0, 0, 97, 99, 98, + 131, 128, 0, 0, 198, 473, 97, 0, 473, 386, + 0, 387, 11, 11, 382, 381, 384, 383, 397, 471, + 489, 364, 0, 0, 0, 0, 343, 350, 0, 161, + 374, 373, 376, 0, 103, 473, 338, 337, 339, 0, + 370, 0, 323, 192, 356, 0, 0, 367, 341, 369, + 372, 322, 357, 0, 368, 0, 155, 233, 153, 232, + 0, 66, 64, 0, 54, 0, 56, 0, 58, 0, + 212, 0, 11, 0, 0, 87, 90, 96, 0, 0, + 136, 132, 0, 199, 11, 196, 0, 0, 142, 0, + 0, 188, 188, 0, 474, 389, 391, 0, 223, 240, + 9, 0, 0, 0, 0, 0, 0, 0, 0, 25, + 0, 0, 0, 0, 0, 239, 11, 225, 228, 234, + 235, 0, 236, 237, 238, 290, 291, 327, 330, 260, + 261, 262, 0, 263, 264, 366, 348, 349, 345, 0, + 0, 377, 166, 0, 162, 163, 165, 0, 11, 336, + 104, 0, 361, 278, 472, 355, 0, 359, 0, 360, + 416, 415, 0, 157, 0, 482, 53, 60, 0, 0, + 0, 0, 0, 0, 218, 219, 217, 214, 216, 213, + 0, 101, 94, 0, 0, 89, 84, 100, 136, 11, + 0, 0, 201, 0, 11, 200, 140, 473, 473, 11, + 139, 393, 392, 0, 0, 0, 246, 0, 248, 0, + 0, 0, 293, 0, 250, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 229, 230, 227, 0, 224, + 226, 241, 351, 352, 159, 0, 0, 378, 105, 112, + 23, 0, 11, 107, 110, 340, 0, 286, 0, 273, + 0, 279, 11, 0, 0, 371, 156, 0, 154, 0, + 55, 57, 59, 0, 0, 215, 0, 93, 133, 0, + 11, 129, 134, 0, 0, 207, 0, 0, 208, 203, + 205, 206, 202, 0, 143, 144, 0, 146, 0, 150, + 11, 148, 394, 259, 242, 0, 247, 249, 0, 295, + 298, 0, 294, 0, 251, 0, 0, 253, 70, 318, + 0, 316, 0, 328, 0, 0, 255, 305, 257, 303, + 0, 254, 231, 160, 164, 111, 0, 115, 0, 0, + 109, 117, 184, 113, 114, 0, 116, 106, 108, 285, + 287, 270, 274, 0, 271, 280, 11, 0, 17, 11, + 0, 283, 0, 362, 158, 61, 209, 0, 102, 130, + 135, 0, 184, 184, 0, 0, 0, 0, 187, 210, + 186, 204, 0, 9, 147, 149, 0, 0, 0, 296, + 0, 0, 0, 0, 314, 0, 11, 313, 306, 256, + 311, 304, 0, 155, 0, 0, 0, 0, 167, 0, + 272, 284, 0, 276, 0, 188, 0, 173, 172, 184, + 184, 184, 0, 145, 11, 151, 243, 0, 0, 0, + 297, 299, 268, 244, 252, 315, 317, 0, 0, 258, + 312, 289, 152, 0, 185, 118, 288, 0, 275, 221, + 188, 0, 473, 0, 176, 171, 168, 170, 184, 120, + 398, 11, 11, 461, 0, 0, 0, 300, 0, 267, + 309, 0, 0, 0, 277, 0, 0, 174, 473, 188, + 182, 179, 0, 188, 0, 169, 0, 121, 11, 122, + 341, 0, 0, 245, 302, 301, 0, 269, 0, 188, + 307, 119, 222, 220, 178, 0, 180, 0, 175, 177, + 0, 123, 0, 0, 0, 0, 310, 308, 183, 181, + 0, 0, 125, 124, 292, 0, 0, 126, 127 }; } @@ -1830,25 +4582,25 @@ private static final short[] yypgoto_init() { return new short[] { - -686, -686, 70, 15, -662, -15, 257, -686, -686, -686, - 860, 59, -686, -686, 859, 867, -686, -686, 825, 403, - -686, -72, 506, -686, -137, -686, 525, -379, -686, 644, - 751, -686, -92, 244, -686, -686, -440, 517, -405, -686, - -686, -686, 249, -686, -686, -686, -686, 521, 523, -686, - -686, -686, 511, -686, -686, 417, -686, -372, 343, -328, - -686, -686, 277, -686, -276, -493, 194, 145, 152, -561, - 333, -119, -212, 306, -35, 400, -686, -686, -686, -686, - 433, -358, -686, -686, -686, -686, 543, -686, -686, 397, - -424, -529, -686, -246, -509, -686, -686, -618, -686, -686, - 179, -686, 279, -686, 281, 282, -569, -686, -686, -686, - -686, -686, -686, 114, -686, -686, -686, 230, -676, -686, - -686, -686, -685, -686, -686, 183, -686, -626, 382, -226, - -686, -686, 227, -118, -686, 516, 510, 630, 738, 420, - -265, -686, -686, -686, -686, 624, 695, -147, -686, -686, - -686, 531, 660, -649, 532, -686, -686, -69, -686, -686, - 732, 722, 765, 723, 730, 380, -686, 325, 366, 429, - -64, 537, 587, -686, 720, 770, 774, -686, -686, -686, - -686, -170, 0, 63, -686, -686, -93, -686 + -730, -730, 461, 213, -729, -10, 257, -730, -730, -730, + 875, -730, -4, -730, 807, 869, -730, -730, 710, 222, + -730, 182, 506, -730, -390, -730, 484, -503, -730, 500, + 584, -730, -3, 189, -730, -730, -418, 394, -537, -730, + -730, -730, 192, -730, -730, -730, -730, 399, 402, -730, + -730, -730, 395, -730, -730, 301, -730, -316, 430, -267, + -730, -730, 361, -730, -539, -607, 165, 128, 136, -431, + 271, -60, -166, 154, -389, 496, -730, -730, -730, -730, + 328, -519, -730, -730, -730, -730, 428, -730, -730, -202, + -369, -471, -730, -196, -454, -730, -730, -565, -730, -730, + 230, -730, 365, -730, 367, 371, -488, -730, -730, -730, + -730, -730, -730, 158, -730, -730, -730, 304, -647, -730, + -730, -730, -648, -730, -730, 241, -730, -566, 560, -157, + -730, -730, 96, -85, -730, 604, -11, 714, 575, -272, + -730, -730, -730, -730, 704, 712, -113, -730, -730, -730, + 618, -588, 644, -730, -730, -40, -730, -730, 800, 803, + 808, 789, 812, 515, -730, 413, 433, 507, 4, 659, + 726, -730, 739, 856, 872, -730, -730, -730, -730, -98, + 0, -24, -730, -61, -730 }; } @@ -1858,25 +4610,25 @@ private static final short[] yydefgoto_init() { return new short[] { - -1, 122, 192, 549, 17, 18, 19, 20, 21, 22, - 23, 24, 30, 74, 37, 51, 81, 82, 83, 397, - 164, 124, 125, 126, 52, 53, 606, 87, 174, 175, - 176, 179, 89, 182, 411, 582, 416, 499, 500, 608, - 609, 610, 699, 765, 54, 184, 289, 290, 420, 55, - 189, 297, 298, 430, 525, 526, 611, 484, 483, 576, - 577, 578, 579, 612, 511, 621, 757, 758, 799, 688, - 627, 235, 226, 227, 56, 57, 186, 187, 295, 424, - 513, 405, 515, 58, 172, 281, 406, 407, 793, 550, - 743, 552, 660, 717, 553, 554, 555, 556, 557, 848, - 587, 672, 673, 674, 675, 676, 744, 733, 558, 559, - 560, 709, 814, 710, 862, 561, 783, 724, 725, 823, - 850, 824, 726, 654, 718, 719, 385, 127, 128, 129, - 343, 344, 219, 220, 335, 336, 449, 194, 195, 132, - 216, 330, 133, 134, 340, 341, 196, 197, 198, 304, - 305, 306, 440, 199, 200, 201, 323, 202, 242, 136, - 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, - 147, 148, 149, 150, 151, 152, 153, 154, 155, 203, - 156, 291, 157, 26, 42, 159, 160, 207 + -1, 92, 145, 474, 17, 18, 19, 20, 21, 22, + 23, 24, 25, 226, 38, 53, 233, 234, 235, 528, + 342, 94, 95, 96, 54, 55, 688, 239, 352, 353, + 354, 357, 241, 359, 542, 509, 510, 602, 603, 690, + 691, 692, 775, 811, 56, 361, 440, 441, 550, 57, + 366, 447, 448, 560, 650, 651, 693, 419, 418, 502, + 503, 504, 505, 694, 637, 723, 803, 804, 831, 757, + 729, 189, 180, 181, 58, 59, 363, 364, 445, 554, + 639, 536, 641, 60, 350, 432, 537, 538, 826, 475, + 709, 477, 587, 669, 478, 479, 480, 481, 482, 819, + 514, 608, 609, 610, 611, 612, 710, 699, 483, 484, + 485, 661, 779, 662, 846, 486, 750, 676, 677, 788, + 821, 789, 678, 581, 670, 671, 329, 97, 98, 99, + 286, 287, 173, 174, 278, 279, 147, 148, 102, 169, + 273, 103, 104, 283, 284, 149, 150, 151, 247, 248, + 249, 152, 153, 154, 266, 155, 196, 106, 107, 108, + 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, + 119, 120, 121, 122, 123, 124, 125, 156, 126, 442, + 127, 27, 129, 130, 160 }; } @@ -1888,452 +4640,457 @@ private static final short[] yytable_init() { return new short[] { - 25, 206, 225, 135, 357, 232, 339, 384, 264, 482, - 38, 455, 366, 551, 620, 16, 181, 677, 299, 583, - 193, 734, 663, 25, 524, 135, 720, 708, 755, 490, - 644, 208, 209, 210, 211, 212, 213, 25, 35, 782, - 40, 217, 218, 639, 510, 224, 40, 273, 781, 345, - 471, 735, 59, 40, 275, 478, 1, 224, 217, 691, - 692, 474, 232, 240, 25, 514, 618, 73, 1, 224, - 324, 28, 767, 27, 232, 25, 365, 31, 459, 35, - 1, 29, 36, 325, 241, 177, 640, 287, 39, 755, - 59, 265, 797, 60, 616, 475, 855, 300, 825, 616, - 43, 856, 45, 737, 481, 741, 286, 60, 781, 670, - 355, 61, 412, 293, 671, 224, 491, 738, 193, 607, - 524, 228, 332, 36, 228, 228, 1, 355, 701, 693, - 694, 695, 759, 760, 761, 158, 1, 827, 510, 356, - 755, 798, 123, 403, 607, 334, 135, 165, 166, 167, - 168, 278, 720, 274, 27, 816, 506, 158, 180, 514, - 276, 641, 519, 217, 123, 123, 123, 123, 123, 123, - 123, 25, 173, 1, 46, 670, 217, 214, 249, 250, - 671, 382, 864, 292, 180, 66, 280, 419, 292, 224, - 307, 251, 252, 228, 1, 391, 392, 393, 346, 585, - 1, 803, 215, 762, 642, 303, 590, 32, 401, -470, - 410, 588, 447, 592, 663, 865, 417, 337, 342, 292, - 39, 456, 613, 47, 425, 123, 228, 180, 708, 48, - -470, 214, 685, 224, 272, 444, 528, 663, 448, 690, - 39, 49, 253, 224, 1, 404, 34, 613, 180, 224, - 224, 50, 308, 443, 1, 180, 60, 299, 520, 135, - 1, 1, 529, 40, 595, 817, 228, 214, 224, 596, - 595, 41, 403, -383, 766, 33, 826, 663, 158, 1, - 619, 25, 413, 177, 460, 123, 509, 180, 308, 681, - 584, 39, 38, 217, 25, 33, 409, 684, 229, 461, - 722, 230, 237, 661, 231, 238, 40, 44, 239, 423, - 217, 123, 723, 123, 123, 123, 123, 123, 123, 123, - 123, 123, 123, 180, 123, 123, 123, 123, 123, 123, - 123, 123, 454, 593, 224, 66, 860, 401, 863, 228, - 342, 806, -139, 224, 396, 1, 396, -139, 396, 5, - 180, 401, 180, 748, 1, 39, 1, 283, 180, 745, - 874, 605, 65, 162, 62, 63, 180, 40, 284, 180, - 39, 746, 163, 180, 404, 571, 572, 180, 334, 224, - 509, 237, 233, 228, 808, 234, 605, 239, 512, 67, - 1, 158, 598, 224, 40, 180, 834, 214, 123, 707, - 39, 88, 228, 217, 1, 39, 637, 180, 634, 635, - 68, 594, 658, 747, 229, 25, 135, 804, 292, 25, - 231, 602, 338, 69, 25, -68, 217, 292, 521, 25, - 498, 236, 521, 1, 498, 353, 25, 307, 623, 517, - 72, 247, 248, 450, 523, 401, 1, 40, 347, 348, - 337, 303, -459, -459, 451, 70, 221, 358, 359, 222, - 292, 362, 458, 614, -264, 367, 368, -29, 777, -264, - 28, -264, 596, 1, 437, 778, 39, 262, 263, 180, - 626, 228, 512, 180, 229, 1, 267, 230, 614, 84, - 231, 268, 426, 180, -317, -68, 217, 427, -484, 25, - -484, -317, -263, -484, 25, -484, 433, -263, 228, -263, - 625, 434, 360, 169, 498, 361, 435, 180, 180, 498, - 180, 436, 257, 258, 445, 25, 2, 228, 228, 446, - -460, -460, 352, 801, 670, 623, 3, 832, 802, 671, - 523, 85, 802, 4, 842, 843, 40, 277, 158, 5, - 123, 307, 40, 395, -11, 123, 599, 6, 7, 8, - 9, 10, 161, 180, 749, 11, 12, 1, 180, 13, - 171, 462, 236, 14, 377, 378, 379, 380, 357, 15, - 180, 418, 366, 419, 39, 327, 800, 180, 328, 178, - 867, 868, 86, 180, 90, 91, 228, 665, 232, 809, - 666, 486, 810, 487, 228, -461, -461, 625, 2, 254, - 255, 256, 259, 260, 261, 181, 702, 703, 3, 180, - 386, 387, 388, 183, 228, 4, 800, 375, 376, 76, - 77, 5, 78, 79, 80, 795, 486, 185, 488, 6, - 188, 8, 9, 10, 243, 352, 232, 11, 12, 223, - 486, 13, 489, 244, 597, 14, 600, 228, 652, -396, - 437, 15, 597, 266, 750, -396, -396, -396, -396, -396, - -396, -396, -396, -396, -396, -396, 307, 180, 835, 398, - 246, 399, 837, 228, 228, 245, 389, 390, 39, 236, - 25, 269, 270, 271, 282, 180, 294, 589, 307, 830, - 591, 288, 130, -397, 309, 438, 296, 438, 236, -397, - -397, -397, -397, -397, -397, -397, -397, -397, -397, -397, - 310, 326, 716, 135, 130, 130, 130, 130, 130, 130, - 130, 214, 1, 350, 236, 217, 351, 363, 236, 394, - 307, 415, 421, 307, 429, 466, 871, 463, 464, 467, - 849, 25, 465, 468, 228, 469, 521, 180, 470, 383, - 180, 471, 472, 473, 477, 307, 307, 478, 764, 476, - 480, 479, 481, 40, 485, 494, 493, 505, 527, 25, - 575, 586, 597, 530, 601, 130, 402, 437, 619, 617, - 645, 630, 870, 636, 822, 646, 521, 228, 649, 650, - 655, 228, 25, 667, 664, 428, 307, 668, 669, 432, - 131, 678, 501, 266, 236, 679, 501, 683, 686, 562, - 690, 180, 697, 698, 687, 180, 501, 704, 731, 700, - 705, 712, 131, 131, 131, 131, 131, 131, 131, 715, - 729, 730, 454, 266, 706, 130, 751, 770, 716, 779, - 771, 772, 774, 775, 773, 158, 776, 563, 785, 786, - 746, 723, 123, 722, 811, 228, 836, 745, -284, 788, - 792, 130, 180, 130, 130, 130, 130, 130, 130, 130, - 130, 130, 130, 829, 130, 130, 130, 130, 130, 130, - 130, 130, 180, 131, 603, 831, 501, 844, 845, 846, - 851, 501, 352, 847, 64, 853, 852, 170, 628, 331, - 236, 857, 854, 858, 859, 402, 869, 872, 349, 266, - 873, 562, 501, 75, 354, 768, 71, 414, 285, 508, - 236, 752, 364, 562, 180, 369, 504, 753, 518, 502, - 682, 503, 633, 653, 732, 794, 689, 838, 833, 659, - 629, 736, 492, 131, 818, 739, 740, 784, 130, 563, - 861, 821, 574, 236, 457, 371, 573, 531, 373, 564, - 441, 563, 0, 370, 565, 0, 374, 400, 85, 131, - 0, 131, 131, 131, 131, 131, 131, 131, 131, 131, - 131, 0, 131, 131, 131, 131, 131, 131, 131, 131, - 0, 0, 0, 439, 604, 439, 0, 0, 0, 372, - 628, 0, 0, 27, 0, 0, 624, 0, 442, 562, - 106, 0, 107, 508, 566, 108, 47, 562, 0, 604, - 109, 839, 48, 453, 0, 841, 0, 111, 0, 0, - 0, 0, 0, 112, 49, 113, 0, 0, 0, 0, - 0, 727, 0, 0, 50, 657, 116, 563, 562, 0, - 27, 1, 236, 0, 0, 563, 131, 106, 0, 107, - 507, 564, 108, 47, 0, 0, 565, 109, 0, 48, - 562, 0, 0, 564, 111, 0, 0, 0, 565, 0, - 112, 49, 113, 0, 0, 0, 563, 27, 0, 0, - 0, 50, 236, 116, 106, 0, 107, 0, 0, 108, - 130, 0, 0, 624, 109, 130, 381, 0, 563, 0, - 780, 111, 562, 46, 85, 562, 566, 112, 0, 113, - 0, 266, 0, 0, 0, 0, 0, 0, 566, 0, - 116, 570, 0, 790, 0, 0, 0, 562, 562, 580, - 0, 383, 0, 581, 622, 562, 562, 567, 383, 27, - 563, 0, 0, 563, 0, 0, 106, 562, 107, 564, - 0, 108, 47, 819, 565, 0, 109, 564, 48, 0, - 0, 0, 565, 111, 0, 563, 563, 0, 562, 112, - 49, 113, 0, 563, 563, 0, 756, 0, 0, 0, - 50, 0, 116, 0, 0, 563, 0, 568, 564, 0, - 0, 569, 0, 565, 0, 0, 507, 0, 131, 0, - 0, 0, 0, 131, 566, 0, 563, 562, 562, 562, - 564, 638, 566, 1, 0, 565, 0, 648, 0, 0, - 651, 0, 0, 656, 0, 0, 0, 0, 866, 0, - 0, 562, 0, 0, 0, 0, 0, 756, 0, 567, - 0, 796, 0, 566, 0, 563, 563, 563, 0, 27, - 0, 567, 564, 0, 0, 564, 106, 565, 107, 0, - 565, 108, 721, 0, 383, 566, 109, 0, 0, 563, - 680, 0, 0, 111, 0, 0, 0, 564, 564, 112, - 0, 113, 565, 565, 0, 564, 564, 0, 756, 568, - 565, 565, 116, 569, 0, 0, 0, 564, 0, 0, - 0, 568, 565, 0, 0, 569, 696, 566, 0, 0, - 566, 0, 0, 0, 0, 0, 0, 0, 564, 0, - 0, 711, 0, 565, 713, 714, 0, 0, 0, 0, - 728, 0, 566, 566, 0, 0, 0, 567, 0, 0, - 566, 566, 580, 0, 0, 567, 0, 0, 0, 0, - 0, 0, 566, 0, 0, 0, 0, 564, 564, 564, - 27, 0, 565, 565, 565, 0, 0, 106, 0, 107, - 131, 0, 108, 566, 0, 0, 567, 109, 769, 0, - 0, 564, 0, 0, 111, 0, 565, 568, 721, 0, - 112, 569, 113, 0, 0, 568, 0, 0, 567, 569, - 0, 0, 130, 116, 0, 0, 0, 0, 0, 0, - 0, 0, 566, 566, 566, 0, 431, 0, 0, -42, - 0, 791, 0, 0, 0, 0, 568, 0, 0, 0, - 569, 0, 0, 0, 0, 0, 566, 1, 0, 0, - 567, 0, 0, 567, 0, 812, 813, 815, 568, 0, - 0, 0, 569, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 828, 567, 567, 0, 0, 0, - 0, 0, 0, 567, 567, 0, 0, 0, 2, 0, - 0, -32, 0, 0, 0, 567, 0, 0, 3, 0, - 568, 0, 0, 568, 569, 4, 131, 569, 0, 1, - 0, 5, 0, 0, 0, 0, 567, 0, 0, 6, - 131, 8, 9, 10, 0, 568, 568, 11, 12, 569, - 569, 13, 0, 568, 568, 14, 0, 569, 569, 0, - 0, 15, 0, 0, 0, 568, 0, 0, 0, 569, - 2, 0, 0, 0, -43, 567, 567, 567, 0, 0, - 3, 2, 0, 0, 0, 0, 568, 4, 0, 0, - 569, 3, 1, 0, 0, 0, 0, 0, 4, 567, - 0, 6, 0, 8, 9, 10, 0, 0, 0, 11, - 12, 0, 6, 13, 8, 9, 10, 14, 0, 0, - 11, 12, 0, 15, 13, 568, 568, 568, 14, 569, - 569, 569, 0, 2, 15, 0, 532, 0, 437, -279, - 0, 0, 0, 3, 534, 0, 0, 0, 0, 568, - 4, 1, 0, 569, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 6, 0, 8, 9, 10, 0, - 0, 0, 11, 12, 0, 0, 13, 0, 99, 100, - 14, 0, 0, 0, 0, 0, 15, 535, 102, 103, - 104, 105, 2, 536, 106, 537, 107, 670, 0, 108, - 0, 538, 742, 539, 109, 0, 0, 0, 110, 4, - 0, 111, 540, 541, 0, 0, 0, 112, 0, 113, - 0, 114, 115, 6, 0, 8, 9, 10, 0, 542, - 116, 11, 12, 117, 543, 544, 119, 545, 0, 14, - 0, 120, 546, 0, 121, 15, 547, 548, 532, 0, - 437, 763, 0, 27, 0, 0, 534, 0, 0, 0, - 106, 0, 107, 1, 217, 108, 0, 0, 0, 0, - 109, 0, 0, 0, 0, 0, 0, 111, 0, 0, - 0, 0, 0, 112, 0, 113, 0, 0, 0, 0, - 99, 100, 0, 0, 0, 0, 116, 0, 0, 535, - 102, 103, 104, 105, 2, 536, 106, 537, 107, 0, - 0, 108, 0, 538, 3, 539, 109, 0, 0, 0, - 110, 4, 0, 111, 540, 541, 0, 0, 400, 112, - 0, 113, 0, 114, 115, 6, 0, 8, 9, 10, - 0, 542, 116, 11, 12, 117, 543, 544, 119, 545, - 0, 14, 0, 120, 546, 0, 121, 15, 547, 548, - 532, 0, 437, 787, 27, 0, 0, 0, 534, 0, - 0, 106, 0, 107, 0, 1, 108, 47, 0, 0, - 0, 109, 0, 48, 0, 0, 0, 0, 111, 0, - 0, 0, 0, 0, 112, 49, 113, 0, 0, 0, - 0, 0, 99, 100, 0, 50, 0, 116, 0, 0, - 0, 535, 102, 103, 104, 105, 2, 536, 106, 537, - 107, 670, 0, 108, 0, 538, 742, 539, 109, 0, - 0, 0, 110, 4, 0, 111, 540, 541, 0, 0, - 1, 112, 0, 113, 0, 114, 115, 6, 333, 8, - 9, 10, 0, 542, 116, 11, 12, 117, 543, 544, - 119, 545, 0, 14, 0, 120, 546, 0, 121, 15, - 547, 548, 532, 0, 437, -280, 27, 0, 0, 0, - 534, 0, 0, 106, 0, 107, 0, 1, 108, 0, - 0, 0, 0, 109, 0, 0, 0, 0, 0, 0, - 111, 0, 0, 0, 0, 0, 112, 0, 113, 0, - 0, 0, 0, 0, 99, 100, 0, 0, 0, 116, - 0, 0, 0, 535, 102, 103, 104, 105, 2, 536, - 106, 537, 107, -280, 0, 108, 0, 538, 3, 539, - 109, 0, 0, 0, 110, 4, 0, 111, 540, 541, - 0, 0, 1, 112, 0, 113, 0, 114, 115, 6, - 452, 8, 9, 10, 0, 542, 116, 11, 12, 117, - 543, 544, 119, 545, 0, 14, 0, 120, 546, 0, - 121, 15, 547, 548, 532, 0, 437, 533, 27, 0, - 0, 0, 534, 0, 0, 106, 0, 107, 0, 1, - 108, 0, 0, 0, 0, 109, 0, 0, 0, 0, - 0, 0, 111, 0, 0, 0, 0, 0, 112, 0, - 113, 0, 0, 0, 0, 0, 99, 100, 0, 0, - 0, 116, 0, 0, 0, 535, 102, 103, 104, 105, - 2, 536, 106, 537, 107, 0, 0, 108, 0, 538, - 3, 539, 109, 0, 0, 0, 110, 4, 0, 111, - 540, 541, 0, 0, 1, 112, 0, 113, 0, 114, - 115, 6, 0, 8, 9, 10, 0, 542, 116, 11, - 12, 117, 543, 544, 119, 545, 0, 14, 0, 120, - 546, 0, 121, 15, 547, 548, 532, 0, 437, 662, - 27, 0, 0, 0, 534, 0, 0, 106, 0, 107, - 0, 1, 108, 0, 0, 0, 0, 109, 0, 0, - 0, 0, 0, 0, 111, 0, 0, 0, 0, 0, - 112, 0, 113, 0, 0, 0, 0, 0, 99, 100, - 0, 0, 0, 116, 0, 0, 0, 535, 102, 103, - 104, 105, 2, 536, 106, 537, 107, 0, 0, 108, - 0, 538, 3, 539, 109, 0, 0, 0, 110, 4, - 0, 111, 540, 541, 0, 0, 0, 112, 0, 113, - 0, 114, 115, 6, 0, 8, 9, 10, 0, 542, - 116, 11, 12, 117, 543, 544, 119, 545, 0, 14, - 0, 120, 546, 0, 121, 15, 547, 548, 532, 0, - 437, 805, 0, 0, 0, 0, 534, 0, 311, 0, - 0, 0, 0, 1, 312, 313, 314, 315, 316, 317, - 318, 319, 320, 321, 322, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 99, 100, 0, 0, 0, 0, 0, 0, 0, 535, - 102, 103, 104, 105, 2, 536, 106, 537, 107, 0, - 0, 108, 0, 538, 3, 539, 109, 0, 0, 0, - 110, 4, 0, 111, 540, 541, 0, 0, 0, 112, - 0, 113, 0, 114, 115, 6, 0, 8, 9, 10, - 0, 542, 116, 11, 12, 117, 543, 544, 119, 545, - 0, 14, 0, 120, 546, 0, 121, 15, 547, 548, - 532, 0, 437, 807, 0, 0, 0, 0, 534, 0, - 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 26, 105, 40, 159, 476, 590, 282, 660, 186, 417, + 571, 328, 218, 672, 394, 390, 39, 128, 700, 37, + 546, 42, 649, 26, 105, 613, 722, 301, 749, 748, + 100, 179, 42, 424, 640, 310, 178, 801, 26, 406, + 128, 534, 535, 170, 848, 42, 426, 1, 28, 374, + 636, 376, 178, 100, 100, 100, 100, 100, 100, 100, + 186, 170, 695, 1, 801, 698, 134, 194, 178, 161, + 162, 163, 164, 165, 166, 288, 178, 849, 309, 1, + 413, 224, 549, 416, 585, 870, 186, 1, 195, 1, + 178, 182, 30, 698, 182, 182, 131, 1, 689, 829, + 48, 1, 790, 40, 748, 801, 131, 275, 28, 695, + 653, 566, 299, 649, 100, 452, 568, 769, 770, 771, + 703, 131, 707, 624, 640, -473, 871, 512, 105, 219, + 299, 37, 429, 351, 517, 26, 178, 645, 33, 425, + 636, 519, 300, 250, 128, 689, 182, 1, 830, 49, + 534, 535, 427, 167, 567, 50, 373, 100, 40, 569, + 1, 131, 728, 635, 638, 808, 701, 51, 203, 204, + 280, 796, 285, 289, 178, 781, 704, 52, 168, 672, + 182, 205, 206, 721, 100, 1, 100, 100, 100, 100, + 100, 100, 100, 100, 100, 100, -473, 100, 100, 100, + 100, 100, 100, 100, 100, 35, 170, 170, 813, 409, + 380, 687, 696, 16, 720, 28, 623, 335, 336, 337, + 182, 753, 383, 391, 606, 136, 40, 26, 5, 607, + 42, 105, 207, 674, 606, 1, 36, 355, 590, 607, + 39, 290, 515, 410, 146, 675, 137, 128, 384, 190, + 523, 61, 660, 635, 638, 41, 40, 137, 687, 696, + 100, 40, 42, -141, 499, 40, 172, 449, -141, 580, + 453, 291, 292, 167, 178, 34, 2, 1, 588, 632, + 302, 303, 182, 285, 306, 1, 3, 782, 311, 312, + 500, 767, 768, 4, 251, 522, 34, 511, 791, 5, + 606, 744, 520, 178, 267, 607, 604, 6, 745, 8, + 9, 10, 167, 395, 1, 11, 12, 268, -388, 13, + 711, 42, 170, 14, 617, 146, 178, 182, 396, 15, + 170, 40, 712, 251, 296, 543, 340, 1, 805, 806, + 807, 590, 713, 1, -319, 341, 138, 604, 36, 26, + 714, -319, 277, 389, 438, 178, 246, 604, 178, 525, + 289, 855, 844, 450, 847, 289, 1, 590, 454, 1, + 754, 139, 26, 250, 190, 521, 659, 835, 766, 679, + 105, 167, 178, 397, 2, 280, 281, 140, 297, 326, + 564, 561, 562, 1, 3, 289, 128, 1, 685, 1, + 604, 4, 385, 522, 100, 812, 208, 209, 210, 100, + 393, 874, 141, 386, 434, 6, 182, 8, 9, 10, + 177, 1, 358, 11, 12, 435, 175, 13, 604, 176, + 40, 14, 26, 544, 355, 730, 296, 15, 270, 1, + 61, 271, 838, 183, 26, 579, 184, 373, 604, 185, + 379, 182, 182, 304, -70, 170, 305, 197, 183, 449, + 646, 836, 29, 548, 185, 549, 31, 221, 32, -70, + 170, 183, 222, 747, 184, 28, 250, 185, 619, 198, + 620, 190, 76, 170, 77, 228, 229, 78, 230, 231, + 232, 43, 79, 730, 47, 594, -462, -462, 595, 81, + 178, 516, 93, 187, 518, 82, 188, 83, 26, 199, + 763, 1, -486, 619, -486, 621, 369, -486, 86, -486, + 40, 370, 190, 182, 223, 93, 93, 93, 93, 93, + 93, 93, 724, 182, 371, -266, 44, 45, 437, 372, + -266, 784, -266, 225, 443, 171, -265, 381, 289, 26, + 556, -265, 382, -265, 26, 557, 200, 289, 454, 26, + 841, 2, 431, 842, 236, 496, 497, 277, 673, 863, + 864, 3, 237, 191, 191, 240, 192, 840, 4, 193, + 193, 42, 46, 186, 182, 246, 93, 523, 171, 619, + 252, 622, 6, 253, 8, 9, 10, 269, 875, 876, + 11, 12, 26, 167, 13, 833, 851, 524, 14, 716, + 834, 834, 250, 532, 15, 541, 321, 322, 323, 324, + 850, 547, 238, 1, 242, 243, 132, 133, 555, 93, + 26, 171, 170, 220, 182, 294, 727, 213, 214, 215, + 295, 330, 331, 332, 524, 540, 792, 211, 212, 529, + 26, 530, 201, 202, 216, 217, 93, 553, 93, 93, + 93, 93, 93, 93, 93, 93, 93, 93, 171, 93, + 93, 93, 93, 93, 93, 93, 93, 296, 307, 301, + 338, 592, 593, 310, 42, 428, 182, 190, 339, 727, + 343, 344, 345, 346, 42, 526, -463, -463, -464, -464, + 347, 171, 349, 40, 832, 799, 250, 171, 356, 250, + 360, 171, 190, 327, 654, 655, 319, 320, 333, 334, + 362, 601, 532, 365, 398, 186, 182, 399, 401, 171, + 832, 402, 93, 400, 673, 532, 403, 404, 190, 406, + 827, 171, 405, 407, 408, 411, 26, 413, 412, 414, + 415, 420, 368, 182, 416, 101, 220, 421, 422, 439, + 433, 444, 601, 446, 852, 182, 26, 643, 501, 856, + 451, 455, 648, 858, 250, 508, 513, 524, 101, 101, + 101, 101, 101, 101, 101, 105, 220, 551, 190, 867, + 559, 572, 563, 26, 573, 576, 577, 582, 591, 596, + 182, 128, 454, 423, 597, 605, 614, 615, 718, 42, + 631, 250, 250, 627, 100, 601, 652, 171, 725, 626, + 656, 657, 658, 171, 664, 532, 667, 373, 454, 182, + 681, 682, 683, 182, 26, 389, 717, 719, 250, 101, + 190, 737, 732, 601, 171, 171, 171, 738, 739, 182, + 740, 721, 741, 742, 743, 746, 759, 752, 712, 755, + 674, 766, 756, 648, 765, 815, 711, -286, 773, 761, + 814, 725, 774, 776, 793, 675, 93, 798, 816, 274, + 190, 93, 101, 822, 817, 825, 527, 824, 527, 293, + 527, 843, 171, 818, 171, 298, 853, 865, 869, 857, + 171, 872, 873, 308, 868, 877, 313, 171, 878, 101, + 171, 101, 101, 101, 101, 101, 101, 101, 101, 101, + 101, 135, 101, 101, 101, 101, 101, 101, 101, 101, + 142, 1, 860, 487, 545, 171, 862, 533, 358, 436, + 373, 598, 227, 630, 348, 794, 599, 628, 488, 795, + 629, 735, 644, 1, 618, 558, 190, 684, 823, 787, + 171, 171, 859, 375, 854, 377, 758, 28, 625, 820, + 586, 731, 783, 702, 76, 845, 77, 705, 378, 78, + 584, 706, 190, 751, 79, 101, 786, 392, 317, 498, + 456, 81, 29, 388, 2, 314, 0, 82, 0, 83, + 315, 171, 0, 0, 3, 171, 316, 0, 0, 0, + 86, 4, 318, 1, 171, 0, 0, 489, 0, 0, + 0, 0, 0, 325, 487, 6, 0, 8, 9, 10, + 866, 0, 490, 600, 12, 0, 487, 13, 0, 488, + 668, 14, 0, 0, 0, 0, 533, 15, 0, 28, + 220, 488, 0, 0, 0, 0, 76, 0, 77, 634, + 0, 78, 171, 0, 0, 0, 79, 0, -32, 0, + 0, 0, 0, 81, 0, 0, 0, 0, 327, 82, + 715, 83, 0, 0, 0, 327, 1, 171, 0, 0, + 0, 0, 86, 0, 495, 0, 0, 171, 0, 491, + 0, 506, 0, 0, 171, 507, 772, 686, 489, 171, + 0, 0, 492, 0, 0, 0, 0, 0, 0, 0, + 489, 0, 0, 490, 487, 0, 0, 2, 0, 101, + 0, 0, 487, 1, 101, 490, 0, 3, 0, 488, + 0, 276, 726, 0, 4, 0, 0, 488, 0, 634, + 171, 0, 0, 0, 686, 0, 0, 0, 6, 0, + 8, 9, 10, 0, 0, 0, 11, 12, 0, 28, + 13, 0, 487, 565, 14, 0, 76, 0, 77, 575, + 15, 78, 578, 0, 0, 583, 79, 488, 171, 0, + 491, 0, 0, 81, 0, 726, 0, 0, 0, 82, + 0, 83, 491, 492, 0, 0, 668, 0, 489, 0, + 0, 0, 86, 0, 0, 492, 489, 171, 0, 0, + 0, 0, 0, 490, 0, 0, 0, 171, 0, 493, + 0, 490, 0, 220, 616, 810, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 494, 0, 0, 171, 0, + 0, 327, 0, 0, 171, 0, 489, 0, 0, 0, + 0, 0, 171, 0, 0, 0, 487, 0, 0, 487, + 0, 490, 802, 0, 0, 0, 0, 0, 0, 0, + 0, 488, 0, 0, 488, 663, 93, 0, 665, 666, + 491, 0, 0, 101, 680, 171, 0, 0, 491, 802, + 487, 487, 0, 492, 0, 0, 0, 828, 506, 171, + 0, 492, 487, 0, 0, 488, 488, 0, 0, 0, + 493, 0, 0, 0, 0, 0, 0, 488, 0, 0, + 28, 0, 493, 0, 487, 0, 494, 76, 491, 77, + 802, 0, 78, 0, 0, 0, 0, 79, 494, 488, + 489, 492, 0, 489, 81, 0, 0, 0, 0, 0, + 82, 0, 83, 0, 0, 490, 0, 736, 490, 0, + 0, 487, 487, 86, 0, 0, 487, 487, 487, 0, + 0, 0, 0, 0, 489, 489, 488, 488, 0, 0, + 0, 488, 488, 488, 0, 0, 489, 0, 487, 490, + 490, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 490, 0, 488, 0, 0, 0, 0, 489, 0, + 493, 0, 0, 0, 764, 487, 0, 0, 493, -29, + 0, 0, 491, 490, 0, 491, 494, 0, 0, 0, + 488, 0, 0, 0, 494, 492, 0, 1, 492, 777, + 778, 780, 0, 0, 0, 489, 489, 0, 0, 101, + 489, 489, 489, 0, 0, 0, 491, 491, 493, 0, + 490, 490, 0, 0, 797, 490, 490, 490, 491, 492, + 492, 0, 489, 430, 494, 0, 0, 0, 2, 0, + 0, 492, 0, 0, 0, 1, 0, 490, 3, 0, + 491, 0, 0, 0, 0, 4, 0, 0, 0, 489, + 0, 5, 0, 492, 0, 0, -11, 0, 0, 6, + 7, 8, 9, 10, 490, 0, 0, 11, 12, -43, + 0, 13, 0, 0, 0, 14, 2, 491, 491, 101, + 0, 15, 491, 491, 491, 0, 3, 1, 0, 0, + 492, 492, 0, 4, 0, 492, 492, 492, 0, 0, + 0, 0, 493, 0, 491, 493, 0, 6, 0, 8, + 9, 10, 0, 0, 0, 11, 12, 492, 494, 13, + 0, 494, 0, 14, 0, 0, 0, 0, 2, 15, + 0, 491, 0, 0, 0, 0, 493, 493, 3, 0, + 0, 0, 0, 0, 492, 4, 0, 0, 493, 0, + 0, 5, 494, 494, 0, 0, 0, 0, 0, 6, + 0, 8, 9, 10, 494, 0, -44, 11, 12, 0, + 493, 13, 0, 0, 0, 14, 0, 0, 0, 0, + 0, 15, -399, 0, 1, 0, 494, 0, -399, -399, + -399, -399, -399, -399, -399, -399, -399, -399, -399, 0, + 0, 0, 0, 0, 0, 0, 0, 493, 493, 0, + 0, 0, 493, 493, 493, 0, 0, 0, 0, 0, + 0, 0, 0, 494, 494, 2, 0, 0, 494, 494, + 494, 0, 0, 0, 493, 3, 0, 457, 0, 373, + -281, 0, 4, 0, 0, 459, 0, 0, 0, 0, + 494, 0, 1, 0, 0, 0, 6, 0, 8, 9, + 10, 493, 0, 0, 11, 12, 0, 0, 13, 0, + 0, 0, 14, 0, 0, 0, 0, 494, 15, 69, + 70, 0, 0, 0, 0, 0, 0, 0, 460, 72, + 73, 74, 75, 2, 461, 76, 462, 77, 606, 0, + 78, 0, 463, 708, 464, 79, 0, 0, 0, 80, + 4, 0, 81, 465, 466, 0, 0, 531, 82, 0, + 83, 0, 84, 85, 6, 0, 8, 9, 10, 0, + 467, 86, 11, 12, 87, 468, 469, 89, 470, 0, + 14, 0, 90, 471, 0, 91, 15, 472, 473, 457, + 0, 373, 760, 28, 0, 0, 0, 459, 0, 0, + 76, 0, 77, 0, 1, 78, 49, 0, 0, 0, + 79, 0, 50, 0, 0, 0, 0, 81, 0, 0, + 0, 0, 0, 82, 51, 83, 0, 0, 0, 0, + 0, 69, 70, 0, 52, 0, 86, 0, 0, 0, + 460, 72, 73, 74, 75, 2, 461, 76, 462, 77, + 606, 0, 78, 0, 463, 708, 464, 79, 0, 0, + 0, 80, 4, 0, 81, 465, 466, 0, 0, 1, + 82, 0, 83, 0, 84, 85, 6, 387, 8, 9, + 10, 0, 467, 86, 11, 12, 87, 468, 469, 89, + 470, 0, 14, 0, 90, 471, 0, 91, 15, 472, + 473, 457, 0, 373, -282, 28, 0, 0, 0, 459, + 0, 0, 76, 0, 77, 0, 1, 78, 0, 0, + 0, 0, 79, 0, 0, 0, 0, 0, 0, 81, + 0, 0, 0, 0, 0, 82, 0, 83, 0, 0, + 0, 0, 0, 69, 70, 0, 0, 0, 86, 0, + 0, 0, 460, 72, 73, 74, 75, 2, 461, 76, + 462, 77, -282, 0, 78, 0, 463, 3, 464, 79, + 0, 0, 0, 80, 4, 0, 81, 465, 466, 0, + 0, 0, 82, 0, 83, 0, 84, 85, 6, 0, + 8, 9, 10, 0, 467, 86, 11, 12, 87, 468, + 469, 89, 470, 0, 14, 0, 90, 471, 0, 91, + 15, 472, 473, 457, 0, 373, 809, 0, 28, 0, + 0, 459, 0, 0, 0, 76, 0, 77, 1, 170, + 78, 49, 0, 0, 0, 79, 0, 50, 0, 0, + 0, 0, 81, 0, 0, 0, 0, 0, 82, 51, + 83, 0, 0, 0, 0, 69, 70, 0, 0, 52, + 0, 86, 0, 0, 460, 72, 73, 74, 75, 2, + 461, 76, 462, 77, 325, 0, 78, 0, 463, 3, + 464, 79, 0, 0, 0, 80, 4, 0, 81, 465, + 466, 0, 0, 1, 82, 0, 83, 0, 84, 85, + 6, 0, 8, 9, 10, 0, 467, 86, 11, 12, + 87, 468, 469, 89, 470, 0, 14, 0, 90, 471, + 0, 91, 15, 472, 473, 457, 0, 373, 458, 28, + 28, 0, 0, 459, 0, 0, 76, 76, 77, 77, + 1, 78, 78, 0, 0, 0, 79, 79, 0, 0, + 0, 0, 0, 81, 81, 0, 0, 0, 0, 82, + 82, 83, 83, 0, 0, 0, 0, 69, 70, 0, + 0, 0, 86, 86, 0, 0, 460, 72, 73, 74, + 75, 2, 461, 76, 462, 77, 367, 0, 78, 0, + 463, 3, 464, 79, 0, 0, 0, 80, 4, 0, + 81, 465, 466, 0, 0, 0, 82, 0, 83, 0, + 84, 85, 6, 0, 8, 9, 10, 0, 467, 86, + 11, 12, 87, 468, 469, 89, 470, 0, 14, 0, + 90, 471, 0, 91, 15, 472, 473, 457, 0, 373, + 589, 0, 0, 0, 0, 459, 0, -400, 0, 0, + 0, 0, 1, -400, -400, -400, -400, -400, -400, -400, + -400, -400, -400, -400, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 69, + 70, 0, 0, 0, 0, 0, 0, 0, 460, 72, + 73, 74, 75, 2, 461, 76, 462, 77, 0, 0, + 78, 0, 463, 3, 464, 79, 0, 0, 0, 80, + 4, 0, 81, 465, 466, 0, 0, 0, 82, 0, + 83, 0, 84, 85, 6, 0, 8, 9, 10, 0, + 467, 86, 11, 12, 87, 468, 469, 89, 470, 0, + 14, 0, 90, 471, 0, 91, 15, 472, 473, 457, + 0, 373, 837, 0, 0, 0, 0, 459, 0, 254, + 0, 0, 0, 0, 1, 255, 256, 257, 258, 259, + 260, 261, 262, 263, 264, 265, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 99, 100, 0, 0, 0, 0, 0, 0, - 0, 535, 102, 103, 104, 105, 2, 536, 106, 537, - 107, 0, 0, 108, 0, 538, 3, 539, 109, 0, - 0, 0, 110, 4, 0, 111, 540, 541, 0, 0, - 0, 112, 0, 113, 0, 114, 115, 6, 0, 8, - 9, 10, 0, 542, 116, 11, 12, 117, 543, 544, - 119, 545, 0, 14, 0, 120, 546, 0, 121, 15, - 547, 548, 532, 0, 437, 840, 0, 0, 0, 0, - 534, 0, 0, 0, 0, 0, 0, 1, 0, 0, + 0, 69, 70, 0, 0, 0, 0, 0, 0, 0, + 460, 72, 73, 74, 75, 2, 461, 76, 462, 77, + 0, 0, 78, 0, 463, 3, 464, 79, 0, 0, + 0, 80, 4, 0, 81, 465, 466, 0, 0, 0, + 82, 0, 83, 0, 84, 85, 6, 0, 8, 9, + 10, 0, 467, 86, 11, 12, 87, 468, 469, 89, + 470, 0, 14, 0, 90, 471, 0, 91, 15, 472, + 473, 457, 0, 373, 839, 0, 0, 0, 0, 459, + 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 99, 100, 0, 0, 0, 0, - 0, 0, 0, 535, 102, 103, 104, 105, 2, 536, - 106, 537, 107, 0, 0, 108, 0, 538, 3, 539, - 109, 0, 0, 0, 110, 4, 0, 111, 540, 541, - 0, 0, 0, 112, 0, 113, 0, 114, 115, 6, - 0, 8, 9, 10, 0, 542, 116, 11, 12, 117, - 543, 544, 119, 545, 0, 14, 0, 120, 546, 0, - 121, 15, 547, 548, 532, 0, 437, 0, 0, 0, - 0, 0, 534, 0, 0, 0, 0, 0, 0, 1, + 0, 0, 0, 69, 70, 0, 0, 0, 0, 0, + 0, 0, 460, 72, 73, 74, 75, 2, 461, 76, + 462, 77, 0, 0, 78, 0, 463, 3, 464, 79, + 0, 0, 0, 80, 4, 0, 81, 465, 466, 0, + 0, 0, 82, 0, 83, 0, 84, 85, 6, 0, + 8, 9, 10, 0, 467, 86, 11, 12, 87, 468, + 469, 89, 470, 0, 14, 0, 90, 471, 0, 91, + 15, 472, 473, 457, 0, 373, 861, 0, 0, 0, + 0, 459, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 99, 100, 0, 0, - 0, 0, 0, 0, 0, 535, 102, 103, 104, 105, - 0, 536, 106, 537, 107, 0, 0, 108, 0, 538, - 0, 539, 109, 0, 0, 1, 110, 0, 0, 111, - 540, 541, 0, 0, 0, 112, 0, 113, 0, 114, - 115, 0, 0, 0, 0, 0, 0, 542, 116, 0, - 0, 117, 543, 643, 119, 545, 190, 301, 0, 120, - 546, 27, 121, 0, 547, 548, 0, 0, 106, 0, - 107, 1, 0, 108, 0, 95, 96, 0, 109, 0, - 0, 0, 97, 98, 0, 111, 0, 0, 0, 0, - 0, 112, 0, 113, 0, 0, 0, 0, 99, 100, - 0, 0, 0, 0, 116, 0, 0, 302, 102, 103, - 104, 105, 2, 0, 106, 0, 107, 381, 0, 108, - 0, 0, 3, 0, 109, 0, 0, 0, 110, 4, - 0, 111, 0, 0, 46, 85, 0, 112, 0, 113, - 0, 114, 115, 6, 0, 8, 9, 10, 0, 0, - 116, 11, 12, 117, 118, 13, 119, 0, 0, 14, - 0, 120, 0, 0, 121, 15, 92, 93, 94, 0, - 631, 0, 0, 0, 0, 0, 0, 106, 0, 107, - 0, 1, 108, 47, 0, 95, 96, 109, 0, 48, - 0, 0, 97, 98, 111, 0, 0, 0, 0, 0, - 112, 49, 113, 0, 0, 0, 0, 0, 99, 100, - 0, 50, 0, 116, 0, 0, 0, 101, 102, 103, - 104, 105, 1, 217, 106, 0, 107, 507, 0, 108, - 0, 0, 0, 0, 109, 0, 0, 0, 110, 0, - 0, 111, 92, 0, 94, 0, 0, 112, 204, 113, - 0, 114, 115, 0, 0, 0, 0, 1, 27, 0, - 116, 95, 96, 117, 118, 106, 119, 107, 97, 98, - 108, 120, 0, 0, 121, 109, 0, 0, 0, 0, - 0, 0, 111, 0, 99, 100, 0, 0, 112, 0, - 113, 0, 0, 205, 102, 103, 104, 105, 0, 0, - 106, 116, 107, 0, 0, 108, 0, 0, 0, 0, - 109, 190, 0, 437, 110, 0, 0, 111, 0, 0, - 0, 0, 0, 112, 0, 113, 1, 114, 115, 0, - 95, 96, 0, 0, 0, 0, 116, 97, 98, 117, - 118, 0, 119, 0, 0, 0, 0, 120, 0, 0, - 121, 0, 0, 99, 100, 0, 0, 0, 0, 0, - 0, 0, 191, 102, 103, 104, 105, 0, 0, 106, - 0, 107, 0, 0, 108, 0, 0, 0, 0, 109, - 190, 329, 0, 110, 0, 0, 111, 0, 0, 0, - 0, 0, 112, 0, 113, 1, 114, 115, 0, 95, - 96, 0, 0, 0, 0, 116, 97, 98, 117, 118, - 0, 119, 789, 0, 0, 0, 120, 0, 0, 121, - 0, 0, 99, 100, 0, 0, 0, 0, 0, 0, - 0, 191, 102, 103, 104, 105, 0, 0, 106, 0, - 107, 0, 0, 108, 0, 0, 0, 0, 109, 92, - 0, 94, 110, 0, 0, 111, 0, 0, 0, 0, - 0, 112, 0, 113, 1, 114, 115, 0, 95, 96, - 0, 0, 0, 0, 116, 97, 98, 117, 118, 0, - 119, 0, 0, 0, 0, 120, 0, 0, 121, 0, - 0, 99, 100, 0, 0, 0, 0, 0, 0, 0, - 205, 102, 103, 104, 105, 0, 0, 106, 0, 107, - 0, 0, 108, 0, 0, 0, 0, 109, 190, 0, - 437, 110, 0, 0, 111, 0, 0, 0, 0, 0, - 112, 0, 113, 1, 114, 115, 0, 95, 96, 0, - 0, 0, 0, 116, 97, 98, 117, 118, 0, 119, - 0, 0, 0, 0, 120, 0, 0, 121, 0, 0, - 99, 100, 0, 0, 0, 0, 0, 0, 0, 191, - 102, 103, 104, 105, 0, 0, 106, 0, 107, 0, - 0, 108, 0, 0, 0, 0, 109, 190, 0, 0, - 110, 0, 350, 111, 0, 0, 0, 0, 0, 112, - 0, 113, 1, 114, 115, 0, 95, 96, 0, 0, - 0, 0, 116, 97, 98, 117, 118, 0, 119, 0, - 0, 0, 0, 120, 0, 0, 121, 0, 0, 99, - 100, 0, 0, 0, 0, 0, 0, 0, 191, 102, - 103, 104, 105, 0, 0, 106, 0, 107, 0, 0, - 108, 0, 0, 0, 0, 109, 190, 0, 454, 110, - 0, 0, 111, 0, 0, 0, 0, 0, 112, 0, - 113, 1, 114, 115, 0, 95, 96, 0, 0, 0, - 0, 116, 97, 98, 117, 118, 0, 119, 0, 0, - 0, 0, 120, 0, 0, 121, 0, 0, 99, 100, - 0, 0, 0, 0, 0, 0, 0, 191, 102, 103, - 104, 105, 0, 0, 106, 0, 107, 0, 0, 108, - 0, 0, 0, 0, 109, 190, 0, 0, 110, 0, - 468, 111, 0, 0, 0, 0, 0, 112, 0, 113, - 1, 114, 115, 0, 95, 96, 0, 0, 0, 0, - 116, 97, 98, 117, 118, 0, 119, 0, 0, 0, - 0, 120, 0, 0, 121, 0, 0, 99, 100, 0, - 0, 0, 0, 0, 0, 0, 191, 102, 103, 104, - 105, 0, 0, 106, 0, 107, 0, 0, 108, 0, - 0, 0, 0, 109, 190, 0, 0, 110, 0, 0, - 111, 0, 647, 0, 0, 0, 112, 0, 113, 1, - 114, 115, 0, 95, 96, 0, 0, 0, 0, 116, - 97, 98, 117, 118, 0, 119, 0, 0, 0, 0, - 120, 0, 0, 121, 0, 0, 99, 100, 0, 0, - 0, 0, 0, 0, 0, 191, 102, 103, 104, 105, - 0, 0, 106, 0, 107, 0, 0, 108, 0, 0, - 0, 0, 109, 190, 0, 0, 110, 0, 0, 111, - 0, 0, 0, 0, 0, 112, 0, 113, 1, 114, - 115, 0, 95, 96, 0, 0, 0, 0, 116, 97, - 98, 117, 118, 0, 119, 0, 0, 0, 0, 120, - 0, 0, 121, 0, 0, 99, 100, 0, 0, 0, - 0, 0, 0, 0, 191, 102, 103, 104, 105, 0, - 0, 106, 0, 107, 0, 0, 108, 0, 0, 0, - 0, 109, 92, 0, 0, 110, 0, 0, 111, 0, - 0, 0, 0, 0, 112, 0, 113, 1, 114, 115, - 0, 95, 96, 0, 0, 0, 0, 116, 97, 98, - 117, 118, 0, 119, 0, 0, 0, 0, 120, 0, - 0, 121, 0, 0, 99, 100, 0, 0, 0, 0, - 0, 0, 0, 205, 102, 103, 104, 105, 0, 0, - 106, 532, 107, 0, 0, 108, 0, 0, 0, 0, - 109, 0, 0, 0, 110, 0, 1, 111, 0, 0, - 0, 0, 0, 112, 0, 113, 0, 114, 115, 0, - 0, 0, 0, 0, 0, 0, 116, 0, 0, 117, - 118, 0, 119, 99, 100, 0, 0, 120, 0, 0, - 121, 0, 205, 102, 103, 104, 105, 0, 0, 106, - 532, 107, 0, 0, 108, 0, 0, 0, 0, 109, - 0, 0, 0, 110, 0, 1, 111, 0, 0, 0, - 0, 0, 112, 0, 113, 0, 114, 115, 0, 0, - 0, 0, 0, 0, 0, 116, 0, 0, 117, 0, - 0, 119, 99, 100, 0, 0, 120, 0, 381, 121, - 0, 205, 102, 103, 104, 105, 0, 0, 106, 0, - 107, 532, 820, 108, 0, 0, 0, 0, 109, 0, - 0, 0, 110, 0, 0, 111, 1, 0, 0, 0, - 0, 112, 0, 113, 0, 114, 115, 0, 0, 0, - 0, 0, 0, 0, 116, 0, 0, 117, 0, 0, - 119, 0, 0, 0, 0, 120, 0, 0, 121, 0, - 0, 0, 205, 102, 103, 104, 105, 0, 0, 106, - 532, 107, 0, 0, 108, 0, 0, 0, 0, 109, - 0, 0, 0, 110, 0, 1, 111, 0, 0, 0, - 0, 0, 112, 0, 113, 0, 114, 115, 0, 0, - 0, 0, 0, 0, 0, 116, 0, 0, 117, 0, - 0, 119, 0, 0, 0, 0, 120, 0, 381, 121, - 0, 205, 102, 103, 104, 105, 754, 0, 106, 0, - 107, 0, 0, 108, 0, 0, 0, 0, 109, 0, - 1, 0, 110, 0, 0, 111, 0, 0, 0, 0, - 0, 112, 0, 113, 0, 114, 115, 0, 0, 437, - 495, 0, 0, 0, 116, 496, 0, 117, 0, 0, - 119, 0, 1, 0, 0, 120, 27, 381, 121, 0, - 0, 2, 0, 106, 0, 107, 437, -135, 108, 0, - 0, 3, 496, 109, 0, 0, 0, 0, 4, 1, - 111, 0, 0, 0, 0, 0, 112, 0, 113, 0, - 0, 0, 6, 2, 8, 9, 10, 0, 0, 116, - 11, 12, 0, 3, 13, 0, 0, 0, 14, 0, - 4, 0, 437, 522, 15, 0, 0, 0, 496, 0, - 2, 0, 0, 0, 6, 1, 8, 9, 10, 0, - 3, 0, 497, 12, 0, 0, 13, 4, 0, 0, - 14, 0, 0, 0, 437, 615, 15, 0, 0, 0, - 496, 6, 0, 8, 9, 10, 0, 1, 0, 497, - 12, 0, 0, 13, 0, 0, 2, 14, 0, 0, - 0, 437, -136, 15, 0, 0, 3, 496, 0, 0, - 0, 0, 0, 4, 1, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 6, 2, 8, - 9, 10, 0, 0, 0, 497, 12, 0, 3, 13, - 0, 0, 0, 14, 0, 4, 0, 437, 632, 15, - 0, 0, 0, 496, 0, 2, 0, 0, 0, 6, - 1, 8, 9, 10, 0, 3, 0, 497, 12, 0, - 0, 13, 4, 0, 0, 14, 0, 0, 0, 0, - 279, 15, 0, 0, 0, 0, 6, 0, 8, 9, - 10, 0, 1, 0, 497, 12, 0, 0, 13, 0, - 0, 2, 14, 0, 0, 0, 0, 408, 15, 0, - 0, 3, 0, 0, 0, 0, 0, 0, 4, 1, + 0, 0, 0, 0, 0, 69, 70, 0, 0, 0, + 0, 0, 0, 0, 460, 72, 73, 74, 75, 2, + 461, 76, 462, 77, 0, 0, 78, 0, 463, 3, + 464, 79, 0, 0, 0, 80, 4, 0, 81, 465, + 466, 0, 0, 0, 82, 0, 83, 0, 84, 85, + 6, 0, 8, 9, 10, 0, 467, 86, 11, 12, + 87, 468, 469, 89, 470, 0, 14, 0, 90, 471, + 0, 91, 15, 472, 473, 457, 0, 373, 0, 0, + 0, 0, 0, 459, 0, 0, 0, 0, 0, 0, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 6, 2, 8, 9, 10, 0, 0, 422, - 497, 12, 0, 3, 13, 0, 0, 0, 14, 0, - 4, 1, 0, 0, 15, 0, 0, 0, 0, 0, - 2, 0, 0, 0, 6, 0, 8, 9, 10, 0, - 3, 516, 11, 12, 0, 0, 13, 4, 0, 0, - 14, 0, 0, 1, 0, 0, 15, 0, 0, 0, - 0, 6, 2, 8, 9, 10, 0, 0, 0, 11, - 12, 0, 3, 13, 0, 0, 0, 14, 0, 4, - 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 69, 70, 0, + 0, 0, 0, 0, 0, 0, 460, 72, 73, 74, + 75, 0, 461, 76, 462, 77, 0, 0, 78, 0, + 463, 0, 464, 79, 0, 0, 0, 80, 0, 0, + 81, 465, 466, 0, 0, 0, 82, 0, 83, 0, + 84, 85, 0, 0, 0, 0, 0, 0, 467, 86, + 0, 0, 87, 468, 570, 89, 470, 143, 244, 0, + 90, 471, 0, 91, 0, 472, 473, 0, 0, 0, + 0, 0, 1, 0, 0, 0, 65, 66, 0, 0, + 0, 0, 0, 67, 68, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 69, + 70, 0, 0, 0, 0, 0, 0, 0, 245, 72, + 73, 74, 75, 2, 0, 76, 0, 77, 0, 0, + 78, 0, 0, 3, 0, 79, 0, 0, 0, 80, + 4, 0, 81, 0, 0, 531, 237, 0, 82, 0, + 83, 0, 84, 85, 6, 0, 8, 9, 10, 0, + 0, 86, 11, 12, 87, 88, 13, 89, 0, 0, + 14, 0, 90, 0, 0, 91, 15, 62, 63, 64, + 0, 28, 0, 0, 0, 0, 0, 0, 76, 0, + 77, 0, 1, 78, 49, 0, 65, 66, 79, 0, + 50, 0, 0, 67, 68, 81, 0, 0, 0, 0, + 0, 82, 51, 83, 0, 0, 0, 0, 0, 69, + 70, 0, 52, 0, 86, 0, 0, 0, 71, 72, + 73, 74, 75, 1, 170, 76, 0, 77, 633, 0, + 78, 0, 0, 0, 0, 79, 0, 0, 0, 80, + 0, 0, 81, 62, 0, 64, 0, 0, 82, 157, + 83, 0, 84, 85, 0, 0, 0, 0, 1, 28, + 0, 86, 65, 66, 87, 88, 76, 89, 77, 67, + 68, 78, 90, 0, 0, 91, 79, 0, 0, 0, + 0, 0, 0, 81, 0, 69, 70, 0, 0, 82, + 0, 83, 0, 0, 158, 72, 73, 74, 75, 0, + 0, 76, 86, 77, 0, 0, 78, 0, 0, 0, + 0, 79, 143, 0, 373, 80, 0, 0, 81, 0, + 0, 0, 0, 0, 82, 0, 83, 1, 84, 85, + 0, 65, 66, 0, 0, 0, 0, 86, 67, 68, + 87, 88, 0, 89, 0, 0, 0, 0, 90, 0, + 0, 91, 0, 0, 69, 70, 0, 0, 0, 0, + 0, 0, 0, 144, 72, 73, 74, 75, 0, 0, + 76, 0, 77, 0, 0, 78, 0, 0, 0, 0, + 79, 143, 272, 0, 80, 0, 0, 81, 0, 0, + 0, 0, 0, 82, 0, 83, 1, 84, 85, 0, + 65, 66, 0, 0, 0, 0, 86, 67, 68, 87, + 88, 0, 89, 762, 0, 0, 0, 90, 0, 0, + 91, 0, 0, 69, 70, 0, 0, 0, 0, 0, + 0, 0, 144, 72, 73, 74, 75, 0, 0, 76, + 0, 77, 0, 0, 78, 0, 0, 0, 0, 79, + 62, 0, 64, 80, 0, 0, 81, 0, 0, 0, + 0, 0, 82, 0, 83, 1, 84, 85, 0, 65, + 66, 0, 0, 0, 0, 86, 67, 68, 87, 88, + 0, 89, 0, 0, 0, 0, 90, 0, 0, 91, + 0, 0, 69, 70, 0, 0, 0, 0, 0, 0, + 0, 158, 72, 73, 74, 75, 0, 0, 76, 0, + 77, 0, 0, 78, 0, 0, 0, 0, 79, 143, + 0, 373, 80, 0, 0, 81, 0, 0, 0, 0, + 0, 82, 0, 83, 1, 84, 85, 0, 65, 66, + 0, 0, 0, 0, 86, 67, 68, 87, 88, 0, + 89, 0, 0, 0, 0, 90, 0, 0, 91, 0, + 0, 69, 70, 0, 0, 0, 0, 0, 0, 0, + 144, 72, 73, 74, 75, 0, 0, 76, 0, 77, + 0, 0, 78, 0, 0, 0, 0, 79, 143, 0, + 0, 80, 0, 294, 81, 0, 0, 0, 0, 0, + 82, 0, 83, 1, 84, 85, 0, 65, 66, 0, + 0, 0, 0, 86, 67, 68, 87, 88, 0, 89, + 0, 0, 0, 0, 90, 0, 0, 91, 0, 0, + 69, 70, 0, 0, 0, 0, 0, 0, 0, 144, + 72, 73, 74, 75, 0, 0, 76, 0, 77, 0, + 0, 78, 0, 0, 0, 0, 79, 143, 0, 389, + 80, 0, 0, 81, 0, 0, 0, 0, 0, 82, + 0, 83, 1, 84, 85, 0, 65, 66, 0, 0, + 0, 0, 86, 67, 68, 87, 88, 0, 89, 0, + 0, 0, 0, 90, 0, 0, 91, 0, 0, 69, + 70, 0, 0, 0, 0, 0, 0, 0, 144, 72, + 73, 74, 75, 0, 0, 76, 0, 77, 0, 0, + 78, 0, 0, 0, 0, 79, 143, 0, 0, 80, + 0, 403, 81, 0, 0, 0, 0, 0, 82, 0, + 83, 1, 84, 85, 0, 65, 66, 0, 0, 0, + 0, 86, 67, 68, 87, 88, 0, 89, 0, 0, + 0, 0, 90, 0, 0, 91, 0, 0, 69, 70, + 0, 0, 0, 0, 0, 0, 0, 144, 72, 73, + 74, 75, 0, 0, 76, 0, 77, 0, 0, 78, + 0, 0, 0, 0, 79, 143, 0, 0, 80, 0, + 0, 81, 0, 574, 0, 0, 0, 82, 0, 83, + 1, 84, 85, 0, 65, 66, 0, 0, 0, 0, + 86, 67, 68, 87, 88, 0, 89, 0, 0, 0, + 0, 90, 0, 0, 91, 0, 0, 69, 70, 0, + 0, 0, 0, 0, 0, 0, 144, 72, 73, 74, + 75, 0, 0, 76, 0, 77, 0, 0, 78, 0, + 0, 0, 0, 79, 143, 0, 0, 80, 0, 0, + 81, 0, 0, 0, 0, 0, 82, 0, 83, 1, + 84, 85, 0, 65, 66, 0, 0, 0, 0, 86, + 67, 68, 87, 88, 0, 89, 0, 0, 0, 0, + 90, 0, 0, 91, 0, 0, 69, 70, 0, 0, + 0, 0, 0, 0, 0, 144, 72, 73, 74, 75, + 0, 0, 76, 0, 77, 0, 0, 78, 0, 0, + 0, 0, 79, 62, 0, 0, 80, 0, 0, 81, + 0, 0, 0, 0, 0, 82, 0, 83, 1, 84, + 85, 0, 65, 66, 0, 0, 0, 0, 86, 67, + 68, 87, 88, 0, 89, 0, 0, 0, 0, 90, + 0, 0, 91, 0, 0, 69, 70, 0, 0, 0, + 0, 0, 0, 0, 158, 72, 73, 74, 75, 0, + 0, 76, 457, 77, 0, 0, 78, 0, 0, 0, + 0, 79, 0, 0, 0, 80, 0, 1, 81, 0, + 0, 0, 0, 0, 82, 0, 83, 0, 84, 85, + 0, 0, 0, 0, 0, 0, 0, 86, 0, 0, + 87, 88, 0, 89, 69, 70, 0, 0, 90, 0, + 0, 91, 0, 158, 72, 73, 74, 75, 0, 0, + 76, 457, 77, 0, 0, 78, 0, 0, 0, 0, + 79, 0, 0, 0, 80, 0, 1, 81, 0, 0, + 0, 0, 0, 82, 0, 83, 0, 84, 85, 0, + 0, 0, 0, 0, 0, 0, 86, 0, 0, 87, + 0, 0, 89, 69, 70, 0, 0, 90, 0, 325, + 91, 0, 158, 72, 73, 74, 75, 0, 0, 76, + 0, 77, 457, 785, 78, 0, 0, 0, 0, 79, + 0, 0, 0, 80, 0, 0, 81, 1, 0, 0, + 0, 0, 82, 0, 83, 0, 84, 85, 0, 0, + 0, 0, 0, 0, 0, 86, 0, 0, 87, 0, + 0, 89, 0, 0, 0, 0, 90, 0, 0, 91, + 0, 0, 0, 158, 72, 73, 74, 75, 0, 0, + 76, 457, 77, 0, 0, 78, 0, 0, 0, 0, + 79, 0, 0, 0, 80, 0, 1, 81, 0, 0, + 0, 0, 0, 82, 0, 83, 0, 84, 85, 0, + 0, 0, 0, 0, 0, 0, 86, 0, 0, 87, + 0, 0, 89, 0, 0, 0, 0, 90, 0, 325, + 91, 0, 158, 72, 73, 74, 75, 800, 0, 76, + 0, 77, 0, 0, 78, 0, 0, 0, 0, 79, + 0, 1, 0, 80, 0, 0, 81, 0, 0, 0, + 0, 0, 82, 0, 83, 0, 84, 85, 0, 0, + 373, -137, 0, 0, 0, 86, 599, 0, 87, 0, + 0, 89, 0, 1, 0, 0, 90, 28, 325, 91, + 0, 0, 2, 0, 76, 0, 77, 373, 647, 78, + 0, 0, 3, 599, 79, 0, 0, 0, 0, 4, + 1, 81, 0, 0, 0, 0, 0, 82, 0, 83, 0, 0, 0, 6, 2, 8, 9, 10, 0, 0, - 0, 11, 12, 1, 3, 13, 0, 0, 0, 14, - 0, 4, 0, 0, 1, 15, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 6, 0, 8, 9, 10, - 0, 0, 0, 11, 12, 0, 0, 13, 0, 27, - 0, 14, 0, 0, 2, 0, 106, 15, 107, 0, - 0, 108, 0, 0, 3, 2, 109, 0, 0, 0, - 0, 4, 0, 111, 0, 3, 0, 0, 0, 112, - 0, 113, 4, 0, 0, 6, 0, 8, 9, 10, - 0, 0, 116, 11, 12, 0, 6, 13, 8, 9, - 10, 14, 0, 0, 11, 12, 0, 15, 13, 0, - -68, 0, 14, 229, 0, 0, 230, 0, 15, 231, - 0, 0, 0, -68, -68, 217, 0, 0, 0, 0, - 0, 0, 0, 0, -395, 0, 0, 0, 0, 0, - -395, -395, -395, -395, -395, -395, -395, -395, -395, -395, - -395, 0, 0, 0, 0, 0, 0, 0, 0, 0, - -68 + 86, 11, 12, 0, 3, 13, 0, 0, 0, 14, + 0, 4, 0, 373, 697, 15, 0, 0, 0, 599, + 0, 2, 0, 0, 0, 6, 1, 8, 9, 10, + 0, 3, 0, 600, 12, 0, 0, 13, 4, 0, + 0, 14, 0, 0, 0, 373, -138, 15, 0, 0, + 0, 599, 6, 0, 8, 9, 10, 0, 1, 0, + 600, 12, 0, 0, 13, 0, 0, 2, 14, 0, + 0, 0, 373, 734, 15, 0, 0, 3, 599, 0, + 0, 0, 0, 0, 4, 1, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 6, 2, + 8, 9, 10, 0, 0, 539, 600, 12, 0, 3, + 13, 0, 0, 0, 14, 0, 4, 1, 0, 0, + 15, 0, 0, 0, 0, 0, 2, 0, 0, 0, + 6, 0, 8, 9, 10, 0, 3, 552, 600, 12, + 0, 0, 13, 4, 0, 0, 14, 0, 0, 1, + 0, 0, 15, 0, 0, 0, 0, 6, 2, 8, + 9, 10, 0, 0, 642, 600, 12, 0, 3, 13, + 0, 0, 0, 14, 0, 4, 1, 0, 0, 15, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, + 2, 8, 9, 10, 0, 0, 0, 11, 12, 0, + 3, 13, 0, 0, 0, 14, 0, 4, 0, 0, + 0, 15, 0, 0, 0, 0, 0, 2, 1, 0, + 0, 6, 0, 8, 9, 10, 0, 3, 0, 11, + 12, 0, 0, 13, 4, 0, 0, 14, 0, 0, + 0, 0, 0, 15, 0, 0, 0, 0, 6, 0, + 8, 9, 10, 0, 28, 0, 11, 12, 0, 2, + 13, 76, 0, 77, 14, 0, 78, 0, 0, 3, + 15, 79, 48, 237, 0, 0, 4, 0, 81, 0, + 0, 0, 0, 0, 82, 0, 83, 0, 0, 0, + 6, 0, 8, 9, 10, 0, 0, 86, 11, 12, + 0, 0, 13, 0, 0, 0, 14, 0, 28, 48, + 237, 0, 15, 0, 0, 76, 0, 77, 0, 0, + 78, 49, 0, 0, 0, 79, 0, 50, 0, 0, + 0, 0, 81, 0, 0, 0, 0, 0, 82, 51, + 83, 0, 0, 0, 0, 733, 0, 0, 0, 52, + 0, 86, 76, 0, 77, 0, 0, 78, 49, 0, + 0, 0, 79, 0, 50, 633, 0, 0, 0, 81, + 0, 0, 0, 0, 0, 82, 51, 83, 0, 0, + 0, -70, 0, 0, 183, 0, 52, 184, 86, 0, + 185, 0, 0, 0, -70, -70, 170, 0, 0, 0, + 0, 0, 633, 0, 0, -398, 0, 0, 0, 0, + 0, -398, -398, -398, -398, -398, -398, -398, -398, -398, + -398, -398, 0, 0, 0, 0, 0, 0, 0, 0, + 0, -70 }; } @@ -2342,316 +5099,330 @@ private static final short[] yycheck_init() { return new short[] { - 0, 94, 121, 72, 230, 123, 218, 253, 155, 381, - 25, 339, 238, 437, 507, 0, 88, 586, 188, 459, - 92, 670, 551, 23, 429, 94, 652, 645, 690, 401, - 539, 95, 96, 97, 98, 99, 100, 37, 23, 724, - 10, 19, 114, 11, 423, 7, 10, 11, 724, 219, - 54, 6, 37, 10, 11, 54, 18, 7, 19, 620, - 621, 54, 180, 26, 64, 423, 506, 14, 18, 7, - 4, 1, 698, 54, 192, 75, 54, 7, 343, 64, - 18, 98, 23, 17, 47, 85, 54, 179, 25, 751, - 75, 155, 54, 54, 499, 88, 100, 189, 783, 504, - 30, 100, 32, 672, 54, 674, 178, 54, 784, 64, - 88, 41, 282, 185, 69, 7, 54, 6, 190, 498, - 525, 121, 215, 64, 124, 125, 18, 88, 637, 622, - 623, 624, 693, 694, 695, 72, 18, 786, 517, 100, - 802, 103, 72, 280, 523, 217, 215, 77, 78, 79, - 80, 121, 778, 117, 54, 773, 421, 94, 88, 517, - 117, 11, 54, 19, 94, 95, 96, 97, 98, 99, - 100, 171, 54, 18, 18, 64, 19, 3, 19, 20, - 69, 253, 21, 183, 114, 85, 171, 11, 188, 7, - 190, 32, 33, 193, 18, 259, 260, 261, 54, 464, - 18, 762, 28, 696, 54, 190, 471, 87, 280, 54, - 282, 54, 74, 478, 743, 54, 288, 217, 218, 219, - 157, 340, 498, 67, 296, 155, 226, 157, 846, 73, - 54, 3, 604, 7, 164, 328, 54, 766, 100, 3, - 177, 85, 83, 7, 18, 280, 0, 523, 178, 7, - 7, 95, 24, 325, 18, 185, 54, 427, 428, 328, - 18, 18, 432, 10, 28, 774, 266, 3, 7, 481, - 28, 18, 409, 9, 698, 18, 785, 806, 215, 18, - 54, 281, 282, 283, 10, 215, 423, 217, 24, 28, - 460, 228, 307, 19, 294, 38, 281, 54, 7, 25, - 65, 10, 7, 549, 13, 10, 10, 11, 13, 294, - 19, 241, 77, 243, 244, 245, 246, 247, 248, 249, - 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, - 260, 261, 5, 480, 7, 85, 845, 409, 847, 339, - 340, 765, 4, 7, 274, 18, 276, 9, 278, 82, - 280, 423, 282, 681, 18, 292, 18, 9, 288, 12, - 869, 498, 5, 98, 10, 11, 296, 10, 20, 299, - 307, 24, 107, 303, 409, 447, 448, 307, 450, 7, - 517, 7, 10, 383, 10, 13, 523, 13, 423, 54, - 18, 328, 485, 7, 10, 325, 10, 3, 328, 645, - 337, 81, 402, 19, 18, 342, 12, 337, 527, 528, - 54, 480, 549, 678, 7, 415, 485, 10, 418, 419, - 13, 493, 7, 54, 424, 18, 19, 427, 428, 429, - 415, 125, 432, 18, 419, 7, 436, 437, 510, 424, - 3, 49, 50, 9, 429, 517, 18, 10, 221, 222, - 450, 436, 45, 46, 20, 54, 10, 230, 231, 13, - 460, 234, 7, 498, 4, 238, 239, 0, 4, 9, - 400, 11, 684, 18, 5, 11, 413, 45, 46, 409, - 11, 481, 517, 413, 7, 18, 4, 10, 523, 54, - 13, 9, 4, 423, 4, 18, 19, 9, 4, 499, - 6, 11, 4, 9, 504, 11, 4, 9, 508, 11, - 510, 9, 100, 6, 499, 103, 4, 447, 448, 504, - 450, 9, 22, 23, 4, 525, 59, 527, 528, 9, - 45, 46, 226, 4, 64, 607, 69, 4, 9, 69, - 525, 19, 9, 76, 809, 810, 10, 11, 485, 82, - 480, 551, 10, 11, 87, 485, 486, 90, 91, 92, - 93, 94, 11, 493, 683, 98, 99, 18, 498, 102, - 5, 344, 266, 106, 249, 250, 251, 252, 804, 112, - 510, 9, 808, 11, 521, 6, 756, 517, 9, 74, - 855, 856, 67, 523, 69, 70, 596, 6, 716, 100, - 9, 9, 103, 11, 604, 45, 46, 607, 59, 51, - 52, 53, 14, 15, 16, 687, 11, 12, 69, 549, - 254, 255, 256, 5, 624, 76, 796, 247, 248, 115, - 116, 82, 118, 119, 120, 754, 9, 74, 11, 90, - 3, 92, 93, 94, 48, 339, 764, 98, 99, 3, - 9, 102, 11, 21, 9, 106, 11, 657, 3, 28, - 5, 112, 9, 157, 11, 34, 35, 36, 37, 38, - 39, 40, 41, 42, 43, 44, 676, 607, 797, 276, - 17, 278, 801, 683, 684, 27, 257, 258, 625, 383, - 690, 4, 107, 98, 74, 625, 5, 470, 698, 792, - 473, 9, 72, 28, 4, 308, 9, 310, 402, 34, - 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, - 24, 6, 652, 792, 94, 95, 96, 97, 98, 99, - 100, 3, 18, 8, 428, 19, 10, 10, 432, 54, - 740, 5, 54, 743, 5, 4, 865, 54, 54, 67, - 822, 751, 54, 8, 754, 8, 756, 687, 10, 253, - 690, 54, 54, 13, 8, 765, 766, 54, 698, 67, - 12, 54, 54, 10, 28, 54, 17, 6, 54, 779, - 8, 5, 9, 54, 3, 155, 280, 5, 54, 6, - 3, 31, 864, 31, 779, 3, 796, 797, 3, 3, - 3, 801, 802, 9, 11, 299, 806, 8, 54, 303, - 72, 54, 415, 307, 508, 54, 419, 4, 54, 437, - 3, 751, 54, 5, 105, 755, 429, 11, 6, 54, - 11, 11, 94, 95, 96, 97, 98, 99, 100, 11, - 11, 11, 5, 337, 113, 215, 3, 3, 778, 3, - 12, 11, 4, 4, 9, 792, 4, 437, 4, 9, - 24, 77, 792, 65, 11, 865, 31, 12, 12, 12, - 69, 241, 802, 243, 244, 245, 246, 247, 248, 249, - 250, 251, 252, 11, 254, 255, 256, 257, 258, 259, - 260, 261, 822, 155, 497, 11, 499, 4, 4, 11, - 4, 504, 596, 72, 44, 103, 11, 82, 511, 214, - 604, 11, 54, 11, 11, 409, 4, 11, 223, 413, - 11, 539, 525, 64, 229, 698, 59, 283, 177, 423, - 624, 687, 237, 551, 864, 240, 419, 688, 427, 418, - 597, 418, 525, 546, 667, 751, 613, 802, 796, 549, - 517, 672, 409, 215, 775, 674, 674, 727, 328, 539, - 846, 778, 452, 657, 340, 243, 450, 436, 245, 437, - 310, 551, -1, 241, 437, -1, 246, 18, 19, 241, - -1, 243, 244, 245, 246, 247, 248, 249, 250, 251, - 252, -1, 254, 255, 256, 257, 258, 259, 260, 261, - -1, -1, -1, 308, 498, 310, -1, -1, -1, 244, - 613, -1, -1, 54, -1, -1, 510, -1, 323, 637, - 61, -1, 63, 517, 437, 66, 67, 645, -1, 523, - 71, 804, 73, 338, -1, 808, -1, 78, -1, -1, + 0, 41, 26, 64, 373, 476, 172, 572, 93, 325, + 464, 207, 125, 579, 286, 282, 26, 41, 606, 23, + 438, 10, 559, 23, 64, 513, 633, 184, 676, 676, + 41, 91, 10, 11, 553, 192, 7, 766, 38, 54, + 64, 431, 431, 19, 21, 10, 11, 18, 54, 251, + 553, 253, 7, 64, 65, 66, 67, 68, 69, 70, + 145, 19, 601, 18, 793, 602, 14, 26, 7, 65, + 66, 67, 68, 69, 70, 173, 7, 54, 54, 18, + 54, 14, 11, 54, 474, 100, 171, 18, 47, 18, + 7, 91, 98, 630, 94, 95, 54, 18, 601, 54, + 18, 18, 750, 127, 751, 834, 54, 168, 54, 648, + 564, 11, 88, 650, 125, 54, 11, 724, 725, 726, + 608, 54, 610, 54, 643, 54, 100, 399, 168, 125, + 88, 135, 121, 54, 406, 135, 7, 54, 87, 117, + 643, 413, 100, 143, 168, 648, 146, 18, 103, 67, + 540, 540, 117, 3, 54, 73, 5, 168, 182, 54, + 18, 54, 11, 553, 553, 772, 6, 85, 19, 20, + 170, 759, 172, 173, 7, 740, 6, 95, 28, 745, + 180, 32, 33, 54, 195, 18, 197, 198, 199, 200, + 201, 202, 203, 204, 205, 206, 54, 208, 209, 210, + 211, 212, 213, 214, 215, 0, 19, 19, 774, 54, + 271, 601, 601, 0, 632, 54, 532, 213, 214, 215, + 220, 54, 74, 283, 64, 5, 250, 227, 82, 69, + 10, 271, 83, 65, 64, 18, 23, 237, 709, 69, + 250, 54, 54, 88, 62, 77, 85, 271, 100, 95, + 416, 38, 817, 643, 643, 3, 280, 85, 648, 648, + 271, 285, 10, 4, 74, 289, 84, 365, 9, 471, + 368, 175, 176, 3, 7, 18, 59, 18, 474, 551, + 184, 185, 282, 283, 188, 18, 69, 741, 192, 193, + 100, 722, 723, 76, 24, 28, 39, 395, 752, 82, + 64, 4, 415, 7, 4, 69, 508, 90, 11, 92, + 93, 94, 3, 10, 18, 98, 99, 17, 9, 102, + 12, 10, 19, 106, 28, 143, 7, 327, 25, 112, + 19, 355, 24, 24, 180, 433, 98, 18, 769, 770, + 771, 812, 614, 18, 4, 107, 54, 549, 135, 349, + 617, 11, 170, 5, 357, 7, 143, 559, 7, 420, + 360, 10, 816, 366, 818, 365, 18, 838, 368, 18, + 686, 54, 372, 373, 220, 415, 572, 808, 3, 581, + 420, 3, 7, 287, 59, 385, 7, 54, 7, 207, + 12, 451, 452, 18, 69, 395, 420, 18, 600, 18, + 602, 76, 9, 28, 415, 774, 51, 52, 53, 420, + 7, 865, 54, 20, 9, 90, 416, 92, 93, 94, + 3, 18, 240, 98, 99, 20, 10, 102, 630, 13, + 454, 106, 432, 433, 434, 637, 282, 112, 6, 18, + 227, 9, 811, 7, 444, 3, 10, 5, 650, 13, + 268, 451, 452, 100, 18, 19, 103, 48, 7, 557, + 558, 10, 1, 9, 13, 11, 5, 4, 7, 18, + 19, 7, 9, 675, 10, 54, 476, 13, 9, 21, + 11, 327, 61, 19, 63, 115, 116, 66, 118, 119, + 120, 30, 71, 695, 33, 6, 45, 46, 9, 78, + 7, 405, 41, 10, 408, 84, 13, 86, 508, 27, + 712, 18, 4, 9, 6, 11, 4, 9, 97, 11, + 544, 9, 368, 523, 4, 64, 65, 66, 67, 68, + 69, 70, 111, 533, 4, 4, 10, 11, 356, 9, + 9, 743, 11, 11, 362, 84, 4, 4, 548, 549, + 4, 9, 9, 11, 554, 9, 17, 557, 558, 559, + 100, 59, 349, 103, 54, 383, 384, 385, 579, 841, + 842, 69, 19, 7, 7, 81, 10, 10, 76, 13, + 13, 10, 11, 668, 584, 372, 125, 753, 127, 9, + 4, 11, 90, 24, 92, 93, 94, 6, 870, 871, + 98, 99, 602, 3, 102, 4, 4, 9, 106, 11, + 9, 9, 612, 431, 112, 433, 203, 204, 205, 206, + 822, 439, 138, 18, 140, 141, 10, 11, 446, 168, + 630, 170, 19, 127, 634, 8, 636, 14, 15, 16, + 10, 208, 209, 210, 9, 432, 11, 22, 23, 427, + 650, 429, 49, 50, 45, 46, 195, 444, 197, 198, + 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, + 209, 210, 211, 212, 213, 214, 215, 523, 10, 836, + 54, 499, 500, 840, 10, 11, 686, 533, 11, 689, + 229, 230, 231, 232, 10, 11, 45, 46, 45, 46, + 6, 240, 5, 727, 802, 765, 706, 246, 74, 709, + 5, 250, 558, 207, 11, 12, 201, 202, 211, 212, + 74, 508, 540, 3, 54, 810, 726, 54, 4, 268, + 828, 67, 271, 54, 745, 553, 8, 8, 584, 54, + 800, 280, 10, 54, 13, 67, 746, 54, 8, 54, + 12, 28, 246, 753, 54, 41, 250, 107, 98, 9, + 74, 5, 549, 9, 825, 765, 766, 554, 8, 829, + 54, 54, 559, 833, 774, 5, 5, 9, 64, 65, + 66, 67, 68, 69, 70, 825, 280, 54, 634, 849, + 5, 3, 31, 793, 3, 3, 3, 3, 11, 9, + 800, 825, 802, 342, 8, 54, 54, 54, 626, 10, + 6, 811, 812, 54, 825, 602, 54, 356, 636, 17, + 11, 11, 113, 362, 11, 643, 11, 5, 828, 829, + 11, 11, 6, 833, 834, 5, 3, 6, 838, 125, + 686, 3, 31, 630, 383, 384, 385, 12, 11, 849, + 9, 54, 4, 4, 4, 3, 9, 4, 24, 54, + 65, 3, 105, 650, 4, 4, 12, 12, 54, 12, + 774, 689, 5, 11, 3, 77, 415, 11, 4, 167, + 726, 420, 168, 4, 11, 69, 425, 11, 427, 177, + 429, 11, 431, 72, 433, 183, 11, 4, 54, 31, + 439, 11, 11, 191, 103, 11, 194, 446, 11, 195, + 449, 197, 198, 199, 200, 201, 202, 203, 204, 205, + 206, 46, 208, 209, 210, 211, 212, 213, 214, 215, + 61, 18, 836, 373, 434, 474, 840, 431, 756, 355, + 5, 6, 135, 549, 234, 756, 11, 548, 373, 757, + 548, 650, 557, 18, 524, 449, 802, 596, 793, 746, + 499, 500, 834, 251, 828, 253, 695, 54, 540, 787, + 474, 643, 742, 608, 61, 817, 63, 610, 266, 66, + 474, 610, 828, 679, 71, 271, 745, 283, 199, 385, + 372, 78, 531, 281, 59, 195, -1, 84, -1, 86, + 197, 540, -1, -1, 69, 544, 198, -1, -1, -1, + 97, 76, 200, 18, 553, -1, -1, 373, -1, -1, + -1, -1, -1, 110, 464, 90, -1, 92, 93, 94, + 848, -1, 373, 98, 99, -1, 476, 102, -1, 464, + 579, 106, -1, -1, -1, -1, 540, 112, -1, 54, + 544, 476, -1, -1, -1, -1, 61, -1, 63, 553, + -1, 66, 601, -1, -1, -1, 71, -1, 0, -1, + -1, -1, -1, 78, -1, -1, -1, -1, 572, 84, + 619, 86, -1, -1, -1, 579, 18, 626, -1, -1, + -1, -1, 97, -1, 382, -1, -1, 636, -1, 373, + -1, 389, -1, -1, 643, 393, 111, 601, 464, 648, + -1, -1, 373, -1, -1, -1, -1, -1, -1, -1, + 476, -1, -1, 464, 564, -1, -1, 59, -1, 415, + -1, -1, 572, 18, 420, 476, -1, 69, -1, 564, + -1, 26, 636, -1, 76, -1, -1, 572, -1, 643, + 689, -1, -1, -1, 648, -1, -1, -1, 90, -1, + 92, 93, 94, -1, -1, -1, 98, 99, -1, 54, + 102, -1, 612, 461, 106, -1, 61, -1, 63, 467, + 112, 66, 470, -1, -1, 473, 71, 612, 727, -1, + 464, -1, -1, 78, -1, 689, -1, -1, -1, 84, + -1, 86, 476, 464, -1, -1, 745, -1, 564, -1, + -1, -1, 97, -1, -1, 476, 572, 756, -1, -1, + -1, -1, -1, 564, -1, -1, -1, 766, -1, 373, + -1, 572, -1, 727, 522, 774, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 373, -1, -1, 787, -1, + -1, 745, -1, -1, 793, -1, 612, -1, -1, -1, + -1, -1, 801, -1, -1, -1, 706, -1, -1, 709, + -1, 612, 766, -1, -1, -1, -1, -1, -1, -1, + -1, 706, -1, -1, 709, 573, 825, -1, 576, 577, + 564, -1, -1, 579, 582, 834, -1, -1, 572, 793, + 740, 741, -1, 564, -1, -1, -1, 801, 596, 848, + -1, 572, 752, -1, -1, 740, 741, -1, -1, -1, + 464, -1, -1, -1, -1, -1, -1, 752, -1, -1, + 54, -1, 476, -1, 774, -1, 464, 61, 612, 63, + 834, -1, 66, -1, -1, -1, -1, 71, 476, 774, + 706, 612, -1, 709, 78, -1, -1, -1, -1, -1, + 84, -1, 86, -1, -1, 706, -1, 655, 709, -1, + -1, 811, 812, 97, -1, -1, 816, 817, 818, -1, + -1, -1, -1, -1, 740, 741, 811, 812, -1, -1, + -1, 816, 817, 818, -1, -1, 752, -1, 838, 740, + 741, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 752, -1, 838, -1, -1, -1, -1, 774, -1, + 564, -1, -1, -1, 712, 865, -1, -1, 572, 0, + -1, -1, 706, 774, -1, 709, 564, -1, -1, -1, + 865, -1, -1, -1, 572, 706, -1, 18, 709, 737, + 738, 739, -1, -1, -1, 811, 812, -1, -1, 745, + 816, 817, 818, -1, -1, -1, 740, 741, 612, -1, + 811, 812, -1, -1, 762, 816, 817, 818, 752, 740, + 741, -1, 838, 6, 612, -1, -1, -1, 59, -1, + -1, 752, -1, -1, -1, 18, -1, 838, 69, -1, + 774, -1, -1, -1, -1, 76, -1, -1, -1, 865, + -1, 82, -1, 774, -1, -1, 87, -1, -1, 90, + 91, 92, 93, 94, 865, -1, -1, 98, 99, 0, + -1, 102, -1, -1, -1, 106, 59, 811, 812, 825, + -1, 112, 816, 817, 818, -1, 69, 18, -1, -1, + 811, 812, -1, 76, -1, 816, 817, 818, -1, -1, + -1, -1, 706, -1, 838, 709, -1, 90, -1, 92, + 93, 94, -1, -1, -1, 98, 99, 838, 706, 102, + -1, 709, -1, 106, -1, -1, -1, -1, 59, 112, + -1, 865, -1, -1, -1, -1, 740, 741, 69, -1, + -1, -1, -1, -1, 865, 76, -1, -1, 752, -1, + -1, 82, 740, 741, -1, -1, -1, -1, -1, 90, + -1, 92, 93, 94, 752, -1, 0, 98, 99, -1, + 774, 102, -1, -1, -1, 106, -1, -1, -1, -1, + -1, 112, 28, -1, 18, -1, 774, -1, 34, 35, + 36, 37, 38, 39, 40, 41, 42, 43, 44, -1, + -1, -1, -1, -1, -1, -1, -1, 811, 812, -1, + -1, -1, 816, 817, 818, -1, -1, -1, -1, -1, + -1, -1, -1, 811, 812, 59, -1, -1, 816, 817, + 818, -1, -1, -1, 838, 69, -1, 3, -1, 5, + 6, -1, 76, -1, -1, 11, -1, -1, -1, -1, + 838, -1, 18, -1, -1, -1, 90, -1, 92, 93, + 94, 865, -1, -1, 98, 99, -1, -1, 102, -1, + -1, -1, 106, -1, -1, -1, -1, 865, 112, 45, + 46, -1, -1, -1, -1, -1, -1, -1, 54, 55, + 56, 57, 58, 59, 60, 61, 62, 63, 64, -1, + 66, -1, 68, 69, 70, 71, -1, -1, -1, 75, + 76, -1, 78, 79, 80, -1, -1, 18, 84, -1, + 86, -1, 88, 89, 90, -1, 92, 93, 94, -1, + 96, 97, 98, 99, 100, 101, 102, 103, 104, -1, + 106, -1, 108, 109, -1, 111, 112, 113, 114, 3, + -1, 5, 6, 54, -1, -1, -1, 11, -1, -1, + 61, -1, 63, -1, 18, 66, 67, -1, -1, -1, + 71, -1, 73, -1, -1, -1, -1, 78, -1, -1, -1, -1, -1, 84, 85, 86, -1, -1, -1, -1, - -1, 654, -1, -1, 95, 549, 97, 637, 676, -1, - 54, 18, 756, -1, -1, 645, 328, 61, -1, 63, - 111, 539, 66, 67, -1, -1, 539, 71, -1, 73, - 698, -1, -1, 551, 78, -1, -1, -1, 551, -1, - 84, 85, 86, -1, -1, -1, 676, 54, -1, -1, - -1, 95, 796, 97, 61, -1, 63, -1, -1, 66, - 480, -1, -1, 607, 71, 485, 110, -1, 698, -1, - 723, 78, 740, 18, 19, 743, 539, 84, -1, 86, - -1, 625, -1, -1, -1, -1, -1, -1, 551, -1, - 97, 446, -1, 746, -1, -1, -1, 765, 766, 454, - -1, 645, -1, 458, 111, 773, 774, 437, 652, 54, - 740, -1, -1, 743, -1, -1, 61, 785, 63, 637, - -1, 66, 67, 776, 637, -1, 71, 645, 73, -1, - -1, -1, 645, 78, -1, 765, 766, -1, 806, 84, - 85, 86, -1, 773, 774, -1, 690, -1, -1, -1, - 95, -1, 97, -1, -1, 785, -1, 437, 676, -1, - -1, 437, -1, 676, -1, -1, 111, -1, 480, -1, - -1, -1, -1, 485, 637, -1, 806, 845, 846, 847, - 698, 536, 645, 18, -1, 698, -1, 542, -1, -1, - 545, -1, -1, 548, -1, -1, -1, -1, 851, -1, - -1, 869, -1, -1, -1, -1, -1, 751, -1, 539, - -1, 755, -1, 676, -1, 845, 846, 847, -1, 54, - -1, 551, 740, -1, -1, 743, 61, 740, 63, -1, - 743, 66, 652, -1, 778, 698, 71, -1, -1, 869, - 595, -1, -1, 78, -1, -1, -1, 765, 766, 84, - -1, 86, 765, 766, -1, 773, 774, -1, 802, 539, - 773, 774, 97, 539, -1, -1, -1, 785, -1, -1, - -1, 551, 785, -1, -1, 551, 111, 740, -1, -1, - 743, -1, -1, -1, -1, -1, -1, -1, 806, -1, - -1, 646, -1, 806, 649, 650, -1, -1, -1, -1, - 655, -1, 765, 766, -1, -1, -1, 637, -1, -1, - 773, 774, 667, -1, -1, 645, -1, -1, -1, -1, - -1, -1, 785, -1, -1, -1, -1, 845, 846, 847, - 54, -1, 845, 846, 847, -1, -1, 61, -1, 63, - 652, -1, 66, 806, -1, -1, 676, 71, 703, -1, - -1, 869, -1, -1, 78, -1, 869, 637, 778, -1, - 84, 637, 86, -1, -1, 645, -1, -1, 698, 645, - -1, -1, 792, 97, -1, -1, -1, -1, -1, -1, - -1, -1, 845, 846, 847, -1, 110, -1, -1, 0, - -1, 746, -1, -1, -1, -1, 676, -1, -1, -1, - 676, -1, -1, -1, -1, -1, 869, 18, -1, -1, - 740, -1, -1, 743, -1, 770, 771, 772, 698, -1, - -1, -1, 698, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 789, 765, 766, -1, -1, -1, - -1, -1, -1, 773, 774, -1, -1, -1, 59, -1, - -1, 0, -1, -1, -1, 785, -1, -1, 69, -1, - 740, -1, -1, 743, 740, 76, 778, 743, -1, 18, - -1, 82, -1, -1, -1, -1, 806, -1, -1, 90, - 792, 92, 93, 94, -1, 765, 766, 98, 99, 765, - 766, 102, -1, 773, 774, 106, -1, 773, 774, -1, - -1, 112, -1, -1, -1, 785, -1, -1, -1, 785, - 59, -1, -1, -1, 0, 845, 846, 847, -1, -1, - 69, 59, -1, -1, -1, -1, 806, 76, -1, -1, - 806, 69, 18, -1, -1, -1, -1, -1, 76, 869, - -1, 90, -1, 92, 93, 94, -1, -1, -1, 98, - 99, -1, 90, 102, 92, 93, 94, 106, -1, -1, - 98, 99, -1, 112, 102, 845, 846, 847, 106, 845, - 846, 847, -1, 59, 112, -1, 3, -1, 5, 6, - -1, -1, -1, 69, 11, -1, -1, -1, -1, 869, - 76, 18, -1, 869, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 90, -1, 92, 93, 94, -1, - -1, -1, 98, 99, -1, -1, 102, -1, 45, 46, - 106, -1, -1, -1, -1, -1, 112, 54, 55, 56, - 57, 58, 59, 60, 61, 62, 63, 64, -1, 66, - -1, 68, 69, 70, 71, -1, -1, -1, 75, 76, - -1, 78, 79, 80, -1, -1, -1, 84, -1, 86, - -1, 88, 89, 90, -1, 92, 93, 94, -1, 96, - 97, 98, 99, 100, 101, 102, 103, 104, -1, 106, - -1, 108, 109, -1, 111, 112, 113, 114, 3, -1, - 5, 6, -1, 54, -1, -1, 11, -1, -1, -1, - 61, -1, 63, 18, 19, 66, -1, -1, -1, -1, - 71, -1, -1, -1, -1, -1, -1, 78, -1, -1, - -1, -1, -1, 84, -1, 86, -1, -1, -1, -1, - 45, 46, -1, -1, -1, -1, 97, -1, -1, 54, - 55, 56, 57, 58, 59, 60, 61, 62, 63, -1, - -1, 66, -1, 68, 69, 70, 71, -1, -1, -1, - 75, 76, -1, 78, 79, 80, -1, -1, 18, 84, - -1, 86, -1, 88, 89, 90, -1, 92, 93, 94, - -1, 96, 97, 98, 99, 100, 101, 102, 103, 104, - -1, 106, -1, 108, 109, -1, 111, 112, 113, 114, - 3, -1, 5, 6, 54, -1, -1, -1, 11, -1, - -1, 61, -1, 63, -1, 18, 66, 67, -1, -1, - -1, 71, -1, 73, -1, -1, -1, -1, 78, -1, - -1, -1, -1, -1, 84, 85, 86, -1, -1, -1, - -1, -1, 45, 46, -1, 95, -1, 97, -1, -1, - -1, 54, 55, 56, 57, 58, 59, 60, 61, 62, - 63, 64, -1, 66, -1, 68, 69, 70, 71, -1, - -1, -1, 75, 76, -1, 78, 79, 80, -1, -1, - 18, 84, -1, 86, -1, 88, 89, 90, 26, 92, - 93, 94, -1, 96, 97, 98, 99, 100, 101, 102, - 103, 104, -1, 106, -1, 108, 109, -1, 111, 112, - 113, 114, 3, -1, 5, 6, 54, -1, -1, -1, - 11, -1, -1, 61, -1, 63, -1, 18, 66, -1, - -1, -1, -1, 71, -1, -1, -1, -1, -1, -1, - 78, -1, -1, -1, -1, -1, 84, -1, 86, -1, - -1, -1, -1, -1, 45, 46, -1, -1, -1, 97, - -1, -1, -1, 54, 55, 56, 57, 58, 59, 60, - 61, 62, 63, 64, -1, 66, -1, 68, 69, 70, - 71, -1, -1, -1, 75, 76, -1, 78, 79, 80, - -1, -1, 18, 84, -1, 86, -1, 88, 89, 90, - 26, 92, 93, 94, -1, 96, 97, 98, 99, 100, - 101, 102, 103, 104, -1, 106, -1, 108, 109, -1, - 111, 112, 113, 114, 3, -1, 5, 6, 54, -1, - -1, -1, 11, -1, -1, 61, -1, 63, -1, 18, - 66, -1, -1, -1, -1, 71, -1, -1, -1, -1, - -1, -1, 78, -1, -1, -1, -1, -1, 84, -1, - 86, -1, -1, -1, -1, -1, 45, 46, -1, -1, - -1, 97, -1, -1, -1, 54, 55, 56, 57, 58, - 59, 60, 61, 62, 63, -1, -1, 66, -1, 68, - 69, 70, 71, -1, -1, -1, 75, 76, -1, 78, - 79, 80, -1, -1, 18, 84, -1, 86, -1, 88, - 89, 90, -1, 92, 93, 94, -1, 96, 97, 98, - 99, 100, 101, 102, 103, 104, -1, 106, -1, 108, - 109, -1, 111, 112, 113, 114, 3, -1, 5, 6, - 54, -1, -1, -1, 11, -1, -1, 61, -1, 63, - -1, 18, 66, -1, -1, -1, -1, 71, -1, -1, - -1, -1, -1, -1, 78, -1, -1, -1, -1, -1, - 84, -1, 86, -1, -1, -1, -1, -1, 45, 46, - -1, -1, -1, 97, -1, -1, -1, 54, 55, 56, - 57, 58, 59, 60, 61, 62, 63, -1, -1, 66, - -1, 68, 69, 70, 71, -1, -1, -1, 75, 76, - -1, 78, 79, 80, -1, -1, -1, 84, -1, 86, - -1, 88, 89, 90, -1, 92, 93, 94, -1, 96, - 97, 98, 99, 100, 101, 102, 103, 104, -1, 106, - -1, 108, 109, -1, 111, 112, 113, 114, 3, -1, - 5, 6, -1, -1, -1, -1, 11, -1, 28, -1, - -1, -1, -1, 18, 34, 35, 36, 37, 38, 39, - 40, 41, 42, 43, 44, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 45, 46, -1, -1, -1, -1, -1, -1, -1, 54, - 55, 56, 57, 58, 59, 60, 61, 62, 63, -1, - -1, 66, -1, 68, 69, 70, 71, -1, -1, -1, - 75, 76, -1, 78, 79, 80, -1, -1, -1, 84, - -1, 86, -1, 88, 89, 90, -1, 92, 93, 94, - -1, 96, 97, 98, 99, 100, 101, 102, 103, 104, - -1, 106, -1, 108, 109, -1, 111, 112, 113, 114, - 3, -1, 5, 6, -1, -1, -1, -1, 11, -1, - -1, -1, -1, -1, -1, 18, -1, -1, -1, -1, + -1, 45, 46, -1, 95, -1, 97, -1, -1, -1, + 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, + 64, -1, 66, -1, 68, 69, 70, 71, -1, -1, + -1, 75, 76, -1, 78, 79, 80, -1, -1, 18, + 84, -1, 86, -1, 88, 89, 90, 26, 92, 93, + 94, -1, 96, 97, 98, 99, 100, 101, 102, 103, + 104, -1, 106, -1, 108, 109, -1, 111, 112, 113, + 114, 3, -1, 5, 6, 54, -1, -1, -1, 11, + -1, -1, 61, -1, 63, -1, 18, 66, -1, -1, + -1, -1, 71, -1, -1, -1, -1, -1, -1, 78, + -1, -1, -1, -1, -1, 84, -1, 86, -1, -1, + -1, -1, -1, 45, 46, -1, -1, -1, 97, -1, + -1, -1, 54, 55, 56, 57, 58, 59, 60, 61, + 62, 63, 64, -1, 66, -1, 68, 69, 70, 71, + -1, -1, -1, 75, 76, -1, 78, 79, 80, -1, + -1, -1, 84, -1, 86, -1, 88, 89, 90, -1, + 92, 93, 94, -1, 96, 97, 98, 99, 100, 101, + 102, 103, 104, -1, 106, -1, 108, 109, -1, 111, + 112, 113, 114, 3, -1, 5, 6, -1, 54, -1, + -1, 11, -1, -1, -1, 61, -1, 63, 18, 19, + 66, 67, -1, -1, -1, 71, -1, 73, -1, -1, + -1, -1, 78, -1, -1, -1, -1, -1, 84, 85, + 86, -1, -1, -1, -1, 45, 46, -1, -1, 95, + -1, 97, -1, -1, 54, 55, 56, 57, 58, 59, + 60, 61, 62, 63, 110, -1, 66, -1, 68, 69, + 70, 71, -1, -1, -1, 75, 76, -1, 78, 79, + 80, -1, -1, 18, 84, -1, 86, -1, 88, 89, + 90, -1, 92, 93, 94, -1, 96, 97, 98, 99, + 100, 101, 102, 103, 104, -1, 106, -1, 108, 109, + -1, 111, 112, 113, 114, 3, -1, 5, 6, 54, + 54, -1, -1, 11, -1, -1, 61, 61, 63, 63, + 18, 66, 66, -1, -1, -1, 71, 71, -1, -1, + -1, -1, -1, 78, 78, -1, -1, -1, -1, 84, + 84, 86, 86, -1, -1, -1, -1, 45, 46, -1, + -1, -1, 97, 97, -1, -1, 54, 55, 56, 57, + 58, 59, 60, 61, 62, 63, 110, -1, 66, -1, + 68, 69, 70, 71, -1, -1, -1, 75, 76, -1, + 78, 79, 80, -1, -1, -1, 84, -1, 86, -1, + 88, 89, 90, -1, 92, 93, 94, -1, 96, 97, + 98, 99, 100, 101, 102, 103, 104, -1, 106, -1, + 108, 109, -1, 111, 112, 113, 114, 3, -1, 5, + 6, -1, -1, -1, -1, 11, -1, 28, -1, -1, + -1, -1, 18, 34, 35, 36, 37, 38, 39, 40, + 41, 42, 43, 44, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 45, + 46, -1, -1, -1, -1, -1, -1, -1, 54, 55, + 56, 57, 58, 59, 60, 61, 62, 63, -1, -1, + 66, -1, 68, 69, 70, 71, -1, -1, -1, 75, + 76, -1, 78, 79, 80, -1, -1, -1, 84, -1, + 86, -1, 88, 89, 90, -1, 92, 93, 94, -1, + 96, 97, 98, 99, 100, 101, 102, 103, 104, -1, + 106, -1, 108, 109, -1, 111, 112, 113, 114, 3, + -1, 5, 6, -1, -1, -1, -1, 11, -1, 28, + -1, -1, -1, -1, 18, 34, 35, 36, 37, 38, + 39, 40, 41, 42, 43, 44, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 45, 46, -1, -1, -1, -1, -1, -1, -1, + 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, + -1, -1, 66, -1, 68, 69, 70, 71, -1, -1, + -1, 75, 76, -1, 78, 79, 80, -1, -1, -1, + 84, -1, 86, -1, 88, 89, 90, -1, 92, 93, + 94, -1, 96, 97, 98, 99, 100, 101, 102, 103, + 104, -1, 106, -1, 108, 109, -1, 111, 112, 113, + 114, 3, -1, 5, 6, -1, -1, -1, -1, 11, + -1, -1, -1, -1, -1, -1, 18, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 45, 46, -1, -1, -1, -1, -1, -1, - -1, 54, 55, 56, 57, 58, 59, 60, 61, 62, - 63, -1, -1, 66, -1, 68, 69, 70, 71, -1, - -1, -1, 75, 76, -1, 78, 79, 80, -1, -1, - -1, 84, -1, 86, -1, 88, 89, 90, -1, 92, - 93, 94, -1, 96, 97, 98, 99, 100, 101, 102, - 103, 104, -1, 106, -1, 108, 109, -1, 111, 112, - 113, 114, 3, -1, 5, 6, -1, -1, -1, -1, - 11, -1, -1, -1, -1, -1, -1, 18, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 45, 46, -1, -1, -1, -1, -1, + -1, -1, 54, 55, 56, 57, 58, 59, 60, 61, + 62, 63, -1, -1, 66, -1, 68, 69, 70, 71, + -1, -1, -1, 75, 76, -1, 78, 79, 80, -1, + -1, -1, 84, -1, 86, -1, 88, 89, 90, -1, + 92, 93, 94, -1, 96, 97, 98, 99, 100, 101, + 102, 103, 104, -1, 106, -1, 108, 109, -1, 111, + 112, 113, 114, 3, -1, 5, 6, -1, -1, -1, + -1, 11, -1, -1, -1, -1, -1, -1, 18, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 45, 46, -1, -1, -1, -1, - -1, -1, -1, 54, 55, 56, 57, 58, 59, 60, - 61, 62, 63, -1, -1, 66, -1, 68, 69, 70, - 71, -1, -1, -1, 75, 76, -1, 78, 79, 80, - -1, -1, -1, 84, -1, 86, -1, 88, 89, 90, - -1, 92, 93, 94, -1, 96, 97, 98, 99, 100, - 101, 102, 103, 104, -1, 106, -1, 108, 109, -1, - 111, 112, 113, 114, 3, -1, 5, -1, -1, -1, - -1, -1, 11, -1, -1, -1, -1, -1, -1, 18, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 45, 46, -1, -1, -1, + -1, -1, -1, -1, 54, 55, 56, 57, 58, 59, + 60, 61, 62, 63, -1, -1, 66, -1, 68, 69, + 70, 71, -1, -1, -1, 75, 76, -1, 78, 79, + 80, -1, -1, -1, 84, -1, 86, -1, 88, 89, + 90, -1, 92, 93, 94, -1, 96, 97, 98, 99, + 100, 101, 102, 103, 104, -1, 106, -1, 108, 109, + -1, 111, 112, 113, 114, 3, -1, 5, -1, -1, + -1, -1, -1, 11, -1, -1, -1, -1, -1, -1, + 18, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 45, 46, -1, -1, - -1, -1, -1, -1, -1, 54, 55, 56, 57, 58, - -1, 60, 61, 62, 63, -1, -1, 66, -1, 68, - -1, 70, 71, -1, -1, 18, 75, -1, -1, 78, - 79, 80, -1, -1, -1, 84, -1, 86, -1, 88, - 89, -1, -1, -1, -1, -1, -1, 96, 97, -1, - -1, 100, 101, 102, 103, 104, 3, 4, -1, 108, - 109, 54, 111, -1, 113, 114, -1, -1, 61, -1, - 63, 18, -1, 66, -1, 22, 23, -1, 71, -1, - -1, -1, 29, 30, -1, 78, -1, -1, -1, -1, - -1, 84, -1, 86, -1, -1, -1, -1, 45, 46, - -1, -1, -1, -1, 97, -1, -1, 54, 55, 56, - 57, 58, 59, -1, 61, -1, 63, 110, -1, 66, - -1, -1, 69, -1, 71, -1, -1, -1, 75, 76, - -1, 78, -1, -1, 18, 19, -1, 84, -1, 86, - -1, 88, 89, 90, -1, 92, 93, 94, -1, -1, - 97, 98, 99, 100, 101, 102, 103, -1, -1, 106, - -1, 108, -1, -1, 111, 112, 3, 4, 5, -1, - 54, -1, -1, -1, -1, -1, -1, 61, -1, 63, - -1, 18, 66, 67, -1, 22, 23, 71, -1, 73, - -1, -1, 29, 30, 78, -1, -1, -1, -1, -1, - 84, 85, 86, -1, -1, -1, -1, -1, 45, 46, - -1, 95, -1, 97, -1, -1, -1, 54, 55, 56, - 57, 58, 18, 19, 61, -1, 63, 111, -1, 66, - -1, -1, -1, -1, 71, -1, -1, -1, 75, -1, - -1, 78, 3, -1, 5, -1, -1, 84, 9, 86, - -1, 88, 89, -1, -1, -1, -1, 18, 54, -1, - 97, 22, 23, 100, 101, 61, 103, 63, 29, 30, - 66, 108, -1, -1, 111, 71, -1, -1, -1, -1, - -1, -1, 78, -1, 45, 46, -1, -1, 84, -1, - 86, -1, -1, 54, 55, 56, 57, 58, -1, -1, - 61, 97, 63, -1, -1, 66, -1, -1, -1, -1, - 71, 3, -1, 5, 75, -1, -1, 78, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 45, 46, -1, + -1, -1, -1, -1, -1, -1, 54, 55, 56, 57, + 58, -1, 60, 61, 62, 63, -1, -1, 66, -1, + 68, -1, 70, 71, -1, -1, -1, 75, -1, -1, + 78, 79, 80, -1, -1, -1, 84, -1, 86, -1, + 88, 89, -1, -1, -1, -1, -1, -1, 96, 97, + -1, -1, 100, 101, 102, 103, 104, 3, 4, -1, + 108, 109, -1, 111, -1, 113, 114, -1, -1, -1, + -1, -1, 18, -1, -1, -1, 22, 23, -1, -1, + -1, -1, -1, 29, 30, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 45, + 46, -1, -1, -1, -1, -1, -1, -1, 54, 55, + 56, 57, 58, 59, -1, 61, -1, 63, -1, -1, + 66, -1, -1, 69, -1, 71, -1, -1, -1, 75, + 76, -1, 78, -1, -1, 18, 19, -1, 84, -1, + 86, -1, 88, 89, 90, -1, 92, 93, 94, -1, + -1, 97, 98, 99, 100, 101, 102, 103, -1, -1, + 106, -1, 108, -1, -1, 111, 112, 3, 4, 5, + -1, 54, -1, -1, -1, -1, -1, -1, 61, -1, + 63, -1, 18, 66, 67, -1, 22, 23, 71, -1, + 73, -1, -1, 29, 30, 78, -1, -1, -1, -1, + -1, 84, 85, 86, -1, -1, -1, -1, -1, 45, + 46, -1, 95, -1, 97, -1, -1, -1, 54, 55, + 56, 57, 58, 18, 19, 61, -1, 63, 111, -1, + 66, -1, -1, -1, -1, 71, -1, -1, -1, 75, + -1, -1, 78, 3, -1, 5, -1, -1, 84, 9, + 86, -1, 88, 89, -1, -1, -1, -1, 18, 54, + -1, 97, 22, 23, 100, 101, 61, 103, 63, 29, + 30, 66, 108, -1, -1, 111, 71, -1, -1, -1, + -1, -1, -1, 78, -1, 45, 46, -1, -1, 84, + -1, 86, -1, -1, 54, 55, 56, 57, 58, -1, + -1, 61, 97, 63, -1, -1, 66, -1, -1, -1, + -1, 71, 3, -1, 5, 75, -1, -1, 78, -1, + -1, -1, -1, -1, 84, -1, 86, 18, 88, 89, + -1, 22, 23, -1, -1, -1, -1, 97, 29, 30, + 100, 101, -1, 103, -1, -1, -1, -1, 108, -1, + -1, 111, -1, -1, 45, 46, -1, -1, -1, -1, + -1, -1, -1, 54, 55, 56, 57, 58, -1, -1, + 61, -1, 63, -1, -1, 66, -1, -1, -1, -1, + 71, 3, 4, -1, 75, -1, -1, 78, -1, -1, -1, -1, -1, 84, -1, 86, 18, 88, 89, -1, 22, 23, -1, -1, -1, -1, 97, 29, 30, 100, - 101, -1, 103, -1, -1, -1, -1, 108, -1, -1, + 101, -1, 103, 104, -1, -1, -1, 108, -1, -1, 111, -1, -1, 45, 46, -1, -1, -1, -1, -1, -1, -1, 54, 55, 56, 57, 58, -1, -1, 61, -1, 63, -1, -1, 66, -1, -1, -1, -1, 71, - 3, 4, -1, 75, -1, -1, 78, -1, -1, -1, + 3, -1, 5, 75, -1, -1, 78, -1, -1, -1, -1, -1, 84, -1, 86, 18, 88, 89, -1, 22, 23, -1, -1, -1, -1, 97, 29, 30, 100, 101, - -1, 103, 104, -1, -1, -1, 108, -1, -1, 111, + -1, 103, -1, -1, -1, -1, 108, -1, -1, 111, -1, -1, 45, 46, -1, -1, -1, -1, -1, -1, -1, 54, 55, 56, 57, 58, -1, -1, 61, -1, 63, -1, -1, 66, -1, -1, -1, -1, 71, 3, @@ -2662,35 +5433,35 @@ private static final short[] yycheck_init() -1, 45, 46, -1, -1, -1, -1, -1, -1, -1, 54, 55, 56, 57, 58, -1, -1, 61, -1, 63, -1, -1, 66, -1, -1, -1, -1, 71, 3, -1, - 5, 75, -1, -1, 78, -1, -1, -1, -1, -1, + -1, 75, -1, 8, 78, -1, -1, -1, -1, -1, 84, -1, 86, 18, 88, 89, -1, 22, 23, -1, -1, -1, -1, 97, 29, 30, 100, 101, -1, 103, -1, -1, -1, -1, 108, -1, -1, 111, -1, -1, 45, 46, -1, -1, -1, -1, -1, -1, -1, 54, 55, 56, 57, 58, -1, -1, 61, -1, 63, -1, - -1, 66, -1, -1, -1, -1, 71, 3, -1, -1, - 75, -1, 8, 78, -1, -1, -1, -1, -1, 84, + -1, 66, -1, -1, -1, -1, 71, 3, -1, 5, + 75, -1, -1, 78, -1, -1, -1, -1, -1, 84, -1, 86, 18, 88, 89, -1, 22, 23, -1, -1, -1, -1, 97, 29, 30, 100, 101, -1, 103, -1, -1, -1, -1, 108, -1, -1, 111, -1, -1, 45, 46, -1, -1, -1, -1, -1, -1, -1, 54, 55, 56, 57, 58, -1, -1, 61, -1, 63, -1, -1, - 66, -1, -1, -1, -1, 71, 3, -1, 5, 75, - -1, -1, 78, -1, -1, -1, -1, -1, 84, -1, + 66, -1, -1, -1, -1, 71, 3, -1, -1, 75, + -1, 8, 78, -1, -1, -1, -1, -1, 84, -1, 86, 18, 88, 89, -1, 22, 23, -1, -1, -1, -1, 97, 29, 30, 100, 101, -1, 103, -1, -1, -1, -1, 108, -1, -1, 111, -1, -1, 45, 46, -1, -1, -1, -1, -1, -1, -1, 54, 55, 56, 57, 58, -1, -1, 61, -1, 63, -1, -1, 66, -1, -1, -1, -1, 71, 3, -1, -1, 75, -1, - 8, 78, -1, -1, -1, -1, -1, 84, -1, 86, + -1, 78, -1, 11, -1, -1, -1, 84, -1, 86, 18, 88, 89, -1, 22, 23, -1, -1, -1, -1, 97, 29, 30, 100, 101, -1, 103, -1, -1, -1, -1, 108, -1, -1, 111, -1, -1, 45, 46, -1, -1, -1, -1, -1, -1, -1, 54, 55, 56, 57, 58, -1, -1, 61, -1, 63, -1, -1, 66, -1, -1, -1, -1, 71, 3, -1, -1, 75, -1, -1, - 78, -1, 11, -1, -1, -1, 84, -1, 86, 18, + 78, -1, -1, -1, -1, -1, 84, -1, 86, 18, 88, 89, -1, 22, 23, -1, -1, -1, -1, 97, 29, 30, 100, 101, -1, 103, -1, -1, -1, -1, 108, -1, -1, 111, -1, -1, 45, 46, -1, -1, @@ -2702,92 +5473,83 @@ private static final short[] yycheck_init() 30, 100, 101, -1, 103, -1, -1, -1, -1, 108, -1, -1, 111, -1, -1, 45, 46, -1, -1, -1, -1, -1, -1, -1, 54, 55, 56, 57, 58, -1, - -1, 61, -1, 63, -1, -1, 66, -1, -1, -1, - -1, 71, 3, -1, -1, 75, -1, -1, 78, -1, - -1, -1, -1, -1, 84, -1, 86, 18, 88, 89, - -1, 22, 23, -1, -1, -1, -1, 97, 29, 30, - 100, 101, -1, 103, -1, -1, -1, -1, 108, -1, - -1, 111, -1, -1, 45, 46, -1, -1, -1, -1, - -1, -1, -1, 54, 55, 56, 57, 58, -1, -1, + -1, 61, 3, 63, -1, -1, 66, -1, -1, -1, + -1, 71, -1, -1, -1, 75, -1, 18, 78, -1, + -1, -1, -1, -1, 84, -1, 86, -1, 88, 89, + -1, -1, -1, -1, -1, -1, -1, 97, -1, -1, + 100, 101, -1, 103, 45, 46, -1, -1, 108, -1, + -1, 111, -1, 54, 55, 56, 57, 58, -1, -1, 61, 3, 63, -1, -1, 66, -1, -1, -1, -1, 71, -1, -1, -1, 75, -1, 18, 78, -1, -1, -1, -1, -1, 84, -1, 86, -1, 88, 89, -1, -1, -1, -1, -1, -1, -1, 97, -1, -1, 100, - 101, -1, 103, 45, 46, -1, -1, 108, -1, -1, + -1, -1, 103, 45, 46, -1, -1, 108, -1, 110, 111, -1, 54, 55, 56, 57, 58, -1, -1, 61, - 3, 63, -1, -1, 66, -1, -1, -1, -1, 71, - -1, -1, -1, 75, -1, 18, 78, -1, -1, -1, + -1, 63, 3, 4, 66, -1, -1, -1, -1, 71, + -1, -1, -1, 75, -1, -1, 78, 18, -1, -1, -1, -1, 84, -1, 86, -1, 88, 89, -1, -1, -1, -1, -1, -1, -1, 97, -1, -1, 100, -1, - -1, 103, 45, 46, -1, -1, 108, -1, 110, 111, - -1, 54, 55, 56, 57, 58, -1, -1, 61, -1, - 63, 3, 4, 66, -1, -1, -1, -1, 71, -1, - -1, -1, 75, -1, -1, 78, 18, -1, -1, -1, - -1, 84, -1, 86, -1, 88, 89, -1, -1, -1, - -1, -1, -1, -1, 97, -1, -1, 100, -1, -1, - 103, -1, -1, -1, -1, 108, -1, -1, 111, -1, - -1, -1, 54, 55, 56, 57, 58, -1, -1, 61, - 3, 63, -1, -1, 66, -1, -1, -1, -1, 71, - -1, -1, -1, 75, -1, 18, 78, -1, -1, -1, + -1, 103, -1, -1, -1, -1, 108, -1, -1, 111, + -1, -1, -1, 54, 55, 56, 57, 58, -1, -1, + 61, 3, 63, -1, -1, 66, -1, -1, -1, -1, + 71, -1, -1, -1, 75, -1, 18, 78, -1, -1, + -1, -1, -1, 84, -1, 86, -1, 88, 89, -1, + -1, -1, -1, -1, -1, -1, 97, -1, -1, 100, + -1, -1, 103, -1, -1, -1, -1, 108, -1, 110, + 111, -1, 54, 55, 56, 57, 58, 4, -1, 61, + -1, 63, -1, -1, 66, -1, -1, -1, -1, 71, + -1, 18, -1, 75, -1, -1, 78, -1, -1, -1, -1, -1, 84, -1, 86, -1, 88, 89, -1, -1, - -1, -1, -1, -1, -1, 97, -1, -1, 100, -1, - -1, 103, -1, -1, -1, -1, 108, -1, 110, 111, - -1, 54, 55, 56, 57, 58, 4, -1, 61, -1, - 63, -1, -1, 66, -1, -1, -1, -1, 71, -1, - 18, -1, 75, -1, -1, 78, -1, -1, -1, -1, - -1, 84, -1, 86, -1, 88, 89, -1, -1, 5, - 6, -1, -1, -1, 97, 11, -1, 100, -1, -1, - 103, -1, 18, -1, -1, 108, 54, 110, 111, -1, - -1, 59, -1, 61, -1, 63, 5, 6, 66, -1, - -1, 69, 11, 71, -1, -1, -1, -1, 76, 18, - 78, -1, -1, -1, -1, -1, 84, -1, 86, -1, - -1, -1, 90, 59, 92, 93, 94, -1, -1, 97, - 98, 99, -1, 69, 102, -1, -1, -1, 106, -1, - 76, -1, 5, 6, 112, -1, -1, -1, 11, -1, - 59, -1, -1, -1, 90, 18, 92, 93, 94, -1, - 69, -1, 98, 99, -1, -1, 102, 76, -1, -1, - 106, -1, -1, -1, 5, 6, 112, -1, -1, -1, - 11, 90, -1, 92, 93, 94, -1, 18, -1, 98, - 99, -1, -1, 102, -1, -1, 59, 106, -1, -1, - -1, 5, 6, 112, -1, -1, 69, 11, -1, -1, - -1, -1, -1, 76, 18, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 90, 59, 92, - 93, 94, -1, -1, -1, 98, 99, -1, 69, 102, - -1, -1, -1, 106, -1, 76, -1, 5, 6, 112, - -1, -1, -1, 11, -1, 59, -1, -1, -1, 90, - 18, 92, 93, 94, -1, 69, -1, 98, 99, -1, - -1, 102, 76, -1, -1, 106, -1, -1, -1, -1, - 6, 112, -1, -1, -1, -1, 90, -1, 92, 93, - 94, -1, 18, -1, 98, 99, -1, -1, 102, -1, - -1, 59, 106, -1, -1, -1, -1, 6, 112, -1, - -1, 69, -1, -1, -1, -1, -1, -1, 76, 18, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 90, 59, 92, 93, 94, -1, -1, 6, - 98, 99, -1, 69, 102, -1, -1, -1, 106, -1, - 76, 18, -1, -1, 112, -1, -1, -1, -1, -1, - 59, -1, -1, -1, 90, -1, 92, 93, 94, -1, - 69, 6, 98, 99, -1, -1, 102, 76, -1, -1, - 106, -1, -1, 18, -1, -1, 112, -1, -1, -1, - -1, 90, 59, 92, 93, 94, -1, -1, -1, 98, - 99, -1, 69, 102, -1, -1, -1, 106, -1, 76, - -1, -1, -1, 112, -1, -1, -1, -1, -1, -1, + 5, 6, -1, -1, -1, 97, 11, -1, 100, -1, + -1, 103, -1, 18, -1, -1, 108, 54, 110, 111, + -1, -1, 59, -1, 61, -1, 63, 5, 6, 66, + -1, -1, 69, 11, 71, -1, -1, -1, -1, 76, + 18, 78, -1, -1, -1, -1, -1, 84, -1, 86, -1, -1, -1, 90, 59, 92, 93, 94, -1, -1, - -1, 98, 99, 18, 69, 102, -1, -1, -1, 106, - -1, 76, -1, -1, 18, 112, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 90, -1, 92, 93, 94, - -1, -1, -1, 98, 99, -1, -1, 102, -1, 54, - -1, 106, -1, -1, 59, -1, 61, 112, 63, -1, - -1, 66, -1, -1, 69, 59, 71, -1, -1, -1, - -1, 76, -1, 78, -1, 69, -1, -1, -1, 84, - -1, 86, 76, -1, -1, 90, -1, 92, 93, 94, - -1, -1, 97, 98, 99, -1, 90, 102, 92, 93, - 94, 106, -1, -1, 98, 99, -1, 112, 102, -1, - 4, -1, 106, 7, -1, -1, 10, -1, 112, 13, - -1, -1, -1, 17, 18, 19, -1, -1, -1, -1, - -1, -1, -1, -1, 28, -1, -1, -1, -1, -1, - 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, - 44, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 54 + 97, 98, 99, -1, 69, 102, -1, -1, -1, 106, + -1, 76, -1, 5, 6, 112, -1, -1, -1, 11, + -1, 59, -1, -1, -1, 90, 18, 92, 93, 94, + -1, 69, -1, 98, 99, -1, -1, 102, 76, -1, + -1, 106, -1, -1, -1, 5, 6, 112, -1, -1, + -1, 11, 90, -1, 92, 93, 94, -1, 18, -1, + 98, 99, -1, -1, 102, -1, -1, 59, 106, -1, + -1, -1, 5, 6, 112, -1, -1, 69, 11, -1, + -1, -1, -1, -1, 76, 18, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 90, 59, + 92, 93, 94, -1, -1, 6, 98, 99, -1, 69, + 102, -1, -1, -1, 106, -1, 76, 18, -1, -1, + 112, -1, -1, -1, -1, -1, 59, -1, -1, -1, + 90, -1, 92, 93, 94, -1, 69, 6, 98, 99, + -1, -1, 102, 76, -1, -1, 106, -1, -1, 18, + -1, -1, 112, -1, -1, -1, -1, 90, 59, 92, + 93, 94, -1, -1, 6, 98, 99, -1, 69, 102, + -1, -1, -1, 106, -1, 76, 18, -1, -1, 112, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 90, + 59, 92, 93, 94, -1, -1, -1, 98, 99, -1, + 69, 102, -1, -1, -1, 106, -1, 76, -1, -1, + -1, 112, -1, -1, -1, -1, -1, 59, 18, -1, + -1, 90, -1, 92, 93, 94, -1, 69, -1, 98, + 99, -1, -1, 102, 76, -1, -1, 106, -1, -1, + -1, -1, -1, 112, -1, -1, -1, -1, 90, -1, + 92, 93, 94, -1, 54, -1, 98, 99, -1, 59, + 102, 61, -1, 63, 106, -1, 66, -1, -1, 69, + 112, 71, 18, 19, -1, -1, 76, -1, 78, -1, + -1, -1, -1, -1, 84, -1, 86, -1, -1, -1, + 90, -1, 92, 93, 94, -1, -1, 97, 98, 99, + -1, -1, 102, -1, -1, -1, 106, -1, 54, 18, + 19, -1, 112, -1, -1, 61, -1, 63, -1, -1, + 66, 67, -1, -1, -1, 71, -1, 73, -1, -1, + -1, -1, 78, -1, -1, -1, -1, -1, 84, 85, + 86, -1, -1, -1, -1, 54, -1, -1, -1, 95, + -1, 97, 61, -1, 63, -1, -1, 66, 67, -1, + -1, -1, 71, -1, 73, 111, -1, -1, -1, 78, + -1, -1, -1, -1, -1, 84, 85, 86, -1, -1, + -1, 4, -1, -1, 7, -1, 95, 10, 97, -1, + 13, -1, -1, -1, 17, 18, 19, -1, -1, -1, + -1, -1, 111, -1, -1, 28, -1, -1, -1, -1, + -1, 34, 35, 36, 37, 38, 39, 40, 41, 42, + 43, 44, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 54 }; } @@ -2800,92 +5562,92 @@ private static final short[] yystos_init() { 0, 18, 59, 69, 76, 82, 90, 91, 92, 93, 94, 98, 99, 102, 106, 112, 125, 126, 127, 128, - 129, 130, 131, 132, 133, 304, 305, 54, 124, 98, - 134, 124, 87, 128, 0, 125, 133, 136, 127, 305, - 10, 18, 306, 124, 11, 124, 18, 67, 73, 85, - 95, 137, 146, 147, 166, 171, 196, 197, 205, 125, - 54, 124, 10, 11, 132, 5, 85, 54, 54, 54, - 54, 137, 3, 14, 135, 136, 115, 116, 118, 119, - 120, 138, 139, 140, 54, 19, 148, 149, 81, 154, - 148, 148, 3, 4, 5, 22, 23, 29, 30, 45, + 129, 130, 131, 132, 133, 134, 302, 303, 54, 124, + 98, 124, 124, 87, 128, 0, 125, 134, 136, 127, + 303, 3, 10, 124, 10, 11, 11, 124, 18, 67, + 73, 85, 95, 137, 146, 147, 166, 171, 196, 197, + 205, 125, 3, 4, 5, 22, 23, 29, 30, 45, 46, 54, 55, 56, 57, 58, 61, 63, 66, 71, 75, 78, 84, 86, 88, 89, 97, 100, 101, 103, 108, 111, 123, 124, 143, 144, 145, 249, 250, 251, - 259, 260, 261, 264, 265, 279, 281, 282, 283, 284, - 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, - 295, 296, 297, 298, 299, 300, 302, 304, 305, 307, - 308, 11, 98, 107, 142, 124, 124, 124, 124, 6, - 140, 5, 206, 54, 150, 151, 152, 304, 74, 153, - 124, 143, 155, 5, 167, 74, 198, 199, 3, 172, - 3, 54, 124, 143, 259, 260, 268, 269, 270, 275, - 276, 277, 279, 301, 9, 54, 308, 309, 292, 292, - 292, 292, 292, 292, 3, 28, 262, 19, 143, 254, - 255, 10, 13, 3, 7, 193, 194, 195, 304, 7, - 10, 13, 255, 10, 13, 193, 195, 7, 10, 13, - 26, 47, 280, 48, 21, 27, 17, 49, 50, 19, - 20, 32, 33, 83, 51, 52, 53, 22, 23, 14, - 15, 16, 45, 46, 269, 292, 144, 4, 9, 4, - 107, 98, 124, 11, 117, 11, 117, 11, 121, 6, - 125, 207, 74, 9, 20, 152, 143, 154, 9, 168, - 169, 303, 304, 143, 5, 200, 9, 173, 174, 303, - 154, 4, 54, 125, 271, 272, 273, 304, 24, 4, - 24, 28, 34, 35, 36, 37, 38, 39, 40, 41, - 42, 43, 44, 278, 4, 17, 6, 6, 9, 4, - 263, 268, 308, 26, 143, 256, 257, 304, 7, 194, - 266, 267, 304, 252, 253, 303, 54, 254, 254, 268, - 8, 10, 195, 7, 268, 88, 100, 251, 254, 254, - 100, 103, 254, 10, 268, 54, 251, 254, 254, 268, - 282, 283, 284, 285, 286, 287, 287, 289, 289, 289, - 289, 110, 143, 144, 215, 248, 290, 290, 290, 291, - 291, 292, 292, 292, 54, 11, 124, 141, 141, 141, - 18, 143, 144, 146, 196, 203, 208, 209, 6, 125, - 143, 156, 303, 304, 151, 5, 158, 143, 9, 11, + 258, 259, 260, 263, 264, 277, 279, 280, 281, 282, + 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, + 293, 294, 295, 296, 297, 298, 300, 302, 303, 304, + 305, 54, 10, 11, 14, 132, 5, 85, 54, 54, + 54, 54, 137, 3, 54, 124, 143, 258, 259, 267, + 268, 269, 273, 274, 275, 277, 299, 9, 54, 305, + 306, 290, 290, 290, 290, 290, 290, 3, 28, 261, + 19, 124, 143, 254, 255, 10, 13, 3, 7, 193, + 194, 195, 302, 7, 10, 13, 255, 10, 13, 193, + 195, 7, 10, 13, 26, 47, 278, 48, 21, 27, + 17, 49, 50, 19, 20, 32, 33, 83, 51, 52, + 53, 22, 23, 14, 15, 16, 45, 46, 268, 290, + 144, 4, 9, 4, 14, 11, 135, 136, 115, 116, + 118, 119, 120, 138, 139, 140, 54, 19, 148, 149, + 81, 154, 148, 148, 4, 54, 125, 270, 271, 272, + 302, 24, 4, 24, 28, 34, 35, 36, 37, 38, + 39, 40, 41, 42, 43, 44, 276, 4, 17, 6, + 6, 9, 4, 262, 267, 305, 26, 143, 256, 257, + 302, 7, 194, 265, 266, 302, 252, 253, 301, 302, + 54, 254, 254, 267, 8, 10, 195, 7, 267, 88, + 100, 251, 254, 254, 100, 103, 254, 10, 267, 54, + 251, 254, 254, 267, 280, 281, 282, 283, 284, 285, + 285, 287, 287, 287, 287, 110, 143, 144, 215, 248, + 288, 288, 288, 289, 289, 290, 290, 290, 54, 11, + 98, 107, 142, 124, 124, 124, 124, 6, 140, 5, + 206, 54, 150, 151, 152, 302, 74, 153, 143, 155, + 5, 167, 74, 198, 199, 3, 172, 110, 144, 4, + 9, 4, 9, 5, 211, 267, 211, 267, 267, 143, + 305, 4, 9, 74, 100, 9, 20, 26, 267, 5, + 181, 193, 266, 7, 261, 10, 25, 254, 54, 54, + 54, 4, 67, 8, 8, 10, 54, 54, 13, 54, + 88, 67, 8, 54, 54, 12, 54, 179, 180, 179, + 28, 107, 98, 124, 11, 117, 11, 117, 11, 121, + 6, 125, 207, 74, 9, 20, 152, 143, 154, 9, + 168, 169, 301, 143, 5, 200, 9, 173, 174, 301, + 154, 54, 54, 301, 302, 54, 272, 3, 6, 11, + 54, 60, 62, 68, 70, 79, 80, 96, 101, 102, + 104, 109, 113, 114, 125, 211, 212, 213, 216, 217, + 218, 219, 220, 230, 231, 232, 237, 250, 260, 274, + 291, 292, 294, 295, 296, 267, 143, 143, 257, 74, + 100, 8, 181, 182, 183, 184, 267, 267, 5, 157, + 158, 301, 261, 5, 222, 54, 254, 261, 254, 261, + 268, 277, 28, 194, 9, 305, 11, 124, 141, 141, + 141, 18, 143, 144, 146, 196, 203, 208, 209, 6, + 125, 143, 156, 301, 302, 151, 158, 143, 9, 11, 170, 54, 6, 125, 201, 143, 4, 9, 144, 5, - 175, 110, 144, 4, 9, 4, 9, 5, 211, 268, - 274, 274, 268, 143, 308, 4, 9, 74, 100, 258, - 9, 20, 26, 268, 5, 181, 193, 267, 7, 262, - 10, 25, 254, 54, 54, 54, 4, 67, 8, 8, - 10, 54, 54, 13, 54, 88, 67, 8, 54, 54, - 12, 54, 179, 180, 179, 28, 9, 11, 11, 11, - 179, 54, 208, 17, 54, 6, 11, 98, 125, 159, - 160, 211, 169, 170, 159, 6, 262, 111, 144, 146, - 149, 186, 196, 202, 203, 204, 6, 125, 174, 54, - 303, 304, 6, 125, 160, 176, 177, 54, 54, 303, - 54, 273, 3, 6, 11, 54, 60, 62, 68, 70, - 79, 80, 96, 101, 102, 104, 109, 113, 114, 125, - 211, 212, 213, 216, 217, 218, 219, 220, 230, 231, - 232, 237, 250, 261, 276, 293, 294, 296, 297, 298, - 268, 143, 143, 257, 258, 8, 181, 182, 183, 184, - 268, 268, 157, 158, 303, 262, 5, 222, 54, 254, - 262, 254, 262, 269, 279, 28, 194, 9, 308, 124, - 11, 3, 143, 211, 144, 146, 148, 149, 161, 162, - 163, 178, 185, 186, 196, 6, 160, 6, 158, 54, - 187, 187, 111, 143, 144, 304, 11, 192, 211, 202, - 31, 54, 6, 177, 193, 193, 31, 12, 268, 11, - 54, 11, 54, 102, 216, 3, 3, 11, 268, 3, - 3, 268, 3, 211, 245, 3, 268, 144, 146, 197, - 214, 215, 6, 213, 11, 6, 9, 9, 8, 54, - 64, 69, 223, 224, 225, 226, 227, 228, 54, 54, - 268, 28, 180, 4, 54, 179, 54, 105, 191, 192, - 3, 191, 191, 187, 187, 187, 111, 54, 5, 164, - 54, 216, 11, 12, 11, 11, 113, 215, 219, 233, - 235, 268, 11, 268, 268, 11, 124, 215, 246, 247, - 249, 259, 65, 77, 239, 240, 244, 211, 268, 11, - 11, 6, 184, 229, 275, 6, 224, 228, 6, 226, - 227, 228, 69, 212, 228, 12, 24, 262, 181, 193, - 11, 3, 155, 164, 4, 126, 144, 188, 189, 191, - 191, 191, 187, 6, 124, 165, 212, 249, 254, 268, - 3, 12, 11, 9, 4, 4, 4, 4, 11, 3, - 211, 240, 244, 238, 239, 4, 9, 6, 12, 104, - 211, 268, 69, 210, 188, 193, 144, 54, 103, 190, - 303, 4, 9, 191, 10, 6, 212, 6, 10, 100, - 103, 11, 268, 268, 234, 268, 219, 216, 222, 211, - 4, 247, 125, 241, 243, 244, 216, 275, 268, 11, - 308, 11, 4, 190, 10, 193, 31, 193, 189, 254, - 6, 254, 262, 262, 4, 4, 11, 72, 221, 143, - 242, 4, 11, 103, 54, 100, 100, 11, 11, 11, - 216, 235, 236, 216, 21, 54, 211, 262, 262, 4, - 143, 193, 11, 11, 216 + 175, 193, 193, 31, 12, 267, 11, 54, 11, 54, + 102, 216, 3, 3, 11, 267, 3, 3, 267, 3, + 211, 245, 3, 267, 144, 146, 197, 214, 215, 6, + 213, 11, 143, 143, 6, 9, 9, 8, 6, 11, + 98, 125, 159, 160, 211, 54, 64, 69, 223, 224, + 225, 226, 227, 228, 54, 54, 267, 28, 180, 9, + 11, 11, 11, 179, 54, 208, 17, 54, 169, 170, + 159, 6, 261, 111, 144, 146, 149, 186, 196, 202, + 203, 204, 6, 125, 174, 54, 301, 6, 125, 160, + 176, 177, 54, 216, 11, 12, 11, 11, 113, 215, + 219, 233, 235, 267, 11, 267, 267, 11, 124, 215, + 246, 247, 249, 258, 65, 77, 239, 240, 244, 211, + 267, 11, 11, 6, 184, 211, 144, 146, 148, 149, + 161, 162, 163, 178, 185, 186, 196, 6, 160, 229, + 273, 6, 224, 228, 6, 226, 227, 228, 69, 212, + 228, 12, 24, 261, 181, 124, 11, 3, 143, 6, + 158, 54, 187, 187, 111, 143, 144, 302, 11, 192, + 211, 202, 31, 54, 6, 177, 267, 3, 12, 11, + 9, 4, 4, 4, 4, 11, 3, 211, 240, 244, + 238, 239, 4, 54, 179, 54, 105, 191, 192, 9, + 6, 12, 104, 211, 267, 4, 3, 191, 191, 187, + 187, 187, 111, 54, 5, 164, 11, 267, 267, 234, + 267, 219, 216, 222, 211, 4, 247, 125, 241, 243, + 244, 216, 11, 3, 155, 164, 273, 267, 11, 193, + 4, 126, 144, 188, 189, 191, 191, 191, 187, 6, + 124, 165, 212, 249, 254, 4, 4, 11, 72, 221, + 143, 242, 4, 188, 11, 69, 210, 193, 144, 54, + 103, 190, 301, 4, 9, 191, 10, 6, 212, 6, + 10, 100, 103, 11, 216, 235, 236, 216, 21, 54, + 211, 4, 305, 11, 190, 10, 193, 31, 193, 189, + 254, 6, 254, 261, 261, 4, 143, 193, 103, 54, + 100, 100, 11, 11, 216, 261, 261, 11, 11 }; } @@ -2898,52 +5660,52 @@ private static final short[] yyr1_init() 0, 122, 123, 123, 123, 123, 123, 123, 123, 124, 124, 125, 125, 126, 126, 127, 127, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 129, - 129, 129, 129, 130, 131, 132, 132, 132, 133, 133, - 134, 134, 135, 135, 136, 136, 137, 137, 138, 139, - 139, 140, 140, 140, 140, 140, 140, 140, 141, 141, - 142, 142, 142, 142, 142, 143, 143, 144, 144, 144, - 144, 145, 145, 145, 145, 145, 145, 145, 145, 146, - 146, 146, 147, 148, 148, 149, 150, 150, 151, 151, - 152, 152, 152, 153, 153, 154, 154, 155, 155, 156, - 156, 157, 157, 158, 158, 159, 159, 160, 160, 160, - 160, 161, 161, 161, 161, 161, 162, 163, 164, 164, - 164, 164, 165, 165, 165, 165, 166, 167, 167, 168, - 168, 168, 169, 169, 170, 170, 170, 171, 172, 173, - 173, 173, 174, 174, 175, 175, 176, 176, 177, 177, - 178, 179, 179, 180, 180, 180, 180, 181, 181, 182, - 182, 183, 183, 184, 184, 185, 186, 186, 186, 186, - 186, 186, 187, 187, 188, 188, 189, 189, 190, 190, - 190, 190, 191, 191, 192, 192, 193, 193, 194, 194, - 195, 195, 196, 196, 197, 198, 198, 199, 199, 200, - 200, 201, 201, 202, 202, 202, 202, 203, 204, 205, - 206, 206, 207, 207, 208, 208, 208, 208, 209, 210, - 210, 211, 211, 212, 212, 213, 213, 214, 214, 214, - 215, 215, 216, 216, 216, 216, 216, 217, 217, 217, + 129, 129, 129, 130, 131, 132, 132, 133, 133, 134, + 134, 134, 134, 135, 135, 136, 136, 137, 137, 138, + 138, 139, 139, 140, 140, 140, 140, 140, 140, 140, + 141, 141, 142, 142, 142, 142, 142, 143, 143, 144, + 144, 144, 144, 145, 145, 145, 145, 145, 145, 145, + 145, 146, 146, 146, 147, 148, 148, 149, 150, 150, + 151, 151, 152, 152, 152, 153, 153, 154, 154, 155, + 155, 156, 156, 157, 157, 158, 158, 159, 159, 160, + 160, 160, 160, 161, 161, 161, 161, 161, 162, 163, + 164, 164, 164, 164, 165, 165, 165, 165, 166, 167, + 167, 168, 168, 168, 169, 169, 170, 170, 170, 171, + 172, 173, 173, 173, 174, 174, 175, 175, 176, 176, + 177, 177, 178, 179, 179, 180, 180, 180, 180, 181, + 181, 182, 182, 183, 183, 184, 184, 185, 186, 186, + 186, 186, 186, 186, 187, 187, 188, 188, 189, 189, + 190, 190, 190, 190, 191, 191, 192, 192, 193, 193, + 194, 194, 195, 195, 196, 196, 197, 198, 198, 199, + 199, 200, 200, 201, 201, 202, 202, 202, 202, 203, + 204, 205, 206, 206, 207, 207, 208, 208, 208, 208, + 209, 210, 210, 211, 211, 212, 212, 213, 213, 214, + 214, 214, 215, 215, 216, 216, 216, 216, 216, 217, 217, 217, 217, 217, 217, 217, 217, 217, 217, 217, - 217, 217, 217, 217, 217, 217, 217, 218, 219, 219, - 219, 219, 219, 219, 219, 220, 221, 221, 222, 222, - 222, 223, 223, 224, 224, 224, 225, 225, 225, 226, - 226, 227, 227, 228, 228, 229, 229, 230, 231, 231, - 232, 233, 233, 233, 234, 234, 235, 235, 236, 236, - 237, 238, 238, 239, 239, 240, 241, 242, 242, 243, - 243, 244, 245, 245, 246, 246, 247, 247, 248, 249, - 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, - 249, 250, 250, 250, 251, 252, 252, 253, 253, 254, - 254, 255, 256, 256, 257, 257, 257, 258, 258, 258, - 259, 259, 259, 260, 260, 261, 261, 261, 261, 261, - 262, 262, 263, 263, 264, 264, 264, 264, 264, 264, - 265, 265, 266, 266, 267, 267, 268, 268, 269, 269, - 270, 270, 270, 271, 271, 272, 272, 273, 273, 273, - 274, 274, 275, 275, 276, 277, 277, 277, 278, 278, - 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, - 279, 280, 280, 280, 281, 281, 282, 282, 283, 283, - 284, 284, 285, 285, 286, 286, 286, 287, 287, 287, - 287, 287, 287, 288, 288, 289, 289, 289, 289, 290, - 290, 290, 291, 291, 291, 291, 292, 292, 292, 292, - 292, 293, 294, 295, 295, 295, 295, 295, 296, 296, - 296, 296, 297, 298, 299, 299, 300, 301, 301, 302, - 303, 303, 304, 304, 305, 306, 306, 306, 306, 307, - 307, 308, 308, 308, 308, 309, 309, 309 + 217, 217, 217, 217, 217, 217, 217, 217, 217, 218, + 219, 219, 219, 219, 219, 219, 219, 220, 221, 221, + 222, 222, 222, 223, 223, 224, 224, 224, 225, 225, + 225, 226, 226, 227, 227, 228, 228, 229, 229, 230, + 231, 231, 232, 233, 233, 233, 234, 234, 235, 235, + 236, 236, 237, 238, 238, 239, 239, 240, 241, 242, + 242, 243, 243, 244, 245, 245, 246, 246, 247, 247, + 248, 249, 249, 249, 249, 249, 249, 249, 249, 249, + 249, 249, 249, 250, 250, 250, 251, 252, 252, 253, + 253, 254, 254, 255, 256, 256, 257, 257, 257, 257, + 257, 257, 257, 258, 258, 258, 259, 259, 260, 260, + 260, 260, 260, 261, 261, 262, 262, 263, 263, 263, + 263, 263, 263, 264, 264, 265, 265, 266, 266, 267, + 267, 268, 268, 268, 268, 269, 269, 269, 270, 270, + 271, 271, 272, 272, 272, 273, 273, 274, 275, 275, + 275, 276, 276, 276, 276, 276, 276, 276, 276, 276, + 276, 276, 276, 277, 278, 278, 278, 279, 279, 280, + 280, 281, 281, 282, 282, 283, 283, 284, 284, 284, + 285, 285, 285, 285, 285, 285, 286, 286, 287, 287, + 287, 287, 288, 288, 288, 289, 289, 289, 289, 290, + 290, 290, 290, 290, 291, 292, 293, 293, 293, 293, + 293, 294, 294, 294, 294, 295, 296, 297, 297, 298, + 299, 299, 300, 301, 301, 302, 302, 303, 303, 303, + 303, 304, 304, 305, 305, 305, 305, 306, 306, 306 }; } @@ -2956,52 +5718,52 @@ private static final byte[] yyr2_init() 0, 2, 1, 1, 1, 1, 1, 1, 1, 1, 3, 0, 1, 1, 2, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, - 1, 1, 2, 5, 6, 0, 1, 2, 4, 6, - 0, 1, 0, 1, 2, 3, 1, 1, 1, 1, - 2, 4, 3, 5, 3, 5, 3, 5, 1, 3, - 0, 1, 2, 1, 2, 1, 2, 1, 1, 2, - 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 6, 0, 1, 3, 1, 3, 2, 1, - 1, 4, 3, 0, 2, 0, 2, 1, 3, 1, - 3, 0, 1, 2, 3, 1, 2, 2, 1, 2, - 1, 1, 1, 1, 1, 1, 3, 5, 2, 3, - 3, 4, 4, 4, 6, 6, 4, 4, 5, 0, - 1, 3, 3, 4, 0, 1, 2, 6, 3, 0, - 1, 3, 3, 5, 2, 3, 1, 2, 1, 3, - 3, 1, 3, 1, 3, 2, 4, 3, 4, 0, - 1, 1, 3, 1, 1, 2, 4, 5, 4, 4, - 3, 3, 4, 5, 1, 3, 3, 2, 2, 3, - 1, 3, 0, 2, 1, 1, 0, 1, 1, 2, - 3, 2, 1, 1, 5, 0, 1, 2, 3, 2, - 3, 2, 3, 1, 1, 1, 1, 3, 2, 4, - 2, 3, 2, 3, 1, 1, 1, 1, 7, 0, - 2, 2, 3, 1, 2, 2, 1, 1, 1, 2, - 2, 2, 1, 1, 1, 1, 1, 1, 1, 2, - 3, 5, 5, 7, 2, 3, 2, 3, 2, 3, - 5, 3, 3, 3, 4, 3, 5, 3, 1, 1, - 1, 1, 1, 1, 1, 6, 0, 2, 3, 3, - 4, 1, 2, 4, 3, 5, 0, 1, 2, 1, - 2, 2, 3, 2, 1, 1, 3, 5, 1, 1, - 9, 0, 1, 1, 0, 1, 1, 3, 0, 1, - 7, 0, 1, 1, 2, 5, 4, 1, 3, 0, - 1, 2, 3, 4, 1, 3, 1, 1, 1, 1, - 4, 4, 1, 3, 3, 1, 1, 1, 1, 1, - 1, 1, 3, 3, 5, 2, 2, 2, 4, 0, - 1, 3, 1, 3, 1, 2, 3, 0, 2, 2, - 3, 3, 5, 4, 4, 2, 5, 5, 5, 7, - 2, 3, 1, 3, 4, 4, 4, 4, 6, 4, - 4, 4, 1, 2, 3, 4, 1, 1, 3, 3, - 2, 3, 3, 1, 3, 1, 3, 4, 4, 5, - 1, 1, 1, 1, 3, 1, 1, 1, 1, 1, + 1, 1, 2, 5, 6, 0, 1, 1, 2, 3, + 4, 5, 6, 0, 1, 2, 3, 1, 1, 0, + 1, 1, 2, 4, 3, 5, 3, 5, 3, 5, + 1, 3, 0, 1, 2, 1, 2, 1, 2, 1, + 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 6, 0, 1, 3, 1, 3, + 2, 1, 1, 4, 3, 0, 2, 0, 2, 1, + 3, 1, 3, 0, 1, 2, 3, 1, 2, 2, + 1, 2, 1, 1, 1, 1, 1, 1, 3, 5, + 2, 3, 3, 4, 4, 4, 6, 6, 4, 4, + 5, 0, 1, 3, 3, 4, 0, 1, 2, 6, + 3, 0, 1, 3, 3, 5, 2, 3, 1, 2, + 1, 3, 3, 1, 3, 1, 3, 2, 4, 3, + 4, 0, 1, 1, 3, 1, 1, 2, 4, 5, + 4, 4, 3, 3, 4, 5, 1, 3, 3, 2, + 2, 3, 1, 3, 0, 2, 1, 1, 0, 1, + 1, 2, 3, 2, 1, 1, 5, 0, 1, 2, + 3, 2, 3, 2, 3, 1, 1, 1, 1, 3, + 2, 4, 2, 3, 2, 3, 1, 1, 1, 1, + 7, 0, 2, 2, 3, 1, 2, 2, 1, 1, + 1, 2, 2, 2, 1, 1, 1, 1, 1, 1, + 1, 2, 3, 5, 5, 7, 2, 3, 2, 3, + 2, 3, 5, 3, 3, 3, 4, 3, 5, 3, + 1, 1, 1, 1, 1, 1, 1, 6, 0, 2, + 3, 3, 4, 1, 2, 4, 3, 5, 0, 1, + 2, 1, 2, 2, 3, 2, 1, 1, 3, 5, + 1, 1, 9, 0, 1, 1, 0, 1, 1, 3, + 0, 1, 7, 0, 1, 1, 2, 5, 4, 1, + 3, 0, 1, 2, 3, 4, 1, 3, 1, 1, + 1, 1, 4, 4, 1, 3, 3, 1, 1, 1, + 1, 1, 1, 1, 3, 3, 5, 2, 2, 2, + 4, 0, 1, 3, 1, 3, 1, 1, 3, 3, + 2, 4, 4, 3, 3, 5, 4, 4, 2, 5, + 5, 5, 7, 2, 3, 1, 3, 4, 4, 4, + 4, 6, 4, 4, 4, 1, 2, 3, 4, 1, + 1, 3, 3, 3, 3, 2, 3, 3, 1, 3, + 1, 3, 4, 4, 5, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 2, 0, 4, 4, 1, 3, 1, 3, 1, 3, - 1, 3, 1, 3, 1, 3, 3, 1, 3, 3, + 1, 1, 1, 2, 0, 4, 4, 1, 3, 1, + 3, 1, 3, 1, 3, 1, 3, 1, 3, 3, + 1, 3, 3, 3, 3, 1, 3, 3, 1, 3, 3, 3, 1, 3, 3, 1, 3, 3, 3, 1, - 3, 3, 1, 3, 3, 3, 1, 1, 2, 2, - 1, 2, 2, 1, 2, 2, 1, 1, 1, 1, - 1, 1, 2, 2, 2, 2, 3, 1, 3, 5, - 0, 1, 1, 2, 3, 0, 4, 5, 5, 3, - 5, 1, 3, 3, 1, 0, 1, 3 + 1, 2, 2, 1, 2, 2, 1, 2, 2, 1, + 1, 1, 1, 1, 1, 2, 2, 2, 2, 3, + 1, 3, 5, 0, 1, 1, 2, 2, 4, 5, + 5, 3, 5, 1, 3, 3, 1, 0, 1, 3 }; } @@ -3068,12 +5830,13 @@ private static final byte[] yytranslate_table_init() } - private static final int YYLAST_ = 4450; + private static final int YYLAST_ = 4501; private static final int YYEMPTY_ = -2; - private static final int YYFINAL_ = 34; + private static final int YYFINAL_ = 35; private static final int YYNTOKENS_ = 122; } -/* "src/main/resources/Java_16_Grammar.y":1324 */ +/* "src/main/resources/Java_16_Grammar.y":1453 */ + diff --git a/src/main/java/translator/Translator.java b/src/main/java/translator/Translator.java new file mode 100644 index 00000000..fa8cf92f --- /dev/null +++ b/src/main/java/translator/Translator.java @@ -0,0 +1,39 @@ +package translator; + +import eotree.*; +import tree.Compilation.Package; +import tree.Compilation.TopLevelComponent; + +import java.util.ArrayList; +import java.util.Optional; +import java.util.stream.Collectors; + +public class Translator { + public EOProgram translate(Package pkg) { + return new EOProgram( + new EOLicense(), // TODO: add license? + new EOMetas( + Optional.of( + String.join(".", pkg.compoundName.names) + ), + new ArrayList<>() + ), + pkg.components.components + .stream() + .map(this::mapTopLevelComponent) + .collect(Collectors.toList()) + ); + } + + private EOBnd mapTopLevelComponent(TopLevelComponent component) { + if (component.classDecl != null) { + // TODO: implement + throw new IllegalStateException("Not implemented"); + } else if (component.interfaceDecl != null) { + // TODO: implement + throw new IllegalStateException("Not implemented"); + } else { + throw new IllegalArgumentException("Supplied TopLevelComponent does not have neither class nor interface"); + } + } +} diff --git a/src/main/java/tree/AnnoElementValue.java b/src/main/java/tree/AnnoElementValue.java new file mode 100644 index 00000000..077a1647 --- /dev/null +++ b/src/main/java/tree/AnnoElementValue.java @@ -0,0 +1,5 @@ +package tree; + +public class AnnoElementValue extends Entity +{ +} diff --git a/src/main/java/tree/AnnoParameterList.java b/src/main/java/tree/AnnoParameterList.java new file mode 100644 index 00000000..04e727e2 --- /dev/null +++ b/src/main/java/tree/AnnoParameterList.java @@ -0,0 +1,22 @@ +package tree; + +// AnnoParameterList +// : IDENTIFIER EQUAL ElementValue +// | AnnoParameterList COMMA IDENTIFIER EQUAL ElementValue +// ; +// +// ElementValue +// : ConditionalExpression +// | LBRACE ElementValueListOpt RBRACE +// | LBRACE COMMA RBRACE +// | Annotation +// ; +// +// ElementValueListOpt +// : //empty +// | ElementValue +// | ElementValueListOpt COMMA ElementValue +// ; +public class AnnoParameterList extends Entity +{ +} diff --git a/src/main/java/tree/Annotation.java b/src/main/java/tree/Annotation.java index ba0dba72..9f73f804 100644 --- a/src/main/java/tree/Annotation.java +++ b/src/main/java/tree/Annotation.java @@ -1,6 +1,45 @@ package tree; +// Annotation +// : AT CompoundName +// | AT CompoundName LPAREN RPAREN +// | AT CompoundName LPAREN AnnoParameterList RPAREN +// | AT CompoundName LPAREN ElementValue RPAREN +// ; public class Annotation extends Entity { + // Structure + public CompoundName compoundName; + public AnnoParameterList annoParameterList; + + // Creation + public Annotation(CompoundName cn, AnnoParameterList apl) + { + this.compoundName = cn; + this.annoParameterList = apl; + } + public Annotation(CompoundName cn, AnnoElementValue aev) + { + this.compoundName = cn; + this.annoParameterList = new AnnoParameterList(); + // this.annoParameterList.add + + } + + // Reporting + public void report(int sh) + { + Entity.doShift(sh); + System.out.print("ANNOTATION "); + compoundName.report(0); + System.out.println(); + annoParameterList.report(sh+Entity.shift); + } + + // Generation + public void generateEO() + { + + } } diff --git a/src/main/java/tree/Annotations.java b/src/main/java/tree/Annotations.java new file mode 100644 index 00000000..e6c02b28 --- /dev/null +++ b/src/main/java/tree/Annotations.java @@ -0,0 +1,36 @@ +package tree; + +import java.util.ArrayList; + +public class Annotations extends Entity +{ + // Structure + public ArrayList annotations; + + // Creation + public Annotations(Annotation ann) + { + this.annotations = new ArrayList(); + this.annotations.add(ann); + } + public Annotations add(Annotation ann) + { + this.annotations.add(ann); + return this; + } + + // Reporting + public void report(int sh) + { + for ( Annotation ann: annotations) + { + ann.report(sh); + } + } + + // Generation + public void generateEO() + { + + } +} diff --git a/src/main/java/tree/BinaryExpression.java b/src/main/java/tree/BinaryExpression.java deleted file mode 100644 index d9533831..00000000 --- a/src/main/java/tree/BinaryExpression.java +++ /dev/null @@ -1,66 +0,0 @@ -package tree; - -public class BinaryExpression extends Expression -{ - public enum operator - { - op_plus, // + - op_minus, // - - op_multiply, // * - op_divide, // / - op_remainder, // % - op_less, // < - op_greater, // > - op_less_equal, // <= - op_greater_equal, // >= - op_equal, // == - op_nonequal, // != - op_left_shift, // << - op_right_shift, // >> - op_right_shift_arithm, // >>> - op_conditional_or, // || - op_conditional_and, // && - op_inclusive_or, // | - op_exclusive_or, // ^ - op_and, // & - - // Assignment operators - op_assign, // = - op_assign_mult, // *= - op_assign_divide, // /= - op_assign_rem, // %= - op_assign_plus, // += - op_assign_minus, // -= - op_assign_lshift, // <<= - op_assign_rshift, // >>= - op_assign_rashift, // >>>= - op_assign__and, // &= - op_assign_exor, // ^= - op_assign_incor, // |= - } - - // Structure - public Expression left; - public Expression right; - public operator sign; - - // Creation - public BinaryExpression(Expression l, Expression r, operator op) - { - this.left = l; - this.right = r; - this.sign = op; - } - - // Reporting - public void report(int sh) - { - - } - - // Generation - public void generateEO() - { - - } -} diff --git a/src/main/java/tree/BlockStatementElem.java b/src/main/java/tree/BlockStatementElem.java deleted file mode 100644 index 6f04ceef..00000000 --- a/src/main/java/tree/BlockStatementElem.java +++ /dev/null @@ -1,37 +0,0 @@ -package tree; - -// BlockStatement -// : ModifierSeqOpt BlockDeclaration -// | Statement -// ; -public class BlockStatementElem extends Entity -{ - // Structure: either a declaration OR a statement - public Declaration declaration; - public Statement statement; - - // Creation - public BlockStatementElem(Declaration d) - { - this.declaration = d; - this.statement = null; - } - public BlockStatementElem(Statement stmt) - { - this.declaration = null; - this.statement = stmt; - } - - // Reporting - public void report(int sh) - { - - } - - // Generation - public void generateEO() - { - - } - -} diff --git a/src/main/java/tree/CastExpression.java b/src/main/java/tree/CastExpression.java deleted file mode 100644 index 2bbad10c..00000000 --- a/src/main/java/tree/CastExpression.java +++ /dev/null @@ -1,42 +0,0 @@ -package tree; - -import java.util.ArrayList; - -// CastExpression -// : TargetType UnaryExpression -// | TargetType LambdaExpression -// ; -// -// TargetType -// : LPAREN TypeList RPAREN -// ; -// -// TypeList -// : Type -// | TypeList AMPERSAND Type -// ; -public class CastExpression extends Expression -{ - // Structure - public ArrayList targetType; - public Expression expression; - - // Creation - public CastExpression(ArrayList tt, Expression expr) - { - this.targetType = tt; - this.expression = expr; - } - - // Reporting - public void report(int sh) - { - - } - - // Generation - public void generateEO() - { - - } -} diff --git a/src/main/java/tree/CatchClause.java b/src/main/java/tree/CatchClause.java deleted file mode 100644 index 474bee6b..00000000 --- a/src/main/java/tree/CatchClause.java +++ /dev/null @@ -1,45 +0,0 @@ -package tree; - -import java.util.ArrayList; - -// CatchClause -// : CATCH LPAREN CatchFormalParameter RPAREN Block -// ; -// -// CatchFormalParameter -// : ModifierSeqOpt CatchType IDENTIFIER DimsOpt -// ; -// -// CatchType -// : Type -// | CatchType VERTICAL Type -// ; -public class CatchClause extends Entity -{ - // Structure - public Modifiers modifiers; - public ArrayList types; - public String identifier; - public BlockStatement block; - - // Creation - public CatchClause(Modifiers mods, ArrayList ts, String id, BlockStatement b) - { - this.modifiers = mods; - this.types = ts; - this.identifier = id; - this.block = b; - } - - // Reporting - public void report(int sh) - { - - } - - // Generation - public void generateEO() - { - - } -} diff --git a/src/main/java/tree/CompilationUnit.java b/src/main/java/tree/Compilation/CompilationUnit.java similarity index 79% rename from src/main/java/tree/CompilationUnit.java rename to src/main/java/tree/Compilation/CompilationUnit.java index 3d79dc36..3233e228 100644 --- a/src/main/java/tree/CompilationUnit.java +++ b/src/main/java/tree/Compilation/CompilationUnit.java @@ -1,4 +1,6 @@ -package tree; +package tree.Compilation; + +import tree.Entity; // CompilationUnit // : // empty diff --git a/src/main/java/tree/Compilation/Module.java b/src/main/java/tree/Compilation/Module.java new file mode 100644 index 00000000..f2309ce3 --- /dev/null +++ b/src/main/java/tree/Compilation/Module.java @@ -0,0 +1,6 @@ +package tree.Compilation; + +public class Module extends CompilationUnit +{ +} + diff --git a/src/main/java/tree/Compilation/Package.java b/src/main/java/tree/Compilation/Package.java new file mode 100644 index 00000000..77a46690 --- /dev/null +++ b/src/main/java/tree/Compilation/Package.java @@ -0,0 +1,42 @@ +package tree.Compilation; + +import tree.Declaration.ImportDeclarations; +import tree.*; + +// Package +// : PACKAGE CompoundName SEMICOLON ImportDeclarationSeqOpt TopLevelComponentSeqOpt +// ; +public class Package extends CompilationUnit +{ + // Structure + public CompoundName compoundName; + public ImportDeclarations imports; + public TopLevelComponents components; + + // Creation + public Package(CompoundName cn, ImportDeclarations ims, TopLevelComponents cs) + { + this.compoundName = cn; + this.imports = ims; + this.components = cs; + } + + // Reporting + public void report(int sh) + { + Entity.doShift(sh); + System.out.print("PACKAGE "); + compoundName.report(0); + System.out.println(); + + imports.report(sh); + components.report(sh); + } + + // Generation + public void generateEO() + { + + } + +} diff --git a/src/main/java/tree/Compilation/SimpleCompilationUnit.java b/src/main/java/tree/Compilation/SimpleCompilationUnit.java new file mode 100644 index 00000000..f9a20a87 --- /dev/null +++ b/src/main/java/tree/Compilation/SimpleCompilationUnit.java @@ -0,0 +1,36 @@ +package tree.Compilation; + +import tree.Declaration.ImportDeclarations; + +// CompilationUnit +// : %empty +// | Package +// | Module +// | ImportDeclarationSeqOpt TopLevelComponentSeq <===== +// ; +public class SimpleCompilationUnit extends CompilationUnit +{ + // Structure + public ImportDeclarations imports; + public TopLevelComponents components; + + // Creation + public SimpleCompilationUnit(ImportDeclarations ids, TopLevelComponents tlcs) + { + this.imports = ids; + this.components =tlcs; + } + + // Reporting + public void report(int sh) + { + if ( imports != null ) imports.report(sh); + if ( components != null ) components.report(sh); + } + + // Generation + public void generateEO() + { + + } +} diff --git a/src/main/java/tree/Compilation/TopLevelComponent.java b/src/main/java/tree/Compilation/TopLevelComponent.java new file mode 100644 index 00000000..ab87cd73 --- /dev/null +++ b/src/main/java/tree/Compilation/TopLevelComponent.java @@ -0,0 +1,50 @@ +package tree.Compilation; + +import tree.Declaration.*; +import tree.Declaration.InterfaceDeclaration; +import tree.Entity; +import tree.Modifiers; + +// TopLevelComponent +// : ClassDeclaration +// | InterfaceDeclaration +// ; +public class TopLevelComponent extends Entity +{ + // Structure: either first OR second + public ClassDeclaration classDecl; + public InterfaceDeclaration interfaceDecl; + + // Creation + public TopLevelComponent(ClassDeclaration cd) + { + this.classDecl = cd; + this.interfaceDecl = null; + } + public TopLevelComponent(InterfaceDeclaration id) + { + this.classDecl = null; + this.interfaceDecl = id; + } + public void addModifiers(Modifiers mods) + { + Declaration decl = classDecl != null ? classDecl : interfaceDecl; + decl.modifiers = mods; + } + + // Reporting + public void report(int sh) + { + if ( this.classDecl != null ) + this.classDecl.report(sh); + else + this.interfaceDecl.report(sh); + } + + // Generation + public void generateEO() + { + + } + +} diff --git a/src/main/java/tree/Compilation/TopLevelComponents.java b/src/main/java/tree/Compilation/TopLevelComponents.java new file mode 100644 index 00000000..fb5e5898 --- /dev/null +++ b/src/main/java/tree/Compilation/TopLevelComponents.java @@ -0,0 +1,41 @@ +package tree.Compilation; + +import tree.Entity; +import java.util.ArrayList; + +// TopLevelComponentSeq +// : ModifierSeqOpt TopLevelComponent +// | TopLevelComponentSeq ModifierSeqOpt TopLevelComponent +// ; +public class TopLevelComponents extends Entity +{ + // Structure + public ArrayList components; + + // Creation + public TopLevelComponents(TopLevelComponent tlc) + { + this.components = new ArrayList<>(); + this.components.add(tlc); + } + public TopLevelComponents add(TopLevelComponent tlc) + { + this.components.add(tlc); + return this; + } + + // Reporting + public void report(int sh) + { + for (TopLevelComponent tlc: components) + { + tlc.report(sh); + } + } + + // Generation + public void generateEO() + { + + } +} diff --git a/src/main/java/tree/CompoundName.java b/src/main/java/tree/CompoundName.java new file mode 100644 index 00000000..6c79eb75 --- /dev/null +++ b/src/main/java/tree/CompoundName.java @@ -0,0 +1,47 @@ +package tree; + +import java.util.ArrayList; + +// %nterm CompoundName +// +// CompoundName +// : IDENTIFIER { $$ = new CompoundName($1.image); } +// | CompoundName DOT IDENTIFIER { $$ = $1.add($3.image); } +// ; +public class CompoundName extends Entity +{ + // Structure + public ArrayList names; + + // Creation + public CompoundName(String first) + { + names = new ArrayList<>(); + names.add(first); + } + + // Adding + public CompoundName add(String next) + { + names.add(next); + return this; + } + + // Reporting + public void report(int sh) + { + Entity.doShift(sh); + for (int i=1; i<=names.size(); i++) + { + System.out.print(names.get(i)); + if ( i < names.size() ) + System.out.print("."); + } + } + + // Generation + public void generateEO() + { + + } +} diff --git a/src/main/java/tree/Conditional.java b/src/main/java/tree/Conditional.java deleted file mode 100644 index 1c15baef..00000000 --- a/src/main/java/tree/Conditional.java +++ /dev/null @@ -1,29 +0,0 @@ -package tree; - -public class Conditional extends Expression -{ - // Structure - public Expression condition; - public Expression truePart; - public Expression falsePart; - - // Creation - public Conditional(Expression c, Expression t, Expression f) - { - this.condition = c; - this.truePart = t; - this.falsePart = f; - } - - // Reporting - public void report(int sh) - { - - } - - // Generation - public void generateEO() - { - - } -} diff --git a/src/main/java/tree/Declaration/CatchParameter.java b/src/main/java/tree/Declaration/CatchParameter.java new file mode 100644 index 00000000..d3d430d2 --- /dev/null +++ b/src/main/java/tree/Declaration/CatchParameter.java @@ -0,0 +1,47 @@ +package tree.Declaration; + +import lexer.*; +import tree.*; +import tree.Type.TypeList; + +// CatchFormalParameter +// : ModifierSeqOpt CatchType IDENTIFIER DimsOpt +// ; +// +//CatchType +// : Type +// | CatchType VERTICAL Type +// ; +public class CatchParameter extends ParameterDeclaration +{ + // Structure + + // From the base class: +// public Modifiers modifiers; +// public Type type; -- not used here +// public String name; +// public Annotations ellAnnotations; -- not used here +// public boolean signEllipsis; -- not used here +// public Dims dims; + // Own attributes: + public TypeList catchTypes; + + // Creation + public CatchParameter(Modifiers mods,TypeList types,Token id,Dims dims) + { + super(mods,null,id.image,null,false,dims); + this.catchTypes = types; + } + + // Reporting + public void report(int sh) + { + + } + + // Generation + public void generateEO() + { + + } +} diff --git a/src/main/java/tree/ClassDeclaration.java b/src/main/java/tree/Declaration/ClassDeclaration.java similarity index 87% rename from src/main/java/tree/ClassDeclaration.java rename to src/main/java/tree/Declaration/ClassDeclaration.java index beca2974..52d5ef2b 100644 --- a/src/main/java/tree/ClassDeclaration.java +++ b/src/main/java/tree/Declaration/ClassDeclaration.java @@ -1,4 +1,6 @@ -package tree; +package tree.Declaration; + +import tree.Modifiers; // ClassDeclaration // : NormalClassDeclaration diff --git a/src/main/java/tree/ClassInitializer.java b/src/main/java/tree/Declaration/ClassInitializer.java similarity index 75% rename from src/main/java/tree/ClassInitializer.java rename to src/main/java/tree/Declaration/ClassInitializer.java index f9e4d186..54bcc309 100644 --- a/src/main/java/tree/ClassInitializer.java +++ b/src/main/java/tree/Declaration/ClassInitializer.java @@ -1,4 +1,7 @@ -package tree; +package tree.Declaration; + +import tree.Declaration.Declaration; +import tree.Statement.Block; // ClassBodyDeclaration // : ... @@ -9,11 +12,11 @@ public class ClassInitializer extends Declaration { // Structure - public BlockStatement block; + public Block block; public boolean signStatic; // Creation - public ClassInitializer(BlockStatement b, boolean ss) + public ClassInitializer(Block b, boolean ss) { super(null,null,null); this.block = b; diff --git a/src/main/java/tree/Declaration/ConstructorBody.java b/src/main/java/tree/Declaration/ConstructorBody.java new file mode 100644 index 00000000..ff4e7a6b --- /dev/null +++ b/src/main/java/tree/Declaration/ConstructorBody.java @@ -0,0 +1,36 @@ +package tree.Declaration; + +import tree.Entity; +import tree.Statement.*; + +// ConstructorBody +// : LBRACE RBRACE +// | LBRACE ExplicitConstructorInvocation RBRACE +// | LBRACE BlockStatementSeq RBRACE +// | LBRACE ExplicitConstructorInvocation BlockStatementSeq RBRACE +// ; +public class ConstructorBody extends Entity +{ + // Structure + public ExplicitConstructorInvocation invocation; + public Block block; + + // Creation + public ConstructorBody(ExplicitConstructorInvocation inv, Block block) + { + this.invocation = inv; + this.block = block; + } + + // Reporting + public void report(int sh) + { + + } + + // Generation + public void generateEO() + { + + } +} diff --git a/src/main/java/tree/Declaration/ConstructorDeclaration.java b/src/main/java/tree/Declaration/ConstructorDeclaration.java new file mode 100644 index 00000000..b1c5c693 --- /dev/null +++ b/src/main/java/tree/Declaration/ConstructorDeclaration.java @@ -0,0 +1,61 @@ +package tree.Declaration; + +import tree.*; +import tree.Statement.Block; +import tree.Type.Type; +import tree.Type.TypeList; +import tree.Type.TypeParameters; + +// ConstructorDeclaration +// : /*ModifierSeqOpt*/ ConstructorDeclarator ThrowsOpt ConstructorBody +// ; +// +//ConstructorDeclarator +// : TypeParametersOpt IDENTIFIER LPAREN FormalParameterList/*FormalParameters*/ RPAREN +// ; +// +//ConstructorBody +// : LBRACE RBRACE +// | LBRACE ExplicitConstructorInvocation RBRACE +// | LBRACE BlockStatementSeq RBRACE +// | LBRACE ExplicitConstructorInvocation BlockStatementSeq RBRACE +// ; +public class ConstructorDeclaration extends MethodDeclaration +{ + // Structure: all from the base class +// public Modifiers modifiers; +// public TypeParameters typeParameters; +// public Type type; // always null +// public String name; // always null +// public ReceiverDeclaration receiver; +// public ParameterDeclarations parameters; +// public Dims dims; // always null +// public TypeList exceptions; + public ExplicitConstructorInvocation invocation; +// public Block methodBody; + + // Creation + public ConstructorDeclaration(Modifiers mods, + TypeParameters typePars, + ParameterDeclarations pars, + TypeList excs, + ExplicitConstructorInvocation inv, + Block body) + { + super(mods,typePars,null,null,pars,null,excs,body); + this.invocation = inv; + } + + // Reporting + public void report(int sh) + { + title("CONSTRUCTOR",sh); + } + + // Generation + public void generateEO() + { + + } + +} diff --git a/src/main/java/tree/Declaration/ConstructorDeclarator.java b/src/main/java/tree/Declaration/ConstructorDeclarator.java new file mode 100644 index 00000000..0f99d188 --- /dev/null +++ b/src/main/java/tree/Declaration/ConstructorDeclarator.java @@ -0,0 +1,35 @@ +package tree.Declaration; + +import tree.Entity; +import tree.Type.*; + +// Intermediate class: won't appear in the AST. +// +// ConstructorDeclarator +// : TypeParametersOpt IDENTIFIER LPAREN FormalParameterList/*FormalParameters*/ RPAREN +// ; +public class ConstructorDeclarator extends Entity +{ + // Structure + public TypeParameters typeParameters; + public ParameterDeclarations formalParameters; + + // Creation + public ConstructorDeclarator(TypeParameters tpars, ParameterDeclarations pars) + { + this.typeParameters = tpars; + this.formalParameters = pars; + } + + // Reporting + public void report(int sh) + { + // Empty + } + + // Generation + public void generateEO() + { + // Empty + } +} diff --git a/src/main/java/tree/Declaration.java b/src/main/java/tree/Declaration/Declaration.java similarity index 76% rename from src/main/java/tree/Declaration.java rename to src/main/java/tree/Declaration/Declaration.java index a994ecd0..d350d40b 100644 --- a/src/main/java/tree/Declaration.java +++ b/src/main/java/tree/Declaration/Declaration.java @@ -1,4 +1,8 @@ -package tree; +package tree.Declaration; + +import tree.Entity; +import tree.Modifiers; +import tree.Type.Type; // ClassDeclaration // : NormalClassDeclaration @@ -46,4 +50,21 @@ public Declaration(Modifiers mods, String n, Type t) this.name = n; this.type = t; } + public Declaration addModifiers(Modifiers mods) + { + this.modifiers = mods; + return this; + } + + // Reporting + public void report(int sg) + { + + } + + // Generation + public void generateEO() + { + + } } diff --git a/src/main/java/tree/Declaration/Declarations.java b/src/main/java/tree/Declaration/Declarations.java new file mode 100644 index 00000000..1cb45049 --- /dev/null +++ b/src/main/java/tree/Declaration/Declarations.java @@ -0,0 +1,52 @@ +package tree.Declaration; + +import tree.Entity; +import java.util.*; + +public class Declarations extends Entity +{ + // Structure + public ArrayList declarations; + + // Creation + public Declarations(Declaration d) + { + this.declarations = new ArrayList<>(); + deconstruct(d); + } + public Declarations add(Declaration d) + { + deconstruct(d); + return this; + } + private void deconstruct(Declaration d) + { + if ( d instanceof TypeAndDeclarators ) + { + TypeAndDeclarators tds = (TypeAndDeclarators)d; + for (VariableDeclarator declarator: tds.declarators.declarators) + { + VariableDeclaration variable = + new VariableDeclaration(tds.name,d.modifiers,d.type,declarator.dims,declarator.initializer); + this.declarations.add(variable); + } + } + else + this.declarations.add(d); + } + + // Reporting + public void report(int sh) + { + for (Declaration d: declarations) + { + d.report(sh); + } + } + + // Generation + public void generateEO() + { + + } +} diff --git a/src/main/java/tree/EnumDeclaration.java b/src/main/java/tree/Declaration/EnumDeclaration.java similarity index 92% rename from src/main/java/tree/EnumDeclaration.java rename to src/main/java/tree/Declaration/EnumDeclaration.java index da8e16d4..d60b5051 100644 --- a/src/main/java/tree/EnumDeclaration.java +++ b/src/main/java/tree/Declaration/EnumDeclaration.java @@ -1,4 +1,8 @@ -package tree; +package tree.Declaration; + +import tree.Declaration.Declaration; +import tree.Expression.*; +import tree.Modifiers; import java.util.ArrayList; diff --git a/src/main/java/tree/Declaration/ExplicitConstructorInvocation.java b/src/main/java/tree/Declaration/ExplicitConstructorInvocation.java new file mode 100644 index 00000000..408d1b14 --- /dev/null +++ b/src/main/java/tree/Declaration/ExplicitConstructorInvocation.java @@ -0,0 +1,43 @@ +package tree.Declaration; + +import tree.Entity; +import tree.Expression.*; +import tree.Type.*; + +// Intermediate class: won't appear in the AST +// +// ExplicitConstructorInvocation +// : TypeArgumentsOpt THIS Arguments SEMICOLON +// | TypeArgumentsOpt SUPER Arguments SEMICOLON +// | CompoundName DOT TypeArgumentsOpt SUPER Arguments SEMICOLON +// | Primary DOT TypeArgumentsOpt SUPER Arguments SEMICOLON +// ; +public class ExplicitConstructorInvocation extends Entity +{ + // Structure + public Expression expression; + public TypeArguments typeArguments; + public boolean thisORsuper; + public ArgumentList arguments; + + // Creation + public ExplicitConstructorInvocation(Expression expr, TypeArguments targs, boolean ts, ArgumentList args) + { + this.expression = expr; + this.typeArguments = targs; + this.thisORsuper = ts; + this.arguments = args; + } + + // Reporting + public void report(int sh) + { + + } + + // Generation + public void generateEO() + { + + } +} diff --git a/src/main/java/tree/ImportDeclaration.java b/src/main/java/tree/Declaration/ImportDeclaration.java similarity index 58% rename from src/main/java/tree/ImportDeclaration.java rename to src/main/java/tree/Declaration/ImportDeclaration.java index 1551f80b..d9a850e5 100644 --- a/src/main/java/tree/ImportDeclaration.java +++ b/src/main/java/tree/Declaration/ImportDeclaration.java @@ -1,4 +1,7 @@ -package tree; +package tree.Declaration; + +import tree.CompoundName; +import tree.Entity; import java.util.ArrayList; @@ -15,11 +18,11 @@ public class ImportDeclaration extends Entity { // Structure public boolean signStatic; - public ArrayList compoundName; + public CompoundName compoundName; public boolean signStar; // Creation - public ImportDeclaration(boolean stat, ArrayList cn, boolean star) + public ImportDeclaration(boolean stat, CompoundName cn, boolean star) { this.signStatic = stat; this.compoundName = cn; @@ -29,7 +32,12 @@ public ImportDeclaration(boolean stat, ArrayList cn, boolean star) // Reporting public void report(int sh) { - + Entity.doShift(sh); + System.out.print("IMPORT "); + if ( this.signStatic ) System.out.print("STATIC "); + compoundName.report(0); + if ( this.signStar ) System.out.print(".*"); + System.out.println(); } // Generation diff --git a/src/main/java/tree/Declaration/ImportDeclarations.java b/src/main/java/tree/Declaration/ImportDeclarations.java new file mode 100644 index 00000000..c84cff63 --- /dev/null +++ b/src/main/java/tree/Declaration/ImportDeclarations.java @@ -0,0 +1,42 @@ +package tree.Declaration; + +import tree.Entity; +import java.util.ArrayList; + +// ImportDeclarationSeqOpt +// : // empty +// | ImportDeclaration +// | ImportDeclarationSeqOpt ImportDeclaration +// ; +public class ImportDeclarations extends Entity +{ + // Structure + public ArrayList imports; + + // Creation + public ImportDeclarations(ImportDeclaration id) + { + this.imports = new ArrayList<>(); + this.imports.add(id); + } + public ImportDeclarations add(ImportDeclaration id) + { + imports.add(id); + return this; + } + + // Reporting + public void report(int sh) + { + for (ImportDeclaration id: imports) + { + id.report(sh); + } + } + + // Generation + public void generateEO() + { + + } +} diff --git a/src/main/java/tree/Declaration/InterfaceDeclaration.java b/src/main/java/tree/Declaration/InterfaceDeclaration.java new file mode 100644 index 00000000..2ee69c18 --- /dev/null +++ b/src/main/java/tree/Declaration/InterfaceDeclaration.java @@ -0,0 +1,20 @@ +package tree.Declaration; + +import tree.Declaration.Declaration; +import tree.Modifiers; + +public class InterfaceDeclaration extends Declaration +{ + // No structure + + // Creation + public InterfaceDeclaration(Modifiers m, String n) + { + super(m,n,null); + + } + + // No report + + // No generation +} diff --git a/src/main/java/tree/MethodDeclaration.java b/src/main/java/tree/Declaration/MethodDeclaration.java similarity index 68% rename from src/main/java/tree/MethodDeclaration.java rename to src/main/java/tree/Declaration/MethodDeclaration.java index 4e1881c9..c64cd644 100644 --- a/src/main/java/tree/MethodDeclaration.java +++ b/src/main/java/tree/Declaration/MethodDeclaration.java @@ -1,6 +1,8 @@ -package tree; +package tree.Declaration; -import java.util.ArrayList; +import tree.*; +import tree.Statement.Block; +import tree.Type.*; // MethodDeclaration // : MethodHeader MethodBody @@ -28,30 +30,28 @@ public class MethodDeclaration extends Declaration { // Structure // public Modifiers modifiers; - public ArrayList typeParameters; + public TypeParameters typeParameters; // public Type type; // public String name; - public ReceiverDeclaration receiver; - public ArrayList parameters; - public ArrayList dims; - public ArrayList exceptions; - public BlockStatement methodBody; +// public ReceiverDeclaration receiver; -- this is a special kind of ParameterDeclaration + public ParameterDeclarations parameters; + public Dims dims; + public TypeList exceptions; + public Block methodBody; // Creation public MethodDeclaration(Modifiers mods, - ArrayList typePars, + TypeParameters typePars, Type t, String n, - ReceiverDeclaration r, - ArrayList pars, - ArrayList dims, - ArrayList excs, - BlockStatement body) + ParameterDeclarations pars, + Dims dims, + TypeList excs, + Block body) { super(mods,n,t); this.typeParameters = typePars; this.parameters = pars; - this.receiver = r; this.dims = dims; this.exceptions = excs; this.methodBody = body; diff --git a/src/main/java/tree/NormalClassDeclaration.java b/src/main/java/tree/Declaration/NormalClassDeclaration.java similarity index 71% rename from src/main/java/tree/NormalClassDeclaration.java rename to src/main/java/tree/Declaration/NormalClassDeclaration.java index 23a9d95b..7cd3f8b0 100644 --- a/src/main/java/tree/NormalClassDeclaration.java +++ b/src/main/java/tree/Declaration/NormalClassDeclaration.java @@ -1,4 +1,9 @@ -package tree; +package tree.Declaration; + +import lexer.*; +import tree.Modifiers; +import tree.Type.*; +import tree.Type.TypeParameter; import java.util.ArrayList; @@ -35,21 +40,19 @@ public class NormalClassDeclaration extends ClassDeclaration { // Structure - public ArrayList typeParameters; + public TypeParameters typeParameters; public Type extendedType; - public ArrayList interfaces; - public ArrayList body; + public TypeList interfaces; + public Declarations body; // Creation - public NormalClassDeclaration(Modifiers mods, - String n, - ArrayList typePars, + public NormalClassDeclaration(Token n, + TypeParameters typePars, Type extType, - ArrayList ints, - ArrayList body) + TypeList ints, + Declarations body) { - super(mods,n); - this.modifiers = mods; + super(null,n.image); this.typeParameters = typePars; this.extendedType = extType; this.interfaces = ints; diff --git a/src/main/java/tree/Declaration/NormalInterfaceDeclaration.java b/src/main/java/tree/Declaration/NormalInterfaceDeclaration.java new file mode 100644 index 00000000..32d453bb --- /dev/null +++ b/src/main/java/tree/Declaration/NormalInterfaceDeclaration.java @@ -0,0 +1,43 @@ +package tree.Declaration; + +import lexer.*; +import tree.Entity; +import tree.Type.*; + +// NormalInterfaceDeclaration +// : INTERFACE IDENTIFIER TypeParametersOpt InterfaceExtendsOpt InterfaceBody +// ; +public class NormalInterfaceDeclaration extends InterfaceDeclaration +{ + // Structure + // public String identifier; + public TypeParameters typeParameters; + public TypeList extendingInterfaces; + public Declarations interfaceBody; + + // Creation + public NormalInterfaceDeclaration(Token id, TypeParameters typePars, TypeList extTypes, Declarations body) + { + super(null,id.image); + this.typeParameters = typePars; + this.extendingInterfaces = extTypes; + this.interfaceBody = body; + } + + // Reporting + public void report(int sh) + { + Entity.doShift(sh); + System.out.println("INTERFACE "+super.name); + if ( typeParameters != null ) typeParameters.report(sh+Entity.shift); + if ( extendingInterfaces != null ) extendingInterfaces.report(sh+Entity.shift); + if ( interfaceBody != null ) interfaceBody.report(sh+Entity.shift); + } + + // Generation + public void generateEO() + { + + } + +} diff --git a/src/main/java/tree/Declaration/ParameterDeclaration.java b/src/main/java/tree/Declaration/ParameterDeclaration.java new file mode 100644 index 00000000..e76cbacc --- /dev/null +++ b/src/main/java/tree/Declaration/ParameterDeclaration.java @@ -0,0 +1,85 @@ +package tree.Declaration; + +import lexer.Token; +import tree.*; +import tree.Modifiers; +import tree.Type.*; +import tree.Declaration.*; + +// FormalParameter +// : ModifierSeq UnannotatedType FormalParameterTail +// | UnannotatedType FormalParameterTail +// ; +// +// FormalParameterTail +// // Normal formal parameter +// : IDENTIFIER DimsOpt +// | AnnotationSeqOpt ELLIPSIS IDENTIFIER +// +// // ReceiverParameter +// | THIS +// | IDENTIFIER DOT THIS +// ; +public class ParameterDeclaration extends Declaration +{ + // Structure +// public Modifiers modifiers; +// public Type type; +// public String name; + public Annotations ellAnnotations; + public boolean signEllipsis; + public Dims dims; + + // Creation + public ParameterDeclaration(Modifiers mods, + Type t, + String n, + Annotations ellAnns, + boolean signEll, + Dims dims) + { + super(mods,n,t); + this.ellAnnotations = ellAnns; + this.signEllipsis = signEll; + this.dims = dims; + } + public ParameterDeclaration(Token token) + { + // For the single lambda parameter + this(null,null,token.image,null,false,null); + } + public static ParameterDeclaration create(Modifiers mods,Type type,ParameterTail tail) + { + if ( tail.thisSign ) // this is the receiver declaration + return createReceiver(mods,type,tail.identifier); + else // this is a usual parameter declaration + return createParameter(mods,type,tail.identifier,tail.annotations,tail.ellipsisSign,tail.dims); + } + private static ParameterDeclaration createParameter(Modifiers mods,Type t,String n, + Annotations ellAnns, boolean signEll,Dims dims) + { + return new ParameterDeclaration(mods,t,n,ellAnns,signEll,dims); + } + private static ReceiverDeclaration createReceiver(Modifiers mods,Type t,String n) + { + ReceiverDeclaration receiver = new ReceiverDeclaration(null,t,n); + receiver.modifiers = mods; + receiver.dims = null; + receiver.ellAnnotations = null; + receiver.signEllipsis = false; + return receiver; + } + + // Reporting + public void report(int sh) + { + + } + + // Generation + public void generateEO() + { + + } + +} diff --git a/src/main/java/tree/Declaration/ParameterDeclarations.java b/src/main/java/tree/Declaration/ParameterDeclarations.java new file mode 100644 index 00000000..1591a38c --- /dev/null +++ b/src/main/java/tree/Declaration/ParameterDeclarations.java @@ -0,0 +1,33 @@ +package tree.Declaration; + +import tree.Entity; +import java.util.ArrayList; + +public class ParameterDeclarations extends Entity +{ + // Structure + public ArrayList parameters; + + // Creation + public ParameterDeclarations(ParameterDeclaration par) + { + this.parameters = new ArrayList<>(); + this.parameters.add(par); + } + public ParameterDeclarations add(ParameterDeclaration par) + { + this.parameters.add(par); + return this; + } + + // Reporting + public void report(int sh) + { + } + + // Generation + public void generateEO() + { + + } +} diff --git a/src/main/java/tree/Declaration/ParameterTail.java b/src/main/java/tree/Declaration/ParameterTail.java new file mode 100644 index 00000000..94a86bd9 --- /dev/null +++ b/src/main/java/tree/Declaration/ParameterTail.java @@ -0,0 +1,44 @@ +package tree.Declaration; + +import lexer.*; +import tree.*; + +// Intermediate class; won't appear in the AST +// +// FormalParameterTail +// : IDENTIFIER DimsOpt +// | AnnotationSeqOpt ELLIPSIS IDENTIFIER +// | THIS // receiver +// | IDENTIFIER DOT THIS // receiver +// ; +public class ParameterTail extends Entity +{ + // Structure + public Annotations annotations; + public String identifier; + public Dims dims; + public boolean ellipsisSign; + public boolean thisSign; + + // Creation + public ParameterTail(Annotations anns,Token id,Dims dims,boolean ellSign,boolean thisSign) + { + this.annotations = anns; + this.identifier = id.image; + this.dims = dims; + this.ellipsisSign = ellSign; + this.thisSign = thisSign; + } + + // Reporting + public void report(int sh) + { + // empty + } + + // Generation + public void generateEO() + { + // Empty + } +} diff --git a/src/main/java/tree/ReceiverDeclaration.java b/src/main/java/tree/Declaration/ReceiverDeclaration.java similarity index 52% rename from src/main/java/tree/ReceiverDeclaration.java rename to src/main/java/tree/Declaration/ReceiverDeclaration.java index 8570d771..287e251f 100644 --- a/src/main/java/tree/ReceiverDeclaration.java +++ b/src/main/java/tree/Declaration/ReceiverDeclaration.java @@ -1,5 +1,7 @@ -package tree; +package tree.Declaration; +import tree.*; +import tree.Type.Type; import java.util.ArrayList; // FormalParameter @@ -13,32 +15,30 @@ // | AnnotationSeqOpt ELLIPSIS IDENTIFIER // // // ReceiverParameter -// | THIS -// | IDENTIFIER DOT THIS +// | THIS <<<======== +// | IDENTIFIER DOT THIS <<<======== // ; -public class ReceiverDeclaration extends Declaration +public class ReceiverDeclaration extends ParameterDeclaration { // Structure - public ArrayList annotations; + public Annotations annotations; // public Type type; // public String name; - public boolean signThis; // Creation - public ReceiverDeclaration(ArrayList anns, - Type t, - String n, - boolean signThis) + public ReceiverDeclaration(Annotations anns, Type t, String n) { - super(null,n,t); + super(null,t,n,null,false,null); this.annotations = anns; - this.signThis = signThis; } // Reporting public void report(int sh) { - + String n = (name != null) ? name+".THIS" : "THIS"; + title("RECEIVER "+n,sh); + type.report(sh+Entity.shift); + if ( annotations != null ) annotations.report(sh+Entity.shift); } // Generation diff --git a/src/main/java/tree/RecordComponent.java b/src/main/java/tree/Declaration/RecordComponent.java similarity index 91% rename from src/main/java/tree/RecordComponent.java rename to src/main/java/tree/Declaration/RecordComponent.java index 9820e090..b0bb3eb4 100644 --- a/src/main/java/tree/RecordComponent.java +++ b/src/main/java/tree/Declaration/RecordComponent.java @@ -1,4 +1,8 @@ -package tree; +package tree.Declaration; + +import tree.Annotation; +import tree.Modifiers; +import tree.Type.Type; import java.util.ArrayList; diff --git a/src/main/java/tree/RecordDeclaration.java b/src/main/java/tree/Declaration/RecordDeclaration.java similarity index 95% rename from src/main/java/tree/RecordDeclaration.java rename to src/main/java/tree/Declaration/RecordDeclaration.java index 5c6c3fe9..6343fc61 100644 --- a/src/main/java/tree/RecordDeclaration.java +++ b/src/main/java/tree/Declaration/RecordDeclaration.java @@ -1,4 +1,7 @@ -package tree; +package tree.Declaration; + +import tree.Modifiers; +import tree.Type.TypeParameter; import java.util.ArrayList; diff --git a/src/main/java/tree/Declaration/TypeAndDeclarators.java b/src/main/java/tree/Declaration/TypeAndDeclarators.java new file mode 100644 index 00000000..4a290b5d --- /dev/null +++ b/src/main/java/tree/Declaration/TypeAndDeclarators.java @@ -0,0 +1,24 @@ +package tree.Declaration; + +import tree.Type.*; + +// Intermediate class - wont't appear in the AST + +public class TypeAndDeclarators extends Declaration +{ + // Structure +// public Type type; -- in the base class + public VariableDeclarators declarators; + + // Creation + public TypeAndDeclarators(Type t, VariableDeclarators vds) + { + super(null,null,t); + this.declarators = vds; + } + + // Reporting + public void report(int sh) { } + // Generation + public void generateEO() { } +} diff --git a/src/main/java/tree/FieldDeclaration.java b/src/main/java/tree/Declaration/VariableDeclaration.java similarity index 56% rename from src/main/java/tree/FieldDeclaration.java rename to src/main/java/tree/Declaration/VariableDeclaration.java index f1c6c2cf..3c80821e 100644 --- a/src/main/java/tree/FieldDeclaration.java +++ b/src/main/java/tree/Declaration/VariableDeclaration.java @@ -1,7 +1,22 @@ -package tree; +package tree.Declaration; + +import lexer.*; +import tree.Dims; +import tree.Initializer; +import tree.Modifiers; +import tree.Type.Type; import java.util.ArrayList; +// ConstantDeclaration +// : Type VariableDeclaratorList SEMICOLON +// ; +// +// LocalVariableDeclaration +// : UnannotatedType VariableDeclaratorList +// | VAR VariableDeclaratorList +// ; +// // FieldDeclaration // : /*ModifierSeqOpt*/ UnannotatedType VariableDeclaratorList SEMICOLON // ; @@ -17,21 +32,21 @@ // | IDENTIFIER Dims // | IDENTIFIER Dims EQUAL ArrayInitializer // ; -public class FieldDeclaration extends Declaration +public class VariableDeclaration extends Declaration { // Structure public Modifiers modifiers; - public ArrayList dims; + public Dims dims; // Either a single expression, or a list of initializers public Initializer initializer; // Creation - public FieldDeclaration(String n, - Modifiers mods, - Type t, - ArrayList dims, - Initializer init) + public VariableDeclaration(String n, + Modifiers mods, + Type t, + Dims dims, + Initializer init) { super(mods,n,t); this.dims = dims; diff --git a/src/main/java/tree/Declaration/VariableDeclarator.java b/src/main/java/tree/Declaration/VariableDeclarator.java new file mode 100644 index 00000000..39ee1396 --- /dev/null +++ b/src/main/java/tree/Declaration/VariableDeclarator.java @@ -0,0 +1,40 @@ +package tree.Declaration; + +import lexer.*; +import tree.*; + +// Intermediate class: won't appear in the AST +// +// VariableDeclarator +// : IDENTIFIER +// | IDENTIFIER EQUAL Expression +// | IDENTIFIER Dims +// | IDENTIFIER Dims EQUAL ArrayInitializer +// ; +public class VariableDeclarator extends Entity +{ + // Structure + public String name; + public Dims dims; + public Initializer initializer; + + // Creation + public VariableDeclarator(Token id, Dims dims, Initializer init) + { + this.name = id.image; + this.dims = dims; + this.initializer = init; + } + + // Reporting + public void report(int sh) + { + // Empty + } + + // Generation + public void generateEO() + { + // Empty + } +} diff --git a/src/main/java/tree/Declaration/VariableDeclarators.java b/src/main/java/tree/Declaration/VariableDeclarators.java new file mode 100644 index 00000000..239e7706 --- /dev/null +++ b/src/main/java/tree/Declaration/VariableDeclarators.java @@ -0,0 +1,36 @@ +package tree.Declaration; + +import tree.Entity; +import java.util.ArrayList; + +// Intermediate class; won't appear in the AST +// +public class VariableDeclarators extends Entity +{ + // Structure + public ArrayList declarators; + + // Creation + public VariableDeclarators(VariableDeclarator decl) + { + this.declarators = new ArrayList<>(); + this.declarators.add(decl); + } + public VariableDeclarators add(VariableDeclarator decl) + { + this.declarators.add(decl); + return this; + } + + // Reporting + public void report(int sh) + { + // Empty + } + + // Generation + public void generateEO() + { + // Empty + } +} diff --git a/src/main/java/tree/Dim.java b/src/main/java/tree/Dim.java index 3dc5bef6..0032ea97 100644 --- a/src/main/java/tree/Dim.java +++ b/src/main/java/tree/Dim.java @@ -1,7 +1,5 @@ package tree; -import java.util.ArrayList; - // Dim // : AnnotationSeq LBRACKET RBRACKET // | LBRACKET RBRACKET @@ -9,10 +7,10 @@ public class Dim extends Entity { // Structure - public ArrayList annotations; + public Annotations annotations; // Creation - public Dim(ArrayList anns) + public Dim(Annotations anns) { this.annotations = anns; } @@ -20,7 +18,8 @@ public Dim(ArrayList anns) // Reporting public void report(int sh) { - + annotations.report(sh); + System.out.print("[]"); } // Generation diff --git a/src/main/java/tree/Dims.java b/src/main/java/tree/Dims.java new file mode 100644 index 00000000..b1abde06 --- /dev/null +++ b/src/main/java/tree/Dims.java @@ -0,0 +1,34 @@ +package tree; + +import java.util.ArrayList; + +public class Dims extends Entity +{ + // Structure + public ArrayList dimensions; + + // Creation + public Dims(Dim dim) + { + this.dimensions = new ArrayList<>(); + this.dimensions.add(dim); + } + public Dims add(Dim dim) + { + this.dimensions.add(dim); + return this; + } + + // Reporting + public void report(int sh) + { + for (int i=1; i<=dimensions.size(); i++) + System.out.print("[]"); + } + + // Generation + public void generateEO() + { + + } +} diff --git a/src/main/java/tree/Entity.java b/src/main/java/tree/Entity.java index a49006cd..622bd7a9 100644 --- a/src/main/java/tree/Entity.java +++ b/src/main/java/tree/Entity.java @@ -48,6 +48,13 @@ public static void doShift(int sh) System.out.print(" "); } + public void title(String n, int sh) + { + doShift(sh); + outUnique(); + System.out.println(n); + } + public void report(int sh) { diff --git a/src/main/java/tree/Expression/ArgumentList.java b/src/main/java/tree/Expression/ArgumentList.java new file mode 100644 index 00000000..405eda62 --- /dev/null +++ b/src/main/java/tree/Expression/ArgumentList.java @@ -0,0 +1,48 @@ +package tree.Expression; + +import tree.Entity; +import tree.Expression.*; +import java.util.ArrayList; + +// Arguments +// : LPAREN RPAREN +// | LPAREN ArgumentList RPAREN +// ; +// +// ArgumentList +// : Expression +// | ArgumentList COMMA Expression +// ; +public class ArgumentList extends Entity +{ + // Structure + public ArrayList arguments; + + // Creation + public ArgumentList(Expression expr) + { + this.arguments = new ArrayList<>(); + this.arguments.add(expr); + } + public ArgumentList add(Expression expr) + { + this.arguments.add(expr); + return this; + } + + // Reporting + public void report(int sh) + { + for (Expression arg: arguments) + { + arg.report(sh); + System.out.println(); + } + } + + // Generation + public void generateEO() + { + + } +} diff --git a/src/main/java/tree/Expression/ArrayAccess.java b/src/main/java/tree/Expression/ArrayAccess.java new file mode 100644 index 00000000..b2e9d72c --- /dev/null +++ b/src/main/java/tree/Expression/ArrayAccess.java @@ -0,0 +1,36 @@ +package tree.Expression; + +import tree.Entity; + +// ArrayAccess +// : CompoundName LBRACKET Expression RBRACKET +// | Primary LBRACKET Expression RBRACKET +// ; +public class ArrayAccess extends Expression +{ + // Structure + public Expression expression; + public Expression size; + + // Creation + public ArrayAccess(Expression expr, Expression size) + { + this.expression = expr; + this.size = size; + } + + // Reporting + public void report(int sh) + { + Entity.doShift(sh); + System.out.println("ARRAY ACCESS"); + expression.report(sh+Entity.shift); + size.report(sh+Entity.shift); + } + + // Generation + public void generateEO() + { + + } +} diff --git a/src/main/java/tree/Expression/Binary.java b/src/main/java/tree/Expression/Binary.java new file mode 100644 index 00000000..598a3ff5 --- /dev/null +++ b/src/main/java/tree/Expression/Binary.java @@ -0,0 +1,36 @@ +package tree.Expression; + +import lexer.*; +import tree.Entity; + +public class Binary extends Expression +{ + // Structure + public Expression left; + public Expression right; + public TokenCode operator; + + // Creation + public Binary(Expression l, Expression r, Token token) + { + super(); + this.left = l; + this.right = r; + this.operator = token.code; + } + + // Reporting + public void report(int sh) + { + Entity.doShift(sh); + System.out.println("BINARY "+operator.toString()); + left.report(sh+Entity.shift); + right.report(sh+Entity.shift); + } + + // Generation + public void generateEO() + { + + } +} diff --git a/src/main/java/tree/Expression/Cast.java b/src/main/java/tree/Expression/Cast.java new file mode 100644 index 00000000..fb462fce --- /dev/null +++ b/src/main/java/tree/Expression/Cast.java @@ -0,0 +1,36 @@ +package tree.Expression; + +import tree.*; +import tree.Type.TypeList; + +// CastExpression +// : TargetType UnaryExpression { $$ = new Cast($1,$2); } +// | TargetType LambdaExpression { $$ = new Cast($1,$2); } +// ; +public class Cast extends Expression +{ + // Structure + public TypeList types; + public Expression expression; + + // Creation + public Cast(TypeList types,Expression expr) + { + this.types = types; + this.expression = expr; + } + + // Reporting + public void report(int sh) + { + Entity.doShift(sh); + System.out.println("CAST"); + types.report(sh+Entity.shift); + expression.report(sh+Entity.shift); + } + + public void generateEO() + { + + } +} diff --git a/src/main/java/tree/Expression/Conditional.java b/src/main/java/tree/Expression/Conditional.java new file mode 100644 index 00000000..50bb82bc --- /dev/null +++ b/src/main/java/tree/Expression/Conditional.java @@ -0,0 +1,44 @@ +package tree.Expression; + +import tree.Entity; + +// ConditionalExpression +// : ConditionalOrExpression ConditionalOrTail +// ; +// +// ConditionalOrTail +// : %empty +// | QUESTION Expression COLON ConditionalExpression +// | QUESTION Expression COLON LambdaExpression +// ; +public class Conditional extends Expression +{ + // Structure + public Expression condition; + public Expression thenPart; + public Expression elsePart; + + // Creation + public Conditional(Expression c, Expression t, Expression e) + { + this.condition = c; + this.thenPart = t; + this.elsePart = e; + } + + // Reporting + public void report(int sh) + { + Entity.doShift(sh); + System.out.println("CONDITIONAL"); + condition.report(sh+Entity.shift); + thenPart.report(sh+Entity.shift); + elsePart.report(sh+Entity.shift); + } + + // Generation + public void generateEO() + { + + } +} diff --git a/src/main/java/tree/Expression.java b/src/main/java/tree/Expression/Expression.java similarity index 51% rename from src/main/java/tree/Expression.java rename to src/main/java/tree/Expression/Expression.java index 93705fdb..9fb57d91 100644 --- a/src/main/java/tree/Expression.java +++ b/src/main/java/tree/Expression/Expression.java @@ -1,6 +1,7 @@ -package tree; +package tree.Expression; + +import tree.*; public class Expression extends Entity { - // No structure } diff --git a/src/main/java/tree/Expression/Expressions.java b/src/main/java/tree/Expression/Expressions.java new file mode 100644 index 00000000..51a49c42 --- /dev/null +++ b/src/main/java/tree/Expression/Expressions.java @@ -0,0 +1,39 @@ +package tree.Expression; + +import tree.Entity; + +import java.util.ArrayList; + +public class Expressions extends Entity +{ + // Structure + public ArrayList expressions; + + // Creation + public Expressions(Expression expr) + { + this.expressions = new ArrayList<>(); + this.expressions.add(expr); + } + public Expressions add(Expression expr) + { + this.expressions.add(expr); + return this; + } + + // Reporting + public void report(int sh) + { + for (Expression e: expressions) + { + e.report(sh); + System.out.println(); + } + } + + // Generation + public void generateEO() + { + + } +} diff --git a/src/main/java/tree/Expression/FieldAccess.java b/src/main/java/tree/Expression/FieldAccess.java new file mode 100644 index 00000000..c73cb427 --- /dev/null +++ b/src/main/java/tree/Expression/FieldAccess.java @@ -0,0 +1,46 @@ +package tree.Expression; + +import tree.Entity; +import lexer.Token; + +// FieldAccess +// : Primary DOT IDENTIFIER +// | SUPER DOT IDENTIFIER +// | CompoundName DOT SUPER DOT IDENTIFIER +// ; +public class FieldAccess extends Expression +{ + // Structure + public Expression expression; // Primary or SimpleReference + public boolean superSign; + public String identifier; + + // Creation + public FieldAccess(Expression expr, boolean ss, Token id) + { + this.expression = expr; + this.superSign = ss; + this.identifier = id.image; + } + + // Reporting + public void report(int sh) + { + Entity.doShift(sh); + if ( expression != null ) + { + expression.report(0); + if ( superSign ) System.out.print("."); + } + else if ( superSign ) + { + System.out.print("SUPER."+identifier); + } + } + + // Generation + public void generateEO() + { + + } +} diff --git a/src/main/java/tree/Expression/InstanceOf.java b/src/main/java/tree/Expression/InstanceOf.java new file mode 100644 index 00000000..6078d6fa --- /dev/null +++ b/src/main/java/tree/Expression/InstanceOf.java @@ -0,0 +1,49 @@ +package tree.Expression; + +import tree.*; +import tree.Type.Type; +import tree.Declaration.*; + +// InstanceofExpression +// : RelationalExpression INSTANCEOF Type +// | RelationalExpression INSTANCEOF Pattern +// ; +public class InstanceOf extends Expression +{ + // Structure + public Expression expression; + // Either type OR declaration + public Type type; + public Declaration declaration; + + // Creation + public InstanceOf(Expression expr, Type type) + { + this.expression = expr; + this.type = type; + this.declaration = null; + } + public InstanceOf(Expression expr, Declaration decl) + { + this.expression = expr; + this.type = null; + this.declaration = decl; + } + + // Reporting + public void report(int sh) + { + Entity.doShift(sh); + System.out.println("INSTANCEOF"); + expression.report(sh+Entity.shift); + if ( type != null ) type.report(sh+Entity.shift); + else declaration.report(sh+Entity.shift); + } + + // Generation + public void generateEO() + { + + } + +} diff --git a/src/main/java/tree/LambdaExpression.java b/src/main/java/tree/Expression/Lambda.java similarity index 80% rename from src/main/java/tree/LambdaExpression.java rename to src/main/java/tree/Expression/Lambda.java index 9c5a9205..7f37d4a1 100644 --- a/src/main/java/tree/LambdaExpression.java +++ b/src/main/java/tree/Expression/Lambda.java @@ -1,5 +1,7 @@ -package tree; +package tree.Expression; +import tree.Statement.Block; +import tree.Declaration.*; import java.util.ArrayList; // LambdaExpression @@ -30,22 +32,22 @@ // | ModifierSeqOpt VAR IDENTIFIER DimsOpt // | ModifierSeqOpt UnannotatedType AnnotationSeqOpt ELLIPSIS IDENTIFIER // VariableArityParameter // ; -public class LambdaExpression extends Expression +public class Lambda extends Expression { // Structure - public ArrayList parameters; + public ParameterDeclarations parameters; // One of these two! public Expression expression; - public BlockStatement block; + public Block block; // Creation - public LambdaExpression(ArrayList pars, Expression expr) + public Lambda(ParameterDeclarations pars, Expression expr) { this.parameters = pars; this.expression = expr; this.block = null; } - public LambdaExpression(ArrayList pars, BlockStatement block) + public Lambda(ParameterDeclarations pars, Block block) { this.parameters = pars; this.expression = null; diff --git a/src/main/java/tree/Expression/Primary/ClassLiteral.java b/src/main/java/tree/Expression/Primary/ClassLiteral.java new file mode 100644 index 00000000..db75066a --- /dev/null +++ b/src/main/java/tree/Expression/Primary/ClassLiteral.java @@ -0,0 +1,38 @@ +package tree.Expression.Primary; + +import tree.*; +import tree.Type.Type; + +// Primary +// : ... +// | Type DimsOpt DOT CLASS // ClassLiteral +// | VOID DimsOpt DOT CLASS // ClassLiteral +// | ... +public class ClassLiteral extends Literal +{ + // Structure + public Type type; // VOID, is type==null + public Dims dims; + + // Creation + public ClassLiteral(Type t, Dims d) + { + super(null); + this.type = t; + this.dims = d; + } + + // Reporting + public void report(int sh) + { + // Stub + Entity.doShift(sh); + System.out.println("CLASS LITERAL"); + } + + // Generation + public void generateEO() + { + + } +} diff --git a/src/main/java/tree/Expression/Primary/InstanceCreation.java b/src/main/java/tree/Expression/Primary/InstanceCreation.java new file mode 100644 index 00000000..c3e01f33 --- /dev/null +++ b/src/main/java/tree/Expression/Primary/InstanceCreation.java @@ -0,0 +1,29 @@ +package tree.Expression.Primary; + +// Primary +// : ... +// | ClassInstanceCreationExpression +// | ... +// +// ClassInstanceCreationExpression +// : UnqualifiedClassInstanceCreationExpression +// | CompoundName DOT UnqualifiedClassInstanceCreationExpression +// | Primary DOT UnqualifiedClassInstanceCreationExpression +// ; +// +// UnqualifiedClassInstanceCreationExpression +// : NEW TypeArgumentsOpt ClassOrInterfaceTypeToInstantiate Arguments ClassBodyOpt +// ; +// +// ClassOrInterfaceTypeToInstantiate +// : AnnotatedCompoundName TypeArgumentsOpt +// | AnnotatedCompoundName DIAMOND +// ; +// +// AnnotatedCompoundName +// : AnnotationSeqOpt /*AnnotationOpt*/ IDENTIFIER +// | AnnotatedCompoundName DOT AnnotationSeqOpt /*AnnotationOpt*/ IDENTIFIER +// ; +public class InstanceCreation extends Primary +{ +} diff --git a/src/main/java/tree/Expression/Primary/Literal.java b/src/main/java/tree/Expression/Primary/Literal.java new file mode 100644 index 00000000..ea5bac45 --- /dev/null +++ b/src/main/java/tree/Expression/Primary/Literal.java @@ -0,0 +1,47 @@ +package tree.Expression.Primary; + +import lexer.*; +import tree.Entity; + +// Primary +// : Literal +// | ... +// | NULL +// | ... +// +// Literal +// : INTEGER_LITERAL +// | FLOATING_POINT_LITERAL +// | TRUE // BOOLEAN_LITERAL +// | FALSE // BOOLEAN_LITERAL +// | CHARACTER_LITERAL +// | STRING_LITERAL +//// | TextBlock // ??? +// | NULL // NullLiteral +// ; +public class Literal extends Primary +{ + // Structure + public TokenCode code; + public Object value; + + // Creation + public Literal(Token token) + { + this.code = token.code; + this.value = token.value; + } + + // Reporting + public void report(int sh) + { + Entity.doShift(sh); + System.out.println(value); + } + + // Generation + public void generateEO() + { + + } +} diff --git a/src/main/java/tree/Expression/Primary/Parenthesized.java b/src/main/java/tree/Expression/Primary/Parenthesized.java new file mode 100644 index 00000000..79b3b163 --- /dev/null +++ b/src/main/java/tree/Expression/Primary/Parenthesized.java @@ -0,0 +1,32 @@ +package tree.Expression.Primary; + +import tree.*; +import tree.Expression.Expression; + +// Primary +// : ... +// | LPAREN Expression RPAREN +// | ... +public class Parenthesized extends Primary +{ + // Structure + public Expression expression; + + // Creation + public Parenthesized(Expression expr) + { + this.expression = expr; + } + + // Reporting + public void report(int sh) + { + expression.report(sh); + } + + // Generation + public void generateEO() + { + + } +} diff --git a/src/main/java/tree/Expression/Primary/Primary.java b/src/main/java/tree/Expression/Primary/Primary.java new file mode 100644 index 00000000..4eff60ce --- /dev/null +++ b/src/main/java/tree/Expression/Primary/Primary.java @@ -0,0 +1,21 @@ +package tree.Expression.Primary; + +import tree.Expression.Expression; + +// Primary +// : Literal +// | Type DimsOpt DOT CLASS // ClassLiteral +// | VOID DimsOpt DOT CLASS // ClassLiteral +// | THIS +// | Type DOT THIS +// | LPAREN Expression RPAREN +// | ClassInstanceCreationExpression +// | FieldAccess +// | ArrayAccess +// | MethodInvocation +// | MethodReference +// | ArrayCreationExpression +// ; +public class Primary extends Expression +{ +} diff --git a/src/main/java/tree/Expression/Primary/This.java b/src/main/java/tree/Expression/Primary/This.java new file mode 100644 index 00000000..f5bc4779 --- /dev/null +++ b/src/main/java/tree/Expression/Primary/This.java @@ -0,0 +1,36 @@ +package tree.Expression.Primary; + +import tree.Entity; +import tree.Type.Type; + +// Primary +// : ... +// | THIS +// | Type DOT THIS +// | ... +public class This extends Primary +{ + // Empty structure + public Type type; // if non-null then "qualified this" + + // Creation + public This(Type t) + { + this.type = t; + } + + // Reporting + public void report(int sh) + { + Entity.doShift(sh); + System.out.println("THIS"); + if ( type != null ) + type.report(sh+Entity.shift); + } + + // Generation + public void generateEO() + { + + } +} diff --git a/src/main/java/tree/Expression/SimpleReference.java b/src/main/java/tree/Expression/SimpleReference.java new file mode 100644 index 00000000..70f50269 --- /dev/null +++ b/src/main/java/tree/Expression/SimpleReference.java @@ -0,0 +1,27 @@ +package tree.Expression; + +import tree.*; + +public class SimpleReference extends Expression +{ + // Structure + public CompoundName compoundName; + + // Creation + public SimpleReference(CompoundName cn) + { + this.compoundName = cn; + } + + // Reporting + public void report(int sh) + { + compoundName.report(sh); + } + + // Generation + public void generateEO() + { + + } +} diff --git a/src/main/java/tree/SwitchExpression.java b/src/main/java/tree/Expression/SwitchExpression.java similarity index 89% rename from src/main/java/tree/SwitchExpression.java rename to src/main/java/tree/Expression/SwitchExpression.java index d95a920c..264e476a 100644 --- a/src/main/java/tree/SwitchExpression.java +++ b/src/main/java/tree/Expression/SwitchExpression.java @@ -1,4 +1,6 @@ -package tree; +package tree.Expression; + +import tree.Statement.SwitchBlock; // SwitchExpression // : SWITCH LPAREN Expression RPAREN SwitchBlock diff --git a/src/main/java/tree/Expression/UnaryPostfix.java b/src/main/java/tree/Expression/UnaryPostfix.java new file mode 100644 index 00000000..c8067121 --- /dev/null +++ b/src/main/java/tree/Expression/UnaryPostfix.java @@ -0,0 +1,33 @@ +package tree.Expression; + +import lexer.*; +import tree.Entity; + +public class UnaryPostfix extends Expression +{ + // Structure + public TokenCode operator; + public Expression operand; + + // Creation + public UnaryPostfix(Token token, Expression op) + { + this.operator = token.code; + this.operand = op; + } + + // Reporting + public void report(int sh) + { + Entity.doShift(sh); + System.out.println("UNARY POSTFIX "+operator.toString()); + operand.report(sh+Entity.shift); + } + + // Generation + public void generateEO() + { + + } + +} diff --git a/src/main/java/tree/Expression/UnaryPrefix.java b/src/main/java/tree/Expression/UnaryPrefix.java new file mode 100644 index 00000000..c60f9fa6 --- /dev/null +++ b/src/main/java/tree/Expression/UnaryPrefix.java @@ -0,0 +1,33 @@ +package tree.Expression; + +import lexer.*; +import tree.Entity; + +public class UnaryPrefix extends Expression +{ + // Structure + public TokenCode operator; + public Expression operand; + + // Creation + public UnaryPrefix(Token token, Expression op) + { + this.operator = token.code; + this.operand = op; + } + + // Reporting + public void report(int sh) + { + Entity.doShift(sh); + System.out.println("UNARY PREFIX "+operator.toString()); + operand.report(sh+Entity.shift); + } + + // Generation + public void generateEO() + { + + } + +} diff --git a/src/main/java/tree/Initializer.java b/src/main/java/tree/Initializer.java index 2756d87c..d310baca 100644 --- a/src/main/java/tree/Initializer.java +++ b/src/main/java/tree/Initializer.java @@ -1,5 +1,6 @@ package tree; +import tree.Expression.*; import java.util.ArrayList; // ArrayInitializer @@ -7,37 +8,25 @@ // | LBRACE VariableInitializerListOpt COMMA RBRACE // ; // -//VariableInitializerListOpt +// VariableInitializerListOpt // : // empty // | VariableInitializerList // ; // -//VariableInitializerList +// VariableInitializerList // : VariableInitializer // | VariableInitializerList COMMA VariableInitializer // ; // -//VariableInitializer +// VariableInitializer // : Expression // | ArrayInitializer // ; public class Initializer extends Entity { - // Structure - public Expression singleInitializer; - public ArrayList arrayInitializer; + // NO structure - // Creation - public Initializer(Expression single) - { - this.singleInitializer = single; - this.arrayInitializer = null; - } - public Initializer(ArrayList array) - { - this.singleInitializer = null; - this.arrayInitializer = array; - } + // NO creation // Reporting public void report(int sh) diff --git a/src/main/java/tree/InitializerArray.java b/src/main/java/tree/InitializerArray.java new file mode 100644 index 00000000..3b6033ba --- /dev/null +++ b/src/main/java/tree/InitializerArray.java @@ -0,0 +1,33 @@ +package tree; + +import java.util.ArrayList; + +public class InitializerArray extends Initializer +{ + // Structure + public ArrayList initializers; + + // Creation + public InitializerArray(Initializer init) + { + this.initializers = new ArrayList<>(); + this.initializers.add(init); + } + public InitializerArray add(Initializer init) + { + this.initializers.add(init); + return this; + } + + // Reporting + public void report(int sh) + { + + } + + // Generation + public void generateEO() + { + + } +} diff --git a/src/main/java/tree/InstanceOf.java b/src/main/java/tree/InitializerSimple.java similarity index 64% rename from src/main/java/tree/InstanceOf.java rename to src/main/java/tree/InitializerSimple.java index 4b11eb23..b235a35e 100644 --- a/src/main/java/tree/InstanceOf.java +++ b/src/main/java/tree/InitializerSimple.java @@ -1,16 +1,16 @@ package tree; -public class InstanceOf extends Expression +import tree.Expression.*; + +public class InitializerSimple extends Initializer { // Structure public Expression expression; - public Type type; // Creation - public InstanceOf(Expression expr, Type tp) + public InitializerSimple(Expression expr) { this.expression = expr; - this.type = tp; } // Reporting diff --git a/src/main/java/tree/Modifiers.java b/src/main/java/tree/Modifiers.java index 7eabe36f..f15b52ac 100644 --- a/src/main/java/tree/Modifiers.java +++ b/src/main/java/tree/Modifiers.java @@ -6,51 +6,14 @@ // : StandardModifierSeq // | AnnotationSeq StandardModifierSeq // ; -// -// StandardModifierSeq -// : StandardModifier -// | StandardModifierSeq StandardModifier -// ; -// -// StandardModifier -// // : Annotation -// : DEFAULT -// | FINAL -// | PUBLIC -// | PROTECTED -// | PRIVATE -// | ABSTRACT -// | STATIC -// | STRICTFP -// | SYNCHRONIZED -// | TRANSIENT -// | VOLATILE -// | OPEN // for modules only -// ; public class Modifiers extends Entity { - public enum modifier - { - mod_default, - mod_final, - mod_public, - mod_protected, - mod_private, - mod_abstract, - mod_static, - mod_strictfp, - mod_synchronized, - mod_transient, - mod_volatile, - mod_open - } - // Structure - public ArrayList annotations; - public ArrayList modifiers; + public Annotations annotations; + public StandardModifiers modifiers; // Creation - public Modifiers(ArrayList anns, ArrayList mods) + public Modifiers(Annotations anns, StandardModifiers mods) { this.annotations = anns; this.modifiers = mods; @@ -59,7 +22,13 @@ public Modifiers(ArrayList anns, ArrayList mods) // Reporting public void report(int sh) { - + if ( annotations != null ) + { + annotations.report(sh); + System.out.println(); + } + modifiers.report(sh); + System.out.println(); } // Generation diff --git a/src/main/java/tree/Package.java b/src/main/java/tree/Package.java deleted file mode 100644 index a24631e9..00000000 --- a/src/main/java/tree/Package.java +++ /dev/null @@ -1,37 +0,0 @@ -package tree; - -import java.util.ArrayList; - -// Package -// : PACKAGE CompoundName SEMICOLON ImportDeclarationSeqOpt TopLevelComponentSeqOpt -// ; -public class Package extends CompilationUnit -{ - // Structure - public ArrayList compoundName; - public ArrayList imports; - public ArrayList components; - - // Creation - public Package(ArrayList cn, - ArrayList ims, - ArrayList cs) - { - this.compoundName = cn; - this.imports = ims; - this.components = cs; - } - - // Reporting - public void report(int sh) - { - - } - - // Generation - public void generateEO() - { - - } - -} diff --git a/src/main/java/tree/ParameterDeclaration.java b/src/main/java/tree/ParameterDeclaration.java deleted file mode 100644 index af0e5663..00000000 --- a/src/main/java/tree/ParameterDeclaration.java +++ /dev/null @@ -1,55 +0,0 @@ -package tree; - -import java.util.ArrayList; - -// FormalParameter -// : ModifierSeq UnannotatedType FormalParameterTail -// | UnannotatedType FormalParameterTail -// ; -// -// FormalParameterTail -// // Normal formal parameter -// : IDENTIFIER DimsOpt -// | AnnotationSeqOpt ELLIPSIS IDENTIFIER -// -// // ReceiverParameter -// | THIS -// | IDENTIFIER DOT THIS -// ; -public class ParameterDeclaration extends Declaration -{ - // Structure -// public Modifiers modifiers; -// public Type type; -// public String name; - public ArrayList ellAnnotations; - public boolean signEllipsis; - public ArrayList dims; - - // Creation - public ParameterDeclaration(Modifiers mods, - Type t, - String n, - ArrayList ellAnns, - boolean signEll, - ArrayList dims) - { - super(mods,n,t); - this.ellAnnotations = ellAnns; - this.signEllipsis = signEll; - this.dims = dims; - } - - // Reporting - public void report(int csh) - { - - } - - // Generation - public void generateEO() - { - - } - -} diff --git a/src/main/java/tree/PrimitiveType.java b/src/main/java/tree/PrimitiveType.java deleted file mode 100644 index dd7f9b2a..00000000 --- a/src/main/java/tree/PrimitiveType.java +++ /dev/null @@ -1,59 +0,0 @@ -package tree; - -import java.util.ArrayList; - -// PrimitiveType -// // NumericType -- IntegralType -// : BYTE -// | SHORT -// | INT -// | LONG -// | CHAR -// // NumericType -- FloatingPointType -// | FLOAT -// | DOUBLE -// | BOOLEAN -// ; -public class PrimitiveType extends UnannotatedType -{ - public enum primitive - { - type_byte, - type_short, - type_int, - type_long, - type_char, - type_float, - type_double, - type_boolean - } - - // Contents - public primitive typeCode; - - // Creation - public PrimitiveType(primitive pt, ArrayList dims) - { - super(dims); - this.typeCode = pt; - } - - // Reporting - public void report(int sh) - { - for(Dim d : super.dimensions) - { - d.report(sh); - sh++; - } - Entity.doShift(sh); - this.outUnique(); - System.out.print(typeCode.toString()); - } - - // Generation - public void generateEO() - { - - } -} \ No newline at end of file diff --git a/src/main/java/tree/StandardModifiers.java b/src/main/java/tree/StandardModifiers.java new file mode 100644 index 00000000..cdf0d289 --- /dev/null +++ b/src/main/java/tree/StandardModifiers.java @@ -0,0 +1,63 @@ +package tree; + +import lexer.Token; +import lexer.TokenCode; +import java.util.ArrayList; + +// StandardModifierSeq +// : StandardModifier +// | StandardModifierSeq StandardModifier +// ; +// +// StandardModifier +// // : Annotation +// : DEFAULT +// | FINAL +// | PUBLIC +// | PROTECTED +// | PRIVATE +// | ABSTRACT +// | STATIC +// | STRICTFP +// | SYNCHRONIZED +// | TRANSIENT +// | VOLATILE +// | OPEN // for modules only +// ; +public class StandardModifiers extends Entity +{ + // Structure + public ArrayList modifiers; + + // Creation + public StandardModifiers(Token token) + { + this.modifiers = new ArrayList<>(); + this.modifiers.add(token.code); + } + + public StandardModifiers add(Token token) + { + this.modifiers.add(token.code); + return this; + } + + // Reporting + public void report(int sh) + { + Entity.doShift(sh); + for (TokenCode m: this.modifiers) + { + System.out.print(m.toString()); + System.out.print(" "); + } + System.out.println(); + } + + // Generation + public void generateEO() + { + + } +} + diff --git a/src/main/java/tree/AssertStatement.java b/src/main/java/tree/Statement/Assert.java similarity index 55% rename from src/main/java/tree/AssertStatement.java rename to src/main/java/tree/Statement/Assert.java index 38842608..d0ebb9cd 100644 --- a/src/main/java/tree/AssertStatement.java +++ b/src/main/java/tree/Statement/Assert.java @@ -1,5 +1,7 @@ -package tree; +package tree.Statement; +import tree.Entity; +import tree.Expression.*; import java.util.ArrayList; // SimpleStatement @@ -8,7 +10,7 @@ // | ASSERT Expression COLON Expression SEMICOLON // AssertStatement // | ... // ; -public class AssertStatement extends Statement +public class Assert extends Statement { // Structure // public ArrayList labels; @@ -16,7 +18,7 @@ public class AssertStatement extends Statement public Expression expression2; // Creation - public AssertStatement(ArrayList ls, Expression expr, Expression expr2) + public Assert(ArrayList ls, Expression expr, Expression expr2) { super(ls); this.expression = expr; @@ -26,7 +28,15 @@ public AssertStatement(ArrayList ls, Expression expr, Expression expr2) // Reporting public void report(int sh) { - + title("ASSERT",sh); + expression.report(sh+Entity.shift); + if ( expression2 != null ) + { + System.out.println(); + Entity.doShift(sh); + System.out.println("DIAG"); + expression2.report(sh+Entity.shift); + } } // Generation diff --git a/src/main/java/tree/BlockStatement.java b/src/main/java/tree/Statement/Block.java similarity index 70% rename from src/main/java/tree/BlockStatement.java rename to src/main/java/tree/Statement/Block.java index 3cd2b321..2e47c3f6 100644 --- a/src/main/java/tree/BlockStatement.java +++ b/src/main/java/tree/Statement/Block.java @@ -1,4 +1,4 @@ -package tree; +package tree.Statement; import java.util.ArrayList; @@ -7,23 +7,23 @@ // | LBRACE BlockStatementSeq RBRACE // ; // -//BlockStatementSeq +// BlockStatementSeq // : BlockStatement // | BlockStatementSeq BlockStatement // ; // -//BlockStatement +// BlockStatement // : ModifierSeqOpt BlockDeclaration // | Statement // ; -public class BlockStatement extends Statement +public class Block extends Statement { // Structure // public ArrayList labels; - public ArrayList block; + public BlockStatements block; // Creation - public BlockStatement(ArrayList ls, ArrayList block) + public Block(ArrayList ls, BlockStatements block) { super(ls); this.block = block; diff --git a/src/main/java/tree/Statement/BlockStatement.java b/src/main/java/tree/Statement/BlockStatement.java new file mode 100644 index 00000000..14906ba9 --- /dev/null +++ b/src/main/java/tree/Statement/BlockStatement.java @@ -0,0 +1,55 @@ +package tree.Statement; + +import tree.Declaration.Declaration; +import tree.Expression.*; +import tree.Entity; + +// BlockStatement +// : ModifierSeqOpt BlockDeclaration +// | Statement +// ; +public class BlockStatement extends Statement +{ + // Structure: either a declaration OR a statement OR an expression + public Declaration declaration; + public Statement statement; + public Expression expression; + + // Creation + public BlockStatement(Declaration d) + { + super(null); + this.declaration = d; + this.statement = null; + this.expression = null; + } + public BlockStatement(Statement stmt) + { + super(null); + this.declaration = null; + this.statement = stmt; + this.expression = null; + } + public BlockStatement(Expression expr) + { + super(null); + this.declaration = null; + this.statement = null; + this.expression = expr; + } + + // Reporting + public void report(int sh) + { + if ( declaration != null ) { declaration.report(sh); return; } + if ( statement != null ) { statement.report(sh); return; } + if ( expression != null ) { expression.report(sh); return; } + } + + // Generation + public void generateEO() + { + + } + +} diff --git a/src/main/java/tree/Statement/BlockStatements.java b/src/main/java/tree/Statement/BlockStatements.java new file mode 100644 index 00000000..b7406a99 --- /dev/null +++ b/src/main/java/tree/Statement/BlockStatements.java @@ -0,0 +1,53 @@ +package tree.Statement; + +import tree.Declaration.Declaration; +import tree.Declaration.TypeAndDeclarators; +import tree.Declaration.VariableDeclaration; +import tree.Declaration.VariableDeclarator; +import tree.Entity; +import java.util.ArrayList; + +public class BlockStatements extends Entity +{ + // Structure + public ArrayList blockStatements; + + // Creation + public BlockStatements(BlockStatement elem) + { + this.blockStatements = new ArrayList<>(); + deconstruct(elem); + } + public BlockStatements add(BlockStatement elem) + { + deconstruct(elem); + return this; + } + private void deconstruct(BlockStatement stmt) + { + if ( stmt.declaration != null && stmt.declaration instanceof TypeAndDeclarators) + { + TypeAndDeclarators tds = (TypeAndDeclarators)stmt.declaration; + for (VariableDeclarator declarator: tds.declarators.declarators) + { + VariableDeclaration variable = + new VariableDeclaration(tds.name,tds.modifiers,tds.type,declarator.dims,declarator.initializer); + this.blockStatements.add(new BlockStatement(variable)); + } + } + else + this.blockStatements.add(stmt); + } + + // Reporting + public void report(int sh) + { + + } + + // Generation + public void generateEO() + { + + } +} diff --git a/src/main/java/tree/BreakStatement.java b/src/main/java/tree/Statement/Break.java similarity index 58% rename from src/main/java/tree/BreakStatement.java rename to src/main/java/tree/Statement/Break.java index 510c99b8..bd6ba863 100644 --- a/src/main/java/tree/BreakStatement.java +++ b/src/main/java/tree/Statement/Break.java @@ -1,5 +1,7 @@ -package tree; +package tree.Statement; +import lexer.*; +import tree.Entity; import java.util.ArrayList; // SimpleStatement @@ -8,23 +10,26 @@ // | BREAK IDENTIFIER SEMICOLON // BreakStatement // | ... // ; -public class BreakStatement extends Statement +public class Break extends Statement { // Structure // public ArrayList labels; public String label; // Creation - public BreakStatement(ArrayList ls, String label) + public Break(ArrayList ls, Token label) { super(ls); - this.label = label; + this.label = label.image; } // Reporting public void report(int sh) { - + Entity.doShift(sh); + System.out.print("BREAK "); + if ( label != null ) System.out.print(label); + System.out.println(); } // Generation diff --git a/src/main/java/tree/Statement/CatchClause.java b/src/main/java/tree/Statement/CatchClause.java new file mode 100644 index 00000000..6a148128 --- /dev/null +++ b/src/main/java/tree/Statement/CatchClause.java @@ -0,0 +1,33 @@ +package tree.Statement; + +import tree.Declaration.*; +import tree.Entity; + +// CatchClause +// : CATCH LPAREN CatchFormalParameter RPAREN Block +// ; +public class CatchClause extends Entity +{ + // Structure + public CatchParameter catchParameter; + public Block block; + + // Creation + public CatchClause(CatchParameter catchPar, Block b) + { + this.catchParameter = catchPar; + this.block = b; + } + + // Reporting + public void report(int sh) + { + + } + + // Generation + public void generateEO() + { + + } +} diff --git a/src/main/java/tree/Statement/CatchClauses.java b/src/main/java/tree/Statement/CatchClauses.java new file mode 100644 index 00000000..f7e03958 --- /dev/null +++ b/src/main/java/tree/Statement/CatchClauses.java @@ -0,0 +1,44 @@ +package tree.Statement; + +import tree.Entity; + +import java.util.ArrayList; + +// CatchesOpt +// : %empty +// | Catches +// ; +// +//Catches +// : CatchClause +// | Catches CatchClause +// ; +public class CatchClauses extends Entity +{ + // Structure + public ArrayList catchClauses; + + // Creation + public CatchClauses(CatchClause clause) + { + this.catchClauses = new ArrayList<>(); + this.catchClauses.add(clause); + } + public CatchClauses add(CatchClause clause) + { + this.catchClauses.add(clause); + return this; + } + + // Reporting + public void report(int sh) + { + + } + + // Generation + public void generateEO() + { + + } +} diff --git a/src/main/java/tree/ContinueStatement.java b/src/main/java/tree/Statement/Continue.java similarity index 55% rename from src/main/java/tree/ContinueStatement.java rename to src/main/java/tree/Statement/Continue.java index a1ab42d0..355395a8 100644 --- a/src/main/java/tree/ContinueStatement.java +++ b/src/main/java/tree/Statement/Continue.java @@ -1,4 +1,8 @@ -package tree; +package tree.Statement; + +import lexer.*; +import tree.Entity; +import tree.Statement.Statement; import java.util.ArrayList; @@ -8,23 +12,26 @@ // | CONTINUE IDENTIFIER SEMICOLON // ContinueStatement // | ... // ; -public class ContinueStatement extends Statement +public class Continue extends Statement { // Structure // public ArrayList labels; public String label; // Creation - public ContinueStatement(ArrayList ls, String label) + public Continue(ArrayList ls, Token label) { super(ls); - this.label = label; + this.label = label.image; } // Reporting public void report(int sh) { - + Entity.doShift(sh); + System.out.print("CONTINUE "); + if ( label != null ) System.out.print(label); + System.out.println(); } // Generation diff --git a/src/main/java/tree/DoStatement.java b/src/main/java/tree/Statement/Do.java similarity index 77% rename from src/main/java/tree/DoStatement.java rename to src/main/java/tree/Statement/Do.java index 527aee70..5b5fac2d 100644 --- a/src/main/java/tree/DoStatement.java +++ b/src/main/java/tree/Statement/Do.java @@ -1,5 +1,6 @@ -package tree; +package tree.Statement; +import tree.Expression.*; import java.util.ArrayList; // SimpleStatement @@ -7,7 +8,7 @@ // | DO Statement WHILE LPAREN Expression RPAREN SEMICOLON // DoStatement // | ... // ; -public class DoStatement extends Statement +public class Do extends Statement { // Structure // public ArrayList labels; @@ -15,7 +16,7 @@ public class DoStatement extends Statement public Expression condition; // Creation - public DoStatement(ArrayList ls, Statement stmt, Expression cond) + public Do(ArrayList ls, Statement stmt, Expression cond) { super(ls); this.statement = stmt; diff --git a/src/main/java/tree/IfThenElseStatement.java b/src/main/java/tree/Statement/IfThenElse.java similarity index 52% rename from src/main/java/tree/IfThenElseStatement.java rename to src/main/java/tree/Statement/IfThenElse.java index 2dc213c3..659412d1 100644 --- a/src/main/java/tree/IfThenElseStatement.java +++ b/src/main/java/tree/Statement/IfThenElse.java @@ -1,5 +1,7 @@ -package tree; +package tree.Statement; +import tree.Entity; +import tree.Expression.*; import java.util.ArrayList; // Statement @@ -16,7 +18,7 @@ // : // empty // | ELSE Statement // ; -public class IfThenElseStatement extends Statement +public class IfThenElse extends Statement { // Structure // public ArrayList labels; @@ -25,7 +27,7 @@ public class IfThenElseStatement extends Statement public Statement elsePart; // Creation - public IfThenElseStatement(ArrayList ls, Expression c, Statement t, Statement e) + public IfThenElse(ArrayList ls, Expression c, Statement t, Statement e) { super(ls); this.condition = c; @@ -36,7 +38,19 @@ public IfThenElseStatement(ArrayList ls, Expression c, Statement t, Stat // Reporting public void report(int sh) { - + Entity.doShift(sh); + System.out.println("IF"); + condition.report(sh+Entity.shift); + System.out.println(); + Entity.doShift(sh); + System.out.println("THEN"); + thenPart.report(sh+Entity.shift); + if ( elsePart != null ) + { + Entity.doShift(sh); + System.out.println("ELSE"); + elsePart.report(sh+Entity.shift); + } } // Generation diff --git a/src/main/java/tree/ReturnStatement.java b/src/main/java/tree/Statement/Return.java similarity index 58% rename from src/main/java/tree/ReturnStatement.java rename to src/main/java/tree/Statement/Return.java index 485912b6..22626151 100644 --- a/src/main/java/tree/ReturnStatement.java +++ b/src/main/java/tree/Statement/Return.java @@ -1,5 +1,7 @@ -package tree; +package tree.Statement; +import tree.Entity; +import tree.Expression.*; import java.util.ArrayList; // SimpleStatement @@ -8,14 +10,14 @@ // | RETURN Expression SEMICOLON // ReturnStatement // | ... // ; -public class ReturnStatement extends Statement +public class Return extends Statement { // Structure // public ArrayList labels; public Expression expression; // Creation - public ReturnStatement(ArrayList ls, Expression expr) + public Return(ArrayList ls, Expression expr) { super(ls); this.expression = expr; @@ -24,7 +26,13 @@ public ReturnStatement(ArrayList ls, Expression expr) // Reporting public void report(int sh) { - + Entity.doShift(sh); + System.out.print("RETURN"); + if ( expression != null ) + { + System.out.println(); + expression.report(sh+Entity.shift); + } } // Generation diff --git a/src/main/java/tree/Statement.java b/src/main/java/tree/Statement/Statement.java similarity index 77% rename from src/main/java/tree/Statement.java rename to src/main/java/tree/Statement/Statement.java index b9534728..82139bf2 100644 --- a/src/main/java/tree/Statement.java +++ b/src/main/java/tree/Statement/Statement.java @@ -1,5 +1,7 @@ -package tree; +package tree.Statement; +import lexer.*; +import tree.Entity; import java.util.ArrayList; // Statement @@ -41,6 +43,16 @@ // | TRY Block Finally // | TRY ResourceSpecification Block CatchesOpt FinallyOpt // TryWithResourcesStatement // ; +// +// StatementExpression +// : Assignment +// | PreIncrementExpression +// | PreDecrementExpression +// | PostIncrementExpression +// | PostDecrementExpression +// | MethodInvocation +// | ClassInstanceCreationExpression +// ; public class Statement extends Entity { // Structure @@ -51,4 +63,12 @@ public Statement(ArrayList ls) { this.labels = ls; } + + public Statement addStatement(Token label) + { + if ( labels == null ) + labels = new ArrayList<>(); + labels.add(label.image); + return this; + } } diff --git a/src/main/java/tree/StatementExpression.java b/src/main/java/tree/Statement/StatementExpression.java similarity index 69% rename from src/main/java/tree/StatementExpression.java rename to src/main/java/tree/Statement/StatementExpression.java index 3aa652c6..b8328427 100644 --- a/src/main/java/tree/StatementExpression.java +++ b/src/main/java/tree/Statement/StatementExpression.java @@ -1,9 +1,11 @@ -package tree; +package tree.Statement; +import tree.Entity; +import tree.Expression.*; import java.util.ArrayList; // StatementExpression -// : Assignment ===================???????????????? +// : Assignment // | PreIncrementExpression // | PreDecrementExpression // | PostIncrementExpression @@ -26,7 +28,13 @@ public StatementExpression(ArrayList ls, Expression expr) // Reporting public void report(int sh) { - + int shift = sh; + if ( super.labels.size() != 0 ) + { + super.report(sh); + shift += Entity.shift; + } + expression.report(shift); } // Generation diff --git a/src/main/java/tree/Statement/StatementExpressions.java b/src/main/java/tree/Statement/StatementExpressions.java new file mode 100644 index 00000000..1929b6ed --- /dev/null +++ b/src/main/java/tree/Statement/StatementExpressions.java @@ -0,0 +1,22 @@ +package tree.Statement; + +import tree.Entity; +import java.util.ArrayList; + +public class StatementExpressions extends Entity +{ + // Structure + public ArrayList expressions; + + // Creation + public StatementExpressions(StatementExpression expr) + { + this.expressions = new ArrayList<>(); + this.expressions.add(expr); + } + public StatementExpressions add(StatementExpression expr) + { + this.expressions.add(expr); + return this; + } +} diff --git a/src/main/java/tree/SwitchStatement.java b/src/main/java/tree/Statement/Switch.java similarity index 82% rename from src/main/java/tree/SwitchStatement.java rename to src/main/java/tree/Statement/Switch.java index 19830f9f..ee0582bf 100644 --- a/src/main/java/tree/SwitchStatement.java +++ b/src/main/java/tree/Statement/Switch.java @@ -1,4 +1,6 @@ -package tree; +package tree.Statement; + +import tree.Expression.*; import java.util.ArrayList; @@ -50,7 +52,7 @@ // : AssignmentExpression // | CaseExpressionList COMMA AssignmentExpression // ; -public class SwitchStatement extends Statement +public class Switch extends Statement { // Structure // public ArrayList labels; @@ -61,19 +63,14 @@ public class SwitchStatement extends Statement public ArrayList blocks; // Creation - public SwitchStatement(ArrayList ls, - Expression expr, - ArrayList rs) + public Switch(ArrayList ls,Expression expr,ArrayList rs) { super(ls); this.expression = expr; this.rules = rs; this.blocks = null; } - public SwitchStatement(ArrayList ls, - Expression expr, - ArrayList bs, - int useless) + public Switch(ArrayList ls,Expression expr,ArrayList bs,int useless) { super(ls); this.expression = expr; diff --git a/src/main/java/tree/SwitchBlock.java b/src/main/java/tree/Statement/SwitchBlock.java similarity index 72% rename from src/main/java/tree/SwitchBlock.java rename to src/main/java/tree/Statement/SwitchBlock.java index 3d40a896..494baa3c 100644 --- a/src/main/java/tree/SwitchBlock.java +++ b/src/main/java/tree/Statement/SwitchBlock.java @@ -1,15 +1,16 @@ -package tree; +package tree.Statement; +import tree.Entity; import java.util.ArrayList; public class SwitchBlock extends Entity { // Structure public ArrayList labels; - public BlockStatement block; + public Block block; // Creation - public SwitchBlock(ArrayList ls, BlockStatement block) + public SwitchBlock(ArrayList ls, Block block) { this.labels = ls; this.block = block; diff --git a/src/main/java/tree/SwitchLabel.java b/src/main/java/tree/Statement/SwitchLabel.java similarity index 50% rename from src/main/java/tree/SwitchLabel.java rename to src/main/java/tree/Statement/SwitchLabel.java index 27a72596..03bba68b 100644 --- a/src/main/java/tree/SwitchLabel.java +++ b/src/main/java/tree/Statement/SwitchLabel.java @@ -1,4 +1,7 @@ -package tree; +package tree.Statement; + +import tree.Entity; +import tree.Expression.*; import java.util.ArrayList; @@ -8,9 +11,15 @@ public class SwitchLabel extends Entity public ArrayList cases; // Creation - public SwitchLabel(ArrayList cs) + public SwitchLabel(Expression cs) + { + this.cases = new ArrayList<>(); + this.cases.add(cs); + } + public SwitchLabel add(Expression cs) { - this.cases = cs; + this.cases.add(cs); + return this; } // Reporting diff --git a/src/main/java/tree/Statement/SwitchLabels.java b/src/main/java/tree/Statement/SwitchLabels.java new file mode 100644 index 00000000..e364c99f --- /dev/null +++ b/src/main/java/tree/Statement/SwitchLabels.java @@ -0,0 +1,34 @@ +package tree.Statement; + +import tree.Entity; +import java.util.ArrayList; + +public class SwitchLabels extends Entity +{ + // Structure + public ArrayList labels; + + // Creation + public SwitchLabels(SwitchLabel label) + { + this.labels = new ArrayList<>(); + this.labels.add(label); + } + public SwitchLabels add(SwitchLabel label) + { + this.labels.add(label); + return this; + } + + // Reporting + public void report(int sh) + { + + } + + // Generation + public void generateEO() + { + + } +} diff --git a/src/main/java/tree/SwitchRule.java b/src/main/java/tree/Statement/SwitchRule.java similarity index 81% rename from src/main/java/tree/SwitchRule.java rename to src/main/java/tree/Statement/SwitchRule.java index eca2732e..3bfce674 100644 --- a/src/main/java/tree/SwitchRule.java +++ b/src/main/java/tree/Statement/SwitchRule.java @@ -1,4 +1,8 @@ -package tree; +package tree.Statement; + +import tree.Entity; +import tree.Statement.*; +import tree.Expression.*; // SwitchBlock // : LBRACE SwitchRuleSeq RBRACE @@ -30,10 +34,10 @@ public class SwitchRule extends Entity // Structure SwitchLabel label; - // One of the following values: + // ONE of the following values: public Expression expression; - public BlockStatement block; - public ThrowStatement throwStatement; + public Block block; + public Throw throwStatement; // Creation: three cases public SwitchRule(SwitchLabel l,Expression expr) @@ -43,14 +47,14 @@ public SwitchRule(SwitchLabel l,Expression expr) this.block = null; this.throwStatement = null; } - public SwitchRule(SwitchLabel l,BlockStatement block) + public SwitchRule(SwitchLabel l,Block block) { this.label = l; this.expression = null; this.block = block; this.throwStatement = null; } - public SwitchRule(SwitchLabel l,ThrowStatement tStmt) + public SwitchRule(SwitchLabel l,Throw tStmt) { this.label = l; this.expression = null; diff --git a/src/main/java/tree/Statement/SwitchRules.java b/src/main/java/tree/Statement/SwitchRules.java new file mode 100644 index 00000000..b140c47c --- /dev/null +++ b/src/main/java/tree/Statement/SwitchRules.java @@ -0,0 +1,34 @@ +package tree.Statement; + +import tree.Entity; +import java.util.ArrayList; + +public class SwitchRules extends Entity +{ + // Structure + public ArrayList rules; + + // Creation + public SwitchRules(SwitchRule rule) + { + this.rules = new ArrayList<>(); + this.rules.add(rule); + } + public SwitchRules add(SwitchRule rule) + { + this.rules.add(rule); + return this; + } + + // Reporting + public void report(int sh) + { + + } + + // Generation + public void generateEO() + { + + } +} diff --git a/src/main/java/tree/SynchronizedStatement.java b/src/main/java/tree/Statement/Synchronized.java similarity index 63% rename from src/main/java/tree/SynchronizedStatement.java rename to src/main/java/tree/Statement/Synchronized.java index a2db20b1..5f66e767 100644 --- a/src/main/java/tree/SynchronizedStatement.java +++ b/src/main/java/tree/Statement/Synchronized.java @@ -1,5 +1,7 @@ -package tree; +package tree.Statement; +import tree.Statement.Block; +import tree.Expression.*; import java.util.ArrayList; // SimpleStatement @@ -7,17 +9,15 @@ // | SYNCHRONIZED LPAREN Expression RPAREN Block // SynchronizedStatement // | ... // ; -public class SynchronizedStatement extends Statement +public class Synchronized extends Statement { // Structure // public ArrayList labels; public Expression expression; - public ArrayList block; + public Block block; // Creation - public SynchronizedStatement(ArrayList ls, - Expression expr, - ArrayList block) + public Synchronized(ArrayList ls, Expression expr, Block block) { super(ls); this.expression = expr; diff --git a/src/main/java/tree/ThrowStatement.java b/src/main/java/tree/Statement/Throw.java similarity index 58% rename from src/main/java/tree/ThrowStatement.java rename to src/main/java/tree/Statement/Throw.java index 9d1f240e..c4fc75a5 100644 --- a/src/main/java/tree/ThrowStatement.java +++ b/src/main/java/tree/Statement/Throw.java @@ -1,5 +1,7 @@ -package tree; +package tree.Statement; +import tree.Entity; +import tree.Expression.*; import java.util.ArrayList; // SimpleStatement @@ -7,14 +9,14 @@ // | THROW Expression SEMICOLON // ThrowStatement // | ... // ; -public class ThrowStatement extends Statement +public class Throw extends Statement { // Structure // public ArrayList labels; public Expression expression; // Creation - public ThrowStatement(ArrayList ls, Expression expr) + public Throw(ArrayList ls, Expression expr) { super(ls); this.expression = expr; @@ -23,7 +25,10 @@ public ThrowStatement(ArrayList ls, Expression expr) // Reporting public void report(int sh) { - + Entity.doShift(sh); + System.out.println("THROW"); + if ( expression != null ) + expression.report(sh+Entity.shift); } // Generation diff --git a/src/main/java/tree/TryStatement.java b/src/main/java/tree/Statement/Try.java similarity index 66% rename from src/main/java/tree/TryStatement.java rename to src/main/java/tree/Statement/Try.java index 4d0e8da8..1e9095b2 100644 --- a/src/main/java/tree/TryStatement.java +++ b/src/main/java/tree/Statement/Try.java @@ -1,5 +1,6 @@ -package tree; +package tree.Statement; +import tree.ResourceSpecification; import java.util.ArrayList; // SimpleStatement @@ -13,21 +14,21 @@ // Finally // : FINALLY Block // ; -public class TryStatement extends Statement +public class Try extends Statement { // Structure // public ArrayList labels; public ResourceSpecification resSpec; - public BlockStatement block; + public Block block; public ArrayList catches; - public BlockStatement finallyBlock; + public Block finallyBlock; // Creation - public TryStatement(ArrayList ls, - ResourceSpecification res, - BlockStatement b, - ArrayList cs, - BlockStatement finb) + public Try(ArrayList ls, + ResourceSpecification res, + Block b, + ArrayList cs, + Block finb) { super(ls); this.resSpec = res; diff --git a/src/main/java/tree/WhileStatement.java b/src/main/java/tree/Statement/While.java similarity index 58% rename from src/main/java/tree/WhileStatement.java rename to src/main/java/tree/Statement/While.java index cbc4b936..7f1c5d15 100644 --- a/src/main/java/tree/WhileStatement.java +++ b/src/main/java/tree/Statement/While.java @@ -1,11 +1,13 @@ -package tree; +package tree.Statement; +import tree.Entity; +import tree.Expression.*; import java.util.ArrayList; // WhileStatement // : WHILE LPAREN Expression RPAREN Statement // ; -public class WhileStatement extends Statement +public class While extends Statement { // Structure // public ArrayList labels; @@ -13,7 +15,7 @@ public class WhileStatement extends Statement public Statement statement; // Creation - public WhileStatement(ArrayList ls, Expression c, Statement s) + public While(ArrayList ls, Expression c, Statement s) { super(ls); this.condition = c; @@ -23,7 +25,10 @@ public WhileStatement(ArrayList ls, Expression c, Statement s) // Reporting public void report(int sh) { - + Entity.doShift(sh); + System.out.println("WHILE"); + condition.report(sh+Entity.shift); + statement.report(sh+Entity.shift); } // Generation diff --git a/src/main/java/tree/YieldStatement.java b/src/main/java/tree/Statement/Yield.java similarity index 61% rename from src/main/java/tree/YieldStatement.java rename to src/main/java/tree/Statement/Yield.java index 665f8acd..656eb1c8 100644 --- a/src/main/java/tree/YieldStatement.java +++ b/src/main/java/tree/Statement/Yield.java @@ -1,5 +1,7 @@ -package tree; +package tree.Statement; +import tree.Entity; +import tree.Expression.*; import java.util.ArrayList; // SimpleStatement @@ -7,14 +9,14 @@ // | YIELD Expression SEMICOLON // YieldStatement // | ... // ; -public class YieldStatement extends Statement +public class Yield extends Statement { // Structure // public ArrayList labels; public Expression expression; // Creation - public YieldStatement(ArrayList ls, Expression expr) + public Yield(ArrayList ls, Expression expr) { super(ls); this.expression = expr; @@ -23,7 +25,9 @@ public YieldStatement(ArrayList ls, Expression expr) // Reporting public void report(int sh) { - + Entity.doShift(sh); + System.out.println("YIELD"); + expression.report(sh+Entity.shift); } // Generation diff --git a/src/main/java/tree/TopLevelComponent.java b/src/main/java/tree/TopLevelComponent.java deleted file mode 100644 index 2d374ce4..00000000 --- a/src/main/java/tree/TopLevelComponent.java +++ /dev/null @@ -1,9 +0,0 @@ -package tree; - -// TopLevelComponent -// : ClassDeclaration -// | InterfaceDeclaration -// ; -public class TopLevelComponent extends Entity -{ -} diff --git a/src/main/java/tree/Type/PrimitiveType.java b/src/main/java/tree/Type/PrimitiveType.java new file mode 100644 index 00000000..4759c396 --- /dev/null +++ b/src/main/java/tree/Type/PrimitiveType.java @@ -0,0 +1,41 @@ +package tree.Type; + +import lexer.Token; +import lexer.TokenCode; + +// PrimitiveType +// // NumericType -- IntegralType +// : BYTE +// | SHORT +// | INT +// | LONG +// | CHAR +// // NumericType -- FloatingPointType +// | FLOAT +// | DOUBLE +// | BOOLEAN +// ; +public class PrimitiveType extends UnannotatedType +{ + // Structure + public TokenCode typeCode; + + // Creation + public PrimitiveType(Token token) + { + super(null); + this.typeCode = token.code; + } + + // Reporting + public void report(int sh) + { + System.out.print(typeCode.toString()); + } + + // Generation + public void generateEO() + { + + } +} \ No newline at end of file diff --git a/src/main/java/tree/Type.java b/src/main/java/tree/Type/Type.java similarity index 54% rename from src/main/java/tree/Type.java rename to src/main/java/tree/Type/Type.java index 099ea835..d29c4a0e 100644 --- a/src/main/java/tree/Type.java +++ b/src/main/java/tree/Type/Type.java @@ -1,7 +1,7 @@ -package tree; +package tree.Type; -import java.lang.annotation.Annotation; -import java.util.ArrayList; +import tree.Annotations; +import tree.Entity; // The root class of the entire hierarchy for Java types. // @@ -12,20 +12,24 @@ public class Type extends Entity { // Structure - public ArrayList annotations; - public UnannotatedType unannotatedType; + public Annotations annotations; // Creation - public Type(ArrayList annSeq, UnannotatedType utype) + public Type(Annotations annSeq) { this.annotations = annSeq; - this.unannotatedType = utype; + } + public Type addAnnotations(Annotations anns) + { + this.annotations = anns; + return this; } // Reporting public void report(int sh) { - + if ( annotations == null ) return; + annotations.report(sh); } // Generation diff --git a/src/main/java/tree/Type/TypeArgument.java b/src/main/java/tree/Type/TypeArgument.java new file mode 100644 index 00000000..18361b69 --- /dev/null +++ b/src/main/java/tree/Type/TypeArgument.java @@ -0,0 +1,47 @@ +package tree.Type; + +import tree.Annotations; +import tree.Entity; + +// TypeArgument +// : Type { $$ = new TypeArgument($1,0,null); } +// | QUESTION { $$ = new TypeArgument(null,1,null); } +// | QUESTION EXTENDS Type { $$ = new TypeArgument($3,1,null); } +// | QUESTION SUPER Type { $$ = new TypeArgument($3,2,null); } +// | AnnotationSeq QUESTION { $$ = new TypeArgument(null,1,$1); } +// | AnnotationSeq QUESTION EXTENDS Type { $$ = new TypeArgument($4,2,$1); } +// | AnnotationSeq QUESTION SUPER Type { $$ = new TypeArgument($4,3,$1); } +// ; +public class TypeArgument extends Entity +{ + // Structure + public Type type; + public boolean signExtends; + public boolean signSuper; + public Annotations annotations; + + // Creation + public TypeArgument(Type t, int sign, Annotations anns) + { + this.type = t; + signExtends = false; signSuper = false; + switch ( sign ) + { + case 1: signExtends = true; break; + case 2: signSuper = true; break; + } + this.annotations = anns; + } + + // Reporting + public void report(int sh) + { + + } + + // Generation + public void generateEO() + { + + } +} diff --git a/src/main/java/tree/Type/TypeArguments.java b/src/main/java/tree/Type/TypeArguments.java new file mode 100644 index 00000000..b9d3d27a --- /dev/null +++ b/src/main/java/tree/Type/TypeArguments.java @@ -0,0 +1,53 @@ +package tree.Type; + +import tree.Entity; +import java.util.ArrayList; + +// TypeArgumentsOpt +// : // empty +// | TypeArguments +// ; +// +// TypeArguments +// : LESS TypeArgumentList GREATER +// ; +// +// TypeArgumentList +// : TypeArgument +// | TypeArgumentList COMMA TypeArgument +// ; +public class TypeArguments extends Entity +{ + // Structure + public ArrayList arguments; + + // Creation + public TypeArguments(TypeArgument arg) + { + this.arguments = new ArrayList<>(); + this.arguments.add(arg); + } + public TypeArguments add(TypeArgument arg) + { + this.arguments.add(arg); + return this; + } + + // Reporting + public void report(int sh) + { + Entity.doShift(sh); + System.out.println("TYPE ARGUMENTS"); + for ( TypeArgument arg: arguments) + { + arg.report(sh+Entity.shift); + System.out.println(); + } + } + + // Generation + public void generateEO() + { + + } +} diff --git a/src/main/java/tree/Type/TypeList.java b/src/main/java/tree/Type/TypeList.java new file mode 100644 index 00000000..fb0f3f14 --- /dev/null +++ b/src/main/java/tree/Type/TypeList.java @@ -0,0 +1,44 @@ +package tree.Type; + +import tree.Entity; + +import java.util.ArrayList; + +// ClassTypeList1 +// : Type +// | ClassTypeList1 COMMA Type +// ; +// +// ClassTypeList2 +// : Type +// | ClassTypeList2 AMPERSAND Type +// ; +public class TypeList extends Entity +{ + // Structure + public ArrayList types; + + // Creation + public TypeList(Type t) + { + this.types = new ArrayList<>(); + this.types.add(t); + } + public TypeList add(Type t) + { + this.types.add(t); + return this; + } + + // Reporting + public void report(int sh) + { + + } + + // Generation + public void generateEO() + { + + } +} diff --git a/src/main/java/tree/TypeName.java b/src/main/java/tree/Type/TypeName.java similarity index 60% rename from src/main/java/tree/TypeName.java rename to src/main/java/tree/Type/TypeName.java index 587a151f..f558d511 100644 --- a/src/main/java/tree/TypeName.java +++ b/src/main/java/tree/Type/TypeName.java @@ -1,6 +1,6 @@ -package tree; +package tree.Type; -import java.util.ArrayList; +import tree.CompoundName; // UnannotatedType // : ... @@ -14,13 +14,13 @@ public class TypeName extends UnannotatedType { // Structure - public ArrayList compoundName; - public ArrayList typeArguments; + public CompoundName compoundName; + public TypeArguments typeArguments; // Creation - public TypeName(ArrayList cn, ArrayList dims, ArrayList targs) + public TypeName(CompoundName cn, TypeArguments targs) { - super(dims); + super(null); this.compoundName = cn; this.typeArguments = targs; } @@ -28,7 +28,9 @@ public TypeName(ArrayList cn, ArrayList dims, ArrayList annotations; + + public Annotations extAnnotations; public String extendingName; - public ArrayList extendingTypes; + public TypeList extendingTypes; // Creation - public TypeParameter(String n, - ArrayList anns, - String en, - ArrayList extTypes) + public TypeParameter(Annotations anns, TypeParameterTail tail) { - this.name = n; this.annotations = anns; - this.extendingName = en; - this.extendingTypes = extTypes; + this.name = tail.identifier; + this.extAnnotations = tail.extAnnotations; + this.extendingName = tail.extending; + this.extendingTypes = tail.types; } // Reporting diff --git a/src/main/java/tree/Type/TypeParameterTail.java b/src/main/java/tree/Type/TypeParameterTail.java new file mode 100644 index 00000000..446c2af0 --- /dev/null +++ b/src/main/java/tree/Type/TypeParameterTail.java @@ -0,0 +1,48 @@ +package tree.Type; + +import lexer.*; +import tree.*; + +// TypeParameterTail +// : IDENTIFIER +// | IDENTIFIER EXTENDS AnnotationSeqOpt IDENTIFIER +// | IDENTIFIER EXTENDS ClassTypeList2 +// ; +public class TypeParameterTail extends Entity +{ + // Structure + public String identifier; + + // Either extending identifier with annotations OR type list + public Annotations extAnnotations; + public String extending; + public TypeList types; + + // Creation + public TypeParameterTail(Token id, Annotations extAnns, Token ext) + { + this.identifier = id.image; + this.extAnnotations = extAnns; + this.extending = ext.image; + this.types = null; + } + public TypeParameterTail(Token id, TypeList types) + { + this.identifier = id.image; + this.extAnnotations = null; + this.extending = null; + this.types = types; + } + + // Reporting + public void report(int sh) + { + + } + + // Generation + public void generateEO() + { + + } +} diff --git a/src/main/java/tree/Type/TypeParameters.java b/src/main/java/tree/Type/TypeParameters.java new file mode 100644 index 00000000..eaab05d0 --- /dev/null +++ b/src/main/java/tree/Type/TypeParameters.java @@ -0,0 +1,34 @@ +package tree.Type; + +import tree.Entity; +import java.util.ArrayList; + +public class TypeParameters extends Entity +{ + // Structure + public ArrayList typeParameters; + + // Creation + public TypeParameters(TypeParameter tpar) + { + this.typeParameters =new ArrayList<>(); + this.typeParameters.add(tpar); + } + public TypeParameters add(TypeParameter tpar) + { + this.typeParameters.add(tpar); + return this; + } + + // Reporting + public void report(int sh) + { + + } + + // Generation + public void generateEO() + { + + } +} diff --git a/src/main/java/tree/Type/UnannotatedType.java b/src/main/java/tree/Type/UnannotatedType.java new file mode 100644 index 00000000..602867f5 --- /dev/null +++ b/src/main/java/tree/Type/UnannotatedType.java @@ -0,0 +1,41 @@ +package tree.Type; + +import tree.Annotations; +import tree.Dim; + +// UnannotatedType +// : PrimitiveType +// | CompoundName +// | CompoundName TypeArguments +// | UnannotatedType Dim // ArrayType +// ; +public class UnannotatedType extends Type +{ + // Structure + public Dim dimension; + + // Creation + public UnannotatedType(Annotations anns) + { + super(anns); + // Empty + } + public UnannotatedType addDimension(Dim dim) + { + this.dimension = dim; + return this; + } + + // Reporting + public void report(int sh) + { + super.report(sh); + dimension.report(0); + } + + // Generating + public void generateEO() + { + + } +} \ No newline at end of file diff --git a/src/main/java/tree/TypeArgument.java b/src/main/java/tree/TypeArgument.java deleted file mode 100644 index 2acc815c..00000000 --- a/src/main/java/tree/TypeArgument.java +++ /dev/null @@ -1,48 +0,0 @@ -package tree; - -import java.util.ArrayList; - -// TypeArgument -// : Type -// | QUESTION WildcardBoundsOpt -// | AnnotationSeq QUESTION WildcardBoundsOpt -// ; -// -// WildcardBoundsOpt -// : // empty -// | EXTENDS Type -// | SUPER Type -// ; -public class TypeArgument extends Entity -{ - // Structure - public Type type; - public boolean signExtends; - public boolean signSuper; - public ArrayList annotations; - - // Creation - public TypeArgument(Type t, int sign, ArrayList anns) - { - this.type = t; - signExtends = false; signSuper = false; - switch ( sign ) - { - case 1: signExtends = true; break; - case 2: signSuper = true; break; - } - this.annotations = anns; - } - - // Reporting - public void report(int sh) - { - - } - - // Generation - public void generateEO() - { - - } -} diff --git a/src/main/java/tree/UnannotatedType.java b/src/main/java/tree/UnannotatedType.java deleted file mode 100644 index 10824d36..00000000 --- a/src/main/java/tree/UnannotatedType.java +++ /dev/null @@ -1,33 +0,0 @@ -package tree; - -import java.util.ArrayList; - -// UnannotatedType -// : PrimitiveType -// | CompoundName -// | CompoundName TypeArguments -// | UnannotatedType Dim // ArrayType -// ; -public class UnannotatedType extends Entity -{ - // Structure - public ArrayList dimensions; - - // Creation - public UnannotatedType(ArrayList dims) - { - this.dimensions = dims; - } - - // Reporting - public void report(int sh) - { - - } - - // Generating - public void generateEO() - { - - } -} \ No newline at end of file diff --git a/src/main/java/tree/UnaryExpression.java b/src/main/java/tree/UnaryExpression.java deleted file mode 100644 index 5248a311..00000000 --- a/src/main/java/tree/UnaryExpression.java +++ /dev/null @@ -1,39 +0,0 @@ -package tree; - -public class UnaryExpression extends Expression -{ - public enum operator - { - op_plus, - op_minus, - op_negation, // ! - op_inversion, // ~ - op_preincrement, // ++ - op_predecrement, // -- - op_postincrement, - op_postdecrement, - } - - // Structure - public Expression operand; - public operator sign; - - // Creation - public UnaryExpression(Expression operand, operator op) - { - this.operand = operand; - this.sign = op; - } - - // Reporting - public void report(int sh) - { - - } - - // Generation - public void generateEO() - { - - } -} diff --git a/src/main/java/util/ListUtils.java b/src/main/java/util/ListUtils.java new file mode 100644 index 00000000..b3979bbc --- /dev/null +++ b/src/main/java/util/ListUtils.java @@ -0,0 +1,12 @@ +package util; + +import java.util.List; +import java.util.stream.Collectors; +import java.util.stream.Stream; + +public class ListUtils { + @SafeVarargs + public static List listOf(T... elems) { + return Stream.of(elems).collect(Collectors.toList()); + } +} diff --git a/src/main/resources/Java_16_Grammar.y b/src/main/resources/Java_16_Grammar.y index ca94b692..67d28e5a 100644 --- a/src/main/resources/Java_16_Grammar.y +++ b/src/main/resources/Java_16_Grammar.y @@ -1,123 +1,123 @@ //// Tokens //////////////////////// -%token LPAREN // ( -%token RPAREN // ) -%token LBRACE // { -%token RBRACE // } -%token LBRACKET // [ -%token RBRACKET // ] -%token COMMA // , -%token DOT // . -%token SEMICOLON // ; -%token COLON // : -%token DBL_COLON // :: -%token STAR // * -%token SLASH // / -%token PERCENT // % -%token AMPERSAND // & -%token AT // @ -%token LESS // < -%token GREATER // > -%token VERTICAL // | -%token PLUS // + -%token MINUS // - -%token ARROW // -> -%token DIAMOND // <> -%token QUESTION // ? -%token CARET // ^ -%token EQUAL // = -%token TILDE // ~ -%token EXCLAMATION // ! - -%token ELLIPSIS // ... - -%token LESS_EQUAL // <= -%token GREATER_EQUAL // >= -%token STAR_EQUAL // *= -%token SLASH_EQUAL // /= -%token PERCENT_EQUAL // %= -%token PLUS_EQUAL // += -%token MINUS_EQUAL // -= -%token LESS_LESS_EQUAL // <<= -%token GR_GR_EQUAL // >>= -%token GR_GR_GR_EQUAL // >>>= -%token AMP_EQUAL // &= -%token CARET_EQUAL // ^= -%token VERTICAL_EQUAL // |= - -%token DBL_PLUS // ++ -%token DBL_MINUS // -- -%token DBL_VERTICAL // || -%token DBL_AMPERSAND // && -%token DBL_EQUAL // == -%token NON_EQUAL // != -%token DBL_LESS // << -%token DBL_GREATER // >> -%token TRIPL_GREATER // >>> - -%token IDENTIFIER -%token INTEGER_LITERAL -%token FLOATING_POINT_LITERAL -%token CHARACTER_LITERAL -%token STRING_LITERAL - -%token ABSTRACT -%token ASSERT -%token BOOLEAN -%token BREAK -%token BYTE -%token CASE -%token CATCH -%token CHAR -%token CLASS -%token CONTINUE -%token DEFAULT -%token DO -%token DOUBLE -%token ELSE -%token ENUM -%token EXTENDS -%token FALSE -%token FINAL -%token FINALLY -%token FLOAT -%token FOR -%token IF -%token IMPLEMENTS -%token IMPORT -%token INSTANCEOF -%token INT -%token INTERFACE -%token LONG -%token MODULE -%token NEW -%token NULL -%token OPEN -%token PACKAGE -%token PRIVATE -%token PROTECTED -%token PUBLIC -%token RECORD -%token RETURN -%token SHORT -%token STATIC -%token STRICTFP -%token SUPER -%token SWITCH -%token SYNCHRONIZED -%token THIS -%token THROW -%token THROWS -%token TRANSIENT -%token TRANSITIVE -%token TRUE -%token TRY -%token VAR -%token VOID -%token VOLATILE -%token WHILE -%token YIELD +%token LPAREN // ( +%token RPAREN // ) +%token LBRACE // { +%token RBRACE // } +%token LBRACKET // [ +%token RBRACKET // ] +%token COMMA // , +%token DOT // . +%token SEMICOLON // ; +%token COLON +%token DBL_COLON +%token STAR +%token SLASH +%token PERCENT +%token AMPERSAND // & +%token AT // @ +%token LESS // < +%token GREATER // > +%token VERTICAL // | +%token PLUS // + +%token MINUS // - +%token ARROW // -> +%token DIAMOND // <> +%token QUESTION // ? +%token CARET // ^ +%token EQUAL // = +%token TILDE // ~ +%token EXCLAMATION // ! + +%token ELLIPSIS // ... + +%token LESS_EQUAL // <= +%token GREATER_EQUAL // >= +%token STAR_EQUAL // *= +%token SLASH_EQUAL // /= +%token PERCENT_EQUAL // %= +%token PLUS_EQUAL // += +%token MINUS_EQUAL // -= +%token LESS_LESS_EQUAL // <<= +%token GR_GR_EQUAL // >>= +%token GR_GR_GR_EQUAL // >>>= +%token AMP_EQUAL // &= +%token CARET_EQUAL // ^= +%token VERTICAL_EQUAL // |= + +%token DBL_PLUS // ++ +%token DBL_MINUS // -- +%token DBL_VERTICAL // || +%token DBL_AMPERSAND // && +%token DBL_EQUAL // == +%token NON_EQUAL // != +%token DBL_LESS // << +%token DBL_GREATER // >> +%token TRIPL_GREATER // >>> + +%token IDENTIFIER +%token INTEGER_LITERAL +%token FLOATING_POINT_LITERAL +%token CHARACTER_LITERAL +%token STRING_LITERAL + +%token ABSTRACT +%token ASSERT +%token BOOLEAN +%token BREAK +%token BYTE +%token CASE +%token CATCH +%token CHAR +%token CLASS +%token CONTINUE +%token DEFAULT +%token DO +%token DOUBLE +%token ELSE +%token ENUM +%token EXTENDS +%token FALSE +%token FINAL +%token FINALLY +%token FLOAT +%token FOR +%token IF +%token IMPLEMENTS +%token IMPORT +%token INSTANCEOF +%token INT +%token INTERFACE +%token LONG +%token MODULE +%token NEW +%token NULL +%token OPEN +%token PACKAGE +%token PRIVATE +%token PROTECTED +%token PUBLIC +%token RECORD +%token RETURN +%token SHORT +%token STATIC +%token STRICTFP +%token SUPER +%token SWITCH +%token SYNCHRONIZED +%token THIS +%token THROW +%token THROWS +%token TRANSIENT +%token TRANSITIVE +%token TRUE +%token TRY +%token VAR +%token VOID +%token VOLATILE +%token WHILE +%token YIELD %start CompilationUnit @@ -125,111 +125,225 @@ %language "Java" %define api.parser.class {JavaParser} %define api.parser.public -%define package {parser} +%define api.package {parser} +%define api.value.type {Entity} + +%code imports { import lexer.*; } +%code imports { import tree.*; } +%code imports { import tree.Compilation.*; } +%code imports { import tree.Declaration.*; } +%code imports { import tree.Expression.*; } +%code imports { import tree.Expression.Primary.*; } +%code imports { import tree.Statement.*; } +%code imports { import tree.Type.*; } + +// Nonterminal types +// ================= + +%nterm CompoundName +%nterm Annotation +%nterm AnnotationSeq AnnotationSeqOpt +%nterm AnnoParameterList + +%nterm StandardModifier +%nterm StandardModifierSeq +%nterm ModifierSeq ModifierSeqOpt + +%nterm CompilationUnit Package +%nterm Module + +%nterm ImportDeclaration +%nterm ImportDeclarationSeq ImportDeclarationSeqOpt + +%nterm TopLevelComponent +%nterm TopLevelComponentSeq TopLevelComponentSeqOpt + +%nterm Dims DimsOpt +%nterm Dim + +%nterm TypeArgument +%nterm TypeArguments TypeArgumentList TypeArgumentsOpt + +%nterm TypeParameter +%nterm TypeParameterTail +%nterm TypeParameterList TypeParameters TypeParametersOpt + +%nterm EnumDeclaration ClassDeclaration NormalClassDeclaration + InterfaceDeclaration NormalInterfaceDeclaration RecordDeclaration + AnnotationInterfaceDeclaration Pattern InterfaceMemberDeclaration + ClassBodyDeclaration PureBodyDeclaration FieldDeclaration MethodDeclaration + ConstantDeclaration InterfaceMethodDeclaration BlockDeclaration + LocalVariableDeclaration + +%nterm ConstructorDeclaration +%nterm InterfaceMemberDeclarationSeq InterfaceBody ClassBodyDeclarationSeq ClassBody ClassBodyOpt + +%nterm Type ClassExtendsOpt +%nterm UnannotatedType +%nterm PrimitiveType AssignmentOperator Literal + +%nterm TypeList TargetType ClassTypeList1 ClassTypeList2 ClassImplementsOpt + InterfaceExtends InterfaceExtendsOpt ThrowsOpt CatchType + +%nterm ElementValue + +%nterm Expression ExpressionOpt Assignment AssignmentExpression ConditionalExpression + SwitchExpression PostfixExpression Primary UnaryExpression UnaryExpressionNotPlusMinus + InstanceofExpression CastExpression LambdaExpression + LeftHandSide FieldAccess ArrayAccess StatementExpression + MethodInvocation MethodReference ArrayCreationExpression ClassInstanceCreationExpression + +%nterm ConditionalOrTail ConditionalOrExpression ConditionalAndExpression + InclusiveOrExpression ExclusiveOrExpression AndExpression EqualityExpression RelationalExpression + ShiftExpression AdditiveExpression MultiplicativeExpression + +%nterm StatementExpressionList StatementExpressionListOpt + +%nterm PreIncrementExpression PreDecrementExpression +%nterm PostIncrementExpression PostDecrementExpression + +%nterm Arguments ArgumentList + +%nterm LambdaParameter FormalParameter +%nterm LambdaParameters LambdaParameterList1 LambdaParameterList2 FormalParameterList +%nterm FormalParameterTail +%nterm Statement SimpleStatement LabeledStatement + IfThenElseStatement WhileStatement ForStatement ElsePartOpt + BasicForStatement EnhancedForStatement +%nterm Block +%nterm BlockStatement +%nterm BlockStatementSeq + +%nterm CatchFormalParameter +%nterm CatchClause +%nterm Catches CatchesOpt + +%nterm ConstructorBody +%nterm ConstructorDeclarator +%nterm ExplicitConstructorInvocation + +%nterm VariableDeclarator +%nterm VariableDeclaratorList + +%nterm ArrayInitializer VariableInitializerListOpt VariableInitializerList VariableInitializer + +%nterm SwitchBlock +%nterm SwitchRule +%nterm SwitchRuleSeq +%nterm SwitchLabel CaseExpressionList +%nterm SwitchLabelSeq %% //// Literals //////////////////////////////////////////////// Literal - : INTEGER_LITERAL - | FLOATING_POINT_LITERAL - | TRUE // BOOLEAN_LITERAL - | FALSE // BOOLEAN_LITERAL - | CHARACTER_LITERAL - | STRING_LITERAL -// | TextBlock // ??? - | NULL // NullLiteral + : INTEGER_LITERAL { $$ = $1; } + | FLOATING_POINT_LITERAL { $$ = $1; } + | TRUE { $$ = $1; } // BOOLEAN_LITERAL + | FALSE { $$ = $1; } // BOOLEAN_LITERAL + | CHARACTER_LITERAL { $$ = $1; } + | STRING_LITERAL { $$ = $1; } +// | TextBlock // ??? + | NULL { $$ = $1; } // NullLiteral ; //// Basic Constructs //////////////////////////////////////// CompoundName - : IDENTIFIER - | CompoundName DOT IDENTIFIER + : IDENTIFIER { $$ = new CompoundName($1.image); } + | CompoundName DOT IDENTIFIER { $$ = $1.add($3.image); } ; ModifierSeqOpt - : // empty - | ModifierSeq + : %empty { $$ = null; } + | ModifierSeq { $$ = $1; } ; ModifierSeq - : StandardModifierSeq - | AnnotationSeq StandardModifierSeq + : StandardModifierSeq { $$ = new Modifiers(null,$1); } + | AnnotationSeq StandardModifierSeq { $$ = new Modifiers($1,$2); } ; StandardModifierSeq - : StandardModifier - | StandardModifierSeq StandardModifier + : StandardModifier { $$ = new StandardModifiers($1); } + | StandardModifierSeq StandardModifier { $$ = $1.add($2); } ; StandardModifier // : Annotation - : DEFAULT - | FINAL - | PUBLIC - | PROTECTED - | PRIVATE - | ABSTRACT - | STATIC - | STRICTFP - | SYNCHRONIZED - | TRANSIENT - | VOLATILE - | OPEN // for modules only + : DEFAULT { $$ = $1; } + | FINAL { $$ = $1; } + | PUBLIC { $$ = $1; } + | PROTECTED { $$ = $1; } + | PRIVATE { $$ = $1; } + | ABSTRACT { $$ = $1; } + | STATIC { $$ = $1; } + | STRICTFP { $$ = $1; } + | SYNCHRONIZED { $$ = $1; } + | TRANSIENT { $$ = $1; } + | VOLATILE { $$ = $1; } + | OPEN { $$ = $1; } // for modules only ; //// Compilation units, Packages and Modules //////////////////// CompilationUnit - : // empty - | Package - | Module - | ImportDeclarationSeqOpt TopLevelComponentSeq + : %empty { $$ = null; } + | Package { $$ = $1; } + | Module { $$ = $1; } + | ImportDeclarationSeqOpt TopLevelComponentSeq { $$ = new SimpleCompilationUnit($1,$2); } ; Package : PACKAGE CompoundName SEMICOLON ImportDeclarationSeqOpt TopLevelComponentSeqOpt + { $$ = new tree.Compilation.Package($2,$4,$5); } ; +/////// Java modules are not supported (yet) +/////// Module - : ModifierSeqOpt MODULE CompoundName LBRACE ModuleDirectiveSeqOpt RBRACE + : ModifierSeqOpt MODULE CompoundName LBRACE ModuleDirectiveSeqOpt RBRACE { $$ = null; } // not implemented ; ImportDeclarationSeqOpt - : // empty - | ImportDeclaration - | ImportDeclarationSeqOpt ImportDeclaration + : %empty { $$ = null; } + | ImportDeclarationSeq { $$ = $1; } ; -ImportDeclaration - : IMPORT StaticOpt CompoundName SEMICOLON - | IMPORT StaticOpt CompoundName DOT STAR SEMICOLON +ImportDeclarationSeq + : ImportDeclaration { $$ = new ImportDeclarations($1); } + | ImportDeclarationSeqOpt ImportDeclaration { $$ = $1.add($2); } ; -StaticOpt - : // empty - | STATIC +ImportDeclaration + : IMPORT CompoundName SEMICOLON { $$ = new ImportDeclaration(false,$2,false); } + | IMPORT STATIC CompoundName SEMICOLON { $$ = new ImportDeclaration(true,$3,false); } + | IMPORT CompoundName DOT STAR SEMICOLON { $$ = new ImportDeclaration(false,$2,true); } + | IMPORT STATIC CompoundName DOT STAR SEMICOLON { $$ = new ImportDeclaration(true,$3,true); } ; TopLevelComponentSeqOpt - : // empty - | TopLevelComponentSeq + : %empty { $$ = null; } + | TopLevelComponentSeq { $$ = $1; } ; TopLevelComponentSeq - : ModifierSeqOpt TopLevelComponent - | TopLevelComponentSeq ModifierSeqOpt TopLevelComponent + : ModifierSeqOpt TopLevelComponent { $2.addModifiers($1); $$ = new TopLevelComponents($2); } + | TopLevelComponentSeq ModifierSeqOpt TopLevelComponent { $3.addModifiers($2); $$ = $1.add($3); } ; TopLevelComponent - : ClassDeclaration - | InterfaceDeclaration + : ClassDeclaration { $$ = $1; } + | InterfaceDeclaration { $$ = $1; } ; +/////// Java modules are not supported (yet) +/////// + ModuleDirectiveSeqOpt - : ModuleDirectiveSeq + : %empty //{ $$ = null; } + | ModuleDirectiveSeq //{ $$ = $1; } ; ModuleDirectiveSeq @@ -253,7 +367,7 @@ ModuleNameList ; RequiresModifierSeqOpt - : // empty + : %empty | TRANSITIVE | TRANSITIVE STATIC | STATIC @@ -268,17 +382,17 @@ RequiresModifierSeqOpt // ; Type - : UnannotatedType - | AnnotationSeq UnannotatedType + : UnannotatedType { $$ = $1; } + | AnnotationSeq UnannotatedType { $$ = $2.addAnnotations($1); } ; UnannotatedType - : PrimitiveType + : PrimitiveType { $$ = new PrimitiveType($1); } // ReferenceType - | CompoundName - | CompoundName TypeArguments + | CompoundName { $$ = new TypeName($1,null); } + | CompoundName TypeArguments { $$ = new TypeName($1,$2); } // ArrayType - | UnannotatedType Dim + | UnannotatedType Dim { $$ = $1.addDimension($2); } ; //PrimitiveType @@ -287,15 +401,15 @@ UnannotatedType PrimitiveType // NumericType -- IntegralType - : BYTE - | SHORT - | INT - | LONG - | CHAR + : BYTE { $$ = $1; } + | SHORT { $$ = $1; } + | INT { $$ = $1; } + | LONG { $$ = $1; } + | CHAR { $$ = $1; } // NumericType -- FloatingPointType - | FLOAT - | DOUBLE - | BOOLEAN + | FLOAT { $$ = $1; } + | DOUBLE { $$ = $1; } + | BOOLEAN { $$ = $1; } ; //ReferenceType @@ -316,27 +430,28 @@ PrimitiveType //// Classes //////////////////////// ClassDeclaration - : NormalClassDeclaration - | EnumDeclaration - | RecordDeclaration + : NormalClassDeclaration { $$ = $1; } + | EnumDeclaration { $$ = $1; } + | RecordDeclaration { $$ = $1; } ; NormalClassDeclaration : /*ModifierSeqOpt*/ CLASS IDENTIFIER TypeParametersOpt ClassExtendsOpt ClassImplementsOpt ClassBody + { $$ = new NormalClassDeclaration($2,$3,$4,$5,$6); } ; TypeParametersOpt - : // empty - | TypeParameters + : %empty { $$ = null; } + | TypeParameters { $$ = $1; } ; TypeParameters - : LESS TypeParameterList GREATER + : LESS TypeParameterList GREATER { $$ = $2; } ; TypeParameterList - : TypeParameter - | TypeParameterList COMMA TypeParameter + : TypeParameter { $$ = new TypeParameters($1); } + | TypeParameterList COMMA TypeParameter { $$ = $1.add($3); } ; //TypeParameter @@ -346,94 +461,98 @@ TypeParameterList // ; TypeParameter - : AnnotationSeq TypeParameterTail - | TypeParameterTail + : AnnotationSeq TypeParameterTail { $$ = new TypeParameter($1,$2); } + | TypeParameterTail { $$ = new TypeParameter(null,$1); } ; TypeParameterTail - : IDENTIFIER - | IDENTIFIER EXTENDS AnnotationSeqOpt IDENTIFIER - | IDENTIFIER EXTENDS ClassTypeList2 + : IDENTIFIER { $$ = new TypeParameterTail($1,null); } + | IDENTIFIER EXTENDS AnnotationSeqOpt IDENTIFIER { $$ = new TypeParameterTail($1,$3,$4); } + | IDENTIFIER EXTENDS ClassTypeList2 { $$ = new TypeParameterTail($1,$3); } ; ClassExtendsOpt - : // empty - | EXTENDS Type + : %empty { $$ = null; } + | EXTENDS Type { $$ = $2; } ; ClassImplementsOpt - : // empty - | IMPLEMENTS ClassTypeList1 + : %empty { $$ = null; } + | IMPLEMENTS ClassTypeList1 { $$ = $2; } ; ClassTypeList1 - : Type - | ClassTypeList1 COMMA Type + : Type { $$ = new TypeList($1); } + | ClassTypeList1 COMMA Type { $$ = $1.add($3); } ; ClassTypeList2 - : Type - | ClassTypeList2 AMPERSAND Type + : Type { $$ = new TypeList($1); } + | ClassTypeList2 AMPERSAND Type { $$ = $1.add($3); } ; ClassBodyOpt - : // empty - | ClassBody + : %empty { $$ = null; } + | ClassBody { $$ = $1; } ; ClassBody - : LBRACE RBRACE - | LBRACE ClassBodyDeclarationSeq RBRACE + : LBRACE RBRACE { $$ = null; } + | LBRACE ClassBodyDeclarationSeq RBRACE { $$ = $2; } ; ClassBodyDeclarationSeq - : ClassBodyDeclaration - | ClassBodyDeclarationSeq ClassBodyDeclaration + : ClassBodyDeclaration { $$ = new Declarations($1); } + | ClassBodyDeclarationSeq ClassBodyDeclaration { $$ = $1.add($2); } ; ClassBodyDeclaration - : ModifierSeqOpt PureBodyDeclaration - | Block // InstanceInitializer - | STATIC Block // StaticInitializer - | SEMICOLON + : ModifierSeqOpt PureBodyDeclaration { $$ = $2.addModifiers($1); } + | Block { $$ = new ClassInitializer($1,false); } // InstanceInitializer + | STATIC Block { $$ = new ClassInitializer($2,true); } // StaticInitializer + | SEMICOLON { $$ = null; } ; PureBodyDeclaration - : FieldDeclaration // ClassMemberDeclaration - | MethodDeclaration // ClassMemberDeclaration - | ClassDeclaration // ClassMemberDeclaration - | InterfaceDeclaration // ClassMemberDeclaration - | ConstructorDeclaration + : FieldDeclaration { $$ = $1; } // ClassMemberDeclaration + | MethodDeclaration { $$ = $1; } // ClassMemberDeclaration + | ClassDeclaration { $$ = $1; } // ClassMemberDeclaration + | InterfaceDeclaration { $$ = $1; } // ClassMemberDeclaration + | ConstructorDeclaration { $$ = $1; } ; //// Constructors /////////////////////////////////////// ConstructorDeclaration : /*ModifierSeqOpt*/ ConstructorDeclarator ThrowsOpt ConstructorBody + { $$ = new ConstructorDeclaration(null,$1.typeParameters,$1.formalParameters, + $2,$3.invocation,$3.block); } ; ConstructorDeclarator : TypeParametersOpt IDENTIFIER LPAREN FormalParameterList/*FormalParameters*/ RPAREN + { $$ = new ConstructorDeclarator($1,$4); } ; ConstructorBody - : LBRACE RBRACE - | LBRACE ExplicitConstructorInvocation RBRACE - | LBRACE BlockStatementSeq RBRACE - | LBRACE ExplicitConstructorInvocation BlockStatementSeq RBRACE + : LBRACE RBRACE { $$ = new ConstructorBody(null,null); } + | LBRACE ExplicitConstructorInvocation RBRACE { $$ = new ConstructorBody($2,null); } + | LBRACE BlockStatementSeq RBRACE { $$ = new ConstructorBody(null,new Block(null,$2)); } + | LBRACE ExplicitConstructorInvocation BlockStatementSeq RBRACE { $$ = new ConstructorBody($2,new Block(null,$3)); } ; ExplicitConstructorInvocation - : TypeArgumentsOpt THIS Arguments SEMICOLON - | TypeArgumentsOpt SUPER Arguments SEMICOLON - | CompoundName DOT TypeArgumentsOpt SUPER Arguments SEMICOLON - | Primary DOT TypeArgumentsOpt SUPER Arguments SEMICOLON + : TypeArgumentsOpt THIS Arguments SEMICOLON { $$ = new ExplicitConstructorInvocation(null,$1,false,$3); } + | TypeArgumentsOpt SUPER Arguments SEMICOLON { $$ = new ExplicitConstructorInvocation(null,$1,true,$3); } + | CompoundName DOT TypeArgumentsOpt SUPER Arguments SEMICOLON { Expression expr = new SimpleReference($1); + $$ = new ExplicitConstructorInvocation(expr,$3,true,$5); } + | Primary DOT TypeArgumentsOpt SUPER Arguments SEMICOLON { $$ = new ExplicitConstructorInvocation($1,$3,true,$5); } ; //// EnumDeclaration //////////////////////////////////// EnumDeclaration - : /*ModifierSeqOpt*/ ENUM IDENTIFIER ClassImplementsOpt EnumBody + : /*ModifierSeqOpt*/ ENUM IDENTIFIER ClassImplementsOpt EnumBody { $$ = null; } ; EnumBody @@ -442,7 +561,7 @@ EnumBody ; EnumConstantListOpt - : // empty + : %empty | EnumConstant | EnumConstantListOpt COMMA EnumConstant ; @@ -453,7 +572,7 @@ EnumConstant ; EnumBodyDeclarationsOpt - : // empty + : %empty | SEMICOLON | SEMICOLON ClassBodyDeclarationSeq ; @@ -461,7 +580,7 @@ EnumBodyDeclarationsOpt //// RecordDeclaration ////////////////////////////////// RecordDeclaration - : /*ModifierSeqOpt*/ RECORD IDENTIFIER TypeParametersOpt RecordHeader ClassImplementsOpt RecordBody + : /*ModifierSeqOpt*/ RECORD IDENTIFIER TypeParametersOpt RecordHeader ClassImplementsOpt RecordBody { $$ = null; } ; RecordHeader @@ -469,7 +588,7 @@ RecordHeader ; RecordComponentListOpt - : // empty + : %empty | RecordComponent | RecordComponentListOpt COMMA RecordComponent ; @@ -497,45 +616,45 @@ RecordBodyDeclaration //// FieldDeclaration /////////////////////////////////// FieldDeclaration - : /*ModifierSeqOpt*/ UnannotatedType VariableDeclaratorList SEMICOLON + : /*ModifierSeqOpt*/ UnannotatedType VariableDeclaratorList SEMICOLON { $$ = new TypeAndDeclarators($1,$2); } ; VariableDeclaratorList - : VariableDeclarator - | VariableDeclaratorList COMMA VariableDeclarator + : VariableDeclarator { $$ = new VariableDeclarators($1); } + | VariableDeclaratorList COMMA VariableDeclarator { $$ = $1.add($3); } ; VariableDeclarator - : IDENTIFIER - | IDENTIFIER EQUAL Expression - | IDENTIFIER Dims - | IDENTIFIER Dims EQUAL ArrayInitializer + : IDENTIFIER { $$ = new VariableDeclarator($1,null,null); } + | IDENTIFIER EQUAL Expression { $$ = new VariableDeclarator($1,null,$3); } + | IDENTIFIER Dims { $$ = new VariableDeclarator($1,$2,null); } + | IDENTIFIER Dims EQUAL ArrayInitializer { $$ = new VariableDeclarator($1,$2,$4); } ; ArrayInitializer - : LBRACE VariableInitializerListOpt RBRACE - | LBRACE VariableInitializerListOpt COMMA RBRACE + : LBRACE VariableInitializerListOpt RBRACE { $$ = $2; } + | LBRACE VariableInitializerListOpt COMMA RBRACE { $$ = $2; } ; VariableInitializerListOpt - : // empty - | VariableInitializerList + : %empty { $$ = null; } + | VariableInitializerList { $$ = $1; } ; VariableInitializerList - : VariableInitializer - | VariableInitializerList COMMA VariableInitializer + : VariableInitializer { $$ = new InitializerArray($1); } + | VariableInitializerList COMMA VariableInitializer { $$ = $1.add($3); } ; VariableInitializer - : Expression - | ArrayInitializer + : Expression { $$ = new InitializerSimple($1); } + | ArrayInitializer { $$ = $1; } ; //// MethodDeclaration //////////////////////////////// MethodDeclaration - : MethodHeader MethodBody + : MethodHeader MethodBody { $$ = null; } // not implemented yet ; //MethodHeader @@ -574,24 +693,24 @@ MethodDeclarator // ; FormalParameterList - : FormalParameter - | FormalParameterList COMMA FormalParameter + : FormalParameter { $$ = new ParameterDeclarations($1); } + | FormalParameterList COMMA FormalParameter { $$ = $1.add($3);} ; FormalParameter - : ModifierSeq UnannotatedType FormalParameterTail - | UnannotatedType FormalParameterTail + : ModifierSeq UnannotatedType FormalParameterTail { $$ = ParameterDeclaration.create($1,$2,$3); } + | UnannotatedType FormalParameterTail { $$ = ParameterDeclaration.create(null,$1,$2); } ; FormalParameterTail - : IDENTIFIER DimsOpt - | AnnotationSeqOpt ELLIPSIS IDENTIFIER - | THIS - | IDENTIFIER DOT THIS + : IDENTIFIER DimsOpt { $$ = new ParameterTail(null,$1,$2,false,false); } + | AnnotationSeqOpt ELLIPSIS IDENTIFIER { $$ = new ParameterTail($1,$3,null,true,false); } + | THIS { $$ = new ParameterTail(null,null,null,false,true); } // receiver + | IDENTIFIER DOT THIS { $$ = new ParameterTail(null,$1,null,false,true); } // receiver ; //FormalParameter -// : ModifierSeqOpt UnannotatedType IDENTIFIER DimsOpt +// : ModifierSeqOpt UnannotatedType IDENTIFIER DimsOpt // | ModifierSeqOpt UnannotatedType AnnotationSeqOpt ELLIPSIS IDENTIFIER // VariableArityParameter // // | AnnotationSeqOpt UnannotatedType THIS @@ -599,8 +718,8 @@ FormalParameterTail // ; ThrowsOpt - : // empty - | THROWS ClassTypeList1 + : %empty { $$ = null; } + | THROWS ClassTypeList1 { $$ = $2; } ; MethodBody @@ -611,68 +730,69 @@ MethodBody //// ////////////////////////////////// DimsOpt - : // empty - | Dims + : %empty { $$ = null; } + | Dims { $$ = $1; } ; Dims - : Dim - | Dims Dim + : Dim { $$ = new Dims($1); } + | Dims Dim { $$ = $1.add($2); } ; Dim - : AnnotationSeq LBRACKET RBRACKET - | LBRACKET RBRACKET + : AnnotationSeq LBRACKET RBRACKET { $$ = new Dim($1); } + | LBRACKET RBRACKET { $$ = new Dim(null); } ; //// InterfaceDeclaration //////////////////////// InterfaceDeclaration - : NormalInterfaceDeclaration - | AnnotationInterfaceDeclaration + : NormalInterfaceDeclaration { $$ = $1; } + | AnnotationInterfaceDeclaration { $$ = null; } // not implemented ; NormalInterfaceDeclaration : INTERFACE IDENTIFIER TypeParametersOpt InterfaceExtendsOpt InterfaceBody + { $$ = new NormalInterfaceDeclaration($2,$3,$4,$5); } ; InterfaceExtendsOpt - : // empty - | InterfaceExtends + : %empty { $$ = null; } + | InterfaceExtends { $$ = $1; } ; InterfaceExtends - : EXTENDS Type - | InterfaceExtends COMMA Type + : EXTENDS Type { $$ = new TypeList($2); } + | InterfaceExtends COMMA Type { $$ = $1.add($3); } ; InterfaceBody - : LBRACE RBRACE - | LBRACE InterfaceMemberDeclarationSeq RBRACE + : LBRACE RBRACE { $$ = null; } + | LBRACE InterfaceMemberDeclarationSeq RBRACE { $$ = $2; } ; InterfaceMemberDeclarationSeq - : ModifierSeqOpt InterfaceMemberDeclaration - | InterfaceMemberDeclarationSeq ModifierSeqOpt InterfaceMemberDeclaration + : ModifierSeqOpt InterfaceMemberDeclaration { $$ = new Declarations($2.addModifiers($1)); } + | InterfaceMemberDeclarationSeq ModifierSeqOpt InterfaceMemberDeclaration { $$ = $1.add($3.addModifiers($2)); } ; InterfaceMemberDeclaration - : ConstantDeclaration - | InterfaceMethodDeclaration - | ClassDeclaration - | InterfaceDeclaration + : ConstantDeclaration { $$ = $1; } + | InterfaceMethodDeclaration { $$ = $1; } + | ClassDeclaration { $$ = $1; } + | InterfaceDeclaration { $$ = $1; } ; ConstantDeclaration - : Type VariableDeclaratorList SEMICOLON + : Type VariableDeclaratorList SEMICOLON { $$ = new TypeAndDeclarators($1,$2); } ; InterfaceMethodDeclaration - : MethodHeader MethodBody + : MethodHeader MethodBody { $$ = null; } // not implemented yet ; AnnotationInterfaceDeclaration - : AT INTERFACE IDENTIFIER AnnotationInterfaceBody + : AT INTERFACE IDENTIFIER AnnotationInterfaceBody { $$ = null; } ; AnnotationInterfaceBody @@ -697,36 +817,36 @@ AnnotationInterfaceElementDeclaration ; DefaultValueOpt - : // empty + : %empty | DEFAULT ElementValue ; //// Blocks & Statements ///////////////////////////////////// Block - : LBRACE RBRACE - | LBRACE BlockStatementSeq RBRACE + : LBRACE RBRACE { $$ = null; } + | LBRACE BlockStatementSeq RBRACE { $$ = $2; } ; BlockStatementSeq - : BlockStatement - | BlockStatementSeq BlockStatement + : BlockStatement { $$ = new BlockStatements($1); } + | BlockStatementSeq BlockStatement { $$ = $1.add($2); } ; BlockStatement - : ModifierSeqOpt BlockDeclaration - | Statement + : ModifierSeqOpt BlockDeclaration { $$ = new BlockStatement($2.addModifiers($1)); } + | Statement { $$ = $1; } ; BlockDeclaration - : ClassDeclaration // LocalClassOrInterfaceDeclaration - | NormalInterfaceDeclaration // LocalClassOrInterfaceDeclaration - | LocalVariableDeclaration SEMICOLON // LocalVariableDeclarationStatement + : ClassDeclaration { $$ = $1; } // LocalClassOrInterfaceDeclaration + | NormalInterfaceDeclaration { $$ = $1; } // LocalClassOrInterfaceDeclaration + | LocalVariableDeclaration SEMICOLON { $$ = $1; } // LocalVariableDeclarationStatement ; LocalVariableDeclaration - : UnannotatedType VariableDeclaratorList - | VAR VariableDeclaratorList + : UnannotatedType VariableDeclaratorList { $$ = new TypeAndDeclarators($1,$2); } + | VAR VariableDeclaratorList { $$ = new TypeAndDeclarators(null,$2); } ; Statement @@ -738,79 +858,80 @@ Statement ; SimpleStatement - : Block - | SEMICOLON // EmptyStatement - | StatementExpression SEMICOLON // ExpressionStatement + : Block { $$ = $1; } + | SEMICOLON { $$ = null; } // EmptyStatement + | StatementExpression SEMICOLON { $$ = new StatementExpression($1); } // ExpressionStatement - | ASSERT Expression SEMICOLON // AssertStatement - | ASSERT Expression COLON Expression SEMICOLON // AssertStatement + | ASSERT Expression SEMICOLON { $$ = new Assert(null,$2,null); } // AssertStatement + | ASSERT Expression COLON Expression SEMICOLON { $$ = new Assert(null,$2,$4); } // AssertStatement - | SWITCH LPAREN Expression RPAREN SwitchBlock // SwitchStatement - | DO Statement WHILE LPAREN Expression RPAREN SEMICOLON // DoStatement + | SWITCH LPAREN Expression RPAREN SwitchBlock { $$ = null; } // not implemented yet // SwitchStatement + | DO Statement WHILE LPAREN Expression RPAREN SEMICOLON { $$ = new Do(null,$2,$5); } // DoStatement - | BREAK SEMICOLON // BreakStatement - | BREAK IDENTIFIER SEMICOLON // BreakStatement + | BREAK SEMICOLON { $$ = new Break(null,null); } // BreakStatement + | BREAK IDENTIFIER SEMICOLON { $$ = new Break(null,$2); } // BreakStatement - | CONTINUE SEMICOLON // ContinueStatement - | CONTINUE IDENTIFIER SEMICOLON // ContinueStatement + | CONTINUE SEMICOLON { $$ = new Continue(null,null); } // ContinueStatement + | CONTINUE IDENTIFIER SEMICOLON { $$ = new Continue(null,$2); } // ContinueStatement - | RETURN SEMICOLON // ReturnStatement - | RETURN Expression SEMICOLON // ReturnStatement + | RETURN SEMICOLON { $$ = new Return(null,null); } // ReturnStatement + | RETURN Expression SEMICOLON { $$ = new Return(null,$2); } // ReturnStatement - | SYNCHRONIZED LPAREN Expression RPAREN Block // SynchronizedStatement + | SYNCHRONIZED LPAREN Expression RPAREN Block { $$ = new Synchronized(null,$3,$5); } // SynchronizedStatement - | THROW Expression SEMICOLON // ThrowStatement - | YIELD Expression SEMICOLON // YieldStatement + | THROW Expression SEMICOLON { $$ = new Throw(null,$2); } // ThrowStatement + | YIELD Expression SEMICOLON { $$ = new Yield(null,$2); } // YieldStatement // TryStatement - | TRY Block Catches - | TRY Block Catches Finally - | TRY Block Finally + | TRY Block Catches { $$ = null; } // not implemented yet + | TRY Block Catches Finally { $$ = null; } // not implemented yet + | TRY Block Finally { $$ = null; } // not implemented yet | TRY ResourceSpecification Block CatchesOpt FinallyOpt // TryWithResourcesStatement + { $$ = null; } // not implemented yet ; LabeledStatement - : IDENTIFIER COLON Statement + : IDENTIFIER COLON Statement { $$ = $3.addLabel($1); } ; StatementExpression - : Assignment - | PreIncrementExpression - | PreDecrementExpression - | PostIncrementExpression - | PostDecrementExpression - | MethodInvocation - | ClassInstanceCreationExpression + : Assignment { $$ = $1; } + | PreIncrementExpression { $$ = $1; } + | PreDecrementExpression { $$ = $1; } + | PostIncrementExpression { $$ = $1; } + | PostDecrementExpression { $$ = $1; } + | MethodInvocation { $$ = $1; } + | ClassInstanceCreationExpression { $$ = $1; } ; IfThenElseStatement - : IF LPAREN Expression RPAREN Statement ElsePartOpt + : IF LPAREN Expression RPAREN Statement ElsePartOpt { $$ = null; } // not implemented yet ; ElsePartOpt - : // empty - | ELSE Statement + : %empty { $$ = null; } + | ELSE Statement { $$ = $2; } ; SwitchBlock - : LBRACE SwitchRuleSeq RBRACE - | LBRACE SwitchBlockStatementGroupSeqOpt RBRACE - | LBRACE SwitchBlockStatementGroupSeqOpt SwitchLabelSeq RBRACE + : LBRACE SwitchRuleSeq RBRACE { $$ = null; } // not implemented yet + | LBRACE SwitchBlockStatementGroupSeqOpt RBRACE { $$ = null; } // not implemented yet + | LBRACE SwitchBlockStatementGroupSeqOpt SwitchLabelSeq RBRACE { $$ = null; } // not implemented yet ; SwitchRuleSeq - : SwitchRule - | SwitchRuleSeq SwitchRule + : SwitchRule { $$ = new SwitchRules($1); } + | SwitchRuleSeq SwitchRule { $$ = $1.add($2); } ; SwitchRule - : SwitchLabel ARROW Expression SEMICOLON - | SwitchLabel ARROW Block - | SwitchLabel ARROW THROW Expression SEMICOLON // ThrowStatement + : SwitchLabel ARROW Expression SEMICOLON { $$ = new SwitchRule($1,$3); } + | SwitchLabel ARROW Block { $$ = new SwitchRule($1,$3); } + | SwitchLabel ARROW THROW Expression SEMICOLON { $$ = new SwitchRule($1,new Throw(null,$4)); } // ThrowStatement ; SwitchBlockStatementGroupSeqOpt - : // empty + : %empty | SwitchBlockStatementGroup | SwitchBlockStatementGroupSeqOpt SwitchBlockStatementGroup ; @@ -821,89 +942,90 @@ SwitchBlockStatementGroup ; SwitchLabelSeq - : SwitchLabel COLON - | SwitchLabelSeq SwitchLabel COLON + : SwitchLabel COLON { $$ = new SwitchLables($2); } + | SwitchLabelSeq SwitchLabel COLON { $$ = $1.add($2); } ; SwitchLabel - : CASE CaseExpressionList - | DEFAULT + : CASE CaseExpressionList { $$ = $2; } + | DEFAULT { $$ = null; } ; CaseExpressionList - : AssignmentExpression - | CaseExpressionList COMMA AssignmentExpression + : AssignmentExpression { $$ = new SwitchLabel($1); } + | CaseExpressionList COMMA AssignmentExpression { $$ = $1.add($3); } ; //CaseConstant // : Expression // ConditionalExpression WhileStatement - : WHILE LPAREN Expression RPAREN Statement + : WHILE LPAREN Expression RPAREN Statement { $$ = new While(null,$3,$5); } ; ForStatement - : BasicForStatement - | EnhancedForStatement + : BasicForStatement { $$ = $1; } + | EnhancedForStatement { $$ = $1; } ; BasicForStatement : FOR LPAREN ForInitOpt SEMICOLON ExpressionOpt SEMICOLON StatementExpressionListOpt RPAREN Statement + { $$ = null; } // not implemented yet ; ForInitOpt - : // empty + : %empty | StatementExpressionList | LocalVariableDeclaration ; ExpressionOpt - : // empty - | Expression + : %empty { $$ = null; } + | Expression { $$ = $1; } ; // ForUpdate // : StatementExpressionList StatementExpressionList - : StatementExpression - | StatementExpressionList COMMA StatementExpression + : StatementExpression { $$ = new StatementExpressions($1); } + | StatementExpressionList COMMA StatementExpression { $$ = $1.add($3); } ; StatementExpressionListOpt - : // empty - | StatementExpressionList + : %empty { $$ = null; } + | StatementExpressionList { $$ = $1; } ; EnhancedForStatement - : FOR LPAREN LocalVariableDeclaration COLON Expression RPAREN Statement + : FOR LPAREN LocalVariableDeclaration COLON Expression RPAREN Statement { $$ = null; } // not implemented yet ; CatchesOpt - : // empty - | Catches + : %empty { $$ = null; } + | Catches { $$ = $1; } ; Catches - : CatchClause - | Catches CatchClause + : CatchClause { $$ = new CatchClauses($1); } + | Catches CatchClause { $$ = $1.add($2); } ; CatchClause - : CATCH LPAREN CatchFormalParameter RPAREN Block + : CATCH LPAREN CatchFormalParameter RPAREN Block { $$ = new CatchClause($3,$5); } ; CatchFormalParameter - : ModifierSeqOpt CatchType IDENTIFIER DimsOpt + : ModifierSeqOpt CatchType IDENTIFIER DimsOpt { $$ = new CatchParameter($1,$2,$3,$4); } ; CatchType - : Type - | CatchType VERTICAL Type + : Type { $$ = new TypeList($1); } + | CatchType VERTICAL Type { $$ = $1.add($3); } ; FinallyOpt - : // empty + : %empty | Finally ; @@ -926,8 +1048,8 @@ Resource | FieldAccess // VariableAccess? - doesn't exist in the grammar? ; -Pattern: - LocalVariableDeclaration // TypePattern +Pattern + : LocalVariableDeclaration // TypePattern //// Primaries ///////////////////////////////// @@ -936,18 +1058,18 @@ Pattern: // ArrayCreationExpression Primary - : Literal - | Type DimsOpt DOT CLASS // ClassLiteral - | VOID DimsOpt DOT CLASS // ClassLiteral - | THIS - | Type DOT THIS - | LPAREN Expression RPAREN - | ClassInstanceCreationExpression - | FieldAccess - | ArrayAccess - | MethodInvocation - | MethodReference - | ArrayCreationExpression + : Literal { $$ = $1; } + | Type DimsOpt DOT CLASS { $$ = new ClassLiteral($1,$2); } // ClassLiteral + | VOID DimsOpt DOT CLASS { $$ = new ClassLiteral(null,$2); } // ClassLiteral + | THIS { $$ = new This(null); } + | Type DOT THIS { $$ = new This($1); } + | LPAREN Expression RPAREN { $$ = new Parenthesized($2); } + | ClassInstanceCreationExpression { $$ = null; } // not implemented yet + | FieldAccess { $$ = $1; } + | ArrayAccess { $$ = $1; } + | MethodInvocation { $$ = $1; } // not implemented yet + | MethodReference { $$ = $1; } // not implemented yet + | ArrayCreationExpression { $$ = $1; } // not implemented yet ; //ClassLiteral: @@ -957,9 +1079,9 @@ Primary // void . class ClassInstanceCreationExpression - : UnqualifiedClassInstanceCreationExpression - | CompoundName DOT UnqualifiedClassInstanceCreationExpression - | Primary DOT UnqualifiedClassInstanceCreationExpression + : UnqualifiedClassInstanceCreationExpression { $$ = null; } // not implemented yet + | CompoundName DOT UnqualifiedClassInstanceCreationExpression { $$ = null; } // not implemented yet + | Primary DOT UnqualifiedClassInstanceCreationExpression { $$ = null; } // not implemented yet ; UnqualifiedClassInstanceCreationExpression @@ -977,53 +1099,57 @@ AnnotatedCompoundName ; TypeArgumentsOpt - : // empty - | TypeArguments + : %empty { $$ = null; } + | TypeArguments { $$ = $1; } ; TypeArguments - : LESS TypeArgumentList GREATER + : LESS TypeArgumentList GREATER { $$ = $2; } ; TypeArgumentList - : TypeArgument - | TypeArgumentList COMMA TypeArgument + : TypeArgument { $$ = new TypeArguments($1); } + | TypeArgumentList COMMA TypeArgument { $$ = $1.add($3); } ; TypeArgument - : Type - | QUESTION WildcardBoundsOpt - | AnnotationSeq QUESTION WildcardBoundsOpt + : Type { $$ = new TypeArgument($1,0,null); } + | QUESTION { $$ = new TypeArgument(null,1,null); } + | QUESTION EXTENDS Type { $$ = new TypeArgument($3,1,null); } + | QUESTION SUPER Type { $$ = new TypeArgument($3,2,null); } + | AnnotationSeq QUESTION { $$ = new TypeArgument(null,1,$1); } + | AnnotationSeq QUESTION EXTENDS Type { $$ = new TypeArgument($4,2,$1); } + | AnnotationSeq QUESTION SUPER Type { $$ = new TypeArgument($4,3,$1); } ; - +/* WildcardBoundsOpt - : // empty + : %empty | EXTENDS Type | SUPER Type ; - +*/ FieldAccess - : Primary DOT IDENTIFIER - | SUPER DOT IDENTIFIER - | CompoundName DOT SUPER DOT IDENTIFIER + : Primary DOT IDENTIFIER { $$ = new FieldAccess($1, false,$3); } + | SUPER DOT IDENTIFIER { $$ = new FieldAccess(null,true, $3); } + | CompoundName DOT SUPER DOT IDENTIFIER { $$ = new FieldAccess(new SimpleReference($1),true,$5); } ; ArrayAccess - : CompoundName LBRACKET Expression RBRACKET - | Primary LBRACKET Expression RBRACKET + : CompoundName LBRACKET Expression RBRACKET { $$ = new ArrayAccess(new SimpleReference($1),$3); } + | Primary LBRACKET Expression RBRACKET { $$ = new ArrayAccess($1,$3); } ; MethodInvocation - : IDENTIFIER Arguments - | CompoundName DOT TypeArgumentsOpt IDENTIFIER Arguments - | Primary DOT TypeArgumentsOpt IDENTIFIER Arguments - | SUPER DOT TypeArgumentsOpt IDENTIFIER Arguments - | CompoundName DOT SUPER DOT TypeArgumentsOpt IDENTIFIER Arguments + : IDENTIFIER Arguments { $$ = null; } // not implemented yet + | CompoundName DOT TypeArgumentsOpt IDENTIFIER Arguments { $$ = null; } // not implemented yet + | Primary DOT TypeArgumentsOpt IDENTIFIER Arguments { $$ = null; } // not implemented yet + | SUPER DOT TypeArgumentsOpt IDENTIFIER Arguments { $$ = null; } // not implemented yet + | CompoundName DOT SUPER DOT TypeArgumentsOpt IDENTIFIER Arguments { $$ = null; } // not implemented yet ; Arguments - : LPAREN RPAREN - | LPAREN ArgumentList RPAREN + : LPAREN RPAREN { $$ = null; } + | LPAREN ArgumentList RPAREN { $$ = $2; } ; //ArgumentListOpt @@ -1032,22 +1158,22 @@ Arguments // ; ArgumentList - : Expression - | ArgumentList COMMA Expression + : Expression { $$ = new ArgumentList($1); } + | ArgumentList COMMA Expression { $$ = $1.add($3); } ; MethodReference - : CompoundName DBL_COLON TypeArgumentsOpt IDENTIFIER - | Primary DBL_COLON TypeArgumentsOpt IDENTIFIER - | Type DBL_COLON TypeArgumentsOpt IDENTIFIER - | SUPER DBL_COLON TypeArgumentsOpt IDENTIFIER - | Type DOT SUPER DBL_COLON TypeArgumentsOpt IDENTIFIER - | Type DBL_COLON TypeArgumentsOpt NEW + : CompoundName DBL_COLON TypeArgumentsOpt IDENTIFIER { $$ = null; } // not implemented yet + | Primary DBL_COLON TypeArgumentsOpt IDENTIFIER { $$ = null; } // not implemented yet + | Type DBL_COLON TypeArgumentsOpt IDENTIFIER { $$ = null; } // not implemented yet + | SUPER DBL_COLON TypeArgumentsOpt IDENTIFIER { $$ = null; } // not implemented yet + | Type DOT SUPER DBL_COLON TypeArgumentsOpt IDENTIFIER { $$ = null; } // not implemented yet + | Type DBL_COLON TypeArgumentsOpt NEW { $$ = null; } // not implemented yet ; ArrayCreationExpression - : NEW Type DimExprs DimsOpt - | NEW Type Dims ArrayInitializer + : NEW Type DimExprs DimsOpt { $$ = null; } // not implemented yet + | NEW Type Dims ArrayInitializer { $$ = null; } // not implemented yet ; DimExprs @@ -1063,30 +1189,39 @@ DimExpr //// Expressions ////////////////////////////////////////////////// Expression - : LambdaExpression - | AssignmentExpression + : LambdaExpression { $$ = $1; } + | AssignmentExpression { $$ = $1; } ; LambdaExpression - : IDENTIFIER ARROW LambdaBody - | LambdaParameters ARROW LambdaBody + : IDENTIFIER ARROW Expression + { $$ = new Lambda(new ParameterDeclarations(new ParameterDeclaration($1)),$3); } + | IDENTIFIER ARROW Block + { $$ = new Lambda(new ParameterDeclarations(new ParameterDeclaration($1)),$3); } + | LambdaParameters ARROW Expression { $$ = new Lambda($1,$3); } + | LambdaParameters ARROW Block { $$ = new Lambda($1,$3); } ; +//LambdaBody +// : Expression +// | Block +// ; + LambdaParameters - : LPAREN RPAREN - | LPAREN LambdaParameterList1 RPAREN - | LPAREN LambdaParameterList2 RPAREN + : LPAREN RPAREN { $$ = null; } + | LPAREN LambdaParameterList1 RPAREN { $$ = $2; } + | LPAREN LambdaParameterList2 RPAREN { $$ = $2; } // | IDENTIFIER ; LambdaParameterList1 - : IDENTIFIER - | LambdaParameterList1 COMMA IDENTIFIER + : IDENTIFIER { $$ = new ParameterDeclarations(new ParameterDeclaration($1)); } + | LambdaParameterList1 COMMA IDENTIFIER { $$ = $1.add(new ParameterDeclaration($3)); } ; LambdaParameterList2 - : LambdaParameter - | LambdaParameterList2 COMMA LambdaParameter + : LambdaParameter { $$ = new ParameterDeclarations($1); } + | LambdaParameterList2 COMMA LambdaParameter { $$ = $1.add($3); } ; //LambdaParameter @@ -1097,181 +1232,179 @@ LambdaParameterList2 LambdaParameter // : IDENTIFIER - : ModifierSeqOpt UnannotatedType IDENTIFIER DimsOpt - | ModifierSeqOpt VAR IDENTIFIER DimsOpt - | ModifierSeqOpt UnannotatedType AnnotationSeqOpt ELLIPSIS IDENTIFIER // VariableArityParameter + : ModifierSeqOpt UnannotatedType IDENTIFIER DimsOpt { $$ = new ParameterDeclaration($1,$2,$3.image,null,false,$4); } + | ModifierSeqOpt VAR IDENTIFIER DimsOpt { $$ = new ParameterDeclaration($1,null,$3.image,null,false,$4); } + | ModifierSeqOpt UnannotatedType AnnotationSeqOpt ELLIPSIS IDENTIFIER + { $$ = new ParameterDeclaration($1,$2,$5.image,$3,true,null); } + // VariableArityParameter ; //LambdaParameterType // : UnannotatedType // | VAR - ; - -LambdaBody - : Expression - | Block - ; +// ; AssignmentExpression - : ConditionalExpression - | Assignment + : ConditionalExpression { $$ = $1; } + | Assignment { $$ = $1; } ; Assignment - : LeftHandSide AssignmentOperator Expression + : LeftHandSide AssignmentOperator Expression { $$ = new Binary($1,$3,$2); } ; LeftHandSide - : CompoundName - | FieldAccess - | ArrayAccess + : CompoundName { $$ = new SimpleReference($1); } + | FieldAccess { $$ = $1; } + | ArrayAccess { $$ = $1; } ; AssignmentOperator - : EQUAL // = - | STAR_EQUAL // *= - | SLASH_EQUAL // /= - | PERCENT_EQUAL // %= - | PLUS_EQUAL // += - | MINUS_EQUAL // -= - | LESS_LESS_EQUAL // <<= - | GR_GR_EQUAL // >>= - | GR_GR_GR_EQUAL // >>>= - | AMP_EQUAL // &= - | CARET_EQUAL // ^= - | VERTICAL_EQUAL // |= + : EQUAL { $$ = $1; } // = + | STAR_EQUAL { $$ = $1; } // *= + | SLASH_EQUAL { $$ = $1; } // /= + | PERCENT_EQUAL { $$ = $1; } // %= + | PLUS_EQUAL { $$ = $1; } // += + | MINUS_EQUAL { $$ = $1; } // -= + | LESS_LESS_EQUAL { $$ = $1; } // <<= + | GR_GR_EQUAL { $$ = $1; } // >>= + | GR_GR_GR_EQUAL { $$ = $1; } // >>>= + | AMP_EQUAL { $$ = $1; } // &= + | CARET_EQUAL { $$ = $1; } // ^= + | VERTICAL_EQUAL { $$ = $1; } // |= ; ConditionalExpression - : ConditionalOrExpression ConditionalOrTail + : ConditionalOrExpression ConditionalOrTail { if ( $2 == null ) $$ = $1; + else $$ = new Conditional($1,$2.left,$2.right); } ; ConditionalOrTail - : // empty - | QUESTION Expression COLON ConditionalExpression - | QUESTION Expression COLON LambdaExpression + : %empty { $$ = null; } + | QUESTION Expression COLON ConditionalExpression { $$ = new Binary($2,$4,null); } + | QUESTION Expression COLON LambdaExpression { $$ = new Binary($2,$4,null); } ; ConditionalOrExpression - : ConditionalAndExpression - | ConditionalOrExpression DBL_VERTICAL ConditionalAndExpression + : ConditionalAndExpression { $$ = $1; } + | ConditionalOrExpression DBL_VERTICAL ConditionalAndExpression { $$ = new Binary($1,$3,$2); } ; ConditionalAndExpression - : InclusiveOrExpression - | ConditionalAndExpression DBL_AMPERSAND InclusiveOrExpression + : InclusiveOrExpression { $$ = $1; } + | ConditionalAndExpression DBL_AMPERSAND InclusiveOrExpression { $$ = new Binary($1,$3,$2); } ; InclusiveOrExpression - : ExclusiveOrExpression - | InclusiveOrExpression VERTICAL ExclusiveOrExpression + : ExclusiveOrExpression { $$ = $1; } + | InclusiveOrExpression VERTICAL ExclusiveOrExpression { $$ = new Binary($1,$3,$2); } ; ExclusiveOrExpression - : AndExpression - | ExclusiveOrExpression CARET AndExpression + : AndExpression { $$ = $1; } + | ExclusiveOrExpression CARET AndExpression { $$ = new Binary($1,$3,$2); } ; AndExpression - : EqualityExpression - | AndExpression AMPERSAND EqualityExpression + : EqualityExpression { $$ = $1; } + | AndExpression AMPERSAND EqualityExpression { $$ = new Binary($1,$3,$2); } ; EqualityExpression - : RelationalExpression - | EqualityExpression DBL_EQUAL RelationalExpression - | EqualityExpression NON_EQUAL RelationalExpression + : RelationalExpression { $$ = $1; } + | EqualityExpression DBL_EQUAL RelationalExpression { $$ = new Binary($1,$3,$2); } + | EqualityExpression NON_EQUAL RelationalExpression { $$ = new Binary($1,$3,$2); } ; RelationalExpression - : ShiftExpression - | RelationalExpression LESS ShiftExpression - | RelationalExpression GREATER ShiftExpression - | RelationalExpression LESS_EQUAL ShiftExpression - | RelationalExpression GREATER_EQUAL ShiftExpression - | InstanceofExpression + : ShiftExpression { $$ = $1; } + | RelationalExpression LESS ShiftExpression { $$ = new Binary($1,$3,$2); } + | RelationalExpression GREATER ShiftExpression { $$ = new Binary($1,$3,$2); } + | RelationalExpression LESS_EQUAL ShiftExpression { $$ = new Binary($1,$3,$2); } + | RelationalExpression GREATER_EQUAL ShiftExpression { $$ = new Binary($1,$3,$2); } + | InstanceofExpression { $$ = $1; } ; InstanceofExpression - : RelationalExpression INSTANCEOF Type - | RelationalExpression INSTANCEOF Pattern + : RelationalExpression INSTANCEOF Type { $$ = new InstanceOf($1,$3); } + | RelationalExpression INSTANCEOF Pattern { $$ = new InstanceOf($1,$3); } ; ShiftExpression - : AdditiveExpression - | ShiftExpression DBL_LESS AdditiveExpression - | ShiftExpression DBL_GREATER AdditiveExpression - | ShiftExpression TRIPL_GREATER AdditiveExpression + : AdditiveExpression { $$ = $1; } + | ShiftExpression DBL_LESS AdditiveExpression { $$ = new Binary($1,$3,$2); } + | ShiftExpression DBL_GREATER AdditiveExpression { $$ = new Binary($1,$3,$2); } + | ShiftExpression TRIPL_GREATER AdditiveExpression { $$ = new Binary($1,$3,$2); } ; AdditiveExpression - : MultiplicativeExpression - | AdditiveExpression PLUS MultiplicativeExpression - | AdditiveExpression MINUS MultiplicativeExpression + : MultiplicativeExpression { $$ = $1; } + | AdditiveExpression PLUS MultiplicativeExpression { $$ = new Binary($1,$3,$2); } + | AdditiveExpression MINUS MultiplicativeExpression { $$ = new Binary($1,$3,$2); } ; MultiplicativeExpression - : UnaryExpression - | MultiplicativeExpression STAR UnaryExpression - | MultiplicativeExpression SLASH UnaryExpression - | MultiplicativeExpression PERCENT UnaryExpression + : UnaryExpression { $$ = $1; } + | MultiplicativeExpression STAR UnaryExpression { $$ = new Binary($1,$3,$2); } + | MultiplicativeExpression SLASH UnaryExpression { $$ = new Binary($1,$3,$2); } + | MultiplicativeExpression PERCENT UnaryExpression { $$ = new Binary($1,$3,$2); } ; UnaryExpression - : PreIncrementExpression - | PreDecrementExpression - | PLUS UnaryExpression - | MINUS UnaryExpression - | UnaryExpressionNotPlusMinus + : PreIncrementExpression { $$ = $1; } + | PreDecrementExpression { $$ = $1; } + | PLUS UnaryExpression { $$ = new UnaryPrefix($1,$2); } + | MINUS UnaryExpression { $$ = new UnaryPrefix($1,$2); } + | UnaryExpressionNotPlusMinus { $$ = $1; } ; PreIncrementExpression - : DBL_PLUS UnaryExpression + : DBL_PLUS UnaryExpression { $$ = new UnaryPrefix($1,$2); } ; PreDecrementExpression - : DBL_MINUS UnaryExpression + : DBL_MINUS UnaryExpression { $$ = new UnaryPrefix($1,$2); } ; UnaryExpressionNotPlusMinus : PostfixExpression - | TILDE UnaryExpression - | EXCLAMATION UnaryExpression - | CastExpression - | SwitchExpression + | TILDE UnaryExpression { $$ = new UnaryPrefix($1,$2); } + | EXCLAMATION UnaryExpression { $$ = new UnaryPrefix($1,$2); } + | CastExpression { $$ = $1; } + | SwitchExpression { $$ = $1; } ; PostfixExpression - : Primary - | CompoundName // ExpressionName - | PostIncrementExpression - | PostDecrementExpression + : Primary { $$ = $1; } + | CompoundName { $$ = new SimpleReference($1); } // ExpressionName + | PostIncrementExpression { $$ = $1; } + | PostDecrementExpression { $$ = $1; } ; PostIncrementExpression - : PostfixExpression DBL_PLUS + : PostfixExpression DBL_PLUS { $$ = new UnaryPostfix($2,$1); } ; PostDecrementExpression - : PostfixExpression DBL_MINUS + : PostfixExpression DBL_MINUS { $$ = new UnaryPostfix($2,$1); } ; CastExpression - : TargetType UnaryExpression - | TargetType LambdaExpression + : TargetType UnaryExpression { $$ = new Cast($1,$2); } + | TargetType LambdaExpression { $$ = new Cast($1,$2); } ; TargetType - : LPAREN TypeList RPAREN + : LPAREN TypeList RPAREN { $$ = $2; } ; TypeList - : Type - | TypeList AMPERSAND Type + : Type { $$ = new TypeList($1); } + | TypeList AMPERSAND Type { $$ = $1.add($3); } ; SwitchExpression - : SWITCH LPAREN Expression RPAREN SwitchBlock + : SWITCH LPAREN Expression RPAREN SwitchBlock { $$ = new SwitchExpression($3,$5); } ; @@ -1283,42 +1416,39 @@ AnnotationOpt ; */ AnnotationSeqOpt - : // empty - | AnnotationSeq + : %empty { $$ = null; } + | AnnotationSeq { $$ = $1; } ; AnnotationSeq - : Annotation - | AnnotationSeq Annotation + : Annotation { $$ = new Annotations($1); } + | AnnotationSeq Annotation { $$ = $1.add($2); } ; Annotation - : AT CompoundName AnnotationTailOpt - ; - -AnnotationTailOpt - : // empty - | AT CompoundName LPAREN RPAREN - | AT CompoundName LPAREN AnnoParameterList RPAREN - | AT CompoundName LPAREN ElementValue RPAREN + : AT CompoundName { $$ = new Annotation($2,(AnnoParameterList)null); } + | AT CompoundName LPAREN RPAREN { $$ = new Annotation($2,(AnnoParameterList)null); } + | AT CompoundName LPAREN AnnoParameterList RPAREN { $$ = new Annotation($2,/*$4*/ (AnnoParameterList)null); } // not implemented + | AT CompoundName LPAREN ElementValue RPAREN { $$ = new Annotation($2,(AnnoElementValue)null); } // not implemented ; AnnoParameterList - : IDENTIFIER EQUAL ElementValue - | AnnoParameterList COMMA IDENTIFIER EQUAL ElementValue + : IDENTIFIER EQUAL ElementValue { $$ = null; } // not implemented yet + | AnnoParameterList COMMA IDENTIFIER EQUAL ElementValue { $$ = null; } // not implemented yet ; ElementValue - : ConditionalExpression - | LBRACE ElementValueListOpt RBRACE - | LBRACE COMMA RBRACE - | Annotation + : ConditionalExpression { $$ = null; } // not implemented yet + | LBRACE ElementValueListOpt RBRACE { $$ = null; } // not implemented yet + | LBRACE COMMA RBRACE { $$ = null; } // not implemented yet + | Annotation { $$ = null; } // not implemented yet ; ElementValueListOpt - : //empty + : %empty | ElementValue | ElementValueListOpt COMMA ElementValue ; %% + diff --git a/src/test/java/eotree/TestEOAnonExpr.java b/src/test/java/eotree/TestEOAnonExpr.java new file mode 100644 index 00000000..ec73c30c --- /dev/null +++ b/src/test/java/eotree/TestEOAnonExpr.java @@ -0,0 +1,25 @@ +package eotree; + +import org.junit.jupiter.api.Test; + +import java.util.Optional; + +import static org.junit.jupiter.api.Assertions.assertEquals; + +public class TestEOAnonExpr { + @Test + public void TestGenerateEOZeroIndent() { + var f = new EOAnonExpr( + new EODot(Optional.empty(), "memory") + ); + assertEquals("memory", f.generateEO(0)); + } + + @Test + public void TestGenerateEONonZeroIndent() { + var f = new EOAnonExpr( + new EODot(Optional.empty(), "memory") + ); + assertEquals(" memory", f.generateEO(1)); + } +} diff --git a/src/test/java/eotree/TestEOAttribute.java b/src/test/java/eotree/TestEOAttribute.java new file mode 100644 index 00000000..e20e6d61 --- /dev/null +++ b/src/test/java/eotree/TestEOAttribute.java @@ -0,0 +1,4 @@ +package eotree; + +public class TestEOAttribute { +} diff --git a/src/test/java/eotree/TestEOAttributes.java b/src/test/java/eotree/TestEOAttributes.java new file mode 100644 index 00000000..35e16517 --- /dev/null +++ b/src/test/java/eotree/TestEOAttributes.java @@ -0,0 +1,4 @@ +package eotree; + +public class TestEOAttributes { +} diff --git a/src/test/java/eotree/TestEOBndExpr.java b/src/test/java/eotree/TestEOBndExpr.java new file mode 100644 index 00000000..97f19ba5 --- /dev/null +++ b/src/test/java/eotree/TestEOBndExpr.java @@ -0,0 +1,28 @@ +package eotree; + +import org.junit.jupiter.api.Test; + +import java.util.Optional; + +import static org.junit.jupiter.api.Assertions.assertEquals; + +public class TestEOBndExpr { + + @Test + public void TestGenerateEOZeroIndent() { + var f = new EOBndExpr( + new EODot(Optional.empty(), "memory"), + new EOBndName("bnd1") + ); + assertEquals("memory > bnd1", f.generateEO(0)); + } + + @Test + public void TestGenerateEONonZeroIndent() { + var f = new EOBndExpr( + new EODot(Optional.empty(), "memory"), + new EOBndName("bnd1") + ); + assertEquals(" memory > bnd1", f.generateEO(1)); + } +} diff --git a/src/test/java/eotree/TestEOBndName.java b/src/test/java/eotree/TestEOBndName.java new file mode 100644 index 00000000..9d640cc2 --- /dev/null +++ b/src/test/java/eotree/TestEOBndName.java @@ -0,0 +1,21 @@ +package eotree; + +import eotree.data.EOIntData; +import org.junit.jupiter.api.Test; + +import static org.junit.jupiter.api.Assertions.assertEquals; + +public class TestEOBndName { + + @Test + public void TestGenerateEOZeroIndent() { + var f = new EOBndName("name"); + assertEquals(f.generateEO(0), "name"); + } + + @Test + public void TestGenerateEONonZeroIndent() { + var f = new EOBndName("name"); + assertEquals(f.generateEO(1), "name"); + } +} diff --git a/src/test/java/eotree/TestEOComment.java b/src/test/java/eotree/TestEOComment.java new file mode 100644 index 00000000..ab128ee6 --- /dev/null +++ b/src/test/java/eotree/TestEOComment.java @@ -0,0 +1,20 @@ +package eotree; + +import org.junit.jupiter.api.Test; + +import static org.junit.jupiter.api.Assertions.assertEquals; + +public class TestEOComment { + + @Test + public void TestGenerateEOZeroIndent() { + var comment = new EOComment("test comment"); + assertEquals(comment.generateEO(0), "# test comment"); + } + + @Test + public void TestGenerateEONonZeroIndent() { + var comment = new EOComment("test comment"); + assertEquals(comment.generateEO(2), "# test comment"); + } +} diff --git a/src/test/java/eotree/TestEOCopy.java b/src/test/java/eotree/TestEOCopy.java new file mode 100644 index 00000000..5b4425cb --- /dev/null +++ b/src/test/java/eotree/TestEOCopy.java @@ -0,0 +1,33 @@ +package eotree; + +import org.junit.jupiter.api.Test; + +import java.util.Optional; + +import static org.junit.jupiter.api.Assertions.assertEquals; +import static util.ListUtils.listOf; + +public class TestEOCopy { + + @Test + public void TestGenerateEOZeroIndent() { + var f = new EOCopy( + new EODot(Optional.empty(), "name"), + listOf( + new EOAnonExpr( + new EODot(Optional.empty(), "arg1") + ), + new EOAnonExpr( + new EODot(Optional.empty(), "arg2") + ) + ) + ); + assertEquals("name arg1 arg2", f.generateEO(0)); + } + + @Test + public void TestGenerateEONonZeroIndent() { + var f = new EOBndName("name"); + assertEquals(f.generateEO(1), "name"); + } +} diff --git a/src/test/java/eotree/TestEODot.java b/src/test/java/eotree/TestEODot.java new file mode 100644 index 00000000..485c9394 --- /dev/null +++ b/src/test/java/eotree/TestEODot.java @@ -0,0 +1,5 @@ +package eotree; + +public class TestEODot { + +} diff --git a/src/test/java/eotree/TestEOLicense.java b/src/test/java/eotree/TestEOLicense.java new file mode 100644 index 00000000..ea18ce90 --- /dev/null +++ b/src/test/java/eotree/TestEOLicense.java @@ -0,0 +1,54 @@ +package eotree; + +import org.junit.jupiter.api.Test; + +import java.util.Arrays; +import java.util.stream.Collectors; + +import static org.junit.jupiter.api.Assertions.assertEquals; + +public class TestEOLicense { + @Test + public void TestGenerateEOZeroIndent() { + var license = new EOLicense( + new EOComment("test comment 1"), + new EOComment("test comment 2") + ); + assertEquals(license.generateEO(0), + "# test comment 1\n" + + "# test comment 2"); + + + license = new EOLicense( + Arrays.stream(new EOComment[]{ + new EOComment("test comment 1"), + new EOComment("test comment 2") + }).collect(Collectors.toList()) + ); + assertEquals(license.generateEO(0), + "# test comment 1\n" + + "# test comment 2"); + } + + @Test + public void TestGenerateEONonZeroIndent() { + var license = new EOLicense( + new EOComment("test comment 1"), + new EOComment("test comment 2") + ); + assertEquals(license.generateEO(1), + "# test comment 1\n" + + "# test comment 2"); + + + license = new EOLicense( + Arrays.stream(new EOComment[]{ + new EOComment("test comment 1"), + new EOComment("test comment 2") + }).collect(Collectors.toList()) + ); + assertEquals(license.generateEO(1), + "# test comment 1\n" + + "# test comment 2"); + } +} diff --git a/src/test/java/eotree/TestEOMeta.java b/src/test/java/eotree/TestEOMeta.java new file mode 100644 index 00000000..9419dd7c --- /dev/null +++ b/src/test/java/eotree/TestEOMeta.java @@ -0,0 +1,20 @@ +package eotree; + +import org.junit.jupiter.api.Test; + +import static org.junit.jupiter.api.Assertions.assertEquals; + +public class TestEOMeta { + + @Test + public void TestGenerateEOZeroIndent() { + var f = new EOMeta("key", "value"); + assertEquals("+key value", f.generateEO(0)); + } + + @Test + public void TestGenerateEONonZeroIndent() { + var f = new EOMeta("key", "value"); + assertEquals("+key value", f.generateEO(1)); + } +} diff --git a/src/test/java/eotree/TestEOMetas.java b/src/test/java/eotree/TestEOMetas.java new file mode 100644 index 00000000..e290abaf --- /dev/null +++ b/src/test/java/eotree/TestEOMetas.java @@ -0,0 +1,43 @@ +package eotree; + +import org.junit.jupiter.api.Test; + +import java.util.Optional; + +import static org.junit.jupiter.api.Assertions.assertEquals; +import static util.ListUtils.listOf; + +public class TestEOMetas { + + @Test + public void TestGenerateEOZeroIndent() { + var f = new EOMetas( + Optional.of("org.eolang.package"), + listOf( + new EOMeta("key1", "value1"), + new EOMeta("key2", "value2") + ) + ); + assertEquals(""" + +package org.eolang.package + +key1 value1 + +key2 value2""", + f.generateEO(0)); + } + + @Test + public void TestGenerateEONonZeroIndent() { + var f = new EOMetas( + Optional.of("org.eolang.package"), + listOf( + new EOMeta("key1", "value1"), + new EOMeta("key2", "value2") + ) + ); + assertEquals(""" + +package org.eolang.package + +key1 value1 + +key2 value2""", + f.generateEO(1)); + } +} diff --git a/src/test/java/eotree/TestEOObject.java b/src/test/java/eotree/TestEOObject.java new file mode 100644 index 00000000..3d4bc920 --- /dev/null +++ b/src/test/java/eotree/TestEOObject.java @@ -0,0 +1,73 @@ +package eotree; + +import org.junit.jupiter.api.Test; + +import java.util.Optional; + +import static org.junit.jupiter.api.Assertions.assertEquals; +import static util.ListUtils.listOf; + +public class TestEOObject { + + @Test + public void TestGenerateEOZeroIndent() { + var object = new EOObject( + listOf( + new EOBndName("free1"), + new EOBndName("free2") + ), + Optional.of( + new EOBndName("vararg") + ), + listOf( + new EOBndExpr( + new EODot(Optional.empty(), "memory"), + new EOBndName("bnd1") + ), + new EOBndExpr( + new EODot(Optional.empty(), "memory"), + new EOBndName("bnd2") + ) + ), + Optional.of("objectName") + ); + assertEquals( + """ + [free1 free2 vararg...] > objectName + memory > bnd1 + memory > bnd2""", + object.generateEO(0) + ); + } + + @Test + public void TestGenerateEONonZeroIndent() { + var object = new EOObject( + listOf( + new EOBndName("free1"), + new EOBndName("free2") + ), + Optional.of( + new EOBndName("vararg") + ), + listOf( + new EOBndExpr( + new EODot(Optional.empty(), "memory"), + new EOBndName("bnd1") + ), + new EOBndExpr( + new EODot(Optional.empty(), "memory"), + new EOBndName("bnd2") + ) + ), + Optional.of("objectName") + ); + //noinspection TextBlockMigration + assertEquals( + " [free1 free2 vararg...] > objectName\n" + + " memory > bnd1\n" + + " memory > bnd2", + object.generateEO(1) + ); + } +} diff --git a/src/test/java/eotree/TestEOProgram.java b/src/test/java/eotree/TestEOProgram.java new file mode 100644 index 00000000..c24d7338 --- /dev/null +++ b/src/test/java/eotree/TestEOProgram.java @@ -0,0 +1,4 @@ +package eotree; + +public class TestEOProgram { +} diff --git a/src/test/java/eotree/data/TestEOByte.java b/src/test/java/eotree/data/TestEOByte.java new file mode 100644 index 00000000..d80ab0fd --- /dev/null +++ b/src/test/java/eotree/data/TestEOByte.java @@ -0,0 +1,31 @@ +package eotree.data; + + +import org.junit.jupiter.api.Test; + +import static org.junit.jupiter.api.Assertions.assertEquals; + + +public class TestEOByte { + + @Test + public void TestGenerateEOZeroIndent() { + // Single-digit byte + var b = new EOByte((byte) 1); + assertEquals(b.generateEO(0), "01"); + + // Double-digit byte + b = new EOByte((byte) 255); + assertEquals(b.generateEO(0), "FF"); + } + + @Test + public void TestGenerateEONonZeroIndent() { + var b = new EOByte((byte) 1); + assertEquals(b.generateEO(1), "01"); + + // Double-digit byte + b = new EOByte((byte) 255); + assertEquals(b.generateEO(1), "FF"); + } +} diff --git a/src/test/java/eotree/data/TestEOBytesData.java b/src/test/java/eotree/data/TestEOBytesData.java new file mode 100644 index 00000000..65856345 --- /dev/null +++ b/src/test/java/eotree/data/TestEOBytesData.java @@ -0,0 +1,33 @@ +package eotree.data; + +import org.junit.jupiter.api.Test; + +import java.util.Arrays; +import java.util.stream.Collectors; + +import static org.junit.jupiter.api.Assertions.assertEquals; + +public class TestEOBytesData { + + @Test + public void TestGenerateEOZeroIndent() { + var bytes = new EOBytesData( + new EOByte((byte) 1), + new EOByte((byte) 255) + ); + + assertEquals(bytes.generateEO(0), "01-FF"); + } + + @Test + public void TestGenerateEONonZeroIndent() { + var bytes = new EOBytesData( + Arrays.stream(new EOByte[] { + new EOByte((byte) 1), + new EOByte((byte) 255) + }).collect(Collectors.toList()) + ); + + assertEquals(bytes.generateEO(1), "01-FF"); + } +} diff --git a/src/test/java/eotree/data/TestEOCharData.java b/src/test/java/eotree/data/TestEOCharData.java new file mode 100644 index 00000000..cb6c05d2 --- /dev/null +++ b/src/test/java/eotree/data/TestEOCharData.java @@ -0,0 +1,22 @@ +package eotree.data; + +import org.junit.jupiter.api.Test; + +import static org.junit.jupiter.api.Assertions.assertEquals; + +public class TestEOCharData { + + @Test + public void TestGenerateEOZeroIndent() { + var c = new EOCharData('a'); + + assertEquals(c.generateEO(0), "'a'"); + } + + @Test + public void TestGenerateEONonZeroIndent() { + var c = new EOCharData('a'); + + assertEquals(c.generateEO(1), "'a'"); + } +} diff --git a/src/test/java/eotree/data/TestEOFloatData.java b/src/test/java/eotree/data/TestEOFloatData.java new file mode 100644 index 00000000..2a970ca9 --- /dev/null +++ b/src/test/java/eotree/data/TestEOFloatData.java @@ -0,0 +1,22 @@ +package eotree.data; + +import org.junit.jupiter.api.Test; + +import static org.junit.jupiter.api.Assertions.assertEquals; + +public class TestEOFloatData { + + @Test + public void TestGenerateEOZeroIndent() { + var f = new EOFloatData(3.14f); + + assertEquals(f.generateEO(0), "3.14"); + } + + @Test + public void TestGenerateEONonZeroIndent() { + var f = new EOFloatData(3.14f); + + assertEquals(f.generateEO(1), "3.14"); + } +} diff --git a/src/test/java/eotree/data/TestEOIntData.java b/src/test/java/eotree/data/TestEOIntData.java new file mode 100644 index 00000000..58b02632 --- /dev/null +++ b/src/test/java/eotree/data/TestEOIntData.java @@ -0,0 +1,22 @@ +package eotree.data; + +import org.junit.jupiter.api.Test; + +import static org.junit.jupiter.api.Assertions.assertEquals; + +public class TestEOIntData { + + @Test + public void TestGenerateEOZeroIndent() { + var f = new EOIntData(42); + + assertEquals(f.generateEO(0), "42"); + } + + @Test + public void TestGenerateEONonZeroIndent() { + var f = new EOIntData(42); + + assertEquals(f.generateEO(1), "42"); + } +} diff --git a/src/test/java/eotree/data/TestEORegexData.java b/src/test/java/eotree/data/TestEORegexData.java new file mode 100644 index 00000000..7d8f6eba --- /dev/null +++ b/src/test/java/eotree/data/TestEORegexData.java @@ -0,0 +1,22 @@ +package eotree.data; + +import org.junit.jupiter.api.Test; + +import static org.junit.jupiter.api.Assertions.assertEquals; + +public class TestEORegexData { + + @Test + public void TestGenerateEOZeroIndent() { + var f = new EORegexData("/[a-z]+.+/m"); + + assertEquals(f.generateEO(0), "/[a-z]+.+/m"); + } + + @Test + public void TestGenerateEONonZeroIndent() { + var f = new EORegexData("/[a-z]+.+/m"); + + assertEquals(f.generateEO(1), "/[a-z]+.+/m"); + } +} diff --git a/src/test/java/eotree/data/TestEOStringData.java b/src/test/java/eotree/data/TestEOStringData.java new file mode 100644 index 00000000..73971241 --- /dev/null +++ b/src/test/java/eotree/data/TestEOStringData.java @@ -0,0 +1,22 @@ +package eotree.data; + +import org.junit.jupiter.api.Test; + +import static org.junit.jupiter.api.Assertions.assertEquals; + +public class TestEOStringData { + + @Test + public void TestGenerateEOZeroIndent() { + var s = new EOStringData("hello world"); + + assertEquals(s.generateEO(0), "\"hello world\""); + } + + @Test + public void TestGenerateEONonZeroIndent() { + var f = new EOStringData("hello world"); + + assertEquals(f.generateEO(1), "\"hello world\""); + } +} diff --git a/src/test/resources/ch_10_arrays/sec_10_1_array_types/SampleTest.java b/src/test/resources/ch_10_arrays/sec_10_1_array_types/SampleTest.java new file mode 100644 index 00000000..2c897dfb --- /dev/null +++ b/src/test/resources/ch_10_arrays/sec_10_1_array_types/SampleTest.java @@ -0,0 +1,9 @@ +package org.eolang.j2eo; + +public class SampleTest { + + public static void Main (String[] args) { + + } + +} diff --git a/src/test/resources/ch_10_arrays/sec_10_2_array_variables/SampleTest.java b/src/test/resources/ch_10_arrays/sec_10_2_array_variables/SampleTest.java new file mode 100644 index 00000000..2c897dfb --- /dev/null +++ b/src/test/resources/ch_10_arrays/sec_10_2_array_variables/SampleTest.java @@ -0,0 +1,9 @@ +package org.eolang.j2eo; + +public class SampleTest { + + public static void Main (String[] args) { + + } + +} diff --git a/src/test/resources/ch_10_arrays/sec_10_3_array_creation/SampleTest.java b/src/test/resources/ch_10_arrays/sec_10_3_array_creation/SampleTest.java new file mode 100644 index 00000000..2c897dfb --- /dev/null +++ b/src/test/resources/ch_10_arrays/sec_10_3_array_creation/SampleTest.java @@ -0,0 +1,9 @@ +package org.eolang.j2eo; + +public class SampleTest { + + public static void Main (String[] args) { + + } + +} diff --git a/src/test/resources/ch_10_arrays/sec_10_4_array_access/SampleTest.java b/src/test/resources/ch_10_arrays/sec_10_4_array_access/SampleTest.java new file mode 100644 index 00000000..2c897dfb --- /dev/null +++ b/src/test/resources/ch_10_arrays/sec_10_4_array_access/SampleTest.java @@ -0,0 +1,9 @@ +package org.eolang.j2eo; + +public class SampleTest { + + public static void Main (String[] args) { + + } + +} diff --git a/src/test/resources/ch_10_arrays/sec_10_5_array_store_exception/SampleTest.java b/src/test/resources/ch_10_arrays/sec_10_5_array_store_exception/SampleTest.java new file mode 100644 index 00000000..2c897dfb --- /dev/null +++ b/src/test/resources/ch_10_arrays/sec_10_5_array_store_exception/SampleTest.java @@ -0,0 +1,9 @@ +package org.eolang.j2eo; + +public class SampleTest { + + public static void Main (String[] args) { + + } + +} diff --git a/src/test/resources/ch_10_arrays/sec_10_6_array_initializers/SampleTest.java b/src/test/resources/ch_10_arrays/sec_10_6_array_initializers/SampleTest.java new file mode 100644 index 00000000..2c897dfb --- /dev/null +++ b/src/test/resources/ch_10_arrays/sec_10_6_array_initializers/SampleTest.java @@ -0,0 +1,9 @@ +package org.eolang.j2eo; + +public class SampleTest { + + public static void Main (String[] args) { + + } + +} diff --git a/src/test/resources/ch_10_arrays/sec_10_7_array_members/SampleTest.java b/src/test/resources/ch_10_arrays/sec_10_7_array_members/SampleTest.java new file mode 100644 index 00000000..2c897dfb --- /dev/null +++ b/src/test/resources/ch_10_arrays/sec_10_7_array_members/SampleTest.java @@ -0,0 +1,9 @@ +package org.eolang.j2eo; + +public class SampleTest { + + public static void Main (String[] args) { + + } + +} diff --git a/src/test/resources/ch_10_arrays/sec_10_8_class_objects_for_arrays/SampleTest.java b/src/test/resources/ch_10_arrays/sec_10_8_class_objects_for_arrays/SampleTest.java new file mode 100644 index 00000000..2c897dfb --- /dev/null +++ b/src/test/resources/ch_10_arrays/sec_10_8_class_objects_for_arrays/SampleTest.java @@ -0,0 +1,9 @@ +package org.eolang.j2eo; + +public class SampleTest { + + public static void Main (String[] args) { + + } + +} diff --git a/src/test/resources/ch_11_exceptions/sec_11_1_the_kinds_and_causes_of_exceptions/sec_11_1_1_the_kinds_of_exceptions/SampleTest.java b/src/test/resources/ch_11_exceptions/sec_11_1_the_kinds_and_causes_of_exceptions/sec_11_1_1_the_kinds_of_exceptions/SampleTest.java new file mode 100644 index 00000000..2c897dfb --- /dev/null +++ b/src/test/resources/ch_11_exceptions/sec_11_1_the_kinds_and_causes_of_exceptions/sec_11_1_1_the_kinds_of_exceptions/SampleTest.java @@ -0,0 +1,9 @@ +package org.eolang.j2eo; + +public class SampleTest { + + public static void Main (String[] args) { + + } + +} diff --git a/src/test/resources/ch_11_exceptions/sec_11_1_the_kinds_and_causes_of_exceptions/sec_11_1_2_the_causes_of_exceptions/SampleTest.java b/src/test/resources/ch_11_exceptions/sec_11_1_the_kinds_and_causes_of_exceptions/sec_11_1_2_the_causes_of_exceptions/SampleTest.java new file mode 100644 index 00000000..2c897dfb --- /dev/null +++ b/src/test/resources/ch_11_exceptions/sec_11_1_the_kinds_and_causes_of_exceptions/sec_11_1_2_the_causes_of_exceptions/SampleTest.java @@ -0,0 +1,9 @@ +package org.eolang.j2eo; + +public class SampleTest { + + public static void Main (String[] args) { + + } + +} diff --git a/src/test/resources/ch_11_exceptions/sec_11_1_the_kinds_and_causes_of_exceptions/sec_11_1_3_asynchronous_exceptions/SampleTest.java b/src/test/resources/ch_11_exceptions/sec_11_1_the_kinds_and_causes_of_exceptions/sec_11_1_3_asynchronous_exceptions/SampleTest.java new file mode 100644 index 00000000..2c897dfb --- /dev/null +++ b/src/test/resources/ch_11_exceptions/sec_11_1_the_kinds_and_causes_of_exceptions/sec_11_1_3_asynchronous_exceptions/SampleTest.java @@ -0,0 +1,9 @@ +package org.eolang.j2eo; + +public class SampleTest { + + public static void Main (String[] args) { + + } + +} diff --git a/src/test/resources/ch_11_exceptions/sec_11_2_compile_time_checking_of_exceptions/sec_11_2_1_execution_analysis_of_expressions/SampleTest.java b/src/test/resources/ch_11_exceptions/sec_11_2_compile_time_checking_of_exceptions/sec_11_2_1_execution_analysis_of_expressions/SampleTest.java new file mode 100644 index 00000000..2c897dfb --- /dev/null +++ b/src/test/resources/ch_11_exceptions/sec_11_2_compile_time_checking_of_exceptions/sec_11_2_1_execution_analysis_of_expressions/SampleTest.java @@ -0,0 +1,9 @@ +package org.eolang.j2eo; + +public class SampleTest { + + public static void Main (String[] args) { + + } + +} diff --git a/src/test/resources/ch_11_exceptions/sec_11_2_compile_time_checking_of_exceptions/sec_11_2_2_execution_analysis_of_statements/SampleTest.java b/src/test/resources/ch_11_exceptions/sec_11_2_compile_time_checking_of_exceptions/sec_11_2_2_execution_analysis_of_statements/SampleTest.java new file mode 100644 index 00000000..2c897dfb --- /dev/null +++ b/src/test/resources/ch_11_exceptions/sec_11_2_compile_time_checking_of_exceptions/sec_11_2_2_execution_analysis_of_statements/SampleTest.java @@ -0,0 +1,9 @@ +package org.eolang.j2eo; + +public class SampleTest { + + public static void Main (String[] args) { + + } + +} diff --git a/src/test/resources/ch_11_exceptions/sec_11_2_compile_time_checking_of_exceptions/sec_11_2_3_exception_checking/SampleTest.java b/src/test/resources/ch_11_exceptions/sec_11_2_compile_time_checking_of_exceptions/sec_11_2_3_exception_checking/SampleTest.java new file mode 100644 index 00000000..2c897dfb --- /dev/null +++ b/src/test/resources/ch_11_exceptions/sec_11_2_compile_time_checking_of_exceptions/sec_11_2_3_exception_checking/SampleTest.java @@ -0,0 +1,9 @@ +package org.eolang.j2eo; + +public class SampleTest { + + public static void Main (String[] args) { + + } + +} diff --git a/src/test/resources/ch_11_exceptions/sec_11_3_runtime_handling_of_an_exceptions/SampleTest.java b/src/test/resources/ch_11_exceptions/sec_11_3_runtime_handling_of_an_exceptions/SampleTest.java new file mode 100644 index 00000000..2c897dfb --- /dev/null +++ b/src/test/resources/ch_11_exceptions/sec_11_3_runtime_handling_of_an_exceptions/SampleTest.java @@ -0,0 +1,9 @@ +package org.eolang.j2eo; + +public class SampleTest { + + public static void Main (String[] args) { + + } + +} diff --git a/src/test/resources/ch_14_blocks_statements_and_patterns/sec_14_10_the_assers_statement/SampleTest.java b/src/test/resources/ch_14_blocks_statements_and_patterns/sec_14_10_the_assers_statement/SampleTest.java new file mode 100644 index 00000000..2c897dfb --- /dev/null +++ b/src/test/resources/ch_14_blocks_statements_and_patterns/sec_14_10_the_assers_statement/SampleTest.java @@ -0,0 +1,9 @@ +package org.eolang.j2eo; + +public class SampleTest { + + public static void Main (String[] args) { + + } + +} diff --git a/src/test/resources/ch_14_blocks_statements_and_patterns/sec_14_11_the_switch_statement/sec_14_11_1_switch_blocks/SampleTest.java b/src/test/resources/ch_14_blocks_statements_and_patterns/sec_14_11_the_switch_statement/sec_14_11_1_switch_blocks/SampleTest.java new file mode 100644 index 00000000..2c897dfb --- /dev/null +++ b/src/test/resources/ch_14_blocks_statements_and_patterns/sec_14_11_the_switch_statement/sec_14_11_1_switch_blocks/SampleTest.java @@ -0,0 +1,9 @@ +package org.eolang.j2eo; + +public class SampleTest { + + public static void Main (String[] args) { + + } + +} diff --git a/src/test/resources/ch_14_blocks_statements_and_patterns/sec_14_11_the_switch_statement/sec_14_11_2_the_switch_block_of_a_switch_statement/SampleTest.java b/src/test/resources/ch_14_blocks_statements_and_patterns/sec_14_11_the_switch_statement/sec_14_11_2_the_switch_block_of_a_switch_statement/SampleTest.java new file mode 100644 index 00000000..2c897dfb --- /dev/null +++ b/src/test/resources/ch_14_blocks_statements_and_patterns/sec_14_11_the_switch_statement/sec_14_11_2_the_switch_block_of_a_switch_statement/SampleTest.java @@ -0,0 +1,9 @@ +package org.eolang.j2eo; + +public class SampleTest { + + public static void Main (String[] args) { + + } + +} diff --git a/src/test/resources/ch_14_blocks_statements_and_patterns/sec_14_12_the_while_statement/sec_14_12_1_abrupt_completion_of_while_statement/SampleTest.java b/src/test/resources/ch_14_blocks_statements_and_patterns/sec_14_12_the_while_statement/sec_14_12_1_abrupt_completion_of_while_statement/SampleTest.java new file mode 100644 index 00000000..2c897dfb --- /dev/null +++ b/src/test/resources/ch_14_blocks_statements_and_patterns/sec_14_12_the_while_statement/sec_14_12_1_abrupt_completion_of_while_statement/SampleTest.java @@ -0,0 +1,9 @@ +package org.eolang.j2eo; + +public class SampleTest { + + public static void Main (String[] args) { + + } + +} diff --git a/src/test/resources/ch_14_blocks_statements_and_patterns/sec_14_13_the_do_statement/sec_14_13_1_abrupt_completion_of_do_statement/SampleTest.java b/src/test/resources/ch_14_blocks_statements_and_patterns/sec_14_13_the_do_statement/sec_14_13_1_abrupt_completion_of_do_statement/SampleTest.java new file mode 100644 index 00000000..2c897dfb --- /dev/null +++ b/src/test/resources/ch_14_blocks_statements_and_patterns/sec_14_13_the_do_statement/sec_14_13_1_abrupt_completion_of_do_statement/SampleTest.java @@ -0,0 +1,9 @@ +package org.eolang.j2eo; + +public class SampleTest { + + public static void Main (String[] args) { + + } + +} diff --git a/src/test/resources/ch_14_blocks_statements_and_patterns/sec_14_14_the_for_statement/sec_14_14_1_the_basic_for_statement/sec_14_14_1_1_initialization_of_for_statement/SampleTest.java b/src/test/resources/ch_14_blocks_statements_and_patterns/sec_14_14_the_for_statement/sec_14_14_1_the_basic_for_statement/sec_14_14_1_1_initialization_of_for_statement/SampleTest.java new file mode 100644 index 00000000..2c897dfb --- /dev/null +++ b/src/test/resources/ch_14_blocks_statements_and_patterns/sec_14_14_the_for_statement/sec_14_14_1_the_basic_for_statement/sec_14_14_1_1_initialization_of_for_statement/SampleTest.java @@ -0,0 +1,9 @@ +package org.eolang.j2eo; + +public class SampleTest { + + public static void Main (String[] args) { + + } + +} diff --git a/src/test/resources/ch_14_blocks_statements_and_patterns/sec_14_14_the_for_statement/sec_14_14_1_the_basic_for_statement/sec_14_14_1_2_iteration_of_for_statement/SampleTest.java b/src/test/resources/ch_14_blocks_statements_and_patterns/sec_14_14_the_for_statement/sec_14_14_1_the_basic_for_statement/sec_14_14_1_2_iteration_of_for_statement/SampleTest.java new file mode 100644 index 00000000..2c897dfb --- /dev/null +++ b/src/test/resources/ch_14_blocks_statements_and_patterns/sec_14_14_the_for_statement/sec_14_14_1_the_basic_for_statement/sec_14_14_1_2_iteration_of_for_statement/SampleTest.java @@ -0,0 +1,9 @@ +package org.eolang.j2eo; + +public class SampleTest { + + public static void Main (String[] args) { + + } + +} diff --git a/src/test/resources/ch_14_blocks_statements_and_patterns/sec_14_14_the_for_statement/sec_14_14_1_the_basic_for_statement/sec_14_14_1_3_abrupt_completion_of_for_statement/SampleTest.java b/src/test/resources/ch_14_blocks_statements_and_patterns/sec_14_14_the_for_statement/sec_14_14_1_the_basic_for_statement/sec_14_14_1_3_abrupt_completion_of_for_statement/SampleTest.java new file mode 100644 index 00000000..2c897dfb --- /dev/null +++ b/src/test/resources/ch_14_blocks_statements_and_patterns/sec_14_14_the_for_statement/sec_14_14_1_the_basic_for_statement/sec_14_14_1_3_abrupt_completion_of_for_statement/SampleTest.java @@ -0,0 +1,9 @@ +package org.eolang.j2eo; + +public class SampleTest { + + public static void Main (String[] args) { + + } + +} diff --git a/src/test/resources/ch_14_blocks_statements_and_patterns/sec_14_14_the_for_statement/sec_14_14_2_the_enhanced_for_statement/SampleTest.java b/src/test/resources/ch_14_blocks_statements_and_patterns/sec_14_14_the_for_statement/sec_14_14_2_the_enhanced_for_statement/SampleTest.java new file mode 100644 index 00000000..2c897dfb --- /dev/null +++ b/src/test/resources/ch_14_blocks_statements_and_patterns/sec_14_14_the_for_statement/sec_14_14_2_the_enhanced_for_statement/SampleTest.java @@ -0,0 +1,9 @@ +package org.eolang.j2eo; + +public class SampleTest { + + public static void Main (String[] args) { + + } + +} diff --git a/src/test/resources/ch_14_blocks_statements_and_patterns/sec_14_15_the_break_statement/SampleTest.java b/src/test/resources/ch_14_blocks_statements_and_patterns/sec_14_15_the_break_statement/SampleTest.java new file mode 100644 index 00000000..2c897dfb --- /dev/null +++ b/src/test/resources/ch_14_blocks_statements_and_patterns/sec_14_15_the_break_statement/SampleTest.java @@ -0,0 +1,9 @@ +package org.eolang.j2eo; + +public class SampleTest { + + public static void Main (String[] args) { + + } + +} diff --git a/src/test/resources/ch_14_blocks_statements_and_patterns/sec_14_16_the_continue_statement/SampleTest.java b/src/test/resources/ch_14_blocks_statements_and_patterns/sec_14_16_the_continue_statement/SampleTest.java new file mode 100644 index 00000000..2c897dfb --- /dev/null +++ b/src/test/resources/ch_14_blocks_statements_and_patterns/sec_14_16_the_continue_statement/SampleTest.java @@ -0,0 +1,9 @@ +package org.eolang.j2eo; + +public class SampleTest { + + public static void Main (String[] args) { + + } + +} diff --git a/src/test/resources/ch_14_blocks_statements_and_patterns/sec_14_17_the_return_statement/SampleTest.java b/src/test/resources/ch_14_blocks_statements_and_patterns/sec_14_17_the_return_statement/SampleTest.java new file mode 100644 index 00000000..2c897dfb --- /dev/null +++ b/src/test/resources/ch_14_blocks_statements_and_patterns/sec_14_17_the_return_statement/SampleTest.java @@ -0,0 +1,9 @@ +package org.eolang.j2eo; + +public class SampleTest { + + public static void Main (String[] args) { + + } + +} diff --git a/src/test/resources/ch_14_blocks_statements_and_patterns/sec_14_18_the_throw_statement/SampleTest.java b/src/test/resources/ch_14_blocks_statements_and_patterns/sec_14_18_the_throw_statement/SampleTest.java new file mode 100644 index 00000000..2c897dfb --- /dev/null +++ b/src/test/resources/ch_14_blocks_statements_and_patterns/sec_14_18_the_throw_statement/SampleTest.java @@ -0,0 +1,9 @@ +package org.eolang.j2eo; + +public class SampleTest { + + public static void Main (String[] args) { + + } + +} diff --git a/src/test/resources/ch_14_blocks_statements_and_patterns/sec_14_19_the_synchronized_statement/SampleTest.java b/src/test/resources/ch_14_blocks_statements_and_patterns/sec_14_19_the_synchronized_statement/SampleTest.java new file mode 100644 index 00000000..2c897dfb --- /dev/null +++ b/src/test/resources/ch_14_blocks_statements_and_patterns/sec_14_19_the_synchronized_statement/SampleTest.java @@ -0,0 +1,9 @@ +package org.eolang.j2eo; + +public class SampleTest { + + public static void Main (String[] args) { + + } + +} diff --git a/src/test/resources/ch_14_blocks_statements_and_patterns/sec_14_20_the_try_statement/sec_14_20_1_execution_of_try_catch/SampleTest.java b/src/test/resources/ch_14_blocks_statements_and_patterns/sec_14_20_the_try_statement/sec_14_20_1_execution_of_try_catch/SampleTest.java new file mode 100644 index 00000000..2c897dfb --- /dev/null +++ b/src/test/resources/ch_14_blocks_statements_and_patterns/sec_14_20_the_try_statement/sec_14_20_1_execution_of_try_catch/SampleTest.java @@ -0,0 +1,9 @@ +package org.eolang.j2eo; + +public class SampleTest { + + public static void Main (String[] args) { + + } + +} diff --git a/src/test/resources/ch_14_blocks_statements_and_patterns/sec_14_20_the_try_statement/sec_14_20_2_execution_of_try_finally_and_try_catch_finally/SampleTest.java b/src/test/resources/ch_14_blocks_statements_and_patterns/sec_14_20_the_try_statement/sec_14_20_2_execution_of_try_finally_and_try_catch_finally/SampleTest.java new file mode 100644 index 00000000..2c897dfb --- /dev/null +++ b/src/test/resources/ch_14_blocks_statements_and_patterns/sec_14_20_the_try_statement/sec_14_20_2_execution_of_try_finally_and_try_catch_finally/SampleTest.java @@ -0,0 +1,9 @@ +package org.eolang.j2eo; + +public class SampleTest { + + public static void Main (String[] args) { + + } + +} diff --git a/src/test/resources/ch_14_blocks_statements_and_patterns/sec_14_20_the_try_statement/sec_14_20_3_try_with_resources/sec_14_20_3_1_basic_try_with_resources/SampleTest.java b/src/test/resources/ch_14_blocks_statements_and_patterns/sec_14_20_the_try_statement/sec_14_20_3_try_with_resources/sec_14_20_3_1_basic_try_with_resources/SampleTest.java new file mode 100644 index 00000000..2c897dfb --- /dev/null +++ b/src/test/resources/ch_14_blocks_statements_and_patterns/sec_14_20_the_try_statement/sec_14_20_3_try_with_resources/sec_14_20_3_1_basic_try_with_resources/SampleTest.java @@ -0,0 +1,9 @@ +package org.eolang.j2eo; + +public class SampleTest { + + public static void Main (String[] args) { + + } + +} diff --git a/src/test/resources/ch_14_blocks_statements_and_patterns/sec_14_20_the_try_statement/sec_14_20_3_try_with_resources/sec_14_20_3_2_extended_try_with_resources/SampleTest.java b/src/test/resources/ch_14_blocks_statements_and_patterns/sec_14_20_the_try_statement/sec_14_20_3_try_with_resources/sec_14_20_3_2_extended_try_with_resources/SampleTest.java new file mode 100644 index 00000000..2c897dfb --- /dev/null +++ b/src/test/resources/ch_14_blocks_statements_and_patterns/sec_14_20_the_try_statement/sec_14_20_3_try_with_resources/sec_14_20_3_2_extended_try_with_resources/SampleTest.java @@ -0,0 +1,9 @@ +package org.eolang.j2eo; + +public class SampleTest { + + public static void Main (String[] args) { + + } + +} diff --git a/src/test/resources/ch_14_blocks_statements_and_patterns/sec_14_21_the_yield_statement/SampleTest.java b/src/test/resources/ch_14_blocks_statements_and_patterns/sec_14_21_the_yield_statement/SampleTest.java new file mode 100644 index 00000000..2c897dfb --- /dev/null +++ b/src/test/resources/ch_14_blocks_statements_and_patterns/sec_14_21_the_yield_statement/SampleTest.java @@ -0,0 +1,9 @@ +package org.eolang.j2eo; + +public class SampleTest { + + public static void Main (String[] args) { + + } + +} diff --git a/src/test/resources/ch_14_blocks_statements_and_patterns/sec_14_22_unreachable_statements/SampleTest.java b/src/test/resources/ch_14_blocks_statements_and_patterns/sec_14_22_unreachable_statements/SampleTest.java new file mode 100644 index 00000000..2c897dfb --- /dev/null +++ b/src/test/resources/ch_14_blocks_statements_and_patterns/sec_14_22_unreachable_statements/SampleTest.java @@ -0,0 +1,9 @@ +package org.eolang.j2eo; + +public class SampleTest { + + public static void Main (String[] args) { + + } + +} diff --git a/src/test/resources/ch_14_blocks_statements_and_patterns/sec_14_2_blocks/SampleTest.java b/src/test/resources/ch_14_blocks_statements_and_patterns/sec_14_2_blocks/SampleTest.java new file mode 100644 index 00000000..2c897dfb --- /dev/null +++ b/src/test/resources/ch_14_blocks_statements_and_patterns/sec_14_2_blocks/SampleTest.java @@ -0,0 +1,9 @@ +package org.eolang.j2eo; + +public class SampleTest { + + public static void Main (String[] args) { + + } + +} diff --git a/src/test/resources/ch_14_blocks_statements_and_patterns/sec_14_30_patterns/sec_14_30_1_kinds_of_patterns/SampleTest.java b/src/test/resources/ch_14_blocks_statements_and_patterns/sec_14_30_patterns/sec_14_30_1_kinds_of_patterns/SampleTest.java new file mode 100644 index 00000000..2c897dfb --- /dev/null +++ b/src/test/resources/ch_14_blocks_statements_and_patterns/sec_14_30_patterns/sec_14_30_1_kinds_of_patterns/SampleTest.java @@ -0,0 +1,9 @@ +package org.eolang.j2eo; + +public class SampleTest { + + public static void Main (String[] args) { + + } + +} diff --git a/src/test/resources/ch_14_blocks_statements_and_patterns/sec_14_30_patterns/sec_14_30_2_pattern_matching/SampleTest.java b/src/test/resources/ch_14_blocks_statements_and_patterns/sec_14_30_patterns/sec_14_30_2_pattern_matching/SampleTest.java new file mode 100644 index 00000000..2c897dfb --- /dev/null +++ b/src/test/resources/ch_14_blocks_statements_and_patterns/sec_14_30_patterns/sec_14_30_2_pattern_matching/SampleTest.java @@ -0,0 +1,9 @@ +package org.eolang.j2eo; + +public class SampleTest { + + public static void Main (String[] args) { + + } + +} diff --git a/src/test/resources/ch_14_blocks_statements_and_patterns/sec_14_3_local_class_and_interface_declarations/SampleTest.java b/src/test/resources/ch_14_blocks_statements_and_patterns/sec_14_3_local_class_and_interface_declarations/SampleTest.java new file mode 100644 index 00000000..2c897dfb --- /dev/null +++ b/src/test/resources/ch_14_blocks_statements_and_patterns/sec_14_3_local_class_and_interface_declarations/SampleTest.java @@ -0,0 +1,9 @@ +package org.eolang.j2eo; + +public class SampleTest { + + public static void Main (String[] args) { + + } + +} diff --git a/src/test/resources/ch_14_blocks_statements_and_patterns/sec_14_4_local_variable_declarations/sec_14_4_1_local_variable_declarators_and_types/SampleTest.java b/src/test/resources/ch_14_blocks_statements_and_patterns/sec_14_4_local_variable_declarations/sec_14_4_1_local_variable_declarators_and_types/SampleTest.java new file mode 100644 index 00000000..2c897dfb --- /dev/null +++ b/src/test/resources/ch_14_blocks_statements_and_patterns/sec_14_4_local_variable_declarations/sec_14_4_1_local_variable_declarators_and_types/SampleTest.java @@ -0,0 +1,9 @@ +package org.eolang.j2eo; + +public class SampleTest { + + public static void Main (String[] args) { + + } + +} diff --git a/src/test/resources/ch_14_blocks_statements_and_patterns/sec_14_4_local_variable_declarations/sec_14_4_2_local_variable_declaration_statements/SampleTest.java b/src/test/resources/ch_14_blocks_statements_and_patterns/sec_14_4_local_variable_declarations/sec_14_4_2_local_variable_declaration_statements/SampleTest.java new file mode 100644 index 00000000..2c897dfb --- /dev/null +++ b/src/test/resources/ch_14_blocks_statements_and_patterns/sec_14_4_local_variable_declarations/sec_14_4_2_local_variable_declaration_statements/SampleTest.java @@ -0,0 +1,9 @@ +package org.eolang.j2eo; + +public class SampleTest { + + public static void Main (String[] args) { + + } + +} diff --git a/src/test/resources/ch_14_blocks_statements_and_patterns/sec_14_5_statements/SampleTest.java b/src/test/resources/ch_14_blocks_statements_and_patterns/sec_14_5_statements/SampleTest.java new file mode 100644 index 00000000..2c897dfb --- /dev/null +++ b/src/test/resources/ch_14_blocks_statements_and_patterns/sec_14_5_statements/SampleTest.java @@ -0,0 +1,9 @@ +package org.eolang.j2eo; + +public class SampleTest { + + public static void Main (String[] args) { + + } + +} diff --git a/src/test/resources/ch_14_blocks_statements_and_patterns/sec_14_6_the_empty_statement/SampleTest.java b/src/test/resources/ch_14_blocks_statements_and_patterns/sec_14_6_the_empty_statement/SampleTest.java new file mode 100644 index 00000000..2c897dfb --- /dev/null +++ b/src/test/resources/ch_14_blocks_statements_and_patterns/sec_14_6_the_empty_statement/SampleTest.java @@ -0,0 +1,9 @@ +package org.eolang.j2eo; + +public class SampleTest { + + public static void Main (String[] args) { + + } + +} diff --git a/src/test/resources/ch_14_blocks_statements_and_patterns/sec_14_7_labeled_statements/SampleTest.java b/src/test/resources/ch_14_blocks_statements_and_patterns/sec_14_7_labeled_statements/SampleTest.java new file mode 100644 index 00000000..2c897dfb --- /dev/null +++ b/src/test/resources/ch_14_blocks_statements_and_patterns/sec_14_7_labeled_statements/SampleTest.java @@ -0,0 +1,9 @@ +package org.eolang.j2eo; + +public class SampleTest { + + public static void Main (String[] args) { + + } + +} diff --git a/src/test/resources/ch_14_blocks_statements_and_patterns/sec_14_8_expression_statements/SampleTest.java b/src/test/resources/ch_14_blocks_statements_and_patterns/sec_14_8_expression_statements/SampleTest.java new file mode 100644 index 00000000..2c897dfb --- /dev/null +++ b/src/test/resources/ch_14_blocks_statements_and_patterns/sec_14_8_expression_statements/SampleTest.java @@ -0,0 +1,9 @@ +package org.eolang.j2eo; + +public class SampleTest { + + public static void Main (String[] args) { + + } + +} diff --git a/src/test/resources/ch_14_blocks_statements_and_patterns/sec_14_9_the_if_statement/sec_14_9_1_the_if_then_statement/SampleTest.java b/src/test/resources/ch_14_blocks_statements_and_patterns/sec_14_9_the_if_statement/sec_14_9_1_the_if_then_statement/SampleTest.java new file mode 100644 index 00000000..2c897dfb --- /dev/null +++ b/src/test/resources/ch_14_blocks_statements_and_patterns/sec_14_9_the_if_statement/sec_14_9_1_the_if_then_statement/SampleTest.java @@ -0,0 +1,9 @@ +package org.eolang.j2eo; + +public class SampleTest { + + public static void Main (String[] args) { + + } + +} diff --git a/src/test/resources/ch_14_blocks_statements_and_patterns/sec_14_9_the_if_statement/sec_14_9_2_the_if_then_else_statement/SampleTest.java b/src/test/resources/ch_14_blocks_statements_and_patterns/sec_14_9_the_if_statement/sec_14_9_2_the_if_then_else_statement/SampleTest.java new file mode 100644 index 00000000..2c897dfb --- /dev/null +++ b/src/test/resources/ch_14_blocks_statements_and_patterns/sec_14_9_the_if_statement/sec_14_9_2_the_if_then_else_statement/SampleTest.java @@ -0,0 +1,9 @@ +package org.eolang.j2eo; + +public class SampleTest { + + public static void Main (String[] args) { + + } + +} diff --git a/src/test/resources/ch_15_expressions/sec_15_10_array_creation_and_access_expressions/sec_15_10_1_array_creation_expressions/SampleTest.java b/src/test/resources/ch_15_expressions/sec_15_10_array_creation_and_access_expressions/sec_15_10_1_array_creation_expressions/SampleTest.java new file mode 100644 index 00000000..2c897dfb --- /dev/null +++ b/src/test/resources/ch_15_expressions/sec_15_10_array_creation_and_access_expressions/sec_15_10_1_array_creation_expressions/SampleTest.java @@ -0,0 +1,9 @@ +package org.eolang.j2eo; + +public class SampleTest { + + public static void Main (String[] args) { + + } + +} diff --git a/src/test/resources/ch_15_expressions/sec_15_10_array_creation_and_access_expressions/sec_15_10_3_array_access_expressions/SampleTest.java b/src/test/resources/ch_15_expressions/sec_15_10_array_creation_and_access_expressions/sec_15_10_3_array_access_expressions/SampleTest.java new file mode 100644 index 00000000..2c897dfb --- /dev/null +++ b/src/test/resources/ch_15_expressions/sec_15_10_array_creation_and_access_expressions/sec_15_10_3_array_access_expressions/SampleTest.java @@ -0,0 +1,9 @@ +package org.eolang.j2eo; + +public class SampleTest { + + public static void Main (String[] args) { + + } + +} diff --git a/src/test/resources/ch_15_expressions/sec_15_11_field_access_expressions/sec_15_11_1_field_access_using_a_primary/SampleTest.java b/src/test/resources/ch_15_expressions/sec_15_11_field_access_expressions/sec_15_11_1_field_access_using_a_primary/SampleTest.java new file mode 100644 index 00000000..2c897dfb --- /dev/null +++ b/src/test/resources/ch_15_expressions/sec_15_11_field_access_expressions/sec_15_11_1_field_access_using_a_primary/SampleTest.java @@ -0,0 +1,9 @@ +package org.eolang.j2eo; + +public class SampleTest { + + public static void Main (String[] args) { + + } + +} diff --git a/src/test/resources/ch_15_expressions/sec_15_11_field_access_expressions/sec_15_11_2_accessing_superclass_members_using_super/SampleTest.java b/src/test/resources/ch_15_expressions/sec_15_11_field_access_expressions/sec_15_11_2_accessing_superclass_members_using_super/SampleTest.java new file mode 100644 index 00000000..2c897dfb --- /dev/null +++ b/src/test/resources/ch_15_expressions/sec_15_11_field_access_expressions/sec_15_11_2_accessing_superclass_members_using_super/SampleTest.java @@ -0,0 +1,9 @@ +package org.eolang.j2eo; + +public class SampleTest { + + public static void Main (String[] args) { + + } + +} diff --git a/src/test/resources/ch_15_expressions/sec_15_12_method_invocation_expressions/SampleTest.java b/src/test/resources/ch_15_expressions/sec_15_12_method_invocation_expressions/SampleTest.java new file mode 100644 index 00000000..2c897dfb --- /dev/null +++ b/src/test/resources/ch_15_expressions/sec_15_12_method_invocation_expressions/SampleTest.java @@ -0,0 +1,9 @@ +package org.eolang.j2eo; + +public class SampleTest { + + public static void Main (String[] args) { + + } + +} diff --git a/src/test/resources/ch_15_expressions/sec_15_13_method_reference_expressions/SampleTest.java b/src/test/resources/ch_15_expressions/sec_15_13_method_reference_expressions/SampleTest.java new file mode 100644 index 00000000..2c897dfb --- /dev/null +++ b/src/test/resources/ch_15_expressions/sec_15_13_method_reference_expressions/SampleTest.java @@ -0,0 +1,9 @@ +package org.eolang.j2eo; + +public class SampleTest { + + public static void Main (String[] args) { + + } + +} diff --git a/src/test/resources/ch_15_expressions/sec_15_14_postfix_expressions/sec_15_14_2_postfix_increment_operator/SampleTest.java b/src/test/resources/ch_15_expressions/sec_15_14_postfix_expressions/sec_15_14_2_postfix_increment_operator/SampleTest.java new file mode 100644 index 00000000..2c897dfb --- /dev/null +++ b/src/test/resources/ch_15_expressions/sec_15_14_postfix_expressions/sec_15_14_2_postfix_increment_operator/SampleTest.java @@ -0,0 +1,9 @@ +package org.eolang.j2eo; + +public class SampleTest { + + public static void Main (String[] args) { + + } + +} diff --git a/src/test/resources/ch_15_expressions/sec_15_14_postfix_expressions/sec_15_14_3_postfix_decrement_operator/SampleTest.java b/src/test/resources/ch_15_expressions/sec_15_14_postfix_expressions/sec_15_14_3_postfix_decrement_operator/SampleTest.java new file mode 100644 index 00000000..2c897dfb --- /dev/null +++ b/src/test/resources/ch_15_expressions/sec_15_14_postfix_expressions/sec_15_14_3_postfix_decrement_operator/SampleTest.java @@ -0,0 +1,9 @@ +package org.eolang.j2eo; + +public class SampleTest { + + public static void Main (String[] args) { + + } + +} diff --git a/src/test/resources/ch_15_expressions/sec_15_15_unary_operators/sec_15_15_1_prefix_increment_operator/SampleTest.java b/src/test/resources/ch_15_expressions/sec_15_15_unary_operators/sec_15_15_1_prefix_increment_operator/SampleTest.java new file mode 100644 index 00000000..2c897dfb --- /dev/null +++ b/src/test/resources/ch_15_expressions/sec_15_15_unary_operators/sec_15_15_1_prefix_increment_operator/SampleTest.java @@ -0,0 +1,9 @@ +package org.eolang.j2eo; + +public class SampleTest { + + public static void Main (String[] args) { + + } + +} diff --git a/src/test/resources/ch_15_expressions/sec_15_15_unary_operators/sec_15_15_2_prefix_decrement_operator/SampleTest.java b/src/test/resources/ch_15_expressions/sec_15_15_unary_operators/sec_15_15_2_prefix_decrement_operator/SampleTest.java new file mode 100644 index 00000000..2c897dfb --- /dev/null +++ b/src/test/resources/ch_15_expressions/sec_15_15_unary_operators/sec_15_15_2_prefix_decrement_operator/SampleTest.java @@ -0,0 +1,9 @@ +package org.eolang.j2eo; + +public class SampleTest { + + public static void Main (String[] args) { + + } + +} diff --git a/src/test/resources/ch_15_expressions/sec_15_15_unary_operators/sec_15_15_3_unary_plus_operator/SampleTest.java b/src/test/resources/ch_15_expressions/sec_15_15_unary_operators/sec_15_15_3_unary_plus_operator/SampleTest.java new file mode 100644 index 00000000..2c897dfb --- /dev/null +++ b/src/test/resources/ch_15_expressions/sec_15_15_unary_operators/sec_15_15_3_unary_plus_operator/SampleTest.java @@ -0,0 +1,9 @@ +package org.eolang.j2eo; + +public class SampleTest { + + public static void Main (String[] args) { + + } + +} diff --git a/src/test/resources/ch_15_expressions/sec_15_15_unary_operators/sec_15_15_4_unary_minus_operator/SampleTest.java b/src/test/resources/ch_15_expressions/sec_15_15_unary_operators/sec_15_15_4_unary_minus_operator/SampleTest.java new file mode 100644 index 00000000..2c897dfb --- /dev/null +++ b/src/test/resources/ch_15_expressions/sec_15_15_unary_operators/sec_15_15_4_unary_minus_operator/SampleTest.java @@ -0,0 +1,9 @@ +package org.eolang.j2eo; + +public class SampleTest { + + public static void Main (String[] args) { + + } + +} diff --git a/src/test/resources/ch_15_expressions/sec_15_15_unary_operators/sec_15_15_5_bitwise_complement_operator/SampleTest.java b/src/test/resources/ch_15_expressions/sec_15_15_unary_operators/sec_15_15_5_bitwise_complement_operator/SampleTest.java new file mode 100644 index 00000000..2c897dfb --- /dev/null +++ b/src/test/resources/ch_15_expressions/sec_15_15_unary_operators/sec_15_15_5_bitwise_complement_operator/SampleTest.java @@ -0,0 +1,9 @@ +package org.eolang.j2eo; + +public class SampleTest { + + public static void Main (String[] args) { + + } + +} diff --git a/src/test/resources/ch_15_expressions/sec_15_15_unary_operators/sec_15_15_6_logical_complement_operator/SampleTest.java b/src/test/resources/ch_15_expressions/sec_15_15_unary_operators/sec_15_15_6_logical_complement_operator/SampleTest.java new file mode 100644 index 00000000..2c897dfb --- /dev/null +++ b/src/test/resources/ch_15_expressions/sec_15_15_unary_operators/sec_15_15_6_logical_complement_operator/SampleTest.java @@ -0,0 +1,9 @@ +package org.eolang.j2eo; + +public class SampleTest { + + public static void Main (String[] args) { + + } + +} diff --git a/src/test/resources/ch_15_expressions/sec_15_16_cast_expressions/SampleTest.java b/src/test/resources/ch_15_expressions/sec_15_16_cast_expressions/SampleTest.java new file mode 100644 index 00000000..2c897dfb --- /dev/null +++ b/src/test/resources/ch_15_expressions/sec_15_16_cast_expressions/SampleTest.java @@ -0,0 +1,9 @@ +package org.eolang.j2eo; + +public class SampleTest { + + public static void Main (String[] args) { + + } + +} diff --git a/src/test/resources/ch_15_expressions/sec_15_17_multiplicative_operators/sec_15_17_1_multiplication_operator/SampleTest.java b/src/test/resources/ch_15_expressions/sec_15_17_multiplicative_operators/sec_15_17_1_multiplication_operator/SampleTest.java new file mode 100644 index 00000000..2c897dfb --- /dev/null +++ b/src/test/resources/ch_15_expressions/sec_15_17_multiplicative_operators/sec_15_17_1_multiplication_operator/SampleTest.java @@ -0,0 +1,9 @@ +package org.eolang.j2eo; + +public class SampleTest { + + public static void Main (String[] args) { + + } + +} diff --git a/src/test/resources/ch_15_expressions/sec_15_17_multiplicative_operators/sec_15_17_2_division_operator/SampleTest.java b/src/test/resources/ch_15_expressions/sec_15_17_multiplicative_operators/sec_15_17_2_division_operator/SampleTest.java new file mode 100644 index 00000000..2c897dfb --- /dev/null +++ b/src/test/resources/ch_15_expressions/sec_15_17_multiplicative_operators/sec_15_17_2_division_operator/SampleTest.java @@ -0,0 +1,9 @@ +package org.eolang.j2eo; + +public class SampleTest { + + public static void Main (String[] args) { + + } + +} diff --git a/src/test/resources/ch_15_expressions/sec_15_17_multiplicative_operators/sec_15_17_3_remainder_operator/SampleTest.java b/src/test/resources/ch_15_expressions/sec_15_17_multiplicative_operators/sec_15_17_3_remainder_operator/SampleTest.java new file mode 100644 index 00000000..2c897dfb --- /dev/null +++ b/src/test/resources/ch_15_expressions/sec_15_17_multiplicative_operators/sec_15_17_3_remainder_operator/SampleTest.java @@ -0,0 +1,9 @@ +package org.eolang.j2eo; + +public class SampleTest { + + public static void Main (String[] args) { + + } + +} diff --git a/src/test/resources/ch_15_expressions/sec_15_18_additive_operators/sec_15_18_1_string_concatenation_operator/AssociativeStringConcat.java b/src/test/resources/ch_15_expressions/sec_15_18_additive_operators/sec_15_18_1_string_concatenation_operator/AssociativeStringConcat.java new file mode 100644 index 00000000..d7532a4e --- /dev/null +++ b/src/test/resources/ch_15_expressions/sec_15_18_additive_operators/sec_15_18_1_string_concatenation_operator/AssociativeStringConcat.java @@ -0,0 +1,8 @@ +public class AssociativeStringConcat { + public static void main(String[] args) { + String str1 = "str" + 1 + 2; + String str2 = 1 + 2 + "str"; + System.out.println(str1); + System.out.println(str2); + } +} diff --git a/src/test/resources/ch_15_expressions/sec_15_18_additive_operators/sec_15_18_1_string_concatenation_operator/SimpleStringConcat.java b/src/test/resources/ch_15_expressions/sec_15_18_additive_operators/sec_15_18_1_string_concatenation_operator/SimpleStringConcat.java new file mode 100644 index 00000000..796b31d5 --- /dev/null +++ b/src/test/resources/ch_15_expressions/sec_15_18_additive_operators/sec_15_18_1_string_concatenation_operator/SimpleStringConcat.java @@ -0,0 +1,6 @@ +public class SimpleStringConcat { + public static void main(String[] args) { + String str = "1"; + System.out.println(str + 2); + } +} \ No newline at end of file diff --git a/src/test/resources/ch_15_expressions/sec_15_18_additive_operators/sec_15_18_2_additive_operator_for_numeric_types/FloatAdditionNotAssociative.java b/src/test/resources/ch_15_expressions/sec_15_18_additive_operators/sec_15_18_2_additive_operator_for_numeric_types/FloatAdditionNotAssociative.java new file mode 100644 index 00000000..74b0cd7b --- /dev/null +++ b/src/test/resources/ch_15_expressions/sec_15_18_additive_operators/sec_15_18_2_additive_operator_for_numeric_types/FloatAdditionNotAssociative.java @@ -0,0 +1,8 @@ +public class FloatAdditionNotAssociative { + public static void main(String[] args) { + float a = 1f + (2f + 3f); + float b = (1f + 2f) + 3f; + System.out.println(a); + System.out.println(b); + } +} diff --git a/src/test/resources/ch_15_expressions/sec_15_18_additive_operators/sec_15_18_2_additive_operator_for_numeric_types/IntegerAdditionOverflow.java b/src/test/resources/ch_15_expressions/sec_15_18_additive_operators/sec_15_18_2_additive_operator_for_numeric_types/IntegerAdditionOverflow.java new file mode 100644 index 00000000..edcbb125 --- /dev/null +++ b/src/test/resources/ch_15_expressions/sec_15_18_additive_operators/sec_15_18_2_additive_operator_for_numeric_types/IntegerAdditionOverflow.java @@ -0,0 +1,7 @@ +public class IntegerAdditionOverflow { + public static void main(String[] args) { + int a = Integer.MAX_VALUE; + a += 10; + System.out.println(a); + } +} diff --git a/src/test/resources/ch_15_expressions/sec_15_18_additive_operators/sec_15_18_2_additive_operator_for_numeric_types/SimpleFloatAddition.java b/src/test/resources/ch_15_expressions/sec_15_18_additive_operators/sec_15_18_2_additive_operator_for_numeric_types/SimpleFloatAddition.java new file mode 100644 index 00000000..a453d9d0 --- /dev/null +++ b/src/test/resources/ch_15_expressions/sec_15_18_additive_operators/sec_15_18_2_additive_operator_for_numeric_types/SimpleFloatAddition.java @@ -0,0 +1,6 @@ +public class SimpleFloatAddition { + public static void main(String[] args) { + float a = 1f + 2f; + System.out.println(a); + } +} diff --git a/src/test/resources/ch_15_expressions/sec_15_18_additive_operators/sec_15_18_2_additive_operator_for_numeric_types/SimpleFloatSubtraction.java b/src/test/resources/ch_15_expressions/sec_15_18_additive_operators/sec_15_18_2_additive_operator_for_numeric_types/SimpleFloatSubtraction.java new file mode 100644 index 00000000..4ce369eb --- /dev/null +++ b/src/test/resources/ch_15_expressions/sec_15_18_additive_operators/sec_15_18_2_additive_operator_for_numeric_types/SimpleFloatSubtraction.java @@ -0,0 +1,6 @@ +public class SimpleFloatSubtraction { + public static void main(String[] args) { + float a = 1f - 2f; + System.out.println(a); + } +} diff --git a/src/test/resources/ch_15_expressions/sec_15_18_additive_operators/sec_15_18_2_additive_operator_for_numeric_types/SimpleIntegerAddition.java b/src/test/resources/ch_15_expressions/sec_15_18_additive_operators/sec_15_18_2_additive_operator_for_numeric_types/SimpleIntegerAddition.java new file mode 100644 index 00000000..aac358cc --- /dev/null +++ b/src/test/resources/ch_15_expressions/sec_15_18_additive_operators/sec_15_18_2_additive_operator_for_numeric_types/SimpleIntegerAddition.java @@ -0,0 +1,6 @@ +public class SimpleIntegerAddition { + public static void main(String[] args) { + int a = 1 + 2; + System.out.println(a); + } +} diff --git a/src/test/resources/ch_15_expressions/sec_15_18_additive_operators/sec_15_18_2_additive_operator_for_numeric_types/SimpleIntegerSubtraction.java b/src/test/resources/ch_15_expressions/sec_15_18_additive_operators/sec_15_18_2_additive_operator_for_numeric_types/SimpleIntegerSubtraction.java new file mode 100644 index 00000000..b64ed706 --- /dev/null +++ b/src/test/resources/ch_15_expressions/sec_15_18_additive_operators/sec_15_18_2_additive_operator_for_numeric_types/SimpleIntegerSubtraction.java @@ -0,0 +1,6 @@ +public class SimpleIntegerSubtraction { + public static void main(String[] args) { + int a = 1 - 2; + System.out.println(a); + } +} diff --git a/src/test/resources/ch_15_expressions/sec_15_18_additive_operators/sec_15_18_2_additive_operator_for_numeric_types/SimpleLongAddition.java b/src/test/resources/ch_15_expressions/sec_15_18_additive_operators/sec_15_18_2_additive_operator_for_numeric_types/SimpleLongAddition.java new file mode 100644 index 00000000..da40a48f --- /dev/null +++ b/src/test/resources/ch_15_expressions/sec_15_18_additive_operators/sec_15_18_2_additive_operator_for_numeric_types/SimpleLongAddition.java @@ -0,0 +1,6 @@ +public class SimpleLongAddition { + public static void main(String[] args) { + long a = 1L + 2L; + System.out.println(a); + } +} diff --git a/src/test/resources/ch_15_expressions/sec_15_18_additive_operators/sec_15_18_2_additive_operator_for_numeric_types/SubtractionIsAdditionFloat.java b/src/test/resources/ch_15_expressions/sec_15_18_additive_operators/sec_15_18_2_additive_operator_for_numeric_types/SubtractionIsAdditionFloat.java new file mode 100644 index 00000000..e5746252 --- /dev/null +++ b/src/test/resources/ch_15_expressions/sec_15_18_additive_operators/sec_15_18_2_additive_operator_for_numeric_types/SubtractionIsAdditionFloat.java @@ -0,0 +1,8 @@ +public class SubtractionIsAdditionFloat { + public static void main(String[] args) { + float a = 1f; + float b = 2f; + System.out.println(a - b); + System.out.println(a + (-b)); + } +} diff --git a/src/test/resources/ch_15_expressions/sec_15_18_additive_operators/sec_15_18_2_additive_operator_for_numeric_types/SubtractionIsAdditionInteger.java b/src/test/resources/ch_15_expressions/sec_15_18_additive_operators/sec_15_18_2_additive_operator_for_numeric_types/SubtractionIsAdditionInteger.java new file mode 100644 index 00000000..d019902f --- /dev/null +++ b/src/test/resources/ch_15_expressions/sec_15_18_additive_operators/sec_15_18_2_additive_operator_for_numeric_types/SubtractionIsAdditionInteger.java @@ -0,0 +1,8 @@ +public class SubtractionIsAdditionInteger { + public static void main(String[] args) { + int a = 1; + int b = 2; + System.out.println(a - b); + System.out.println(a + (-b)); + } +} diff --git a/src/test/resources/ch_15_expressions/sec_15_19_shift_operators/SampleTest.java b/src/test/resources/ch_15_expressions/sec_15_19_shift_operators/SampleTest.java new file mode 100644 index 00000000..2c897dfb --- /dev/null +++ b/src/test/resources/ch_15_expressions/sec_15_19_shift_operators/SampleTest.java @@ -0,0 +1,9 @@ +package org.eolang.j2eo; + +public class SampleTest { + + public static void Main (String[] args) { + + } + +} diff --git a/src/test/resources/ch_15_expressions/sec_15_1_evaluation_denotation_and_result/SampleTest.java b/src/test/resources/ch_15_expressions/sec_15_1_evaluation_denotation_and_result/SampleTest.java new file mode 100644 index 00000000..2c897dfb --- /dev/null +++ b/src/test/resources/ch_15_expressions/sec_15_1_evaluation_denotation_and_result/SampleTest.java @@ -0,0 +1,9 @@ +package org.eolang.j2eo; + +public class SampleTest { + + public static void Main (String[] args) { + + } + +} diff --git a/src/test/resources/ch_15_expressions/sec_15_20_relational_operators/sec_15_20_1_numerical_comparison_operators/SampleTest.java b/src/test/resources/ch_15_expressions/sec_15_20_relational_operators/sec_15_20_1_numerical_comparison_operators/SampleTest.java new file mode 100644 index 00000000..2c897dfb --- /dev/null +++ b/src/test/resources/ch_15_expressions/sec_15_20_relational_operators/sec_15_20_1_numerical_comparison_operators/SampleTest.java @@ -0,0 +1,9 @@ +package org.eolang.j2eo; + +public class SampleTest { + + public static void Main (String[] args) { + + } + +} diff --git a/src/test/resources/ch_15_expressions/sec_15_20_relational_operators/sec_15_20_2_the_instanceof_operator/SampleTest.java b/src/test/resources/ch_15_expressions/sec_15_20_relational_operators/sec_15_20_2_the_instanceof_operator/SampleTest.java new file mode 100644 index 00000000..2c897dfb --- /dev/null +++ b/src/test/resources/ch_15_expressions/sec_15_20_relational_operators/sec_15_20_2_the_instanceof_operator/SampleTest.java @@ -0,0 +1,9 @@ +package org.eolang.j2eo; + +public class SampleTest { + + public static void Main (String[] args) { + + } + +} diff --git a/src/test/resources/ch_15_expressions/sec_15_21_equality_operators/sec_15_21_1_numerical_equality_operators/SampleTest.java b/src/test/resources/ch_15_expressions/sec_15_21_equality_operators/sec_15_21_1_numerical_equality_operators/SampleTest.java new file mode 100644 index 00000000..2c897dfb --- /dev/null +++ b/src/test/resources/ch_15_expressions/sec_15_21_equality_operators/sec_15_21_1_numerical_equality_operators/SampleTest.java @@ -0,0 +1,9 @@ +package org.eolang.j2eo; + +public class SampleTest { + + public static void Main (String[] args) { + + } + +} diff --git a/src/test/resources/ch_15_expressions/sec_15_21_equality_operators/sec_15_21_2_boolean_equality_operators/SampleTest.java b/src/test/resources/ch_15_expressions/sec_15_21_equality_operators/sec_15_21_2_boolean_equality_operators/SampleTest.java new file mode 100644 index 00000000..2c897dfb --- /dev/null +++ b/src/test/resources/ch_15_expressions/sec_15_21_equality_operators/sec_15_21_2_boolean_equality_operators/SampleTest.java @@ -0,0 +1,9 @@ +package org.eolang.j2eo; + +public class SampleTest { + + public static void Main (String[] args) { + + } + +} diff --git a/src/test/resources/ch_15_expressions/sec_15_21_equality_operators/sec_15_21_3_reference_equality_operators/SampleTest.java b/src/test/resources/ch_15_expressions/sec_15_21_equality_operators/sec_15_21_3_reference_equality_operators/SampleTest.java new file mode 100644 index 00000000..2c897dfb --- /dev/null +++ b/src/test/resources/ch_15_expressions/sec_15_21_equality_operators/sec_15_21_3_reference_equality_operators/SampleTest.java @@ -0,0 +1,9 @@ +package org.eolang.j2eo; + +public class SampleTest { + + public static void Main (String[] args) { + + } + +} diff --git a/src/test/resources/ch_15_expressions/sec_15_22_bitwise_and_logical_operators/sec_15_22_1_integer_bitwise_operators/SampleTest.java b/src/test/resources/ch_15_expressions/sec_15_22_bitwise_and_logical_operators/sec_15_22_1_integer_bitwise_operators/SampleTest.java new file mode 100644 index 00000000..2c897dfb --- /dev/null +++ b/src/test/resources/ch_15_expressions/sec_15_22_bitwise_and_logical_operators/sec_15_22_1_integer_bitwise_operators/SampleTest.java @@ -0,0 +1,9 @@ +package org.eolang.j2eo; + +public class SampleTest { + + public static void Main (String[] args) { + + } + +} diff --git a/src/test/resources/ch_15_expressions/sec_15_22_bitwise_and_logical_operators/sec_15_22_2_boolean_logical_operators/SampleTest.java b/src/test/resources/ch_15_expressions/sec_15_22_bitwise_and_logical_operators/sec_15_22_2_boolean_logical_operators/SampleTest.java new file mode 100644 index 00000000..2c897dfb --- /dev/null +++ b/src/test/resources/ch_15_expressions/sec_15_22_bitwise_and_logical_operators/sec_15_22_2_boolean_logical_operators/SampleTest.java @@ -0,0 +1,9 @@ +package org.eolang.j2eo; + +public class SampleTest { + + public static void Main (String[] args) { + + } + +} diff --git a/src/test/resources/ch_15_expressions/sec_15_23_conditional_and_operator/SampleTest.java b/src/test/resources/ch_15_expressions/sec_15_23_conditional_and_operator/SampleTest.java new file mode 100644 index 00000000..2c897dfb --- /dev/null +++ b/src/test/resources/ch_15_expressions/sec_15_23_conditional_and_operator/SampleTest.java @@ -0,0 +1,9 @@ +package org.eolang.j2eo; + +public class SampleTest { + + public static void Main (String[] args) { + + } + +} diff --git a/src/test/resources/ch_15_expressions/sec_15_24_conditional_or_operator/SampleTest.java b/src/test/resources/ch_15_expressions/sec_15_24_conditional_or_operator/SampleTest.java new file mode 100644 index 00000000..2c897dfb --- /dev/null +++ b/src/test/resources/ch_15_expressions/sec_15_24_conditional_or_operator/SampleTest.java @@ -0,0 +1,9 @@ +package org.eolang.j2eo; + +public class SampleTest { + + public static void Main (String[] args) { + + } + +} diff --git a/src/test/resources/ch_15_expressions/sec_15_25_ternary_operator/sec_15_25_1_boolean_conditional_expressions/SampleTest.java b/src/test/resources/ch_15_expressions/sec_15_25_ternary_operator/sec_15_25_1_boolean_conditional_expressions/SampleTest.java new file mode 100644 index 00000000..2c897dfb --- /dev/null +++ b/src/test/resources/ch_15_expressions/sec_15_25_ternary_operator/sec_15_25_1_boolean_conditional_expressions/SampleTest.java @@ -0,0 +1,9 @@ +package org.eolang.j2eo; + +public class SampleTest { + + public static void Main (String[] args) { + + } + +} diff --git a/src/test/resources/ch_15_expressions/sec_15_25_ternary_operator/sec_15_25_2_numeric_conditional_expressions/SampleTest.java b/src/test/resources/ch_15_expressions/sec_15_25_ternary_operator/sec_15_25_2_numeric_conditional_expressions/SampleTest.java new file mode 100644 index 00000000..2c897dfb --- /dev/null +++ b/src/test/resources/ch_15_expressions/sec_15_25_ternary_operator/sec_15_25_2_numeric_conditional_expressions/SampleTest.java @@ -0,0 +1,9 @@ +package org.eolang.j2eo; + +public class SampleTest { + + public static void Main (String[] args) { + + } + +} diff --git a/src/test/resources/ch_15_expressions/sec_15_25_ternary_operator/sec_15_25_3_reference_conditional_expressions/SampleTest.java b/src/test/resources/ch_15_expressions/sec_15_25_ternary_operator/sec_15_25_3_reference_conditional_expressions/SampleTest.java new file mode 100644 index 00000000..2c897dfb --- /dev/null +++ b/src/test/resources/ch_15_expressions/sec_15_25_ternary_operator/sec_15_25_3_reference_conditional_expressions/SampleTest.java @@ -0,0 +1,9 @@ +package org.eolang.j2eo; + +public class SampleTest { + + public static void Main (String[] args) { + + } + +} diff --git a/src/test/resources/ch_15_expressions/sec_15_26_assignment_operators/sec_15_26_1_simple_assignment_operator/SampleTest.java b/src/test/resources/ch_15_expressions/sec_15_26_assignment_operators/sec_15_26_1_simple_assignment_operator/SampleTest.java new file mode 100644 index 00000000..2c897dfb --- /dev/null +++ b/src/test/resources/ch_15_expressions/sec_15_26_assignment_operators/sec_15_26_1_simple_assignment_operator/SampleTest.java @@ -0,0 +1,9 @@ +package org.eolang.j2eo; + +public class SampleTest { + + public static void Main (String[] args) { + + } + +} diff --git a/src/test/resources/ch_15_expressions/sec_15_26_assignment_operators/sec_15_26_2_compound_assignment_operators/SampleTest.java b/src/test/resources/ch_15_expressions/sec_15_26_assignment_operators/sec_15_26_2_compound_assignment_operators/SampleTest.java new file mode 100644 index 00000000..2c897dfb --- /dev/null +++ b/src/test/resources/ch_15_expressions/sec_15_26_assignment_operators/sec_15_26_2_compound_assignment_operators/SampleTest.java @@ -0,0 +1,9 @@ +package org.eolang.j2eo; + +public class SampleTest { + + public static void Main (String[] args) { + + } + +} diff --git a/src/test/resources/ch_15_expressions/sec_15_27_lambda_expressions/sec_15_27_1_lambda_parameters/SampleTest.java b/src/test/resources/ch_15_expressions/sec_15_27_lambda_expressions/sec_15_27_1_lambda_parameters/SampleTest.java new file mode 100644 index 00000000..2c897dfb --- /dev/null +++ b/src/test/resources/ch_15_expressions/sec_15_27_lambda_expressions/sec_15_27_1_lambda_parameters/SampleTest.java @@ -0,0 +1,9 @@ +package org.eolang.j2eo; + +public class SampleTest { + + public static void Main (String[] args) { + + } + +} diff --git a/src/test/resources/ch_15_expressions/sec_15_27_lambda_expressions/sec_15_27_2_lambda_body/SampleTest.java b/src/test/resources/ch_15_expressions/sec_15_27_lambda_expressions/sec_15_27_2_lambda_body/SampleTest.java new file mode 100644 index 00000000..2c897dfb --- /dev/null +++ b/src/test/resources/ch_15_expressions/sec_15_27_lambda_expressions/sec_15_27_2_lambda_body/SampleTest.java @@ -0,0 +1,9 @@ +package org.eolang.j2eo; + +public class SampleTest { + + public static void Main (String[] args) { + + } + +} diff --git a/src/test/resources/ch_15_expressions/sec_15_27_lambda_expressions/sec_15_27_3_type_of_a_lambda_expression/SampleTest.java b/src/test/resources/ch_15_expressions/sec_15_27_lambda_expressions/sec_15_27_3_type_of_a_lambda_expression/SampleTest.java new file mode 100644 index 00000000..2c897dfb --- /dev/null +++ b/src/test/resources/ch_15_expressions/sec_15_27_lambda_expressions/sec_15_27_3_type_of_a_lambda_expression/SampleTest.java @@ -0,0 +1,9 @@ +package org.eolang.j2eo; + +public class SampleTest { + + public static void Main (String[] args) { + + } + +} diff --git a/src/test/resources/ch_15_expressions/sec_15_28_switch_expressions/sec_15_28_1_the_switch_block_of_a_switch_expression/SampleTest.java b/src/test/resources/ch_15_expressions/sec_15_28_switch_expressions/sec_15_28_1_the_switch_block_of_a_switch_expression/SampleTest.java new file mode 100644 index 00000000..2c897dfb --- /dev/null +++ b/src/test/resources/ch_15_expressions/sec_15_28_switch_expressions/sec_15_28_1_the_switch_block_of_a_switch_expression/SampleTest.java @@ -0,0 +1,9 @@ +package org.eolang.j2eo; + +public class SampleTest { + + public static void Main (String[] args) { + + } + +} diff --git a/src/test/resources/ch_15_expressions/sec_15_29_constant_expressions/SampleTest.java b/src/test/resources/ch_15_expressions/sec_15_29_constant_expressions/SampleTest.java new file mode 100644 index 00000000..2c897dfb --- /dev/null +++ b/src/test/resources/ch_15_expressions/sec_15_29_constant_expressions/SampleTest.java @@ -0,0 +1,9 @@ +package org.eolang.j2eo; + +public class SampleTest { + + public static void Main (String[] args) { + + } + +} diff --git a/src/test/resources/ch_15_expressions/sec_15_2_forms_of_expressoins/SampleTest.java b/src/test/resources/ch_15_expressions/sec_15_2_forms_of_expressoins/SampleTest.java new file mode 100644 index 00000000..2c897dfb --- /dev/null +++ b/src/test/resources/ch_15_expressions/sec_15_2_forms_of_expressoins/SampleTest.java @@ -0,0 +1,9 @@ +package org.eolang.j2eo; + +public class SampleTest { + + public static void Main (String[] args) { + + } + +} diff --git a/src/test/resources/ch_15_expressions/sec_15_3_type_of_an_expression/SampleTest.java b/src/test/resources/ch_15_expressions/sec_15_3_type_of_an_expression/SampleTest.java new file mode 100644 index 00000000..2c897dfb --- /dev/null +++ b/src/test/resources/ch_15_expressions/sec_15_3_type_of_an_expression/SampleTest.java @@ -0,0 +1,9 @@ +package org.eolang.j2eo; + +public class SampleTest { + + public static void Main (String[] args) { + + } + +} diff --git a/src/test/resources/ch_15_expressions/sec_15_4_fp_strict_expressions/SampleTest.java b/src/test/resources/ch_15_expressions/sec_15_4_fp_strict_expressions/SampleTest.java new file mode 100644 index 00000000..2c897dfb --- /dev/null +++ b/src/test/resources/ch_15_expressions/sec_15_4_fp_strict_expressions/SampleTest.java @@ -0,0 +1,9 @@ +package org.eolang.j2eo; + +public class SampleTest { + + public static void Main (String[] args) { + + } + +} diff --git a/src/test/resources/ch_15_expressions/sec_15_6_normal_and_abrupt_completion_of_evaluation/SampleTest.java b/src/test/resources/ch_15_expressions/sec_15_6_normal_and_abrupt_completion_of_evaluation/SampleTest.java new file mode 100644 index 00000000..2c897dfb --- /dev/null +++ b/src/test/resources/ch_15_expressions/sec_15_6_normal_and_abrupt_completion_of_evaluation/SampleTest.java @@ -0,0 +1,9 @@ +package org.eolang.j2eo; + +public class SampleTest { + + public static void Main (String[] args) { + + } + +} diff --git a/src/test/resources/ch_15_expressions/sec_15_7_evaluation_order/sec_15_7_1_evaluate_left_hand_operand_first/SampleTest.java b/src/test/resources/ch_15_expressions/sec_15_7_evaluation_order/sec_15_7_1_evaluate_left_hand_operand_first/SampleTest.java new file mode 100644 index 00000000..2c897dfb --- /dev/null +++ b/src/test/resources/ch_15_expressions/sec_15_7_evaluation_order/sec_15_7_1_evaluate_left_hand_operand_first/SampleTest.java @@ -0,0 +1,9 @@ +package org.eolang.j2eo; + +public class SampleTest { + + public static void Main (String[] args) { + + } + +} diff --git a/src/test/resources/ch_15_expressions/sec_15_7_evaluation_order/sec_15_7_2_evaluate_operands_before_operation/SampleTest.java b/src/test/resources/ch_15_expressions/sec_15_7_evaluation_order/sec_15_7_2_evaluate_operands_before_operation/SampleTest.java new file mode 100644 index 00000000..2c897dfb --- /dev/null +++ b/src/test/resources/ch_15_expressions/sec_15_7_evaluation_order/sec_15_7_2_evaluate_operands_before_operation/SampleTest.java @@ -0,0 +1,9 @@ +package org.eolang.j2eo; + +public class SampleTest { + + public static void Main (String[] args) { + + } + +} diff --git a/src/test/resources/ch_15_expressions/sec_15_7_evaluation_order/sec_15_7_3_evaluation_respects_parentheses_and_precedence/SampleTest.java b/src/test/resources/ch_15_expressions/sec_15_7_evaluation_order/sec_15_7_3_evaluation_respects_parentheses_and_precedence/SampleTest.java new file mode 100644 index 00000000..2c897dfb --- /dev/null +++ b/src/test/resources/ch_15_expressions/sec_15_7_evaluation_order/sec_15_7_3_evaluation_respects_parentheses_and_precedence/SampleTest.java @@ -0,0 +1,9 @@ +package org.eolang.j2eo; + +public class SampleTest { + + public static void Main (String[] args) { + + } + +} diff --git a/src/test/resources/ch_15_expressions/sec_15_7_evaluation_order/sec_15_7_4_argument_lists_are_evaluated_left_to_right/SampleTest.java b/src/test/resources/ch_15_expressions/sec_15_7_evaluation_order/sec_15_7_4_argument_lists_are_evaluated_left_to_right/SampleTest.java new file mode 100644 index 00000000..2c897dfb --- /dev/null +++ b/src/test/resources/ch_15_expressions/sec_15_7_evaluation_order/sec_15_7_4_argument_lists_are_evaluated_left_to_right/SampleTest.java @@ -0,0 +1,9 @@ +package org.eolang.j2eo; + +public class SampleTest { + + public static void Main (String[] args) { + + } + +} diff --git a/src/test/resources/ch_15_expressions/sec_15_7_evaluation_order/sec_15_7_5_evaluation_order_for_other_expressions/SampleTest.java b/src/test/resources/ch_15_expressions/sec_15_7_evaluation_order/sec_15_7_5_evaluation_order_for_other_expressions/SampleTest.java new file mode 100644 index 00000000..2c897dfb --- /dev/null +++ b/src/test/resources/ch_15_expressions/sec_15_7_evaluation_order/sec_15_7_5_evaluation_order_for_other_expressions/SampleTest.java @@ -0,0 +1,9 @@ +package org.eolang.j2eo; + +public class SampleTest { + + public static void Main (String[] args) { + + } + +} diff --git a/src/test/resources/ch_15_expressions/sec_15_8_primary_expressions/sec_15_8_1_lexical_literals/SampleTest.java b/src/test/resources/ch_15_expressions/sec_15_8_primary_expressions/sec_15_8_1_lexical_literals/SampleTest.java new file mode 100644 index 00000000..2c897dfb --- /dev/null +++ b/src/test/resources/ch_15_expressions/sec_15_8_primary_expressions/sec_15_8_1_lexical_literals/SampleTest.java @@ -0,0 +1,9 @@ +package org.eolang.j2eo; + +public class SampleTest { + + public static void Main (String[] args) { + + } + +} diff --git a/src/test/resources/ch_15_expressions/sec_15_8_primary_expressions/sec_15_8_2_class_literals/SampleTest.java b/src/test/resources/ch_15_expressions/sec_15_8_primary_expressions/sec_15_8_2_class_literals/SampleTest.java new file mode 100644 index 00000000..2c897dfb --- /dev/null +++ b/src/test/resources/ch_15_expressions/sec_15_8_primary_expressions/sec_15_8_2_class_literals/SampleTest.java @@ -0,0 +1,9 @@ +package org.eolang.j2eo; + +public class SampleTest { + + public static void Main (String[] args) { + + } + +} diff --git a/src/test/resources/ch_15_expressions/sec_15_8_primary_expressions/sec_15_8_3_this/SampleTest.java b/src/test/resources/ch_15_expressions/sec_15_8_primary_expressions/sec_15_8_3_this/SampleTest.java new file mode 100644 index 00000000..2c897dfb --- /dev/null +++ b/src/test/resources/ch_15_expressions/sec_15_8_primary_expressions/sec_15_8_3_this/SampleTest.java @@ -0,0 +1,9 @@ +package org.eolang.j2eo; + +public class SampleTest { + + public static void Main (String[] args) { + + } + +} diff --git a/src/test/resources/ch_15_expressions/sec_15_8_primary_expressions/sec_15_8_4_qualified_this/SampleTest.java b/src/test/resources/ch_15_expressions/sec_15_8_primary_expressions/sec_15_8_4_qualified_this/SampleTest.java new file mode 100644 index 00000000..2c897dfb --- /dev/null +++ b/src/test/resources/ch_15_expressions/sec_15_8_primary_expressions/sec_15_8_4_qualified_this/SampleTest.java @@ -0,0 +1,9 @@ +package org.eolang.j2eo; + +public class SampleTest { + + public static void Main (String[] args) { + + } + +} diff --git a/src/test/resources/ch_15_expressions/sec_15_8_primary_expressions/sec_15_8_5_parenthesized_expressions/SampleTest.java b/src/test/resources/ch_15_expressions/sec_15_8_primary_expressions/sec_15_8_5_parenthesized_expressions/SampleTest.java new file mode 100644 index 00000000..2c897dfb --- /dev/null +++ b/src/test/resources/ch_15_expressions/sec_15_8_primary_expressions/sec_15_8_5_parenthesized_expressions/SampleTest.java @@ -0,0 +1,9 @@ +package org.eolang.j2eo; + +public class SampleTest { + + public static void Main (String[] args) { + + } + +} diff --git a/src/test/resources/ch_15_expressions/sec_15_9_class_instance_creation_expressions/sec_15_9_5_anonymous_class_declarations/sec_15_9_5_1_anonymous_constructors/SampleTest.java b/src/test/resources/ch_15_expressions/sec_15_9_class_instance_creation_expressions/sec_15_9_5_anonymous_class_declarations/sec_15_9_5_1_anonymous_constructors/SampleTest.java new file mode 100644 index 00000000..2c897dfb --- /dev/null +++ b/src/test/resources/ch_15_expressions/sec_15_9_class_instance_creation_expressions/sec_15_9_5_anonymous_class_declarations/sec_15_9_5_1_anonymous_constructors/SampleTest.java @@ -0,0 +1,9 @@ +package org.eolang.j2eo; + +public class SampleTest { + + public static void Main (String[] args) { + + } + +} diff --git a/src/test/resources/ch_16_definite_assignment/sec_16_1_definite_assignment_and_expressions/sec_16_1_10_other_expressions/SampleTest.java b/src/test/resources/ch_16_definite_assignment/sec_16_1_definite_assignment_and_expressions/sec_16_1_10_other_expressions/SampleTest.java new file mode 100644 index 00000000..2c897dfb --- /dev/null +++ b/src/test/resources/ch_16_definite_assignment/sec_16_1_definite_assignment_and_expressions/sec_16_1_10_other_expressions/SampleTest.java @@ -0,0 +1,9 @@ +package org.eolang.j2eo; + +public class SampleTest { + + public static void Main (String[] args) { + + } + +} diff --git a/src/test/resources/ch_16_definite_assignment/sec_16_1_definite_assignment_and_expressions/sec_16_1_1_boolean_constant_expressions/SampleTest.java b/src/test/resources/ch_16_definite_assignment/sec_16_1_definite_assignment_and_expressions/sec_16_1_1_boolean_constant_expressions/SampleTest.java new file mode 100644 index 00000000..2c897dfb --- /dev/null +++ b/src/test/resources/ch_16_definite_assignment/sec_16_1_definite_assignment_and_expressions/sec_16_1_1_boolean_constant_expressions/SampleTest.java @@ -0,0 +1,9 @@ +package org.eolang.j2eo; + +public class SampleTest { + + public static void Main (String[] args) { + + } + +} diff --git a/src/test/resources/ch_16_definite_assignment/sec_16_1_definite_assignment_and_expressions/sec_16_1_2_conditional_and_operator/SampleTest.java b/src/test/resources/ch_16_definite_assignment/sec_16_1_definite_assignment_and_expressions/sec_16_1_2_conditional_and_operator/SampleTest.java new file mode 100644 index 00000000..2c897dfb --- /dev/null +++ b/src/test/resources/ch_16_definite_assignment/sec_16_1_definite_assignment_and_expressions/sec_16_1_2_conditional_and_operator/SampleTest.java @@ -0,0 +1,9 @@ +package org.eolang.j2eo; + +public class SampleTest { + + public static void Main (String[] args) { + + } + +} diff --git a/src/test/resources/ch_16_definite_assignment/sec_16_1_definite_assignment_and_expressions/sec_16_1_3_conditional_or_operator/SampleTest.java b/src/test/resources/ch_16_definite_assignment/sec_16_1_definite_assignment_and_expressions/sec_16_1_3_conditional_or_operator/SampleTest.java new file mode 100644 index 00000000..2c897dfb --- /dev/null +++ b/src/test/resources/ch_16_definite_assignment/sec_16_1_definite_assignment_and_expressions/sec_16_1_3_conditional_or_operator/SampleTest.java @@ -0,0 +1,9 @@ +package org.eolang.j2eo; + +public class SampleTest { + + public static void Main (String[] args) { + + } + +} diff --git a/src/test/resources/ch_16_definite_assignment/sec_16_1_definite_assignment_and_expressions/sec_16_1_4_logical_complement_operator/SampleTest.java b/src/test/resources/ch_16_definite_assignment/sec_16_1_definite_assignment_and_expressions/sec_16_1_4_logical_complement_operator/SampleTest.java new file mode 100644 index 00000000..2c897dfb --- /dev/null +++ b/src/test/resources/ch_16_definite_assignment/sec_16_1_definite_assignment_and_expressions/sec_16_1_4_logical_complement_operator/SampleTest.java @@ -0,0 +1,9 @@ +package org.eolang.j2eo; + +public class SampleTest { + + public static void Main (String[] args) { + + } + +} diff --git a/src/test/resources/ch_16_definite_assignment/sec_16_1_definite_assignment_and_expressions/sec_16_1_5_ternary_operator/SampleTest.java b/src/test/resources/ch_16_definite_assignment/sec_16_1_definite_assignment_and_expressions/sec_16_1_5_ternary_operator/SampleTest.java new file mode 100644 index 00000000..2c897dfb --- /dev/null +++ b/src/test/resources/ch_16_definite_assignment/sec_16_1_definite_assignment_and_expressions/sec_16_1_5_ternary_operator/SampleTest.java @@ -0,0 +1,9 @@ +package org.eolang.j2eo; + +public class SampleTest { + + public static void Main (String[] args) { + + } + +} diff --git a/src/test/resources/ch_16_definite_assignment/sec_16_1_definite_assignment_and_expressions/sec_16_1_6_switch_expressions/SampleTest.java b/src/test/resources/ch_16_definite_assignment/sec_16_1_definite_assignment_and_expressions/sec_16_1_6_switch_expressions/SampleTest.java new file mode 100644 index 00000000..2c897dfb --- /dev/null +++ b/src/test/resources/ch_16_definite_assignment/sec_16_1_definite_assignment_and_expressions/sec_16_1_6_switch_expressions/SampleTest.java @@ -0,0 +1,9 @@ +package org.eolang.j2eo; + +public class SampleTest { + + public static void Main (String[] args) { + + } + +} diff --git a/src/test/resources/ch_16_definite_assignment/sec_16_1_definite_assignment_and_expressions/sec_16_1_7_other_expressions_of_type_boolean/SampleTest.java b/src/test/resources/ch_16_definite_assignment/sec_16_1_definite_assignment_and_expressions/sec_16_1_7_other_expressions_of_type_boolean/SampleTest.java new file mode 100644 index 00000000..2c897dfb --- /dev/null +++ b/src/test/resources/ch_16_definite_assignment/sec_16_1_definite_assignment_and_expressions/sec_16_1_7_other_expressions_of_type_boolean/SampleTest.java @@ -0,0 +1,9 @@ +package org.eolang.j2eo; + +public class SampleTest { + + public static void Main (String[] args) { + + } + +} diff --git a/src/test/resources/ch_16_definite_assignment/sec_16_1_definite_assignment_and_expressions/sec_16_1_8_assignment_expressions/SampleTest.java b/src/test/resources/ch_16_definite_assignment/sec_16_1_definite_assignment_and_expressions/sec_16_1_8_assignment_expressions/SampleTest.java new file mode 100644 index 00000000..2c897dfb --- /dev/null +++ b/src/test/resources/ch_16_definite_assignment/sec_16_1_definite_assignment_and_expressions/sec_16_1_8_assignment_expressions/SampleTest.java @@ -0,0 +1,9 @@ +package org.eolang.j2eo; + +public class SampleTest { + + public static void Main (String[] args) { + + } + +} diff --git a/src/test/resources/ch_16_definite_assignment/sec_16_1_definite_assignment_and_expressions/sec_16_1_9_increment_and_decrement_operators/SampleTest.java b/src/test/resources/ch_16_definite_assignment/sec_16_1_definite_assignment_and_expressions/sec_16_1_9_increment_and_decrement_operators/SampleTest.java new file mode 100644 index 00000000..2c897dfb --- /dev/null +++ b/src/test/resources/ch_16_definite_assignment/sec_16_1_definite_assignment_and_expressions/sec_16_1_9_increment_and_decrement_operators/SampleTest.java @@ -0,0 +1,9 @@ +package org.eolang.j2eo; + +public class SampleTest { + + public static void Main (String[] args) { + + } + +} diff --git a/src/test/resources/ch_16_definite_assignment/sec_16_2_definite_assignment_and_statements/sec_16_2_10_while_statements/SampleTest.java b/src/test/resources/ch_16_definite_assignment/sec_16_2_definite_assignment_and_statements/sec_16_2_10_while_statements/SampleTest.java new file mode 100644 index 00000000..2c897dfb --- /dev/null +++ b/src/test/resources/ch_16_definite_assignment/sec_16_2_definite_assignment_and_statements/sec_16_2_10_while_statements/SampleTest.java @@ -0,0 +1,9 @@ +package org.eolang.j2eo; + +public class SampleTest { + + public static void Main (String[] args) { + + } + +} diff --git a/src/test/resources/ch_16_definite_assignment/sec_16_2_definite_assignment_and_statements/sec_16_2_11_do_statements/SampleTest.java b/src/test/resources/ch_16_definite_assignment/sec_16_2_definite_assignment_and_statements/sec_16_2_11_do_statements/SampleTest.java new file mode 100644 index 00000000..2c897dfb --- /dev/null +++ b/src/test/resources/ch_16_definite_assignment/sec_16_2_definite_assignment_and_statements/sec_16_2_11_do_statements/SampleTest.java @@ -0,0 +1,9 @@ +package org.eolang.j2eo; + +public class SampleTest { + + public static void Main (String[] args) { + + } + +} diff --git a/src/test/resources/ch_16_definite_assignment/sec_16_2_definite_assignment_and_statements/sec_16_2_12_for_statements/sec_16_2_12_1_initialization_part_of_for_statement/SampleTest.java b/src/test/resources/ch_16_definite_assignment/sec_16_2_definite_assignment_and_statements/sec_16_2_12_for_statements/sec_16_2_12_1_initialization_part_of_for_statement/SampleTest.java new file mode 100644 index 00000000..2c897dfb --- /dev/null +++ b/src/test/resources/ch_16_definite_assignment/sec_16_2_definite_assignment_and_statements/sec_16_2_12_for_statements/sec_16_2_12_1_initialization_part_of_for_statement/SampleTest.java @@ -0,0 +1,9 @@ +package org.eolang.j2eo; + +public class SampleTest { + + public static void Main (String[] args) { + + } + +} diff --git a/src/test/resources/ch_16_definite_assignment/sec_16_2_definite_assignment_and_statements/sec_16_2_12_for_statements/sec_16_2_12_2_incrementation_part_of_for_statement/SampleTest.java b/src/test/resources/ch_16_definite_assignment/sec_16_2_definite_assignment_and_statements/sec_16_2_12_for_statements/sec_16_2_12_2_incrementation_part_of_for_statement/SampleTest.java new file mode 100644 index 00000000..2c897dfb --- /dev/null +++ b/src/test/resources/ch_16_definite_assignment/sec_16_2_definite_assignment_and_statements/sec_16_2_12_for_statements/sec_16_2_12_2_incrementation_part_of_for_statement/SampleTest.java @@ -0,0 +1,9 @@ +package org.eolang.j2eo; + +public class SampleTest { + + public static void Main (String[] args) { + + } + +} diff --git a/src/test/resources/ch_16_definite_assignment/sec_16_2_definite_assignment_and_statements/sec_16_2_13_break_yield_continue_return_and_throw_statements/SampleTest.java b/src/test/resources/ch_16_definite_assignment/sec_16_2_definite_assignment_and_statements/sec_16_2_13_break_yield_continue_return_and_throw_statements/SampleTest.java new file mode 100644 index 00000000..2c897dfb --- /dev/null +++ b/src/test/resources/ch_16_definite_assignment/sec_16_2_definite_assignment_and_statements/sec_16_2_13_break_yield_continue_return_and_throw_statements/SampleTest.java @@ -0,0 +1,9 @@ +package org.eolang.j2eo; + +public class SampleTest { + + public static void Main (String[] args) { + + } + +} diff --git a/src/test/resources/ch_16_definite_assignment/sec_16_2_definite_assignment_and_statements/sec_16_2_14_synchronized_statements/SampleTest.java b/src/test/resources/ch_16_definite_assignment/sec_16_2_definite_assignment_and_statements/sec_16_2_14_synchronized_statements/SampleTest.java new file mode 100644 index 00000000..2c897dfb --- /dev/null +++ b/src/test/resources/ch_16_definite_assignment/sec_16_2_definite_assignment_and_statements/sec_16_2_14_synchronized_statements/SampleTest.java @@ -0,0 +1,9 @@ +package org.eolang.j2eo; + +public class SampleTest { + + public static void Main (String[] args) { + + } + +} diff --git a/src/test/resources/ch_16_definite_assignment/sec_16_2_definite_assignment_and_statements/sec_16_2_15_try_statements/SampleTest.java b/src/test/resources/ch_16_definite_assignment/sec_16_2_definite_assignment_and_statements/sec_16_2_15_try_statements/SampleTest.java new file mode 100644 index 00000000..2c897dfb --- /dev/null +++ b/src/test/resources/ch_16_definite_assignment/sec_16_2_definite_assignment_and_statements/sec_16_2_15_try_statements/SampleTest.java @@ -0,0 +1,9 @@ +package org.eolang.j2eo; + +public class SampleTest { + + public static void Main (String[] args) { + + } + +} diff --git a/src/test/resources/ch_16_definite_assignment/sec_16_2_definite_assignment_and_statements/sec_16_2_1_empty_statements/SampleTest.java b/src/test/resources/ch_16_definite_assignment/sec_16_2_definite_assignment_and_statements/sec_16_2_1_empty_statements/SampleTest.java new file mode 100644 index 00000000..2c897dfb --- /dev/null +++ b/src/test/resources/ch_16_definite_assignment/sec_16_2_definite_assignment_and_statements/sec_16_2_1_empty_statements/SampleTest.java @@ -0,0 +1,9 @@ +package org.eolang.j2eo; + +public class SampleTest { + + public static void Main (String[] args) { + + } + +} diff --git a/src/test/resources/ch_16_definite_assignment/sec_16_2_definite_assignment_and_statements/sec_16_2_2_blocks/SampleTest.java b/src/test/resources/ch_16_definite_assignment/sec_16_2_definite_assignment_and_statements/sec_16_2_2_blocks/SampleTest.java new file mode 100644 index 00000000..2c897dfb --- /dev/null +++ b/src/test/resources/ch_16_definite_assignment/sec_16_2_definite_assignment_and_statements/sec_16_2_2_blocks/SampleTest.java @@ -0,0 +1,9 @@ +package org.eolang.j2eo; + +public class SampleTest { + + public static void Main (String[] args) { + + } + +} diff --git a/src/test/resources/ch_16_definite_assignment/sec_16_2_definite_assignment_and_statements/sec_16_2_3_local_class_and_interface_declarations/SampleTest.java b/src/test/resources/ch_16_definite_assignment/sec_16_2_definite_assignment_and_statements/sec_16_2_3_local_class_and_interface_declarations/SampleTest.java new file mode 100644 index 00000000..2c897dfb --- /dev/null +++ b/src/test/resources/ch_16_definite_assignment/sec_16_2_definite_assignment_and_statements/sec_16_2_3_local_class_and_interface_declarations/SampleTest.java @@ -0,0 +1,9 @@ +package org.eolang.j2eo; + +public class SampleTest { + + public static void Main (String[] args) { + + } + +} diff --git a/src/test/resources/ch_16_definite_assignment/sec_16_2_definite_assignment_and_statements/sec_16_2_4_local_variable_declaration_statements/SampleTest.java b/src/test/resources/ch_16_definite_assignment/sec_16_2_definite_assignment_and_statements/sec_16_2_4_local_variable_declaration_statements/SampleTest.java new file mode 100644 index 00000000..2c897dfb --- /dev/null +++ b/src/test/resources/ch_16_definite_assignment/sec_16_2_definite_assignment_and_statements/sec_16_2_4_local_variable_declaration_statements/SampleTest.java @@ -0,0 +1,9 @@ +package org.eolang.j2eo; + +public class SampleTest { + + public static void Main (String[] args) { + + } + +} diff --git a/src/test/resources/ch_16_definite_assignment/sec_16_2_definite_assignment_and_statements/sec_16_2_5_labeled_statements/SampleTest.java b/src/test/resources/ch_16_definite_assignment/sec_16_2_definite_assignment_and_statements/sec_16_2_5_labeled_statements/SampleTest.java new file mode 100644 index 00000000..2c897dfb --- /dev/null +++ b/src/test/resources/ch_16_definite_assignment/sec_16_2_definite_assignment_and_statements/sec_16_2_5_labeled_statements/SampleTest.java @@ -0,0 +1,9 @@ +package org.eolang.j2eo; + +public class SampleTest { + + public static void Main (String[] args) { + + } + +} diff --git a/src/test/resources/ch_16_definite_assignment/sec_16_2_definite_assignment_and_statements/sec_16_2_6_expression_statements/SampleTest.java b/src/test/resources/ch_16_definite_assignment/sec_16_2_definite_assignment_and_statements/sec_16_2_6_expression_statements/SampleTest.java new file mode 100644 index 00000000..2c897dfb --- /dev/null +++ b/src/test/resources/ch_16_definite_assignment/sec_16_2_definite_assignment_and_statements/sec_16_2_6_expression_statements/SampleTest.java @@ -0,0 +1,9 @@ +package org.eolang.j2eo; + +public class SampleTest { + + public static void Main (String[] args) { + + } + +} diff --git a/src/test/resources/ch_16_definite_assignment/sec_16_2_definite_assignment_and_statements/sec_16_2_7_if_statements/SampleTest.java b/src/test/resources/ch_16_definite_assignment/sec_16_2_definite_assignment_and_statements/sec_16_2_7_if_statements/SampleTest.java new file mode 100644 index 00000000..2c897dfb --- /dev/null +++ b/src/test/resources/ch_16_definite_assignment/sec_16_2_definite_assignment_and_statements/sec_16_2_7_if_statements/SampleTest.java @@ -0,0 +1,9 @@ +package org.eolang.j2eo; + +public class SampleTest { + + public static void Main (String[] args) { + + } + +} diff --git a/src/test/resources/ch_16_definite_assignment/sec_16_2_definite_assignment_and_statements/sec_16_2_8_assert_statements/SampleTest.java b/src/test/resources/ch_16_definite_assignment/sec_16_2_definite_assignment_and_statements/sec_16_2_8_assert_statements/SampleTest.java new file mode 100644 index 00000000..2c897dfb --- /dev/null +++ b/src/test/resources/ch_16_definite_assignment/sec_16_2_definite_assignment_and_statements/sec_16_2_8_assert_statements/SampleTest.java @@ -0,0 +1,9 @@ +package org.eolang.j2eo; + +public class SampleTest { + + public static void Main (String[] args) { + + } + +} diff --git a/src/test/resources/ch_16_definite_assignment/sec_16_2_definite_assignment_and_statements/sec_16_2_9_switch_statements/SampleTest.java b/src/test/resources/ch_16_definite_assignment/sec_16_2_definite_assignment_and_statements/sec_16_2_9_switch_statements/SampleTest.java new file mode 100644 index 00000000..2c897dfb --- /dev/null +++ b/src/test/resources/ch_16_definite_assignment/sec_16_2_definite_assignment_and_statements/sec_16_2_9_switch_statements/SampleTest.java @@ -0,0 +1,9 @@ +package org.eolang.j2eo; + +public class SampleTest { + + public static void Main (String[] args) { + + } + +} diff --git a/src/test/resources/ch_16_definite_assignment/sec_16_3_definite_assignment_and_parameters/SampleTest.java b/src/test/resources/ch_16_definite_assignment/sec_16_3_definite_assignment_and_parameters/SampleTest.java new file mode 100644 index 00000000..2c897dfb --- /dev/null +++ b/src/test/resources/ch_16_definite_assignment/sec_16_3_definite_assignment_and_parameters/SampleTest.java @@ -0,0 +1,9 @@ +package org.eolang.j2eo; + +public class SampleTest { + + public static void Main (String[] args) { + + } + +} diff --git a/src/test/resources/ch_16_definite_assignment/sec_16_4_definite_assignment_and_array_initializers/SampleTest.java b/src/test/resources/ch_16_definite_assignment/sec_16_4_definite_assignment_and_array_initializers/SampleTest.java new file mode 100644 index 00000000..2c897dfb --- /dev/null +++ b/src/test/resources/ch_16_definite_assignment/sec_16_4_definite_assignment_and_array_initializers/SampleTest.java @@ -0,0 +1,9 @@ +package org.eolang.j2eo; + +public class SampleTest { + + public static void Main (String[] args) { + + } + +} diff --git a/src/test/resources/ch_16_definite_assignment/sec_16_5_definite_assignment_and_enum_constants/SampleTest.java b/src/test/resources/ch_16_definite_assignment/sec_16_5_definite_assignment_and_enum_constants/SampleTest.java new file mode 100644 index 00000000..2c897dfb --- /dev/null +++ b/src/test/resources/ch_16_definite_assignment/sec_16_5_definite_assignment_and_enum_constants/SampleTest.java @@ -0,0 +1,9 @@ +package org.eolang.j2eo; + +public class SampleTest { + + public static void Main (String[] args) { + + } + +} diff --git a/src/test/resources/ch_16_definite_assignment/sec_16_6_definite_assignment_and_anonymous_classes/SampleTest.java b/src/test/resources/ch_16_definite_assignment/sec_16_6_definite_assignment_and_anonymous_classes/SampleTest.java new file mode 100644 index 00000000..2c897dfb --- /dev/null +++ b/src/test/resources/ch_16_definite_assignment/sec_16_6_definite_assignment_and_anonymous_classes/SampleTest.java @@ -0,0 +1,9 @@ +package org.eolang.j2eo; + +public class SampleTest { + + public static void Main (String[] args) { + + } + +} diff --git a/src/test/resources/ch_16_definite_assignment/sec_16_7_definite_assignment_and_member_classes_and_interfaces/SampleTest.java b/src/test/resources/ch_16_definite_assignment/sec_16_7_definite_assignment_and_member_classes_and_interfaces/SampleTest.java new file mode 100644 index 00000000..2c897dfb --- /dev/null +++ b/src/test/resources/ch_16_definite_assignment/sec_16_7_definite_assignment_and_member_classes_and_interfaces/SampleTest.java @@ -0,0 +1,9 @@ +package org.eolang.j2eo; + +public class SampleTest { + + public static void Main (String[] args) { + + } + +} diff --git a/src/test/resources/ch_16_definite_assignment/sec_16_8_definite_assignment_and_static_initializers/SampleTest.java b/src/test/resources/ch_16_definite_assignment/sec_16_8_definite_assignment_and_static_initializers/SampleTest.java new file mode 100644 index 00000000..2c897dfb --- /dev/null +++ b/src/test/resources/ch_16_definite_assignment/sec_16_8_definite_assignment_and_static_initializers/SampleTest.java @@ -0,0 +1,9 @@ +package org.eolang.j2eo; + +public class SampleTest { + + public static void Main (String[] args) { + + } + +} diff --git a/src/test/resources/ch_16_definite_assignment/sec_16_9_definite_assignment_constructors_and_instance_initializers/SampleTest.java b/src/test/resources/ch_16_definite_assignment/sec_16_9_definite_assignment_constructors_and_instance_initializers/SampleTest.java new file mode 100644 index 00000000..2c897dfb --- /dev/null +++ b/src/test/resources/ch_16_definite_assignment/sec_16_9_definite_assignment_constructors_and_instance_initializers/SampleTest.java @@ -0,0 +1,9 @@ +package org.eolang.j2eo; + +public class SampleTest { + + public static void Main (String[] args) { + + } + +} diff --git a/src/test/resources/ch_17_threads_and_locks/sec_17_1_synchronization/SampleTest.java b/src/test/resources/ch_17_threads_and_locks/sec_17_1_synchronization/SampleTest.java new file mode 100644 index 00000000..2c897dfb --- /dev/null +++ b/src/test/resources/ch_17_threads_and_locks/sec_17_1_synchronization/SampleTest.java @@ -0,0 +1,9 @@ +package org.eolang.j2eo; + +public class SampleTest { + + public static void Main (String[] args) { + + } + +} diff --git a/src/test/resources/ch_17_threads_and_locks/sec_17_2_wait_sets_and_notification/sec_17_2_1_wait/SampleTest.java b/src/test/resources/ch_17_threads_and_locks/sec_17_2_wait_sets_and_notification/sec_17_2_1_wait/SampleTest.java new file mode 100644 index 00000000..2c897dfb --- /dev/null +++ b/src/test/resources/ch_17_threads_and_locks/sec_17_2_wait_sets_and_notification/sec_17_2_1_wait/SampleTest.java @@ -0,0 +1,9 @@ +package org.eolang.j2eo; + +public class SampleTest { + + public static void Main (String[] args) { + + } + +} diff --git a/src/test/resources/ch_17_threads_and_locks/sec_17_2_wait_sets_and_notification/sec_17_2_2_notification/SampleTest.java b/src/test/resources/ch_17_threads_and_locks/sec_17_2_wait_sets_and_notification/sec_17_2_2_notification/SampleTest.java new file mode 100644 index 00000000..2c897dfb --- /dev/null +++ b/src/test/resources/ch_17_threads_and_locks/sec_17_2_wait_sets_and_notification/sec_17_2_2_notification/SampleTest.java @@ -0,0 +1,9 @@ +package org.eolang.j2eo; + +public class SampleTest { + + public static void Main (String[] args) { + + } + +} diff --git a/src/test/resources/ch_17_threads_and_locks/sec_17_2_wait_sets_and_notification/sec_17_2_3_interruptions/SampleTest.java b/src/test/resources/ch_17_threads_and_locks/sec_17_2_wait_sets_and_notification/sec_17_2_3_interruptions/SampleTest.java new file mode 100644 index 00000000..2c897dfb --- /dev/null +++ b/src/test/resources/ch_17_threads_and_locks/sec_17_2_wait_sets_and_notification/sec_17_2_3_interruptions/SampleTest.java @@ -0,0 +1,9 @@ +package org.eolang.j2eo; + +public class SampleTest { + + public static void Main (String[] args) { + + } + +} diff --git a/src/test/resources/ch_17_threads_and_locks/sec_17_2_wait_sets_and_notification/sec_17_2_4_interactions_of_waits_notifications_and_interruptions/SampleTest.java b/src/test/resources/ch_17_threads_and_locks/sec_17_2_wait_sets_and_notification/sec_17_2_4_interactions_of_waits_notifications_and_interruptions/SampleTest.java new file mode 100644 index 00000000..2c897dfb --- /dev/null +++ b/src/test/resources/ch_17_threads_and_locks/sec_17_2_wait_sets_and_notification/sec_17_2_4_interactions_of_waits_notifications_and_interruptions/SampleTest.java @@ -0,0 +1,9 @@ +package org.eolang.j2eo; + +public class SampleTest { + + public static void Main (String[] args) { + + } + +} diff --git a/src/test/resources/ch_17_threads_and_locks/sec_17_3_sleep_and_yield/SampleTest.java b/src/test/resources/ch_17_threads_and_locks/sec_17_3_sleep_and_yield/SampleTest.java new file mode 100644 index 00000000..2c897dfb --- /dev/null +++ b/src/test/resources/ch_17_threads_and_locks/sec_17_3_sleep_and_yield/SampleTest.java @@ -0,0 +1,9 @@ +package org.eolang.j2eo; + +public class SampleTest { + + public static void Main (String[] args) { + + } + +} diff --git a/src/test/resources/ch_17_threads_and_locks/sec_17_4_memory_model/SampleTest.java b/src/test/resources/ch_17_threads_and_locks/sec_17_4_memory_model/SampleTest.java new file mode 100644 index 00000000..2c897dfb --- /dev/null +++ b/src/test/resources/ch_17_threads_and_locks/sec_17_4_memory_model/SampleTest.java @@ -0,0 +1,9 @@ +package org.eolang.j2eo; + +public class SampleTest { + + public static void Main (String[] args) { + + } + +} diff --git a/src/test/resources/ch_17_threads_and_locks/sec_17_5_final_field_semantics/SampleTest.java b/src/test/resources/ch_17_threads_and_locks/sec_17_5_final_field_semantics/SampleTest.java new file mode 100644 index 00000000..2c897dfb --- /dev/null +++ b/src/test/resources/ch_17_threads_and_locks/sec_17_5_final_field_semantics/SampleTest.java @@ -0,0 +1,9 @@ +package org.eolang.j2eo; + +public class SampleTest { + + public static void Main (String[] args) { + + } + +} diff --git a/src/test/resources/ch_17_threads_and_locks/sec_17_6_word_tearing/SampleTest.java b/src/test/resources/ch_17_threads_and_locks/sec_17_6_word_tearing/SampleTest.java new file mode 100644 index 00000000..2c897dfb --- /dev/null +++ b/src/test/resources/ch_17_threads_and_locks/sec_17_6_word_tearing/SampleTest.java @@ -0,0 +1,9 @@ +package org.eolang.j2eo; + +public class SampleTest { + + public static void Main (String[] args) { + + } + +} diff --git a/src/test/resources/ch_17_threads_and_locks/sec_17_7_non_atomic_treatment_of_double_and_long/SampleTest.java b/src/test/resources/ch_17_threads_and_locks/sec_17_7_non_atomic_treatment_of_double_and_long/SampleTest.java new file mode 100644 index 00000000..2c897dfb --- /dev/null +++ b/src/test/resources/ch_17_threads_and_locks/sec_17_7_non_atomic_treatment_of_double_and_long/SampleTest.java @@ -0,0 +1,9 @@ +package org.eolang.j2eo; + +public class SampleTest { + + public static void Main (String[] args) { + + } + +} diff --git a/src/test/resources/ch_18_type_inference/sec_18_2_reduction/sec_18_2_1_expression_compatibility_constraints/SampleTest.java b/src/test/resources/ch_18_type_inference/sec_18_2_reduction/sec_18_2_1_expression_compatibility_constraints/SampleTest.java new file mode 100644 index 00000000..2c897dfb --- /dev/null +++ b/src/test/resources/ch_18_type_inference/sec_18_2_reduction/sec_18_2_1_expression_compatibility_constraints/SampleTest.java @@ -0,0 +1,9 @@ +package org.eolang.j2eo; + +public class SampleTest { + + public static void Main (String[] args) { + + } + +} diff --git a/src/test/resources/ch_18_type_inference/sec_18_2_reduction/sec_18_2_2_type_compatibility_constraints/SampleTest.java b/src/test/resources/ch_18_type_inference/sec_18_2_reduction/sec_18_2_2_type_compatibility_constraints/SampleTest.java new file mode 100644 index 00000000..2c897dfb --- /dev/null +++ b/src/test/resources/ch_18_type_inference/sec_18_2_reduction/sec_18_2_2_type_compatibility_constraints/SampleTest.java @@ -0,0 +1,9 @@ +package org.eolang.j2eo; + +public class SampleTest { + + public static void Main (String[] args) { + + } + +} diff --git a/src/test/resources/ch_18_type_inference/sec_18_2_reduction/sec_18_2_3_subtyping_constraints/SampleTest.java b/src/test/resources/ch_18_type_inference/sec_18_2_reduction/sec_18_2_3_subtyping_constraints/SampleTest.java new file mode 100644 index 00000000..2c897dfb --- /dev/null +++ b/src/test/resources/ch_18_type_inference/sec_18_2_reduction/sec_18_2_3_subtyping_constraints/SampleTest.java @@ -0,0 +1,9 @@ +package org.eolang.j2eo; + +public class SampleTest { + + public static void Main (String[] args) { + + } + +} diff --git a/src/test/resources/ch_18_type_inference/sec_18_2_reduction/sec_18_2_4_type_equality_constraints/SampleTest.java b/src/test/resources/ch_18_type_inference/sec_18_2_reduction/sec_18_2_4_type_equality_constraints/SampleTest.java new file mode 100644 index 00000000..2c897dfb --- /dev/null +++ b/src/test/resources/ch_18_type_inference/sec_18_2_reduction/sec_18_2_4_type_equality_constraints/SampleTest.java @@ -0,0 +1,9 @@ +package org.eolang.j2eo; + +public class SampleTest { + + public static void Main (String[] args) { + + } + +} diff --git a/src/test/resources/ch_18_type_inference/sec_18_2_reduction/sec_18_2_5_checked_exception_constraints/SampleTest.java b/src/test/resources/ch_18_type_inference/sec_18_2_reduction/sec_18_2_5_checked_exception_constraints/SampleTest.java new file mode 100644 index 00000000..2c897dfb --- /dev/null +++ b/src/test/resources/ch_18_type_inference/sec_18_2_reduction/sec_18_2_5_checked_exception_constraints/SampleTest.java @@ -0,0 +1,9 @@ +package org.eolang.j2eo; + +public class SampleTest { + + public static void Main (String[] args) { + + } + +} diff --git a/src/test/resources/ch_18_type_inference/sec_18_3_incorporation/sec_18_3_1_complementary_pairs_of_bounds/SampleTest.java b/src/test/resources/ch_18_type_inference/sec_18_3_incorporation/sec_18_3_1_complementary_pairs_of_bounds/SampleTest.java new file mode 100644 index 00000000..2c897dfb --- /dev/null +++ b/src/test/resources/ch_18_type_inference/sec_18_3_incorporation/sec_18_3_1_complementary_pairs_of_bounds/SampleTest.java @@ -0,0 +1,9 @@ +package org.eolang.j2eo; + +public class SampleTest { + + public static void Main (String[] args) { + + } + +} diff --git a/src/test/resources/ch_18_type_inference/sec_18_3_incorporation/sec_18_3_2_bounds_involving_capture_conversion/SampleTest.java b/src/test/resources/ch_18_type_inference/sec_18_3_incorporation/sec_18_3_2_bounds_involving_capture_conversion/SampleTest.java new file mode 100644 index 00000000..2c897dfb --- /dev/null +++ b/src/test/resources/ch_18_type_inference/sec_18_3_incorporation/sec_18_3_2_bounds_involving_capture_conversion/SampleTest.java @@ -0,0 +1,9 @@ +package org.eolang.j2eo; + +public class SampleTest { + + public static void Main (String[] args) { + + } + +} diff --git a/src/test/resources/ch_18_type_inference/sec_18_4_resolution/SampleTest.java b/src/test/resources/ch_18_type_inference/sec_18_4_resolution/SampleTest.java new file mode 100644 index 00000000..2c897dfb --- /dev/null +++ b/src/test/resources/ch_18_type_inference/sec_18_4_resolution/SampleTest.java @@ -0,0 +1,9 @@ +package org.eolang.j2eo; + +public class SampleTest { + + public static void Main (String[] args) { + + } + +} diff --git a/src/test/resources/ch_18_type_inference/sec_18_5_uses_of_inference/sec_18_5_1_invocation_applicability_inference/SampleTest.java b/src/test/resources/ch_18_type_inference/sec_18_5_uses_of_inference/sec_18_5_1_invocation_applicability_inference/SampleTest.java new file mode 100644 index 00000000..2c897dfb --- /dev/null +++ b/src/test/resources/ch_18_type_inference/sec_18_5_uses_of_inference/sec_18_5_1_invocation_applicability_inference/SampleTest.java @@ -0,0 +1,9 @@ +package org.eolang.j2eo; + +public class SampleTest { + + public static void Main (String[] args) { + + } + +} diff --git a/src/test/resources/ch_18_type_inference/sec_18_5_uses_of_inference/sec_18_5_2_invocation_type_inference/sec_18_5_2_1_poly_method_invocation_compatibility/SampleTest.java b/src/test/resources/ch_18_type_inference/sec_18_5_uses_of_inference/sec_18_5_2_invocation_type_inference/sec_18_5_2_1_poly_method_invocation_compatibility/SampleTest.java new file mode 100644 index 00000000..2c897dfb --- /dev/null +++ b/src/test/resources/ch_18_type_inference/sec_18_5_uses_of_inference/sec_18_5_2_invocation_type_inference/sec_18_5_2_1_poly_method_invocation_compatibility/SampleTest.java @@ -0,0 +1,9 @@ +package org.eolang.j2eo; + +public class SampleTest { + + public static void Main (String[] args) { + + } + +} diff --git a/src/test/resources/ch_18_type_inference/sec_18_5_uses_of_inference/sec_18_5_2_invocation_type_inference/sec_18_5_2_2_additional_argument_constraints/SampleTest.java b/src/test/resources/ch_18_type_inference/sec_18_5_uses_of_inference/sec_18_5_2_invocation_type_inference/sec_18_5_2_2_additional_argument_constraints/SampleTest.java new file mode 100644 index 00000000..2c897dfb --- /dev/null +++ b/src/test/resources/ch_18_type_inference/sec_18_5_uses_of_inference/sec_18_5_2_invocation_type_inference/sec_18_5_2_2_additional_argument_constraints/SampleTest.java @@ -0,0 +1,9 @@ +package org.eolang.j2eo; + +public class SampleTest { + + public static void Main (String[] args) { + + } + +} diff --git a/src/test/resources/ch_18_type_inference/sec_18_5_uses_of_inference/sec_18_5_3_functional_interface_parameterization_inference/SampleTest.java b/src/test/resources/ch_18_type_inference/sec_18_5_uses_of_inference/sec_18_5_3_functional_interface_parameterization_inference/SampleTest.java new file mode 100644 index 00000000..2c897dfb --- /dev/null +++ b/src/test/resources/ch_18_type_inference/sec_18_5_uses_of_inference/sec_18_5_3_functional_interface_parameterization_inference/SampleTest.java @@ -0,0 +1,9 @@ +package org.eolang.j2eo; + +public class SampleTest { + + public static void Main (String[] args) { + + } + +} diff --git a/src/test/resources/ch_18_type_inference/sec_18_5_uses_of_inference/sec_18_5_4_more_specific_method_inference/SampleTest.java b/src/test/resources/ch_18_type_inference/sec_18_5_uses_of_inference/sec_18_5_4_more_specific_method_inference/SampleTest.java new file mode 100644 index 00000000..2c897dfb --- /dev/null +++ b/src/test/resources/ch_18_type_inference/sec_18_5_uses_of_inference/sec_18_5_4_more_specific_method_inference/SampleTest.java @@ -0,0 +1,9 @@ +package org.eolang.j2eo; + +public class SampleTest { + + public static void Main (String[] args) { + + } + +} diff --git a/src/test/resources/ch_4_types_values_variables/sec_4_10_subtyping/sec_4_10_1_subtyping_among_primitive_types/SampleTest.java b/src/test/resources/ch_4_types_values_variables/sec_4_10_subtyping/sec_4_10_1_subtyping_among_primitive_types/SampleTest.java new file mode 100644 index 00000000..2c897dfb --- /dev/null +++ b/src/test/resources/ch_4_types_values_variables/sec_4_10_subtyping/sec_4_10_1_subtyping_among_primitive_types/SampleTest.java @@ -0,0 +1,9 @@ +package org.eolang.j2eo; + +public class SampleTest { + + public static void Main (String[] args) { + + } + +} diff --git a/src/test/resources/ch_4_types_values_variables/sec_4_10_subtyping/sec_4_10_2_subtyping_among_class_and_interface_types/SampleTest.java b/src/test/resources/ch_4_types_values_variables/sec_4_10_subtyping/sec_4_10_2_subtyping_among_class_and_interface_types/SampleTest.java new file mode 100644 index 00000000..2c897dfb --- /dev/null +++ b/src/test/resources/ch_4_types_values_variables/sec_4_10_subtyping/sec_4_10_2_subtyping_among_class_and_interface_types/SampleTest.java @@ -0,0 +1,9 @@ +package org.eolang.j2eo; + +public class SampleTest { + + public static void Main (String[] args) { + + } + +} diff --git a/src/test/resources/ch_4_types_values_variables/sec_4_10_subtyping/sec_4_10_3_subtyping_among_array_types/SampleTest.java b/src/test/resources/ch_4_types_values_variables/sec_4_10_subtyping/sec_4_10_3_subtyping_among_array_types/SampleTest.java new file mode 100644 index 00000000..2c897dfb --- /dev/null +++ b/src/test/resources/ch_4_types_values_variables/sec_4_10_subtyping/sec_4_10_3_subtyping_among_array_types/SampleTest.java @@ -0,0 +1,9 @@ +package org.eolang.j2eo; + +public class SampleTest { + + public static void Main (String[] args) { + + } + +} diff --git a/src/test/resources/ch_4_types_values_variables/sec_4_10_subtyping/sec_4_10_4_least_upper_bound/SampleTest.java b/src/test/resources/ch_4_types_values_variables/sec_4_10_subtyping/sec_4_10_4_least_upper_bound/SampleTest.java new file mode 100644 index 00000000..2c897dfb --- /dev/null +++ b/src/test/resources/ch_4_types_values_variables/sec_4_10_subtyping/sec_4_10_4_least_upper_bound/SampleTest.java @@ -0,0 +1,9 @@ +package org.eolang.j2eo; + +public class SampleTest { + + public static void Main (String[] args) { + + } + +} diff --git a/src/test/resources/ch_4_types_values_variables/sec_4_10_subtyping/sec_4_10_5_type_projections/SampleTest.java b/src/test/resources/ch_4_types_values_variables/sec_4_10_subtyping/sec_4_10_5_type_projections/SampleTest.java new file mode 100644 index 00000000..2c897dfb --- /dev/null +++ b/src/test/resources/ch_4_types_values_variables/sec_4_10_subtyping/sec_4_10_5_type_projections/SampleTest.java @@ -0,0 +1,9 @@ +package org.eolang.j2eo; + +public class SampleTest { + + public static void Main (String[] args) { + + } + +} diff --git a/src/test/resources/ch_4_types_values_variables/sec_4_12_variables/sec_4_12_1_vars_of_primitive_type/SampleTest.java b/src/test/resources/ch_4_types_values_variables/sec_4_12_variables/sec_4_12_1_vars_of_primitive_type/SampleTest.java new file mode 100644 index 00000000..2c897dfb --- /dev/null +++ b/src/test/resources/ch_4_types_values_variables/sec_4_12_variables/sec_4_12_1_vars_of_primitive_type/SampleTest.java @@ -0,0 +1,9 @@ +package org.eolang.j2eo; + +public class SampleTest { + + public static void Main (String[] args) { + + } + +} diff --git a/src/test/resources/ch_4_types_values_variables/sec_4_12_variables/sec_4_12_2_vars_of_reference_type/SampleTest.java b/src/test/resources/ch_4_types_values_variables/sec_4_12_variables/sec_4_12_2_vars_of_reference_type/SampleTest.java new file mode 100644 index 00000000..2c897dfb --- /dev/null +++ b/src/test/resources/ch_4_types_values_variables/sec_4_12_variables/sec_4_12_2_vars_of_reference_type/SampleTest.java @@ -0,0 +1,9 @@ +package org.eolang.j2eo; + +public class SampleTest { + + public static void Main (String[] args) { + + } + +} diff --git a/src/test/resources/ch_4_types_values_variables/sec_4_12_variables/sec_4_12_4_final_variables/SampleTest.java b/src/test/resources/ch_4_types_values_variables/sec_4_12_variables/sec_4_12_4_final_variables/SampleTest.java new file mode 100644 index 00000000..2c897dfb --- /dev/null +++ b/src/test/resources/ch_4_types_values_variables/sec_4_12_variables/sec_4_12_4_final_variables/SampleTest.java @@ -0,0 +1,9 @@ +package org.eolang.j2eo; + +public class SampleTest { + + public static void Main (String[] args) { + + } + +} diff --git a/src/test/resources/ch_4_types_values_variables/sec_4_12_variables/sec_4_12_5_initial_values_of_vars/SampleTest.java b/src/test/resources/ch_4_types_values_variables/sec_4_12_variables/sec_4_12_5_initial_values_of_vars/SampleTest.java new file mode 100644 index 00000000..2c897dfb --- /dev/null +++ b/src/test/resources/ch_4_types_values_variables/sec_4_12_variables/sec_4_12_5_initial_values_of_vars/SampleTest.java @@ -0,0 +1,9 @@ +package org.eolang.j2eo; + +public class SampleTest { + + public static void Main (String[] args) { + + } + +} diff --git a/src/test/resources/ch_4_types_values_variables/sec_4_2_primitive_types_and_values/sec_4_2_1_integral_types_and_values/SampleTest.java b/src/test/resources/ch_4_types_values_variables/sec_4_2_primitive_types_and_values/sec_4_2_1_integral_types_and_values/SampleTest.java new file mode 100644 index 00000000..2c897dfb --- /dev/null +++ b/src/test/resources/ch_4_types_values_variables/sec_4_2_primitive_types_and_values/sec_4_2_1_integral_types_and_values/SampleTest.java @@ -0,0 +1,9 @@ +package org.eolang.j2eo; + +public class SampleTest { + + public static void Main (String[] args) { + + } + +} diff --git a/src/test/resources/ch_4_types_values_variables/sec_4_2_primitive_types_and_values/sec_4_2_2_integer_operations/SampleTest.java b/src/test/resources/ch_4_types_values_variables/sec_4_2_primitive_types_and_values/sec_4_2_2_integer_operations/SampleTest.java new file mode 100644 index 00000000..2c897dfb --- /dev/null +++ b/src/test/resources/ch_4_types_values_variables/sec_4_2_primitive_types_and_values/sec_4_2_2_integer_operations/SampleTest.java @@ -0,0 +1,9 @@ +package org.eolang.j2eo; + +public class SampleTest { + + public static void Main (String[] args) { + + } + +} diff --git a/src/test/resources/ch_4_types_values_variables/sec_4_2_primitive_types_and_values/sec_4_2_3_floating_point_types_formats_and_values/SampleTest.java b/src/test/resources/ch_4_types_values_variables/sec_4_2_primitive_types_and_values/sec_4_2_3_floating_point_types_formats_and_values/SampleTest.java new file mode 100644 index 00000000..2c897dfb --- /dev/null +++ b/src/test/resources/ch_4_types_values_variables/sec_4_2_primitive_types_and_values/sec_4_2_3_floating_point_types_formats_and_values/SampleTest.java @@ -0,0 +1,9 @@ +package org.eolang.j2eo; + +public class SampleTest { + + public static void Main (String[] args) { + + } + +} diff --git a/src/test/resources/ch_4_types_values_variables/sec_4_2_primitive_types_and_values/sec_4_2_4_floating_point_operations/SampleTest.java b/src/test/resources/ch_4_types_values_variables/sec_4_2_primitive_types_and_values/sec_4_2_4_floating_point_operations/SampleTest.java new file mode 100644 index 00000000..2c897dfb --- /dev/null +++ b/src/test/resources/ch_4_types_values_variables/sec_4_2_primitive_types_and_values/sec_4_2_4_floating_point_operations/SampleTest.java @@ -0,0 +1,9 @@ +package org.eolang.j2eo; + +public class SampleTest { + + public static void Main (String[] args) { + + } + +} diff --git a/src/test/resources/ch_4_types_values_variables/sec_4_2_primitive_types_and_values/sec_4_2_5_boolean_type_and_values/SampleTest.java b/src/test/resources/ch_4_types_values_variables/sec_4_2_primitive_types_and_values/sec_4_2_5_boolean_type_and_values/SampleTest.java new file mode 100644 index 00000000..2c897dfb --- /dev/null +++ b/src/test/resources/ch_4_types_values_variables/sec_4_2_primitive_types_and_values/sec_4_2_5_boolean_type_and_values/SampleTest.java @@ -0,0 +1,9 @@ +package org.eolang.j2eo; + +public class SampleTest { + + public static void Main (String[] args) { + + } + +} diff --git a/src/test/resources/ch_4_types_values_variables/sec_4_3_reference_types_and_values/sec_4_3_1_objects/SampleTest.java b/src/test/resources/ch_4_types_values_variables/sec_4_3_reference_types_and_values/sec_4_3_1_objects/SampleTest.java new file mode 100644 index 00000000..2c897dfb --- /dev/null +++ b/src/test/resources/ch_4_types_values_variables/sec_4_3_reference_types_and_values/sec_4_3_1_objects/SampleTest.java @@ -0,0 +1,9 @@ +package org.eolang.j2eo; + +public class SampleTest { + + public static void Main (String[] args) { + + } + +} diff --git a/src/test/resources/ch_4_types_values_variables/sec_4_3_reference_types_and_values/sec_4_3_2_class_object/SampleTest.java b/src/test/resources/ch_4_types_values_variables/sec_4_3_reference_types_and_values/sec_4_3_2_class_object/SampleTest.java new file mode 100644 index 00000000..2c897dfb --- /dev/null +++ b/src/test/resources/ch_4_types_values_variables/sec_4_3_reference_types_and_values/sec_4_3_2_class_object/SampleTest.java @@ -0,0 +1,9 @@ +package org.eolang.j2eo; + +public class SampleTest { + + public static void Main (String[] args) { + + } + +} diff --git a/src/test/resources/ch_4_types_values_variables/sec_4_3_reference_types_and_values/sec_4_3_3_class_string/SampleTest.java b/src/test/resources/ch_4_types_values_variables/sec_4_3_reference_types_and_values/sec_4_3_3_class_string/SampleTest.java new file mode 100644 index 00000000..2c897dfb --- /dev/null +++ b/src/test/resources/ch_4_types_values_variables/sec_4_3_reference_types_and_values/sec_4_3_3_class_string/SampleTest.java @@ -0,0 +1,9 @@ +package org.eolang.j2eo; + +public class SampleTest { + + public static void Main (String[] args) { + + } + +} diff --git a/src/test/resources/ch_4_types_values_variables/sec_4_3_reference_types_and_values/sec_4_3_4_ref_types_are_the_same/SampleTest.java b/src/test/resources/ch_4_types_values_variables/sec_4_3_reference_types_and_values/sec_4_3_4_ref_types_are_the_same/SampleTest.java new file mode 100644 index 00000000..2c897dfb --- /dev/null +++ b/src/test/resources/ch_4_types_values_variables/sec_4_3_reference_types_and_values/sec_4_3_4_ref_types_are_the_same/SampleTest.java @@ -0,0 +1,9 @@ +package org.eolang.j2eo; + +public class SampleTest { + + public static void Main (String[] args) { + + } + +} diff --git a/src/test/resources/ch_4_types_values_variables/sec_4_4_type_variables/SampleTest.java b/src/test/resources/ch_4_types_values_variables/sec_4_4_type_variables/SampleTest.java new file mode 100644 index 00000000..2c897dfb --- /dev/null +++ b/src/test/resources/ch_4_types_values_variables/sec_4_4_type_variables/SampleTest.java @@ -0,0 +1,9 @@ +package org.eolang.j2eo; + +public class SampleTest { + + public static void Main (String[] args) { + + } + +} diff --git a/src/test/resources/ch_4_types_values_variables/sec_4_5_parametrized_types/sec_4_5_1_type_arguments_of_parameterized_types/SampleTest.java b/src/test/resources/ch_4_types_values_variables/sec_4_5_parametrized_types/sec_4_5_1_type_arguments_of_parameterized_types/SampleTest.java new file mode 100644 index 00000000..2c897dfb --- /dev/null +++ b/src/test/resources/ch_4_types_values_variables/sec_4_5_parametrized_types/sec_4_5_1_type_arguments_of_parameterized_types/SampleTest.java @@ -0,0 +1,9 @@ +package org.eolang.j2eo; + +public class SampleTest { + + public static void Main (String[] args) { + + } + +} diff --git a/src/test/resources/ch_4_types_values_variables/sec_4_5_parametrized_types/sec_4_5_2_members_and_constructors_of_param_types/SampleTest.java b/src/test/resources/ch_4_types_values_variables/sec_4_5_parametrized_types/sec_4_5_2_members_and_constructors_of_param_types/SampleTest.java new file mode 100644 index 00000000..2c897dfb --- /dev/null +++ b/src/test/resources/ch_4_types_values_variables/sec_4_5_parametrized_types/sec_4_5_2_members_and_constructors_of_param_types/SampleTest.java @@ -0,0 +1,9 @@ +package org.eolang.j2eo; + +public class SampleTest { + + public static void Main (String[] args) { + + } + +} diff --git a/src/test/resources/ch_4_types_values_variables/sec_4_6_type_erasure/SampleTest.java b/src/test/resources/ch_4_types_values_variables/sec_4_6_type_erasure/SampleTest.java new file mode 100644 index 00000000..2c897dfb --- /dev/null +++ b/src/test/resources/ch_4_types_values_variables/sec_4_6_type_erasure/SampleTest.java @@ -0,0 +1,9 @@ +package org.eolang.j2eo; + +public class SampleTest { + + public static void Main (String[] args) { + + } + +} diff --git a/src/test/resources/ch_4_types_values_variables/sec_4_7_reifiable_types/SampleTest.java b/src/test/resources/ch_4_types_values_variables/sec_4_7_reifiable_types/SampleTest.java new file mode 100644 index 00000000..2c897dfb --- /dev/null +++ b/src/test/resources/ch_4_types_values_variables/sec_4_7_reifiable_types/SampleTest.java @@ -0,0 +1,9 @@ +package org.eolang.j2eo; + +public class SampleTest { + + public static void Main (String[] args) { + + } + +} diff --git a/src/test/resources/ch_4_types_values_variables/sec_4_8_raw_types/SampleTest.java b/src/test/resources/ch_4_types_values_variables/sec_4_8_raw_types/SampleTest.java new file mode 100644 index 00000000..2c897dfb --- /dev/null +++ b/src/test/resources/ch_4_types_values_variables/sec_4_8_raw_types/SampleTest.java @@ -0,0 +1,9 @@ +package org.eolang.j2eo; + +public class SampleTest { + + public static void Main (String[] args) { + + } + +} diff --git a/src/test/resources/ch_4_types_values_variables/sec_4_9_intersection_types/SampleTest.java b/src/test/resources/ch_4_types_values_variables/sec_4_9_intersection_types/SampleTest.java new file mode 100644 index 00000000..2c897dfb --- /dev/null +++ b/src/test/resources/ch_4_types_values_variables/sec_4_9_intersection_types/SampleTest.java @@ -0,0 +1,9 @@ +package org.eolang.j2eo; + +public class SampleTest { + + public static void Main (String[] args) { + + } + +} diff --git a/src/test/resources/ch_5_conversions_and_contexts/sec_5_1_kinds_of_conversions/sec_5_1_10_capture_conversion/SampleTest.java b/src/test/resources/ch_5_conversions_and_contexts/sec_5_1_kinds_of_conversions/sec_5_1_10_capture_conversion/SampleTest.java new file mode 100644 index 00000000..2c897dfb --- /dev/null +++ b/src/test/resources/ch_5_conversions_and_contexts/sec_5_1_kinds_of_conversions/sec_5_1_10_capture_conversion/SampleTest.java @@ -0,0 +1,9 @@ +package org.eolang.j2eo; + +public class SampleTest { + + public static void Main (String[] args) { + + } + +} diff --git a/src/test/resources/ch_5_conversions_and_contexts/sec_5_1_kinds_of_conversions/sec_5_1_11_string_conversion/SampleTest.java b/src/test/resources/ch_5_conversions_and_contexts/sec_5_1_kinds_of_conversions/sec_5_1_11_string_conversion/SampleTest.java new file mode 100644 index 00000000..2c897dfb --- /dev/null +++ b/src/test/resources/ch_5_conversions_and_contexts/sec_5_1_kinds_of_conversions/sec_5_1_11_string_conversion/SampleTest.java @@ -0,0 +1,9 @@ +package org.eolang.j2eo; + +public class SampleTest { + + public static void Main (String[] args) { + + } + +} diff --git a/src/test/resources/ch_5_conversions_and_contexts/sec_5_1_kinds_of_conversions/sec_5_1_12_forbidden_conversions/SampleTest.java b/src/test/resources/ch_5_conversions_and_contexts/sec_5_1_kinds_of_conversions/sec_5_1_12_forbidden_conversions/SampleTest.java new file mode 100644 index 00000000..2c897dfb --- /dev/null +++ b/src/test/resources/ch_5_conversions_and_contexts/sec_5_1_kinds_of_conversions/sec_5_1_12_forbidden_conversions/SampleTest.java @@ -0,0 +1,9 @@ +package org.eolang.j2eo; + +public class SampleTest { + + public static void Main (String[] args) { + + } + +} diff --git a/src/test/resources/ch_5_conversions_and_contexts/sec_5_1_kinds_of_conversions/sec_5_1_13_value_set_conversion/SampleTest.java b/src/test/resources/ch_5_conversions_and_contexts/sec_5_1_kinds_of_conversions/sec_5_1_13_value_set_conversion/SampleTest.java new file mode 100644 index 00000000..2c897dfb --- /dev/null +++ b/src/test/resources/ch_5_conversions_and_contexts/sec_5_1_kinds_of_conversions/sec_5_1_13_value_set_conversion/SampleTest.java @@ -0,0 +1,9 @@ +package org.eolang.j2eo; + +public class SampleTest { + + public static void Main (String[] args) { + + } + +} diff --git a/src/test/resources/ch_5_conversions_and_contexts/sec_5_1_kinds_of_conversions/sec_5_1_1_identity_conversion/SampleTest.java b/src/test/resources/ch_5_conversions_and_contexts/sec_5_1_kinds_of_conversions/sec_5_1_1_identity_conversion/SampleTest.java new file mode 100644 index 00000000..2c897dfb --- /dev/null +++ b/src/test/resources/ch_5_conversions_and_contexts/sec_5_1_kinds_of_conversions/sec_5_1_1_identity_conversion/SampleTest.java @@ -0,0 +1,9 @@ +package org.eolang.j2eo; + +public class SampleTest { + + public static void Main (String[] args) { + + } + +} diff --git a/src/test/resources/ch_5_conversions_and_contexts/sec_5_1_kinds_of_conversions/sec_5_1_2_widening_primitive_conversion/SampleTest.java b/src/test/resources/ch_5_conversions_and_contexts/sec_5_1_kinds_of_conversions/sec_5_1_2_widening_primitive_conversion/SampleTest.java new file mode 100644 index 00000000..2c897dfb --- /dev/null +++ b/src/test/resources/ch_5_conversions_and_contexts/sec_5_1_kinds_of_conversions/sec_5_1_2_widening_primitive_conversion/SampleTest.java @@ -0,0 +1,9 @@ +package org.eolang.j2eo; + +public class SampleTest { + + public static void Main (String[] args) { + + } + +} diff --git a/src/test/resources/ch_5_conversions_and_contexts/sec_5_1_kinds_of_conversions/sec_5_1_3_narrowing_primitive_conversion/SampleTest.java b/src/test/resources/ch_5_conversions_and_contexts/sec_5_1_kinds_of_conversions/sec_5_1_3_narrowing_primitive_conversion/SampleTest.java new file mode 100644 index 00000000..2c897dfb --- /dev/null +++ b/src/test/resources/ch_5_conversions_and_contexts/sec_5_1_kinds_of_conversions/sec_5_1_3_narrowing_primitive_conversion/SampleTest.java @@ -0,0 +1,9 @@ +package org.eolang.j2eo; + +public class SampleTest { + + public static void Main (String[] args) { + + } + +} diff --git a/src/test/resources/ch_5_conversions_and_contexts/sec_5_1_kinds_of_conversions/sec_5_1_4_wide_and_narrow_prim_conversion/SampleTest.java b/src/test/resources/ch_5_conversions_and_contexts/sec_5_1_kinds_of_conversions/sec_5_1_4_wide_and_narrow_prim_conversion/SampleTest.java new file mode 100644 index 00000000..2c897dfb --- /dev/null +++ b/src/test/resources/ch_5_conversions_and_contexts/sec_5_1_kinds_of_conversions/sec_5_1_4_wide_and_narrow_prim_conversion/SampleTest.java @@ -0,0 +1,9 @@ +package org.eolang.j2eo; + +public class SampleTest { + + public static void Main (String[] args) { + + } + +} diff --git a/src/test/resources/ch_5_conversions_and_contexts/sec_5_1_kinds_of_conversions/sec_5_1_5_widening_reference_conversion/SampleTest.java b/src/test/resources/ch_5_conversions_and_contexts/sec_5_1_kinds_of_conversions/sec_5_1_5_widening_reference_conversion/SampleTest.java new file mode 100644 index 00000000..2c897dfb --- /dev/null +++ b/src/test/resources/ch_5_conversions_and_contexts/sec_5_1_kinds_of_conversions/sec_5_1_5_widening_reference_conversion/SampleTest.java @@ -0,0 +1,9 @@ +package org.eolang.j2eo; + +public class SampleTest { + + public static void Main (String[] args) { + + } + +} diff --git a/src/test/resources/ch_5_conversions_and_contexts/sec_5_1_kinds_of_conversions/sec_5_1_6_narrowing_reference_conversion/sec_5_1_6_1_allowed_narrow_ref_conv/SampleTest.java b/src/test/resources/ch_5_conversions_and_contexts/sec_5_1_kinds_of_conversions/sec_5_1_6_narrowing_reference_conversion/sec_5_1_6_1_allowed_narrow_ref_conv/SampleTest.java new file mode 100644 index 00000000..2c897dfb --- /dev/null +++ b/src/test/resources/ch_5_conversions_and_contexts/sec_5_1_kinds_of_conversions/sec_5_1_6_narrowing_reference_conversion/sec_5_1_6_1_allowed_narrow_ref_conv/SampleTest.java @@ -0,0 +1,9 @@ +package org.eolang.j2eo; + +public class SampleTest { + + public static void Main (String[] args) { + + } + +} diff --git a/src/test/resources/ch_5_conversions_and_contexts/sec_5_1_kinds_of_conversions/sec_5_1_6_narrowing_reference_conversion/sec_5_1_6_2_checked_and_unchecked_narrow_ref_conv/SampleTest.java b/src/test/resources/ch_5_conversions_and_contexts/sec_5_1_kinds_of_conversions/sec_5_1_6_narrowing_reference_conversion/sec_5_1_6_2_checked_and_unchecked_narrow_ref_conv/SampleTest.java new file mode 100644 index 00000000..2c897dfb --- /dev/null +++ b/src/test/resources/ch_5_conversions_and_contexts/sec_5_1_kinds_of_conversions/sec_5_1_6_narrowing_reference_conversion/sec_5_1_6_2_checked_and_unchecked_narrow_ref_conv/SampleTest.java @@ -0,0 +1,9 @@ +package org.eolang.j2eo; + +public class SampleTest { + + public static void Main (String[] args) { + + } + +} diff --git a/src/test/resources/ch_5_conversions_and_contexts/sec_5_1_kinds_of_conversions/sec_5_1_6_narrowing_reference_conversion/sec_5_1_6_3_narrow_ref_conv_at_runtime/SampleTest.java b/src/test/resources/ch_5_conversions_and_contexts/sec_5_1_kinds_of_conversions/sec_5_1_6_narrowing_reference_conversion/sec_5_1_6_3_narrow_ref_conv_at_runtime/SampleTest.java new file mode 100644 index 00000000..2c897dfb --- /dev/null +++ b/src/test/resources/ch_5_conversions_and_contexts/sec_5_1_kinds_of_conversions/sec_5_1_6_narrowing_reference_conversion/sec_5_1_6_3_narrow_ref_conv_at_runtime/SampleTest.java @@ -0,0 +1,9 @@ +package org.eolang.j2eo; + +public class SampleTest { + + public static void Main (String[] args) { + + } + +} diff --git a/src/test/resources/ch_5_conversions_and_contexts/sec_5_1_kinds_of_conversions/sec_5_1_7_boxing_conversion/SampleTest.java b/src/test/resources/ch_5_conversions_and_contexts/sec_5_1_kinds_of_conversions/sec_5_1_7_boxing_conversion/SampleTest.java new file mode 100644 index 00000000..2c897dfb --- /dev/null +++ b/src/test/resources/ch_5_conversions_and_contexts/sec_5_1_kinds_of_conversions/sec_5_1_7_boxing_conversion/SampleTest.java @@ -0,0 +1,9 @@ +package org.eolang.j2eo; + +public class SampleTest { + + public static void Main (String[] args) { + + } + +} diff --git a/src/test/resources/ch_5_conversions_and_contexts/sec_5_1_kinds_of_conversions/sec_5_1_8_unboxing_conversion/SampleTest.java b/src/test/resources/ch_5_conversions_and_contexts/sec_5_1_kinds_of_conversions/sec_5_1_8_unboxing_conversion/SampleTest.java new file mode 100644 index 00000000..2c897dfb --- /dev/null +++ b/src/test/resources/ch_5_conversions_and_contexts/sec_5_1_kinds_of_conversions/sec_5_1_8_unboxing_conversion/SampleTest.java @@ -0,0 +1,9 @@ +package org.eolang.j2eo; + +public class SampleTest { + + public static void Main (String[] args) { + + } + +} diff --git a/src/test/resources/ch_5_conversions_and_contexts/sec_5_1_kinds_of_conversions/sec_5_1_9_unchecked_conversion/SampleTest.java b/src/test/resources/ch_5_conversions_and_contexts/sec_5_1_kinds_of_conversions/sec_5_1_9_unchecked_conversion/SampleTest.java new file mode 100644 index 00000000..2c897dfb --- /dev/null +++ b/src/test/resources/ch_5_conversions_and_contexts/sec_5_1_kinds_of_conversions/sec_5_1_9_unchecked_conversion/SampleTest.java @@ -0,0 +1,9 @@ +package org.eolang.j2eo; + +public class SampleTest { + + public static void Main (String[] args) { + + } + +} diff --git a/src/test/resources/ch_5_conversions_and_contexts/sec_5_2_assignment_contexts/SampleTest.java b/src/test/resources/ch_5_conversions_and_contexts/sec_5_2_assignment_contexts/SampleTest.java new file mode 100644 index 00000000..2c897dfb --- /dev/null +++ b/src/test/resources/ch_5_conversions_and_contexts/sec_5_2_assignment_contexts/SampleTest.java @@ -0,0 +1,9 @@ +package org.eolang.j2eo; + +public class SampleTest { + + public static void Main (String[] args) { + + } + +} diff --git a/src/test/resources/ch_5_conversions_and_contexts/sec_5_3_invocation_contexts/SampleTest.java b/src/test/resources/ch_5_conversions_and_contexts/sec_5_3_invocation_contexts/SampleTest.java new file mode 100644 index 00000000..2c897dfb --- /dev/null +++ b/src/test/resources/ch_5_conversions_and_contexts/sec_5_3_invocation_contexts/SampleTest.java @@ -0,0 +1,9 @@ +package org.eolang.j2eo; + +public class SampleTest { + + public static void Main (String[] args) { + + } + +} diff --git a/src/test/resources/ch_5_conversions_and_contexts/sec_5_4_string_contexts/SampleTest.java b/src/test/resources/ch_5_conversions_and_contexts/sec_5_4_string_contexts/SampleTest.java new file mode 100644 index 00000000..2c897dfb --- /dev/null +++ b/src/test/resources/ch_5_conversions_and_contexts/sec_5_4_string_contexts/SampleTest.java @@ -0,0 +1,9 @@ +package org.eolang.j2eo; + +public class SampleTest { + + public static void Main (String[] args) { + + } + +} diff --git a/src/test/resources/ch_5_conversions_and_contexts/sec_5_5_casting_contexts/SampleTest.java b/src/test/resources/ch_5_conversions_and_contexts/sec_5_5_casting_contexts/SampleTest.java new file mode 100644 index 00000000..2c897dfb --- /dev/null +++ b/src/test/resources/ch_5_conversions_and_contexts/sec_5_5_casting_contexts/SampleTest.java @@ -0,0 +1,9 @@ +package org.eolang.j2eo; + +public class SampleTest { + + public static void Main (String[] args) { + + } + +} diff --git a/src/test/resources/ch_5_conversions_and_contexts/sec_5_6_numeric_contexts/SampleTest.java b/src/test/resources/ch_5_conversions_and_contexts/sec_5_6_numeric_contexts/SampleTest.java new file mode 100644 index 00000000..2c897dfb --- /dev/null +++ b/src/test/resources/ch_5_conversions_and_contexts/sec_5_6_numeric_contexts/SampleTest.java @@ -0,0 +1,9 @@ +package org.eolang.j2eo; + +public class SampleTest { + + public static void Main (String[] args) { + + } + +} diff --git a/src/test/resources/ch_6_names/sec_6_1_declarations/SampleTest.java b/src/test/resources/ch_6_names/sec_6_1_declarations/SampleTest.java new file mode 100644 index 00000000..2c897dfb --- /dev/null +++ b/src/test/resources/ch_6_names/sec_6_1_declarations/SampleTest.java @@ -0,0 +1,9 @@ +package org.eolang.j2eo; + +public class SampleTest { + + public static void Main (String[] args) { + + } + +} diff --git a/src/test/resources/ch_6_names/sec_6_2_names_and_identifiers/SampleTest.java b/src/test/resources/ch_6_names/sec_6_2_names_and_identifiers/SampleTest.java new file mode 100644 index 00000000..2c897dfb --- /dev/null +++ b/src/test/resources/ch_6_names/sec_6_2_names_and_identifiers/SampleTest.java @@ -0,0 +1,9 @@ +package org.eolang.j2eo; + +public class SampleTest { + + public static void Main (String[] args) { + + } + +} diff --git a/src/test/resources/ch_6_names/sec_6_3_scope_of_a_declaration/sec_6_3_1_scope_for_pattern_vars_in_exprs/sec_6_3_1_1_conditional_and_operator/SampleTest.java b/src/test/resources/ch_6_names/sec_6_3_scope_of_a_declaration/sec_6_3_1_scope_for_pattern_vars_in_exprs/sec_6_3_1_1_conditional_and_operator/SampleTest.java new file mode 100644 index 00000000..2c897dfb --- /dev/null +++ b/src/test/resources/ch_6_names/sec_6_3_scope_of_a_declaration/sec_6_3_1_scope_for_pattern_vars_in_exprs/sec_6_3_1_1_conditional_and_operator/SampleTest.java @@ -0,0 +1,9 @@ +package org.eolang.j2eo; + +public class SampleTest { + + public static void Main (String[] args) { + + } + +} diff --git a/src/test/resources/ch_6_names/sec_6_3_scope_of_a_declaration/sec_6_3_1_scope_for_pattern_vars_in_exprs/sec_6_3_1_2_conditional_or_operator/SampleTest.java b/src/test/resources/ch_6_names/sec_6_3_scope_of_a_declaration/sec_6_3_1_scope_for_pattern_vars_in_exprs/sec_6_3_1_2_conditional_or_operator/SampleTest.java new file mode 100644 index 00000000..2c897dfb --- /dev/null +++ b/src/test/resources/ch_6_names/sec_6_3_scope_of_a_declaration/sec_6_3_1_scope_for_pattern_vars_in_exprs/sec_6_3_1_2_conditional_or_operator/SampleTest.java @@ -0,0 +1,9 @@ +package org.eolang.j2eo; + +public class SampleTest { + + public static void Main (String[] args) { + + } + +} diff --git a/src/test/resources/ch_6_names/sec_6_3_scope_of_a_declaration/sec_6_3_1_scope_for_pattern_vars_in_exprs/sec_6_3_1_3_logical_complement_operator/SampleTest.java b/src/test/resources/ch_6_names/sec_6_3_scope_of_a_declaration/sec_6_3_1_scope_for_pattern_vars_in_exprs/sec_6_3_1_3_logical_complement_operator/SampleTest.java new file mode 100644 index 00000000..2c897dfb --- /dev/null +++ b/src/test/resources/ch_6_names/sec_6_3_scope_of_a_declaration/sec_6_3_1_scope_for_pattern_vars_in_exprs/sec_6_3_1_3_logical_complement_operator/SampleTest.java @@ -0,0 +1,9 @@ +package org.eolang.j2eo; + +public class SampleTest { + + public static void Main (String[] args) { + + } + +} diff --git a/src/test/resources/ch_6_names/sec_6_3_scope_of_a_declaration/sec_6_3_1_scope_for_pattern_vars_in_exprs/sec_6_3_1_4_ternary_operator/SampleTest.java b/src/test/resources/ch_6_names/sec_6_3_scope_of_a_declaration/sec_6_3_1_scope_for_pattern_vars_in_exprs/sec_6_3_1_4_ternary_operator/SampleTest.java new file mode 100644 index 00000000..2c897dfb --- /dev/null +++ b/src/test/resources/ch_6_names/sec_6_3_scope_of_a_declaration/sec_6_3_1_scope_for_pattern_vars_in_exprs/sec_6_3_1_4_ternary_operator/SampleTest.java @@ -0,0 +1,9 @@ +package org.eolang.j2eo; + +public class SampleTest { + + public static void Main (String[] args) { + + } + +} diff --git a/src/test/resources/ch_6_names/sec_6_3_scope_of_a_declaration/sec_6_3_1_scope_for_pattern_vars_in_exprs/sec_6_3_1_5_pattern_match_operator_instanceof/SampleTest.java b/src/test/resources/ch_6_names/sec_6_3_scope_of_a_declaration/sec_6_3_1_scope_for_pattern_vars_in_exprs/sec_6_3_1_5_pattern_match_operator_instanceof/SampleTest.java new file mode 100644 index 00000000..2c897dfb --- /dev/null +++ b/src/test/resources/ch_6_names/sec_6_3_scope_of_a_declaration/sec_6_3_1_scope_for_pattern_vars_in_exprs/sec_6_3_1_5_pattern_match_operator_instanceof/SampleTest.java @@ -0,0 +1,9 @@ +package org.eolang.j2eo; + +public class SampleTest { + + public static void Main (String[] args) { + + } + +} diff --git a/src/test/resources/ch_6_names/sec_6_3_scope_of_a_declaration/sec_6_3_1_scope_for_pattern_vars_in_exprs/sec_6_3_1_6_switch_expressions/SampleTest.java b/src/test/resources/ch_6_names/sec_6_3_scope_of_a_declaration/sec_6_3_1_scope_for_pattern_vars_in_exprs/sec_6_3_1_6_switch_expressions/SampleTest.java new file mode 100644 index 00000000..2c897dfb --- /dev/null +++ b/src/test/resources/ch_6_names/sec_6_3_scope_of_a_declaration/sec_6_3_1_scope_for_pattern_vars_in_exprs/sec_6_3_1_6_switch_expressions/SampleTest.java @@ -0,0 +1,9 @@ +package org.eolang.j2eo; + +public class SampleTest { + + public static void Main (String[] args) { + + } + +} diff --git a/src/test/resources/ch_6_names/sec_6_3_scope_of_a_declaration/sec_6_3_1_scope_for_pattern_vars_in_exprs/sec_6_3_1_7_parenthesized_expressions/SampleTest.java b/src/test/resources/ch_6_names/sec_6_3_scope_of_a_declaration/sec_6_3_1_scope_for_pattern_vars_in_exprs/sec_6_3_1_7_parenthesized_expressions/SampleTest.java new file mode 100644 index 00000000..2c897dfb --- /dev/null +++ b/src/test/resources/ch_6_names/sec_6_3_scope_of_a_declaration/sec_6_3_1_scope_for_pattern_vars_in_exprs/sec_6_3_1_7_parenthesized_expressions/SampleTest.java @@ -0,0 +1,9 @@ +package org.eolang.j2eo; + +public class SampleTest { + + public static void Main (String[] args) { + + } + +} diff --git a/src/test/resources/ch_6_names/sec_6_3_scope_of_a_declaration/sec_6_3_2_scope_for_pattern_vars_in_statements/sec_6_3_2_1_blocks/SampleTest.java b/src/test/resources/ch_6_names/sec_6_3_scope_of_a_declaration/sec_6_3_2_scope_for_pattern_vars_in_statements/sec_6_3_2_1_blocks/SampleTest.java new file mode 100644 index 00000000..2c897dfb --- /dev/null +++ b/src/test/resources/ch_6_names/sec_6_3_scope_of_a_declaration/sec_6_3_2_scope_for_pattern_vars_in_statements/sec_6_3_2_1_blocks/SampleTest.java @@ -0,0 +1,9 @@ +package org.eolang.j2eo; + +public class SampleTest { + + public static void Main (String[] args) { + + } + +} diff --git a/src/test/resources/ch_6_names/sec_6_3_scope_of_a_declaration/sec_6_3_2_scope_for_pattern_vars_in_statements/sec_6_3_2_2_if_statements/SampleTest.java b/src/test/resources/ch_6_names/sec_6_3_scope_of_a_declaration/sec_6_3_2_scope_for_pattern_vars_in_statements/sec_6_3_2_2_if_statements/SampleTest.java new file mode 100644 index 00000000..2c897dfb --- /dev/null +++ b/src/test/resources/ch_6_names/sec_6_3_scope_of_a_declaration/sec_6_3_2_scope_for_pattern_vars_in_statements/sec_6_3_2_2_if_statements/SampleTest.java @@ -0,0 +1,9 @@ +package org.eolang.j2eo; + +public class SampleTest { + + public static void Main (String[] args) { + + } + +} diff --git a/src/test/resources/ch_6_names/sec_6_3_scope_of_a_declaration/sec_6_3_2_scope_for_pattern_vars_in_statements/sec_6_3_2_3_while_statements/SampleTest.java b/src/test/resources/ch_6_names/sec_6_3_scope_of_a_declaration/sec_6_3_2_scope_for_pattern_vars_in_statements/sec_6_3_2_3_while_statements/SampleTest.java new file mode 100644 index 00000000..2c897dfb --- /dev/null +++ b/src/test/resources/ch_6_names/sec_6_3_scope_of_a_declaration/sec_6_3_2_scope_for_pattern_vars_in_statements/sec_6_3_2_3_while_statements/SampleTest.java @@ -0,0 +1,9 @@ +package org.eolang.j2eo; + +public class SampleTest { + + public static void Main (String[] args) { + + } + +} diff --git a/src/test/resources/ch_6_names/sec_6_3_scope_of_a_declaration/sec_6_3_2_scope_for_pattern_vars_in_statements/sec_6_3_2_4_do_statements/SampleTest.java b/src/test/resources/ch_6_names/sec_6_3_scope_of_a_declaration/sec_6_3_2_scope_for_pattern_vars_in_statements/sec_6_3_2_4_do_statements/SampleTest.java new file mode 100644 index 00000000..2c897dfb --- /dev/null +++ b/src/test/resources/ch_6_names/sec_6_3_scope_of_a_declaration/sec_6_3_2_scope_for_pattern_vars_in_statements/sec_6_3_2_4_do_statements/SampleTest.java @@ -0,0 +1,9 @@ +package org.eolang.j2eo; + +public class SampleTest { + + public static void Main (String[] args) { + + } + +} diff --git a/src/test/resources/ch_6_names/sec_6_3_scope_of_a_declaration/sec_6_3_2_scope_for_pattern_vars_in_statements/sec_6_3_2_5_for_statements/SampleTest.java b/src/test/resources/ch_6_names/sec_6_3_scope_of_a_declaration/sec_6_3_2_scope_for_pattern_vars_in_statements/sec_6_3_2_5_for_statements/SampleTest.java new file mode 100644 index 00000000..2c897dfb --- /dev/null +++ b/src/test/resources/ch_6_names/sec_6_3_scope_of_a_declaration/sec_6_3_2_scope_for_pattern_vars_in_statements/sec_6_3_2_5_for_statements/SampleTest.java @@ -0,0 +1,9 @@ +package org.eolang.j2eo; + +public class SampleTest { + + public static void Main (String[] args) { + + } + +} diff --git a/src/test/resources/ch_6_names/sec_6_3_scope_of_a_declaration/sec_6_3_2_scope_for_pattern_vars_in_statements/sec_6_3_2_6_switch_statements/SampleTest.java b/src/test/resources/ch_6_names/sec_6_3_scope_of_a_declaration/sec_6_3_2_scope_for_pattern_vars_in_statements/sec_6_3_2_6_switch_statements/SampleTest.java new file mode 100644 index 00000000..2c897dfb --- /dev/null +++ b/src/test/resources/ch_6_names/sec_6_3_scope_of_a_declaration/sec_6_3_2_scope_for_pattern_vars_in_statements/sec_6_3_2_6_switch_statements/SampleTest.java @@ -0,0 +1,9 @@ +package org.eolang.j2eo; + +public class SampleTest { + + public static void Main (String[] args) { + + } + +} diff --git a/src/test/resources/ch_6_names/sec_6_3_scope_of_a_declaration/sec_6_3_2_scope_for_pattern_vars_in_statements/sec_6_3_2_7_labeled_statements/SampleTest.java b/src/test/resources/ch_6_names/sec_6_3_scope_of_a_declaration/sec_6_3_2_scope_for_pattern_vars_in_statements/sec_6_3_2_7_labeled_statements/SampleTest.java new file mode 100644 index 00000000..2c897dfb --- /dev/null +++ b/src/test/resources/ch_6_names/sec_6_3_scope_of_a_declaration/sec_6_3_2_scope_for_pattern_vars_in_statements/sec_6_3_2_7_labeled_statements/SampleTest.java @@ -0,0 +1,9 @@ +package org.eolang.j2eo; + +public class SampleTest { + + public static void Main (String[] args) { + + } + +} diff --git a/src/test/resources/ch_6_names/sec_6_4_shadowing_and_obscuring/sec_6_4_1_shadowing/SampleTest.java b/src/test/resources/ch_6_names/sec_6_4_shadowing_and_obscuring/sec_6_4_1_shadowing/SampleTest.java new file mode 100644 index 00000000..2c897dfb --- /dev/null +++ b/src/test/resources/ch_6_names/sec_6_4_shadowing_and_obscuring/sec_6_4_1_shadowing/SampleTest.java @@ -0,0 +1,9 @@ +package org.eolang.j2eo; + +public class SampleTest { + + public static void Main (String[] args) { + + } + +} diff --git a/src/test/resources/ch_6_names/sec_6_4_shadowing_and_obscuring/sec_6_4_2_obscuring/SampleTest.java b/src/test/resources/ch_6_names/sec_6_4_shadowing_and_obscuring/sec_6_4_2_obscuring/SampleTest.java new file mode 100644 index 00000000..2c897dfb --- /dev/null +++ b/src/test/resources/ch_6_names/sec_6_4_shadowing_and_obscuring/sec_6_4_2_obscuring/SampleTest.java @@ -0,0 +1,9 @@ +package org.eolang.j2eo; + +public class SampleTest { + + public static void Main (String[] args) { + + } + +} diff --git a/src/test/resources/ch_6_names/sec_6_5_determining_the_meaning_of_a_name/SampleTest.java b/src/test/resources/ch_6_names/sec_6_5_determining_the_meaning_of_a_name/SampleTest.java new file mode 100644 index 00000000..2c897dfb --- /dev/null +++ b/src/test/resources/ch_6_names/sec_6_5_determining_the_meaning_of_a_name/SampleTest.java @@ -0,0 +1,9 @@ +package org.eolang.j2eo; + +public class SampleTest { + + public static void Main (String[] args) { + + } + +} diff --git a/src/test/resources/ch_6_names/sec_6_6_access_control/SampleTest.java b/src/test/resources/ch_6_names/sec_6_6_access_control/SampleTest.java new file mode 100644 index 00000000..2c897dfb --- /dev/null +++ b/src/test/resources/ch_6_names/sec_6_6_access_control/SampleTest.java @@ -0,0 +1,9 @@ +package org.eolang.j2eo; + +public class SampleTest { + + public static void Main (String[] args) { + + } + +} diff --git a/src/test/resources/ch_7_packages_and_modules/sec_7_1_package_members/SampleTest.java b/src/test/resources/ch_7_packages_and_modules/sec_7_1_package_members/SampleTest.java new file mode 100644 index 00000000..2c897dfb --- /dev/null +++ b/src/test/resources/ch_7_packages_and_modules/sec_7_1_package_members/SampleTest.java @@ -0,0 +1,9 @@ +package org.eolang.j2eo; + +public class SampleTest { + + public static void Main (String[] args) { + + } + +} diff --git a/src/test/resources/ch_7_packages_and_modules/sec_7_3_compilation_units/SampleTest.java b/src/test/resources/ch_7_packages_and_modules/sec_7_3_compilation_units/SampleTest.java new file mode 100644 index 00000000..2c897dfb --- /dev/null +++ b/src/test/resources/ch_7_packages_and_modules/sec_7_3_compilation_units/SampleTest.java @@ -0,0 +1,9 @@ +package org.eolang.j2eo; + +public class SampleTest { + + public static void Main (String[] args) { + + } + +} diff --git a/src/test/resources/ch_7_packages_and_modules/sec_7_4_package_declarations/sec_7_4_1_named_packages/SampleTest.java b/src/test/resources/ch_7_packages_and_modules/sec_7_4_package_declarations/sec_7_4_1_named_packages/SampleTest.java new file mode 100644 index 00000000..2c897dfb --- /dev/null +++ b/src/test/resources/ch_7_packages_and_modules/sec_7_4_package_declarations/sec_7_4_1_named_packages/SampleTest.java @@ -0,0 +1,9 @@ +package org.eolang.j2eo; + +public class SampleTest { + + public static void Main (String[] args) { + + } + +} diff --git a/src/test/resources/ch_7_packages_and_modules/sec_7_4_package_declarations/sec_7_4_2_unnamed_packages/SampleTest.java b/src/test/resources/ch_7_packages_and_modules/sec_7_4_package_declarations/sec_7_4_2_unnamed_packages/SampleTest.java new file mode 100644 index 00000000..2c897dfb --- /dev/null +++ b/src/test/resources/ch_7_packages_and_modules/sec_7_4_package_declarations/sec_7_4_2_unnamed_packages/SampleTest.java @@ -0,0 +1,9 @@ +package org.eolang.j2eo; + +public class SampleTest { + + public static void Main (String[] args) { + + } + +} diff --git a/src/test/resources/ch_7_packages_and_modules/sec_7_4_package_declarations/sec_7_4_3_package_observability_and_visibility/SampleTest.java b/src/test/resources/ch_7_packages_and_modules/sec_7_4_package_declarations/sec_7_4_3_package_observability_and_visibility/SampleTest.java new file mode 100644 index 00000000..2c897dfb --- /dev/null +++ b/src/test/resources/ch_7_packages_and_modules/sec_7_4_package_declarations/sec_7_4_3_package_observability_and_visibility/SampleTest.java @@ -0,0 +1,9 @@ +package org.eolang.j2eo; + +public class SampleTest { + + public static void Main (String[] args) { + + } + +} diff --git a/src/test/resources/ch_7_packages_and_modules/sec_7_5_import_declarations/sec_7_5_1_single_type_import_declrs/SampleTest.java b/src/test/resources/ch_7_packages_and_modules/sec_7_5_import_declarations/sec_7_5_1_single_type_import_declrs/SampleTest.java new file mode 100644 index 00000000..2c897dfb --- /dev/null +++ b/src/test/resources/ch_7_packages_and_modules/sec_7_5_import_declarations/sec_7_5_1_single_type_import_declrs/SampleTest.java @@ -0,0 +1,9 @@ +package org.eolang.j2eo; + +public class SampleTest { + + public static void Main (String[] args) { + + } + +} diff --git a/src/test/resources/ch_7_packages_and_modules/sec_7_5_import_declarations/sec_7_5_2_type_import_on_demand_declrs/SampleTest.java b/src/test/resources/ch_7_packages_and_modules/sec_7_5_import_declarations/sec_7_5_2_type_import_on_demand_declrs/SampleTest.java new file mode 100644 index 00000000..2c897dfb --- /dev/null +++ b/src/test/resources/ch_7_packages_and_modules/sec_7_5_import_declarations/sec_7_5_2_type_import_on_demand_declrs/SampleTest.java @@ -0,0 +1,9 @@ +package org.eolang.j2eo; + +public class SampleTest { + + public static void Main (String[] args) { + + } + +} diff --git a/src/test/resources/ch_7_packages_and_modules/sec_7_5_import_declarations/sec_7_5_3_single_static_import_declrs/SampleTest.java b/src/test/resources/ch_7_packages_and_modules/sec_7_5_import_declarations/sec_7_5_3_single_static_import_declrs/SampleTest.java new file mode 100644 index 00000000..2c897dfb --- /dev/null +++ b/src/test/resources/ch_7_packages_and_modules/sec_7_5_import_declarations/sec_7_5_3_single_static_import_declrs/SampleTest.java @@ -0,0 +1,9 @@ +package org.eolang.j2eo; + +public class SampleTest { + + public static void Main (String[] args) { + + } + +} diff --git a/src/test/resources/ch_7_packages_and_modules/sec_7_5_import_declarations/sec_7_5_4_static_import_on_demand_declrs/SampleTest.java b/src/test/resources/ch_7_packages_and_modules/sec_7_5_import_declarations/sec_7_5_4_static_import_on_demand_declrs/SampleTest.java new file mode 100644 index 00000000..2c897dfb --- /dev/null +++ b/src/test/resources/ch_7_packages_and_modules/sec_7_5_import_declarations/sec_7_5_4_static_import_on_demand_declrs/SampleTest.java @@ -0,0 +1,9 @@ +package org.eolang.j2eo; + +public class SampleTest { + + public static void Main (String[] args) { + + } + +} diff --git a/src/test/resources/ch_7_packages_and_modules/sec_7_6_top_level_class_and_interface_declarations/SampleTest.java b/src/test/resources/ch_7_packages_and_modules/sec_7_6_top_level_class_and_interface_declarations/SampleTest.java new file mode 100644 index 00000000..2c897dfb --- /dev/null +++ b/src/test/resources/ch_7_packages_and_modules/sec_7_6_top_level_class_and_interface_declarations/SampleTest.java @@ -0,0 +1,9 @@ +package org.eolang.j2eo; + +public class SampleTest { + + public static void Main (String[] args) { + + } + +} diff --git a/src/test/resources/ch_7_packages_and_modules/sec_7_7_module_declarations/sec_7_7_1_dependencies/SampleTest.java b/src/test/resources/ch_7_packages_and_modules/sec_7_7_module_declarations/sec_7_7_1_dependencies/SampleTest.java new file mode 100644 index 00000000..2c897dfb --- /dev/null +++ b/src/test/resources/ch_7_packages_and_modules/sec_7_7_module_declarations/sec_7_7_1_dependencies/SampleTest.java @@ -0,0 +1,9 @@ +package org.eolang.j2eo; + +public class SampleTest { + + public static void Main (String[] args) { + + } + +} diff --git a/src/test/resources/ch_7_packages_and_modules/sec_7_7_module_declarations/sec_7_7_2_exported_and_opened_packages/SampleTest.java b/src/test/resources/ch_7_packages_and_modules/sec_7_7_module_declarations/sec_7_7_2_exported_and_opened_packages/SampleTest.java new file mode 100644 index 00000000..2c897dfb --- /dev/null +++ b/src/test/resources/ch_7_packages_and_modules/sec_7_7_module_declarations/sec_7_7_2_exported_and_opened_packages/SampleTest.java @@ -0,0 +1,9 @@ +package org.eolang.j2eo; + +public class SampleTest { + + public static void Main (String[] args) { + + } + +} diff --git a/src/test/resources/ch_7_packages_and_modules/sec_7_7_module_declarations/sec_7_7_3_service_consumption/SampleTest.java b/src/test/resources/ch_7_packages_and_modules/sec_7_7_module_declarations/sec_7_7_3_service_consumption/SampleTest.java new file mode 100644 index 00000000..2c897dfb --- /dev/null +++ b/src/test/resources/ch_7_packages_and_modules/sec_7_7_module_declarations/sec_7_7_3_service_consumption/SampleTest.java @@ -0,0 +1,9 @@ +package org.eolang.j2eo; + +public class SampleTest { + + public static void Main (String[] args) { + + } + +} diff --git a/src/test/resources/ch_7_packages_and_modules/sec_7_7_module_declarations/sec_7_7_4_service_provision/SampleTest.java b/src/test/resources/ch_7_packages_and_modules/sec_7_7_module_declarations/sec_7_7_4_service_provision/SampleTest.java new file mode 100644 index 00000000..2c897dfb --- /dev/null +++ b/src/test/resources/ch_7_packages_and_modules/sec_7_7_module_declarations/sec_7_7_4_service_provision/SampleTest.java @@ -0,0 +1,9 @@ +package org.eolang.j2eo; + +public class SampleTest { + + public static void Main (String[] args) { + + } + +} diff --git a/src/test/resources/ch_7_packages_and_modules/sec_7_7_module_declarations/sec_7_7_5_unnamed_modules/SampleTest.java b/src/test/resources/ch_7_packages_and_modules/sec_7_7_module_declarations/sec_7_7_5_unnamed_modules/SampleTest.java new file mode 100644 index 00000000..2c897dfb --- /dev/null +++ b/src/test/resources/ch_7_packages_and_modules/sec_7_7_module_declarations/sec_7_7_5_unnamed_modules/SampleTest.java @@ -0,0 +1,9 @@ +package org.eolang.j2eo; + +public class SampleTest { + + public static void Main (String[] args) { + + } + +} diff --git a/src/test/resources/ch_7_packages_and_modules/sec_7_7_module_declarations/sec_7_7_6_observability_of_a_module/SampleTest.java b/src/test/resources/ch_7_packages_and_modules/sec_7_7_module_declarations/sec_7_7_6_observability_of_a_module/SampleTest.java new file mode 100644 index 00000000..2c897dfb --- /dev/null +++ b/src/test/resources/ch_7_packages_and_modules/sec_7_7_module_declarations/sec_7_7_6_observability_of_a_module/SampleTest.java @@ -0,0 +1,9 @@ +package org.eolang.j2eo; + +public class SampleTest { + + public static void Main (String[] args) { + + } + +} diff --git a/src/test/resources/ch_8_classes/sec_8_10_record_classes/sec_8_10_1_record_components/SampleTest.java b/src/test/resources/ch_8_classes/sec_8_10_record_classes/sec_8_10_1_record_components/SampleTest.java new file mode 100644 index 00000000..2c897dfb --- /dev/null +++ b/src/test/resources/ch_8_classes/sec_8_10_record_classes/sec_8_10_1_record_components/SampleTest.java @@ -0,0 +1,9 @@ +package org.eolang.j2eo; + +public class SampleTest { + + public static void Main (String[] args) { + + } + +} diff --git a/src/test/resources/ch_8_classes/sec_8_10_record_classes/sec_8_10_2_record_body_declarations/SampleTest.java b/src/test/resources/ch_8_classes/sec_8_10_record_classes/sec_8_10_2_record_body_declarations/SampleTest.java new file mode 100644 index 00000000..2c897dfb --- /dev/null +++ b/src/test/resources/ch_8_classes/sec_8_10_record_classes/sec_8_10_2_record_body_declarations/SampleTest.java @@ -0,0 +1,9 @@ +package org.eolang.j2eo; + +public class SampleTest { + + public static void Main (String[] args) { + + } + +} diff --git a/src/test/resources/ch_8_classes/sec_8_10_record_classes/sec_8_10_3_record_members/SampleTest.java b/src/test/resources/ch_8_classes/sec_8_10_record_classes/sec_8_10_3_record_members/SampleTest.java new file mode 100644 index 00000000..2c897dfb --- /dev/null +++ b/src/test/resources/ch_8_classes/sec_8_10_record_classes/sec_8_10_3_record_members/SampleTest.java @@ -0,0 +1,9 @@ +package org.eolang.j2eo; + +public class SampleTest { + + public static void Main (String[] args) { + + } + +} diff --git a/src/test/resources/ch_8_classes/sec_8_10_record_classes/sec_8_10_4_record_constructor_declarations/sec_8_10_4_1_normal_canonical_constructors/SampleTest.java b/src/test/resources/ch_8_classes/sec_8_10_record_classes/sec_8_10_4_record_constructor_declarations/sec_8_10_4_1_normal_canonical_constructors/SampleTest.java new file mode 100644 index 00000000..2c897dfb --- /dev/null +++ b/src/test/resources/ch_8_classes/sec_8_10_record_classes/sec_8_10_4_record_constructor_declarations/sec_8_10_4_1_normal_canonical_constructors/SampleTest.java @@ -0,0 +1,9 @@ +package org.eolang.j2eo; + +public class SampleTest { + + public static void Main (String[] args) { + + } + +} diff --git a/src/test/resources/ch_8_classes/sec_8_10_record_classes/sec_8_10_4_record_constructor_declarations/sec_8_10_4_2_compact_canonical_constructors/SampleTest.java b/src/test/resources/ch_8_classes/sec_8_10_record_classes/sec_8_10_4_record_constructor_declarations/sec_8_10_4_2_compact_canonical_constructors/SampleTest.java new file mode 100644 index 00000000..2c897dfb --- /dev/null +++ b/src/test/resources/ch_8_classes/sec_8_10_record_classes/sec_8_10_4_record_constructor_declarations/sec_8_10_4_2_compact_canonical_constructors/SampleTest.java @@ -0,0 +1,9 @@ +package org.eolang.j2eo; + +public class SampleTest { + + public static void Main (String[] args) { + + } + +} diff --git a/src/test/resources/ch_8_classes/sec_8_1_class_declarations/sec_8_1_1_class_modifiers/sec_8_1_1_1_abstract_classes/SimplestDefaultAbstractClass.java b/src/test/resources/ch_8_classes/sec_8_1_class_declarations/sec_8_1_1_class_modifiers/sec_8_1_1_1_abstract_classes/SimplestDefaultAbstractClass.java new file mode 100644 index 00000000..24b8c496 --- /dev/null +++ b/src/test/resources/ch_8_classes/sec_8_1_class_declarations/sec_8_1_1_class_modifiers/sec_8_1_1_1_abstract_classes/SimplestDefaultAbstractClass.java @@ -0,0 +1,7 @@ + +public class SimplestDefaultAbstractClass{ + abstract class AbstractTest{} + + public static void main(String[] args) { + } +} diff --git a/src/test/resources/ch_8_classes/sec_8_1_class_declarations/sec_8_1_1_class_modifiers/sec_8_1_1_1_abstract_classes/SimplestPrivateAbstractClass.java b/src/test/resources/ch_8_classes/sec_8_1_class_declarations/sec_8_1_1_class_modifiers/sec_8_1_1_1_abstract_classes/SimplestPrivateAbstractClass.java new file mode 100644 index 00000000..899ca629 --- /dev/null +++ b/src/test/resources/ch_8_classes/sec_8_1_class_declarations/sec_8_1_1_class_modifiers/sec_8_1_1_1_abstract_classes/SimplestPrivateAbstractClass.java @@ -0,0 +1,7 @@ + +public class SimplestPrivateAbstractClass{ + private abstract class PrivateAbstractTest{} + + public static void main(String[] args) { + } +} diff --git a/src/test/resources/ch_8_classes/sec_8_1_class_declarations/sec_8_1_1_class_modifiers/sec_8_1_1_1_abstract_classes/SimplestProtectedAbstractClass.java b/src/test/resources/ch_8_classes/sec_8_1_class_declarations/sec_8_1_1_class_modifiers/sec_8_1_1_1_abstract_classes/SimplestProtectedAbstractClass.java new file mode 100644 index 00000000..1b457853 --- /dev/null +++ b/src/test/resources/ch_8_classes/sec_8_1_class_declarations/sec_8_1_1_class_modifiers/sec_8_1_1_1_abstract_classes/SimplestProtectedAbstractClass.java @@ -0,0 +1,7 @@ + +public class SimplestProtectedAbstractClass{ + protected abstract class ProtectedAbstractTest{} + + public static void main(String[] args) { + } +} diff --git a/src/test/resources/ch_8_classes/sec_8_1_class_declarations/sec_8_1_1_class_modifiers/sec_8_1_1_1_abstract_classes/SimplestPublicAbstractClass.java b/src/test/resources/ch_8_classes/sec_8_1_class_declarations/sec_8_1_1_class_modifiers/sec_8_1_1_1_abstract_classes/SimplestPublicAbstractClass.java new file mode 100644 index 00000000..f0920bf3 --- /dev/null +++ b/src/test/resources/ch_8_classes/sec_8_1_class_declarations/sec_8_1_1_class_modifiers/sec_8_1_1_1_abstract_classes/SimplestPublicAbstractClass.java @@ -0,0 +1,7 @@ + +public class SimplestPublicAbstractClass{ + public abstract class PublicAbstractTest{} + + public static void main(String[] args) { + } +} diff --git a/src/test/resources/ch_8_classes/sec_8_1_class_declarations/sec_8_1_1_class_modifiers/sec_8_1_1_2_final_classes/SimplestDefaultFinalClass.java b/src/test/resources/ch_8_classes/sec_8_1_class_declarations/sec_8_1_1_class_modifiers/sec_8_1_1_2_final_classes/SimplestDefaultFinalClass.java new file mode 100644 index 00000000..a6b2b693 --- /dev/null +++ b/src/test/resources/ch_8_classes/sec_8_1_class_declarations/sec_8_1_1_class_modifiers/sec_8_1_1_2_final_classes/SimplestDefaultFinalClass.java @@ -0,0 +1,7 @@ + +public class SimplestDefaultFinalClass{ + final class FinalTest{} + + public static void main(String[] args) { + } +} diff --git a/src/test/resources/ch_8_classes/sec_8_1_class_declarations/sec_8_1_1_class_modifiers/sec_8_1_1_2_final_classes/SimplestPrivateFinalClass.java b/src/test/resources/ch_8_classes/sec_8_1_class_declarations/sec_8_1_1_class_modifiers/sec_8_1_1_2_final_classes/SimplestPrivateFinalClass.java new file mode 100644 index 00000000..962786f1 --- /dev/null +++ b/src/test/resources/ch_8_classes/sec_8_1_class_declarations/sec_8_1_1_class_modifiers/sec_8_1_1_2_final_classes/SimplestPrivateFinalClass.java @@ -0,0 +1,7 @@ + +public class SimplestPrivateFinalClass{ + private final class PrivateFinalTest{} + + public static void main(String[] args) { + } +} diff --git a/src/test/resources/ch_8_classes/sec_8_1_class_declarations/sec_8_1_1_class_modifiers/sec_8_1_1_2_final_classes/SimplestProtectedFinalClass.java b/src/test/resources/ch_8_classes/sec_8_1_class_declarations/sec_8_1_1_class_modifiers/sec_8_1_1_2_final_classes/SimplestProtectedFinalClass.java new file mode 100644 index 00000000..754ef60d --- /dev/null +++ b/src/test/resources/ch_8_classes/sec_8_1_class_declarations/sec_8_1_1_class_modifiers/sec_8_1_1_2_final_classes/SimplestProtectedFinalClass.java @@ -0,0 +1,7 @@ + +public class SimplestProtectedFinalClass{ + protected final class ProtectedFinalTest{} + + public static void main(String[] args) { + } +} diff --git a/src/test/resources/ch_8_classes/sec_8_1_class_declarations/sec_8_1_1_class_modifiers/sec_8_1_1_2_final_classes/SimplestPublicFinalClass.java b/src/test/resources/ch_8_classes/sec_8_1_class_declarations/sec_8_1_1_class_modifiers/sec_8_1_1_2_final_classes/SimplestPublicFinalClass.java new file mode 100644 index 00000000..9540af14 --- /dev/null +++ b/src/test/resources/ch_8_classes/sec_8_1_class_declarations/sec_8_1_1_class_modifiers/sec_8_1_1_2_final_classes/SimplestPublicFinalClass.java @@ -0,0 +1,7 @@ + +public class SimplestPublicFinalClass{ + public final class PublicFinalTest{} + + public static void main(String[] args) { + } +} diff --git a/src/test/resources/ch_8_classes/sec_8_1_class_declarations/sec_8_1_1_class_modifiers/sec_8_1_1_3_strictfp_classes/SimplestDefaultStrictfpClass.java b/src/test/resources/ch_8_classes/sec_8_1_class_declarations/sec_8_1_1_class_modifiers/sec_8_1_1_3_strictfp_classes/SimplestDefaultStrictfpClass.java new file mode 100644 index 00000000..c7a2a662 --- /dev/null +++ b/src/test/resources/ch_8_classes/sec_8_1_class_declarations/sec_8_1_1_class_modifiers/sec_8_1_1_3_strictfp_classes/SimplestDefaultStrictfpClass.java @@ -0,0 +1,7 @@ + +public class SimplestDefaultStrictfpClass{ + strictfp class StrictfpTest{} + + public static void main(String[] args) { + } +} diff --git a/src/test/resources/ch_8_classes/sec_8_1_class_declarations/sec_8_1_1_class_modifiers/sec_8_1_1_3_strictfp_classes/SimplestPrivateStrictfpClass.java b/src/test/resources/ch_8_classes/sec_8_1_class_declarations/sec_8_1_1_class_modifiers/sec_8_1_1_3_strictfp_classes/SimplestPrivateStrictfpClass.java new file mode 100644 index 00000000..e7a28db1 --- /dev/null +++ b/src/test/resources/ch_8_classes/sec_8_1_class_declarations/sec_8_1_1_class_modifiers/sec_8_1_1_3_strictfp_classes/SimplestPrivateStrictfpClass.java @@ -0,0 +1,7 @@ + +public class SimplestPrivateStrictfpClass{ + private strictfp class PrivateStrictfpTest{} + + public static void main(String[] args) { + } +} diff --git a/src/test/resources/ch_8_classes/sec_8_1_class_declarations/sec_8_1_1_class_modifiers/sec_8_1_1_3_strictfp_classes/SimplestProtectedStrictfpClass.java b/src/test/resources/ch_8_classes/sec_8_1_class_declarations/sec_8_1_1_class_modifiers/sec_8_1_1_3_strictfp_classes/SimplestProtectedStrictfpClass.java new file mode 100644 index 00000000..87b392ce --- /dev/null +++ b/src/test/resources/ch_8_classes/sec_8_1_class_declarations/sec_8_1_1_class_modifiers/sec_8_1_1_3_strictfp_classes/SimplestProtectedStrictfpClass.java @@ -0,0 +1,7 @@ + +public class SimplestProtectedStrictfpClass{ + protected strictfp class ProtectedStrictfpTest{} + + public static void main(String[] args) { + } +} diff --git a/src/test/resources/ch_8_classes/sec_8_1_class_declarations/sec_8_1_1_class_modifiers/sec_8_1_1_3_strictfp_classes/SimplestPublicStrictfpClass.java b/src/test/resources/ch_8_classes/sec_8_1_class_declarations/sec_8_1_1_class_modifiers/sec_8_1_1_3_strictfp_classes/SimplestPublicStrictfpClass.java new file mode 100644 index 00000000..658203a7 --- /dev/null +++ b/src/test/resources/ch_8_classes/sec_8_1_class_declarations/sec_8_1_1_class_modifiers/sec_8_1_1_3_strictfp_classes/SimplestPublicStrictfpClass.java @@ -0,0 +1,7 @@ + +public class SimplestPublicStrictfpClass{ + public strictfp class PublicStrictfpTest{} + + public static void main(String[] args) { + } +} diff --git a/src/test/resources/ch_8_classes/sec_8_1_class_declarations/sec_8_1_1_class_modifiers/sec_8_1_1_4_static_classes/SimplestDefaultStaticClass.java b/src/test/resources/ch_8_classes/sec_8_1_class_declarations/sec_8_1_1_class_modifiers/sec_8_1_1_4_static_classes/SimplestDefaultStaticClass.java new file mode 100644 index 00000000..c920cad9 --- /dev/null +++ b/src/test/resources/ch_8_classes/sec_8_1_class_declarations/sec_8_1_1_class_modifiers/sec_8_1_1_4_static_classes/SimplestDefaultStaticClass.java @@ -0,0 +1,7 @@ + +public class SimplestDefaultStaticClass{ + static class StaticTest{} + + public static void main(String[] args) { + } +} diff --git a/src/test/resources/ch_8_classes/sec_8_1_class_declarations/sec_8_1_1_class_modifiers/sec_8_1_1_4_static_classes/SimplestPrivateStaticClass.java b/src/test/resources/ch_8_classes/sec_8_1_class_declarations/sec_8_1_1_class_modifiers/sec_8_1_1_4_static_classes/SimplestPrivateStaticClass.java new file mode 100644 index 00000000..ea06b2cb --- /dev/null +++ b/src/test/resources/ch_8_classes/sec_8_1_class_declarations/sec_8_1_1_class_modifiers/sec_8_1_1_4_static_classes/SimplestPrivateStaticClass.java @@ -0,0 +1,7 @@ + +public class SimplestPrivateStaticClass{ + private static class PrivateStaticTest{} + + public static void main(String[] args) { + } +} diff --git a/src/test/resources/ch_8_classes/sec_8_1_class_declarations/sec_8_1_1_class_modifiers/sec_8_1_1_4_static_classes/SimplestProtectedStaticClass.java b/src/test/resources/ch_8_classes/sec_8_1_class_declarations/sec_8_1_1_class_modifiers/sec_8_1_1_4_static_classes/SimplestProtectedStaticClass.java new file mode 100644 index 00000000..25357f01 --- /dev/null +++ b/src/test/resources/ch_8_classes/sec_8_1_class_declarations/sec_8_1_1_class_modifiers/sec_8_1_1_4_static_classes/SimplestProtectedStaticClass.java @@ -0,0 +1,7 @@ + +public class SimplestProtectedStaticClass{ + protected static class ProtectedStaticTest{} + + public static void main(String[] args) { + } +} diff --git a/src/test/resources/ch_8_classes/sec_8_1_class_declarations/sec_8_1_1_class_modifiers/sec_8_1_1_4_static_classes/SimplestPublicStaticClass.java b/src/test/resources/ch_8_classes/sec_8_1_class_declarations/sec_8_1_1_class_modifiers/sec_8_1_1_4_static_classes/SimplestPublicStaticClass.java new file mode 100644 index 00000000..fcedbd85 --- /dev/null +++ b/src/test/resources/ch_8_classes/sec_8_1_class_declarations/sec_8_1_1_class_modifiers/sec_8_1_1_4_static_classes/SimplestPublicStaticClass.java @@ -0,0 +1,7 @@ + +public class SimplestPublicStaticClass{ + public static class PublicStaticTest{} + + public static void main(String[] args) { + } +} diff --git a/src/test/resources/ch_8_classes/sec_8_1_class_declarations/sec_8_1_2_generic_classes_and_type_params/SampleTest.java b/src/test/resources/ch_8_classes/sec_8_1_class_declarations/sec_8_1_2_generic_classes_and_type_params/SampleTest.java new file mode 100644 index 00000000..2c897dfb --- /dev/null +++ b/src/test/resources/ch_8_classes/sec_8_1_class_declarations/sec_8_1_2_generic_classes_and_type_params/SampleTest.java @@ -0,0 +1,9 @@ +package org.eolang.j2eo; + +public class SampleTest { + + public static void Main (String[] args) { + + } + +} diff --git a/src/test/resources/ch_8_classes/sec_8_1_class_declarations/sec_8_1_3_inner_classes_and_enclosing_instances/SampleTest.java b/src/test/resources/ch_8_classes/sec_8_1_class_declarations/sec_8_1_3_inner_classes_and_enclosing_instances/SampleTest.java new file mode 100644 index 00000000..2c897dfb --- /dev/null +++ b/src/test/resources/ch_8_classes/sec_8_1_class_declarations/sec_8_1_3_inner_classes_and_enclosing_instances/SampleTest.java @@ -0,0 +1,9 @@ +package org.eolang.j2eo; + +public class SampleTest { + + public static void Main (String[] args) { + + } + +} diff --git a/src/test/resources/ch_8_classes/sec_8_1_class_declarations/sec_8_1_4_superclasses_and_subclasses/SampleTest.java b/src/test/resources/ch_8_classes/sec_8_1_class_declarations/sec_8_1_4_superclasses_and_subclasses/SampleTest.java new file mode 100644 index 00000000..2c897dfb --- /dev/null +++ b/src/test/resources/ch_8_classes/sec_8_1_class_declarations/sec_8_1_4_superclasses_and_subclasses/SampleTest.java @@ -0,0 +1,9 @@ +package org.eolang.j2eo; + +public class SampleTest { + + public static void Main (String[] args) { + + } + +} diff --git a/src/test/resources/ch_8_classes/sec_8_1_class_declarations/sec_8_1_5_superinterfaces/SampleTest.java b/src/test/resources/ch_8_classes/sec_8_1_class_declarations/sec_8_1_5_superinterfaces/SampleTest.java new file mode 100644 index 00000000..2c897dfb --- /dev/null +++ b/src/test/resources/ch_8_classes/sec_8_1_class_declarations/sec_8_1_5_superinterfaces/SampleTest.java @@ -0,0 +1,9 @@ +package org.eolang.j2eo; + +public class SampleTest { + + public static void Main (String[] args) { + + } + +} diff --git a/src/test/resources/ch_8_classes/sec_8_1_class_declarations/sec_8_1_6_class_body_and_member_declrs/SampleTest.java b/src/test/resources/ch_8_classes/sec_8_1_class_declarations/sec_8_1_6_class_body_and_member_declrs/SampleTest.java new file mode 100644 index 00000000..2c897dfb --- /dev/null +++ b/src/test/resources/ch_8_classes/sec_8_1_class_declarations/sec_8_1_6_class_body_and_member_declrs/SampleTest.java @@ -0,0 +1,9 @@ +package org.eolang.j2eo; + +public class SampleTest { + + public static void Main (String[] args) { + + } + +} diff --git a/src/test/resources/ch_8_classes/sec_8_2_class_members/SampleTest.java b/src/test/resources/ch_8_classes/sec_8_2_class_members/SampleTest.java new file mode 100644 index 00000000..2c897dfb --- /dev/null +++ b/src/test/resources/ch_8_classes/sec_8_2_class_members/SampleTest.java @@ -0,0 +1,9 @@ +package org.eolang.j2eo; + +public class SampleTest { + + public static void Main (String[] args) { + + } + +} diff --git a/src/test/resources/ch_8_classes/sec_8_3_field_declarations/sec_8_3_1_field_modifiers/sec_8_3_1_1_static_fields/SampleTest.java b/src/test/resources/ch_8_classes/sec_8_3_field_declarations/sec_8_3_1_field_modifiers/sec_8_3_1_1_static_fields/SampleTest.java new file mode 100644 index 00000000..2c897dfb --- /dev/null +++ b/src/test/resources/ch_8_classes/sec_8_3_field_declarations/sec_8_3_1_field_modifiers/sec_8_3_1_1_static_fields/SampleTest.java @@ -0,0 +1,9 @@ +package org.eolang.j2eo; + +public class SampleTest { + + public static void Main (String[] args) { + + } + +} diff --git a/src/test/resources/ch_8_classes/sec_8_3_field_declarations/sec_8_3_1_field_modifiers/sec_8_3_1_2_final_fields/SampleTest.java b/src/test/resources/ch_8_classes/sec_8_3_field_declarations/sec_8_3_1_field_modifiers/sec_8_3_1_2_final_fields/SampleTest.java new file mode 100644 index 00000000..2c897dfb --- /dev/null +++ b/src/test/resources/ch_8_classes/sec_8_3_field_declarations/sec_8_3_1_field_modifiers/sec_8_3_1_2_final_fields/SampleTest.java @@ -0,0 +1,9 @@ +package org.eolang.j2eo; + +public class SampleTest { + + public static void Main (String[] args) { + + } + +} diff --git a/src/test/resources/ch_8_classes/sec_8_3_field_declarations/sec_8_3_1_field_modifiers/sec_8_3_1_3_transient_fields/SampleTest.java b/src/test/resources/ch_8_classes/sec_8_3_field_declarations/sec_8_3_1_field_modifiers/sec_8_3_1_3_transient_fields/SampleTest.java new file mode 100644 index 00000000..2c897dfb --- /dev/null +++ b/src/test/resources/ch_8_classes/sec_8_3_field_declarations/sec_8_3_1_field_modifiers/sec_8_3_1_3_transient_fields/SampleTest.java @@ -0,0 +1,9 @@ +package org.eolang.j2eo; + +public class SampleTest { + + public static void Main (String[] args) { + + } + +} diff --git a/src/test/resources/ch_8_classes/sec_8_3_field_declarations/sec_8_3_1_field_modifiers/sec_8_3_1_4_volatile_fields/SampleTest.java b/src/test/resources/ch_8_classes/sec_8_3_field_declarations/sec_8_3_1_field_modifiers/sec_8_3_1_4_volatile_fields/SampleTest.java new file mode 100644 index 00000000..2c897dfb --- /dev/null +++ b/src/test/resources/ch_8_classes/sec_8_3_field_declarations/sec_8_3_1_field_modifiers/sec_8_3_1_4_volatile_fields/SampleTest.java @@ -0,0 +1,9 @@ +package org.eolang.j2eo; + +public class SampleTest { + + public static void Main (String[] args) { + + } + +} diff --git a/src/test/resources/ch_8_classes/sec_8_3_field_declarations/sec_8_3_2_field_initialization/SampleTest.java b/src/test/resources/ch_8_classes/sec_8_3_field_declarations/sec_8_3_2_field_initialization/SampleTest.java new file mode 100644 index 00000000..2c897dfb --- /dev/null +++ b/src/test/resources/ch_8_classes/sec_8_3_field_declarations/sec_8_3_2_field_initialization/SampleTest.java @@ -0,0 +1,9 @@ +package org.eolang.j2eo; + +public class SampleTest { + + public static void Main (String[] args) { + + } + +} diff --git a/src/test/resources/ch_8_classes/sec_8_3_field_declarations/sec_8_3_3_restrictions_on_field_references_in_initializers/SampleTest.java b/src/test/resources/ch_8_classes/sec_8_3_field_declarations/sec_8_3_3_restrictions_on_field_references_in_initializers/SampleTest.java new file mode 100644 index 00000000..2c897dfb --- /dev/null +++ b/src/test/resources/ch_8_classes/sec_8_3_field_declarations/sec_8_3_3_restrictions_on_field_references_in_initializers/SampleTest.java @@ -0,0 +1,9 @@ +package org.eolang.j2eo; + +public class SampleTest { + + public static void Main (String[] args) { + + } + +} diff --git a/src/test/resources/ch_8_classes/sec_8_4_method_declarations/sec_8_4_1_formal_parametes/SimpleMethod.java b/src/test/resources/ch_8_classes/sec_8_4_method_declarations/sec_8_4_1_formal_parametes/SimpleMethod.java new file mode 100644 index 00000000..012abe96 --- /dev/null +++ b/src/test/resources/ch_8_classes/sec_8_4_method_declarations/sec_8_4_1_formal_parametes/SimpleMethod.java @@ -0,0 +1,7 @@ +package org.eolang.j2eo; + +public class SimpleMethod { + + void method () {} + +} diff --git a/src/test/resources/ch_8_classes/sec_8_4_method_declarations/sec_8_4_1_formal_parametes/SimpleParameterMethod.java b/src/test/resources/ch_8_classes/sec_8_4_method_declarations/sec_8_4_1_formal_parametes/SimpleParameterMethod.java new file mode 100644 index 00000000..8706e5eb --- /dev/null +++ b/src/test/resources/ch_8_classes/sec_8_4_method_declarations/sec_8_4_1_formal_parametes/SimpleParameterMethod.java @@ -0,0 +1,7 @@ +package org.eolang.j2eo; + +public class SimpleParameterMethod { + + void method (String param) {} + +} diff --git a/src/test/resources/ch_8_classes/sec_8_4_method_declarations/sec_8_4_1_formal_parametes/SimpleRecieverParameterMethod.java b/src/test/resources/ch_8_classes/sec_8_4_method_declarations/sec_8_4_1_formal_parametes/SimpleRecieverParameterMethod.java new file mode 100644 index 00000000..1eb4e8c9 --- /dev/null +++ b/src/test/resources/ch_8_classes/sec_8_4_method_declarations/sec_8_4_1_formal_parametes/SimpleRecieverParameterMethod.java @@ -0,0 +1,7 @@ +package org.eolang.j2eo; + +public class SimpleRecieverParameterMethod { + + void method (SimpleRecieverParameterMethod this) {} + +} diff --git a/src/test/resources/ch_8_classes/sec_8_4_method_declarations/sec_8_4_2_method_signature/SampleTest.java b/src/test/resources/ch_8_classes/sec_8_4_method_declarations/sec_8_4_2_method_signature/SampleTest.java new file mode 100644 index 00000000..2c897dfb --- /dev/null +++ b/src/test/resources/ch_8_classes/sec_8_4_method_declarations/sec_8_4_2_method_signature/SampleTest.java @@ -0,0 +1,9 @@ +package org.eolang.j2eo; + +public class SampleTest { + + public static void Main (String[] args) { + + } + +} diff --git a/src/test/resources/ch_8_classes/sec_8_4_method_declarations/sec_8_4_3_method_modifiers/sec_8_4_3_1_abstract_methods/SimpleAbstractMethod.java b/src/test/resources/ch_8_classes/sec_8_4_method_declarations/sec_8_4_3_method_modifiers/sec_8_4_3_1_abstract_methods/SimpleAbstractMethod.java new file mode 100644 index 00000000..d7ff8bcd --- /dev/null +++ b/src/test/resources/ch_8_classes/sec_8_4_method_declarations/sec_8_4_3_method_modifiers/sec_8_4_3_1_abstract_methods/SimpleAbstractMethod.java @@ -0,0 +1,7 @@ +package org.eolang.j2eo; + +public abstract class SimpleAbstractMethod { + + abstract void method (); + +} diff --git a/src/test/resources/ch_8_classes/sec_8_4_method_declarations/sec_8_4_3_method_modifiers/sec_8_4_3_2_static_methods/SimpleStaticMethod.java b/src/test/resources/ch_8_classes/sec_8_4_method_declarations/sec_8_4_3_method_modifiers/sec_8_4_3_2_static_methods/SimpleStaticMethod.java new file mode 100644 index 00000000..88de1424 --- /dev/null +++ b/src/test/resources/ch_8_classes/sec_8_4_method_declarations/sec_8_4_3_method_modifiers/sec_8_4_3_2_static_methods/SimpleStaticMethod.java @@ -0,0 +1,7 @@ +package org.eolang.j2eo; + +public class SimpleStaticMethod { + + static void method () {} + +} diff --git a/src/test/resources/ch_8_classes/sec_8_4_method_declarations/sec_8_4_3_method_modifiers/sec_8_4_3_3_final_methods/SimpleFinalMethod.java b/src/test/resources/ch_8_classes/sec_8_4_method_declarations/sec_8_4_3_method_modifiers/sec_8_4_3_3_final_methods/SimpleFinalMethod.java new file mode 100644 index 00000000..82847066 --- /dev/null +++ b/src/test/resources/ch_8_classes/sec_8_4_method_declarations/sec_8_4_3_method_modifiers/sec_8_4_3_3_final_methods/SimpleFinalMethod.java @@ -0,0 +1,7 @@ +package org.eolang.j2eo; + +public class SimpleFinalMethod { + + final void method () {} + +} diff --git a/src/test/resources/ch_8_classes/sec_8_4_method_declarations/sec_8_4_3_method_modifiers/sec_8_4_3_4_native_methods/SimpleNativeMethod.java b/src/test/resources/ch_8_classes/sec_8_4_method_declarations/sec_8_4_3_method_modifiers/sec_8_4_3_4_native_methods/SimpleNativeMethod.java new file mode 100644 index 00000000..d514033b --- /dev/null +++ b/src/test/resources/ch_8_classes/sec_8_4_method_declarations/sec_8_4_3_method_modifiers/sec_8_4_3_4_native_methods/SimpleNativeMethod.java @@ -0,0 +1,7 @@ +package org.eolang.j2eo; + +public class SimpleNativeMethod { + + native void method(); + +} diff --git a/src/test/resources/ch_8_classes/sec_8_4_method_declarations/sec_8_4_3_method_modifiers/sec_8_4_3_5_strictfp_methods/SimpleStrictFPMethod.java b/src/test/resources/ch_8_classes/sec_8_4_method_declarations/sec_8_4_3_method_modifiers/sec_8_4_3_5_strictfp_methods/SimpleStrictFPMethod.java new file mode 100644 index 00000000..dc2e43e9 --- /dev/null +++ b/src/test/resources/ch_8_classes/sec_8_4_method_declarations/sec_8_4_3_method_modifiers/sec_8_4_3_5_strictfp_methods/SimpleStrictFPMethod.java @@ -0,0 +1,7 @@ +package org.eolang.j2eo; + +public class SimpleStrictFPMethod { + + strictfp void method() {} + +} diff --git a/src/test/resources/ch_8_classes/sec_8_4_method_declarations/sec_8_4_3_method_modifiers/sec_8_4_3_6_synchronized_methods/SimpleSynchronizedMethod.java b/src/test/resources/ch_8_classes/sec_8_4_method_declarations/sec_8_4_3_method_modifiers/sec_8_4_3_6_synchronized_methods/SimpleSynchronizedMethod.java new file mode 100644 index 00000000..6889c54d --- /dev/null +++ b/src/test/resources/ch_8_classes/sec_8_4_method_declarations/sec_8_4_3_method_modifiers/sec_8_4_3_6_synchronized_methods/SimpleSynchronizedMethod.java @@ -0,0 +1,7 @@ +package org.eolang.j2eo; + +public class SimpleSynchronizedMethod { + + synchronized void method() {} + +} diff --git a/src/test/resources/ch_8_classes/sec_8_4_method_declarations/sec_8_4_4_generic_methods/SimpleGenericMethod.java b/src/test/resources/ch_8_classes/sec_8_4_method_declarations/sec_8_4_4_generic_methods/SimpleGenericMethod.java new file mode 100644 index 00000000..49bb6054 --- /dev/null +++ b/src/test/resources/ch_8_classes/sec_8_4_method_declarations/sec_8_4_4_generic_methods/SimpleGenericMethod.java @@ -0,0 +1,7 @@ +package org.eolang.j2eo; + +public class SimpleGenericMethod { + + void method(T param) {} + +} diff --git a/src/test/resources/ch_8_classes/sec_8_4_method_declarations/sec_8_4_5_method_result/SampleTest.java b/src/test/resources/ch_8_classes/sec_8_4_method_declarations/sec_8_4_5_method_result/SampleTest.java new file mode 100644 index 00000000..2c897dfb --- /dev/null +++ b/src/test/resources/ch_8_classes/sec_8_4_method_declarations/sec_8_4_5_method_result/SampleTest.java @@ -0,0 +1,9 @@ +package org.eolang.j2eo; + +public class SampleTest { + + public static void Main (String[] args) { + + } + +} diff --git a/src/test/resources/ch_8_classes/sec_8_4_method_declarations/sec_8_4_6_method_throws/SimpleMethodThrows.java b/src/test/resources/ch_8_classes/sec_8_4_method_declarations/sec_8_4_6_method_throws/SimpleMethodThrows.java new file mode 100644 index 00000000..64e8b9d8 --- /dev/null +++ b/src/test/resources/ch_8_classes/sec_8_4_method_declarations/sec_8_4_6_method_throws/SimpleMethodThrows.java @@ -0,0 +1,7 @@ +package org.eolang.j2eo; + +public class SimpleMethodThrows { + + void method() throws Exception {} + +} diff --git a/src/test/resources/ch_8_classes/sec_8_4_method_declarations/sec_8_4_7_method_body/SimpleMethodBody.java b/src/test/resources/ch_8_classes/sec_8_4_method_declarations/sec_8_4_7_method_body/SimpleMethodBody.java new file mode 100644 index 00000000..767c6eb9 --- /dev/null +++ b/src/test/resources/ch_8_classes/sec_8_4_method_declarations/sec_8_4_7_method_body/SimpleMethodBody.java @@ -0,0 +1,9 @@ +package org.eolang.j2eo; + +public class SimpleMethodBody { + + void method() { + int var = 0; + } + +} diff --git a/src/test/resources/ch_8_classes/sec_8_4_method_declarations/sec_8_4_8_inheritance_overrideing_and_hiding/sec_8_4_8_1_overriding_by_instance_methods/SampleTest.java b/src/test/resources/ch_8_classes/sec_8_4_method_declarations/sec_8_4_8_inheritance_overrideing_and_hiding/sec_8_4_8_1_overriding_by_instance_methods/SampleTest.java new file mode 100644 index 00000000..2c897dfb --- /dev/null +++ b/src/test/resources/ch_8_classes/sec_8_4_method_declarations/sec_8_4_8_inheritance_overrideing_and_hiding/sec_8_4_8_1_overriding_by_instance_methods/SampleTest.java @@ -0,0 +1,9 @@ +package org.eolang.j2eo; + +public class SampleTest { + + public static void Main (String[] args) { + + } + +} diff --git a/src/test/resources/ch_8_classes/sec_8_4_method_declarations/sec_8_4_8_inheritance_overrideing_and_hiding/sec_8_4_8_2_hiding_by_class_methods/SampleTest.java b/src/test/resources/ch_8_classes/sec_8_4_method_declarations/sec_8_4_8_inheritance_overrideing_and_hiding/sec_8_4_8_2_hiding_by_class_methods/SampleTest.java new file mode 100644 index 00000000..2c897dfb --- /dev/null +++ b/src/test/resources/ch_8_classes/sec_8_4_method_declarations/sec_8_4_8_inheritance_overrideing_and_hiding/sec_8_4_8_2_hiding_by_class_methods/SampleTest.java @@ -0,0 +1,9 @@ +package org.eolang.j2eo; + +public class SampleTest { + + public static void Main (String[] args) { + + } + +} diff --git a/src/test/resources/ch_8_classes/sec_8_4_method_declarations/sec_8_4_8_inheritance_overrideing_and_hiding/sec_8_4_8_4_inheriting_methods_with_override_equivalent_signatures/SampleTest.java b/src/test/resources/ch_8_classes/sec_8_4_method_declarations/sec_8_4_8_inheritance_overrideing_and_hiding/sec_8_4_8_4_inheriting_methods_with_override_equivalent_signatures/SampleTest.java new file mode 100644 index 00000000..2c897dfb --- /dev/null +++ b/src/test/resources/ch_8_classes/sec_8_4_method_declarations/sec_8_4_8_inheritance_overrideing_and_hiding/sec_8_4_8_4_inheriting_methods_with_override_equivalent_signatures/SampleTest.java @@ -0,0 +1,9 @@ +package org.eolang.j2eo; + +public class SampleTest { + + public static void Main (String[] args) { + + } + +} diff --git a/src/test/resources/ch_8_classes/sec_8_4_method_declarations/sec_8_4_9_overloading/SampleTest.java b/src/test/resources/ch_8_classes/sec_8_4_method_declarations/sec_8_4_9_overloading/SampleTest.java new file mode 100644 index 00000000..2c897dfb --- /dev/null +++ b/src/test/resources/ch_8_classes/sec_8_4_method_declarations/sec_8_4_9_overloading/SampleTest.java @@ -0,0 +1,9 @@ +package org.eolang.j2eo; + +public class SampleTest { + + public static void Main (String[] args) { + + } + +} diff --git a/src/test/resources/ch_8_classes/sec_8_5_member_class_and_interface_declarations/SampleTest.java b/src/test/resources/ch_8_classes/sec_8_5_member_class_and_interface_declarations/SampleTest.java new file mode 100644 index 00000000..2c897dfb --- /dev/null +++ b/src/test/resources/ch_8_classes/sec_8_5_member_class_and_interface_declarations/SampleTest.java @@ -0,0 +1,9 @@ +package org.eolang.j2eo; + +public class SampleTest { + + public static void Main (String[] args) { + + } + +} diff --git a/src/test/resources/ch_8_classes/sec_8_6_instance_initializers/SampleTest.java b/src/test/resources/ch_8_classes/sec_8_6_instance_initializers/SampleTest.java new file mode 100644 index 00000000..2c897dfb --- /dev/null +++ b/src/test/resources/ch_8_classes/sec_8_6_instance_initializers/SampleTest.java @@ -0,0 +1,9 @@ +package org.eolang.j2eo; + +public class SampleTest { + + public static void Main (String[] args) { + + } + +} diff --git a/src/test/resources/ch_8_classes/sec_8_7_static_initializers/SampleTest.java b/src/test/resources/ch_8_classes/sec_8_7_static_initializers/SampleTest.java new file mode 100644 index 00000000..2c897dfb --- /dev/null +++ b/src/test/resources/ch_8_classes/sec_8_7_static_initializers/SampleTest.java @@ -0,0 +1,9 @@ +package org.eolang.j2eo; + +public class SampleTest { + + public static void Main (String[] args) { + + } + +} diff --git a/src/test/resources/ch_8_classes/sec_8_8_constructor_declarations/sec_8_8_10_preventing_instantiation_of_a_class/SampleTest.java b/src/test/resources/ch_8_classes/sec_8_8_constructor_declarations/sec_8_8_10_preventing_instantiation_of_a_class/SampleTest.java new file mode 100644 index 00000000..2c897dfb --- /dev/null +++ b/src/test/resources/ch_8_classes/sec_8_8_constructor_declarations/sec_8_8_10_preventing_instantiation_of_a_class/SampleTest.java @@ -0,0 +1,9 @@ +package org.eolang.j2eo; + +public class SampleTest { + + public static void Main (String[] args) { + + } + +} diff --git a/src/test/resources/ch_8_classes/sec_8_8_constructor_declarations/sec_8_8_1_formal_parameters/SampleTest.java b/src/test/resources/ch_8_classes/sec_8_8_constructor_declarations/sec_8_8_1_formal_parameters/SampleTest.java new file mode 100644 index 00000000..2c897dfb --- /dev/null +++ b/src/test/resources/ch_8_classes/sec_8_8_constructor_declarations/sec_8_8_1_formal_parameters/SampleTest.java @@ -0,0 +1,9 @@ +package org.eolang.j2eo; + +public class SampleTest { + + public static void Main (String[] args) { + + } + +} diff --git a/src/test/resources/ch_8_classes/sec_8_8_constructor_declarations/sec_8_8_2_constructor_signature/SampleTest.java b/src/test/resources/ch_8_classes/sec_8_8_constructor_declarations/sec_8_8_2_constructor_signature/SampleTest.java new file mode 100644 index 00000000..2c897dfb --- /dev/null +++ b/src/test/resources/ch_8_classes/sec_8_8_constructor_declarations/sec_8_8_2_constructor_signature/SampleTest.java @@ -0,0 +1,9 @@ +package org.eolang.j2eo; + +public class SampleTest { + + public static void Main (String[] args) { + + } + +} diff --git a/src/test/resources/ch_8_classes/sec_8_8_constructor_declarations/sec_8_8_3_constructor_modifiers/SampleTest.java b/src/test/resources/ch_8_classes/sec_8_8_constructor_declarations/sec_8_8_3_constructor_modifiers/SampleTest.java new file mode 100644 index 00000000..2c897dfb --- /dev/null +++ b/src/test/resources/ch_8_classes/sec_8_8_constructor_declarations/sec_8_8_3_constructor_modifiers/SampleTest.java @@ -0,0 +1,9 @@ +package org.eolang.j2eo; + +public class SampleTest { + + public static void Main (String[] args) { + + } + +} diff --git a/src/test/resources/ch_8_classes/sec_8_8_constructor_declarations/sec_8_8_4_generic_constructors/SampleTest.java b/src/test/resources/ch_8_classes/sec_8_8_constructor_declarations/sec_8_8_4_generic_constructors/SampleTest.java new file mode 100644 index 00000000..2c897dfb --- /dev/null +++ b/src/test/resources/ch_8_classes/sec_8_8_constructor_declarations/sec_8_8_4_generic_constructors/SampleTest.java @@ -0,0 +1,9 @@ +package org.eolang.j2eo; + +public class SampleTest { + + public static void Main (String[] args) { + + } + +} diff --git a/src/test/resources/ch_8_classes/sec_8_8_constructor_declarations/sec_8_8_5_constructor_throws/SampleTest.java b/src/test/resources/ch_8_classes/sec_8_8_constructor_declarations/sec_8_8_5_constructor_throws/SampleTest.java new file mode 100644 index 00000000..2c897dfb --- /dev/null +++ b/src/test/resources/ch_8_classes/sec_8_8_constructor_declarations/sec_8_8_5_constructor_throws/SampleTest.java @@ -0,0 +1,9 @@ +package org.eolang.j2eo; + +public class SampleTest { + + public static void Main (String[] args) { + + } + +} diff --git a/src/test/resources/ch_8_classes/sec_8_8_constructor_declarations/sec_8_8_6_the_type_of_a_constructor/SampleTest.java b/src/test/resources/ch_8_classes/sec_8_8_constructor_declarations/sec_8_8_6_the_type_of_a_constructor/SampleTest.java new file mode 100644 index 00000000..2c897dfb --- /dev/null +++ b/src/test/resources/ch_8_classes/sec_8_8_constructor_declarations/sec_8_8_6_the_type_of_a_constructor/SampleTest.java @@ -0,0 +1,9 @@ +package org.eolang.j2eo; + +public class SampleTest { + + public static void Main (String[] args) { + + } + +} diff --git a/src/test/resources/ch_8_classes/sec_8_8_constructor_declarations/sec_8_8_7_constructor_body/sec_8_8_7_1_explicit_constructor_invocations/SampleTest.java b/src/test/resources/ch_8_classes/sec_8_8_constructor_declarations/sec_8_8_7_constructor_body/sec_8_8_7_1_explicit_constructor_invocations/SampleTest.java new file mode 100644 index 00000000..2c897dfb --- /dev/null +++ b/src/test/resources/ch_8_classes/sec_8_8_constructor_declarations/sec_8_8_7_constructor_body/sec_8_8_7_1_explicit_constructor_invocations/SampleTest.java @@ -0,0 +1,9 @@ +package org.eolang.j2eo; + +public class SampleTest { + + public static void Main (String[] args) { + + } + +} diff --git a/src/test/resources/ch_8_classes/sec_8_8_constructor_declarations/sec_8_8_8_constructor_overloading/SampleTest.java b/src/test/resources/ch_8_classes/sec_8_8_constructor_declarations/sec_8_8_8_constructor_overloading/SampleTest.java new file mode 100644 index 00000000..2c897dfb --- /dev/null +++ b/src/test/resources/ch_8_classes/sec_8_8_constructor_declarations/sec_8_8_8_constructor_overloading/SampleTest.java @@ -0,0 +1,9 @@ +package org.eolang.j2eo; + +public class SampleTest { + + public static void Main (String[] args) { + + } + +} diff --git a/src/test/resources/ch_8_classes/sec_8_8_constructor_declarations/sec_8_8_9_default_constructor/SampleTest.java b/src/test/resources/ch_8_classes/sec_8_8_constructor_declarations/sec_8_8_9_default_constructor/SampleTest.java new file mode 100644 index 00000000..2c897dfb --- /dev/null +++ b/src/test/resources/ch_8_classes/sec_8_8_constructor_declarations/sec_8_8_9_default_constructor/SampleTest.java @@ -0,0 +1,9 @@ +package org.eolang.j2eo; + +public class SampleTest { + + public static void Main (String[] args) { + + } + +} diff --git a/src/test/resources/ch_8_classes/sec_8_9_enum_classes/sec_8_9_1_enum_constants/SampleTest.java b/src/test/resources/ch_8_classes/sec_8_9_enum_classes/sec_8_9_1_enum_constants/SampleTest.java new file mode 100644 index 00000000..2c897dfb --- /dev/null +++ b/src/test/resources/ch_8_classes/sec_8_9_enum_classes/sec_8_9_1_enum_constants/SampleTest.java @@ -0,0 +1,9 @@ +package org.eolang.j2eo; + +public class SampleTest { + + public static void Main (String[] args) { + + } + +} diff --git a/src/test/resources/ch_8_classes/sec_8_9_enum_classes/sec_8_9_2_enum_body_declarations/SampleTest.java b/src/test/resources/ch_8_classes/sec_8_9_enum_classes/sec_8_9_2_enum_body_declarations/SampleTest.java new file mode 100644 index 00000000..2c897dfb --- /dev/null +++ b/src/test/resources/ch_8_classes/sec_8_9_enum_classes/sec_8_9_2_enum_body_declarations/SampleTest.java @@ -0,0 +1,9 @@ +package org.eolang.j2eo; + +public class SampleTest { + + public static void Main (String[] args) { + + } + +} diff --git a/src/test/resources/ch_8_classes/sec_8_9_enum_classes/sec_8_9_3_enum_members/SampleTest.java b/src/test/resources/ch_8_classes/sec_8_9_enum_classes/sec_8_9_3_enum_members/SampleTest.java new file mode 100644 index 00000000..2c897dfb --- /dev/null +++ b/src/test/resources/ch_8_classes/sec_8_9_enum_classes/sec_8_9_3_enum_members/SampleTest.java @@ -0,0 +1,9 @@ +package org.eolang.j2eo; + +public class SampleTest { + + public static void Main (String[] args) { + + } + +} diff --git a/src/test/resources/ch_9_interfaces/sec_9_1_interface_declarations/sec_9_1_1_interface_modifiers/sec_9_1_1_1_abstract_interfaces/SampleTest.java b/src/test/resources/ch_9_interfaces/sec_9_1_interface_declarations/sec_9_1_1_interface_modifiers/sec_9_1_1_1_abstract_interfaces/SampleTest.java new file mode 100644 index 00000000..2c897dfb --- /dev/null +++ b/src/test/resources/ch_9_interfaces/sec_9_1_interface_declarations/sec_9_1_1_interface_modifiers/sec_9_1_1_1_abstract_interfaces/SampleTest.java @@ -0,0 +1,9 @@ +package org.eolang.j2eo; + +public class SampleTest { + + public static void Main (String[] args) { + + } + +} diff --git a/src/test/resources/ch_9_interfaces/sec_9_1_interface_declarations/sec_9_1_1_interface_modifiers/sec_9_1_1_2_strictfp_interfaces/SampleTest.java b/src/test/resources/ch_9_interfaces/sec_9_1_interface_declarations/sec_9_1_1_interface_modifiers/sec_9_1_1_2_strictfp_interfaces/SampleTest.java new file mode 100644 index 00000000..2c897dfb --- /dev/null +++ b/src/test/resources/ch_9_interfaces/sec_9_1_interface_declarations/sec_9_1_1_interface_modifiers/sec_9_1_1_2_strictfp_interfaces/SampleTest.java @@ -0,0 +1,9 @@ +package org.eolang.j2eo; + +public class SampleTest { + + public static void Main (String[] args) { + + } + +} diff --git a/src/test/resources/ch_9_interfaces/sec_9_1_interface_declarations/sec_9_1_1_interface_modifiers/sec_9_1_1_3_static_interfaces/SampleTest.java b/src/test/resources/ch_9_interfaces/sec_9_1_interface_declarations/sec_9_1_1_interface_modifiers/sec_9_1_1_3_static_interfaces/SampleTest.java new file mode 100644 index 00000000..2c897dfb --- /dev/null +++ b/src/test/resources/ch_9_interfaces/sec_9_1_interface_declarations/sec_9_1_1_interface_modifiers/sec_9_1_1_3_static_interfaces/SampleTest.java @@ -0,0 +1,9 @@ +package org.eolang.j2eo; + +public class SampleTest { + + public static void Main (String[] args) { + + } + +} diff --git a/src/test/resources/ch_9_interfaces/sec_9_1_interface_declarations/sec_9_1_2_generic_interfaces_and_type_parameters/SampleTest.java b/src/test/resources/ch_9_interfaces/sec_9_1_interface_declarations/sec_9_1_2_generic_interfaces_and_type_parameters/SampleTest.java new file mode 100644 index 00000000..2c897dfb --- /dev/null +++ b/src/test/resources/ch_9_interfaces/sec_9_1_interface_declarations/sec_9_1_2_generic_interfaces_and_type_parameters/SampleTest.java @@ -0,0 +1,9 @@ +package org.eolang.j2eo; + +public class SampleTest { + + public static void Main (String[] args) { + + } + +} diff --git a/src/test/resources/ch_9_interfaces/sec_9_1_interface_declarations/sec_9_1_3_superinterfaces_and_subinterfaces/SampleTest.java b/src/test/resources/ch_9_interfaces/sec_9_1_interface_declarations/sec_9_1_3_superinterfaces_and_subinterfaces/SampleTest.java new file mode 100644 index 00000000..2c897dfb --- /dev/null +++ b/src/test/resources/ch_9_interfaces/sec_9_1_interface_declarations/sec_9_1_3_superinterfaces_and_subinterfaces/SampleTest.java @@ -0,0 +1,9 @@ +package org.eolang.j2eo; + +public class SampleTest { + + public static void Main (String[] args) { + + } + +} diff --git a/src/test/resources/ch_9_interfaces/sec_9_1_interface_declarations/sec_9_1_4_interface_body_and_member_declrs/SampleTest.java b/src/test/resources/ch_9_interfaces/sec_9_1_interface_declarations/sec_9_1_4_interface_body_and_member_declrs/SampleTest.java new file mode 100644 index 00000000..2c897dfb --- /dev/null +++ b/src/test/resources/ch_9_interfaces/sec_9_1_interface_declarations/sec_9_1_4_interface_body_and_member_declrs/SampleTest.java @@ -0,0 +1,9 @@ +package org.eolang.j2eo; + +public class SampleTest { + + public static void Main (String[] args) { + + } + +} diff --git a/src/test/resources/ch_9_interfaces/sec_9_2_interface_members/SampleTest.java b/src/test/resources/ch_9_interfaces/sec_9_2_interface_members/SampleTest.java new file mode 100644 index 00000000..2c897dfb --- /dev/null +++ b/src/test/resources/ch_9_interfaces/sec_9_2_interface_members/SampleTest.java @@ -0,0 +1,9 @@ +package org.eolang.j2eo; + +public class SampleTest { + + public static void Main (String[] args) { + + } + +} diff --git a/src/test/resources/ch_9_interfaces/sec_9_3_field_constant_declarations/sec_9_3_1_init_of_fields_in_interfaces/SampleTest.java b/src/test/resources/ch_9_interfaces/sec_9_3_field_constant_declarations/sec_9_3_1_init_of_fields_in_interfaces/SampleTest.java new file mode 100644 index 00000000..2c897dfb --- /dev/null +++ b/src/test/resources/ch_9_interfaces/sec_9_3_field_constant_declarations/sec_9_3_1_init_of_fields_in_interfaces/SampleTest.java @@ -0,0 +1,9 @@ +package org.eolang.j2eo; + +public class SampleTest { + + public static void Main (String[] args) { + + } + +} diff --git a/src/test/resources/ch_9_interfaces/sec_9_4_method_declarations/sec_9_4_1_inheritance_and_overriding/sec_9_4_1_1_overriding_by_instance_methods/SampleTest.java b/src/test/resources/ch_9_interfaces/sec_9_4_method_declarations/sec_9_4_1_inheritance_and_overriding/sec_9_4_1_1_overriding_by_instance_methods/SampleTest.java new file mode 100644 index 00000000..2c897dfb --- /dev/null +++ b/src/test/resources/ch_9_interfaces/sec_9_4_method_declarations/sec_9_4_1_inheritance_and_overriding/sec_9_4_1_1_overriding_by_instance_methods/SampleTest.java @@ -0,0 +1,9 @@ +package org.eolang.j2eo; + +public class SampleTest { + + public static void Main (String[] args) { + + } + +} diff --git a/src/test/resources/ch_9_interfaces/sec_9_4_method_declarations/sec_9_4_1_inheritance_and_overriding/sec_9_4_1_2_requirements_in_overriding/SampleTest.java b/src/test/resources/ch_9_interfaces/sec_9_4_method_declarations/sec_9_4_1_inheritance_and_overriding/sec_9_4_1_2_requirements_in_overriding/SampleTest.java new file mode 100644 index 00000000..2c897dfb --- /dev/null +++ b/src/test/resources/ch_9_interfaces/sec_9_4_method_declarations/sec_9_4_1_inheritance_and_overriding/sec_9_4_1_2_requirements_in_overriding/SampleTest.java @@ -0,0 +1,9 @@ +package org.eolang.j2eo; + +public class SampleTest { + + public static void Main (String[] args) { + + } + +} diff --git a/src/test/resources/ch_9_interfaces/sec_9_4_method_declarations/sec_9_4_1_inheritance_and_overriding/sec_9_4_1_3_inheriting_methods_with_override_equivalent_signatures/SampleTest.java b/src/test/resources/ch_9_interfaces/sec_9_4_method_declarations/sec_9_4_1_inheritance_and_overriding/sec_9_4_1_3_inheriting_methods_with_override_equivalent_signatures/SampleTest.java new file mode 100644 index 00000000..2c897dfb --- /dev/null +++ b/src/test/resources/ch_9_interfaces/sec_9_4_method_declarations/sec_9_4_1_inheritance_and_overriding/sec_9_4_1_3_inheriting_methods_with_override_equivalent_signatures/SampleTest.java @@ -0,0 +1,9 @@ +package org.eolang.j2eo; + +public class SampleTest { + + public static void Main (String[] args) { + + } + +} diff --git a/src/test/resources/ch_9_interfaces/sec_9_4_method_declarations/sec_9_4_2_overloading/SampleTest.java b/src/test/resources/ch_9_interfaces/sec_9_4_method_declarations/sec_9_4_2_overloading/SampleTest.java new file mode 100644 index 00000000..2c897dfb --- /dev/null +++ b/src/test/resources/ch_9_interfaces/sec_9_4_method_declarations/sec_9_4_2_overloading/SampleTest.java @@ -0,0 +1,9 @@ +package org.eolang.j2eo; + +public class SampleTest { + + public static void Main (String[] args) { + + } + +} diff --git a/src/test/resources/ch_9_interfaces/sec_9_4_method_declarations/sec_9_4_3_interface_method_body/SampleTest.java b/src/test/resources/ch_9_interfaces/sec_9_4_method_declarations/sec_9_4_3_interface_method_body/SampleTest.java new file mode 100644 index 00000000..2c897dfb --- /dev/null +++ b/src/test/resources/ch_9_interfaces/sec_9_4_method_declarations/sec_9_4_3_interface_method_body/SampleTest.java @@ -0,0 +1,9 @@ +package org.eolang.j2eo; + +public class SampleTest { + + public static void Main (String[] args) { + + } + +} diff --git a/src/test/resources/ch_9_interfaces/sec_9_5_member_class_and_interface_declarations/SampleTest.java b/src/test/resources/ch_9_interfaces/sec_9_5_member_class_and_interface_declarations/SampleTest.java new file mode 100644 index 00000000..2c897dfb --- /dev/null +++ b/src/test/resources/ch_9_interfaces/sec_9_5_member_class_and_interface_declarations/SampleTest.java @@ -0,0 +1,9 @@ +package org.eolang.j2eo; + +public class SampleTest { + + public static void Main (String[] args) { + + } + +} diff --git a/src/test/resources/ch_9_interfaces/sec_9_6_annotation_interfaces/sec_9_6_1_annotation_interface_elements/SampleTest.java b/src/test/resources/ch_9_interfaces/sec_9_6_annotation_interfaces/sec_9_6_1_annotation_interface_elements/SampleTest.java new file mode 100644 index 00000000..2c897dfb --- /dev/null +++ b/src/test/resources/ch_9_interfaces/sec_9_6_annotation_interfaces/sec_9_6_1_annotation_interface_elements/SampleTest.java @@ -0,0 +1,9 @@ +package org.eolang.j2eo; + +public class SampleTest { + + public static void Main (String[] args) { + + } + +} diff --git a/src/test/resources/ch_9_interfaces/sec_9_6_annotation_interfaces/sec_9_6_2_defaults_for_annotation_interface_elements/SampleTest.java b/src/test/resources/ch_9_interfaces/sec_9_6_annotation_interfaces/sec_9_6_2_defaults_for_annotation_interface_elements/SampleTest.java new file mode 100644 index 00000000..2c897dfb --- /dev/null +++ b/src/test/resources/ch_9_interfaces/sec_9_6_annotation_interfaces/sec_9_6_2_defaults_for_annotation_interface_elements/SampleTest.java @@ -0,0 +1,9 @@ +package org.eolang.j2eo; + +public class SampleTest { + + public static void Main (String[] args) { + + } + +} diff --git a/src/test/resources/ch_9_interfaces/sec_9_6_annotation_interfaces/sec_9_6_3_repeatable_annoation_interfaces/SampleTest.java b/src/test/resources/ch_9_interfaces/sec_9_6_annotation_interfaces/sec_9_6_3_repeatable_annoation_interfaces/SampleTest.java new file mode 100644 index 00000000..2c897dfb --- /dev/null +++ b/src/test/resources/ch_9_interfaces/sec_9_6_annotation_interfaces/sec_9_6_3_repeatable_annoation_interfaces/SampleTest.java @@ -0,0 +1,9 @@ +package org.eolang.j2eo; + +public class SampleTest { + + public static void Main (String[] args) { + + } + +} diff --git a/src/test/resources/ch_9_interfaces/sec_9_6_annotation_interfaces/sec_9_6_4_predefined_annoation_interfaces/sec_9_6_4_1_target/SampleTest.java b/src/test/resources/ch_9_interfaces/sec_9_6_annotation_interfaces/sec_9_6_4_predefined_annoation_interfaces/sec_9_6_4_1_target/SampleTest.java new file mode 100644 index 00000000..2c897dfb --- /dev/null +++ b/src/test/resources/ch_9_interfaces/sec_9_6_annotation_interfaces/sec_9_6_4_predefined_annoation_interfaces/sec_9_6_4_1_target/SampleTest.java @@ -0,0 +1,9 @@ +package org.eolang.j2eo; + +public class SampleTest { + + public static void Main (String[] args) { + + } + +} diff --git a/src/test/resources/ch_9_interfaces/sec_9_6_annotation_interfaces/sec_9_6_4_predefined_annoation_interfaces/sec_9_6_4_2_retention/SampleTest.java b/src/test/resources/ch_9_interfaces/sec_9_6_annotation_interfaces/sec_9_6_4_predefined_annoation_interfaces/sec_9_6_4_2_retention/SampleTest.java new file mode 100644 index 00000000..2c897dfb --- /dev/null +++ b/src/test/resources/ch_9_interfaces/sec_9_6_annotation_interfaces/sec_9_6_4_predefined_annoation_interfaces/sec_9_6_4_2_retention/SampleTest.java @@ -0,0 +1,9 @@ +package org.eolang.j2eo; + +public class SampleTest { + + public static void Main (String[] args) { + + } + +} diff --git a/src/test/resources/ch_9_interfaces/sec_9_6_annotation_interfaces/sec_9_6_4_predefined_annoation_interfaces/sec_9_6_4_3_inherited/SampleTest.java b/src/test/resources/ch_9_interfaces/sec_9_6_annotation_interfaces/sec_9_6_4_predefined_annoation_interfaces/sec_9_6_4_3_inherited/SampleTest.java new file mode 100644 index 00000000..2c897dfb --- /dev/null +++ b/src/test/resources/ch_9_interfaces/sec_9_6_annotation_interfaces/sec_9_6_4_predefined_annoation_interfaces/sec_9_6_4_3_inherited/SampleTest.java @@ -0,0 +1,9 @@ +package org.eolang.j2eo; + +public class SampleTest { + + public static void Main (String[] args) { + + } + +} diff --git a/src/test/resources/ch_9_interfaces/sec_9_6_annotation_interfaces/sec_9_6_4_predefined_annoation_interfaces/sec_9_6_4_4_override/SampleTest.java b/src/test/resources/ch_9_interfaces/sec_9_6_annotation_interfaces/sec_9_6_4_predefined_annoation_interfaces/sec_9_6_4_4_override/SampleTest.java new file mode 100644 index 00000000..2c897dfb --- /dev/null +++ b/src/test/resources/ch_9_interfaces/sec_9_6_annotation_interfaces/sec_9_6_4_predefined_annoation_interfaces/sec_9_6_4_4_override/SampleTest.java @@ -0,0 +1,9 @@ +package org.eolang.j2eo; + +public class SampleTest { + + public static void Main (String[] args) { + + } + +} diff --git a/src/test/resources/ch_9_interfaces/sec_9_6_annotation_interfaces/sec_9_6_4_predefined_annoation_interfaces/sec_9_6_4_5_suppress_warnings/SampleTest.java b/src/test/resources/ch_9_interfaces/sec_9_6_annotation_interfaces/sec_9_6_4_predefined_annoation_interfaces/sec_9_6_4_5_suppress_warnings/SampleTest.java new file mode 100644 index 00000000..2c897dfb --- /dev/null +++ b/src/test/resources/ch_9_interfaces/sec_9_6_annotation_interfaces/sec_9_6_4_predefined_annoation_interfaces/sec_9_6_4_5_suppress_warnings/SampleTest.java @@ -0,0 +1,9 @@ +package org.eolang.j2eo; + +public class SampleTest { + + public static void Main (String[] args) { + + } + +} diff --git a/src/test/resources/ch_9_interfaces/sec_9_6_annotation_interfaces/sec_9_6_4_predefined_annoation_interfaces/sec_9_6_4_6_deprecated/SampleTest.java b/src/test/resources/ch_9_interfaces/sec_9_6_annotation_interfaces/sec_9_6_4_predefined_annoation_interfaces/sec_9_6_4_6_deprecated/SampleTest.java new file mode 100644 index 00000000..2c897dfb --- /dev/null +++ b/src/test/resources/ch_9_interfaces/sec_9_6_annotation_interfaces/sec_9_6_4_predefined_annoation_interfaces/sec_9_6_4_6_deprecated/SampleTest.java @@ -0,0 +1,9 @@ +package org.eolang.j2eo; + +public class SampleTest { + + public static void Main (String[] args) { + + } + +} diff --git a/src/test/resources/ch_9_interfaces/sec_9_6_annotation_interfaces/sec_9_6_4_predefined_annoation_interfaces/sec_9_6_4_7_safe_varargs/SampleTest.java b/src/test/resources/ch_9_interfaces/sec_9_6_annotation_interfaces/sec_9_6_4_predefined_annoation_interfaces/sec_9_6_4_7_safe_varargs/SampleTest.java new file mode 100644 index 00000000..2c897dfb --- /dev/null +++ b/src/test/resources/ch_9_interfaces/sec_9_6_annotation_interfaces/sec_9_6_4_predefined_annoation_interfaces/sec_9_6_4_7_safe_varargs/SampleTest.java @@ -0,0 +1,9 @@ +package org.eolang.j2eo; + +public class SampleTest { + + public static void Main (String[] args) { + + } + +} diff --git a/src/test/resources/ch_9_interfaces/sec_9_6_annotation_interfaces/sec_9_6_4_predefined_annoation_interfaces/sec_9_6_4_8_repeatable/SampleTest.java b/src/test/resources/ch_9_interfaces/sec_9_6_annotation_interfaces/sec_9_6_4_predefined_annoation_interfaces/sec_9_6_4_8_repeatable/SampleTest.java new file mode 100644 index 00000000..2c897dfb --- /dev/null +++ b/src/test/resources/ch_9_interfaces/sec_9_6_annotation_interfaces/sec_9_6_4_predefined_annoation_interfaces/sec_9_6_4_8_repeatable/SampleTest.java @@ -0,0 +1,9 @@ +package org.eolang.j2eo; + +public class SampleTest { + + public static void Main (String[] args) { + + } + +} diff --git a/src/test/resources/ch_9_interfaces/sec_9_6_annotation_interfaces/sec_9_6_4_predefined_annoation_interfaces/sec_9_6_4_9_functional_interface/SampleTest.java b/src/test/resources/ch_9_interfaces/sec_9_6_annotation_interfaces/sec_9_6_4_predefined_annoation_interfaces/sec_9_6_4_9_functional_interface/SampleTest.java new file mode 100644 index 00000000..2c897dfb --- /dev/null +++ b/src/test/resources/ch_9_interfaces/sec_9_6_annotation_interfaces/sec_9_6_4_predefined_annoation_interfaces/sec_9_6_4_9_functional_interface/SampleTest.java @@ -0,0 +1,9 @@ +package org.eolang.j2eo; + +public class SampleTest { + + public static void Main (String[] args) { + + } + +} diff --git a/src/test/resources/ch_9_interfaces/sec_9_7_annotations/sec_9_7_1_normal_annotations/SampleTest.java b/src/test/resources/ch_9_interfaces/sec_9_7_annotations/sec_9_7_1_normal_annotations/SampleTest.java new file mode 100644 index 00000000..2c897dfb --- /dev/null +++ b/src/test/resources/ch_9_interfaces/sec_9_7_annotations/sec_9_7_1_normal_annotations/SampleTest.java @@ -0,0 +1,9 @@ +package org.eolang.j2eo; + +public class SampleTest { + + public static void Main (String[] args) { + + } + +} diff --git a/src/test/resources/ch_9_interfaces/sec_9_7_annotations/sec_9_7_2_marker_annotations/SampleTest.java b/src/test/resources/ch_9_interfaces/sec_9_7_annotations/sec_9_7_2_marker_annotations/SampleTest.java new file mode 100644 index 00000000..2c897dfb --- /dev/null +++ b/src/test/resources/ch_9_interfaces/sec_9_7_annotations/sec_9_7_2_marker_annotations/SampleTest.java @@ -0,0 +1,9 @@ +package org.eolang.j2eo; + +public class SampleTest { + + public static void Main (String[] args) { + + } + +} diff --git a/src/test/resources/ch_9_interfaces/sec_9_7_annotations/sec_9_7_3_single_element_annotations/SampleTest.java b/src/test/resources/ch_9_interfaces/sec_9_7_annotations/sec_9_7_3_single_element_annotations/SampleTest.java new file mode 100644 index 00000000..2c897dfb --- /dev/null +++ b/src/test/resources/ch_9_interfaces/sec_9_7_annotations/sec_9_7_3_single_element_annotations/SampleTest.java @@ -0,0 +1,9 @@ +package org.eolang.j2eo; + +public class SampleTest { + + public static void Main (String[] args) { + + } + +} diff --git a/src/test/resources/ch_9_interfaces/sec_9_7_annotations/sec_9_7_5_multiple_annotations_of_the_same_interface/SampleTest.java b/src/test/resources/ch_9_interfaces/sec_9_7_annotations/sec_9_7_5_multiple_annotations_of_the_same_interface/SampleTest.java new file mode 100644 index 00000000..2c897dfb --- /dev/null +++ b/src/test/resources/ch_9_interfaces/sec_9_7_annotations/sec_9_7_5_multiple_annotations_of_the_same_interface/SampleTest.java @@ -0,0 +1,9 @@ +package org.eolang.j2eo; + +public class SampleTest { + + public static void Main (String[] args) { + + } + +} diff --git a/src/test/resources/ch_9_interfaces/sec_9_8_functional_interfaces/SampleTest.java b/src/test/resources/ch_9_interfaces/sec_9_8_functional_interfaces/SampleTest.java new file mode 100644 index 00000000..2c897dfb --- /dev/null +++ b/src/test/resources/ch_9_interfaces/sec_9_8_functional_interfaces/SampleTest.java @@ -0,0 +1,9 @@ +package org.eolang.j2eo; + +public class SampleTest { + + public static void Main (String[] args) { + + } + +} diff --git a/src/test/resources/ch_9_interfaces/sec_9_9_function_types/SampleTest.java b/src/test/resources/ch_9_interfaces/sec_9_9_function_types/SampleTest.java new file mode 100644 index 00000000..2c897dfb --- /dev/null +++ b/src/test/resources/ch_9_interfaces/sec_9_9_function_types/SampleTest.java @@ -0,0 +1,9 @@ +package org.eolang.j2eo; + +public class SampleTest { + + public static void Main (String[] args) { + + } + +}