From 76e80c394958babca9ba2da32a99c7ed6832e5b8 Mon Sep 17 00:00:00 2001 From: "pquitslund@google.com" Date: Tue, 5 Feb 2013 00:02:08 +0000 Subject: [PATCH] Generated scanner and parser tests. Review URL: https://codereview.chromium.org//12188023 git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@18094 260f80e4-7a28-3924-810f-c04153c831b5 --- .../test/generated/parser_test.dart | 8218 +++++++++++++++++ .../test/generated/scanner_test.dart | 2063 +++++ .../test/generated/test_support.dart | 622 ++ 3 files changed, 10903 insertions(+) create mode 100644 pkg/analyzer-experimental/test/generated/parser_test.dart create mode 100644 pkg/analyzer-experimental/test/generated/scanner_test.dart create mode 100644 pkg/analyzer-experimental/test/generated/test_support.dart diff --git a/pkg/analyzer-experimental/test/generated/parser_test.dart b/pkg/analyzer-experimental/test/generated/parser_test.dart new file mode 100644 index 00000000000..efeded0c46a --- /dev/null +++ b/pkg/analyzer-experimental/test/generated/parser_test.dart @@ -0,0 +1,8218 @@ +// This code was auto-generated, is not intended to be edited, and is subject to +// significant change. Please see the README file for more information. + +library engine.parser_test; + +import 'dart:collection'; +import 'package:analyzer-experimental/src/generated/java_core.dart'; +import 'package:analyzer-experimental/src/generated/java_engine.dart'; +import 'package:analyzer-experimental/src/generated/java_junit.dart'; +import 'package:analyzer-experimental/src/generated/source.dart'; +import 'package:analyzer-experimental/src/generated/error.dart'; +import 'package:analyzer-experimental/src/generated/scanner.dart'; +import 'package:analyzer-experimental/src/generated/ast.dart'; +import 'package:analyzer-experimental/src/generated/parser.dart'; +import 'package:analyzer-experimental/src/generated/utilities_dart.dart'; +import 'package:unittest/unittest.dart' as _ut; +import 'test_support.dart'; +import 'scanner_test.dart' show TokenFactory; + +class ParserTestCase extends EngineTestCase { + /** + * An empty array of objects used as arguments to zero-argument methods. + */ + static List _EMPTY_ARGUMENTS = new List.fixedLength(0); + /** + * Invoke a parse method in {@link Parser}. The method is assumed to have the given number and + * type of parameters and will be invoked with the given arguments. + *

+ * The given source is scanned and the parser is initialized to start with the first token in the + * source before the parse method is invoked. + * @param methodName the name of the parse method that should be invoked to parse the source + * @param objects the values of the arguments to the method + * @param source the source to be parsed by the parse method + * @return the result of invoking the method + * @throws Exception if the method could not be invoked or throws an exception + * @throws AssertionFailedError if the result is {@code null} or if any errors are produced + */ + static Object parse(String methodName, List objects, String source) => parse2(methodName, objects, source, new List.fixedLength(0)); + /** + * Invoke a parse method in {@link Parser}. The method is assumed to have the given number and + * type of parameters and will be invoked with the given arguments. + *

+ * The given source is scanned and the parser is initialized to start with the first token in the + * source before the parse method is invoked. + * @param methodName the name of the parse method that should be invoked to parse the source + * @param objects the values of the arguments to the method + * @param source the source to be parsed by the parse method + * @param errorCodes the error codes of the errors that should be generated + * @return the result of invoking the method + * @throws Exception if the method could not be invoked or throws an exception + * @throws AssertionFailedError if the result is {@code null} or the errors produced while + * scanning and parsing the source do not match the expected errors + */ + static Object parse2(String methodName, List objects, String source, List errors) { + GatheringErrorListener listener = new GatheringErrorListener(); + Object result = invokeParserMethod(methodName, objects, source, listener); + listener.assertErrors(errors); + return result; + } + /** + * Invoke a parse method in {@link Parser}. The method is assumed to have the given number and + * type of parameters and will be invoked with the given arguments. + *

+ * The given source is scanned and the parser is initialized to start with the first token in the + * source before the parse method is invoked. + * @param methodName the name of the parse method that should be invoked to parse the source + * @param objects the values of the arguments to the method + * @param source the source to be parsed by the parse method + * @param errorCodes the error codes of the errors that should be generated + * @return the result of invoking the method + * @throws Exception if the method could not be invoked or throws an exception + * @throws AssertionFailedError if the result is {@code null} or the errors produced while + * scanning and parsing the source do not match the expected errors + */ + static Object parse3(String methodName, List objects, String source, List errorCodes) { + GatheringErrorListener listener = new GatheringErrorListener(); + Object result = invokeParserMethod(methodName, objects, source, listener); + listener.assertErrors2(errorCodes); + return result; + } + /** + * Invoke a parse method in {@link Parser}. The method is assumed to have no arguments. + *

+ * The given source is scanned and the parser is initialized to start with the first token in the + * source before the parse method is invoked. + * @param methodName the name of the parse method that should be invoked to parse the source + * @param source the source to be parsed by the parse method + * @param errorCodes the error codes of the errors that should be generated + * @return the result of invoking the method + * @throws Exception if the method could not be invoked or throws an exception + * @throws AssertionFailedError if the result is {@code null} or the errors produced while + * scanning and parsing the source do not match the expected errors + */ + static Object parse4(String methodName, String source, List errorCodes) => parse3(methodName, ParserTestCase._EMPTY_ARGUMENTS, source, errorCodes); + /** + * Parse the given source as a compilation unit. + * @param source the source to be parsed + * @param errorCodes the error codes of the errors that are expected to be found + * @return the compilation unit that was parsed + * @throws Exception if the source could not be parsed, if the compilation errors in the source do + * not match those that are expected, or if the result would have been {@code null} + */ + static CompilationUnit parseCompilationUnit(String source, List errorCodes) { + GatheringErrorListener listener = new GatheringErrorListener(); + StringScanner scanner = new StringScanner(null, source, listener); + listener.setLineInfo(new TestSource(), scanner.lineStarts); + Token token = scanner.tokenize(); + Parser parser = new Parser(null, listener); + CompilationUnit unit = parser.parseCompilationUnit(token); + JUnitTestCase.assertNotNull(unit); + listener.assertErrors2(errorCodes); + return unit; + } + /** + * Parse the given source as an expression. + * @param source the source to be parsed + * @param errorCodes the error codes of the errors that are expected to be found + * @return the expression that was parsed + * @throws Exception if the source could not be parsed, if the compilation errors in the source do + * not match those that are expected, or if the result would have been {@code null} + */ + static Expression parseExpression(String source, List errorCodes) { + GatheringErrorListener listener = new GatheringErrorListener(); + StringScanner scanner = new StringScanner(null, source, listener); + listener.setLineInfo(new TestSource(), scanner.lineStarts); + Token token = scanner.tokenize(); + Parser parser = new Parser(null, listener); + Expression expression = parser.parseExpression(token); + JUnitTestCase.assertNotNull(expression); + listener.assertErrors2(errorCodes); + return expression as Expression; + } + /** + * Parse the given source as a statement. + * @param source the source to be parsed + * @param errorCodes the error codes of the errors that are expected to be found + * @return the statement that was parsed + * @throws Exception if the source could not be parsed, if the compilation errors in the source do + * not match those that are expected, or if the result would have been {@code null} + */ + static Statement parseStatement(String source, List errorCodes) { + GatheringErrorListener listener = new GatheringErrorListener(); + StringScanner scanner = new StringScanner(null, source, listener); + listener.setLineInfo(new TestSource(), scanner.lineStarts); + Token token = scanner.tokenize(); + Parser parser = new Parser(null, listener); + Statement statement = parser.parseStatement(token); + JUnitTestCase.assertNotNull(statement); + listener.assertErrors2(errorCodes); + return statement as Statement; + } + /** + * Parse the given source as a sequence of statements. + * @param source the source to be parsed + * @param expectedCount the number of statements that are expected + * @param errorCodes the error codes of the errors that are expected to be found + * @return the statements that were parsed + * @throws Exception if the source could not be parsed, if the number of statements does not match + * the expected count, if the compilation errors in the source do not match those that + * are expected, or if the result would have been {@code null} + */ + static List parseStatements(String source, int expectedCount, List errorCodes) { + GatheringErrorListener listener = new GatheringErrorListener(); + StringScanner scanner = new StringScanner(null, source, listener); + listener.setLineInfo(new TestSource(), scanner.lineStarts); + Token token = scanner.tokenize(); + Parser parser = new Parser(null, listener); + List statements = parser.parseStatements(token); + EngineTestCase.assertSize(expectedCount, statements); + listener.assertErrors2(errorCodes); + return statements; + } + /** + * Invoke a method in {@link Parser}. The method is assumed to have the given number and type of + * parameters and will be invoked with the given arguments. + *

+ * The given source is scanned and the parser is initialized to start with the first token in the + * source before the method is invoked. + * @param methodName the name of the method that should be invoked + * @param objects the values of the arguments to the method + * @param source the source to be processed by the parse method + * @param listener the error listener that will be used for both scanning and parsing + * @return the result of invoking the method + * @throws Exception if the method could not be invoked or throws an exception + * @throws AssertionFailedError if the result is {@code null} or the errors produced while + * scanning and parsing the source do not match the expected errors + */ + static Object invokeParserMethod(String methodName, List objects, String source, GatheringErrorListener listener) { + StringScanner scanner = new StringScanner(null, source, listener); + Token tokenStream = scanner.tokenize(); + listener.setLineInfo(new TestSource(), scanner.lineStarts); + Parser parser = new Parser(null, listener); + Object result = invokeParserMethodImpl(parser, methodName, objects, tokenStream); + JUnitTestCase.assertNotNull(result); + return result as Object; + } + /** + * Invoke a method in {@link Parser}. The method is assumed to have no arguments. + *

+ * The given source is scanned and the parser is initialized to start with the first token in the + * source before the method is invoked. + * @param methodName the name of the method that should be invoked + * @param source the source to be processed by the parse method + * @param listener the error listener that will be used for both scanning and parsing + * @return the result of invoking the method + * @throws Exception if the method could not be invoked or throws an exception + * @throws AssertionFailedError if the result is {@code null} or the errors produced while + * scanning and parsing the source do not match the expected errors + */ + static Object invokeParserMethod2(String methodName, String source, GatheringErrorListener listener) => invokeParserMethod(methodName, ParserTestCase._EMPTY_ARGUMENTS, source, listener); + /** + * Return a CommentAndMetadata object with the given values that can be used for testing. + * @param comment the comment to be wrapped in the object + * @param annotations the annotations to be wrapped in the object + * @return a CommentAndMetadata object that can be used for testing + */ + CommentAndMetadata commentAndMetadata(Comment comment, List annotations) { + List metadata = new List(); + for (Annotation annotation in annotations) { + metadata.add(annotation); + } + return new CommentAndMetadata(comment, metadata); + } + /** + * Return an empty CommentAndMetadata object that can be used for testing. + * @return an empty CommentAndMetadata object that can be used for testing + */ + CommentAndMetadata emptyCommentAndMetadata() => new CommentAndMetadata(null, new List()); + static dartSuite() { + _ut.group('ParserTestCase', () { + }); + } +} +/** + * Instances of the class {@code ASTValidator} are used to validate the correct construction of an + * AST structure. + */ +class ASTValidator extends GeneralizingASTVisitor { + /** + * A list containing the errors found while traversing the AST structure. + */ + List _errors = new List(); + /** + * Assert that no errors were found while traversing any of the AST structures that have been + * visited. + */ + void assertValid() { + if (!_errors.isEmpty) { + StringBuffer builder = new StringBuffer(); + builder.add("Invalid AST structure:"); + for (String message in _errors) { + builder.add("\r\n "); + builder.add(message); + } + JUnitTestCase.fail(builder.toString()); + } + } + Object visitNode(ASTNode node) { + validate(node); + return super.visitNode(node); + } + /** + * Validate that the given AST node is correctly constructed. + * @param node the AST node being validated + */ + void validate(ASTNode node) { + ASTNode parent12 = node.parent; + if (node is CompilationUnit) { + if (parent12 != null) { + _errors.add("Compilation units should not have a parent"); + } + } else { + if (parent12 == null) { + _errors.add("No parent for ${node.runtimeType.toString()}"); + } + } + if (node.beginToken == null) { + _errors.add("No begin token for ${node.runtimeType.toString()}"); + } + if (node.endToken == null) { + _errors.add("No end token for ${node.runtimeType.toString()}"); + } + int nodeStart = node.offset; + int nodeLength = node.length; + if (nodeStart < 0 || nodeLength < 0) { + _errors.add("No source info for ${node.runtimeType.toString()}"); + } + if (parent12 != null) { + int nodeEnd = nodeStart + nodeLength; + int parentStart = parent12.offset; + int parentEnd = parentStart + parent12.length; + if (nodeStart < parentStart) { + _errors.add("Invalid source start (${nodeStart}) for ${node.runtimeType.toString()} inside ${parent12.runtimeType.toString()} (${parentStart})"); + } + if (nodeEnd > parentEnd) { + _errors.add("Invalid source end (${nodeEnd}) for ${node.runtimeType.toString()} inside ${parent12.runtimeType.toString()} (${parentStart})"); + } + } + } +} +/** + * The class {@code RecoveryParserTest} defines parser tests that test the parsing of invalid code + * sequences to ensure that the correct recovery steps are taken in the parser. + */ +class RecoveryParserTest extends ParserTestCase { + void test_additiveExpression_missing_LHS() { + BinaryExpression expression = ParserTestCase.parseExpression("+ y", [ParserErrorCode.USE_OF_UNARY_PLUS_OPERATOR]); + EngineTestCase.assertInstanceOf(SimpleIdentifier, expression.leftOperand); + JUnitTestCase.assertTrue(expression.leftOperand.isSynthetic()); + } + void test_additiveExpression_missing_LHS_RHS() { + BinaryExpression expression = ParserTestCase.parseExpression("+", [ParserErrorCode.USE_OF_UNARY_PLUS_OPERATOR]); + EngineTestCase.assertInstanceOf(SimpleIdentifier, expression.leftOperand); + JUnitTestCase.assertTrue(expression.leftOperand.isSynthetic()); + EngineTestCase.assertInstanceOf(SimpleIdentifier, expression.rightOperand); + JUnitTestCase.assertTrue(expression.rightOperand.isSynthetic()); + } + void test_additiveExpression_missing_RHS() { + BinaryExpression expression = ParserTestCase.parseExpression("x +", []); + EngineTestCase.assertInstanceOf(SimpleIdentifier, expression.rightOperand); + JUnitTestCase.assertTrue(expression.rightOperand.isSynthetic()); + } + void test_additiveExpression_missing_RHS_super() { + BinaryExpression expression = ParserTestCase.parseExpression("super +", []); + EngineTestCase.assertInstanceOf(SimpleIdentifier, expression.rightOperand); + JUnitTestCase.assertTrue(expression.rightOperand.isSynthetic()); + } + void test_additiveExpression_precedence_multiplicative_left() { + BinaryExpression expression = ParserTestCase.parseExpression("* +", [ParserErrorCode.USE_OF_UNARY_PLUS_OPERATOR]); + EngineTestCase.assertInstanceOf(BinaryExpression, expression.leftOperand); + } + void test_additiveExpression_precedence_multiplicative_right() { + BinaryExpression expression = ParserTestCase.parseExpression("+ *", [ParserErrorCode.USE_OF_UNARY_PLUS_OPERATOR]); + EngineTestCase.assertInstanceOf(BinaryExpression, expression.rightOperand); + } + void test_additiveExpression_super() { + BinaryExpression expression = ParserTestCase.parseExpression("super + +", [ParserErrorCode.USE_OF_UNARY_PLUS_OPERATOR]); + EngineTestCase.assertInstanceOf(BinaryExpression, expression.leftOperand); + } + void test_argumentDefinitionTest_missing_identifier() { + ArgumentDefinitionTest expression = ParserTestCase.parseExpression("?", [ParserErrorCode.MISSING_IDENTIFIER]); + JUnitTestCase.assertTrue(expression.identifier.isSynthetic()); + } + void test_assignmentExpression_missing_compound1() { + AssignmentExpression expression = ParserTestCase.parseExpression("= y = 0", []); + Expression syntheticExpression = expression.leftHandSide; + EngineTestCase.assertInstanceOf(SimpleIdentifier, syntheticExpression); + JUnitTestCase.assertTrue(syntheticExpression.isSynthetic()); + } + void test_assignmentExpression_missing_compound2() { + AssignmentExpression expression = ParserTestCase.parseExpression("x = = 0", []); + Expression syntheticExpression = (expression.rightHandSide as AssignmentExpression).leftHandSide; + EngineTestCase.assertInstanceOf(SimpleIdentifier, syntheticExpression); + JUnitTestCase.assertTrue(syntheticExpression.isSynthetic()); + } + void test_assignmentExpression_missing_compound3() { + AssignmentExpression expression = ParserTestCase.parseExpression("x = y =", []); + Expression syntheticExpression = (expression.rightHandSide as AssignmentExpression).rightHandSide; + EngineTestCase.assertInstanceOf(SimpleIdentifier, syntheticExpression); + JUnitTestCase.assertTrue(syntheticExpression.isSynthetic()); + } + void test_assignmentExpression_missing_LHS() { + AssignmentExpression expression = ParserTestCase.parseExpression("= 0", []); + EngineTestCase.assertInstanceOf(SimpleIdentifier, expression.leftHandSide); + JUnitTestCase.assertTrue(expression.leftHandSide.isSynthetic()); + } + void test_assignmentExpression_missing_RHS() { + AssignmentExpression expression = ParserTestCase.parseExpression("x =", []); + EngineTestCase.assertInstanceOf(SimpleIdentifier, expression.leftHandSide); + JUnitTestCase.assertTrue(expression.rightHandSide.isSynthetic()); + } + void test_bitwiseAndExpression_missing_LHS() { + BinaryExpression expression = ParserTestCase.parseExpression("& y", []); + EngineTestCase.assertInstanceOf(SimpleIdentifier, expression.leftOperand); + JUnitTestCase.assertTrue(expression.leftOperand.isSynthetic()); + } + void test_bitwiseAndExpression_missing_LHS_RHS() { + BinaryExpression expression = ParserTestCase.parseExpression("&", []); + EngineTestCase.assertInstanceOf(SimpleIdentifier, expression.leftOperand); + JUnitTestCase.assertTrue(expression.leftOperand.isSynthetic()); + EngineTestCase.assertInstanceOf(SimpleIdentifier, expression.rightOperand); + JUnitTestCase.assertTrue(expression.rightOperand.isSynthetic()); + } + void test_bitwiseAndExpression_missing_RHS() { + BinaryExpression expression = ParserTestCase.parseExpression("x &", []); + EngineTestCase.assertInstanceOf(SimpleIdentifier, expression.rightOperand); + JUnitTestCase.assertTrue(expression.rightOperand.isSynthetic()); + } + void test_bitwiseAndExpression_missing_RHS_super() { + BinaryExpression expression = ParserTestCase.parseExpression("super &", []); + EngineTestCase.assertInstanceOf(SimpleIdentifier, expression.rightOperand); + JUnitTestCase.assertTrue(expression.rightOperand.isSynthetic()); + } + void test_bitwiseAndExpression_precedence_equality_left() { + BinaryExpression expression = ParserTestCase.parseExpression("== &", []); + EngineTestCase.assertInstanceOf(BinaryExpression, expression.leftOperand); + } + void test_bitwiseAndExpression_precedence_equality_right() { + BinaryExpression expression = ParserTestCase.parseExpression("& ==", []); + EngineTestCase.assertInstanceOf(BinaryExpression, expression.rightOperand); + } + void test_bitwiseAndExpression_super() { + BinaryExpression expression = ParserTestCase.parseExpression("super & &", []); + EngineTestCase.assertInstanceOf(BinaryExpression, expression.leftOperand); + } + void test_bitwiseOrExpression_missing_LHS() { + BinaryExpression expression = ParserTestCase.parseExpression("| y", []); + EngineTestCase.assertInstanceOf(SimpleIdentifier, expression.leftOperand); + JUnitTestCase.assertTrue(expression.leftOperand.isSynthetic()); + } + void test_bitwiseOrExpression_missing_LHS_RHS() { + BinaryExpression expression = ParserTestCase.parseExpression("|", []); + EngineTestCase.assertInstanceOf(SimpleIdentifier, expression.leftOperand); + JUnitTestCase.assertTrue(expression.leftOperand.isSynthetic()); + EngineTestCase.assertInstanceOf(SimpleIdentifier, expression.rightOperand); + JUnitTestCase.assertTrue(expression.rightOperand.isSynthetic()); + } + void test_bitwiseOrExpression_missing_RHS() { + BinaryExpression expression = ParserTestCase.parseExpression("x |", []); + EngineTestCase.assertInstanceOf(SimpleIdentifier, expression.rightOperand); + JUnitTestCase.assertTrue(expression.rightOperand.isSynthetic()); + } + void test_bitwiseOrExpression_missing_RHS_super() { + BinaryExpression expression = ParserTestCase.parseExpression("super |", []); + EngineTestCase.assertInstanceOf(SimpleIdentifier, expression.rightOperand); + JUnitTestCase.assertTrue(expression.rightOperand.isSynthetic()); + } + void test_bitwiseOrExpression_precedence_xor_left() { + BinaryExpression expression = ParserTestCase.parseExpression("^ |", []); + EngineTestCase.assertInstanceOf(BinaryExpression, expression.leftOperand); + } + void test_bitwiseOrExpression_precedence_xor_right() { + BinaryExpression expression = ParserTestCase.parseExpression("| ^", []); + EngineTestCase.assertInstanceOf(BinaryExpression, expression.rightOperand); + } + void test_bitwiseOrExpression_super() { + BinaryExpression expression = ParserTestCase.parseExpression("super | |", []); + EngineTestCase.assertInstanceOf(BinaryExpression, expression.leftOperand); + } + void test_bitwiseXorExpression_missing_LHS() { + BinaryExpression expression = ParserTestCase.parseExpression("^ y", []); + EngineTestCase.assertInstanceOf(SimpleIdentifier, expression.leftOperand); + JUnitTestCase.assertTrue(expression.leftOperand.isSynthetic()); + } + void test_bitwiseXorExpression_missing_LHS_RHS() { + BinaryExpression expression = ParserTestCase.parseExpression("^", []); + EngineTestCase.assertInstanceOf(SimpleIdentifier, expression.leftOperand); + JUnitTestCase.assertTrue(expression.leftOperand.isSynthetic()); + EngineTestCase.assertInstanceOf(SimpleIdentifier, expression.rightOperand); + JUnitTestCase.assertTrue(expression.rightOperand.isSynthetic()); + } + void test_bitwiseXorExpression_missing_RHS() { + BinaryExpression expression = ParserTestCase.parseExpression("x ^", []); + EngineTestCase.assertInstanceOf(SimpleIdentifier, expression.rightOperand); + JUnitTestCase.assertTrue(expression.rightOperand.isSynthetic()); + } + void test_bitwiseXorExpression_missing_RHS_super() { + BinaryExpression expression = ParserTestCase.parseExpression("super ^", []); + EngineTestCase.assertInstanceOf(SimpleIdentifier, expression.rightOperand); + JUnitTestCase.assertTrue(expression.rightOperand.isSynthetic()); + } + void test_bitwiseXorExpression_precedence_and_left() { + BinaryExpression expression = ParserTestCase.parseExpression("& ^", []); + EngineTestCase.assertInstanceOf(BinaryExpression, expression.leftOperand); + } + void test_bitwiseXorExpression_precedence_and_right() { + BinaryExpression expression = ParserTestCase.parseExpression("^ &", []); + EngineTestCase.assertInstanceOf(BinaryExpression, expression.rightOperand); + } + void test_bitwiseXorExpression_super() { + BinaryExpression expression = ParserTestCase.parseExpression("super ^ ^", []); + EngineTestCase.assertInstanceOf(BinaryExpression, expression.leftOperand); + } + void test_conditionalExpression_missingElse() { + ConditionalExpression expression = ParserTestCase.parse4("parseConditionalExpression", "x ? y :", []); + EngineTestCase.assertInstanceOf(SimpleIdentifier, expression.elseExpression); + JUnitTestCase.assertTrue(expression.elseExpression.isSynthetic()); + } + void test_conditionalExpression_missingThen() { + ConditionalExpression expression = ParserTestCase.parse4("parseConditionalExpression", "x ? : z", []); + EngineTestCase.assertInstanceOf(SimpleIdentifier, expression.thenExpression); + JUnitTestCase.assertTrue(expression.thenExpression.isSynthetic()); + } + void test_equalityExpression_missing_LHS() { + BinaryExpression expression = ParserTestCase.parseExpression("== y", []); + EngineTestCase.assertInstanceOf(SimpleIdentifier, expression.leftOperand); + JUnitTestCase.assertTrue(expression.leftOperand.isSynthetic()); + } + void test_equalityExpression_missing_LHS_RHS() { + BinaryExpression expression = ParserTestCase.parseExpression("==", []); + EngineTestCase.assertInstanceOf(SimpleIdentifier, expression.leftOperand); + JUnitTestCase.assertTrue(expression.leftOperand.isSynthetic()); + EngineTestCase.assertInstanceOf(SimpleIdentifier, expression.rightOperand); + JUnitTestCase.assertTrue(expression.rightOperand.isSynthetic()); + } + void test_equalityExpression_missing_RHS() { + BinaryExpression expression = ParserTestCase.parseExpression("x ==", []); + EngineTestCase.assertInstanceOf(SimpleIdentifier, expression.rightOperand); + JUnitTestCase.assertTrue(expression.rightOperand.isSynthetic()); + } + void test_equalityExpression_missing_RHS_super() { + BinaryExpression expression = ParserTestCase.parseExpression("super ==", []); + EngineTestCase.assertInstanceOf(SimpleIdentifier, expression.rightOperand); + JUnitTestCase.assertTrue(expression.rightOperand.isSynthetic()); + } + void test_equalityExpression_precedence_relational_left() { + BinaryExpression expression = ParserTestCase.parseExpression("is ==", [ParserErrorCode.MISSING_IDENTIFIER]); + EngineTestCase.assertInstanceOf(IsExpression, expression.leftOperand); + } + void test_equalityExpression_precedence_relational_right() { + BinaryExpression expression = ParserTestCase.parseExpression("== is", [ParserErrorCode.MISSING_IDENTIFIER]); + EngineTestCase.assertInstanceOf(IsExpression, expression.rightOperand); + } + void test_equalityExpression_super() { + BinaryExpression expression = ParserTestCase.parseExpression("super == ==", []); + EngineTestCase.assertInstanceOf(BinaryExpression, expression.leftOperand); + } + void test_expressionList_multiple_end() { + List result = ParserTestCase.parse4("parseExpressionList", ", 2, 3, 4", []); + EngineTestCase.assertSize(4, result); + Expression syntheticExpression = result[0]; + EngineTestCase.assertInstanceOf(SimpleIdentifier, syntheticExpression); + JUnitTestCase.assertTrue(syntheticExpression.isSynthetic()); + } + void test_expressionList_multiple_middle() { + List result = ParserTestCase.parse4("parseExpressionList", "1, 2, , 4", []); + EngineTestCase.assertSize(4, result); + Expression syntheticExpression = result[2]; + EngineTestCase.assertInstanceOf(SimpleIdentifier, syntheticExpression); + JUnitTestCase.assertTrue(syntheticExpression.isSynthetic()); + } + void test_expressionList_multiple_start() { + List result = ParserTestCase.parse4("parseExpressionList", "1, 2, 3,", []); + EngineTestCase.assertSize(4, result); + Expression syntheticExpression = result[3]; + EngineTestCase.assertInstanceOf(SimpleIdentifier, syntheticExpression); + JUnitTestCase.assertTrue(syntheticExpression.isSynthetic()); + } + void test_logicalAndExpression_missing_LHS() { + BinaryExpression expression = ParserTestCase.parseExpression("&& y", []); + EngineTestCase.assertInstanceOf(SimpleIdentifier, expression.leftOperand); + JUnitTestCase.assertTrue(expression.leftOperand.isSynthetic()); + } + void test_logicalAndExpression_missing_LHS_RHS() { + BinaryExpression expression = ParserTestCase.parseExpression("&&", []); + EngineTestCase.assertInstanceOf(SimpleIdentifier, expression.leftOperand); + JUnitTestCase.assertTrue(expression.leftOperand.isSynthetic()); + EngineTestCase.assertInstanceOf(SimpleIdentifier, expression.rightOperand); + JUnitTestCase.assertTrue(expression.rightOperand.isSynthetic()); + } + void test_logicalAndExpression_missing_RHS() { + BinaryExpression expression = ParserTestCase.parseExpression("x &&", []); + EngineTestCase.assertInstanceOf(SimpleIdentifier, expression.rightOperand); + JUnitTestCase.assertTrue(expression.rightOperand.isSynthetic()); + } + void test_logicalAndExpression_precedence_bitwiseOr_left() { + BinaryExpression expression = ParserTestCase.parseExpression("| &&", []); + EngineTestCase.assertInstanceOf(BinaryExpression, expression.leftOperand); + } + void test_logicalAndExpression_precedence_bitwiseOr_right() { + BinaryExpression expression = ParserTestCase.parseExpression("&& |", []); + EngineTestCase.assertInstanceOf(BinaryExpression, expression.rightOperand); + } + void test_logicalOrExpression_missing_LHS() { + BinaryExpression expression = ParserTestCase.parseExpression("|| y", []); + EngineTestCase.assertInstanceOf(SimpleIdentifier, expression.leftOperand); + JUnitTestCase.assertTrue(expression.leftOperand.isSynthetic()); + } + void test_logicalOrExpression_missing_LHS_RHS() { + BinaryExpression expression = ParserTestCase.parseExpression("||", []); + EngineTestCase.assertInstanceOf(SimpleIdentifier, expression.leftOperand); + JUnitTestCase.assertTrue(expression.leftOperand.isSynthetic()); + EngineTestCase.assertInstanceOf(SimpleIdentifier, expression.rightOperand); + JUnitTestCase.assertTrue(expression.rightOperand.isSynthetic()); + } + void test_logicalOrExpression_missing_RHS() { + BinaryExpression expression = ParserTestCase.parseExpression("x ||", []); + EngineTestCase.assertInstanceOf(SimpleIdentifier, expression.rightOperand); + JUnitTestCase.assertTrue(expression.rightOperand.isSynthetic()); + } + void test_logicalOrExpression_precedence_logicalAnd_left() { + BinaryExpression expression = ParserTestCase.parseExpression("&& ||", []); + EngineTestCase.assertInstanceOf(BinaryExpression, expression.leftOperand); + } + void test_logicalOrExpression_precedence_logicalAnd_right() { + BinaryExpression expression = ParserTestCase.parseExpression("|| &&", []); + EngineTestCase.assertInstanceOf(BinaryExpression, expression.rightOperand); + } + void test_multiplicativeExpression_missing_LHS() { + BinaryExpression expression = ParserTestCase.parseExpression("* y", []); + EngineTestCase.assertInstanceOf(SimpleIdentifier, expression.leftOperand); + JUnitTestCase.assertTrue(expression.leftOperand.isSynthetic()); + } + void test_multiplicativeExpression_missing_LHS_RHS() { + BinaryExpression expression = ParserTestCase.parseExpression("*", []); + EngineTestCase.assertInstanceOf(SimpleIdentifier, expression.leftOperand); + JUnitTestCase.assertTrue(expression.leftOperand.isSynthetic()); + EngineTestCase.assertInstanceOf(SimpleIdentifier, expression.rightOperand); + JUnitTestCase.assertTrue(expression.rightOperand.isSynthetic()); + } + void test_multiplicativeExpression_missing_RHS() { + BinaryExpression expression = ParserTestCase.parseExpression("x *", []); + EngineTestCase.assertInstanceOf(SimpleIdentifier, expression.rightOperand); + JUnitTestCase.assertTrue(expression.rightOperand.isSynthetic()); + } + void test_multiplicativeExpression_missing_RHS_super() { + BinaryExpression expression = ParserTestCase.parseExpression("super *", []); + EngineTestCase.assertInstanceOf(SimpleIdentifier, expression.rightOperand); + JUnitTestCase.assertTrue(expression.rightOperand.isSynthetic()); + } + void test_multiplicativeExpression_precedence_unary_left() { + BinaryExpression expression = ParserTestCase.parseExpression("-x *", []); + EngineTestCase.assertInstanceOf(PrefixExpression, expression.leftOperand); + } + void test_multiplicativeExpression_precedence_unary_right() { + BinaryExpression expression = ParserTestCase.parseExpression("* -y", []); + EngineTestCase.assertInstanceOf(PrefixExpression, expression.rightOperand); + } + void test_multiplicativeExpression_super() { + BinaryExpression expression = ParserTestCase.parseExpression("super == ==", []); + EngineTestCase.assertInstanceOf(BinaryExpression, expression.leftOperand); + } + void test_prefixExpression_missing_operand_minus() { + PrefixExpression expression = ParserTestCase.parseExpression("-", []); + EngineTestCase.assertInstanceOf(SimpleIdentifier, expression.operand); + JUnitTestCase.assertTrue(expression.operand.isSynthetic()); + JUnitTestCase.assertEquals(TokenType.MINUS, expression.operator.type); + } + void test_relationalExpression_missing_LHS() { + IsExpression expression = ParserTestCase.parseExpression("is y", []); + EngineTestCase.assertInstanceOf(SimpleIdentifier, expression.expression); + JUnitTestCase.assertTrue(expression.expression.isSynthetic()); + } + void test_relationalExpression_missing_LHS_RHS() { + IsExpression expression = ParserTestCase.parseExpression("is", [ParserErrorCode.MISSING_IDENTIFIER]); + EngineTestCase.assertInstanceOf(SimpleIdentifier, expression.expression); + JUnitTestCase.assertTrue(expression.expression.isSynthetic()); + EngineTestCase.assertInstanceOf(TypeName, expression.type); + JUnitTestCase.assertTrue(expression.type.isSynthetic()); + } + void test_relationalExpression_missing_RHS() { + IsExpression expression = ParserTestCase.parseExpression("x is", [ParserErrorCode.MISSING_IDENTIFIER]); + EngineTestCase.assertInstanceOf(TypeName, expression.type); + JUnitTestCase.assertTrue(expression.type.isSynthetic()); + } + void test_relationalExpression_precedence_shift_right() { + IsExpression expression = ParserTestCase.parseExpression("<< is", [ParserErrorCode.MISSING_IDENTIFIER]); + EngineTestCase.assertInstanceOf(BinaryExpression, expression.expression); + } + void test_shiftExpression_missing_LHS() { + BinaryExpression expression = ParserTestCase.parseExpression("<< y", []); + EngineTestCase.assertInstanceOf(SimpleIdentifier, expression.leftOperand); + JUnitTestCase.assertTrue(expression.leftOperand.isSynthetic()); + } + void test_shiftExpression_missing_LHS_RHS() { + BinaryExpression expression = ParserTestCase.parseExpression("<<", []); + EngineTestCase.assertInstanceOf(SimpleIdentifier, expression.leftOperand); + JUnitTestCase.assertTrue(expression.leftOperand.isSynthetic()); + EngineTestCase.assertInstanceOf(SimpleIdentifier, expression.rightOperand); + JUnitTestCase.assertTrue(expression.rightOperand.isSynthetic()); + } + void test_shiftExpression_missing_RHS() { + BinaryExpression expression = ParserTestCase.parseExpression("x <<", []); + EngineTestCase.assertInstanceOf(SimpleIdentifier, expression.rightOperand); + JUnitTestCase.assertTrue(expression.rightOperand.isSynthetic()); + } + void test_shiftExpression_missing_RHS_super() { + BinaryExpression expression = ParserTestCase.parseExpression("super <<", []); + EngineTestCase.assertInstanceOf(SimpleIdentifier, expression.rightOperand); + JUnitTestCase.assertTrue(expression.rightOperand.isSynthetic()); + } + void test_shiftExpression_precedence_unary_left() { + BinaryExpression expression = ParserTestCase.parseExpression("+ <<", [ParserErrorCode.USE_OF_UNARY_PLUS_OPERATOR]); + EngineTestCase.assertInstanceOf(BinaryExpression, expression.leftOperand); + } + void test_shiftExpression_precedence_unary_right() { + BinaryExpression expression = ParserTestCase.parseExpression("<< +", [ParserErrorCode.USE_OF_UNARY_PLUS_OPERATOR]); + EngineTestCase.assertInstanceOf(BinaryExpression, expression.rightOperand); + } + void test_shiftExpression_super() { + BinaryExpression expression = ParserTestCase.parseExpression("super << <<", []); + EngineTestCase.assertInstanceOf(BinaryExpression, expression.leftOperand); + } + void test_topLevelExternalFunction_extraSemicolon() { + CompilationUnit unit = ParserTestCase.parseCompilationUnit("external void f(A a);", [ParserErrorCode.UNEXPECTED_TOKEN]); + NodeList declarations3 = unit.declarations; + EngineTestCase.assertSize(1, declarations3); + FunctionDeclaration declaration = declarations3[0] as FunctionDeclaration; + JUnitTestCase.assertNotNull(declaration); + } + static dartSuite() { + _ut.group('RecoveryParserTest', () { + _ut.test('test_additiveExpression_missing_LHS', () { + final __test = new RecoveryParserTest(); + runJUnitTest(__test, __test.test_additiveExpression_missing_LHS); + }); + _ut.test('test_additiveExpression_missing_LHS_RHS', () { + final __test = new RecoveryParserTest(); + runJUnitTest(__test, __test.test_additiveExpression_missing_LHS_RHS); + }); + _ut.test('test_additiveExpression_missing_RHS', () { + final __test = new RecoveryParserTest(); + runJUnitTest(__test, __test.test_additiveExpression_missing_RHS); + }); + _ut.test('test_additiveExpression_missing_RHS_super', () { + final __test = new RecoveryParserTest(); + runJUnitTest(__test, __test.test_additiveExpression_missing_RHS_super); + }); + _ut.test('test_additiveExpression_precedence_multiplicative_left', () { + final __test = new RecoveryParserTest(); + runJUnitTest(__test, __test.test_additiveExpression_precedence_multiplicative_left); + }); + _ut.test('test_additiveExpression_precedence_multiplicative_right', () { + final __test = new RecoveryParserTest(); + runJUnitTest(__test, __test.test_additiveExpression_precedence_multiplicative_right); + }); + _ut.test('test_additiveExpression_super', () { + final __test = new RecoveryParserTest(); + runJUnitTest(__test, __test.test_additiveExpression_super); + }); + _ut.test('test_argumentDefinitionTest_missing_identifier', () { + final __test = new RecoveryParserTest(); + runJUnitTest(__test, __test.test_argumentDefinitionTest_missing_identifier); + }); + _ut.test('test_assignmentExpression_missing_LHS', () { + final __test = new RecoveryParserTest(); + runJUnitTest(__test, __test.test_assignmentExpression_missing_LHS); + }); + _ut.test('test_assignmentExpression_missing_RHS', () { + final __test = new RecoveryParserTest(); + runJUnitTest(__test, __test.test_assignmentExpression_missing_RHS); + }); + _ut.test('test_assignmentExpression_missing_compound1', () { + final __test = new RecoveryParserTest(); + runJUnitTest(__test, __test.test_assignmentExpression_missing_compound1); + }); + _ut.test('test_assignmentExpression_missing_compound2', () { + final __test = new RecoveryParserTest(); + runJUnitTest(__test, __test.test_assignmentExpression_missing_compound2); + }); + _ut.test('test_assignmentExpression_missing_compound3', () { + final __test = new RecoveryParserTest(); + runJUnitTest(__test, __test.test_assignmentExpression_missing_compound3); + }); + _ut.test('test_bitwiseAndExpression_missing_LHS', () { + final __test = new RecoveryParserTest(); + runJUnitTest(__test, __test.test_bitwiseAndExpression_missing_LHS); + }); + _ut.test('test_bitwiseAndExpression_missing_LHS_RHS', () { + final __test = new RecoveryParserTest(); + runJUnitTest(__test, __test.test_bitwiseAndExpression_missing_LHS_RHS); + }); + _ut.test('test_bitwiseAndExpression_missing_RHS', () { + final __test = new RecoveryParserTest(); + runJUnitTest(__test, __test.test_bitwiseAndExpression_missing_RHS); + }); + _ut.test('test_bitwiseAndExpression_missing_RHS_super', () { + final __test = new RecoveryParserTest(); + runJUnitTest(__test, __test.test_bitwiseAndExpression_missing_RHS_super); + }); + _ut.test('test_bitwiseAndExpression_precedence_equality_left', () { + final __test = new RecoveryParserTest(); + runJUnitTest(__test, __test.test_bitwiseAndExpression_precedence_equality_left); + }); + _ut.test('test_bitwiseAndExpression_precedence_equality_right', () { + final __test = new RecoveryParserTest(); + runJUnitTest(__test, __test.test_bitwiseAndExpression_precedence_equality_right); + }); + _ut.test('test_bitwiseAndExpression_super', () { + final __test = new RecoveryParserTest(); + runJUnitTest(__test, __test.test_bitwiseAndExpression_super); + }); + _ut.test('test_bitwiseOrExpression_missing_LHS', () { + final __test = new RecoveryParserTest(); + runJUnitTest(__test, __test.test_bitwiseOrExpression_missing_LHS); + }); + _ut.test('test_bitwiseOrExpression_missing_LHS_RHS', () { + final __test = new RecoveryParserTest(); + runJUnitTest(__test, __test.test_bitwiseOrExpression_missing_LHS_RHS); + }); + _ut.test('test_bitwiseOrExpression_missing_RHS', () { + final __test = new RecoveryParserTest(); + runJUnitTest(__test, __test.test_bitwiseOrExpression_missing_RHS); + }); + _ut.test('test_bitwiseOrExpression_missing_RHS_super', () { + final __test = new RecoveryParserTest(); + runJUnitTest(__test, __test.test_bitwiseOrExpression_missing_RHS_super); + }); + _ut.test('test_bitwiseOrExpression_precedence_xor_left', () { + final __test = new RecoveryParserTest(); + runJUnitTest(__test, __test.test_bitwiseOrExpression_precedence_xor_left); + }); + _ut.test('test_bitwiseOrExpression_precedence_xor_right', () { + final __test = new RecoveryParserTest(); + runJUnitTest(__test, __test.test_bitwiseOrExpression_precedence_xor_right); + }); + _ut.test('test_bitwiseOrExpression_super', () { + final __test = new RecoveryParserTest(); + runJUnitTest(__test, __test.test_bitwiseOrExpression_super); + }); + _ut.test('test_bitwiseXorExpression_missing_LHS', () { + final __test = new RecoveryParserTest(); + runJUnitTest(__test, __test.test_bitwiseXorExpression_missing_LHS); + }); + _ut.test('test_bitwiseXorExpression_missing_LHS_RHS', () { + final __test = new RecoveryParserTest(); + runJUnitTest(__test, __test.test_bitwiseXorExpression_missing_LHS_RHS); + }); + _ut.test('test_bitwiseXorExpression_missing_RHS', () { + final __test = new RecoveryParserTest(); + runJUnitTest(__test, __test.test_bitwiseXorExpression_missing_RHS); + }); + _ut.test('test_bitwiseXorExpression_missing_RHS_super', () { + final __test = new RecoveryParserTest(); + runJUnitTest(__test, __test.test_bitwiseXorExpression_missing_RHS_super); + }); + _ut.test('test_bitwiseXorExpression_precedence_and_left', () { + final __test = new RecoveryParserTest(); + runJUnitTest(__test, __test.test_bitwiseXorExpression_precedence_and_left); + }); + _ut.test('test_bitwiseXorExpression_precedence_and_right', () { + final __test = new RecoveryParserTest(); + runJUnitTest(__test, __test.test_bitwiseXorExpression_precedence_and_right); + }); + _ut.test('test_bitwiseXorExpression_super', () { + final __test = new RecoveryParserTest(); + runJUnitTest(__test, __test.test_bitwiseXorExpression_super); + }); + _ut.test('test_conditionalExpression_missingElse', () { + final __test = new RecoveryParserTest(); + runJUnitTest(__test, __test.test_conditionalExpression_missingElse); + }); + _ut.test('test_conditionalExpression_missingThen', () { + final __test = new RecoveryParserTest(); + runJUnitTest(__test, __test.test_conditionalExpression_missingThen); + }); + _ut.test('test_equalityExpression_missing_LHS', () { + final __test = new RecoveryParserTest(); + runJUnitTest(__test, __test.test_equalityExpression_missing_LHS); + }); + _ut.test('test_equalityExpression_missing_LHS_RHS', () { + final __test = new RecoveryParserTest(); + runJUnitTest(__test, __test.test_equalityExpression_missing_LHS_RHS); + }); + _ut.test('test_equalityExpression_missing_RHS', () { + final __test = new RecoveryParserTest(); + runJUnitTest(__test, __test.test_equalityExpression_missing_RHS); + }); + _ut.test('test_equalityExpression_missing_RHS_super', () { + final __test = new RecoveryParserTest(); + runJUnitTest(__test, __test.test_equalityExpression_missing_RHS_super); + }); + _ut.test('test_equalityExpression_precedence_relational_left', () { + final __test = new RecoveryParserTest(); + runJUnitTest(__test, __test.test_equalityExpression_precedence_relational_left); + }); + _ut.test('test_equalityExpression_precedence_relational_right', () { + final __test = new RecoveryParserTest(); + runJUnitTest(__test, __test.test_equalityExpression_precedence_relational_right); + }); + _ut.test('test_equalityExpression_super', () { + final __test = new RecoveryParserTest(); + runJUnitTest(__test, __test.test_equalityExpression_super); + }); + _ut.test('test_expressionList_multiple_end', () { + final __test = new RecoveryParserTest(); + runJUnitTest(__test, __test.test_expressionList_multiple_end); + }); + _ut.test('test_expressionList_multiple_middle', () { + final __test = new RecoveryParserTest(); + runJUnitTest(__test, __test.test_expressionList_multiple_middle); + }); + _ut.test('test_expressionList_multiple_start', () { + final __test = new RecoveryParserTest(); + runJUnitTest(__test, __test.test_expressionList_multiple_start); + }); + _ut.test('test_logicalAndExpression_missing_LHS', () { + final __test = new RecoveryParserTest(); + runJUnitTest(__test, __test.test_logicalAndExpression_missing_LHS); + }); + _ut.test('test_logicalAndExpression_missing_LHS_RHS', () { + final __test = new RecoveryParserTest(); + runJUnitTest(__test, __test.test_logicalAndExpression_missing_LHS_RHS); + }); + _ut.test('test_logicalAndExpression_missing_RHS', () { + final __test = new RecoveryParserTest(); + runJUnitTest(__test, __test.test_logicalAndExpression_missing_RHS); + }); + _ut.test('test_logicalAndExpression_precedence_bitwiseOr_left', () { + final __test = new RecoveryParserTest(); + runJUnitTest(__test, __test.test_logicalAndExpression_precedence_bitwiseOr_left); + }); + _ut.test('test_logicalAndExpression_precedence_bitwiseOr_right', () { + final __test = new RecoveryParserTest(); + runJUnitTest(__test, __test.test_logicalAndExpression_precedence_bitwiseOr_right); + }); + _ut.test('test_logicalOrExpression_missing_LHS', () { + final __test = new RecoveryParserTest(); + runJUnitTest(__test, __test.test_logicalOrExpression_missing_LHS); + }); + _ut.test('test_logicalOrExpression_missing_LHS_RHS', () { + final __test = new RecoveryParserTest(); + runJUnitTest(__test, __test.test_logicalOrExpression_missing_LHS_RHS); + }); + _ut.test('test_logicalOrExpression_missing_RHS', () { + final __test = new RecoveryParserTest(); + runJUnitTest(__test, __test.test_logicalOrExpression_missing_RHS); + }); + _ut.test('test_logicalOrExpression_precedence_logicalAnd_left', () { + final __test = new RecoveryParserTest(); + runJUnitTest(__test, __test.test_logicalOrExpression_precedence_logicalAnd_left); + }); + _ut.test('test_logicalOrExpression_precedence_logicalAnd_right', () { + final __test = new RecoveryParserTest(); + runJUnitTest(__test, __test.test_logicalOrExpression_precedence_logicalAnd_right); + }); + _ut.test('test_multiplicativeExpression_missing_LHS', () { + final __test = new RecoveryParserTest(); + runJUnitTest(__test, __test.test_multiplicativeExpression_missing_LHS); + }); + _ut.test('test_multiplicativeExpression_missing_LHS_RHS', () { + final __test = new RecoveryParserTest(); + runJUnitTest(__test, __test.test_multiplicativeExpression_missing_LHS_RHS); + }); + _ut.test('test_multiplicativeExpression_missing_RHS', () { + final __test = new RecoveryParserTest(); + runJUnitTest(__test, __test.test_multiplicativeExpression_missing_RHS); + }); + _ut.test('test_multiplicativeExpression_missing_RHS_super', () { + final __test = new RecoveryParserTest(); + runJUnitTest(__test, __test.test_multiplicativeExpression_missing_RHS_super); + }); + _ut.test('test_multiplicativeExpression_precedence_unary_left', () { + final __test = new RecoveryParserTest(); + runJUnitTest(__test, __test.test_multiplicativeExpression_precedence_unary_left); + }); + _ut.test('test_multiplicativeExpression_precedence_unary_right', () { + final __test = new RecoveryParserTest(); + runJUnitTest(__test, __test.test_multiplicativeExpression_precedence_unary_right); + }); + _ut.test('test_multiplicativeExpression_super', () { + final __test = new RecoveryParserTest(); + runJUnitTest(__test, __test.test_multiplicativeExpression_super); + }); + _ut.test('test_prefixExpression_missing_operand_minus', () { + final __test = new RecoveryParserTest(); + runJUnitTest(__test, __test.test_prefixExpression_missing_operand_minus); + }); + _ut.test('test_relationalExpression_missing_LHS', () { + final __test = new RecoveryParserTest(); + runJUnitTest(__test, __test.test_relationalExpression_missing_LHS); + }); + _ut.test('test_relationalExpression_missing_LHS_RHS', () { + final __test = new RecoveryParserTest(); + runJUnitTest(__test, __test.test_relationalExpression_missing_LHS_RHS); + }); + _ut.test('test_relationalExpression_missing_RHS', () { + final __test = new RecoveryParserTest(); + runJUnitTest(__test, __test.test_relationalExpression_missing_RHS); + }); + _ut.test('test_relationalExpression_precedence_shift_right', () { + final __test = new RecoveryParserTest(); + runJUnitTest(__test, __test.test_relationalExpression_precedence_shift_right); + }); + _ut.test('test_shiftExpression_missing_LHS', () { + final __test = new RecoveryParserTest(); + runJUnitTest(__test, __test.test_shiftExpression_missing_LHS); + }); + _ut.test('test_shiftExpression_missing_LHS_RHS', () { + final __test = new RecoveryParserTest(); + runJUnitTest(__test, __test.test_shiftExpression_missing_LHS_RHS); + }); + _ut.test('test_shiftExpression_missing_RHS', () { + final __test = new RecoveryParserTest(); + runJUnitTest(__test, __test.test_shiftExpression_missing_RHS); + }); + _ut.test('test_shiftExpression_missing_RHS_super', () { + final __test = new RecoveryParserTest(); + runJUnitTest(__test, __test.test_shiftExpression_missing_RHS_super); + }); + _ut.test('test_shiftExpression_precedence_unary_left', () { + final __test = new RecoveryParserTest(); + runJUnitTest(__test, __test.test_shiftExpression_precedence_unary_left); + }); + _ut.test('test_shiftExpression_precedence_unary_right', () { + final __test = new RecoveryParserTest(); + runJUnitTest(__test, __test.test_shiftExpression_precedence_unary_right); + }); + _ut.test('test_shiftExpression_super', () { + final __test = new RecoveryParserTest(); + runJUnitTest(__test, __test.test_shiftExpression_super); + }); + _ut.test('test_topLevelExternalFunction_extraSemicolon', () { + final __test = new RecoveryParserTest(); + runJUnitTest(__test, __test.test_topLevelExternalFunction_extraSemicolon); + }); + }); + } +} +/** + * The class {@code SimpleParserTest} defines parser tests that test individual parsing method. The + * code fragments should be as minimal as possible in order to test the method, but should not test + * the interactions between the method under test and other methods. + *

+ * More complex tests should be defined in the class {@link ComplexParserTest}. + */ +class SimpleParserTest extends ParserTestCase { + void fail_parseCommentReference_this() { + CommentReference reference = ParserTestCase.parse("parseCommentReference", ["this", 5], ""); + SimpleIdentifier identifier8 = EngineTestCase.assertInstanceOf(SimpleIdentifier, reference.identifier); + JUnitTestCase.assertNotNull(identifier8.token); + JUnitTestCase.assertEquals("a", identifier8.name); + JUnitTestCase.assertEquals(5, identifier8.offset); + } + void test_computeStringValue_emptyInterpolationPrefix() { + JUnitTestCase.assertEquals("", computeStringValue("'''")); + } + void test_computeStringValue_escape_b() { + JUnitTestCase.assertEquals("\b", computeStringValue("'\\b'")); + } + void test_computeStringValue_escape_f() { + JUnitTestCase.assertEquals("\f", computeStringValue("'\\f'")); + } + void test_computeStringValue_escape_n() { + JUnitTestCase.assertEquals("\n", computeStringValue("'\\n'")); + } + void test_computeStringValue_escape_notSpecial() { + JUnitTestCase.assertEquals(":", computeStringValue("'\\:'")); + } + void test_computeStringValue_escape_r() { + JUnitTestCase.assertEquals("\r", computeStringValue("'\\r'")); + } + void test_computeStringValue_escape_t() { + JUnitTestCase.assertEquals("\t", computeStringValue("'\\t'")); + } + void test_computeStringValue_escape_u_fixed() { + JUnitTestCase.assertEquals("\u4321", computeStringValue("'\\u4321'")); + } + void test_computeStringValue_escape_u_variable() { + JUnitTestCase.assertEquals("\u0123", computeStringValue("'\\u{123}'")); + } + void test_computeStringValue_escape_v() { + JUnitTestCase.assertEquals("\u000B", computeStringValue("'\\v'")); + } + void test_computeStringValue_escape_x() { + JUnitTestCase.assertEquals("\u00FF", computeStringValue("'\\xFF'")); + } + void test_computeStringValue_noEscape_single() { + JUnitTestCase.assertEquals("text", computeStringValue("'text'")); + } + void test_computeStringValue_noEscape_triple() { + JUnitTestCase.assertEquals("text", computeStringValue("'''text'''")); + } + void test_computeStringValue_raw_single() { + JUnitTestCase.assertEquals("text", computeStringValue("r'text'")); + } + void test_computeStringValue_raw_triple() { + JUnitTestCase.assertEquals("text", computeStringValue("r'''text'''")); + } + void test_computeStringValue_raw_withEscape() { + JUnitTestCase.assertEquals("two\\nlines", computeStringValue("r'two\\nlines'")); + } + void test_createSyntheticIdentifier() { + SimpleIdentifier identifier = createSyntheticIdentifier(); + JUnitTestCase.assertTrue(identifier.isSynthetic()); + } + void test_createSyntheticStringLiteral() { + SimpleStringLiteral literal = createSyntheticStringLiteral(); + JUnitTestCase.assertTrue(literal.isSynthetic()); + } + void test_isFunctionDeclaration_nameButNoReturn_block() { + JUnitTestCase.assertTrue(isFunctionDeclaration("f() {}")); + } + void test_isFunctionDeclaration_nameButNoReturn_expression() { + JUnitTestCase.assertTrue(isFunctionDeclaration("f() => e")); + } + void test_isFunctionDeclaration_normalReturn_block() { + JUnitTestCase.assertTrue(isFunctionDeclaration("C f() {}")); + } + void test_isFunctionDeclaration_normalReturn_expression() { + JUnitTestCase.assertTrue(isFunctionDeclaration("C f() => e")); + } + void test_isFunctionDeclaration_voidReturn_block() { + JUnitTestCase.assertTrue(isFunctionDeclaration("void f() {}")); + } + void test_isFunctionDeclaration_voidReturn_expression() { + JUnitTestCase.assertTrue(isFunctionDeclaration("void f() => e")); + } + void test_isFunctionExpression_false_noBody() { + JUnitTestCase.assertFalse(isFunctionExpression("f();")); + } + void test_isFunctionExpression_false_notParameters() { + JUnitTestCase.assertFalse(isFunctionExpression("(a + b) {")); + } + void test_isFunctionExpression_noName_block() { + JUnitTestCase.assertTrue(isFunctionExpression("() {}")); + } + void test_isFunctionExpression_noName_expression() { + JUnitTestCase.assertTrue(isFunctionExpression("() => e")); + } + void test_isFunctionExpression_parameter_multiple() { + JUnitTestCase.assertTrue(isFunctionExpression("(a, b) {}")); + } + void test_isFunctionExpression_parameter_named() { + JUnitTestCase.assertTrue(isFunctionExpression("({a}) {}")); + } + void test_isFunctionExpression_parameter_optional() { + JUnitTestCase.assertTrue(isFunctionExpression("([a]) {}")); + } + void test_isFunctionExpression_parameter_single() { + JUnitTestCase.assertTrue(isFunctionExpression("(a) {}")); + } + void test_isFunctionExpression_parameter_typed() { + JUnitTestCase.assertTrue(isFunctionExpression("(int a, int b) {}")); + } + void test_isInitializedVariableDeclaration_assignment() { + JUnitTestCase.assertFalse(isInitializedVariableDeclaration("a = null;")); + } + void test_isInitializedVariableDeclaration_comparison() { + JUnitTestCase.assertFalse(isInitializedVariableDeclaration("a < 0;")); + } + void test_isInitializedVariableDeclaration_conditional() { + JUnitTestCase.assertFalse(isInitializedVariableDeclaration("a == null ? init() : update();")); + } + void test_isInitializedVariableDeclaration_const_noType_initialized() { + JUnitTestCase.assertTrue(isInitializedVariableDeclaration("const a = 0;")); + } + void test_isInitializedVariableDeclaration_const_noType_uninitialized() { + JUnitTestCase.assertTrue(isInitializedVariableDeclaration("const a;")); + } + void test_isInitializedVariableDeclaration_const_simpleType_uninitialized() { + JUnitTestCase.assertTrue(isInitializedVariableDeclaration("const A a;")); + } + void test_isInitializedVariableDeclaration_final_noType_initialized() { + JUnitTestCase.assertTrue(isInitializedVariableDeclaration("final a = 0;")); + } + void test_isInitializedVariableDeclaration_final_noType_uninitialized() { + JUnitTestCase.assertTrue(isInitializedVariableDeclaration("final a;")); + } + void test_isInitializedVariableDeclaration_final_simpleType_initialized() { + JUnitTestCase.assertTrue(isInitializedVariableDeclaration("final A a = 0;")); + } + void test_isInitializedVariableDeclaration_functionDeclaration_typed() { + JUnitTestCase.assertFalse(isInitializedVariableDeclaration("A f() {};")); + } + void test_isInitializedVariableDeclaration_functionDeclaration_untyped() { + JUnitTestCase.assertFalse(isInitializedVariableDeclaration("f() {};")); + } + void test_isInitializedVariableDeclaration_noType_initialized() { + JUnitTestCase.assertTrue(isInitializedVariableDeclaration("var a = 0;")); + } + void test_isInitializedVariableDeclaration_noType_uninitialized() { + JUnitTestCase.assertTrue(isInitializedVariableDeclaration("var a;")); + } + void test_isInitializedVariableDeclaration_parameterizedType_initialized() { + JUnitTestCase.assertTrue(isInitializedVariableDeclaration("List a = null;")); + } + void test_isInitializedVariableDeclaration_parameterizedType_uninitialized() { + JUnitTestCase.assertTrue(isInitializedVariableDeclaration("List a;")); + } + void test_isInitializedVariableDeclaration_simpleType_initialized() { + JUnitTestCase.assertTrue(isInitializedVariableDeclaration("A a = 0;")); + } + void test_isInitializedVariableDeclaration_simpleType_uninitialized() { + JUnitTestCase.assertTrue(isInitializedVariableDeclaration("A a;")); + } + void test_isSwitchMember_case_labeled() { + JUnitTestCase.assertTrue(isSwitchMember("l1: l2: case")); + } + void test_isSwitchMember_case_unlabeled() { + JUnitTestCase.assertTrue(isSwitchMember("case")); + } + void test_isSwitchMember_default_labeled() { + JUnitTestCase.assertTrue(isSwitchMember("l1: l2: default")); + } + void test_isSwitchMember_default_unlabeled() { + JUnitTestCase.assertTrue(isSwitchMember("default")); + } + void test_isSwitchMember_false() { + JUnitTestCase.assertFalse(isSwitchMember("break;")); + } + void test_parseAdditiveExpression_normal() { + BinaryExpression expression = ParserTestCase.parse4("parseAdditiveExpression", "x + y", []); + JUnitTestCase.assertNotNull(expression.leftOperand); + JUnitTestCase.assertNotNull(expression.operator); + JUnitTestCase.assertEquals(TokenType.PLUS, expression.operator.type); + JUnitTestCase.assertNotNull(expression.rightOperand); + } + void test_parseAdditiveExpression_super() { + BinaryExpression expression = ParserTestCase.parse4("parseAdditiveExpression", "super + y", []); + EngineTestCase.assertInstanceOf(SuperExpression, expression.leftOperand); + JUnitTestCase.assertNotNull(expression.operator); + JUnitTestCase.assertEquals(TokenType.PLUS, expression.operator.type); + JUnitTestCase.assertNotNull(expression.rightOperand); + } + void test_parseAnnotation_n1() { + Annotation annotation = ParserTestCase.parse4("parseAnnotation", "@A", []); + JUnitTestCase.assertNotNull(annotation.atSign); + JUnitTestCase.assertNotNull(annotation.name); + JUnitTestCase.assertNull(annotation.period); + JUnitTestCase.assertNull(annotation.constructorName); + JUnitTestCase.assertNull(annotation.arguments); + } + void test_parseAnnotation_n1_a() { + Annotation annotation = ParserTestCase.parse4("parseAnnotation", "@A(x,y)", []); + JUnitTestCase.assertNotNull(annotation.atSign); + JUnitTestCase.assertNotNull(annotation.name); + JUnitTestCase.assertNull(annotation.period); + JUnitTestCase.assertNull(annotation.constructorName); + JUnitTestCase.assertNotNull(annotation.arguments); + } + void test_parseAnnotation_n2() { + Annotation annotation = ParserTestCase.parse4("parseAnnotation", "@A.B", []); + JUnitTestCase.assertNotNull(annotation.atSign); + JUnitTestCase.assertNotNull(annotation.name); + JUnitTestCase.assertNull(annotation.period); + JUnitTestCase.assertNull(annotation.constructorName); + JUnitTestCase.assertNull(annotation.arguments); + } + void test_parseAnnotation_n2_a() { + Annotation annotation = ParserTestCase.parse4("parseAnnotation", "@A.B(x,y)", []); + JUnitTestCase.assertNotNull(annotation.atSign); + JUnitTestCase.assertNotNull(annotation.name); + JUnitTestCase.assertNull(annotation.period); + JUnitTestCase.assertNull(annotation.constructorName); + JUnitTestCase.assertNotNull(annotation.arguments); + } + void test_parseAnnotation_n3() { + Annotation annotation = ParserTestCase.parse4("parseAnnotation", "@A.B.C", []); + JUnitTestCase.assertNotNull(annotation.atSign); + JUnitTestCase.assertNotNull(annotation.name); + JUnitTestCase.assertNotNull(annotation.period); + JUnitTestCase.assertNotNull(annotation.constructorName); + JUnitTestCase.assertNull(annotation.arguments); + } + void test_parseAnnotation_n3_a() { + Annotation annotation = ParserTestCase.parse4("parseAnnotation", "@A.B.C(x,y)", []); + JUnitTestCase.assertNotNull(annotation.atSign); + JUnitTestCase.assertNotNull(annotation.name); + JUnitTestCase.assertNotNull(annotation.period); + JUnitTestCase.assertNotNull(annotation.constructorName); + JUnitTestCase.assertNotNull(annotation.arguments); + } + void test_parseArgument_named() { + NamedExpression expression = ParserTestCase.parse4("parseArgument", "n: x", []); + Label name18 = expression.name; + JUnitTestCase.assertNotNull(name18); + JUnitTestCase.assertNotNull(name18.label); + JUnitTestCase.assertNotNull(name18.colon); + JUnitTestCase.assertNotNull(expression.expression); + } + void test_parseArgument_unnamed() { + String lexeme = "x"; + SimpleIdentifier identifier = ParserTestCase.parse4("parseArgument", lexeme, []); + JUnitTestCase.assertEquals(lexeme, identifier.name); + } + void test_parseArgumentDefinitionTest() { + ArgumentDefinitionTest test = ParserTestCase.parse4("parseArgumentDefinitionTest", "?x", []); + JUnitTestCase.assertNotNull(test.question); + JUnitTestCase.assertNotNull(test.identifier); + } + void test_parseArgumentList_empty() { + ArgumentList argumentList = ParserTestCase.parse4("parseArgumentList", "()", []); + NodeList arguments6 = argumentList.arguments; + EngineTestCase.assertSize(0, arguments6); + } + void test_parseArgumentList_mixed() { + ArgumentList argumentList = ParserTestCase.parse4("parseArgumentList", "(w, x, y: y, z: z)", []); + NodeList arguments7 = argumentList.arguments; + EngineTestCase.assertSize(4, arguments7); + } + void test_parseArgumentList_noNamed() { + ArgumentList argumentList = ParserTestCase.parse4("parseArgumentList", "(x, y, z)", []); + NodeList arguments8 = argumentList.arguments; + EngineTestCase.assertSize(3, arguments8); + } + void test_parseArgumentList_onlyNamed() { + ArgumentList argumentList = ParserTestCase.parse4("parseArgumentList", "(x: x, y: y)", []); + NodeList arguments9 = argumentList.arguments; + EngineTestCase.assertSize(2, arguments9); + } + void test_parseAssertStatement() { + AssertStatement statement = ParserTestCase.parse4("parseAssertStatement", "assert (x);", []); + JUnitTestCase.assertNotNull(statement.keyword); + JUnitTestCase.assertNotNull(statement.leftParenthesis); + JUnitTestCase.assertNotNull(statement.condition); + JUnitTestCase.assertNotNull(statement.rightParenthesis); + JUnitTestCase.assertNotNull(statement.semicolon); + } + void test_parseAssignableExpression_expression_args_dot() { + PropertyAccess propertyAccess = ParserTestCase.parse("parseAssignableExpression", [false], "(x)(y).z"); + FunctionExpressionInvocation invocation = propertyAccess.target as FunctionExpressionInvocation; + JUnitTestCase.assertNotNull(invocation.function); + ArgumentList argumentList10 = invocation.argumentList; + JUnitTestCase.assertNotNull(argumentList10); + EngineTestCase.assertSize(1, argumentList10.arguments); + JUnitTestCase.assertNotNull(propertyAccess.operator); + JUnitTestCase.assertNotNull(propertyAccess.propertyName); + } + void test_parseAssignableExpression_expression_dot() { + PropertyAccess propertyAccess = ParserTestCase.parse("parseAssignableExpression", [false], "(x).y"); + JUnitTestCase.assertNotNull(propertyAccess.target); + JUnitTestCase.assertNotNull(propertyAccess.operator); + JUnitTestCase.assertNotNull(propertyAccess.propertyName); + } + void test_parseAssignableExpression_expression_index() { + IndexExpression expression = ParserTestCase.parse("parseAssignableExpression", [false], "(x)[y]"); + JUnitTestCase.assertNotNull(expression.array); + JUnitTestCase.assertNotNull(expression.leftBracket); + JUnitTestCase.assertNotNull(expression.index); + JUnitTestCase.assertNotNull(expression.rightBracket); + } + void test_parseAssignableExpression_identifier() { + SimpleIdentifier identifier = ParserTestCase.parse("parseAssignableExpression", [false], "x"); + JUnitTestCase.assertNotNull(identifier); + } + void test_parseAssignableExpression_identifier_args_dot() { + PropertyAccess propertyAccess = ParserTestCase.parse("parseAssignableExpression", [false], "x(y).z"); + MethodInvocation invocation = propertyAccess.target as MethodInvocation; + JUnitTestCase.assertEquals("x", invocation.methodName.name); + ArgumentList argumentList11 = invocation.argumentList; + JUnitTestCase.assertNotNull(argumentList11); + EngineTestCase.assertSize(1, argumentList11.arguments); + JUnitTestCase.assertNotNull(propertyAccess.operator); + JUnitTestCase.assertNotNull(propertyAccess.propertyName); + } + void test_parseAssignableExpression_identifier_dot() { + PropertyAccess propertyAccess = ParserTestCase.parse("parseAssignableExpression", [false], "x.y"); + JUnitTestCase.assertNotNull(propertyAccess.target); + JUnitTestCase.assertNotNull(propertyAccess.operator); + JUnitTestCase.assertNotNull(propertyAccess.propertyName); + } + void test_parseAssignableExpression_identifier_index() { + IndexExpression expression = ParserTestCase.parse("parseAssignableExpression", [false], "x[y]"); + JUnitTestCase.assertNotNull(expression.array); + JUnitTestCase.assertNotNull(expression.leftBracket); + JUnitTestCase.assertNotNull(expression.index); + JUnitTestCase.assertNotNull(expression.rightBracket); + } + void test_parseAssignableExpression_super_dot() { + PropertyAccess propertyAccess = ParserTestCase.parse("parseAssignableExpression", [false], "super.y"); + EngineTestCase.assertInstanceOf(SuperExpression, propertyAccess.target); + JUnitTestCase.assertNotNull(propertyAccess.operator); + JUnitTestCase.assertNotNull(propertyAccess.propertyName); + } + void test_parseAssignableExpression_super_index() { + IndexExpression expression = ParserTestCase.parse("parseAssignableExpression", [false], "super[y]"); + EngineTestCase.assertInstanceOf(SuperExpression, expression.array); + JUnitTestCase.assertNotNull(expression.leftBracket); + JUnitTestCase.assertNotNull(expression.index); + JUnitTestCase.assertNotNull(expression.rightBracket); + } + void test_parseAssignableSelector_dot() { + PropertyAccess selector = ParserTestCase.parse("parseAssignableSelector", [null, true], ".x"); + JUnitTestCase.assertNotNull(selector.operator); + JUnitTestCase.assertNotNull(selector.propertyName); + } + void test_parseAssignableSelector_index() { + IndexExpression selector = ParserTestCase.parse("parseAssignableSelector", [null, true], "[x]"); + JUnitTestCase.assertNotNull(selector.leftBracket); + JUnitTestCase.assertNotNull(selector.index); + JUnitTestCase.assertNotNull(selector.rightBracket); + } + void test_parseAssignableSelector_none() { + SimpleIdentifier selector = ParserTestCase.parse("parseAssignableSelector", [new SimpleIdentifier(null), true], ";"); + JUnitTestCase.assertNotNull(selector); + } + void test_parseBitwiseAndExpression_normal() { + BinaryExpression expression = ParserTestCase.parse4("parseBitwiseAndExpression", "x & y", []); + JUnitTestCase.assertNotNull(expression.leftOperand); + JUnitTestCase.assertNotNull(expression.operator); + JUnitTestCase.assertEquals(TokenType.AMPERSAND, expression.operator.type); + JUnitTestCase.assertNotNull(expression.rightOperand); + } + void test_parseBitwiseAndExpression_super() { + BinaryExpression expression = ParserTestCase.parse4("parseBitwiseAndExpression", "super & y", []); + EngineTestCase.assertInstanceOf(SuperExpression, expression.leftOperand); + JUnitTestCase.assertNotNull(expression.operator); + JUnitTestCase.assertEquals(TokenType.AMPERSAND, expression.operator.type); + JUnitTestCase.assertNotNull(expression.rightOperand); + } + void test_parseBitwiseOrExpression_normal() { + BinaryExpression expression = ParserTestCase.parse4("parseBitwiseOrExpression", "x | y", []); + JUnitTestCase.assertNotNull(expression.leftOperand); + JUnitTestCase.assertNotNull(expression.operator); + JUnitTestCase.assertEquals(TokenType.BAR, expression.operator.type); + JUnitTestCase.assertNotNull(expression.rightOperand); + } + void test_parseBitwiseOrExpression_super() { + BinaryExpression expression = ParserTestCase.parse4("parseBitwiseOrExpression", "super | y", []); + EngineTestCase.assertInstanceOf(SuperExpression, expression.leftOperand); + JUnitTestCase.assertNotNull(expression.operator); + JUnitTestCase.assertEquals(TokenType.BAR, expression.operator.type); + JUnitTestCase.assertNotNull(expression.rightOperand); + } + void test_parseBitwiseXorExpression_normal() { + BinaryExpression expression = ParserTestCase.parse4("parseBitwiseXorExpression", "x ^ y", []); + JUnitTestCase.assertNotNull(expression.leftOperand); + JUnitTestCase.assertNotNull(expression.operator); + JUnitTestCase.assertEquals(TokenType.CARET, expression.operator.type); + JUnitTestCase.assertNotNull(expression.rightOperand); + } + void test_parseBitwiseXorExpression_super() { + BinaryExpression expression = ParserTestCase.parse4("parseBitwiseXorExpression", "super ^ y", []); + EngineTestCase.assertInstanceOf(SuperExpression, expression.leftOperand); + JUnitTestCase.assertNotNull(expression.operator); + JUnitTestCase.assertEquals(TokenType.CARET, expression.operator.type); + JUnitTestCase.assertNotNull(expression.rightOperand); + } + void test_parseBlock_empty() { + Block block = ParserTestCase.parse4("parseBlock", "{}", []); + JUnitTestCase.assertNotNull(block.leftBracket); + EngineTestCase.assertSize(0, block.statements); + JUnitTestCase.assertNotNull(block.rightBracket); + } + void test_parseBlock_nonEmpty() { + Block block = ParserTestCase.parse4("parseBlock", "{;}", []); + JUnitTestCase.assertNotNull(block.leftBracket); + EngineTestCase.assertSize(1, block.statements); + JUnitTestCase.assertNotNull(block.rightBracket); + } + void test_parseBreakStatement_label() { + BreakStatement statement = ParserTestCase.parse4("parseBreakStatement", "break foo;", []); + JUnitTestCase.assertNotNull(statement.keyword); + JUnitTestCase.assertNotNull(statement.label); + JUnitTestCase.assertNotNull(statement.semicolon); + } + void test_parseBreakStatement_noLabel() { + BreakStatement statement = ParserTestCase.parse4("parseBreakStatement", "break;", [ParserErrorCode.BREAK_OUTSIDE_OF_LOOP]); + JUnitTestCase.assertNotNull(statement.keyword); + JUnitTestCase.assertNull(statement.label); + JUnitTestCase.assertNotNull(statement.semicolon); + } + void test_parseCascadeSection_i() { + IndexExpression section = ParserTestCase.parse4("parseCascadeSection", "..[i]", []); + JUnitTestCase.assertNull(section.array); + JUnitTestCase.assertNotNull(section.leftBracket); + JUnitTestCase.assertNotNull(section.index); + JUnitTestCase.assertNotNull(section.rightBracket); + } + void test_parseCascadeSection_ia() { + FunctionExpressionInvocation section = ParserTestCase.parse4("parseCascadeSection", "..[i](b)", []); + EngineTestCase.assertInstanceOf(IndexExpression, section.function); + JUnitTestCase.assertNotNull(section.argumentList); + } + void test_parseCascadeSection_p() { + PropertyAccess section = ParserTestCase.parse4("parseCascadeSection", "..a", []); + JUnitTestCase.assertNull(section.target); + JUnitTestCase.assertNotNull(section.operator); + JUnitTestCase.assertNotNull(section.propertyName); + } + void test_parseCascadeSection_p_assign() { + AssignmentExpression section = ParserTestCase.parse4("parseCascadeSection", "..a = 3", []); + JUnitTestCase.assertNotNull(section.leftHandSide); + JUnitTestCase.assertNotNull(section.operator); + JUnitTestCase.assertNotNull(section.rightHandSide); + } + void test_parseCascadeSection_p_builtIn() { + PropertyAccess section = ParserTestCase.parse4("parseCascadeSection", "..as", []); + JUnitTestCase.assertNull(section.target); + JUnitTestCase.assertNotNull(section.operator); + JUnitTestCase.assertNotNull(section.propertyName); + } + void test_parseCascadeSection_pa() { + MethodInvocation section = ParserTestCase.parse4("parseCascadeSection", "..a(b)", []); + JUnitTestCase.assertNull(section.target); + JUnitTestCase.assertNotNull(section.period); + JUnitTestCase.assertNotNull(section.methodName); + JUnitTestCase.assertNotNull(section.argumentList); + EngineTestCase.assertSize(1, section.argumentList.arguments); + } + void test_parseCascadeSection_paa() { + FunctionExpressionInvocation section = ParserTestCase.parse4("parseCascadeSection", "..a(b)(c)", []); + EngineTestCase.assertInstanceOf(MethodInvocation, section.function); + JUnitTestCase.assertNotNull(section.argumentList); + EngineTestCase.assertSize(1, section.argumentList.arguments); + } + void test_parseCascadeSection_paapaa() { + FunctionExpressionInvocation section = ParserTestCase.parse4("parseCascadeSection", "..a(b)(c).d(e)(f)", []); + EngineTestCase.assertInstanceOf(FunctionExpressionInvocation, section.function); + JUnitTestCase.assertNotNull(section.argumentList); + EngineTestCase.assertSize(1, section.argumentList.arguments); + } + void test_parseCascadeSection_pap() { + PropertyAccess section = ParserTestCase.parse4("parseCascadeSection", "..a(b).c", []); + JUnitTestCase.assertNotNull(section.target); + JUnitTestCase.assertNotNull(section.operator); + JUnitTestCase.assertNotNull(section.propertyName); + } + void test_parseClassDeclaration_abstract() { + ClassDeclaration declaration = ParserTestCase.parse("parseClassDeclaration", [emptyCommentAndMetadata(), TokenFactory.token(Keyword.ABSTRACT)], "class A {}"); + JUnitTestCase.assertNull(declaration.documentationComment); + JUnitTestCase.assertNotNull(declaration.abstractKeyword); + JUnitTestCase.assertNull(declaration.extendsClause); + JUnitTestCase.assertNull(declaration.implementsClause); + JUnitTestCase.assertNotNull(declaration.classKeyword); + JUnitTestCase.assertNotNull(declaration.leftBracket); + JUnitTestCase.assertNotNull(declaration.name); + EngineTestCase.assertSize(0, declaration.members); + JUnitTestCase.assertNotNull(declaration.rightBracket); + JUnitTestCase.assertNull(declaration.typeParameters); + } + void test_parseClassDeclaration_empty() { + ClassDeclaration declaration = ParserTestCase.parse("parseClassDeclaration", [emptyCommentAndMetadata(), null], "class A {}"); + JUnitTestCase.assertNull(declaration.documentationComment); + JUnitTestCase.assertNull(declaration.abstractKeyword); + JUnitTestCase.assertNull(declaration.extendsClause); + JUnitTestCase.assertNull(declaration.implementsClause); + JUnitTestCase.assertNotNull(declaration.classKeyword); + JUnitTestCase.assertNotNull(declaration.leftBracket); + JUnitTestCase.assertNotNull(declaration.name); + EngineTestCase.assertSize(0, declaration.members); + JUnitTestCase.assertNotNull(declaration.rightBracket); + JUnitTestCase.assertNull(declaration.typeParameters); + } + void test_parseClassDeclaration_extends() { + ClassDeclaration declaration = ParserTestCase.parse("parseClassDeclaration", [emptyCommentAndMetadata(), null], "class A extends B {}"); + JUnitTestCase.assertNull(declaration.documentationComment); + JUnitTestCase.assertNull(declaration.abstractKeyword); + JUnitTestCase.assertNotNull(declaration.extendsClause); + JUnitTestCase.assertNull(declaration.implementsClause); + JUnitTestCase.assertNotNull(declaration.classKeyword); + JUnitTestCase.assertNotNull(declaration.leftBracket); + JUnitTestCase.assertNotNull(declaration.name); + EngineTestCase.assertSize(0, declaration.members); + JUnitTestCase.assertNotNull(declaration.rightBracket); + JUnitTestCase.assertNull(declaration.typeParameters); + } + void test_parseClassDeclaration_extendsAndImplements() { + ClassDeclaration declaration = ParserTestCase.parse("parseClassDeclaration", [emptyCommentAndMetadata(), null], "class A extends B implements C {}"); + JUnitTestCase.assertNull(declaration.documentationComment); + JUnitTestCase.assertNull(declaration.abstractKeyword); + JUnitTestCase.assertNotNull(declaration.extendsClause); + JUnitTestCase.assertNotNull(declaration.implementsClause); + JUnitTestCase.assertNotNull(declaration.classKeyword); + JUnitTestCase.assertNotNull(declaration.leftBracket); + JUnitTestCase.assertNotNull(declaration.name); + EngineTestCase.assertSize(0, declaration.members); + JUnitTestCase.assertNotNull(declaration.rightBracket); + JUnitTestCase.assertNull(declaration.typeParameters); + } + void test_parseClassDeclaration_extendsAndWith() { + ClassDeclaration declaration = ParserTestCase.parse("parseClassDeclaration", [emptyCommentAndMetadata(), null], "class A extends B with C {}"); + JUnitTestCase.assertNull(declaration.documentationComment); + JUnitTestCase.assertNull(declaration.abstractKeyword); + JUnitTestCase.assertNotNull(declaration.classKeyword); + JUnitTestCase.assertNotNull(declaration.name); + JUnitTestCase.assertNull(declaration.typeParameters); + JUnitTestCase.assertNotNull(declaration.extendsClause); + JUnitTestCase.assertNotNull(declaration.withClause); + JUnitTestCase.assertNull(declaration.implementsClause); + JUnitTestCase.assertNotNull(declaration.leftBracket); + EngineTestCase.assertSize(0, declaration.members); + JUnitTestCase.assertNotNull(declaration.rightBracket); + } + void test_parseClassDeclaration_extendsAndWithAndImplements() { + ClassDeclaration declaration = ParserTestCase.parse("parseClassDeclaration", [emptyCommentAndMetadata(), null], "class A extends B with C implements D {}"); + JUnitTestCase.assertNull(declaration.documentationComment); + JUnitTestCase.assertNull(declaration.abstractKeyword); + JUnitTestCase.assertNotNull(declaration.classKeyword); + JUnitTestCase.assertNotNull(declaration.name); + JUnitTestCase.assertNull(declaration.typeParameters); + JUnitTestCase.assertNotNull(declaration.extendsClause); + JUnitTestCase.assertNotNull(declaration.withClause); + JUnitTestCase.assertNotNull(declaration.implementsClause); + JUnitTestCase.assertNotNull(declaration.leftBracket); + EngineTestCase.assertSize(0, declaration.members); + JUnitTestCase.assertNotNull(declaration.rightBracket); + } + void test_parseClassDeclaration_implements() { + ClassDeclaration declaration = ParserTestCase.parse("parseClassDeclaration", [emptyCommentAndMetadata(), null], "class A implements C {}"); + JUnitTestCase.assertNull(declaration.documentationComment); + JUnitTestCase.assertNull(declaration.abstractKeyword); + JUnitTestCase.assertNull(declaration.extendsClause); + JUnitTestCase.assertNotNull(declaration.implementsClause); + JUnitTestCase.assertNotNull(declaration.classKeyword); + JUnitTestCase.assertNotNull(declaration.leftBracket); + JUnitTestCase.assertNotNull(declaration.name); + EngineTestCase.assertSize(0, declaration.members); + JUnitTestCase.assertNotNull(declaration.rightBracket); + JUnitTestCase.assertNull(declaration.typeParameters); + } + void test_parseClassDeclaration_nonEmpty() { + ClassDeclaration declaration = ParserTestCase.parse("parseClassDeclaration", [emptyCommentAndMetadata(), null], "class A {var f;}"); + JUnitTestCase.assertNull(declaration.documentationComment); + JUnitTestCase.assertNull(declaration.abstractKeyword); + JUnitTestCase.assertNull(declaration.extendsClause); + JUnitTestCase.assertNull(declaration.implementsClause); + JUnitTestCase.assertNotNull(declaration.classKeyword); + JUnitTestCase.assertNotNull(declaration.leftBracket); + JUnitTestCase.assertNotNull(declaration.name); + EngineTestCase.assertSize(1, declaration.members); + JUnitTestCase.assertNotNull(declaration.rightBracket); + JUnitTestCase.assertNull(declaration.typeParameters); + } + void test_parseClassDeclaration_typeParameters() { + ClassDeclaration declaration = ParserTestCase.parse("parseClassDeclaration", [emptyCommentAndMetadata(), null], "class A {}"); + JUnitTestCase.assertNull(declaration.documentationComment); + JUnitTestCase.assertNull(declaration.abstractKeyword); + JUnitTestCase.assertNull(declaration.extendsClause); + JUnitTestCase.assertNull(declaration.implementsClause); + JUnitTestCase.assertNotNull(declaration.classKeyword); + JUnitTestCase.assertNotNull(declaration.leftBracket); + JUnitTestCase.assertNotNull(declaration.name); + EngineTestCase.assertSize(0, declaration.members); + JUnitTestCase.assertNotNull(declaration.rightBracket); + JUnitTestCase.assertNotNull(declaration.typeParameters); + EngineTestCase.assertSize(1, declaration.typeParameters.typeParameters); + } + void test_parseClassMember_constructor_withInitializers() { + ConstructorDeclaration constructor = ParserTestCase.parse("parseClassMember", ["C"], "C(_, _\$, this.__) : _a = _ + _\$ {}"); + JUnitTestCase.assertNotNull(constructor.body); + JUnitTestCase.assertNotNull(constructor.separator); + JUnitTestCase.assertNull(constructor.externalKeyword); + JUnitTestCase.assertNull(constructor.constKeyword); + JUnitTestCase.assertNull(constructor.factoryKeyword); + JUnitTestCase.assertNull(constructor.name); + JUnitTestCase.assertNotNull(constructor.parameters); + JUnitTestCase.assertNull(constructor.period); + JUnitTestCase.assertNotNull(constructor.returnType); + EngineTestCase.assertSize(1, constructor.initializers); + } + void test_parseClassMember_field_instance_prefixedType() { + FieldDeclaration field = ParserTestCase.parse("parseClassMember", ["C"], "p.A f;"); + JUnitTestCase.assertNull(field.documentationComment); + EngineTestCase.assertSize(0, field.metadata); + JUnitTestCase.assertNull(field.keyword); + VariableDeclarationList list = field.fields; + JUnitTestCase.assertNotNull(list); + NodeList variables6 = list.variables; + EngineTestCase.assertSize(1, variables6); + VariableDeclaration variable = variables6[0]; + JUnitTestCase.assertNotNull(variable.name); + } + void test_parseClassMember_field_namedGet() { + FieldDeclaration field = ParserTestCase.parse("parseClassMember", ["C"], "var get;"); + JUnitTestCase.assertNull(field.documentationComment); + EngineTestCase.assertSize(0, field.metadata); + JUnitTestCase.assertNull(field.keyword); + VariableDeclarationList list = field.fields; + JUnitTestCase.assertNotNull(list); + NodeList variables7 = list.variables; + EngineTestCase.assertSize(1, variables7); + VariableDeclaration variable = variables7[0]; + JUnitTestCase.assertNotNull(variable.name); + } + void test_parseClassMember_field_namedOperator() { + FieldDeclaration field = ParserTestCase.parse("parseClassMember", ["C"], "var operator;"); + JUnitTestCase.assertNull(field.documentationComment); + EngineTestCase.assertSize(0, field.metadata); + JUnitTestCase.assertNull(field.keyword); + VariableDeclarationList list = field.fields; + JUnitTestCase.assertNotNull(list); + NodeList variables8 = list.variables; + EngineTestCase.assertSize(1, variables8); + VariableDeclaration variable = variables8[0]; + JUnitTestCase.assertNotNull(variable.name); + } + void test_parseClassMember_field_namedSet() { + FieldDeclaration field = ParserTestCase.parse("parseClassMember", ["C"], "var set;"); + JUnitTestCase.assertNull(field.documentationComment); + EngineTestCase.assertSize(0, field.metadata); + JUnitTestCase.assertNull(field.keyword); + VariableDeclarationList list = field.fields; + JUnitTestCase.assertNotNull(list); + NodeList variables9 = list.variables; + EngineTestCase.assertSize(1, variables9); + VariableDeclaration variable = variables9[0]; + JUnitTestCase.assertNotNull(variable.name); + } + void test_parseClassMember_getter_void() { + MethodDeclaration method = ParserTestCase.parse("parseClassMember", ["C"], "void get g {}"); + JUnitTestCase.assertNull(method.documentationComment); + JUnitTestCase.assertNull(method.externalKeyword); + JUnitTestCase.assertNull(method.modifierKeyword); + JUnitTestCase.assertNotNull(method.propertyKeyword); + JUnitTestCase.assertNotNull(method.returnType); + JUnitTestCase.assertNotNull(method.name); + JUnitTestCase.assertNull(method.operatorKeyword); + JUnitTestCase.assertNotNull(method.body); + } + void test_parseClassMember_method_external() { + MethodDeclaration method = ParserTestCase.parse("parseClassMember", ["C"], "external m();"); + JUnitTestCase.assertNotNull(method.body); + JUnitTestCase.assertNull(method.documentationComment); + JUnitTestCase.assertNotNull(method.externalKeyword); + JUnitTestCase.assertNull(method.modifierKeyword); + JUnitTestCase.assertNotNull(method.name); + JUnitTestCase.assertNull(method.operatorKeyword); + JUnitTestCase.assertNotNull(method.parameters); + JUnitTestCase.assertNull(method.propertyKeyword); + JUnitTestCase.assertNull(method.returnType); + } + void test_parseClassMember_method_external_withTypeAndArgs() { + MethodDeclaration method = ParserTestCase.parse("parseClassMember", ["C"], "external int m(int a);"); + JUnitTestCase.assertNotNull(method.body); + JUnitTestCase.assertNull(method.documentationComment); + JUnitTestCase.assertNotNull(method.externalKeyword); + JUnitTestCase.assertNull(method.modifierKeyword); + JUnitTestCase.assertNotNull(method.name); + JUnitTestCase.assertNull(method.operatorKeyword); + JUnitTestCase.assertNotNull(method.parameters); + JUnitTestCase.assertNull(method.propertyKeyword); + JUnitTestCase.assertNotNull(method.returnType); + } + void test_parseClassMember_method_get_noType() { + MethodDeclaration method = ParserTestCase.parse("parseClassMember", ["C"], "get() {}"); + JUnitTestCase.assertNull(method.documentationComment); + JUnitTestCase.assertNull(method.externalKeyword); + JUnitTestCase.assertNull(method.modifierKeyword); + JUnitTestCase.assertNull(method.propertyKeyword); + JUnitTestCase.assertNull(method.returnType); + JUnitTestCase.assertNotNull(method.name); + JUnitTestCase.assertNull(method.operatorKeyword); + JUnitTestCase.assertNotNull(method.parameters); + JUnitTestCase.assertNotNull(method.body); + } + void test_parseClassMember_method_get_type() { + MethodDeclaration method = ParserTestCase.parse("parseClassMember", ["C"], "int get() {}"); + JUnitTestCase.assertNull(method.documentationComment); + JUnitTestCase.assertNull(method.externalKeyword); + JUnitTestCase.assertNull(method.modifierKeyword); + JUnitTestCase.assertNull(method.propertyKeyword); + JUnitTestCase.assertNotNull(method.returnType); + JUnitTestCase.assertNotNull(method.name); + JUnitTestCase.assertNull(method.operatorKeyword); + JUnitTestCase.assertNotNull(method.parameters); + JUnitTestCase.assertNotNull(method.body); + } + void test_parseClassMember_method_get_void() { + MethodDeclaration method = ParserTestCase.parse("parseClassMember", ["C"], "void get() {}"); + JUnitTestCase.assertNull(method.documentationComment); + JUnitTestCase.assertNull(method.externalKeyword); + JUnitTestCase.assertNull(method.modifierKeyword); + JUnitTestCase.assertNull(method.propertyKeyword); + JUnitTestCase.assertNotNull(method.returnType); + JUnitTestCase.assertNotNull(method.name); + JUnitTestCase.assertNull(method.operatorKeyword); + JUnitTestCase.assertNotNull(method.parameters); + JUnitTestCase.assertNotNull(method.body); + } + void test_parseClassMember_method_operator_noType() { + MethodDeclaration method = ParserTestCase.parse("parseClassMember", ["C"], "operator() {}"); + JUnitTestCase.assertNull(method.documentationComment); + JUnitTestCase.assertNull(method.externalKeyword); + JUnitTestCase.assertNull(method.modifierKeyword); + JUnitTestCase.assertNull(method.propertyKeyword); + JUnitTestCase.assertNull(method.returnType); + JUnitTestCase.assertNotNull(method.name); + JUnitTestCase.assertNull(method.operatorKeyword); + JUnitTestCase.assertNotNull(method.parameters); + JUnitTestCase.assertNotNull(method.body); + } + void test_parseClassMember_method_operator_type() { + MethodDeclaration method = ParserTestCase.parse("parseClassMember", ["C"], "int operator() {}"); + JUnitTestCase.assertNull(method.documentationComment); + JUnitTestCase.assertNull(method.externalKeyword); + JUnitTestCase.assertNull(method.modifierKeyword); + JUnitTestCase.assertNull(method.propertyKeyword); + JUnitTestCase.assertNotNull(method.returnType); + JUnitTestCase.assertNotNull(method.name); + JUnitTestCase.assertNull(method.operatorKeyword); + JUnitTestCase.assertNotNull(method.parameters); + JUnitTestCase.assertNotNull(method.body); + } + void test_parseClassMember_method_operator_void() { + MethodDeclaration method = ParserTestCase.parse("parseClassMember", ["C"], "void operator() {}"); + JUnitTestCase.assertNull(method.documentationComment); + JUnitTestCase.assertNull(method.externalKeyword); + JUnitTestCase.assertNull(method.modifierKeyword); + JUnitTestCase.assertNull(method.propertyKeyword); + JUnitTestCase.assertNotNull(method.returnType); + JUnitTestCase.assertNotNull(method.name); + JUnitTestCase.assertNull(method.operatorKeyword); + JUnitTestCase.assertNotNull(method.parameters); + JUnitTestCase.assertNotNull(method.body); + } + void test_parseClassMember_method_returnType_parameterized() { + MethodDeclaration method = ParserTestCase.parse("parseClassMember", ["C"], "p.A m() {}"); + JUnitTestCase.assertNull(method.documentationComment); + JUnitTestCase.assertNull(method.externalKeyword); + JUnitTestCase.assertNull(method.modifierKeyword); + JUnitTestCase.assertNull(method.propertyKeyword); + JUnitTestCase.assertNotNull(method.returnType); + JUnitTestCase.assertNotNull(method.name); + JUnitTestCase.assertNull(method.operatorKeyword); + JUnitTestCase.assertNotNull(method.parameters); + JUnitTestCase.assertNotNull(method.body); + } + void test_parseClassMember_method_set_noType() { + MethodDeclaration method = ParserTestCase.parse("parseClassMember", ["C"], "set() {}"); + JUnitTestCase.assertNull(method.documentationComment); + JUnitTestCase.assertNull(method.externalKeyword); + JUnitTestCase.assertNull(method.modifierKeyword); + JUnitTestCase.assertNull(method.propertyKeyword); + JUnitTestCase.assertNull(method.returnType); + JUnitTestCase.assertNotNull(method.name); + JUnitTestCase.assertNull(method.operatorKeyword); + JUnitTestCase.assertNotNull(method.parameters); + JUnitTestCase.assertNotNull(method.body); + } + void test_parseClassMember_method_set_type() { + MethodDeclaration method = ParserTestCase.parse("parseClassMember", ["C"], "int set() {}"); + JUnitTestCase.assertNull(method.documentationComment); + JUnitTestCase.assertNull(method.externalKeyword); + JUnitTestCase.assertNull(method.modifierKeyword); + JUnitTestCase.assertNull(method.propertyKeyword); + JUnitTestCase.assertNotNull(method.returnType); + JUnitTestCase.assertNotNull(method.name); + JUnitTestCase.assertNull(method.operatorKeyword); + JUnitTestCase.assertNotNull(method.parameters); + JUnitTestCase.assertNotNull(method.body); + } + void test_parseClassMember_method_set_void() { + MethodDeclaration method = ParserTestCase.parse("parseClassMember", ["C"], "void set() {}"); + JUnitTestCase.assertNull(method.documentationComment); + JUnitTestCase.assertNull(method.externalKeyword); + JUnitTestCase.assertNull(method.modifierKeyword); + JUnitTestCase.assertNull(method.propertyKeyword); + JUnitTestCase.assertNotNull(method.returnType); + JUnitTestCase.assertNotNull(method.name); + JUnitTestCase.assertNull(method.operatorKeyword); + JUnitTestCase.assertNotNull(method.parameters); + JUnitTestCase.assertNotNull(method.body); + } + void test_parseClassMember_operator_index() { + MethodDeclaration method = ParserTestCase.parse("parseClassMember", ["C"], "int operator [](int i) {}"); + JUnitTestCase.assertNull(method.documentationComment); + JUnitTestCase.assertNull(method.externalKeyword); + JUnitTestCase.assertNull(method.modifierKeyword); + JUnitTestCase.assertNull(method.propertyKeyword); + JUnitTestCase.assertNotNull(method.returnType); + JUnitTestCase.assertNotNull(method.name); + JUnitTestCase.assertNotNull(method.operatorKeyword); + JUnitTestCase.assertNotNull(method.parameters); + JUnitTestCase.assertNotNull(method.body); + } + void test_parseClassMember_operator_indexAssign() { + MethodDeclaration method = ParserTestCase.parse("parseClassMember", ["C"], "int operator []=(int i) {}"); + JUnitTestCase.assertNull(method.documentationComment); + JUnitTestCase.assertNull(method.externalKeyword); + JUnitTestCase.assertNull(method.modifierKeyword); + JUnitTestCase.assertNull(method.propertyKeyword); + JUnitTestCase.assertNotNull(method.returnType); + JUnitTestCase.assertNotNull(method.name); + JUnitTestCase.assertNotNull(method.operatorKeyword); + JUnitTestCase.assertNotNull(method.parameters); + JUnitTestCase.assertNotNull(method.body); + } + void test_parseClassMember_redirectingFactory_const() { + ConstructorDeclaration constructor = ParserTestCase.parse("parseClassMember", ["C"], "const factory C() = B;"); + JUnitTestCase.assertNull(constructor.externalKeyword); + JUnitTestCase.assertNotNull(constructor.constKeyword); + JUnitTestCase.assertNotNull(constructor.factoryKeyword); + JUnitTestCase.assertNotNull(constructor.returnType); + JUnitTestCase.assertNull(constructor.period); + JUnitTestCase.assertNull(constructor.name); + JUnitTestCase.assertNotNull(constructor.parameters); + JUnitTestCase.assertNotNull(constructor.separator); + EngineTestCase.assertSize(0, constructor.initializers); + JUnitTestCase.assertNotNull(constructor.redirectedConstructor); + JUnitTestCase.assertNotNull(constructor.body); + } + void test_parseClassMember_redirectingFactory_nonConst() { + ConstructorDeclaration constructor = ParserTestCase.parse("parseClassMember", ["C"], "factory C() = B;"); + JUnitTestCase.assertNull(constructor.externalKeyword); + JUnitTestCase.assertNull(constructor.constKeyword); + JUnitTestCase.assertNotNull(constructor.factoryKeyword); + JUnitTestCase.assertNotNull(constructor.returnType); + JUnitTestCase.assertNull(constructor.period); + JUnitTestCase.assertNull(constructor.name); + JUnitTestCase.assertNotNull(constructor.parameters); + JUnitTestCase.assertNotNull(constructor.separator); + EngineTestCase.assertSize(0, constructor.initializers); + JUnitTestCase.assertNotNull(constructor.redirectedConstructor); + JUnitTestCase.assertNotNull(constructor.body); + } + void test_parseCombinators_h() { + List combinators = ParserTestCase.parse4("parseCombinators", "hide a;", []); + EngineTestCase.assertSize(1, combinators); + HideCombinator combinator = combinators[0] as HideCombinator; + JUnitTestCase.assertNotNull(combinator); + JUnitTestCase.assertNotNull(combinator.keyword); + EngineTestCase.assertSize(1, combinator.hiddenNames); + } + void test_parseCombinators_hs() { + List combinators = ParserTestCase.parse4("parseCombinators", "hide a show b;", []); + EngineTestCase.assertSize(2, combinators); + HideCombinator hideCombinator = combinators[0] as HideCombinator; + JUnitTestCase.assertNotNull(hideCombinator); + JUnitTestCase.assertNotNull(hideCombinator.keyword); + EngineTestCase.assertSize(1, hideCombinator.hiddenNames); + ShowCombinator showCombinator = combinators[1] as ShowCombinator; + JUnitTestCase.assertNotNull(showCombinator); + JUnitTestCase.assertNotNull(showCombinator.keyword); + EngineTestCase.assertSize(1, showCombinator.shownNames); + } + void test_parseCombinators_hshs() { + List combinators = ParserTestCase.parse4("parseCombinators", "hide a show b hide c show d;", []); + EngineTestCase.assertSize(4, combinators); + } + void test_parseCombinators_s() { + List combinators = ParserTestCase.parse4("parseCombinators", "show a;", []); + EngineTestCase.assertSize(1, combinators); + ShowCombinator combinator = combinators[0] as ShowCombinator; + JUnitTestCase.assertNotNull(combinator); + JUnitTestCase.assertNotNull(combinator.keyword); + EngineTestCase.assertSize(1, combinator.shownNames); + } + void test_parseCommentAndMetadata_c() { + CommentAndMetadata commentAndMetadata = ParserTestCase.parse4("parseCommentAndMetadata", "/** 1 */ void", []); + JUnitTestCase.assertNotNull(commentAndMetadata.comment); + EngineTestCase.assertSize(0, commentAndMetadata.metadata); + } + void test_parseCommentAndMetadata_cmc() { + CommentAndMetadata commentAndMetadata = ParserTestCase.parse4("parseCommentAndMetadata", "/** 1 */ @A /** 2 */ void", []); + JUnitTestCase.assertNotNull(commentAndMetadata.comment); + EngineTestCase.assertSize(1, commentAndMetadata.metadata); + } + void test_parseCommentAndMetadata_cmcm() { + CommentAndMetadata commentAndMetadata = ParserTestCase.parse4("parseCommentAndMetadata", "/** 1 */ @A /** 2 */ @B void", []); + JUnitTestCase.assertNotNull(commentAndMetadata.comment); + EngineTestCase.assertSize(2, commentAndMetadata.metadata); + } + void test_parseCommentAndMetadata_cmm() { + CommentAndMetadata commentAndMetadata = ParserTestCase.parse4("parseCommentAndMetadata", "/** 1 */ @A @B void", []); + JUnitTestCase.assertNotNull(commentAndMetadata.comment); + EngineTestCase.assertSize(2, commentAndMetadata.metadata); + } + void test_parseCommentAndMetadata_m() { + CommentAndMetadata commentAndMetadata = ParserTestCase.parse4("parseCommentAndMetadata", "@A void", []); + JUnitTestCase.assertNull(commentAndMetadata.comment); + EngineTestCase.assertSize(1, commentAndMetadata.metadata); + } + void test_parseCommentAndMetadata_mcm() { + CommentAndMetadata commentAndMetadata = ParserTestCase.parse4("parseCommentAndMetadata", "@A /** 1 */ @B void", []); + JUnitTestCase.assertNotNull(commentAndMetadata.comment); + EngineTestCase.assertSize(2, commentAndMetadata.metadata); + } + void test_parseCommentAndMetadata_mcmc() { + CommentAndMetadata commentAndMetadata = ParserTestCase.parse4("parseCommentAndMetadata", "@A /** 1 */ @B /** 2 */ void", []); + JUnitTestCase.assertNotNull(commentAndMetadata.comment); + EngineTestCase.assertSize(2, commentAndMetadata.metadata); + } + void test_parseCommentAndMetadata_mm() { + CommentAndMetadata commentAndMetadata = ParserTestCase.parse4("parseCommentAndMetadata", "@A @B(x) void", []); + JUnitTestCase.assertNull(commentAndMetadata.comment); + EngineTestCase.assertSize(2, commentAndMetadata.metadata); + } + void test_parseCommentAndMetadata_none() { + CommentAndMetadata commentAndMetadata = ParserTestCase.parse4("parseCommentAndMetadata", "void", []); + JUnitTestCase.assertNull(commentAndMetadata.comment); + EngineTestCase.assertSize(0, commentAndMetadata.metadata); + } + void test_parseCommentReference_new_prefixed() { + CommentReference reference = ParserTestCase.parse("parseCommentReference", ["new a.b", 7], ""); + PrefixedIdentifier prefixedIdentifier = EngineTestCase.assertInstanceOf(PrefixedIdentifier, reference.identifier); + SimpleIdentifier prefix9 = prefixedIdentifier.prefix; + JUnitTestCase.assertNotNull(prefix9.token); + JUnitTestCase.assertEquals("a", prefix9.name); + JUnitTestCase.assertEquals(11, prefix9.offset); + JUnitTestCase.assertNotNull(prefixedIdentifier.period); + SimpleIdentifier identifier9 = prefixedIdentifier.identifier; + JUnitTestCase.assertNotNull(identifier9.token); + JUnitTestCase.assertEquals("b", identifier9.name); + JUnitTestCase.assertEquals(13, identifier9.offset); + } + void test_parseCommentReference_new_simple() { + CommentReference reference = ParserTestCase.parse("parseCommentReference", ["new a", 5], ""); + SimpleIdentifier identifier10 = EngineTestCase.assertInstanceOf(SimpleIdentifier, reference.identifier); + JUnitTestCase.assertNotNull(identifier10.token); + JUnitTestCase.assertEquals("a", identifier10.name); + JUnitTestCase.assertEquals(9, identifier10.offset); + } + void test_parseCommentReference_prefixed() { + CommentReference reference = ParserTestCase.parse("parseCommentReference", ["a.b", 7], ""); + PrefixedIdentifier prefixedIdentifier = EngineTestCase.assertInstanceOf(PrefixedIdentifier, reference.identifier); + SimpleIdentifier prefix10 = prefixedIdentifier.prefix; + JUnitTestCase.assertNotNull(prefix10.token); + JUnitTestCase.assertEquals("a", prefix10.name); + JUnitTestCase.assertEquals(7, prefix10.offset); + JUnitTestCase.assertNotNull(prefixedIdentifier.period); + SimpleIdentifier identifier11 = prefixedIdentifier.identifier; + JUnitTestCase.assertNotNull(identifier11.token); + JUnitTestCase.assertEquals("b", identifier11.name); + JUnitTestCase.assertEquals(9, identifier11.offset); + } + void test_parseCommentReference_simple() { + CommentReference reference = ParserTestCase.parse("parseCommentReference", ["a", 5], ""); + SimpleIdentifier identifier12 = EngineTestCase.assertInstanceOf(SimpleIdentifier, reference.identifier); + JUnitTestCase.assertNotNull(identifier12.token); + JUnitTestCase.assertEquals("a", identifier12.name); + JUnitTestCase.assertEquals(5, identifier12.offset); + } + void test_parseCommentReferences_multiLine() { + List tokens = [new StringToken(TokenType.MULTI_LINE_COMMENT, "/** xxx [a] yyy [b] zzz */", 3)]; + List references = ParserTestCase.parse("parseCommentReferences", [tokens], ""); + EngineTestCase.assertSize(2, references); + CommentReference reference = references[0]; + JUnitTestCase.assertNotNull(reference); + JUnitTestCase.assertNotNull(reference.identifier); + JUnitTestCase.assertEquals(12, reference.offset); + reference = references[1]; + JUnitTestCase.assertNotNull(reference); + JUnitTestCase.assertNotNull(reference.identifier); + JUnitTestCase.assertEquals(20, reference.offset); + } + void test_parseCommentReferences_singleLine() { + List tokens = [new StringToken(TokenType.SINGLE_LINE_COMMENT, "/// xxx [a] yyy [b] zzz", 3), new StringToken(TokenType.SINGLE_LINE_COMMENT, "/// x [c]", 28)]; + List references = ParserTestCase.parse("parseCommentReferences", [tokens], ""); + EngineTestCase.assertSize(3, references); + CommentReference reference = references[0]; + JUnitTestCase.assertNotNull(reference); + JUnitTestCase.assertNotNull(reference.identifier); + JUnitTestCase.assertEquals(12, reference.offset); + reference = references[1]; + JUnitTestCase.assertNotNull(reference); + JUnitTestCase.assertNotNull(reference.identifier); + JUnitTestCase.assertEquals(20, reference.offset); + reference = references[2]; + JUnitTestCase.assertNotNull(reference); + JUnitTestCase.assertNotNull(reference.identifier); + JUnitTestCase.assertEquals(35, reference.offset); + } + void test_parseCompilationUnit_directives_multiple() { + CompilationUnit unit = ParserTestCase.parse4("parseCompilationUnit", "library l;\npart 'a.dart';", []); + JUnitTestCase.assertNull(unit.scriptTag); + EngineTestCase.assertSize(2, unit.directives); + EngineTestCase.assertSize(0, unit.declarations); + } + void test_parseCompilationUnit_directives_single() { + CompilationUnit unit = ParserTestCase.parse4("parseCompilationUnit", "library l;", []); + JUnitTestCase.assertNull(unit.scriptTag); + EngineTestCase.assertSize(1, unit.directives); + EngineTestCase.assertSize(0, unit.declarations); + } + void test_parseCompilationUnit_empty() { + CompilationUnit unit = ParserTestCase.parse4("parseCompilationUnit", "", []); + JUnitTestCase.assertNull(unit.scriptTag); + EngineTestCase.assertSize(0, unit.directives); + EngineTestCase.assertSize(0, unit.declarations); + } + void test_parseCompilationUnit_script() { + CompilationUnit unit = ParserTestCase.parse4("parseCompilationUnit", "#! /bin/dart", []); + JUnitTestCase.assertNotNull(unit.scriptTag); + EngineTestCase.assertSize(0, unit.directives); + EngineTestCase.assertSize(0, unit.declarations); + } + void test_parseCompilationUnit_topLevelDeclaration() { + CompilationUnit unit = ParserTestCase.parse4("parseCompilationUnit", "class A {}", []); + JUnitTestCase.assertNull(unit.scriptTag); + EngineTestCase.assertSize(0, unit.directives); + EngineTestCase.assertSize(1, unit.declarations); + } + void test_parseCompilationUnitMember_class() { + ClassDeclaration declaration = ParserTestCase.parse("parseCompilationUnitMember", [emptyCommentAndMetadata()], "class A {}"); + JUnitTestCase.assertEquals("A", declaration.name.name); + EngineTestCase.assertSize(0, declaration.members); + } + void test_parseCompilationUnitMember_constVariable() { + TopLevelVariableDeclaration declaration = ParserTestCase.parse("parseCompilationUnitMember", [emptyCommentAndMetadata()], "const int x = 0;"); + JUnitTestCase.assertNotNull(declaration.semicolon); + JUnitTestCase.assertNotNull(declaration.variables); + } + void test_parseCompilationUnitMember_finalVariable() { + TopLevelVariableDeclaration declaration = ParserTestCase.parse("parseCompilationUnitMember", [emptyCommentAndMetadata()], "final x = 0;"); + JUnitTestCase.assertNotNull(declaration.semicolon); + JUnitTestCase.assertNotNull(declaration.variables); + } + void test_parseCompilationUnitMember_function_external_noType() { + FunctionDeclaration declaration = ParserTestCase.parse("parseCompilationUnitMember", [emptyCommentAndMetadata()], "external f()"); + JUnitTestCase.assertNotNull(declaration.externalKeyword); + JUnitTestCase.assertNotNull(declaration.functionExpression); + JUnitTestCase.assertNull(declaration.propertyKeyword); + } + void test_parseCompilationUnitMember_function_external_type() { + FunctionDeclaration declaration = ParserTestCase.parse("parseCompilationUnitMember", [emptyCommentAndMetadata()], "external int f()"); + JUnitTestCase.assertNotNull(declaration.externalKeyword); + JUnitTestCase.assertNotNull(declaration.functionExpression); + JUnitTestCase.assertNull(declaration.propertyKeyword); + } + void test_parseCompilationUnitMember_function_noType() { + FunctionDeclaration declaration = ParserTestCase.parse("parseCompilationUnitMember", [emptyCommentAndMetadata()], "f() {}"); + JUnitTestCase.assertNotNull(declaration.functionExpression); + JUnitTestCase.assertNull(declaration.propertyKeyword); + } + void test_parseCompilationUnitMember_function_type() { + FunctionDeclaration declaration = ParserTestCase.parse("parseCompilationUnitMember", [emptyCommentAndMetadata()], "int f() {}"); + JUnitTestCase.assertNotNull(declaration.functionExpression); + JUnitTestCase.assertNull(declaration.propertyKeyword); + } + void test_parseCompilationUnitMember_getter_external_noType() { + FunctionDeclaration declaration = ParserTestCase.parse("parseCompilationUnitMember", [emptyCommentAndMetadata()], "external get p"); + JUnitTestCase.assertNotNull(declaration.externalKeyword); + JUnitTestCase.assertNotNull(declaration.functionExpression); + JUnitTestCase.assertNotNull(declaration.propertyKeyword); + } + void test_parseCompilationUnitMember_getter_external_type() { + FunctionDeclaration declaration = ParserTestCase.parse("parseCompilationUnitMember", [emptyCommentAndMetadata()], "external int get p"); + JUnitTestCase.assertNotNull(declaration.externalKeyword); + JUnitTestCase.assertNotNull(declaration.functionExpression); + JUnitTestCase.assertNotNull(declaration.propertyKeyword); + } + void test_parseCompilationUnitMember_getter_noType() { + FunctionDeclaration declaration = ParserTestCase.parse("parseCompilationUnitMember", [emptyCommentAndMetadata()], "get p => 0;"); + JUnitTestCase.assertNotNull(declaration.functionExpression); + JUnitTestCase.assertNotNull(declaration.propertyKeyword); + } + void test_parseCompilationUnitMember_getter_type() { + FunctionDeclaration declaration = ParserTestCase.parse("parseCompilationUnitMember", [emptyCommentAndMetadata()], "int get p => 0;"); + JUnitTestCase.assertNotNull(declaration.functionExpression); + JUnitTestCase.assertNotNull(declaration.propertyKeyword); + } + void test_parseCompilationUnitMember_setter_external_noType() { + FunctionDeclaration declaration = ParserTestCase.parse("parseCompilationUnitMember", [emptyCommentAndMetadata()], "external set p(v)"); + JUnitTestCase.assertNotNull(declaration.externalKeyword); + JUnitTestCase.assertNotNull(declaration.functionExpression); + JUnitTestCase.assertNotNull(declaration.propertyKeyword); + } + void test_parseCompilationUnitMember_setter_external_type() { + FunctionDeclaration declaration = ParserTestCase.parse("parseCompilationUnitMember", [emptyCommentAndMetadata()], "external void set p(int v)"); + JUnitTestCase.assertNotNull(declaration.externalKeyword); + JUnitTestCase.assertNotNull(declaration.functionExpression); + JUnitTestCase.assertNotNull(declaration.propertyKeyword); + } + void test_parseCompilationUnitMember_setter_noType() { + FunctionDeclaration declaration = ParserTestCase.parse("parseCompilationUnitMember", [emptyCommentAndMetadata()], "set p(v) {}"); + JUnitTestCase.assertNotNull(declaration.functionExpression); + JUnitTestCase.assertNotNull(declaration.propertyKeyword); + } + void test_parseCompilationUnitMember_setter_type() { + FunctionDeclaration declaration = ParserTestCase.parse("parseCompilationUnitMember", [emptyCommentAndMetadata()], "void set p(int v) {}"); + JUnitTestCase.assertNotNull(declaration.functionExpression); + JUnitTestCase.assertNotNull(declaration.propertyKeyword); + } + void test_parseCompilationUnitMember_typedef_class_abstract() { + ClassTypeAlias typeAlias = ParserTestCase.parse("parseCompilationUnitMember", [emptyCommentAndMetadata()], "typedef C = abstract S with M;"); + JUnitTestCase.assertNotNull(typeAlias.keyword); + JUnitTestCase.assertEquals("C", typeAlias.name.name); + JUnitTestCase.assertNull(typeAlias.typeParameters); + JUnitTestCase.assertNotNull(typeAlias.equals); + JUnitTestCase.assertNotNull(typeAlias.abstractKeyword); + JUnitTestCase.assertEquals("S", typeAlias.superclass.name.name); + JUnitTestCase.assertNotNull(typeAlias.withClause); + JUnitTestCase.assertNull(typeAlias.implementsClause); + JUnitTestCase.assertNotNull(typeAlias.semicolon); + } + void test_parseCompilationUnitMember_typedef_class_generic() { + ClassTypeAlias typeAlias = ParserTestCase.parse("parseCompilationUnitMember", [emptyCommentAndMetadata()], "typedef C = S with M implements I;"); + JUnitTestCase.assertNotNull(typeAlias.keyword); + JUnitTestCase.assertEquals("C", typeAlias.name.name); + EngineTestCase.assertSize(1, typeAlias.typeParameters.typeParameters); + JUnitTestCase.assertNotNull(typeAlias.equals); + JUnitTestCase.assertNull(typeAlias.abstractKeyword); + JUnitTestCase.assertEquals("S", typeAlias.superclass.name.name); + JUnitTestCase.assertNotNull(typeAlias.withClause); + JUnitTestCase.assertNotNull(typeAlias.implementsClause); + JUnitTestCase.assertNotNull(typeAlias.semicolon); + } + void test_parseCompilationUnitMember_typedef_class_implements() { + ClassTypeAlias typeAlias = ParserTestCase.parse("parseCompilationUnitMember", [emptyCommentAndMetadata()], "typedef C = S with M implements I;"); + JUnitTestCase.assertNotNull(typeAlias.keyword); + JUnitTestCase.assertEquals("C", typeAlias.name.name); + JUnitTestCase.assertNull(typeAlias.typeParameters); + JUnitTestCase.assertNotNull(typeAlias.equals); + JUnitTestCase.assertNull(typeAlias.abstractKeyword); + JUnitTestCase.assertEquals("S", typeAlias.superclass.name.name); + JUnitTestCase.assertNotNull(typeAlias.withClause); + JUnitTestCase.assertNotNull(typeAlias.implementsClause); + JUnitTestCase.assertNotNull(typeAlias.semicolon); + } + void test_parseCompilationUnitMember_typedef_class_noImplements() { + ClassTypeAlias typeAlias = ParserTestCase.parse("parseCompilationUnitMember", [emptyCommentAndMetadata()], "typedef C = S with M;"); + JUnitTestCase.assertNotNull(typeAlias.keyword); + JUnitTestCase.assertEquals("C", typeAlias.name.name); + JUnitTestCase.assertNull(typeAlias.typeParameters); + JUnitTestCase.assertNotNull(typeAlias.equals); + JUnitTestCase.assertNull(typeAlias.abstractKeyword); + JUnitTestCase.assertEquals("S", typeAlias.superclass.name.name); + JUnitTestCase.assertNotNull(typeAlias.withClause); + JUnitTestCase.assertNull(typeAlias.implementsClause); + JUnitTestCase.assertNotNull(typeAlias.semicolon); + } + void test_parseCompilationUnitMember_typedef_function() { + FunctionTypeAlias typeAlias = ParserTestCase.parse("parseCompilationUnitMember", [emptyCommentAndMetadata()], "typedef F();"); + JUnitTestCase.assertEquals("F", typeAlias.name.name); + EngineTestCase.assertSize(0, typeAlias.parameters.parameters); + } + void test_parseCompilationUnitMember_variable() { + TopLevelVariableDeclaration declaration = ParserTestCase.parse("parseCompilationUnitMember", [emptyCommentAndMetadata()], "var x = 0;"); + JUnitTestCase.assertNotNull(declaration.semicolon); + JUnitTestCase.assertNotNull(declaration.variables); + } + void test_parseConditionalExpression() { + ConditionalExpression expression = ParserTestCase.parse4("parseConditionalExpression", "x ? y : z", []); + JUnitTestCase.assertNotNull(expression.condition); + JUnitTestCase.assertNotNull(expression.question); + JUnitTestCase.assertNotNull(expression.thenExpression); + JUnitTestCase.assertNotNull(expression.colon); + JUnitTestCase.assertNotNull(expression.elseExpression); + } + void test_parseConstExpression_instanceCreation() { + InstanceCreationExpression expression = ParserTestCase.parse4("parseConstExpression", "const A()", []); + JUnitTestCase.assertNotNull(expression.keyword); + ConstructorName name = expression.constructorName; + JUnitTestCase.assertNotNull(name); + JUnitTestCase.assertNotNull(name.type); + JUnitTestCase.assertNull(name.period); + JUnitTestCase.assertNull(name.name); + JUnitTestCase.assertNotNull(expression.argumentList); + } + void test_parseConstExpression_listLiteral_typed() { + ListLiteral literal = ParserTestCase.parse4("parseConstExpression", "const []", []); + JUnitTestCase.assertNotNull(literal.modifier); + JUnitTestCase.assertNotNull(literal.typeArguments); + JUnitTestCase.assertNotNull(literal.leftBracket); + EngineTestCase.assertSize(0, literal.elements); + JUnitTestCase.assertNotNull(literal.rightBracket); + } + void test_parseConstExpression_listLiteral_untyped() { + ListLiteral literal = ParserTestCase.parse4("parseConstExpression", "const []", []); + JUnitTestCase.assertNotNull(literal.modifier); + JUnitTestCase.assertNull(literal.typeArguments); + JUnitTestCase.assertNotNull(literal.leftBracket); + EngineTestCase.assertSize(0, literal.elements); + JUnitTestCase.assertNotNull(literal.rightBracket); + } + void test_parseConstExpression_mapLiteral_typed() { + MapLiteral literal = ParserTestCase.parse4("parseConstExpression", "const {}", []); + JUnitTestCase.assertNotNull(literal.leftBracket); + EngineTestCase.assertSize(0, literal.entries); + JUnitTestCase.assertNotNull(literal.rightBracket); + JUnitTestCase.assertNotNull(literal.typeArguments); + } + void test_parseConstExpression_mapLiteral_untyped() { + MapLiteral literal = ParserTestCase.parse4("parseConstExpression", "const {}", []); + JUnitTestCase.assertNotNull(literal.leftBracket); + EngineTestCase.assertSize(0, literal.entries); + JUnitTestCase.assertNotNull(literal.rightBracket); + JUnitTestCase.assertNull(literal.typeArguments); + } + void test_parseConstructor() { + } + void test_parseConstructorFieldInitializer_qualified() { + ConstructorFieldInitializer invocation = ParserTestCase.parse4("parseConstructorFieldInitializer", "this.a = b", []); + JUnitTestCase.assertNotNull(invocation.equals); + JUnitTestCase.assertNotNull(invocation.expression); + JUnitTestCase.assertNotNull(invocation.fieldName); + JUnitTestCase.assertNotNull(invocation.keyword); + JUnitTestCase.assertNotNull(invocation.period); + } + void test_parseConstructorFieldInitializer_unqualified() { + ConstructorFieldInitializer invocation = ParserTestCase.parse4("parseConstructorFieldInitializer", "a = b", []); + JUnitTestCase.assertNotNull(invocation.equals); + JUnitTestCase.assertNotNull(invocation.expression); + JUnitTestCase.assertNotNull(invocation.fieldName); + JUnitTestCase.assertNull(invocation.keyword); + JUnitTestCase.assertNull(invocation.period); + } + void test_parseConstructorName_named_noPrefix() { + ConstructorName name = ParserTestCase.parse4("parseConstructorName", "A.n;", []); + JUnitTestCase.assertNotNull(name.type); + JUnitTestCase.assertNull(name.period); + JUnitTestCase.assertNull(name.name); + } + void test_parseConstructorName_named_prefixed() { + ConstructorName name = ParserTestCase.parse4("parseConstructorName", "p.A.n;", []); + JUnitTestCase.assertNotNull(name.type); + JUnitTestCase.assertNotNull(name.period); + JUnitTestCase.assertNotNull(name.name); + } + void test_parseConstructorName_unnamed_noPrefix() { + ConstructorName name = ParserTestCase.parse4("parseConstructorName", "A;", []); + JUnitTestCase.assertNotNull(name.type); + JUnitTestCase.assertNull(name.period); + JUnitTestCase.assertNull(name.name); + } + void test_parseConstructorName_unnamed_prefixed() { + ConstructorName name = ParserTestCase.parse4("parseConstructorName", "p.A;", []); + JUnitTestCase.assertNotNull(name.type); + JUnitTestCase.assertNull(name.period); + JUnitTestCase.assertNull(name.name); + } + void test_parseContinueStatement_label() { + ContinueStatement statement = ParserTestCase.parse4("parseContinueStatement", "continue foo;", [ParserErrorCode.CONTINUE_OUTSIDE_OF_LOOP]); + JUnitTestCase.assertNotNull(statement.keyword); + JUnitTestCase.assertNotNull(statement.label); + JUnitTestCase.assertNotNull(statement.semicolon); + } + void test_parseContinueStatement_noLabel() { + ContinueStatement statement = ParserTestCase.parse4("parseContinueStatement", "continue;", [ParserErrorCode.CONTINUE_OUTSIDE_OF_LOOP]); + JUnitTestCase.assertNotNull(statement.keyword); + JUnitTestCase.assertNull(statement.label); + JUnitTestCase.assertNotNull(statement.semicolon); + } + void test_parseDirective_export() { + ExportDirective directive = ParserTestCase.parse("parseDirective", [emptyCommentAndMetadata()], "export 'lib/lib.dart';"); + JUnitTestCase.assertNotNull(directive.keyword); + JUnitTestCase.assertNotNull(directive.libraryUri); + EngineTestCase.assertSize(0, directive.combinators); + JUnitTestCase.assertNotNull(directive.semicolon); + } + void test_parseDirective_import() { + ImportDirective directive = ParserTestCase.parse("parseDirective", [emptyCommentAndMetadata()], "import 'lib/lib.dart';"); + JUnitTestCase.assertNotNull(directive.keyword); + JUnitTestCase.assertNotNull(directive.libraryUri); + JUnitTestCase.assertNull(directive.asToken); + JUnitTestCase.assertNull(directive.prefix); + EngineTestCase.assertSize(0, directive.combinators); + JUnitTestCase.assertNotNull(directive.semicolon); + } + void test_parseDirective_library() { + LibraryDirective directive = ParserTestCase.parse("parseDirective", [emptyCommentAndMetadata()], "library l;"); + JUnitTestCase.assertNotNull(directive.libraryToken); + JUnitTestCase.assertNotNull(directive.name); + JUnitTestCase.assertNotNull(directive.semicolon); + } + void test_parseDirective_part() { + PartDirective directive = ParserTestCase.parse("parseDirective", [emptyCommentAndMetadata()], "part 'lib/lib.dart';"); + JUnitTestCase.assertNotNull(directive.partToken); + JUnitTestCase.assertNotNull(directive.partUri); + JUnitTestCase.assertNotNull(directive.semicolon); + } + void test_parseDirective_partOf() { + PartOfDirective directive = ParserTestCase.parse("parseDirective", [emptyCommentAndMetadata()], "part of l;"); + JUnitTestCase.assertNotNull(directive.partToken); + JUnitTestCase.assertNotNull(directive.ofToken); + JUnitTestCase.assertNotNull(directive.libraryName); + JUnitTestCase.assertNotNull(directive.semicolon); + } + void test_parseDocumentationComment_block() { + Comment comment = ParserTestCase.parse4("parseDocumentationComment", "/** */ class", []); + JUnitTestCase.assertFalse(comment.isBlock()); + JUnitTestCase.assertTrue(comment.isDocumentation()); + JUnitTestCase.assertFalse(comment.isEndOfLine()); + } + void test_parseDocumentationComment_block_withReference() { + Comment comment = ParserTestCase.parse4("parseDocumentationComment", "/** [a] */ class", []); + JUnitTestCase.assertFalse(comment.isBlock()); + JUnitTestCase.assertTrue(comment.isDocumentation()); + JUnitTestCase.assertFalse(comment.isEndOfLine()); + NodeList references2 = comment.references; + EngineTestCase.assertSize(1, references2); + CommentReference reference = references2[0]; + JUnitTestCase.assertNotNull(reference); + JUnitTestCase.assertEquals(5, reference.offset); + } + void test_parseDocumentationComment_endOfLine() { + Comment comment = ParserTestCase.parse4("parseDocumentationComment", "/// \n/// \n class", []); + JUnitTestCase.assertFalse(comment.isBlock()); + JUnitTestCase.assertTrue(comment.isDocumentation()); + JUnitTestCase.assertFalse(comment.isEndOfLine()); + } + void test_parseDoStatement() { + DoStatement statement = ParserTestCase.parse4("parseDoStatement", "do {} while (x);", []); + JUnitTestCase.assertNotNull(statement.doKeyword); + JUnitTestCase.assertNotNull(statement.body); + JUnitTestCase.assertNotNull(statement.whileKeyword); + JUnitTestCase.assertNotNull(statement.leftParenthesis); + JUnitTestCase.assertNotNull(statement.condition); + JUnitTestCase.assertNotNull(statement.rightParenthesis); + JUnitTestCase.assertNotNull(statement.semicolon); + } + void test_parseEmptyStatement() { + EmptyStatement statement = ParserTestCase.parse4("parseEmptyStatement", ";", []); + JUnitTestCase.assertNotNull(statement.semicolon); + } + void test_parseEqualityExpression_normal() { + BinaryExpression expression = ParserTestCase.parse4("parseEqualityExpression", "x == y", []); + JUnitTestCase.assertNotNull(expression.leftOperand); + JUnitTestCase.assertNotNull(expression.operator); + JUnitTestCase.assertEquals(TokenType.EQ_EQ, expression.operator.type); + JUnitTestCase.assertNotNull(expression.rightOperand); + } + void test_parseEqualityExpression_super() { + BinaryExpression expression = ParserTestCase.parse4("parseEqualityExpression", "super == y", []); + EngineTestCase.assertInstanceOf(SuperExpression, expression.leftOperand); + JUnitTestCase.assertNotNull(expression.operator); + JUnitTestCase.assertEquals(TokenType.EQ_EQ, expression.operator.type); + JUnitTestCase.assertNotNull(expression.rightOperand); + } + void test_parseExportDirective_hide() { + ExportDirective directive = ParserTestCase.parse("parseExportDirective", [emptyCommentAndMetadata()], "export 'lib/lib.dart' hide A, B;"); + JUnitTestCase.assertNotNull(directive.keyword); + JUnitTestCase.assertNotNull(directive.libraryUri); + EngineTestCase.assertSize(1, directive.combinators); + JUnitTestCase.assertNotNull(directive.semicolon); + } + void test_parseExportDirective_hide_show() { + ExportDirective directive = ParserTestCase.parse("parseExportDirective", [emptyCommentAndMetadata()], "export 'lib/lib.dart' hide A show B;"); + JUnitTestCase.assertNotNull(directive.keyword); + JUnitTestCase.assertNotNull(directive.libraryUri); + EngineTestCase.assertSize(2, directive.combinators); + JUnitTestCase.assertNotNull(directive.semicolon); + } + void test_parseExportDirective_noCombinator() { + ExportDirective directive = ParserTestCase.parse("parseExportDirective", [emptyCommentAndMetadata()], "export 'lib/lib.dart';"); + JUnitTestCase.assertNotNull(directive.keyword); + JUnitTestCase.assertNotNull(directive.libraryUri); + EngineTestCase.assertSize(0, directive.combinators); + JUnitTestCase.assertNotNull(directive.semicolon); + } + void test_parseExportDirective_show() { + ExportDirective directive = ParserTestCase.parse("parseExportDirective", [emptyCommentAndMetadata()], "export 'lib/lib.dart' show A, B;"); + JUnitTestCase.assertNotNull(directive.keyword); + JUnitTestCase.assertNotNull(directive.libraryUri); + EngineTestCase.assertSize(1, directive.combinators); + JUnitTestCase.assertNotNull(directive.semicolon); + } + void test_parseExportDirective_show_hide() { + ExportDirective directive = ParserTestCase.parse("parseExportDirective", [emptyCommentAndMetadata()], "export 'lib/lib.dart' show B hide A;"); + JUnitTestCase.assertNotNull(directive.keyword); + JUnitTestCase.assertNotNull(directive.libraryUri); + EngineTestCase.assertSize(2, directive.combinators); + JUnitTestCase.assertNotNull(directive.semicolon); + } + void test_parseExpression_assign() { + AssignmentExpression expression = ParserTestCase.parse4("parseExpression", "x = y", []); + JUnitTestCase.assertNotNull(expression.leftHandSide); + JUnitTestCase.assertNotNull(expression.operator); + JUnitTestCase.assertEquals(TokenType.EQ, expression.operator.type); + JUnitTestCase.assertNotNull(expression.rightHandSide); + } + void test_parseExpression_comparison() { + BinaryExpression expression = ParserTestCase.parse4("parseExpression", "--a.b == c", []); + JUnitTestCase.assertNotNull(expression.leftOperand); + JUnitTestCase.assertNotNull(expression.operator); + JUnitTestCase.assertEquals(TokenType.EQ_EQ, expression.operator.type); + JUnitTestCase.assertNotNull(expression.rightOperand); + } + void test_parseExpression_invokeFunctionExpression() { + FunctionExpressionInvocation invocation = ParserTestCase.parse4("parseExpression", "(a) {return a + a;} (3)", []); + EngineTestCase.assertInstanceOf(FunctionExpression, invocation.function); + FunctionExpression expression = invocation.function as FunctionExpression; + JUnitTestCase.assertNotNull(expression.parameters); + JUnitTestCase.assertNotNull(expression.body); + ArgumentList list = invocation.argumentList; + JUnitTestCase.assertNotNull(list); + EngineTestCase.assertSize(1, list.arguments); + } + void test_parseExpression_superMethodInvocation() { + MethodInvocation invocation = ParserTestCase.parse4("parseExpression", "super.m()", []); + JUnitTestCase.assertNotNull(invocation.target); + JUnitTestCase.assertNotNull(invocation.methodName); + JUnitTestCase.assertNotNull(invocation.argumentList); + } + void test_parseExpressionList_multiple() { + List result = ParserTestCase.parse4("parseExpressionList", "1, 2, 3", []); + EngineTestCase.assertSize(3, result); + } + void test_parseExpressionList_single() { + List result = ParserTestCase.parse4("parseExpressionList", "1", []); + EngineTestCase.assertSize(1, result); + } + void test_parseExpressionWithoutCascade_assign() { + AssignmentExpression expression = ParserTestCase.parse4("parseExpressionWithoutCascade", "x = y", []); + JUnitTestCase.assertNotNull(expression.leftHandSide); + JUnitTestCase.assertNotNull(expression.operator); + JUnitTestCase.assertEquals(TokenType.EQ, expression.operator.type); + JUnitTestCase.assertNotNull(expression.rightHandSide); + } + void test_parseExpressionWithoutCascade_comparison() { + BinaryExpression expression = ParserTestCase.parse4("parseExpressionWithoutCascade", "--a.b == c", []); + JUnitTestCase.assertNotNull(expression.leftOperand); + JUnitTestCase.assertNotNull(expression.operator); + JUnitTestCase.assertEquals(TokenType.EQ_EQ, expression.operator.type); + JUnitTestCase.assertNotNull(expression.rightOperand); + } + void test_parseExpressionWithoutCascade_superMethodInvocation() { + MethodInvocation invocation = ParserTestCase.parse4("parseExpressionWithoutCascade", "super.m()", []); + JUnitTestCase.assertNotNull(invocation.target); + JUnitTestCase.assertNotNull(invocation.methodName); + JUnitTestCase.assertNotNull(invocation.argumentList); + } + void test_parseExtendsClause() { + ExtendsClause clause = ParserTestCase.parse4("parseExtendsClause", "extends B", []); + JUnitTestCase.assertNotNull(clause.keyword); + JUnitTestCase.assertNotNull(clause.superclass); + EngineTestCase.assertInstanceOf(TypeName, clause.superclass); + } + void test_parseFinalConstVarOrType_const_noType() { + FinalConstVarOrType result = ParserTestCase.parse("parseFinalConstVarOrType", [false], "const"); + Token keyword30 = result.keyword; + JUnitTestCase.assertNotNull(keyword30); + JUnitTestCase.assertEquals(TokenType.KEYWORD, keyword30.type); + JUnitTestCase.assertEquals(Keyword.CONST, (keyword30 as KeywordToken).keyword); + JUnitTestCase.assertNull(result.type); + } + void test_parseFinalConstVarOrType_const_type() { + FinalConstVarOrType result = ParserTestCase.parse("parseFinalConstVarOrType", [false], "const A a"); + Token keyword31 = result.keyword; + JUnitTestCase.assertNotNull(keyword31); + JUnitTestCase.assertEquals(TokenType.KEYWORD, keyword31.type); + JUnitTestCase.assertEquals(Keyword.CONST, (keyword31 as KeywordToken).keyword); + JUnitTestCase.assertNotNull(result.type); + } + void test_parseFinalConstVarOrType_final_noType() { + FinalConstVarOrType result = ParserTestCase.parse("parseFinalConstVarOrType", [false], "final"); + Token keyword32 = result.keyword; + JUnitTestCase.assertNotNull(keyword32); + JUnitTestCase.assertEquals(TokenType.KEYWORD, keyword32.type); + JUnitTestCase.assertEquals(Keyword.FINAL, (keyword32 as KeywordToken).keyword); + JUnitTestCase.assertNull(result.type); + } + void test_parseFinalConstVarOrType_final_type() { + FinalConstVarOrType result = ParserTestCase.parse("parseFinalConstVarOrType", [false], "final A a"); + Token keyword33 = result.keyword; + JUnitTestCase.assertNotNull(keyword33); + JUnitTestCase.assertEquals(TokenType.KEYWORD, keyword33.type); + JUnitTestCase.assertEquals(Keyword.FINAL, (keyword33 as KeywordToken).keyword); + JUnitTestCase.assertNotNull(result.type); + } + void test_parseFinalConstVarOrType_type_parameterized() { + FinalConstVarOrType result = ParserTestCase.parse("parseFinalConstVarOrType", [false], "A a"); + JUnitTestCase.assertNull(result.keyword); + JUnitTestCase.assertNotNull(result.type); + } + void test_parseFinalConstVarOrType_type_prefixed() { + FinalConstVarOrType result = ParserTestCase.parse("parseFinalConstVarOrType", [false], "p.A a"); + JUnitTestCase.assertNull(result.keyword); + JUnitTestCase.assertNotNull(result.type); + } + void test_parseFinalConstVarOrType_type_prefixedAndParameterized() { + FinalConstVarOrType result = ParserTestCase.parse("parseFinalConstVarOrType", [false], "p.A a"); + JUnitTestCase.assertNull(result.keyword); + JUnitTestCase.assertNotNull(result.type); + } + void test_parseFinalConstVarOrType_type_simple() { + FinalConstVarOrType result = ParserTestCase.parse("parseFinalConstVarOrType", [false], "A a"); + JUnitTestCase.assertNull(result.keyword); + JUnitTestCase.assertNotNull(result.type); + } + void test_parseFinalConstVarOrType_var() { + FinalConstVarOrType result = ParserTestCase.parse("parseFinalConstVarOrType", [false], "var"); + Token keyword34 = result.keyword; + JUnitTestCase.assertNotNull(keyword34); + JUnitTestCase.assertEquals(TokenType.KEYWORD, keyword34.type); + JUnitTestCase.assertEquals(Keyword.VAR, (keyword34 as KeywordToken).keyword); + JUnitTestCase.assertNull(result.type); + } + void test_parseFormalParameter_final_withType_named() { + ParameterKind kind = ParameterKind.NAMED; + DefaultFormalParameter parameter = ParserTestCase.parse("parseFormalParameter", [kind], "final A a : null"); + SimpleFormalParameter simpleParameter = parameter.parameter as SimpleFormalParameter; + JUnitTestCase.assertNotNull(simpleParameter.identifier); + JUnitTestCase.assertNotNull(simpleParameter.keyword); + JUnitTestCase.assertNotNull(simpleParameter.type); + JUnitTestCase.assertEquals(kind, simpleParameter.kind); + JUnitTestCase.assertNotNull(parameter.separator); + JUnitTestCase.assertNotNull(parameter.defaultValue); + JUnitTestCase.assertEquals(kind, parameter.kind); + } + void test_parseFormalParameter_final_withType_normal() { + ParameterKind kind = ParameterKind.REQUIRED; + SimpleFormalParameter parameter = ParserTestCase.parse("parseFormalParameter", [kind], "final A a"); + JUnitTestCase.assertNotNull(parameter.identifier); + JUnitTestCase.assertNotNull(parameter.keyword); + JUnitTestCase.assertNotNull(parameter.type); + JUnitTestCase.assertEquals(kind, parameter.kind); + } + void test_parseFormalParameter_final_withType_positional() { + ParameterKind kind = ParameterKind.POSITIONAL; + DefaultFormalParameter parameter = ParserTestCase.parse("parseFormalParameter", [kind], "final A a = null"); + SimpleFormalParameter simpleParameter = parameter.parameter as SimpleFormalParameter; + JUnitTestCase.assertNotNull(simpleParameter.identifier); + JUnitTestCase.assertNotNull(simpleParameter.keyword); + JUnitTestCase.assertNotNull(simpleParameter.type); + JUnitTestCase.assertEquals(kind, simpleParameter.kind); + JUnitTestCase.assertNotNull(parameter.separator); + JUnitTestCase.assertNotNull(parameter.defaultValue); + JUnitTestCase.assertEquals(kind, parameter.kind); + } + void test_parseFormalParameter_nonFinal_withType_named() { + ParameterKind kind = ParameterKind.NAMED; + DefaultFormalParameter parameter = ParserTestCase.parse("parseFormalParameter", [kind], "A a : null"); + SimpleFormalParameter simpleParameter = parameter.parameter as SimpleFormalParameter; + JUnitTestCase.assertNotNull(simpleParameter.identifier); + JUnitTestCase.assertNull(simpleParameter.keyword); + JUnitTestCase.assertNotNull(simpleParameter.type); + JUnitTestCase.assertEquals(kind, simpleParameter.kind); + JUnitTestCase.assertNotNull(parameter.separator); + JUnitTestCase.assertNotNull(parameter.defaultValue); + JUnitTestCase.assertEquals(kind, parameter.kind); + } + void test_parseFormalParameter_nonFinal_withType_normal() { + ParameterKind kind = ParameterKind.REQUIRED; + SimpleFormalParameter parameter = ParserTestCase.parse("parseFormalParameter", [kind], "A a"); + JUnitTestCase.assertNotNull(parameter.identifier); + JUnitTestCase.assertNull(parameter.keyword); + JUnitTestCase.assertNotNull(parameter.type); + JUnitTestCase.assertEquals(kind, parameter.kind); + } + void test_parseFormalParameter_nonFinal_withType_positional() { + ParameterKind kind = ParameterKind.POSITIONAL; + DefaultFormalParameter parameter = ParserTestCase.parse("parseFormalParameter", [kind], "A a = null"); + SimpleFormalParameter simpleParameter = parameter.parameter as SimpleFormalParameter; + JUnitTestCase.assertNotNull(simpleParameter.identifier); + JUnitTestCase.assertNull(simpleParameter.keyword); + JUnitTestCase.assertNotNull(simpleParameter.type); + JUnitTestCase.assertEquals(kind, simpleParameter.kind); + JUnitTestCase.assertNotNull(parameter.separator); + JUnitTestCase.assertNotNull(parameter.defaultValue); + JUnitTestCase.assertEquals(kind, parameter.kind); + } + void test_parseFormalParameter_var() { + ParameterKind kind = ParameterKind.REQUIRED; + SimpleFormalParameter parameter = ParserTestCase.parse("parseFormalParameter", [kind], "var a"); + JUnitTestCase.assertNotNull(parameter.identifier); + JUnitTestCase.assertNotNull(parameter.keyword); + JUnitTestCase.assertNull(parameter.type); + JUnitTestCase.assertEquals(kind, parameter.kind); + } + void test_parseFormalParameter_var_named() { + ParameterKind kind = ParameterKind.NAMED; + DefaultFormalParameter parameter = ParserTestCase.parse("parseFormalParameter", [kind], "var a : null"); + SimpleFormalParameter simpleParameter = parameter.parameter as SimpleFormalParameter; + JUnitTestCase.assertNotNull(simpleParameter.identifier); + JUnitTestCase.assertNotNull(simpleParameter.keyword); + JUnitTestCase.assertNull(simpleParameter.type); + JUnitTestCase.assertEquals(kind, simpleParameter.kind); + JUnitTestCase.assertNotNull(parameter.separator); + JUnitTestCase.assertNotNull(parameter.defaultValue); + JUnitTestCase.assertEquals(kind, parameter.kind); + } + void test_parseFormalParameter_var_positional() { + ParameterKind kind = ParameterKind.POSITIONAL; + DefaultFormalParameter parameter = ParserTestCase.parse("parseFormalParameter", [kind], "var a = null"); + SimpleFormalParameter simpleParameter = parameter.parameter as SimpleFormalParameter; + JUnitTestCase.assertNotNull(simpleParameter.identifier); + JUnitTestCase.assertNotNull(simpleParameter.keyword); + JUnitTestCase.assertNull(simpleParameter.type); + JUnitTestCase.assertEquals(kind, simpleParameter.kind); + JUnitTestCase.assertNotNull(parameter.separator); + JUnitTestCase.assertNotNull(parameter.defaultValue); + JUnitTestCase.assertEquals(kind, parameter.kind); + } + void test_parseFormalParameterList_empty() { + FormalParameterList parameterList = ParserTestCase.parse4("parseFormalParameterList", "()", []); + JUnitTestCase.assertNotNull(parameterList.leftParenthesis); + JUnitTestCase.assertNull(parameterList.leftDelimiter); + EngineTestCase.assertSize(0, parameterList.parameters); + JUnitTestCase.assertNull(parameterList.rightDelimiter); + JUnitTestCase.assertNotNull(parameterList.rightParenthesis); + } + void test_parseFormalParameterList_named_multiple() { + FormalParameterList parameterList = ParserTestCase.parse4("parseFormalParameterList", "({A a : 1, B b, C c : 3})", []); + JUnitTestCase.assertNotNull(parameterList.leftParenthesis); + JUnitTestCase.assertNotNull(parameterList.leftDelimiter); + EngineTestCase.assertSize(3, parameterList.parameters); + JUnitTestCase.assertNotNull(parameterList.rightDelimiter); + JUnitTestCase.assertNotNull(parameterList.rightParenthesis); + } + void test_parseFormalParameterList_named_single() { + FormalParameterList parameterList = ParserTestCase.parse4("parseFormalParameterList", "({A a})", []); + JUnitTestCase.assertNotNull(parameterList.leftParenthesis); + JUnitTestCase.assertNotNull(parameterList.leftDelimiter); + EngineTestCase.assertSize(1, parameterList.parameters); + JUnitTestCase.assertNotNull(parameterList.rightDelimiter); + JUnitTestCase.assertNotNull(parameterList.rightParenthesis); + } + void test_parseFormalParameterList_normal_multiple() { + FormalParameterList parameterList = ParserTestCase.parse4("parseFormalParameterList", "(A a, B b, C c)", []); + JUnitTestCase.assertNotNull(parameterList.leftParenthesis); + JUnitTestCase.assertNull(parameterList.leftDelimiter); + EngineTestCase.assertSize(3, parameterList.parameters); + JUnitTestCase.assertNull(parameterList.rightDelimiter); + JUnitTestCase.assertNotNull(parameterList.rightParenthesis); + } + void test_parseFormalParameterList_normal_named() { + FormalParameterList parameterList = ParserTestCase.parse4("parseFormalParameterList", "(A a, {B b})", []); + JUnitTestCase.assertNotNull(parameterList.leftParenthesis); + JUnitTestCase.assertNotNull(parameterList.leftDelimiter); + EngineTestCase.assertSize(2, parameterList.parameters); + JUnitTestCase.assertNotNull(parameterList.rightDelimiter); + JUnitTestCase.assertNotNull(parameterList.rightParenthesis); + } + void test_parseFormalParameterList_normal_positional() { + FormalParameterList parameterList = ParserTestCase.parse4("parseFormalParameterList", "(A a, [B b])", []); + JUnitTestCase.assertNotNull(parameterList.leftParenthesis); + JUnitTestCase.assertNotNull(parameterList.leftDelimiter); + EngineTestCase.assertSize(2, parameterList.parameters); + JUnitTestCase.assertNotNull(parameterList.rightDelimiter); + JUnitTestCase.assertNotNull(parameterList.rightParenthesis); + } + void test_parseFormalParameterList_normal_single() { + FormalParameterList parameterList = ParserTestCase.parse4("parseFormalParameterList", "(A a)", []); + JUnitTestCase.assertNotNull(parameterList.leftParenthesis); + JUnitTestCase.assertNull(parameterList.leftDelimiter); + EngineTestCase.assertSize(1, parameterList.parameters); + JUnitTestCase.assertNull(parameterList.rightDelimiter); + JUnitTestCase.assertNotNull(parameterList.rightParenthesis); + } + void test_parseFormalParameterList_positional_multiple() { + FormalParameterList parameterList = ParserTestCase.parse4("parseFormalParameterList", "([A a = null, B b, C c = null])", []); + JUnitTestCase.assertNotNull(parameterList.leftParenthesis); + JUnitTestCase.assertNotNull(parameterList.leftDelimiter); + EngineTestCase.assertSize(3, parameterList.parameters); + JUnitTestCase.assertNotNull(parameterList.rightDelimiter); + JUnitTestCase.assertNotNull(parameterList.rightParenthesis); + } + void test_parseFormalParameterList_positional_single() { + FormalParameterList parameterList = ParserTestCase.parse4("parseFormalParameterList", "([A a = null])", []); + JUnitTestCase.assertNotNull(parameterList.leftParenthesis); + JUnitTestCase.assertNotNull(parameterList.leftDelimiter); + EngineTestCase.assertSize(1, parameterList.parameters); + JUnitTestCase.assertNotNull(parameterList.rightDelimiter); + JUnitTestCase.assertNotNull(parameterList.rightParenthesis); + } + void test_parseForStatement_each_identifier() { + ForEachStatement statement = ParserTestCase.parse4("parseForStatement", "for (element in list) {}", []); + JUnitTestCase.assertNotNull(statement.forKeyword); + JUnitTestCase.assertNotNull(statement.leftParenthesis); + JUnitTestCase.assertNotNull(statement.loopParameter); + JUnitTestCase.assertNotNull(statement.inKeyword); + JUnitTestCase.assertNotNull(statement.iterator); + JUnitTestCase.assertNotNull(statement.rightParenthesis); + JUnitTestCase.assertNotNull(statement.body); + } + void test_parseForStatement_each_noType() { + ForEachStatement statement = ParserTestCase.parse4("parseForStatement", "for (element in list) {}", []); + JUnitTestCase.assertNotNull(statement.forKeyword); + JUnitTestCase.assertNotNull(statement.leftParenthesis); + JUnitTestCase.assertNotNull(statement.loopParameter); + JUnitTestCase.assertNotNull(statement.inKeyword); + JUnitTestCase.assertNotNull(statement.iterator); + JUnitTestCase.assertNotNull(statement.rightParenthesis); + JUnitTestCase.assertNotNull(statement.body); + } + void test_parseForStatement_each_type() { + ForEachStatement statement = ParserTestCase.parse4("parseForStatement", "for (A element in list) {}", []); + JUnitTestCase.assertNotNull(statement.forKeyword); + JUnitTestCase.assertNotNull(statement.leftParenthesis); + JUnitTestCase.assertNotNull(statement.loopParameter); + JUnitTestCase.assertNotNull(statement.inKeyword); + JUnitTestCase.assertNotNull(statement.iterator); + JUnitTestCase.assertNotNull(statement.rightParenthesis); + JUnitTestCase.assertNotNull(statement.body); + } + void test_parseForStatement_each_var() { + ForEachStatement statement = ParserTestCase.parse4("parseForStatement", "for (var element in list) {}", []); + JUnitTestCase.assertNotNull(statement.forKeyword); + JUnitTestCase.assertNotNull(statement.leftParenthesis); + JUnitTestCase.assertNotNull(statement.loopParameter); + JUnitTestCase.assertNotNull(statement.inKeyword); + JUnitTestCase.assertNotNull(statement.iterator); + JUnitTestCase.assertNotNull(statement.rightParenthesis); + JUnitTestCase.assertNotNull(statement.body); + } + void test_parseForStatement_loop_c() { + ForStatement statement = ParserTestCase.parse4("parseForStatement", "for (; i < count;) {}", []); + JUnitTestCase.assertNotNull(statement.forKeyword); + JUnitTestCase.assertNotNull(statement.leftParenthesis); + JUnitTestCase.assertNull(statement.variables); + JUnitTestCase.assertNull(statement.initialization); + JUnitTestCase.assertNotNull(statement.leftSeparator); + JUnitTestCase.assertNotNull(statement.condition); + JUnitTestCase.assertNotNull(statement.rightSeparator); + EngineTestCase.assertSize(0, statement.updaters); + JUnitTestCase.assertNotNull(statement.rightParenthesis); + JUnitTestCase.assertNotNull(statement.body); + } + void test_parseForStatement_loop_cu() { + ForStatement statement = ParserTestCase.parse4("parseForStatement", "for (; i < count; i++) {}", []); + JUnitTestCase.assertNotNull(statement.forKeyword); + JUnitTestCase.assertNotNull(statement.leftParenthesis); + JUnitTestCase.assertNull(statement.variables); + JUnitTestCase.assertNull(statement.initialization); + JUnitTestCase.assertNotNull(statement.leftSeparator); + JUnitTestCase.assertNotNull(statement.condition); + JUnitTestCase.assertNotNull(statement.rightSeparator); + EngineTestCase.assertSize(1, statement.updaters); + JUnitTestCase.assertNotNull(statement.rightParenthesis); + JUnitTestCase.assertNotNull(statement.body); + } + void test_parseForStatement_loop_ecu() { + ForStatement statement = ParserTestCase.parse4("parseForStatement", "for (i--; i < count; i++) {}", []); + JUnitTestCase.assertNotNull(statement.forKeyword); + JUnitTestCase.assertNotNull(statement.leftParenthesis); + JUnitTestCase.assertNull(statement.variables); + JUnitTestCase.assertNotNull(statement.initialization); + JUnitTestCase.assertNotNull(statement.leftSeparator); + JUnitTestCase.assertNotNull(statement.condition); + JUnitTestCase.assertNotNull(statement.rightSeparator); + EngineTestCase.assertSize(1, statement.updaters); + JUnitTestCase.assertNotNull(statement.rightParenthesis); + JUnitTestCase.assertNotNull(statement.body); + } + void test_parseForStatement_loop_i() { + ForStatement statement = ParserTestCase.parse4("parseForStatement", "for (var i = 0;;) {}", []); + JUnitTestCase.assertNotNull(statement.forKeyword); + JUnitTestCase.assertNotNull(statement.leftParenthesis); + VariableDeclarationList variables10 = statement.variables; + JUnitTestCase.assertNotNull(variables10); + EngineTestCase.assertSize(1, variables10.variables); + JUnitTestCase.assertNull(statement.initialization); + JUnitTestCase.assertNotNull(statement.leftSeparator); + JUnitTestCase.assertNull(statement.condition); + JUnitTestCase.assertNotNull(statement.rightSeparator); + EngineTestCase.assertSize(0, statement.updaters); + JUnitTestCase.assertNotNull(statement.rightParenthesis); + JUnitTestCase.assertNotNull(statement.body); + } + void test_parseForStatement_loop_ic() { + ForStatement statement = ParserTestCase.parse4("parseForStatement", "for (var i = 0; i < count;) {}", []); + JUnitTestCase.assertNotNull(statement.forKeyword); + JUnitTestCase.assertNotNull(statement.leftParenthesis); + VariableDeclarationList variables11 = statement.variables; + JUnitTestCase.assertNotNull(variables11); + EngineTestCase.assertSize(1, variables11.variables); + JUnitTestCase.assertNull(statement.initialization); + JUnitTestCase.assertNotNull(statement.leftSeparator); + JUnitTestCase.assertNotNull(statement.condition); + JUnitTestCase.assertNotNull(statement.rightSeparator); + EngineTestCase.assertSize(0, statement.updaters); + JUnitTestCase.assertNotNull(statement.rightParenthesis); + JUnitTestCase.assertNotNull(statement.body); + } + void test_parseForStatement_loop_icu() { + ForStatement statement = ParserTestCase.parse4("parseForStatement", "for (var i = 0; i < count; i++) {}", []); + JUnitTestCase.assertNotNull(statement.forKeyword); + JUnitTestCase.assertNotNull(statement.leftParenthesis); + VariableDeclarationList variables12 = statement.variables; + JUnitTestCase.assertNotNull(variables12); + EngineTestCase.assertSize(1, variables12.variables); + JUnitTestCase.assertNull(statement.initialization); + JUnitTestCase.assertNotNull(statement.leftSeparator); + JUnitTestCase.assertNotNull(statement.condition); + JUnitTestCase.assertNotNull(statement.rightSeparator); + EngineTestCase.assertSize(1, statement.updaters); + JUnitTestCase.assertNotNull(statement.rightParenthesis); + JUnitTestCase.assertNotNull(statement.body); + } + void test_parseForStatement_loop_iicuu() { + ForStatement statement = ParserTestCase.parse4("parseForStatement", "for (int i = 0, j = count; i < j; i++, j--) {}", []); + JUnitTestCase.assertNotNull(statement.forKeyword); + JUnitTestCase.assertNotNull(statement.leftParenthesis); + VariableDeclarationList variables13 = statement.variables; + JUnitTestCase.assertNotNull(variables13); + EngineTestCase.assertSize(2, variables13.variables); + JUnitTestCase.assertNull(statement.initialization); + JUnitTestCase.assertNotNull(statement.leftSeparator); + JUnitTestCase.assertNotNull(statement.condition); + JUnitTestCase.assertNotNull(statement.rightSeparator); + EngineTestCase.assertSize(2, statement.updaters); + JUnitTestCase.assertNotNull(statement.rightParenthesis); + JUnitTestCase.assertNotNull(statement.body); + } + void test_parseForStatement_loop_iu() { + ForStatement statement = ParserTestCase.parse4("parseForStatement", "for (var i = 0;; i++) {}", []); + JUnitTestCase.assertNotNull(statement.forKeyword); + JUnitTestCase.assertNotNull(statement.leftParenthesis); + VariableDeclarationList variables14 = statement.variables; + JUnitTestCase.assertNotNull(variables14); + EngineTestCase.assertSize(1, variables14.variables); + JUnitTestCase.assertNull(statement.initialization); + JUnitTestCase.assertNotNull(statement.leftSeparator); + JUnitTestCase.assertNull(statement.condition); + JUnitTestCase.assertNotNull(statement.rightSeparator); + EngineTestCase.assertSize(1, statement.updaters); + JUnitTestCase.assertNotNull(statement.rightParenthesis); + JUnitTestCase.assertNotNull(statement.body); + } + void test_parseForStatement_loop_u() { + ForStatement statement = ParserTestCase.parse4("parseForStatement", "for (;; i++) {}", []); + JUnitTestCase.assertNotNull(statement.forKeyword); + JUnitTestCase.assertNotNull(statement.leftParenthesis); + JUnitTestCase.assertNull(statement.variables); + JUnitTestCase.assertNull(statement.initialization); + JUnitTestCase.assertNotNull(statement.leftSeparator); + JUnitTestCase.assertNull(statement.condition); + JUnitTestCase.assertNotNull(statement.rightSeparator); + EngineTestCase.assertSize(1, statement.updaters); + JUnitTestCase.assertNotNull(statement.rightParenthesis); + JUnitTestCase.assertNotNull(statement.body); + } + void test_parseFunctionBody_block() { + BlockFunctionBody functionBody = ParserTestCase.parse("parseFunctionBody", [false, false], "{}"); + JUnitTestCase.assertNotNull(functionBody.block); + } + void test_parseFunctionBody_empty() { + EmptyFunctionBody functionBody = ParserTestCase.parse("parseFunctionBody", [true, false], ";"); + JUnitTestCase.assertNotNull(functionBody.semicolon); + } + void test_parseFunctionBody_expression() { + ExpressionFunctionBody functionBody = ParserTestCase.parse("parseFunctionBody", [false, false], "=> y;"); + JUnitTestCase.assertNotNull(functionBody.functionDefinition); + JUnitTestCase.assertNotNull(functionBody.expression); + JUnitTestCase.assertNotNull(functionBody.semicolon); + } + void test_parseFunctionDeclaration_function() { + Comment comment = Comment.createDocumentationComment(new List.fixedLength(0)); + TypeName returnType = new TypeName(new SimpleIdentifier(null), null); + FunctionDeclaration declaration = ParserTestCase.parse("parseFunctionDeclaration", [commentAndMetadata(comment, []), null, returnType, false], "f() {}"); + JUnitTestCase.assertEquals(comment, declaration.documentationComment); + JUnitTestCase.assertEquals(returnType, declaration.returnType); + JUnitTestCase.assertNotNull(declaration.name); + FunctionExpression expression = declaration.functionExpression; + JUnitTestCase.assertNotNull(expression); + JUnitTestCase.assertNotNull(expression.body); + JUnitTestCase.assertNotNull(expression.parameters); + JUnitTestCase.assertNull(declaration.propertyKeyword); + } + void test_parseFunctionDeclaration_function_inStatement() { + Comment comment = Comment.createDocumentationComment(new List.fixedLength(0)); + TypeName returnType = new TypeName(new SimpleIdentifier(null), null); + FunctionDeclaration declaration = ParserTestCase.parse("parseFunctionDeclaration", [commentAndMetadata(comment, []), null, returnType, true], "f() {};"); + JUnitTestCase.assertEquals(comment, declaration.documentationComment); + JUnitTestCase.assertEquals(returnType, declaration.returnType); + JUnitTestCase.assertNotNull(declaration.name); + FunctionExpression expression = declaration.functionExpression; + JUnitTestCase.assertNotNull(expression); + JUnitTestCase.assertNotNull(expression.body); + JUnitTestCase.assertNotNull(expression.parameters); + JUnitTestCase.assertNull(declaration.propertyKeyword); + } + void test_parseFunctionDeclaration_getter() { + Comment comment = Comment.createDocumentationComment(new List.fixedLength(0)); + TypeName returnType = new TypeName(new SimpleIdentifier(null), null); + FunctionDeclaration declaration = ParserTestCase.parse("parseFunctionDeclaration", [commentAndMetadata(comment, []), null, returnType, false], "get p => 0;"); + JUnitTestCase.assertEquals(comment, declaration.documentationComment); + JUnitTestCase.assertEquals(returnType, declaration.returnType); + JUnitTestCase.assertNotNull(declaration.name); + FunctionExpression expression = declaration.functionExpression; + JUnitTestCase.assertNotNull(expression); + JUnitTestCase.assertNotNull(expression.body); + JUnitTestCase.assertNull(expression.parameters); + JUnitTestCase.assertNotNull(declaration.propertyKeyword); + } + void test_parseFunctionDeclaration_setter() { + Comment comment = Comment.createDocumentationComment(new List.fixedLength(0)); + TypeName returnType = new TypeName(new SimpleIdentifier(null), null); + FunctionDeclaration declaration = ParserTestCase.parse("parseFunctionDeclaration", [commentAndMetadata(comment, []), null, returnType, false], "set p(v) {}"); + JUnitTestCase.assertEquals(comment, declaration.documentationComment); + JUnitTestCase.assertEquals(returnType, declaration.returnType); + JUnitTestCase.assertNotNull(declaration.name); + FunctionExpression expression = declaration.functionExpression; + JUnitTestCase.assertNotNull(expression); + JUnitTestCase.assertNotNull(expression.body); + JUnitTestCase.assertNotNull(expression.parameters); + JUnitTestCase.assertNotNull(declaration.propertyKeyword); + } + void test_parseFunctionDeclarationStatement() { + FunctionDeclarationStatement statement = ParserTestCase.parse4("parseFunctionDeclarationStatement", "void f(int p) => p * 2;", []); + JUnitTestCase.assertNotNull(statement.functionDeclaration); + } + void test_parseFunctionExpression_body_inExpression() { + FunctionExpression expression = ParserTestCase.parse4("parseFunctionExpression", "(int i) => i++", []); + JUnitTestCase.assertNotNull(expression.body); + JUnitTestCase.assertNotNull(expression.parameters); + JUnitTestCase.assertNull((expression.body as ExpressionFunctionBody).semicolon); + } + void test_parseFunctionExpression_minimal() { + FunctionExpression expression = ParserTestCase.parse4("parseFunctionExpression", "() {}", []); + JUnitTestCase.assertNotNull(expression.body); + JUnitTestCase.assertNotNull(expression.parameters); + } + void test_parseGetter_nonStatic() { + Comment comment = Comment.createDocumentationComment(new List.fixedLength(0)); + TypeName returnType = new TypeName(new SimpleIdentifier(null), null); + MethodDeclaration method = ParserTestCase.parse("parseGetter", [commentAndMetadata(comment, []), null, null, returnType], "get a;"); + JUnitTestCase.assertNotNull(method.body); + JUnitTestCase.assertEquals(comment, method.documentationComment); + JUnitTestCase.assertNull(method.externalKeyword); + JUnitTestCase.assertNull(method.modifierKeyword); + JUnitTestCase.assertNotNull(method.name); + JUnitTestCase.assertNull(method.operatorKeyword); + JUnitTestCase.assertNull(method.parameters); + JUnitTestCase.assertNotNull(method.propertyKeyword); + JUnitTestCase.assertEquals(returnType, method.returnType); + } + void test_parseGetter_static() { + Comment comment = Comment.createDocumentationComment(new List.fixedLength(0)); + Token staticKeyword = TokenFactory.token(Keyword.STATIC); + TypeName returnType = new TypeName(new SimpleIdentifier(null), null); + MethodDeclaration method = ParserTestCase.parse("parseGetter", [commentAndMetadata(comment, []), null, staticKeyword, returnType], "get a;"); + JUnitTestCase.assertNotNull(method.body); + JUnitTestCase.assertEquals(comment, method.documentationComment); + JUnitTestCase.assertNull(method.externalKeyword); + JUnitTestCase.assertEquals(staticKeyword, method.modifierKeyword); + JUnitTestCase.assertNotNull(method.name); + JUnitTestCase.assertNull(method.operatorKeyword); + JUnitTestCase.assertNull(method.parameters); + JUnitTestCase.assertNotNull(method.propertyKeyword); + JUnitTestCase.assertEquals(returnType, method.returnType); + } + void test_parseIdentifierList_multiple() { + List list = ParserTestCase.parse4("parseIdentifierList", "a, b, c", []); + EngineTestCase.assertSize(3, list); + } + void test_parseIdentifierList_single() { + List list = ParserTestCase.parse4("parseIdentifierList", "a", []); + EngineTestCase.assertSize(1, list); + } + void test_parseIfStatement_else_block() { + IfStatement statement = ParserTestCase.parse4("parseIfStatement", "if (x) {} else {}", []); + JUnitTestCase.assertNotNull(statement.ifKeyword); + JUnitTestCase.assertNotNull(statement.leftParenthesis); + JUnitTestCase.assertNotNull(statement.condition); + JUnitTestCase.assertNotNull(statement.rightParenthesis); + JUnitTestCase.assertNotNull(statement.thenStatement); + JUnitTestCase.assertNotNull(statement.elseKeyword); + JUnitTestCase.assertNotNull(statement.elseStatement); + } + void test_parseIfStatement_else_statement() { + IfStatement statement = ParserTestCase.parse4("parseIfStatement", "if (x) f(x); else f(y);", []); + JUnitTestCase.assertNotNull(statement.ifKeyword); + JUnitTestCase.assertNotNull(statement.leftParenthesis); + JUnitTestCase.assertNotNull(statement.condition); + JUnitTestCase.assertNotNull(statement.rightParenthesis); + JUnitTestCase.assertNotNull(statement.thenStatement); + JUnitTestCase.assertNotNull(statement.elseKeyword); + JUnitTestCase.assertNotNull(statement.elseStatement); + } + void test_parseIfStatement_noElse_block() { + IfStatement statement = ParserTestCase.parse4("parseIfStatement", "if (x) {}", []); + JUnitTestCase.assertNotNull(statement.ifKeyword); + JUnitTestCase.assertNotNull(statement.leftParenthesis); + JUnitTestCase.assertNotNull(statement.condition); + JUnitTestCase.assertNotNull(statement.rightParenthesis); + JUnitTestCase.assertNotNull(statement.thenStatement); + JUnitTestCase.assertNull(statement.elseKeyword); + JUnitTestCase.assertNull(statement.elseStatement); + } + void test_parseIfStatement_noElse_statement() { + IfStatement statement = ParserTestCase.parse4("parseIfStatement", "if (x) f(x);", []); + JUnitTestCase.assertNotNull(statement.ifKeyword); + JUnitTestCase.assertNotNull(statement.leftParenthesis); + JUnitTestCase.assertNotNull(statement.condition); + JUnitTestCase.assertNotNull(statement.rightParenthesis); + JUnitTestCase.assertNotNull(statement.thenStatement); + JUnitTestCase.assertNull(statement.elseKeyword); + JUnitTestCase.assertNull(statement.elseStatement); + } + void test_parseImplementsClause_multiple() { + ImplementsClause clause = ParserTestCase.parse4("parseImplementsClause", "implements A, B, C", []); + EngineTestCase.assertSize(3, clause.interfaces); + JUnitTestCase.assertNotNull(clause.keyword); + } + void test_parseImplementsClause_single() { + ImplementsClause clause = ParserTestCase.parse4("parseImplementsClause", "implements A", []); + EngineTestCase.assertSize(1, clause.interfaces); + JUnitTestCase.assertNotNull(clause.keyword); + } + void test_parseImportDirective_hide() { + ImportDirective directive = ParserTestCase.parse("parseImportDirective", [emptyCommentAndMetadata()], "import 'lib/lib.dart' hide A, B;"); + JUnitTestCase.assertNotNull(directive.keyword); + JUnitTestCase.assertNotNull(directive.libraryUri); + JUnitTestCase.assertNull(directive.asToken); + JUnitTestCase.assertNull(directive.prefix); + EngineTestCase.assertSize(1, directive.combinators); + JUnitTestCase.assertNotNull(directive.semicolon); + } + void test_parseImportDirective_noCombinator() { + ImportDirective directive = ParserTestCase.parse("parseImportDirective", [emptyCommentAndMetadata()], "import 'lib/lib.dart';"); + JUnitTestCase.assertNotNull(directive.keyword); + JUnitTestCase.assertNotNull(directive.libraryUri); + JUnitTestCase.assertNull(directive.asToken); + JUnitTestCase.assertNull(directive.prefix); + EngineTestCase.assertSize(0, directive.combinators); + JUnitTestCase.assertNotNull(directive.semicolon); + } + void test_parseImportDirective_prefix() { + ImportDirective directive = ParserTestCase.parse("parseImportDirective", [emptyCommentAndMetadata()], "import 'lib/lib.dart' as a;"); + JUnitTestCase.assertNotNull(directive.keyword); + JUnitTestCase.assertNotNull(directive.libraryUri); + JUnitTestCase.assertNotNull(directive.asToken); + JUnitTestCase.assertNotNull(directive.prefix); + EngineTestCase.assertSize(0, directive.combinators); + JUnitTestCase.assertNotNull(directive.semicolon); + } + void test_parseImportDirective_prefix_hide_show() { + ImportDirective directive = ParserTestCase.parse("parseImportDirective", [emptyCommentAndMetadata()], "import 'lib/lib.dart' as a hide A show B;"); + JUnitTestCase.assertNotNull(directive.keyword); + JUnitTestCase.assertNotNull(directive.libraryUri); + JUnitTestCase.assertNotNull(directive.asToken); + JUnitTestCase.assertNotNull(directive.prefix); + EngineTestCase.assertSize(2, directive.combinators); + JUnitTestCase.assertNotNull(directive.semicolon); + } + void test_parseImportDirective_prefix_show_hide() { + ImportDirective directive = ParserTestCase.parse("parseImportDirective", [emptyCommentAndMetadata()], "import 'lib/lib.dart' as a show B hide A;"); + JUnitTestCase.assertNotNull(directive.keyword); + JUnitTestCase.assertNotNull(directive.libraryUri); + JUnitTestCase.assertNotNull(directive.asToken); + JUnitTestCase.assertNotNull(directive.prefix); + EngineTestCase.assertSize(2, directive.combinators); + JUnitTestCase.assertNotNull(directive.semicolon); + } + void test_parseImportDirective_show() { + ImportDirective directive = ParserTestCase.parse("parseImportDirective", [emptyCommentAndMetadata()], "import 'lib/lib.dart' show A, B;"); + JUnitTestCase.assertNotNull(directive.keyword); + JUnitTestCase.assertNotNull(directive.libraryUri); + JUnitTestCase.assertNull(directive.asToken); + JUnitTestCase.assertNull(directive.prefix); + EngineTestCase.assertSize(1, directive.combinators); + JUnitTestCase.assertNotNull(directive.semicolon); + } + void test_parseInitializedIdentifierList_type() { + Comment comment = Comment.createDocumentationComment(new List.fixedLength(0)); + Token staticKeyword = TokenFactory.token(Keyword.STATIC); + TypeName type = new TypeName(new SimpleIdentifier(null), null); + FieldDeclaration declaration = ParserTestCase.parse("parseInitializedIdentifierList", [commentAndMetadata(comment, []), staticKeyword, null, type], "a = 1, b, c = 3;"); + JUnitTestCase.assertEquals(comment, declaration.documentationComment); + VariableDeclarationList fields5 = declaration.fields; + JUnitTestCase.assertNotNull(fields5); + JUnitTestCase.assertNull(fields5.keyword); + JUnitTestCase.assertEquals(type, fields5.type); + EngineTestCase.assertSize(3, fields5.variables); + JUnitTestCase.assertEquals(staticKeyword, declaration.keyword); + JUnitTestCase.assertNotNull(declaration.semicolon); + } + void test_parseInitializedIdentifierList_var() { + Comment comment = Comment.createDocumentationComment(new List.fixedLength(0)); + Token staticKeyword = TokenFactory.token(Keyword.STATIC); + Token varKeyword = TokenFactory.token(Keyword.VAR); + FieldDeclaration declaration = ParserTestCase.parse("parseInitializedIdentifierList", [commentAndMetadata(comment, []), staticKeyword, varKeyword, null], "a = 1, b, c = 3;"); + JUnitTestCase.assertEquals(comment, declaration.documentationComment); + VariableDeclarationList fields6 = declaration.fields; + JUnitTestCase.assertNotNull(fields6); + JUnitTestCase.assertEquals(varKeyword, fields6.keyword); + JUnitTestCase.assertNull(fields6.type); + EngineTestCase.assertSize(3, fields6.variables); + JUnitTestCase.assertEquals(staticKeyword, declaration.keyword); + JUnitTestCase.assertNotNull(declaration.semicolon); + } + void test_parseInstanceCreationExpression_qualifiedType() { + Token token5 = TokenFactory.token(Keyword.NEW); + InstanceCreationExpression expression = ParserTestCase.parse("parseInstanceCreationExpression", [token5], "A.B()"); + JUnitTestCase.assertEquals(token5, expression.keyword); + ConstructorName name = expression.constructorName; + JUnitTestCase.assertNotNull(name); + JUnitTestCase.assertNotNull(name.type); + JUnitTestCase.assertNull(name.period); + JUnitTestCase.assertNull(name.name); + JUnitTestCase.assertNotNull(expression.argumentList); + } + void test_parseInstanceCreationExpression_qualifiedType_named() { + Token token6 = TokenFactory.token(Keyword.NEW); + InstanceCreationExpression expression = ParserTestCase.parse("parseInstanceCreationExpression", [token6], "A.B.c()"); + JUnitTestCase.assertEquals(token6, expression.keyword); + ConstructorName name = expression.constructorName; + JUnitTestCase.assertNotNull(name); + JUnitTestCase.assertNotNull(name.type); + JUnitTestCase.assertNotNull(name.period); + JUnitTestCase.assertNotNull(name.name); + JUnitTestCase.assertNotNull(expression.argumentList); + } + void test_parseInstanceCreationExpression_type() { + Token token7 = TokenFactory.token(Keyword.NEW); + InstanceCreationExpression expression = ParserTestCase.parse("parseInstanceCreationExpression", [token7], "A()"); + JUnitTestCase.assertEquals(token7, expression.keyword); + ConstructorName name = expression.constructorName; + JUnitTestCase.assertNotNull(name); + JUnitTestCase.assertNotNull(name.type); + JUnitTestCase.assertNull(name.period); + JUnitTestCase.assertNull(name.name); + JUnitTestCase.assertNotNull(expression.argumentList); + } + void test_parseInstanceCreationExpression_type_named() { + Token token8 = TokenFactory.token(Keyword.NEW); + InstanceCreationExpression expression = ParserTestCase.parse("parseInstanceCreationExpression", [token8], "A.c()"); + JUnitTestCase.assertEquals(token8, expression.keyword); + ConstructorName name = expression.constructorName; + JUnitTestCase.assertNotNull(name); + JUnitTestCase.assertNotNull(name.type); + JUnitTestCase.assertNotNull(name.period); + JUnitTestCase.assertNotNull(name.name); + JUnitTestCase.assertNotNull(expression.argumentList); + } + void test_parseLibraryDirective() { + LibraryDirective directive = ParserTestCase.parse("parseLibraryDirective", [emptyCommentAndMetadata()], "library l;"); + JUnitTestCase.assertNotNull(directive.libraryToken); + JUnitTestCase.assertNotNull(directive.name); + JUnitTestCase.assertNotNull(directive.semicolon); + } + void test_parseLibraryIdentifier_multiple() { + String name = "a.b.c"; + LibraryIdentifier identifier = ParserTestCase.parse4("parseLibraryIdentifier", name, []); + JUnitTestCase.assertEquals(name, identifier.name); + } + void test_parseLibraryIdentifier_single() { + String name = "a"; + LibraryIdentifier identifier = ParserTestCase.parse4("parseLibraryIdentifier", name, []); + JUnitTestCase.assertEquals(name, identifier.name); + } + void test_parseListLiteral_empty_oneToken() { + Token token9 = TokenFactory.token(Keyword.CONST); + TypeArgumentList typeArguments = new TypeArgumentList(null, null, null); + ListLiteral literal = ParserTestCase.parse("parseListLiteral", [token9, typeArguments], "[]"); + JUnitTestCase.assertEquals(token9, literal.modifier); + JUnitTestCase.assertEquals(typeArguments, literal.typeArguments); + JUnitTestCase.assertNotNull(literal.leftBracket); + EngineTestCase.assertSize(0, literal.elements); + JUnitTestCase.assertNotNull(literal.rightBracket); + } + void test_parseListLiteral_empty_twoTokens() { + Token token10 = TokenFactory.token(Keyword.CONST); + TypeArgumentList typeArguments = new TypeArgumentList(null, null, null); + ListLiteral literal = ParserTestCase.parse("parseListLiteral", [token10, typeArguments], "[ ]"); + JUnitTestCase.assertEquals(token10, literal.modifier); + JUnitTestCase.assertEquals(typeArguments, literal.typeArguments); + JUnitTestCase.assertNotNull(literal.leftBracket); + EngineTestCase.assertSize(0, literal.elements); + JUnitTestCase.assertNotNull(literal.rightBracket); + } + void test_parseListLiteral_multiple() { + ListLiteral literal = ParserTestCase.parse("parseListLiteral", [null, null], "[1, 2, 3]"); + JUnitTestCase.assertNull(literal.modifier); + JUnitTestCase.assertNull(literal.typeArguments); + JUnitTestCase.assertNotNull(literal.leftBracket); + EngineTestCase.assertSize(3, literal.elements); + JUnitTestCase.assertNotNull(literal.rightBracket); + } + void test_parseListLiteral_single() { + ListLiteral literal = ParserTestCase.parse("parseListLiteral", [null, null], "[1]"); + JUnitTestCase.assertNull(literal.modifier); + JUnitTestCase.assertNull(literal.typeArguments); + JUnitTestCase.assertNotNull(literal.leftBracket); + EngineTestCase.assertSize(1, literal.elements); + JUnitTestCase.assertNotNull(literal.rightBracket); + } + void test_parseListOrMapLiteral_list_noType() { + ListLiteral literal = ParserTestCase.parse("parseListOrMapLiteral", [null], "[1]"); + JUnitTestCase.assertNull(literal.modifier); + JUnitTestCase.assertNull(literal.typeArguments); + JUnitTestCase.assertNotNull(literal.leftBracket); + EngineTestCase.assertSize(1, literal.elements); + JUnitTestCase.assertNotNull(literal.rightBracket); + } + void test_parseListOrMapLiteral_list_type() { + ListLiteral literal = ParserTestCase.parse("parseListOrMapLiteral", [null], " [1]"); + JUnitTestCase.assertNull(literal.modifier); + JUnitTestCase.assertNotNull(literal.typeArguments); + JUnitTestCase.assertNotNull(literal.leftBracket); + EngineTestCase.assertSize(1, literal.elements); + JUnitTestCase.assertNotNull(literal.rightBracket); + } + void test_parseListOrMapLiteral_map_noType() { + MapLiteral literal = ParserTestCase.parse("parseListOrMapLiteral", [null], "{'1' : 1}"); + JUnitTestCase.assertNull(literal.modifier); + JUnitTestCase.assertNull(literal.typeArguments); + JUnitTestCase.assertNotNull(literal.leftBracket); + EngineTestCase.assertSize(1, literal.entries); + JUnitTestCase.assertNotNull(literal.rightBracket); + } + void test_parseListOrMapLiteral_map_type() { + MapLiteral literal = ParserTestCase.parse("parseListOrMapLiteral", [null], " {'1' : 1}"); + JUnitTestCase.assertNull(literal.modifier); + JUnitTestCase.assertNotNull(literal.typeArguments); + JUnitTestCase.assertNotNull(literal.leftBracket); + EngineTestCase.assertSize(1, literal.entries); + JUnitTestCase.assertNotNull(literal.rightBracket); + } + void test_parseLogicalAndExpression() { + BinaryExpression expression = ParserTestCase.parse4("parseLogicalAndExpression", "x && y", []); + JUnitTestCase.assertNotNull(expression.leftOperand); + JUnitTestCase.assertNotNull(expression.operator); + JUnitTestCase.assertEquals(TokenType.AMPERSAND_AMPERSAND, expression.operator.type); + JUnitTestCase.assertNotNull(expression.rightOperand); + } + void test_parseLogicalOrExpression() { + BinaryExpression expression = ParserTestCase.parse4("parseLogicalOrExpression", "x || y", []); + JUnitTestCase.assertNotNull(expression.leftOperand); + JUnitTestCase.assertNotNull(expression.operator); + JUnitTestCase.assertEquals(TokenType.BAR_BAR, expression.operator.type); + JUnitTestCase.assertNotNull(expression.rightOperand); + } + void test_parseMapLiteral_empty() { + Token token11 = TokenFactory.token(Keyword.CONST); + TypeArgumentList typeArguments = new TypeArgumentList(null, null, null); + MapLiteral literal = ParserTestCase.parse("parseMapLiteral", [token11, typeArguments], "{}"); + JUnitTestCase.assertEquals(token11, literal.modifier); + JUnitTestCase.assertEquals(typeArguments, literal.typeArguments); + JUnitTestCase.assertNotNull(literal.leftBracket); + EngineTestCase.assertSize(0, literal.entries); + JUnitTestCase.assertNotNull(literal.rightBracket); + } + void test_parseMapLiteral_multiple() { + MapLiteral literal = ParserTestCase.parse("parseMapLiteral", [null, null], "{'a' : b, 'x' : y}"); + JUnitTestCase.assertNotNull(literal.leftBracket); + EngineTestCase.assertSize(2, literal.entries); + JUnitTestCase.assertNotNull(literal.rightBracket); + } + void test_parseMapLiteral_single() { + MapLiteral literal = ParserTestCase.parse("parseMapLiteral", [null, null], "{'x' : y}"); + JUnitTestCase.assertNotNull(literal.leftBracket); + EngineTestCase.assertSize(1, literal.entries); + JUnitTestCase.assertNotNull(literal.rightBracket); + } + void test_parseMapLiteralEntry() { + MapLiteralEntry entry = ParserTestCase.parse4("parseMapLiteralEntry", "'x' : y", []); + JUnitTestCase.assertNotNull(entry.key); + JUnitTestCase.assertNotNull(entry.separator); + JUnitTestCase.assertNotNull(entry.value); + } + void test_parseModifiers_abstract() { + Modifiers modifiers = ParserTestCase.parse4("parseModifiers", "abstract A", []); + JUnitTestCase.assertNotNull(modifiers.abstractKeyword); + } + void test_parseModifiers_const() { + Modifiers modifiers = ParserTestCase.parse4("parseModifiers", "const A", []); + JUnitTestCase.assertNotNull(modifiers.constKeyword); + } + void test_parseModifiers_external() { + Modifiers modifiers = ParserTestCase.parse4("parseModifiers", "external A", []); + JUnitTestCase.assertNotNull(modifiers.externalKeyword); + } + void test_parseModifiers_factory() { + Modifiers modifiers = ParserTestCase.parse4("parseModifiers", "factory A", []); + JUnitTestCase.assertNotNull(modifiers.factoryKeyword); + } + void test_parseModifiers_final() { + Modifiers modifiers = ParserTestCase.parse4("parseModifiers", "final A", []); + JUnitTestCase.assertNotNull(modifiers.finalKeyword); + } + void test_parseModifiers_static() { + Modifiers modifiers = ParserTestCase.parse4("parseModifiers", "static A", []); + JUnitTestCase.assertNotNull(modifiers.staticKeyword); + } + void test_parseModifiers_var() { + Modifiers modifiers = ParserTestCase.parse4("parseModifiers", "var A", []); + JUnitTestCase.assertNotNull(modifiers.varKeyword); + } + void test_parseMultiplicativeExpression_normal() { + BinaryExpression expression = ParserTestCase.parse4("parseMultiplicativeExpression", "x * y", []); + JUnitTestCase.assertNotNull(expression.leftOperand); + JUnitTestCase.assertNotNull(expression.operator); + JUnitTestCase.assertEquals(TokenType.STAR, expression.operator.type); + JUnitTestCase.assertNotNull(expression.rightOperand); + } + void test_parseMultiplicativeExpression_super() { + BinaryExpression expression = ParserTestCase.parse4("parseMultiplicativeExpression", "super * y", []); + EngineTestCase.assertInstanceOf(SuperExpression, expression.leftOperand); + JUnitTestCase.assertNotNull(expression.operator); + JUnitTestCase.assertEquals(TokenType.STAR, expression.operator.type); + JUnitTestCase.assertNotNull(expression.rightOperand); + } + void test_parseNewExpression() { + InstanceCreationExpression expression = ParserTestCase.parse4("parseNewExpression", "new A()", []); + JUnitTestCase.assertNotNull(expression.keyword); + ConstructorName name = expression.constructorName; + JUnitTestCase.assertNotNull(name); + JUnitTestCase.assertNotNull(name.type); + JUnitTestCase.assertNull(name.period); + JUnitTestCase.assertNull(name.name); + JUnitTestCase.assertNotNull(expression.argumentList); + } + void test_parseNonLabeledStatement_const_list_empty() { + ExpressionStatement statement = ParserTestCase.parse4("parseNonLabeledStatement", "const [];", []); + JUnitTestCase.assertNotNull(statement.expression); + } + void test_parseNonLabeledStatement_const_list_nonEmpty() { + ExpressionStatement statement = ParserTestCase.parse4("parseNonLabeledStatement", "const [1, 2];", []); + JUnitTestCase.assertNotNull(statement.expression); + } + void test_parseNonLabeledStatement_const_map_empty() { + ExpressionStatement statement = ParserTestCase.parse4("parseNonLabeledStatement", "const {};", []); + JUnitTestCase.assertNotNull(statement.expression); + } + void test_parseNonLabeledStatement_const_map_nonEmpty() { + ExpressionStatement statement = ParserTestCase.parse4("parseNonLabeledStatement", "const {'a' : 1};", []); + JUnitTestCase.assertNotNull(statement.expression); + } + void test_parseNonLabeledStatement_const_object() { + ExpressionStatement statement = ParserTestCase.parse4("parseNonLabeledStatement", "const A();", []); + JUnitTestCase.assertNotNull(statement.expression); + } + void test_parseNonLabeledStatement_const_object_named_typeParameters() { + ExpressionStatement statement = ParserTestCase.parse4("parseNonLabeledStatement", "const A.c();", []); + JUnitTestCase.assertNotNull(statement.expression); + } + void test_parseNonLabeledStatement_constructorInvocation() { + ExpressionStatement statement = ParserTestCase.parse4("parseNonLabeledStatement", "new C().m();", []); + JUnitTestCase.assertNotNull(statement.expression); + } + void test_parseNonLabeledStatement_false() { + ExpressionStatement statement = ParserTestCase.parse4("parseNonLabeledStatement", "false;", []); + JUnitTestCase.assertNotNull(statement.expression); + } + void test_parseNonLabeledStatement_functionDeclaration() { + ParserTestCase.parse4("parseNonLabeledStatement", "f() {};", []); + } + void test_parseNonLabeledStatement_functionDeclaration_arguments() { + ParserTestCase.parse4("parseNonLabeledStatement", "f(void g()) {};", []); + } + void test_parseNonLabeledStatement_functionExpressionIndex() { + ParserTestCase.parse4("parseNonLabeledStatement", "() {}[0] = null;", []); + } + void test_parseNonLabeledStatement_functionInvocation() { + ExpressionStatement statement = ParserTestCase.parse4("parseNonLabeledStatement", "f();", []); + JUnitTestCase.assertNotNull(statement.expression); + } + void test_parseNonLabeledStatement_invokeFunctionExpression() { + ExpressionStatement statement = ParserTestCase.parse4("parseNonLabeledStatement", "(a) {return a + a;} (3);", []); + EngineTestCase.assertInstanceOf(FunctionExpressionInvocation, statement.expression); + FunctionExpressionInvocation invocation = statement.expression as FunctionExpressionInvocation; + EngineTestCase.assertInstanceOf(FunctionExpression, invocation.function); + FunctionExpression expression = invocation.function as FunctionExpression; + JUnitTestCase.assertNotNull(expression.parameters); + JUnitTestCase.assertNotNull(expression.body); + ArgumentList list = invocation.argumentList; + JUnitTestCase.assertNotNull(list); + EngineTestCase.assertSize(1, list.arguments); + } + void test_parseNonLabeledStatement_null() { + ExpressionStatement statement = ParserTestCase.parse4("parseNonLabeledStatement", "null;", []); + JUnitTestCase.assertNotNull(statement.expression); + } + void test_parseNonLabeledStatement_startingWithBuiltInIdentifier() { + ExpressionStatement statement = ParserTestCase.parse4("parseNonLabeledStatement", "library.getName();", []); + JUnitTestCase.assertNotNull(statement.expression); + } + void test_parseNonLabeledStatement_true() { + ExpressionStatement statement = ParserTestCase.parse4("parseNonLabeledStatement", "true;", []); + JUnitTestCase.assertNotNull(statement.expression); + } + void test_parseNonLabeledStatement_typeCast() { + ExpressionStatement statement = ParserTestCase.parse4("parseNonLabeledStatement", "double.NAN as num;", []); + JUnitTestCase.assertNotNull(statement.expression); + } + void test_parseNormalFormalParameter_field_const_noType() { + FieldFormalParameter parameter = ParserTestCase.parse4("parseNormalFormalParameter", "const this.a)", []); + JUnitTestCase.assertNotNull(parameter.keyword); + JUnitTestCase.assertNull(parameter.type); + JUnitTestCase.assertNotNull(parameter.identifier); + } + void test_parseNormalFormalParameter_field_const_type() { + FieldFormalParameter parameter = ParserTestCase.parse4("parseNormalFormalParameter", "const A this.a)", []); + JUnitTestCase.assertNotNull(parameter.keyword); + JUnitTestCase.assertNotNull(parameter.type); + JUnitTestCase.assertNotNull(parameter.identifier); + } + void test_parseNormalFormalParameter_field_final_noType() { + FieldFormalParameter parameter = ParserTestCase.parse4("parseNormalFormalParameter", "final this.a)", []); + JUnitTestCase.assertNotNull(parameter.keyword); + JUnitTestCase.assertNull(parameter.type); + JUnitTestCase.assertNotNull(parameter.identifier); + } + void test_parseNormalFormalParameter_field_final_type() { + FieldFormalParameter parameter = ParserTestCase.parse4("parseNormalFormalParameter", "final A this.a)", []); + JUnitTestCase.assertNotNull(parameter.keyword); + JUnitTestCase.assertNotNull(parameter.type); + JUnitTestCase.assertNotNull(parameter.identifier); + } + void test_parseNormalFormalParameter_field_noType() { + FieldFormalParameter parameter = ParserTestCase.parse4("parseNormalFormalParameter", "this.a)", []); + JUnitTestCase.assertNull(parameter.keyword); + JUnitTestCase.assertNull(parameter.type); + JUnitTestCase.assertNotNull(parameter.identifier); + } + void test_parseNormalFormalParameter_field_type() { + FieldFormalParameter parameter = ParserTestCase.parse4("parseNormalFormalParameter", "A this.a)", []); + JUnitTestCase.assertNull(parameter.keyword); + JUnitTestCase.assertNotNull(parameter.type); + JUnitTestCase.assertNotNull(parameter.identifier); + } + void test_parseNormalFormalParameter_field_var() { + FieldFormalParameter parameter = ParserTestCase.parse4("parseNormalFormalParameter", "var this.a)", []); + JUnitTestCase.assertNotNull(parameter.keyword); + JUnitTestCase.assertNull(parameter.type); + JUnitTestCase.assertNotNull(parameter.identifier); + } + void test_parseNormalFormalParameter_function_noType() { + FunctionTypedFormalParameter parameter = ParserTestCase.parse4("parseNormalFormalParameter", "a())", []); + JUnitTestCase.assertNull(parameter.returnType); + JUnitTestCase.assertNotNull(parameter.identifier); + JUnitTestCase.assertNotNull(parameter.parameters); + } + void test_parseNormalFormalParameter_function_type() { + FunctionTypedFormalParameter parameter = ParserTestCase.parse4("parseNormalFormalParameter", "A a())", []); + JUnitTestCase.assertNotNull(parameter.returnType); + JUnitTestCase.assertNotNull(parameter.identifier); + JUnitTestCase.assertNotNull(parameter.parameters); + } + void test_parseNormalFormalParameter_function_void() { + FunctionTypedFormalParameter parameter = ParserTestCase.parse4("parseNormalFormalParameter", "void a())", []); + JUnitTestCase.assertNotNull(parameter.returnType); + JUnitTestCase.assertNotNull(parameter.identifier); + JUnitTestCase.assertNotNull(parameter.parameters); + } + void test_parseNormalFormalParameter_simple_const_noType() { + SimpleFormalParameter parameter = ParserTestCase.parse4("parseNormalFormalParameter", "const a)", []); + JUnitTestCase.assertNotNull(parameter.keyword); + JUnitTestCase.assertNull(parameter.type); + JUnitTestCase.assertNotNull(parameter.identifier); + } + void test_parseNormalFormalParameter_simple_const_type() { + SimpleFormalParameter parameter = ParserTestCase.parse4("parseNormalFormalParameter", "const A a)", []); + JUnitTestCase.assertNotNull(parameter.keyword); + JUnitTestCase.assertNotNull(parameter.type); + JUnitTestCase.assertNotNull(parameter.identifier); + } + void test_parseNormalFormalParameter_simple_final_noType() { + SimpleFormalParameter parameter = ParserTestCase.parse4("parseNormalFormalParameter", "final a)", []); + JUnitTestCase.assertNotNull(parameter.keyword); + JUnitTestCase.assertNull(parameter.type); + JUnitTestCase.assertNotNull(parameter.identifier); + } + void test_parseNormalFormalParameter_simple_final_type() { + SimpleFormalParameter parameter = ParserTestCase.parse4("parseNormalFormalParameter", "final A a)", []); + JUnitTestCase.assertNotNull(parameter.keyword); + JUnitTestCase.assertNotNull(parameter.type); + JUnitTestCase.assertNotNull(parameter.identifier); + } + void test_parseNormalFormalParameter_simple_noType() { + SimpleFormalParameter parameter = ParserTestCase.parse4("parseNormalFormalParameter", "a)", []); + JUnitTestCase.assertNull(parameter.keyword); + JUnitTestCase.assertNull(parameter.type); + JUnitTestCase.assertNotNull(parameter.identifier); + } + void test_parseNormalFormalParameter_simple_type() { + SimpleFormalParameter parameter = ParserTestCase.parse4("parseNormalFormalParameter", "A a)", []); + JUnitTestCase.assertNull(parameter.keyword); + JUnitTestCase.assertNotNull(parameter.type); + JUnitTestCase.assertNotNull(parameter.identifier); + } + void test_parseOperator() { + Comment comment = Comment.createDocumentationComment(new List.fixedLength(0)); + TypeName returnType = new TypeName(new SimpleIdentifier(null), null); + MethodDeclaration method = ParserTestCase.parse("parseOperator", [commentAndMetadata(comment, []), null, returnType], "operator +(A a);"); + JUnitTestCase.assertNotNull(method.body); + JUnitTestCase.assertEquals(comment, method.documentationComment); + JUnitTestCase.assertNull(method.externalKeyword); + JUnitTestCase.assertNull(method.modifierKeyword); + JUnitTestCase.assertNotNull(method.name); + JUnitTestCase.assertNotNull(method.operatorKeyword); + JUnitTestCase.assertNotNull(method.parameters); + JUnitTestCase.assertNull(method.propertyKeyword); + JUnitTestCase.assertEquals(returnType, method.returnType); + } + void test_parseOptionalReturnType() { + } + void test_parsePartDirective_part() { + PartDirective directive = ParserTestCase.parse("parsePartDirective", [emptyCommentAndMetadata()], "part 'lib/lib.dart';"); + JUnitTestCase.assertNotNull(directive.partToken); + JUnitTestCase.assertNotNull(directive.partUri); + JUnitTestCase.assertNotNull(directive.semicolon); + } + void test_parsePartDirective_partOf() { + PartOfDirective directive = ParserTestCase.parse("parsePartDirective", [emptyCommentAndMetadata()], "part of l;"); + JUnitTestCase.assertNotNull(directive.partToken); + JUnitTestCase.assertNotNull(directive.ofToken); + JUnitTestCase.assertNotNull(directive.libraryName); + JUnitTestCase.assertNotNull(directive.semicolon); + } + void test_parsePostfixExpression_decrement() { + PostfixExpression expression = ParserTestCase.parse4("parsePostfixExpression", "i--", []); + JUnitTestCase.assertNotNull(expression.operand); + JUnitTestCase.assertNotNull(expression.operator); + JUnitTestCase.assertEquals(TokenType.MINUS_MINUS, expression.operator.type); + } + void test_parsePostfixExpression_increment() { + PostfixExpression expression = ParserTestCase.parse4("parsePostfixExpression", "i++", []); + JUnitTestCase.assertNotNull(expression.operand); + JUnitTestCase.assertNotNull(expression.operator); + JUnitTestCase.assertEquals(TokenType.PLUS_PLUS, expression.operator.type); + } + void test_parsePostfixExpression_none_indexExpression() { + IndexExpression expression = ParserTestCase.parse4("parsePostfixExpression", "a[0]", []); + JUnitTestCase.assertNotNull(expression.array); + JUnitTestCase.assertNotNull(expression.index); + } + void test_parsePostfixExpression_none_methodInvocation() { + MethodInvocation expression = ParserTestCase.parse4("parsePostfixExpression", "a.m()", []); + JUnitTestCase.assertNotNull(expression.target); + JUnitTestCase.assertNotNull(expression.methodName); + JUnitTestCase.assertNotNull(expression.argumentList); + } + void test_parsePostfixExpression_none_propertyAccess() { + PrefixedIdentifier expression = ParserTestCase.parse4("parsePostfixExpression", "a.b", []); + JUnitTestCase.assertNotNull(expression.prefix); + JUnitTestCase.assertNotNull(expression.identifier); + } + void test_parsePrefixedIdentifier_noPrefix() { + String lexeme = "bar"; + SimpleIdentifier identifier = ParserTestCase.parse4("parsePrefixedIdentifier", lexeme, []); + JUnitTestCase.assertNotNull(identifier.token); + JUnitTestCase.assertEquals(lexeme, identifier.name); + } + void test_parsePrefixedIdentifier_prefix() { + String lexeme = "foo.bar"; + PrefixedIdentifier identifier = ParserTestCase.parse4("parsePrefixedIdentifier", lexeme, []); + JUnitTestCase.assertEquals("foo", identifier.prefix.name); + JUnitTestCase.assertNotNull(identifier.period); + JUnitTestCase.assertEquals("bar", identifier.identifier.name); + } + void test_parsePrimaryExpression_argumentDefinitionTest() { + ArgumentDefinitionTest expression = ParserTestCase.parse4("parseArgumentDefinitionTest", "?a", []); + JUnitTestCase.assertNotNull(expression.question); + JUnitTestCase.assertNotNull(expression.identifier); + } + void test_parsePrimaryExpression_const() { + InstanceCreationExpression expression = ParserTestCase.parse4("parsePrimaryExpression", "const A()", []); + JUnitTestCase.assertNotNull(expression); + } + void test_parsePrimaryExpression_double() { + String doubleLiteral = "3.2e4"; + DoubleLiteral literal = ParserTestCase.parse4("parsePrimaryExpression", doubleLiteral, []); + JUnitTestCase.assertNotNull(literal.literal); + JUnitTestCase.assertEquals(double.parse(doubleLiteral), literal.value); + } + void test_parsePrimaryExpression_false() { + BooleanLiteral literal = ParserTestCase.parse4("parsePrimaryExpression", "false", []); + JUnitTestCase.assertNotNull(literal.literal); + JUnitTestCase.assertFalse(literal.value); + } + void test_parsePrimaryExpression_function_arguments() { + FunctionExpression expression = ParserTestCase.parse4("parsePrimaryExpression", "(int i) => i + 1", []); + JUnitTestCase.assertNotNull(expression.parameters); + JUnitTestCase.assertNotNull(expression.body); + } + void test_parsePrimaryExpression_function_noArguments() { + FunctionExpression expression = ParserTestCase.parse4("parsePrimaryExpression", "() => 42", []); + JUnitTestCase.assertNotNull(expression.parameters); + JUnitTestCase.assertNotNull(expression.body); + } + void test_parsePrimaryExpression_hex() { + String hexLiteral = "3F"; + IntegerLiteral literal = ParserTestCase.parse4("parsePrimaryExpression", "0x${hexLiteral}", []); + JUnitTestCase.assertNotNull(literal.literal); + JUnitTestCase.assertEquals(int.parse(hexLiteral, radix: 16), literal.value); + } + void test_parsePrimaryExpression_identifier() { + SimpleIdentifier identifier = ParserTestCase.parse4("parsePrimaryExpression", "a", []); + JUnitTestCase.assertNotNull(identifier); + } + void test_parsePrimaryExpression_int() { + String intLiteral = "472"; + IntegerLiteral literal = ParserTestCase.parse4("parsePrimaryExpression", intLiteral, []); + JUnitTestCase.assertNotNull(literal.literal); + JUnitTestCase.assertEquals(int.parse(intLiteral), literal.value); + } + void test_parsePrimaryExpression_listLiteral() { + ListLiteral literal = ParserTestCase.parse4("parsePrimaryExpression", "[ ]", []); + JUnitTestCase.assertNotNull(literal); + } + void test_parsePrimaryExpression_listLiteral_index() { + ListLiteral literal = ParserTestCase.parse4("parsePrimaryExpression", "[]", []); + JUnitTestCase.assertNotNull(literal); + } + void test_parsePrimaryExpression_listLiteral_typed() { + ListLiteral literal = ParserTestCase.parse4("parsePrimaryExpression", "[ ]", []); + JUnitTestCase.assertNotNull(literal.typeArguments); + EngineTestCase.assertSize(1, literal.typeArguments.arguments); + } + void test_parsePrimaryExpression_mapLiteral() { + MapLiteral literal = ParserTestCase.parse4("parsePrimaryExpression", "{}", []); + JUnitTestCase.assertNotNull(literal); + } + void test_parsePrimaryExpression_mapLiteral_typed() { + MapLiteral literal = ParserTestCase.parse4("parsePrimaryExpression", "{}", []); + JUnitTestCase.assertNotNull(literal.typeArguments); + EngineTestCase.assertSize(1, literal.typeArguments.arguments); + } + void test_parsePrimaryExpression_new() { + InstanceCreationExpression expression = ParserTestCase.parse4("parsePrimaryExpression", "new A()", []); + JUnitTestCase.assertNotNull(expression); + } + void test_parsePrimaryExpression_null() { + NullLiteral literal = ParserTestCase.parse4("parsePrimaryExpression", "null", []); + JUnitTestCase.assertNotNull(literal.literal); + } + void test_parsePrimaryExpression_parenthesized() { + ParenthesizedExpression expression = ParserTestCase.parse4("parsePrimaryExpression", "()", []); + JUnitTestCase.assertNotNull(expression); + } + void test_parsePrimaryExpression_string() { + SimpleStringLiteral literal = ParserTestCase.parse4("parsePrimaryExpression", "\"string\"", []); + JUnitTestCase.assertFalse(literal.isMultiline()); + JUnitTestCase.assertEquals("string", literal.value); + } + void test_parsePrimaryExpression_super() { + PropertyAccess propertyAccess = ParserTestCase.parse4("parsePrimaryExpression", "super.x", []); + JUnitTestCase.assertTrue(propertyAccess.target is SuperExpression); + JUnitTestCase.assertNotNull(propertyAccess.operator); + JUnitTestCase.assertEquals(TokenType.PERIOD, propertyAccess.operator.type); + JUnitTestCase.assertNotNull(propertyAccess.propertyName); + } + void test_parsePrimaryExpression_this() { + ThisExpression expression = ParserTestCase.parse4("parsePrimaryExpression", "this", []); + JUnitTestCase.assertNotNull(expression.keyword); + } + void test_parsePrimaryExpression_true() { + BooleanLiteral literal = ParserTestCase.parse4("parsePrimaryExpression", "true", []); + JUnitTestCase.assertNotNull(literal.literal); + JUnitTestCase.assertTrue(literal.value); + } + void test_Parser() { + JUnitTestCase.assertNotNull(new Parser(null, null)); + } + void test_parseRedirectingConstructorInvocation_named() { + RedirectingConstructorInvocation invocation = ParserTestCase.parse4("parseRedirectingConstructorInvocation", "this.a()", []); + JUnitTestCase.assertNotNull(invocation.argumentList); + JUnitTestCase.assertNotNull(invocation.constructorName); + JUnitTestCase.assertNotNull(invocation.keyword); + JUnitTestCase.assertNotNull(invocation.period); + } + void test_parseRedirectingConstructorInvocation_unnamed() { + RedirectingConstructorInvocation invocation = ParserTestCase.parse4("parseRedirectingConstructorInvocation", "this()", []); + JUnitTestCase.assertNotNull(invocation.argumentList); + JUnitTestCase.assertNull(invocation.constructorName); + JUnitTestCase.assertNotNull(invocation.keyword); + JUnitTestCase.assertNull(invocation.period); + } + void test_parseRelationalExpression_as() { + AsExpression expression = ParserTestCase.parse4("parseRelationalExpression", "x as Y", []); + JUnitTestCase.assertNotNull(expression.expression); + JUnitTestCase.assertNotNull(expression.asOperator); + JUnitTestCase.assertNotNull(expression.type); + } + void test_parseRelationalExpression_is() { + IsExpression expression = ParserTestCase.parse4("parseRelationalExpression", "x is y", []); + JUnitTestCase.assertNotNull(expression.expression); + JUnitTestCase.assertNotNull(expression.isOperator); + JUnitTestCase.assertNull(expression.notOperator); + JUnitTestCase.assertNotNull(expression.type); + } + void test_parseRelationalExpression_isNot() { + IsExpression expression = ParserTestCase.parse4("parseRelationalExpression", "x is! y", []); + JUnitTestCase.assertNotNull(expression.expression); + JUnitTestCase.assertNotNull(expression.isOperator); + JUnitTestCase.assertNotNull(expression.notOperator); + JUnitTestCase.assertNotNull(expression.type); + } + void test_parseRelationalExpression_normal() { + BinaryExpression expression = ParserTestCase.parse4("parseRelationalExpression", "x < y", []); + JUnitTestCase.assertNotNull(expression.leftOperand); + JUnitTestCase.assertNotNull(expression.operator); + JUnitTestCase.assertEquals(TokenType.LT, expression.operator.type); + JUnitTestCase.assertNotNull(expression.rightOperand); + } + void test_parseRelationalExpression_super() { + BinaryExpression expression = ParserTestCase.parse4("parseRelationalExpression", "super < y", []); + JUnitTestCase.assertNotNull(expression.leftOperand); + JUnitTestCase.assertNotNull(expression.operator); + JUnitTestCase.assertEquals(TokenType.LT, expression.operator.type); + JUnitTestCase.assertNotNull(expression.rightOperand); + } + void test_parseReturnStatement_noValue() { + ReturnStatement statement = ParserTestCase.parse4("parseReturnStatement", "return;", []); + JUnitTestCase.assertNotNull(statement.keyword); + JUnitTestCase.assertNull(statement.expression); + JUnitTestCase.assertNotNull(statement.semicolon); + } + void test_parseReturnStatement_value() { + ReturnStatement statement = ParserTestCase.parse4("parseReturnStatement", "return x;", []); + JUnitTestCase.assertNotNull(statement.keyword); + JUnitTestCase.assertNotNull(statement.expression); + JUnitTestCase.assertNotNull(statement.semicolon); + } + void test_parseReturnType_nonVoid() { + TypeName typeName = ParserTestCase.parse4("parseReturnType", "A", []); + JUnitTestCase.assertNotNull(typeName.name); + JUnitTestCase.assertNotNull(typeName.typeArguments); + } + void test_parseReturnType_void() { + TypeName typeName = ParserTestCase.parse4("parseReturnType", "void", []); + JUnitTestCase.assertNotNull(typeName.name); + JUnitTestCase.assertNull(typeName.typeArguments); + } + void test_parseSetter_nonStatic() { + Comment comment = Comment.createDocumentationComment(new List.fixedLength(0)); + TypeName returnType = new TypeName(new SimpleIdentifier(null), null); + MethodDeclaration method = ParserTestCase.parse("parseSetter", [commentAndMetadata(comment, []), null, null, returnType], "set a(var x);"); + JUnitTestCase.assertNotNull(method.body); + JUnitTestCase.assertEquals(comment, method.documentationComment); + JUnitTestCase.assertNull(method.externalKeyword); + JUnitTestCase.assertNull(method.modifierKeyword); + JUnitTestCase.assertNotNull(method.name); + JUnitTestCase.assertNull(method.operatorKeyword); + JUnitTestCase.assertNotNull(method.parameters); + JUnitTestCase.assertNotNull(method.propertyKeyword); + JUnitTestCase.assertEquals(returnType, method.returnType); + } + void test_parseSetter_static() { + Comment comment = Comment.createDocumentationComment(new List.fixedLength(0)); + Token staticKeyword = TokenFactory.token(Keyword.STATIC); + TypeName returnType = new TypeName(new SimpleIdentifier(null), null); + MethodDeclaration method = ParserTestCase.parse("parseSetter", [commentAndMetadata(comment, []), null, staticKeyword, returnType], "set a(var x) {}"); + JUnitTestCase.assertNotNull(method.body); + JUnitTestCase.assertEquals(comment, method.documentationComment); + JUnitTestCase.assertNull(method.externalKeyword); + JUnitTestCase.assertEquals(staticKeyword, method.modifierKeyword); + JUnitTestCase.assertNotNull(method.name); + JUnitTestCase.assertNull(method.operatorKeyword); + JUnitTestCase.assertNotNull(method.parameters); + JUnitTestCase.assertNotNull(method.propertyKeyword); + JUnitTestCase.assertEquals(returnType, method.returnType); + } + void test_parseShiftExpression_normal() { + BinaryExpression expression = ParserTestCase.parse4("parseShiftExpression", "x << y", []); + JUnitTestCase.assertNotNull(expression.leftOperand); + JUnitTestCase.assertNotNull(expression.operator); + JUnitTestCase.assertEquals(TokenType.LT_LT, expression.operator.type); + JUnitTestCase.assertNotNull(expression.rightOperand); + } + void test_parseShiftExpression_super() { + BinaryExpression expression = ParserTestCase.parse4("parseShiftExpression", "super << y", []); + JUnitTestCase.assertNotNull(expression.leftOperand); + JUnitTestCase.assertNotNull(expression.operator); + JUnitTestCase.assertEquals(TokenType.LT_LT, expression.operator.type); + JUnitTestCase.assertNotNull(expression.rightOperand); + } + void test_parseSimpleIdentifier_builtInIdentifier() { + String lexeme = "as"; + SimpleIdentifier identifier = ParserTestCase.parse4("parseSimpleIdentifier", lexeme, []); + JUnitTestCase.assertNotNull(identifier.token); + JUnitTestCase.assertEquals(lexeme, identifier.name); + } + void test_parseSimpleIdentifier_normalIdentifier() { + String lexeme = "foo"; + SimpleIdentifier identifier = ParserTestCase.parse4("parseSimpleIdentifier", lexeme, []); + JUnitTestCase.assertNotNull(identifier.token); + JUnitTestCase.assertEquals(lexeme, identifier.name); + } + void test_parseSimpleIdentifier1_normalIdentifier() { + } + void test_parseStatement_functionDeclaration() { + FunctionDeclarationStatement statement = ParserTestCase.parse4("parseStatement", "int f(a, b) {};", []); + JUnitTestCase.assertNotNull(statement.functionDeclaration); + } + void test_parseStatement_mulipleLabels() { + LabeledStatement statement = ParserTestCase.parse4("parseStatement", "l: m: return x;", []); + EngineTestCase.assertSize(2, statement.labels); + JUnitTestCase.assertNotNull(statement.statement); + } + void test_parseStatement_noLabels() { + ParserTestCase.parse4("parseStatement", "return x;", []); + } + void test_parseStatement_singleLabel() { + LabeledStatement statement = ParserTestCase.parse4("parseStatement", "l: return x;", []); + EngineTestCase.assertSize(1, statement.labels); + JUnitTestCase.assertNotNull(statement.statement); + } + void test_parseStatements_multiple() { + List statements = ParserTestCase.parseStatements("return; return;", 2, []); + EngineTestCase.assertSize(2, statements); + } + void test_parseStatements_single() { + List statements = ParserTestCase.parseStatements("return;", 1, []); + EngineTestCase.assertSize(1, statements); + } + void test_parseStringLiteral_adjacent() { + AdjacentStrings literal = ParserTestCase.parse4("parseStringLiteral", "'a' 'b'", []); + NodeList strings2 = literal.strings; + EngineTestCase.assertSize(2, strings2); + StringLiteral firstString = strings2[0]; + StringLiteral secondString = strings2[1]; + JUnitTestCase.assertEquals("a", (firstString as SimpleStringLiteral).value); + JUnitTestCase.assertEquals("b", (secondString as SimpleStringLiteral).value); + } + void test_parseStringLiteral_interpolated() { + StringInterpolation literal = ParserTestCase.parse4("parseStringLiteral", "'a \${b} c \$this d'", []); + NodeList elements2 = literal.elements; + EngineTestCase.assertSize(5, elements2); + JUnitTestCase.assertTrue(elements2[0] is InterpolationString); + JUnitTestCase.assertTrue(elements2[1] is InterpolationExpression); + JUnitTestCase.assertTrue(elements2[2] is InterpolationString); + JUnitTestCase.assertTrue(elements2[3] is InterpolationExpression); + JUnitTestCase.assertTrue(elements2[4] is InterpolationString); + } + void test_parseStringLiteral_single() { + SimpleStringLiteral literal = ParserTestCase.parse4("parseStringLiteral", "'a'", []); + JUnitTestCase.assertNotNull(literal.literal); + JUnitTestCase.assertEquals("a", literal.value); + } + void test_parseSuperConstructorInvocation_named() { + SuperConstructorInvocation invocation = ParserTestCase.parse4("parseSuperConstructorInvocation", "super.a()", []); + JUnitTestCase.assertNotNull(invocation.argumentList); + JUnitTestCase.assertNotNull(invocation.constructorName); + JUnitTestCase.assertNotNull(invocation.keyword); + JUnitTestCase.assertNotNull(invocation.period); + } + void test_parseSuperConstructorInvocation_unnamed() { + SuperConstructorInvocation invocation = ParserTestCase.parse4("parseSuperConstructorInvocation", "super()", []); + JUnitTestCase.assertNotNull(invocation.argumentList); + JUnitTestCase.assertNull(invocation.constructorName); + JUnitTestCase.assertNotNull(invocation.keyword); + JUnitTestCase.assertNull(invocation.period); + } + void test_parseSwitchStatement_case() { + SwitchStatement statement = ParserTestCase.parse4("parseSwitchStatement", "switch (a) {case 1: return 'I';}", []); + JUnitTestCase.assertNotNull(statement.keyword); + JUnitTestCase.assertNotNull(statement.leftParenthesis); + JUnitTestCase.assertNotNull(statement.expression); + JUnitTestCase.assertNotNull(statement.rightParenthesis); + JUnitTestCase.assertNotNull(statement.leftBracket); + EngineTestCase.assertSize(1, statement.members); + JUnitTestCase.assertNotNull(statement.rightBracket); + } + void test_parseSwitchStatement_empty() { + SwitchStatement statement = ParserTestCase.parse4("parseSwitchStatement", "switch (a) {}", []); + JUnitTestCase.assertNotNull(statement.keyword); + JUnitTestCase.assertNotNull(statement.leftParenthesis); + JUnitTestCase.assertNotNull(statement.expression); + JUnitTestCase.assertNotNull(statement.rightParenthesis); + JUnitTestCase.assertNotNull(statement.leftBracket); + EngineTestCase.assertSize(0, statement.members); + JUnitTestCase.assertNotNull(statement.rightBracket); + } + void test_parseSwitchStatement_labeledCase() { + SwitchStatement statement = ParserTestCase.parse4("parseSwitchStatement", "switch (a) {l1: l2: l3: case(1):}", []); + JUnitTestCase.assertNotNull(statement.keyword); + JUnitTestCase.assertNotNull(statement.leftParenthesis); + JUnitTestCase.assertNotNull(statement.expression); + JUnitTestCase.assertNotNull(statement.rightParenthesis); + JUnitTestCase.assertNotNull(statement.leftBracket); + EngineTestCase.assertSize(1, statement.members); + EngineTestCase.assertSize(3, statement.members[0].labels); + JUnitTestCase.assertNotNull(statement.rightBracket); + } + void test_parseSwitchStatement_labeledStatementInCase() { + SwitchStatement statement = ParserTestCase.parse4("parseSwitchStatement", "switch (a) {case 0: f(); l1: g(); break;}", []); + JUnitTestCase.assertNotNull(statement.keyword); + JUnitTestCase.assertNotNull(statement.leftParenthesis); + JUnitTestCase.assertNotNull(statement.expression); + JUnitTestCase.assertNotNull(statement.rightParenthesis); + JUnitTestCase.assertNotNull(statement.leftBracket); + EngineTestCase.assertSize(1, statement.members); + EngineTestCase.assertSize(3, statement.members[0].statements); + JUnitTestCase.assertNotNull(statement.rightBracket); + } + void test_parseThrowExpression_expression() { + ThrowExpression statement = ParserTestCase.parse4("parseThrowExpression", "throw x;", []); + JUnitTestCase.assertNotNull(statement.keyword); + JUnitTestCase.assertNotNull(statement.expression); + } + void test_parseThrowExpression_noExpression() { + ThrowExpression statement = ParserTestCase.parse4("parseThrowExpression", "throw;", []); + JUnitTestCase.assertNotNull(statement.keyword); + JUnitTestCase.assertNull(statement.expression); + } + void test_parseThrowExpressionWithoutCascade_expression() { + ThrowExpression statement = ParserTestCase.parse4("parseThrowExpressionWithoutCascade", "throw x;", []); + JUnitTestCase.assertNotNull(statement.keyword); + JUnitTestCase.assertNotNull(statement.expression); + } + void test_parseThrowExpressionWithoutCascade_noExpression() { + ThrowExpression statement = ParserTestCase.parse4("parseThrowExpressionWithoutCascade", "throw;", []); + JUnitTestCase.assertNotNull(statement.keyword); + JUnitTestCase.assertNull(statement.expression); + } + void test_parseTryStatement_catch() { + TryStatement statement = ParserTestCase.parse4("parseTryStatement", "try {} catch (e) {}", []); + JUnitTestCase.assertNotNull(statement.tryKeyword); + JUnitTestCase.assertNotNull(statement.body); + NodeList catchClauses2 = statement.catchClauses; + EngineTestCase.assertSize(1, catchClauses2); + CatchClause clause = catchClauses2[0]; + JUnitTestCase.assertNull(clause.onKeyword); + JUnitTestCase.assertNull(clause.exceptionType); + JUnitTestCase.assertNotNull(clause.catchKeyword); + JUnitTestCase.assertNotNull(clause.exceptionParameter); + JUnitTestCase.assertNull(clause.comma); + JUnitTestCase.assertNull(clause.stackTraceParameter); + JUnitTestCase.assertNotNull(clause.body); + JUnitTestCase.assertNull(statement.finallyKeyword); + JUnitTestCase.assertNull(statement.finallyClause); + } + void test_parseTryStatement_catch_finally() { + TryStatement statement = ParserTestCase.parse4("parseTryStatement", "try {} catch (e, s) {} finally {}", []); + JUnitTestCase.assertNotNull(statement.tryKeyword); + JUnitTestCase.assertNotNull(statement.body); + NodeList catchClauses3 = statement.catchClauses; + EngineTestCase.assertSize(1, catchClauses3); + CatchClause clause = catchClauses3[0]; + JUnitTestCase.assertNull(clause.onKeyword); + JUnitTestCase.assertNull(clause.exceptionType); + JUnitTestCase.assertNotNull(clause.catchKeyword); + JUnitTestCase.assertNotNull(clause.exceptionParameter); + JUnitTestCase.assertNotNull(clause.comma); + JUnitTestCase.assertNotNull(clause.stackTraceParameter); + JUnitTestCase.assertNotNull(clause.body); + JUnitTestCase.assertNotNull(statement.finallyKeyword); + JUnitTestCase.assertNotNull(statement.finallyClause); + } + void test_parseTryStatement_finally() { + TryStatement statement = ParserTestCase.parse4("parseTryStatement", "try {} finally {}", []); + JUnitTestCase.assertNotNull(statement.tryKeyword); + JUnitTestCase.assertNotNull(statement.body); + EngineTestCase.assertSize(0, statement.catchClauses); + JUnitTestCase.assertNotNull(statement.finallyKeyword); + JUnitTestCase.assertNotNull(statement.finallyClause); + } + void test_parseTryStatement_multiple() { + TryStatement statement = ParserTestCase.parse4("parseTryStatement", "try {} on NPE catch (e) {} on Error {} catch (e) {}", []); + JUnitTestCase.assertNotNull(statement.tryKeyword); + JUnitTestCase.assertNotNull(statement.body); + EngineTestCase.assertSize(3, statement.catchClauses); + JUnitTestCase.assertNull(statement.finallyKeyword); + JUnitTestCase.assertNull(statement.finallyClause); + } + void test_parseTryStatement_on() { + TryStatement statement = ParserTestCase.parse4("parseTryStatement", "try {} on Error {}", []); + JUnitTestCase.assertNotNull(statement.tryKeyword); + JUnitTestCase.assertNotNull(statement.body); + NodeList catchClauses4 = statement.catchClauses; + EngineTestCase.assertSize(1, catchClauses4); + CatchClause clause = catchClauses4[0]; + JUnitTestCase.assertNotNull(clause.onKeyword); + JUnitTestCase.assertNotNull(clause.exceptionType); + JUnitTestCase.assertNull(clause.catchKeyword); + JUnitTestCase.assertNull(clause.exceptionParameter); + JUnitTestCase.assertNull(clause.comma); + JUnitTestCase.assertNull(clause.stackTraceParameter); + JUnitTestCase.assertNotNull(clause.body); + JUnitTestCase.assertNull(statement.finallyKeyword); + JUnitTestCase.assertNull(statement.finallyClause); + } + void test_parseTryStatement_on_catch() { + TryStatement statement = ParserTestCase.parse4("parseTryStatement", "try {} on Error catch (e, s) {}", []); + JUnitTestCase.assertNotNull(statement.tryKeyword); + JUnitTestCase.assertNotNull(statement.body); + NodeList catchClauses5 = statement.catchClauses; + EngineTestCase.assertSize(1, catchClauses5); + CatchClause clause = catchClauses5[0]; + JUnitTestCase.assertNotNull(clause.onKeyword); + JUnitTestCase.assertNotNull(clause.exceptionType); + JUnitTestCase.assertNotNull(clause.catchKeyword); + JUnitTestCase.assertNotNull(clause.exceptionParameter); + JUnitTestCase.assertNotNull(clause.comma); + JUnitTestCase.assertNotNull(clause.stackTraceParameter); + JUnitTestCase.assertNotNull(clause.body); + JUnitTestCase.assertNull(statement.finallyKeyword); + JUnitTestCase.assertNull(statement.finallyClause); + } + void test_parseTryStatement_on_catch_finally() { + TryStatement statement = ParserTestCase.parse4("parseTryStatement", "try {} on Error catch (e, s) {} finally {}", []); + JUnitTestCase.assertNotNull(statement.tryKeyword); + JUnitTestCase.assertNotNull(statement.body); + NodeList catchClauses6 = statement.catchClauses; + EngineTestCase.assertSize(1, catchClauses6); + CatchClause clause = catchClauses6[0]; + JUnitTestCase.assertNotNull(clause.onKeyword); + JUnitTestCase.assertNotNull(clause.exceptionType); + JUnitTestCase.assertNotNull(clause.catchKeyword); + JUnitTestCase.assertNotNull(clause.exceptionParameter); + JUnitTestCase.assertNotNull(clause.comma); + JUnitTestCase.assertNotNull(clause.stackTraceParameter); + JUnitTestCase.assertNotNull(clause.body); + JUnitTestCase.assertNotNull(statement.finallyKeyword); + JUnitTestCase.assertNotNull(statement.finallyClause); + } + void test_parseTypeAlias_noParameters() { + FunctionTypeAlias typeAlias = ParserTestCase.parse("parseTypeAlias", [emptyCommentAndMetadata()], "typedef bool F();"); + JUnitTestCase.assertNotNull(typeAlias.keyword); + JUnitTestCase.assertNotNull(typeAlias.name); + JUnitTestCase.assertNotNull(typeAlias.parameters); + JUnitTestCase.assertNotNull(typeAlias.returnType); + JUnitTestCase.assertNotNull(typeAlias.semicolon); + JUnitTestCase.assertNull(typeAlias.typeParameters); + } + void test_parseTypeAlias_noReturnType() { + FunctionTypeAlias typeAlias = ParserTestCase.parse("parseTypeAlias", [emptyCommentAndMetadata()], "typedef F();"); + JUnitTestCase.assertNotNull(typeAlias.keyword); + JUnitTestCase.assertNotNull(typeAlias.name); + JUnitTestCase.assertNotNull(typeAlias.parameters); + JUnitTestCase.assertNull(typeAlias.returnType); + JUnitTestCase.assertNotNull(typeAlias.semicolon); + JUnitTestCase.assertNull(typeAlias.typeParameters); + } + void test_parseTypeAlias_parameterizedReturnType() { + FunctionTypeAlias typeAlias = ParserTestCase.parse("parseTypeAlias", [emptyCommentAndMetadata()], "typedef A F();"); + JUnitTestCase.assertNotNull(typeAlias.keyword); + JUnitTestCase.assertNotNull(typeAlias.name); + JUnitTestCase.assertNotNull(typeAlias.parameters); + JUnitTestCase.assertNotNull(typeAlias.returnType); + JUnitTestCase.assertNotNull(typeAlias.semicolon); + JUnitTestCase.assertNull(typeAlias.typeParameters); + } + void test_parseTypeAlias_parameters() { + FunctionTypeAlias typeAlias = ParserTestCase.parse("parseTypeAlias", [emptyCommentAndMetadata()], "typedef bool F(Object value);"); + JUnitTestCase.assertNotNull(typeAlias.keyword); + JUnitTestCase.assertNotNull(typeAlias.name); + JUnitTestCase.assertNotNull(typeAlias.parameters); + JUnitTestCase.assertNotNull(typeAlias.returnType); + JUnitTestCase.assertNotNull(typeAlias.semicolon); + JUnitTestCase.assertNull(typeAlias.typeParameters); + } + void test_parseTypeAlias_typeParameters() { + FunctionTypeAlias typeAlias = ParserTestCase.parse("parseTypeAlias", [emptyCommentAndMetadata()], "typedef bool F();"); + JUnitTestCase.assertNotNull(typeAlias.keyword); + JUnitTestCase.assertNotNull(typeAlias.name); + JUnitTestCase.assertNotNull(typeAlias.parameters); + JUnitTestCase.assertNotNull(typeAlias.returnType); + JUnitTestCase.assertNotNull(typeAlias.semicolon); + JUnitTestCase.assertNotNull(typeAlias.typeParameters); + } + void test_parseTypeAlias_voidReturnType() { + FunctionTypeAlias typeAlias = ParserTestCase.parse("parseTypeAlias", [emptyCommentAndMetadata()], "typedef void F();"); + JUnitTestCase.assertNotNull(typeAlias.keyword); + JUnitTestCase.assertNotNull(typeAlias.name); + JUnitTestCase.assertNotNull(typeAlias.parameters); + JUnitTestCase.assertNotNull(typeAlias.returnType); + JUnitTestCase.assertNotNull(typeAlias.semicolon); + JUnitTestCase.assertNull(typeAlias.typeParameters); + } + void test_parseTypeArgumentList_multiple() { + TypeArgumentList argumentList = ParserTestCase.parse4("parseTypeArgumentList", "", []); + JUnitTestCase.assertNotNull(argumentList.leftBracket); + EngineTestCase.assertSize(3, argumentList.arguments); + JUnitTestCase.assertNotNull(argumentList.rightBracket); + } + void test_parseTypeArgumentList_nested() { + TypeArgumentList argumentList = ParserTestCase.parse4("parseTypeArgumentList", ">", []); + JUnitTestCase.assertNotNull(argumentList.leftBracket); + EngineTestCase.assertSize(1, argumentList.arguments); + TypeName argument = argumentList.arguments[0]; + JUnitTestCase.assertNotNull(argument); + TypeArgumentList innerList = argument.typeArguments; + JUnitTestCase.assertNotNull(innerList); + EngineTestCase.assertSize(1, innerList.arguments); + JUnitTestCase.assertNotNull(argumentList.rightBracket); + } + void test_parseTypeArgumentList_single() { + TypeArgumentList argumentList = ParserTestCase.parse4("parseTypeArgumentList", "", []); + JUnitTestCase.assertNotNull(argumentList.leftBracket); + EngineTestCase.assertSize(1, argumentList.arguments); + JUnitTestCase.assertNotNull(argumentList.rightBracket); + } + void test_parseTypeName_parameterized() { + TypeName typeName = ParserTestCase.parse4("parseTypeName", "List", []); + JUnitTestCase.assertNotNull(typeName.name); + JUnitTestCase.assertNotNull(typeName.typeArguments); + } + void test_parseTypeName_simple() { + TypeName typeName = ParserTestCase.parse4("parseTypeName", "int", []); + JUnitTestCase.assertNotNull(typeName.name); + JUnitTestCase.assertNull(typeName.typeArguments); + } + void test_parseTypeParameter_bounded() { + TypeParameter parameter = ParserTestCase.parse4("parseTypeParameter", "A extends B", []); + JUnitTestCase.assertNotNull(parameter.bound); + JUnitTestCase.assertNotNull(parameter.keyword); + JUnitTestCase.assertNotNull(parameter.name); + } + void test_parseTypeParameter_simple() { + TypeParameter parameter = ParserTestCase.parse4("parseTypeParameter", "A", []); + JUnitTestCase.assertNull(parameter.bound); + JUnitTestCase.assertNull(parameter.keyword); + JUnitTestCase.assertNotNull(parameter.name); + } + void test_parseTypeParameterList_multiple() { + TypeParameterList parameterList = ParserTestCase.parse4("parseTypeParameterList", "", []); + JUnitTestCase.assertNotNull(parameterList.leftBracket); + JUnitTestCase.assertNotNull(parameterList.rightBracket); + EngineTestCase.assertSize(3, parameterList.typeParameters); + } + void test_parseTypeParameterList_parameterizedWithTrailingEquals() { + TypeParameterList parameterList = ParserTestCase.parse4("parseTypeParameterList", ">=", []); + JUnitTestCase.assertNotNull(parameterList.leftBracket); + JUnitTestCase.assertNotNull(parameterList.rightBracket); + EngineTestCase.assertSize(1, parameterList.typeParameters); + } + void test_parseTypeParameterList_single() { + TypeParameterList parameterList = ParserTestCase.parse4("parseTypeParameterList", "", []); + JUnitTestCase.assertNotNull(parameterList.leftBracket); + JUnitTestCase.assertNotNull(parameterList.rightBracket); + EngineTestCase.assertSize(1, parameterList.typeParameters); + } + void test_parseTypeParameterList_withTrailingEquals() { + TypeParameterList parameterList = ParserTestCase.parse4("parseTypeParameterList", "=", []); + JUnitTestCase.assertNotNull(parameterList.leftBracket); + JUnitTestCase.assertNotNull(parameterList.rightBracket); + EngineTestCase.assertSize(1, parameterList.typeParameters); + } + void test_parseUnaryExpression_decrement_normal() { + PrefixExpression expression = ParserTestCase.parse4("parseUnaryExpression", "--x", []); + JUnitTestCase.assertNotNull(expression.operator); + JUnitTestCase.assertEquals(TokenType.MINUS_MINUS, expression.operator.type); + JUnitTestCase.assertNotNull(expression.operand); + } + void test_parseUnaryExpression_decrement_super() { + PrefixExpression expression = ParserTestCase.parse4("parseUnaryExpression", "--super", []); + JUnitTestCase.assertNotNull(expression.operator); + JUnitTestCase.assertEquals(TokenType.MINUS, expression.operator.type); + Expression innerExpression = expression.operand; + JUnitTestCase.assertNotNull(innerExpression); + JUnitTestCase.assertTrue(innerExpression is PrefixExpression); + PrefixExpression operand = innerExpression as PrefixExpression; + JUnitTestCase.assertNotNull(operand.operator); + JUnitTestCase.assertEquals(TokenType.MINUS, operand.operator.type); + JUnitTestCase.assertNotNull(operand.operand); + } + void test_parseUnaryExpression_increment_normal() { + PrefixExpression expression = ParserTestCase.parse4("parseUnaryExpression", "++x", []); + JUnitTestCase.assertNotNull(expression.operator); + JUnitTestCase.assertEquals(TokenType.PLUS_PLUS, expression.operator.type); + JUnitTestCase.assertNotNull(expression.operand); + } + void test_parseUnaryExpression_minus_normal() { + PrefixExpression expression = ParserTestCase.parse4("parseUnaryExpression", "-x", []); + JUnitTestCase.assertNotNull(expression.operator); + JUnitTestCase.assertEquals(TokenType.MINUS, expression.operator.type); + JUnitTestCase.assertNotNull(expression.operand); + } + void test_parseUnaryExpression_minus_super() { + PrefixExpression expression = ParserTestCase.parse4("parseUnaryExpression", "-super", []); + JUnitTestCase.assertNotNull(expression.operator); + JUnitTestCase.assertEquals(TokenType.MINUS, expression.operator.type); + JUnitTestCase.assertNotNull(expression.operand); + } + void test_parseUnaryExpression_not_normal() { + PrefixExpression expression = ParserTestCase.parse4("parseUnaryExpression", "!x", []); + JUnitTestCase.assertNotNull(expression.operator); + JUnitTestCase.assertEquals(TokenType.BANG, expression.operator.type); + JUnitTestCase.assertNotNull(expression.operand); + } + void test_parseUnaryExpression_not_super() { + PrefixExpression expression = ParserTestCase.parse4("parseUnaryExpression", "!super", []); + JUnitTestCase.assertNotNull(expression.operator); + JUnitTestCase.assertEquals(TokenType.BANG, expression.operator.type); + JUnitTestCase.assertNotNull(expression.operand); + } + void test_parseUnaryExpression_tilda_normal() { + PrefixExpression expression = ParserTestCase.parse4("parseUnaryExpression", "~x", []); + JUnitTestCase.assertNotNull(expression.operator); + JUnitTestCase.assertEquals(TokenType.TILDE, expression.operator.type); + JUnitTestCase.assertNotNull(expression.operand); + } + void test_parseUnaryExpression_tilda_super() { + PrefixExpression expression = ParserTestCase.parse4("parseUnaryExpression", "~super", []); + JUnitTestCase.assertNotNull(expression.operator); + JUnitTestCase.assertEquals(TokenType.TILDE, expression.operator.type); + JUnitTestCase.assertNotNull(expression.operand); + } + void test_parseVariableDeclaration_equals() { + VariableDeclaration declaration = ParserTestCase.parse4("parseVariableDeclaration", "a = b", []); + JUnitTestCase.assertNotNull(declaration.name); + JUnitTestCase.assertNotNull(declaration.equals); + JUnitTestCase.assertNotNull(declaration.initializer); + } + void test_parseVariableDeclaration_noEquals() { + VariableDeclaration declaration = ParserTestCase.parse4("parseVariableDeclaration", "a", []); + JUnitTestCase.assertNotNull(declaration.name); + JUnitTestCase.assertNull(declaration.equals); + JUnitTestCase.assertNull(declaration.initializer); + } + void test_parseVariableDeclarationList_const_noType() { + VariableDeclarationList declarationList = ParserTestCase.parse4("parseVariableDeclarationList", "const a", []); + JUnitTestCase.assertNotNull(declarationList.keyword); + JUnitTestCase.assertNull(declarationList.type); + EngineTestCase.assertSize(1, declarationList.variables); + } + void test_parseVariableDeclarationList_const_type() { + VariableDeclarationList declarationList = ParserTestCase.parse4("parseVariableDeclarationList", "const A a", []); + JUnitTestCase.assertNotNull(declarationList.keyword); + JUnitTestCase.assertNotNull(declarationList.type); + EngineTestCase.assertSize(1, declarationList.variables); + } + void test_parseVariableDeclarationList_final_noType() { + VariableDeclarationList declarationList = ParserTestCase.parse4("parseVariableDeclarationList", "final a", []); + JUnitTestCase.assertNotNull(declarationList.keyword); + JUnitTestCase.assertNull(declarationList.type); + EngineTestCase.assertSize(1, declarationList.variables); + } + void test_parseVariableDeclarationList_final_type() { + VariableDeclarationList declarationList = ParserTestCase.parse4("parseVariableDeclarationList", "final A a", []); + JUnitTestCase.assertNotNull(declarationList.keyword); + JUnitTestCase.assertNotNull(declarationList.type); + EngineTestCase.assertSize(1, declarationList.variables); + } + void test_parseVariableDeclarationList_type_multiple() { + VariableDeclarationList declarationList = ParserTestCase.parse4("parseVariableDeclarationList", "A a, b, c", []); + JUnitTestCase.assertNull(declarationList.keyword); + JUnitTestCase.assertNotNull(declarationList.type); + EngineTestCase.assertSize(3, declarationList.variables); + } + void test_parseVariableDeclarationList_type_single() { + VariableDeclarationList declarationList = ParserTestCase.parse4("parseVariableDeclarationList", "A a", []); + JUnitTestCase.assertNull(declarationList.keyword); + JUnitTestCase.assertNotNull(declarationList.type); + EngineTestCase.assertSize(1, declarationList.variables); + } + void test_parseVariableDeclarationList_var_multiple() { + VariableDeclarationList declarationList = ParserTestCase.parse4("parseVariableDeclarationList", "var a, b, c", []); + JUnitTestCase.assertNotNull(declarationList.keyword); + JUnitTestCase.assertNull(declarationList.type); + EngineTestCase.assertSize(3, declarationList.variables); + } + void test_parseVariableDeclarationList_var_single() { + VariableDeclarationList declarationList = ParserTestCase.parse4("parseVariableDeclarationList", "var a", []); + JUnitTestCase.assertNotNull(declarationList.keyword); + JUnitTestCase.assertNull(declarationList.type); + EngineTestCase.assertSize(1, declarationList.variables); + } + void test_parseVariableDeclarationList2_type() { + TypeName type = new TypeName(new SimpleIdentifier(null), null); + VariableDeclarationList declarationList = ParserTestCase.parse("parseVariableDeclarationList", [null, type], "a"); + JUnitTestCase.assertNull(declarationList.keyword); + JUnitTestCase.assertEquals(type, declarationList.type); + EngineTestCase.assertSize(1, declarationList.variables); + } + void test_parseVariableDeclarationList2_var() { + Token keyword = TokenFactory.token(Keyword.VAR); + VariableDeclarationList declarationList = ParserTestCase.parse("parseVariableDeclarationList", [keyword, null], "a, b, c"); + JUnitTestCase.assertEquals(keyword, declarationList.keyword); + JUnitTestCase.assertNull(declarationList.type); + EngineTestCase.assertSize(3, declarationList.variables); + } + void test_parseVariableDeclarationStatement_multiple() { + VariableDeclarationStatement statement = ParserTestCase.parse4("parseVariableDeclarationStatement", "var x, y, z;", []); + JUnitTestCase.assertNotNull(statement.semicolon); + VariableDeclarationList variableList = statement.variables; + JUnitTestCase.assertNotNull(variableList); + EngineTestCase.assertSize(3, variableList.variables); + } + void test_parseVariableDeclarationStatement_single() { + VariableDeclarationStatement statement = ParserTestCase.parse4("parseVariableDeclarationStatement", "var x;", []); + JUnitTestCase.assertNotNull(statement.semicolon); + VariableDeclarationList variableList = statement.variables; + JUnitTestCase.assertNotNull(variableList); + EngineTestCase.assertSize(1, variableList.variables); + } + void test_parseWhileStatement() { + WhileStatement statement = ParserTestCase.parse4("parseWhileStatement", "while (x) {}", []); + JUnitTestCase.assertNotNull(statement.keyword); + JUnitTestCase.assertNotNull(statement.leftParenthesis); + JUnitTestCase.assertNotNull(statement.condition); + JUnitTestCase.assertNotNull(statement.rightParenthesis); + JUnitTestCase.assertNotNull(statement.body); + } + void test_parseWithClause_multiple() { + WithClause clause = ParserTestCase.parse4("parseWithClause", "with A, B, C", []); + JUnitTestCase.assertNotNull(clause.withKeyword); + EngineTestCase.assertSize(3, clause.mixinTypes); + } + void test_parseWithClause_single() { + WithClause clause = ParserTestCase.parse4("parseWithClause", "with M", []); + JUnitTestCase.assertNotNull(clause.withKeyword); + EngineTestCase.assertSize(1, clause.mixinTypes); + } + void test_skipPrefixedIdentifier_invalid() { + Token following = skip("skipPrefixedIdentifier", "+"); + JUnitTestCase.assertNull(following); + } + void test_skipPrefixedIdentifier_notPrefixed() { + Token following = skip("skipPrefixedIdentifier", "a +"); + JUnitTestCase.assertNotNull(following); + JUnitTestCase.assertEquals(TokenType.PLUS, following.type); + } + void test_skipPrefixedIdentifier_prefixed() { + Token following = skip("skipPrefixedIdentifier", "a.b +"); + JUnitTestCase.assertNotNull(following); + JUnitTestCase.assertEquals(TokenType.PLUS, following.type); + } + void test_skipReturnType_invalid() { + Token following = skip("skipReturnType", "+"); + JUnitTestCase.assertNull(following); + } + void test_skipReturnType_type() { + Token following = skip("skipReturnType", "C +"); + JUnitTestCase.assertNotNull(following); + JUnitTestCase.assertEquals(TokenType.PLUS, following.type); + } + void test_skipReturnType_void() { + Token following = skip("skipReturnType", "void +"); + JUnitTestCase.assertNotNull(following); + JUnitTestCase.assertEquals(TokenType.PLUS, following.type); + } + void test_skipSimpleIdentifier_identifier() { + Token following = skip("skipSimpleIdentifier", "i +"); + JUnitTestCase.assertNotNull(following); + JUnitTestCase.assertEquals(TokenType.PLUS, following.type); + } + void test_skipSimpleIdentifier_invalid() { + Token following = skip("skipSimpleIdentifier", "9 +"); + JUnitTestCase.assertNull(following); + } + void test_skipSimpleIdentifier_pseudoKeyword() { + Token following = skip("skipSimpleIdentifier", "as +"); + JUnitTestCase.assertNotNull(following); + JUnitTestCase.assertEquals(TokenType.PLUS, following.type); + } + void test_skipStringLiteral_adjacent() { + Token following = skip("skipStringLiteral", "'a' 'b' +"); + JUnitTestCase.assertNotNull(following); + JUnitTestCase.assertEquals(TokenType.PLUS, following.type); + } + void test_skipStringLiteral_interpolated() { + Token following = skip("skipStringLiteral", "'a\${b}c' +"); + JUnitTestCase.assertNotNull(following); + JUnitTestCase.assertEquals(TokenType.PLUS, following.type); + } + void test_skipStringLiteral_invalid() { + Token following = skip("skipStringLiteral", "a"); + JUnitTestCase.assertNull(following); + } + void test_skipStringLiteral_single() { + Token following = skip("skipStringLiteral", "'a' +"); + JUnitTestCase.assertNotNull(following); + JUnitTestCase.assertEquals(TokenType.PLUS, following.type); + } + void test_skipTypeArgumentList_invalid() { + Token following = skip("skipTypeArgumentList", "+"); + JUnitTestCase.assertNull(following); + } + void test_skipTypeArgumentList_multiple() { + Token following = skip("skipTypeArgumentList", " +"); + JUnitTestCase.assertNotNull(following); + JUnitTestCase.assertEquals(TokenType.PLUS, following.type); + } + void test_skipTypeArgumentList_single() { + Token following = skip("skipTypeArgumentList", " +"); + JUnitTestCase.assertNotNull(following); + JUnitTestCase.assertEquals(TokenType.PLUS, following.type); + } + void test_skipTypeName_invalid() { + Token following = skip("skipTypeName", "+"); + JUnitTestCase.assertNull(following); + } + void test_skipTypeName_parameterized() { + Token following = skip("skipTypeName", "C>> +"); + JUnitTestCase.assertNotNull(following); + JUnitTestCase.assertEquals(TokenType.PLUS, following.type); + } + void test_skipTypeName_simple() { + Token following = skip("skipTypeName", "C +"); + JUnitTestCase.assertNotNull(following); + JUnitTestCase.assertEquals(TokenType.PLUS, following.type); + } + /** + * Invoke the method {@link Parser#computeStringValue(String)} with the given argument. + * @param lexeme the argument to the method + * @return the result of invoking the method + * @throws Exception if the method could not be invoked or throws an exception + */ + String computeStringValue(String lexeme) { + AnalysisErrorListener listener = new AnalysisErrorListener_4(); + Parser parser = new Parser(null, listener); + return invokeParserMethodImpl(parser, "computeStringValue", [lexeme], null) as String; + } + /** + * Invoke the method {@link Parser#createSyntheticIdentifier()} with the parser set to the token + * stream produced by scanning the given source. + * @param source the source to be scanned to produce the token stream being tested + * @return the result of invoking the method + * @throws Exception if the method could not be invoked or throws an exception + */ + SimpleIdentifier createSyntheticIdentifier() { + GatheringErrorListener listener = new GatheringErrorListener(); + return ParserTestCase.invokeParserMethod2("createSyntheticIdentifier", "", listener); + } + /** + * Invoke the method {@link Parser#createSyntheticIdentifier()} with the parser set to the token + * stream produced by scanning the given source. + * @param source the source to be scanned to produce the token stream being tested + * @return the result of invoking the method + * @throws Exception if the method could not be invoked or throws an exception + */ + SimpleStringLiteral createSyntheticStringLiteral() { + GatheringErrorListener listener = new GatheringErrorListener(); + return ParserTestCase.invokeParserMethod2("createSyntheticStringLiteral", "", listener); + } + /** + * Invoke the method {@link Parser#isFunctionDeclaration()} with the parser set to the token + * stream produced by scanning the given source. + * @param source the source to be scanned to produce the token stream being tested + * @return the result of invoking the method + * @throws Exception if the method could not be invoked or throws an exception + */ + bool isFunctionDeclaration(String source) { + GatheringErrorListener listener = new GatheringErrorListener(); + return ParserTestCase.invokeParserMethod2("isFunctionDeclaration", source, listener); + } + /** + * Invoke the method {@link Parser#isFunctionExpression()} with the parser set to the token stream + * produced by scanning the given source. + * @param source the source to be scanned to produce the token stream being tested + * @return the result of invoking the method + * @throws Exception if the method could not be invoked or throws an exception + */ + bool isFunctionExpression(String source) { + GatheringErrorListener listener = new GatheringErrorListener(); + StringScanner scanner = new StringScanner(null, source, listener); + Token tokenStream = scanner.tokenize(); + Parser parser = new Parser(null, listener); + return invokeParserMethodImpl(parser, "isFunctionExpression", [tokenStream], tokenStream) as bool; + } + /** + * Invoke the method {@link Parser#isInitializedVariableDeclaration()} with the parser set to the + * token stream produced by scanning the given source. + * @param source the source to be scanned to produce the token stream being tested + * @return the result of invoking the method + * @throws Exception if the method could not be invoked or throws an exception + */ + bool isInitializedVariableDeclaration(String source) { + GatheringErrorListener listener = new GatheringErrorListener(); + return ParserTestCase.invokeParserMethod2("isInitializedVariableDeclaration", source, listener); + } + /** + * Invoke the method {@link Parser#isSwitchMember()} with the parser set to the token stream + * produced by scanning the given source. + * @param source the source to be scanned to produce the token stream being tested + * @return the result of invoking the method + * @throws Exception if the method could not be invoked or throws an exception + */ + bool isSwitchMember(String source) { + GatheringErrorListener listener = new GatheringErrorListener(); + return ParserTestCase.invokeParserMethod2("isSwitchMember", source, listener); + } + /** + * Invoke a "skip" method in {@link Parser}. The method is assumed to take a token as it's + * parameter and is given the first token in the scanned source. + * @param methodName the name of the method that should be invoked + * @param source the source to be processed by the method + * @return the result of invoking the method + * @throws Exception if the method could not be invoked or throws an exception + * @throws AssertionFailedError if the result is {@code null} + */ + Token skip(String methodName, String source) { + GatheringErrorListener listener = new GatheringErrorListener(); + StringScanner scanner = new StringScanner(null, source, listener); + Token tokenStream = scanner.tokenize(); + Parser parser = new Parser(null, listener); + return invokeParserMethodImpl(parser, methodName, [tokenStream], tokenStream) as Token; + } + static dartSuite() { + _ut.group('SimpleParserTest', () { + _ut.test('test_Parser', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_Parser); + }); + _ut.test('test_computeStringValue_emptyInterpolationPrefix', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_computeStringValue_emptyInterpolationPrefix); + }); + _ut.test('test_computeStringValue_escape_b', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_computeStringValue_escape_b); + }); + _ut.test('test_computeStringValue_escape_f', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_computeStringValue_escape_f); + }); + _ut.test('test_computeStringValue_escape_n', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_computeStringValue_escape_n); + }); + _ut.test('test_computeStringValue_escape_notSpecial', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_computeStringValue_escape_notSpecial); + }); + _ut.test('test_computeStringValue_escape_r', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_computeStringValue_escape_r); + }); + _ut.test('test_computeStringValue_escape_t', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_computeStringValue_escape_t); + }); + _ut.test('test_computeStringValue_escape_u_fixed', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_computeStringValue_escape_u_fixed); + }); + _ut.test('test_computeStringValue_escape_u_variable', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_computeStringValue_escape_u_variable); + }); + _ut.test('test_computeStringValue_escape_v', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_computeStringValue_escape_v); + }); + _ut.test('test_computeStringValue_escape_x', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_computeStringValue_escape_x); + }); + _ut.test('test_computeStringValue_noEscape_single', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_computeStringValue_noEscape_single); + }); + _ut.test('test_computeStringValue_noEscape_triple', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_computeStringValue_noEscape_triple); + }); + _ut.test('test_computeStringValue_raw_single', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_computeStringValue_raw_single); + }); + _ut.test('test_computeStringValue_raw_triple', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_computeStringValue_raw_triple); + }); + _ut.test('test_computeStringValue_raw_withEscape', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_computeStringValue_raw_withEscape); + }); + _ut.test('test_createSyntheticIdentifier', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_createSyntheticIdentifier); + }); + _ut.test('test_createSyntheticStringLiteral', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_createSyntheticStringLiteral); + }); + _ut.test('test_isFunctionDeclaration_nameButNoReturn_block', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_isFunctionDeclaration_nameButNoReturn_block); + }); + _ut.test('test_isFunctionDeclaration_nameButNoReturn_expression', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_isFunctionDeclaration_nameButNoReturn_expression); + }); + _ut.test('test_isFunctionDeclaration_normalReturn_block', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_isFunctionDeclaration_normalReturn_block); + }); + _ut.test('test_isFunctionDeclaration_normalReturn_expression', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_isFunctionDeclaration_normalReturn_expression); + }); + _ut.test('test_isFunctionDeclaration_voidReturn_block', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_isFunctionDeclaration_voidReturn_block); + }); + _ut.test('test_isFunctionDeclaration_voidReturn_expression', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_isFunctionDeclaration_voidReturn_expression); + }); + _ut.test('test_isFunctionExpression_false_noBody', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_isFunctionExpression_false_noBody); + }); + _ut.test('test_isFunctionExpression_false_notParameters', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_isFunctionExpression_false_notParameters); + }); + _ut.test('test_isFunctionExpression_noName_block', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_isFunctionExpression_noName_block); + }); + _ut.test('test_isFunctionExpression_noName_expression', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_isFunctionExpression_noName_expression); + }); + _ut.test('test_isFunctionExpression_parameter_multiple', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_isFunctionExpression_parameter_multiple); + }); + _ut.test('test_isFunctionExpression_parameter_named', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_isFunctionExpression_parameter_named); + }); + _ut.test('test_isFunctionExpression_parameter_optional', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_isFunctionExpression_parameter_optional); + }); + _ut.test('test_isFunctionExpression_parameter_single', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_isFunctionExpression_parameter_single); + }); + _ut.test('test_isFunctionExpression_parameter_typed', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_isFunctionExpression_parameter_typed); + }); + _ut.test('test_isInitializedVariableDeclaration_assignment', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_isInitializedVariableDeclaration_assignment); + }); + _ut.test('test_isInitializedVariableDeclaration_comparison', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_isInitializedVariableDeclaration_comparison); + }); + _ut.test('test_isInitializedVariableDeclaration_conditional', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_isInitializedVariableDeclaration_conditional); + }); + _ut.test('test_isInitializedVariableDeclaration_const_noType_initialized', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_isInitializedVariableDeclaration_const_noType_initialized); + }); + _ut.test('test_isInitializedVariableDeclaration_const_noType_uninitialized', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_isInitializedVariableDeclaration_const_noType_uninitialized); + }); + _ut.test('test_isInitializedVariableDeclaration_const_simpleType_uninitialized', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_isInitializedVariableDeclaration_const_simpleType_uninitialized); + }); + _ut.test('test_isInitializedVariableDeclaration_final_noType_initialized', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_isInitializedVariableDeclaration_final_noType_initialized); + }); + _ut.test('test_isInitializedVariableDeclaration_final_noType_uninitialized', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_isInitializedVariableDeclaration_final_noType_uninitialized); + }); + _ut.test('test_isInitializedVariableDeclaration_final_simpleType_initialized', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_isInitializedVariableDeclaration_final_simpleType_initialized); + }); + _ut.test('test_isInitializedVariableDeclaration_functionDeclaration_typed', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_isInitializedVariableDeclaration_functionDeclaration_typed); + }); + _ut.test('test_isInitializedVariableDeclaration_functionDeclaration_untyped', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_isInitializedVariableDeclaration_functionDeclaration_untyped); + }); + _ut.test('test_isInitializedVariableDeclaration_noType_initialized', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_isInitializedVariableDeclaration_noType_initialized); + }); + _ut.test('test_isInitializedVariableDeclaration_noType_uninitialized', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_isInitializedVariableDeclaration_noType_uninitialized); + }); + _ut.test('test_isInitializedVariableDeclaration_parameterizedType_initialized', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_isInitializedVariableDeclaration_parameterizedType_initialized); + }); + _ut.test('test_isInitializedVariableDeclaration_parameterizedType_uninitialized', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_isInitializedVariableDeclaration_parameterizedType_uninitialized); + }); + _ut.test('test_isInitializedVariableDeclaration_simpleType_initialized', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_isInitializedVariableDeclaration_simpleType_initialized); + }); + _ut.test('test_isInitializedVariableDeclaration_simpleType_uninitialized', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_isInitializedVariableDeclaration_simpleType_uninitialized); + }); + _ut.test('test_isSwitchMember_case_labeled', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_isSwitchMember_case_labeled); + }); + _ut.test('test_isSwitchMember_case_unlabeled', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_isSwitchMember_case_unlabeled); + }); + _ut.test('test_isSwitchMember_default_labeled', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_isSwitchMember_default_labeled); + }); + _ut.test('test_isSwitchMember_default_unlabeled', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_isSwitchMember_default_unlabeled); + }); + _ut.test('test_isSwitchMember_false', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_isSwitchMember_false); + }); + _ut.test('test_parseAdditiveExpression_normal', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parseAdditiveExpression_normal); + }); + _ut.test('test_parseAdditiveExpression_super', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parseAdditiveExpression_super); + }); + _ut.test('test_parseAnnotation_n1', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parseAnnotation_n1); + }); + _ut.test('test_parseAnnotation_n1_a', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parseAnnotation_n1_a); + }); + _ut.test('test_parseAnnotation_n2', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parseAnnotation_n2); + }); + _ut.test('test_parseAnnotation_n2_a', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parseAnnotation_n2_a); + }); + _ut.test('test_parseAnnotation_n3', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parseAnnotation_n3); + }); + _ut.test('test_parseAnnotation_n3_a', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parseAnnotation_n3_a); + }); + _ut.test('test_parseArgumentDefinitionTest', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parseArgumentDefinitionTest); + }); + _ut.test('test_parseArgumentList_empty', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parseArgumentList_empty); + }); + _ut.test('test_parseArgumentList_mixed', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parseArgumentList_mixed); + }); + _ut.test('test_parseArgumentList_noNamed', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parseArgumentList_noNamed); + }); + _ut.test('test_parseArgumentList_onlyNamed', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parseArgumentList_onlyNamed); + }); + _ut.test('test_parseArgument_named', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parseArgument_named); + }); + _ut.test('test_parseArgument_unnamed', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parseArgument_unnamed); + }); + _ut.test('test_parseAssertStatement', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parseAssertStatement); + }); + _ut.test('test_parseAssignableExpression_expression_args_dot', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parseAssignableExpression_expression_args_dot); + }); + _ut.test('test_parseAssignableExpression_expression_dot', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parseAssignableExpression_expression_dot); + }); + _ut.test('test_parseAssignableExpression_expression_index', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parseAssignableExpression_expression_index); + }); + _ut.test('test_parseAssignableExpression_identifier', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parseAssignableExpression_identifier); + }); + _ut.test('test_parseAssignableExpression_identifier_args_dot', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parseAssignableExpression_identifier_args_dot); + }); + _ut.test('test_parseAssignableExpression_identifier_dot', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parseAssignableExpression_identifier_dot); + }); + _ut.test('test_parseAssignableExpression_identifier_index', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parseAssignableExpression_identifier_index); + }); + _ut.test('test_parseAssignableExpression_super_dot', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parseAssignableExpression_super_dot); + }); + _ut.test('test_parseAssignableExpression_super_index', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parseAssignableExpression_super_index); + }); + _ut.test('test_parseAssignableSelector_dot', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parseAssignableSelector_dot); + }); + _ut.test('test_parseAssignableSelector_index', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parseAssignableSelector_index); + }); + _ut.test('test_parseAssignableSelector_none', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parseAssignableSelector_none); + }); + _ut.test('test_parseBitwiseAndExpression_normal', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parseBitwiseAndExpression_normal); + }); + _ut.test('test_parseBitwiseAndExpression_super', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parseBitwiseAndExpression_super); + }); + _ut.test('test_parseBitwiseOrExpression_normal', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parseBitwiseOrExpression_normal); + }); + _ut.test('test_parseBitwiseOrExpression_super', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parseBitwiseOrExpression_super); + }); + _ut.test('test_parseBitwiseXorExpression_normal', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parseBitwiseXorExpression_normal); + }); + _ut.test('test_parseBitwiseXorExpression_super', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parseBitwiseXorExpression_super); + }); + _ut.test('test_parseBlock_empty', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parseBlock_empty); + }); + _ut.test('test_parseBlock_nonEmpty', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parseBlock_nonEmpty); + }); + _ut.test('test_parseBreakStatement_label', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parseBreakStatement_label); + }); + _ut.test('test_parseBreakStatement_noLabel', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parseBreakStatement_noLabel); + }); + _ut.test('test_parseCascadeSection_i', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parseCascadeSection_i); + }); + _ut.test('test_parseCascadeSection_ia', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parseCascadeSection_ia); + }); + _ut.test('test_parseCascadeSection_p', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parseCascadeSection_p); + }); + _ut.test('test_parseCascadeSection_p_assign', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parseCascadeSection_p_assign); + }); + _ut.test('test_parseCascadeSection_p_builtIn', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parseCascadeSection_p_builtIn); + }); + _ut.test('test_parseCascadeSection_pa', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parseCascadeSection_pa); + }); + _ut.test('test_parseCascadeSection_paa', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parseCascadeSection_paa); + }); + _ut.test('test_parseCascadeSection_paapaa', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parseCascadeSection_paapaa); + }); + _ut.test('test_parseCascadeSection_pap', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parseCascadeSection_pap); + }); + _ut.test('test_parseClassDeclaration_abstract', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parseClassDeclaration_abstract); + }); + _ut.test('test_parseClassDeclaration_empty', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parseClassDeclaration_empty); + }); + _ut.test('test_parseClassDeclaration_extends', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parseClassDeclaration_extends); + }); + _ut.test('test_parseClassDeclaration_extendsAndImplements', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parseClassDeclaration_extendsAndImplements); + }); + _ut.test('test_parseClassDeclaration_extendsAndWith', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parseClassDeclaration_extendsAndWith); + }); + _ut.test('test_parseClassDeclaration_extendsAndWithAndImplements', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parseClassDeclaration_extendsAndWithAndImplements); + }); + _ut.test('test_parseClassDeclaration_implements', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parseClassDeclaration_implements); + }); + _ut.test('test_parseClassDeclaration_nonEmpty', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parseClassDeclaration_nonEmpty); + }); + _ut.test('test_parseClassDeclaration_typeParameters', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parseClassDeclaration_typeParameters); + }); + _ut.test('test_parseClassMember_constructor_withInitializers', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parseClassMember_constructor_withInitializers); + }); + _ut.test('test_parseClassMember_field_instance_prefixedType', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parseClassMember_field_instance_prefixedType); + }); + _ut.test('test_parseClassMember_field_namedGet', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parseClassMember_field_namedGet); + }); + _ut.test('test_parseClassMember_field_namedOperator', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parseClassMember_field_namedOperator); + }); + _ut.test('test_parseClassMember_field_namedSet', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parseClassMember_field_namedSet); + }); + _ut.test('test_parseClassMember_getter_void', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parseClassMember_getter_void); + }); + _ut.test('test_parseClassMember_method_external', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parseClassMember_method_external); + }); + _ut.test('test_parseClassMember_method_external_withTypeAndArgs', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parseClassMember_method_external_withTypeAndArgs); + }); + _ut.test('test_parseClassMember_method_get_noType', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parseClassMember_method_get_noType); + }); + _ut.test('test_parseClassMember_method_get_type', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parseClassMember_method_get_type); + }); + _ut.test('test_parseClassMember_method_get_void', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parseClassMember_method_get_void); + }); + _ut.test('test_parseClassMember_method_operator_noType', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parseClassMember_method_operator_noType); + }); + _ut.test('test_parseClassMember_method_operator_type', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parseClassMember_method_operator_type); + }); + _ut.test('test_parseClassMember_method_operator_void', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parseClassMember_method_operator_void); + }); + _ut.test('test_parseClassMember_method_returnType_parameterized', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parseClassMember_method_returnType_parameterized); + }); + _ut.test('test_parseClassMember_method_set_noType', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parseClassMember_method_set_noType); + }); + _ut.test('test_parseClassMember_method_set_type', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parseClassMember_method_set_type); + }); + _ut.test('test_parseClassMember_method_set_void', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parseClassMember_method_set_void); + }); + _ut.test('test_parseClassMember_operator_index', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parseClassMember_operator_index); + }); + _ut.test('test_parseClassMember_operator_indexAssign', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parseClassMember_operator_indexAssign); + }); + _ut.test('test_parseClassMember_redirectingFactory_const', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parseClassMember_redirectingFactory_const); + }); + _ut.test('test_parseClassMember_redirectingFactory_nonConst', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parseClassMember_redirectingFactory_nonConst); + }); + _ut.test('test_parseCombinators_h', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parseCombinators_h); + }); + _ut.test('test_parseCombinators_hs', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parseCombinators_hs); + }); + _ut.test('test_parseCombinators_hshs', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parseCombinators_hshs); + }); + _ut.test('test_parseCombinators_s', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parseCombinators_s); + }); + _ut.test('test_parseCommentAndMetadata_c', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parseCommentAndMetadata_c); + }); + _ut.test('test_parseCommentAndMetadata_cmc', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parseCommentAndMetadata_cmc); + }); + _ut.test('test_parseCommentAndMetadata_cmcm', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parseCommentAndMetadata_cmcm); + }); + _ut.test('test_parseCommentAndMetadata_cmm', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parseCommentAndMetadata_cmm); + }); + _ut.test('test_parseCommentAndMetadata_m', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parseCommentAndMetadata_m); + }); + _ut.test('test_parseCommentAndMetadata_mcm', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parseCommentAndMetadata_mcm); + }); + _ut.test('test_parseCommentAndMetadata_mcmc', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parseCommentAndMetadata_mcmc); + }); + _ut.test('test_parseCommentAndMetadata_mm', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parseCommentAndMetadata_mm); + }); + _ut.test('test_parseCommentAndMetadata_none', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parseCommentAndMetadata_none); + }); + _ut.test('test_parseCommentReference_new_prefixed', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parseCommentReference_new_prefixed); + }); + _ut.test('test_parseCommentReference_new_simple', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parseCommentReference_new_simple); + }); + _ut.test('test_parseCommentReference_prefixed', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parseCommentReference_prefixed); + }); + _ut.test('test_parseCommentReference_simple', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parseCommentReference_simple); + }); + _ut.test('test_parseCommentReferences_multiLine', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parseCommentReferences_multiLine); + }); + _ut.test('test_parseCommentReferences_singleLine', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parseCommentReferences_singleLine); + }); + _ut.test('test_parseCompilationUnitMember_class', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parseCompilationUnitMember_class); + }); + _ut.test('test_parseCompilationUnitMember_constVariable', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parseCompilationUnitMember_constVariable); + }); + _ut.test('test_parseCompilationUnitMember_finalVariable', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parseCompilationUnitMember_finalVariable); + }); + _ut.test('test_parseCompilationUnitMember_function_external_noType', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parseCompilationUnitMember_function_external_noType); + }); + _ut.test('test_parseCompilationUnitMember_function_external_type', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parseCompilationUnitMember_function_external_type); + }); + _ut.test('test_parseCompilationUnitMember_function_noType', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parseCompilationUnitMember_function_noType); + }); + _ut.test('test_parseCompilationUnitMember_function_type', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parseCompilationUnitMember_function_type); + }); + _ut.test('test_parseCompilationUnitMember_getter_external_noType', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parseCompilationUnitMember_getter_external_noType); + }); + _ut.test('test_parseCompilationUnitMember_getter_external_type', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parseCompilationUnitMember_getter_external_type); + }); + _ut.test('test_parseCompilationUnitMember_getter_noType', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parseCompilationUnitMember_getter_noType); + }); + _ut.test('test_parseCompilationUnitMember_getter_type', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parseCompilationUnitMember_getter_type); + }); + _ut.test('test_parseCompilationUnitMember_setter_external_noType', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parseCompilationUnitMember_setter_external_noType); + }); + _ut.test('test_parseCompilationUnitMember_setter_external_type', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parseCompilationUnitMember_setter_external_type); + }); + _ut.test('test_parseCompilationUnitMember_setter_noType', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parseCompilationUnitMember_setter_noType); + }); + _ut.test('test_parseCompilationUnitMember_setter_type', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parseCompilationUnitMember_setter_type); + }); + _ut.test('test_parseCompilationUnitMember_typedef_class_abstract', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parseCompilationUnitMember_typedef_class_abstract); + }); + _ut.test('test_parseCompilationUnitMember_typedef_class_generic', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parseCompilationUnitMember_typedef_class_generic); + }); + _ut.test('test_parseCompilationUnitMember_typedef_class_implements', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parseCompilationUnitMember_typedef_class_implements); + }); + _ut.test('test_parseCompilationUnitMember_typedef_class_noImplements', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parseCompilationUnitMember_typedef_class_noImplements); + }); + _ut.test('test_parseCompilationUnitMember_typedef_function', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parseCompilationUnitMember_typedef_function); + }); + _ut.test('test_parseCompilationUnitMember_variable', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parseCompilationUnitMember_variable); + }); + _ut.test('test_parseCompilationUnit_directives_multiple', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parseCompilationUnit_directives_multiple); + }); + _ut.test('test_parseCompilationUnit_directives_single', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parseCompilationUnit_directives_single); + }); + _ut.test('test_parseCompilationUnit_empty', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parseCompilationUnit_empty); + }); + _ut.test('test_parseCompilationUnit_script', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parseCompilationUnit_script); + }); + _ut.test('test_parseCompilationUnit_topLevelDeclaration', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parseCompilationUnit_topLevelDeclaration); + }); + _ut.test('test_parseConditionalExpression', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parseConditionalExpression); + }); + _ut.test('test_parseConstExpression_instanceCreation', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parseConstExpression_instanceCreation); + }); + _ut.test('test_parseConstExpression_listLiteral_typed', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parseConstExpression_listLiteral_typed); + }); + _ut.test('test_parseConstExpression_listLiteral_untyped', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parseConstExpression_listLiteral_untyped); + }); + _ut.test('test_parseConstExpression_mapLiteral_typed', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parseConstExpression_mapLiteral_typed); + }); + _ut.test('test_parseConstExpression_mapLiteral_untyped', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parseConstExpression_mapLiteral_untyped); + }); + _ut.test('test_parseConstructor', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parseConstructor); + }); + _ut.test('test_parseConstructorFieldInitializer_qualified', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parseConstructorFieldInitializer_qualified); + }); + _ut.test('test_parseConstructorFieldInitializer_unqualified', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parseConstructorFieldInitializer_unqualified); + }); + _ut.test('test_parseConstructorName_named_noPrefix', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parseConstructorName_named_noPrefix); + }); + _ut.test('test_parseConstructorName_named_prefixed', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parseConstructorName_named_prefixed); + }); + _ut.test('test_parseConstructorName_unnamed_noPrefix', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parseConstructorName_unnamed_noPrefix); + }); + _ut.test('test_parseConstructorName_unnamed_prefixed', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parseConstructorName_unnamed_prefixed); + }); + _ut.test('test_parseContinueStatement_label', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parseContinueStatement_label); + }); + _ut.test('test_parseContinueStatement_noLabel', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parseContinueStatement_noLabel); + }); + _ut.test('test_parseDirective_export', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parseDirective_export); + }); + _ut.test('test_parseDirective_import', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parseDirective_import); + }); + _ut.test('test_parseDirective_library', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parseDirective_library); + }); + _ut.test('test_parseDirective_part', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parseDirective_part); + }); + _ut.test('test_parseDirective_partOf', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parseDirective_partOf); + }); + _ut.test('test_parseDoStatement', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parseDoStatement); + }); + _ut.test('test_parseDocumentationComment_block', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parseDocumentationComment_block); + }); + _ut.test('test_parseDocumentationComment_block_withReference', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parseDocumentationComment_block_withReference); + }); + _ut.test('test_parseDocumentationComment_endOfLine', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parseDocumentationComment_endOfLine); + }); + _ut.test('test_parseEmptyStatement', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parseEmptyStatement); + }); + _ut.test('test_parseEqualityExpression_normal', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parseEqualityExpression_normal); + }); + _ut.test('test_parseEqualityExpression_super', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parseEqualityExpression_super); + }); + _ut.test('test_parseExportDirective_hide', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parseExportDirective_hide); + }); + _ut.test('test_parseExportDirective_hide_show', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parseExportDirective_hide_show); + }); + _ut.test('test_parseExportDirective_noCombinator', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parseExportDirective_noCombinator); + }); + _ut.test('test_parseExportDirective_show', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parseExportDirective_show); + }); + _ut.test('test_parseExportDirective_show_hide', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parseExportDirective_show_hide); + }); + _ut.test('test_parseExpressionList_multiple', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parseExpressionList_multiple); + }); + _ut.test('test_parseExpressionList_single', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parseExpressionList_single); + }); + _ut.test('test_parseExpressionWithoutCascade_assign', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parseExpressionWithoutCascade_assign); + }); + _ut.test('test_parseExpressionWithoutCascade_comparison', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parseExpressionWithoutCascade_comparison); + }); + _ut.test('test_parseExpressionWithoutCascade_superMethodInvocation', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parseExpressionWithoutCascade_superMethodInvocation); + }); + _ut.test('test_parseExpression_assign', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parseExpression_assign); + }); + _ut.test('test_parseExpression_comparison', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parseExpression_comparison); + }); + _ut.test('test_parseExpression_invokeFunctionExpression', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parseExpression_invokeFunctionExpression); + }); + _ut.test('test_parseExpression_superMethodInvocation', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parseExpression_superMethodInvocation); + }); + _ut.test('test_parseExtendsClause', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parseExtendsClause); + }); + _ut.test('test_parseFinalConstVarOrType_const_noType', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parseFinalConstVarOrType_const_noType); + }); + _ut.test('test_parseFinalConstVarOrType_const_type', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parseFinalConstVarOrType_const_type); + }); + _ut.test('test_parseFinalConstVarOrType_final_noType', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parseFinalConstVarOrType_final_noType); + }); + _ut.test('test_parseFinalConstVarOrType_final_type', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parseFinalConstVarOrType_final_type); + }); + _ut.test('test_parseFinalConstVarOrType_type_parameterized', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parseFinalConstVarOrType_type_parameterized); + }); + _ut.test('test_parseFinalConstVarOrType_type_prefixed', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parseFinalConstVarOrType_type_prefixed); + }); + _ut.test('test_parseFinalConstVarOrType_type_prefixedAndParameterized', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parseFinalConstVarOrType_type_prefixedAndParameterized); + }); + _ut.test('test_parseFinalConstVarOrType_type_simple', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parseFinalConstVarOrType_type_simple); + }); + _ut.test('test_parseFinalConstVarOrType_var', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parseFinalConstVarOrType_var); + }); + _ut.test('test_parseForStatement_each_identifier', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parseForStatement_each_identifier); + }); + _ut.test('test_parseForStatement_each_noType', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parseForStatement_each_noType); + }); + _ut.test('test_parseForStatement_each_type', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parseForStatement_each_type); + }); + _ut.test('test_parseForStatement_each_var', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parseForStatement_each_var); + }); + _ut.test('test_parseForStatement_loop_c', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parseForStatement_loop_c); + }); + _ut.test('test_parseForStatement_loop_cu', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parseForStatement_loop_cu); + }); + _ut.test('test_parseForStatement_loop_ecu', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parseForStatement_loop_ecu); + }); + _ut.test('test_parseForStatement_loop_i', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parseForStatement_loop_i); + }); + _ut.test('test_parseForStatement_loop_ic', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parseForStatement_loop_ic); + }); + _ut.test('test_parseForStatement_loop_icu', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parseForStatement_loop_icu); + }); + _ut.test('test_parseForStatement_loop_iicuu', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parseForStatement_loop_iicuu); + }); + _ut.test('test_parseForStatement_loop_iu', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parseForStatement_loop_iu); + }); + _ut.test('test_parseForStatement_loop_u', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parseForStatement_loop_u); + }); + _ut.test('test_parseFormalParameterList_empty', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parseFormalParameterList_empty); + }); + _ut.test('test_parseFormalParameterList_named_multiple', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parseFormalParameterList_named_multiple); + }); + _ut.test('test_parseFormalParameterList_named_single', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parseFormalParameterList_named_single); + }); + _ut.test('test_parseFormalParameterList_normal_multiple', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parseFormalParameterList_normal_multiple); + }); + _ut.test('test_parseFormalParameterList_normal_named', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parseFormalParameterList_normal_named); + }); + _ut.test('test_parseFormalParameterList_normal_positional', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parseFormalParameterList_normal_positional); + }); + _ut.test('test_parseFormalParameterList_normal_single', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parseFormalParameterList_normal_single); + }); + _ut.test('test_parseFormalParameterList_positional_multiple', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parseFormalParameterList_positional_multiple); + }); + _ut.test('test_parseFormalParameterList_positional_single', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parseFormalParameterList_positional_single); + }); + _ut.test('test_parseFormalParameter_final_withType_named', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parseFormalParameter_final_withType_named); + }); + _ut.test('test_parseFormalParameter_final_withType_normal', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parseFormalParameter_final_withType_normal); + }); + _ut.test('test_parseFormalParameter_final_withType_positional', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parseFormalParameter_final_withType_positional); + }); + _ut.test('test_parseFormalParameter_nonFinal_withType_named', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parseFormalParameter_nonFinal_withType_named); + }); + _ut.test('test_parseFormalParameter_nonFinal_withType_normal', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parseFormalParameter_nonFinal_withType_normal); + }); + _ut.test('test_parseFormalParameter_nonFinal_withType_positional', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parseFormalParameter_nonFinal_withType_positional); + }); + _ut.test('test_parseFormalParameter_var', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parseFormalParameter_var); + }); + _ut.test('test_parseFormalParameter_var_named', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parseFormalParameter_var_named); + }); + _ut.test('test_parseFormalParameter_var_positional', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parseFormalParameter_var_positional); + }); + _ut.test('test_parseFunctionBody_block', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parseFunctionBody_block); + }); + _ut.test('test_parseFunctionBody_empty', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parseFunctionBody_empty); + }); + _ut.test('test_parseFunctionBody_expression', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parseFunctionBody_expression); + }); + _ut.test('test_parseFunctionDeclarationStatement', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parseFunctionDeclarationStatement); + }); + _ut.test('test_parseFunctionDeclaration_function', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parseFunctionDeclaration_function); + }); + _ut.test('test_parseFunctionDeclaration_function_inStatement', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parseFunctionDeclaration_function_inStatement); + }); + _ut.test('test_parseFunctionDeclaration_getter', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parseFunctionDeclaration_getter); + }); + _ut.test('test_parseFunctionDeclaration_setter', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parseFunctionDeclaration_setter); + }); + _ut.test('test_parseFunctionExpression_body_inExpression', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parseFunctionExpression_body_inExpression); + }); + _ut.test('test_parseFunctionExpression_minimal', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parseFunctionExpression_minimal); + }); + _ut.test('test_parseGetter_nonStatic', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parseGetter_nonStatic); + }); + _ut.test('test_parseGetter_static', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parseGetter_static); + }); + _ut.test('test_parseIdentifierList_multiple', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parseIdentifierList_multiple); + }); + _ut.test('test_parseIdentifierList_single', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parseIdentifierList_single); + }); + _ut.test('test_parseIfStatement_else_block', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parseIfStatement_else_block); + }); + _ut.test('test_parseIfStatement_else_statement', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parseIfStatement_else_statement); + }); + _ut.test('test_parseIfStatement_noElse_block', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parseIfStatement_noElse_block); + }); + _ut.test('test_parseIfStatement_noElse_statement', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parseIfStatement_noElse_statement); + }); + _ut.test('test_parseImplementsClause_multiple', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parseImplementsClause_multiple); + }); + _ut.test('test_parseImplementsClause_single', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parseImplementsClause_single); + }); + _ut.test('test_parseImportDirective_hide', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parseImportDirective_hide); + }); + _ut.test('test_parseImportDirective_noCombinator', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parseImportDirective_noCombinator); + }); + _ut.test('test_parseImportDirective_prefix', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parseImportDirective_prefix); + }); + _ut.test('test_parseImportDirective_prefix_hide_show', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parseImportDirective_prefix_hide_show); + }); + _ut.test('test_parseImportDirective_prefix_show_hide', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parseImportDirective_prefix_show_hide); + }); + _ut.test('test_parseImportDirective_show', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parseImportDirective_show); + }); + _ut.test('test_parseInitializedIdentifierList_type', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parseInitializedIdentifierList_type); + }); + _ut.test('test_parseInitializedIdentifierList_var', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parseInitializedIdentifierList_var); + }); + _ut.test('test_parseInstanceCreationExpression_qualifiedType', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parseInstanceCreationExpression_qualifiedType); + }); + _ut.test('test_parseInstanceCreationExpression_qualifiedType_named', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parseInstanceCreationExpression_qualifiedType_named); + }); + _ut.test('test_parseInstanceCreationExpression_type', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parseInstanceCreationExpression_type); + }); + _ut.test('test_parseInstanceCreationExpression_type_named', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parseInstanceCreationExpression_type_named); + }); + _ut.test('test_parseLibraryDirective', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parseLibraryDirective); + }); + _ut.test('test_parseLibraryIdentifier_multiple', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parseLibraryIdentifier_multiple); + }); + _ut.test('test_parseLibraryIdentifier_single', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parseLibraryIdentifier_single); + }); + _ut.test('test_parseListLiteral_empty_oneToken', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parseListLiteral_empty_oneToken); + }); + _ut.test('test_parseListLiteral_empty_twoTokens', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parseListLiteral_empty_twoTokens); + }); + _ut.test('test_parseListLiteral_multiple', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parseListLiteral_multiple); + }); + _ut.test('test_parseListLiteral_single', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parseListLiteral_single); + }); + _ut.test('test_parseListOrMapLiteral_list_noType', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parseListOrMapLiteral_list_noType); + }); + _ut.test('test_parseListOrMapLiteral_list_type', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parseListOrMapLiteral_list_type); + }); + _ut.test('test_parseListOrMapLiteral_map_noType', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parseListOrMapLiteral_map_noType); + }); + _ut.test('test_parseListOrMapLiteral_map_type', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parseListOrMapLiteral_map_type); + }); + _ut.test('test_parseLogicalAndExpression', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parseLogicalAndExpression); + }); + _ut.test('test_parseLogicalOrExpression', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parseLogicalOrExpression); + }); + _ut.test('test_parseMapLiteralEntry', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parseMapLiteralEntry); + }); + _ut.test('test_parseMapLiteral_empty', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parseMapLiteral_empty); + }); + _ut.test('test_parseMapLiteral_multiple', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parseMapLiteral_multiple); + }); + _ut.test('test_parseMapLiteral_single', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parseMapLiteral_single); + }); + _ut.test('test_parseModifiers_abstract', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parseModifiers_abstract); + }); + _ut.test('test_parseModifiers_const', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parseModifiers_const); + }); + _ut.test('test_parseModifiers_external', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parseModifiers_external); + }); + _ut.test('test_parseModifiers_factory', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parseModifiers_factory); + }); + _ut.test('test_parseModifiers_final', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parseModifiers_final); + }); + _ut.test('test_parseModifiers_static', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parseModifiers_static); + }); + _ut.test('test_parseModifiers_var', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parseModifiers_var); + }); + _ut.test('test_parseMultiplicativeExpression_normal', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parseMultiplicativeExpression_normal); + }); + _ut.test('test_parseMultiplicativeExpression_super', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parseMultiplicativeExpression_super); + }); + _ut.test('test_parseNewExpression', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parseNewExpression); + }); + _ut.test('test_parseNonLabeledStatement_const_list_empty', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parseNonLabeledStatement_const_list_empty); + }); + _ut.test('test_parseNonLabeledStatement_const_list_nonEmpty', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parseNonLabeledStatement_const_list_nonEmpty); + }); + _ut.test('test_parseNonLabeledStatement_const_map_empty', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parseNonLabeledStatement_const_map_empty); + }); + _ut.test('test_parseNonLabeledStatement_const_map_nonEmpty', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parseNonLabeledStatement_const_map_nonEmpty); + }); + _ut.test('test_parseNonLabeledStatement_const_object', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parseNonLabeledStatement_const_object); + }); + _ut.test('test_parseNonLabeledStatement_const_object_named_typeParameters', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parseNonLabeledStatement_const_object_named_typeParameters); + }); + _ut.test('test_parseNonLabeledStatement_constructorInvocation', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parseNonLabeledStatement_constructorInvocation); + }); + _ut.test('test_parseNonLabeledStatement_false', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parseNonLabeledStatement_false); + }); + _ut.test('test_parseNonLabeledStatement_functionDeclaration', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parseNonLabeledStatement_functionDeclaration); + }); + _ut.test('test_parseNonLabeledStatement_functionDeclaration_arguments', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parseNonLabeledStatement_functionDeclaration_arguments); + }); + _ut.test('test_parseNonLabeledStatement_functionExpressionIndex', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parseNonLabeledStatement_functionExpressionIndex); + }); + _ut.test('test_parseNonLabeledStatement_functionInvocation', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parseNonLabeledStatement_functionInvocation); + }); + _ut.test('test_parseNonLabeledStatement_invokeFunctionExpression', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parseNonLabeledStatement_invokeFunctionExpression); + }); + _ut.test('test_parseNonLabeledStatement_null', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parseNonLabeledStatement_null); + }); + _ut.test('test_parseNonLabeledStatement_startingWithBuiltInIdentifier', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parseNonLabeledStatement_startingWithBuiltInIdentifier); + }); + _ut.test('test_parseNonLabeledStatement_true', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parseNonLabeledStatement_true); + }); + _ut.test('test_parseNonLabeledStatement_typeCast', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parseNonLabeledStatement_typeCast); + }); + _ut.test('test_parseNormalFormalParameter_field_const_noType', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parseNormalFormalParameter_field_const_noType); + }); + _ut.test('test_parseNormalFormalParameter_field_const_type', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parseNormalFormalParameter_field_const_type); + }); + _ut.test('test_parseNormalFormalParameter_field_final_noType', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parseNormalFormalParameter_field_final_noType); + }); + _ut.test('test_parseNormalFormalParameter_field_final_type', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parseNormalFormalParameter_field_final_type); + }); + _ut.test('test_parseNormalFormalParameter_field_noType', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parseNormalFormalParameter_field_noType); + }); + _ut.test('test_parseNormalFormalParameter_field_type', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parseNormalFormalParameter_field_type); + }); + _ut.test('test_parseNormalFormalParameter_field_var', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parseNormalFormalParameter_field_var); + }); + _ut.test('test_parseNormalFormalParameter_function_noType', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parseNormalFormalParameter_function_noType); + }); + _ut.test('test_parseNormalFormalParameter_function_type', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parseNormalFormalParameter_function_type); + }); + _ut.test('test_parseNormalFormalParameter_function_void', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parseNormalFormalParameter_function_void); + }); + _ut.test('test_parseNormalFormalParameter_simple_const_noType', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parseNormalFormalParameter_simple_const_noType); + }); + _ut.test('test_parseNormalFormalParameter_simple_const_type', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parseNormalFormalParameter_simple_const_type); + }); + _ut.test('test_parseNormalFormalParameter_simple_final_noType', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parseNormalFormalParameter_simple_final_noType); + }); + _ut.test('test_parseNormalFormalParameter_simple_final_type', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parseNormalFormalParameter_simple_final_type); + }); + _ut.test('test_parseNormalFormalParameter_simple_noType', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parseNormalFormalParameter_simple_noType); + }); + _ut.test('test_parseNormalFormalParameter_simple_type', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parseNormalFormalParameter_simple_type); + }); + _ut.test('test_parseOperator', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parseOperator); + }); + _ut.test('test_parseOptionalReturnType', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parseOptionalReturnType); + }); + _ut.test('test_parsePartDirective_part', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parsePartDirective_part); + }); + _ut.test('test_parsePartDirective_partOf', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parsePartDirective_partOf); + }); + _ut.test('test_parsePostfixExpression_decrement', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parsePostfixExpression_decrement); + }); + _ut.test('test_parsePostfixExpression_increment', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parsePostfixExpression_increment); + }); + _ut.test('test_parsePostfixExpression_none_indexExpression', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parsePostfixExpression_none_indexExpression); + }); + _ut.test('test_parsePostfixExpression_none_methodInvocation', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parsePostfixExpression_none_methodInvocation); + }); + _ut.test('test_parsePostfixExpression_none_propertyAccess', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parsePostfixExpression_none_propertyAccess); + }); + _ut.test('test_parsePrefixedIdentifier_noPrefix', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parsePrefixedIdentifier_noPrefix); + }); + _ut.test('test_parsePrefixedIdentifier_prefix', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parsePrefixedIdentifier_prefix); + }); + _ut.test('test_parsePrimaryExpression_argumentDefinitionTest', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parsePrimaryExpression_argumentDefinitionTest); + }); + _ut.test('test_parsePrimaryExpression_const', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parsePrimaryExpression_const); + }); + _ut.test('test_parsePrimaryExpression_double', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parsePrimaryExpression_double); + }); + _ut.test('test_parsePrimaryExpression_false', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parsePrimaryExpression_false); + }); + _ut.test('test_parsePrimaryExpression_function_arguments', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parsePrimaryExpression_function_arguments); + }); + _ut.test('test_parsePrimaryExpression_function_noArguments', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parsePrimaryExpression_function_noArguments); + }); + _ut.test('test_parsePrimaryExpression_hex', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parsePrimaryExpression_hex); + }); + _ut.test('test_parsePrimaryExpression_identifier', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parsePrimaryExpression_identifier); + }); + _ut.test('test_parsePrimaryExpression_int', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parsePrimaryExpression_int); + }); + _ut.test('test_parsePrimaryExpression_listLiteral', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parsePrimaryExpression_listLiteral); + }); + _ut.test('test_parsePrimaryExpression_listLiteral_index', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parsePrimaryExpression_listLiteral_index); + }); + _ut.test('test_parsePrimaryExpression_listLiteral_typed', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parsePrimaryExpression_listLiteral_typed); + }); + _ut.test('test_parsePrimaryExpression_mapLiteral', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parsePrimaryExpression_mapLiteral); + }); + _ut.test('test_parsePrimaryExpression_mapLiteral_typed', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parsePrimaryExpression_mapLiteral_typed); + }); + _ut.test('test_parsePrimaryExpression_new', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parsePrimaryExpression_new); + }); + _ut.test('test_parsePrimaryExpression_null', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parsePrimaryExpression_null); + }); + _ut.test('test_parsePrimaryExpression_parenthesized', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parsePrimaryExpression_parenthesized); + }); + _ut.test('test_parsePrimaryExpression_string', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parsePrimaryExpression_string); + }); + _ut.test('test_parsePrimaryExpression_super', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parsePrimaryExpression_super); + }); + _ut.test('test_parsePrimaryExpression_this', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parsePrimaryExpression_this); + }); + _ut.test('test_parsePrimaryExpression_true', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parsePrimaryExpression_true); + }); + _ut.test('test_parseRedirectingConstructorInvocation_named', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parseRedirectingConstructorInvocation_named); + }); + _ut.test('test_parseRedirectingConstructorInvocation_unnamed', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parseRedirectingConstructorInvocation_unnamed); + }); + _ut.test('test_parseRelationalExpression_as', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parseRelationalExpression_as); + }); + _ut.test('test_parseRelationalExpression_is', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parseRelationalExpression_is); + }); + _ut.test('test_parseRelationalExpression_isNot', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parseRelationalExpression_isNot); + }); + _ut.test('test_parseRelationalExpression_normal', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parseRelationalExpression_normal); + }); + _ut.test('test_parseRelationalExpression_super', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parseRelationalExpression_super); + }); + _ut.test('test_parseReturnStatement_noValue', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parseReturnStatement_noValue); + }); + _ut.test('test_parseReturnStatement_value', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parseReturnStatement_value); + }); + _ut.test('test_parseReturnType_nonVoid', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parseReturnType_nonVoid); + }); + _ut.test('test_parseReturnType_void', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parseReturnType_void); + }); + _ut.test('test_parseSetter_nonStatic', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parseSetter_nonStatic); + }); + _ut.test('test_parseSetter_static', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parseSetter_static); + }); + _ut.test('test_parseShiftExpression_normal', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parseShiftExpression_normal); + }); + _ut.test('test_parseShiftExpression_super', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parseShiftExpression_super); + }); + _ut.test('test_parseSimpleIdentifier1_normalIdentifier', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parseSimpleIdentifier1_normalIdentifier); + }); + _ut.test('test_parseSimpleIdentifier_builtInIdentifier', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parseSimpleIdentifier_builtInIdentifier); + }); + _ut.test('test_parseSimpleIdentifier_normalIdentifier', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parseSimpleIdentifier_normalIdentifier); + }); + _ut.test('test_parseStatement_functionDeclaration', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parseStatement_functionDeclaration); + }); + _ut.test('test_parseStatement_mulipleLabels', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parseStatement_mulipleLabels); + }); + _ut.test('test_parseStatement_noLabels', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parseStatement_noLabels); + }); + _ut.test('test_parseStatement_singleLabel', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parseStatement_singleLabel); + }); + _ut.test('test_parseStatements_multiple', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parseStatements_multiple); + }); + _ut.test('test_parseStatements_single', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parseStatements_single); + }); + _ut.test('test_parseStringLiteral_adjacent', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parseStringLiteral_adjacent); + }); + _ut.test('test_parseStringLiteral_interpolated', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parseStringLiteral_interpolated); + }); + _ut.test('test_parseStringLiteral_single', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parseStringLiteral_single); + }); + _ut.test('test_parseSuperConstructorInvocation_named', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parseSuperConstructorInvocation_named); + }); + _ut.test('test_parseSuperConstructorInvocation_unnamed', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parseSuperConstructorInvocation_unnamed); + }); + _ut.test('test_parseSwitchStatement_case', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parseSwitchStatement_case); + }); + _ut.test('test_parseSwitchStatement_empty', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parseSwitchStatement_empty); + }); + _ut.test('test_parseSwitchStatement_labeledCase', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parseSwitchStatement_labeledCase); + }); + _ut.test('test_parseSwitchStatement_labeledStatementInCase', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parseSwitchStatement_labeledStatementInCase); + }); + _ut.test('test_parseThrowExpressionWithoutCascade_expression', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parseThrowExpressionWithoutCascade_expression); + }); + _ut.test('test_parseThrowExpressionWithoutCascade_noExpression', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parseThrowExpressionWithoutCascade_noExpression); + }); + _ut.test('test_parseThrowExpression_expression', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parseThrowExpression_expression); + }); + _ut.test('test_parseThrowExpression_noExpression', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parseThrowExpression_noExpression); + }); + _ut.test('test_parseTryStatement_catch', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parseTryStatement_catch); + }); + _ut.test('test_parseTryStatement_catch_finally', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parseTryStatement_catch_finally); + }); + _ut.test('test_parseTryStatement_finally', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parseTryStatement_finally); + }); + _ut.test('test_parseTryStatement_multiple', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parseTryStatement_multiple); + }); + _ut.test('test_parseTryStatement_on', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parseTryStatement_on); + }); + _ut.test('test_parseTryStatement_on_catch', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parseTryStatement_on_catch); + }); + _ut.test('test_parseTryStatement_on_catch_finally', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parseTryStatement_on_catch_finally); + }); + _ut.test('test_parseTypeAlias_noParameters', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parseTypeAlias_noParameters); + }); + _ut.test('test_parseTypeAlias_noReturnType', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parseTypeAlias_noReturnType); + }); + _ut.test('test_parseTypeAlias_parameterizedReturnType', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parseTypeAlias_parameterizedReturnType); + }); + _ut.test('test_parseTypeAlias_parameters', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parseTypeAlias_parameters); + }); + _ut.test('test_parseTypeAlias_typeParameters', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parseTypeAlias_typeParameters); + }); + _ut.test('test_parseTypeAlias_voidReturnType', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parseTypeAlias_voidReturnType); + }); + _ut.test('test_parseTypeArgumentList_multiple', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parseTypeArgumentList_multiple); + }); + _ut.test('test_parseTypeArgumentList_nested', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parseTypeArgumentList_nested); + }); + _ut.test('test_parseTypeArgumentList_single', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parseTypeArgumentList_single); + }); + _ut.test('test_parseTypeName_parameterized', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parseTypeName_parameterized); + }); + _ut.test('test_parseTypeName_simple', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parseTypeName_simple); + }); + _ut.test('test_parseTypeParameterList_multiple', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parseTypeParameterList_multiple); + }); + _ut.test('test_parseTypeParameterList_parameterizedWithTrailingEquals', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parseTypeParameterList_parameterizedWithTrailingEquals); + }); + _ut.test('test_parseTypeParameterList_single', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parseTypeParameterList_single); + }); + _ut.test('test_parseTypeParameterList_withTrailingEquals', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parseTypeParameterList_withTrailingEquals); + }); + _ut.test('test_parseTypeParameter_bounded', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parseTypeParameter_bounded); + }); + _ut.test('test_parseTypeParameter_simple', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parseTypeParameter_simple); + }); + _ut.test('test_parseUnaryExpression_decrement_normal', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parseUnaryExpression_decrement_normal); + }); + _ut.test('test_parseUnaryExpression_decrement_super', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parseUnaryExpression_decrement_super); + }); + _ut.test('test_parseUnaryExpression_increment_normal', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parseUnaryExpression_increment_normal); + }); + _ut.test('test_parseUnaryExpression_minus_normal', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parseUnaryExpression_minus_normal); + }); + _ut.test('test_parseUnaryExpression_minus_super', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parseUnaryExpression_minus_super); + }); + _ut.test('test_parseUnaryExpression_not_normal', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parseUnaryExpression_not_normal); + }); + _ut.test('test_parseUnaryExpression_not_super', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parseUnaryExpression_not_super); + }); + _ut.test('test_parseUnaryExpression_tilda_normal', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parseUnaryExpression_tilda_normal); + }); + _ut.test('test_parseUnaryExpression_tilda_super', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parseUnaryExpression_tilda_super); + }); + _ut.test('test_parseVariableDeclarationList2_type', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parseVariableDeclarationList2_type); + }); + _ut.test('test_parseVariableDeclarationList2_var', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parseVariableDeclarationList2_var); + }); + _ut.test('test_parseVariableDeclarationList_const_noType', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parseVariableDeclarationList_const_noType); + }); + _ut.test('test_parseVariableDeclarationList_const_type', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parseVariableDeclarationList_const_type); + }); + _ut.test('test_parseVariableDeclarationList_final_noType', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parseVariableDeclarationList_final_noType); + }); + _ut.test('test_parseVariableDeclarationList_final_type', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parseVariableDeclarationList_final_type); + }); + _ut.test('test_parseVariableDeclarationList_type_multiple', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parseVariableDeclarationList_type_multiple); + }); + _ut.test('test_parseVariableDeclarationList_type_single', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parseVariableDeclarationList_type_single); + }); + _ut.test('test_parseVariableDeclarationList_var_multiple', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parseVariableDeclarationList_var_multiple); + }); + _ut.test('test_parseVariableDeclarationList_var_single', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parseVariableDeclarationList_var_single); + }); + _ut.test('test_parseVariableDeclarationStatement_multiple', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parseVariableDeclarationStatement_multiple); + }); + _ut.test('test_parseVariableDeclarationStatement_single', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parseVariableDeclarationStatement_single); + }); + _ut.test('test_parseVariableDeclaration_equals', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parseVariableDeclaration_equals); + }); + _ut.test('test_parseVariableDeclaration_noEquals', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parseVariableDeclaration_noEquals); + }); + _ut.test('test_parseWhileStatement', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parseWhileStatement); + }); + _ut.test('test_parseWithClause_multiple', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parseWithClause_multiple); + }); + _ut.test('test_parseWithClause_single', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_parseWithClause_single); + }); + _ut.test('test_skipPrefixedIdentifier_invalid', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_skipPrefixedIdentifier_invalid); + }); + _ut.test('test_skipPrefixedIdentifier_notPrefixed', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_skipPrefixedIdentifier_notPrefixed); + }); + _ut.test('test_skipPrefixedIdentifier_prefixed', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_skipPrefixedIdentifier_prefixed); + }); + _ut.test('test_skipReturnType_invalid', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_skipReturnType_invalid); + }); + _ut.test('test_skipReturnType_type', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_skipReturnType_type); + }); + _ut.test('test_skipReturnType_void', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_skipReturnType_void); + }); + _ut.test('test_skipSimpleIdentifier_identifier', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_skipSimpleIdentifier_identifier); + }); + _ut.test('test_skipSimpleIdentifier_invalid', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_skipSimpleIdentifier_invalid); + }); + _ut.test('test_skipSimpleIdentifier_pseudoKeyword', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_skipSimpleIdentifier_pseudoKeyword); + }); + _ut.test('test_skipStringLiteral_adjacent', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_skipStringLiteral_adjacent); + }); + _ut.test('test_skipStringLiteral_interpolated', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_skipStringLiteral_interpolated); + }); + _ut.test('test_skipStringLiteral_invalid', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_skipStringLiteral_invalid); + }); + _ut.test('test_skipStringLiteral_single', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_skipStringLiteral_single); + }); + _ut.test('test_skipTypeArgumentList_invalid', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_skipTypeArgumentList_invalid); + }); + _ut.test('test_skipTypeArgumentList_multiple', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_skipTypeArgumentList_multiple); + }); + _ut.test('test_skipTypeArgumentList_single', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_skipTypeArgumentList_single); + }); + _ut.test('test_skipTypeName_invalid', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_skipTypeName_invalid); + }); + _ut.test('test_skipTypeName_parameterized', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_skipTypeName_parameterized); + }); + _ut.test('test_skipTypeName_simple', () { + final __test = new SimpleParserTest(); + runJUnitTest(__test, __test.test_skipTypeName_simple); + }); + }); + } +} +class AnalysisErrorListener_4 implements AnalysisErrorListener { + void onError(AnalysisError event) { + JUnitTestCase.fail("Unexpected compilation error: ${event.message} (${event.offset}, ${event.length})"); + } +} +/** + * The class {@code ComplexParserTest} defines parser tests that test the parsing of more complex + * code fragments or the interactions between multiple parsing methods. For example, tests to ensure + * that the precedence of operations is being handled correctly should be defined in this class. + *

+ * Simpler tests should be defined in the class {@link SimpleParserTest}. + */ +class ComplexParserTest extends ParserTestCase { + void test_additiveExpression_normal() { + BinaryExpression expression = ParserTestCase.parseExpression("x + y - z", []); + EngineTestCase.assertInstanceOf(BinaryExpression, expression.leftOperand); + } + void test_additiveExpression_noSpaces() { + BinaryExpression expression = ParserTestCase.parseExpression("i+1", []); + EngineTestCase.assertInstanceOf(SimpleIdentifier, expression.leftOperand); + EngineTestCase.assertInstanceOf(IntegerLiteral, expression.rightOperand); + } + void test_additiveExpression_precedence_multiplicative_left() { + BinaryExpression expression = ParserTestCase.parseExpression("x * y + z", []); + EngineTestCase.assertInstanceOf(BinaryExpression, expression.leftOperand); + } + void test_additiveExpression_precedence_multiplicative_left_withSuper() { + BinaryExpression expression = ParserTestCase.parseExpression("super * y - z", []); + EngineTestCase.assertInstanceOf(BinaryExpression, expression.leftOperand); + } + void test_additiveExpression_precedence_multiplicative_right() { + BinaryExpression expression = ParserTestCase.parseExpression("x + y * z", []); + EngineTestCase.assertInstanceOf(BinaryExpression, expression.rightOperand); + } + void test_additiveExpression_super() { + BinaryExpression expression = ParserTestCase.parseExpression("super + y - z", []); + EngineTestCase.assertInstanceOf(BinaryExpression, expression.leftOperand); + } + void test_assignableExpression_arguments_normal_chain() { + PropertyAccess propertyAccess1 = ParserTestCase.parseExpression("a(b)(c).d(e).f", []); + JUnitTestCase.assertEquals("f", propertyAccess1.propertyName.name); + MethodInvocation invocation2 = EngineTestCase.assertInstanceOf(MethodInvocation, propertyAccess1.target); + JUnitTestCase.assertEquals("d", invocation2.methodName.name); + ArgumentList argumentList2 = invocation2.argumentList; + JUnitTestCase.assertNotNull(argumentList2); + EngineTestCase.assertSize(1, argumentList2.arguments); + FunctionExpressionInvocation invocation3 = EngineTestCase.assertInstanceOf(FunctionExpressionInvocation, invocation2.target); + ArgumentList argumentList3 = invocation3.argumentList; + JUnitTestCase.assertNotNull(argumentList3); + EngineTestCase.assertSize(1, argumentList3.arguments); + MethodInvocation invocation4 = EngineTestCase.assertInstanceOf(MethodInvocation, invocation3.function); + JUnitTestCase.assertEquals("a", invocation4.methodName.name); + ArgumentList argumentList4 = invocation4.argumentList; + JUnitTestCase.assertNotNull(argumentList4); + EngineTestCase.assertSize(1, argumentList4.arguments); + } + void test_assignmentExpression_compound() { + AssignmentExpression expression = ParserTestCase.parseExpression("x = y = 0", []); + EngineTestCase.assertInstanceOf(SimpleIdentifier, expression.leftHandSide); + EngineTestCase.assertInstanceOf(AssignmentExpression, expression.rightHandSide); + } + void test_assignmentExpression_indexExpression() { + AssignmentExpression expression = ParserTestCase.parseExpression("x[1] = 0", []); + EngineTestCase.assertInstanceOf(IndexExpression, expression.leftHandSide); + EngineTestCase.assertInstanceOf(IntegerLiteral, expression.rightHandSide); + } + void test_assignmentExpression_prefixedIdentifier() { + AssignmentExpression expression = ParserTestCase.parseExpression("x.y = 0", []); + EngineTestCase.assertInstanceOf(PrefixedIdentifier, expression.leftHandSide); + EngineTestCase.assertInstanceOf(IntegerLiteral, expression.rightHandSide); + } + void test_assignmentExpression_propertyAccess() { + AssignmentExpression expression = ParserTestCase.parseExpression("super.y = 0", []); + EngineTestCase.assertInstanceOf(PropertyAccess, expression.leftHandSide); + EngineTestCase.assertInstanceOf(IntegerLiteral, expression.rightHandSide); + } + void test_bitwiseAndExpression_normal() { + BinaryExpression expression = ParserTestCase.parseExpression("x & y & z", []); + EngineTestCase.assertInstanceOf(BinaryExpression, expression.leftOperand); + } + void test_bitwiseAndExpression_precedence_equality_left() { + BinaryExpression expression = ParserTestCase.parseExpression("x == y & z", []); + EngineTestCase.assertInstanceOf(BinaryExpression, expression.leftOperand); + } + void test_bitwiseAndExpression_precedence_equality_right() { + BinaryExpression expression = ParserTestCase.parseExpression("x & y == z", []); + EngineTestCase.assertInstanceOf(BinaryExpression, expression.rightOperand); + } + void test_bitwiseAndExpression_super() { + BinaryExpression expression = ParserTestCase.parseExpression("super & y & z", []); + EngineTestCase.assertInstanceOf(BinaryExpression, expression.leftOperand); + } + void test_bitwiseOrExpression_normal() { + BinaryExpression expression = ParserTestCase.parseExpression("x | y | z", []); + EngineTestCase.assertInstanceOf(BinaryExpression, expression.leftOperand); + } + void test_bitwiseOrExpression_precedence_xor_left() { + BinaryExpression expression = ParserTestCase.parseExpression("x ^ y | z", []); + EngineTestCase.assertInstanceOf(BinaryExpression, expression.leftOperand); + } + void test_bitwiseOrExpression_precedence_xor_right() { + BinaryExpression expression = ParserTestCase.parseExpression("x | y ^ z", []); + EngineTestCase.assertInstanceOf(BinaryExpression, expression.rightOperand); + } + void test_bitwiseOrExpression_super() { + BinaryExpression expression = ParserTestCase.parseExpression("super | y | z", []); + EngineTestCase.assertInstanceOf(BinaryExpression, expression.leftOperand); + } + void test_bitwiseXorExpression_normal() { + BinaryExpression expression = ParserTestCase.parseExpression("x ^ y ^ z", []); + EngineTestCase.assertInstanceOf(BinaryExpression, expression.leftOperand); + } + void test_bitwiseXorExpression_precedence_and_left() { + BinaryExpression expression = ParserTestCase.parseExpression("x & y ^ z", []); + EngineTestCase.assertInstanceOf(BinaryExpression, expression.leftOperand); + } + void test_bitwiseXorExpression_precedence_and_right() { + BinaryExpression expression = ParserTestCase.parseExpression("x ^ y & z", []); + EngineTestCase.assertInstanceOf(BinaryExpression, expression.rightOperand); + } + void test_bitwiseXorExpression_super() { + BinaryExpression expression = ParserTestCase.parseExpression("super ^ y ^ z", []); + EngineTestCase.assertInstanceOf(BinaryExpression, expression.leftOperand); + } + void test_conditionalExpression_precedence_argumentDefinitionTest_not() { + ConditionalExpression conditional = ParserTestCase.parseExpression("!?a?!?b:!?c", []); + EngineTestCase.assertInstanceOf(PrefixExpression, conditional.condition); + EngineTestCase.assertInstanceOf(ArgumentDefinitionTest, (conditional.condition as PrefixExpression).operand); + EngineTestCase.assertInstanceOf(PrefixExpression, conditional.thenExpression); + EngineTestCase.assertInstanceOf(ArgumentDefinitionTest, (conditional.thenExpression as PrefixExpression).operand); + EngineTestCase.assertInstanceOf(PrefixExpression, conditional.elseExpression); + EngineTestCase.assertInstanceOf(ArgumentDefinitionTest, (conditional.elseExpression as PrefixExpression).operand); + } + void test_conditionalExpression_precedence_logicalOrExpression() { + ConditionalExpression expression = ParserTestCase.parseExpression("a | b ? y : z", []); + EngineTestCase.assertInstanceOf(BinaryExpression, expression.condition); + } + void test_constructor_initializer_withParenthesizedExpression() { + CompilationUnit unit = ParserTestCase.parseCompilationUnit(EngineTestCase.createSource(["class C {", " C() :", " this.a = (b == null ? c : d) {", " }", "}"]), []); + NodeList declarations2 = unit.declarations; + EngineTestCase.assertSize(1, declarations2); + } + void test_equalityExpression_normal() { + BinaryExpression expression = ParserTestCase.parseExpression("x == y != z", []); + EngineTestCase.assertInstanceOf(BinaryExpression, expression.leftOperand); + } + void test_equalityExpression_precedence_relational_left() { + BinaryExpression expression = ParserTestCase.parseExpression("x is y == z", []); + EngineTestCase.assertInstanceOf(IsExpression, expression.leftOperand); + } + void test_equalityExpression_precedence_relational_right() { + BinaryExpression expression = ParserTestCase.parseExpression("x == y is z", []); + EngineTestCase.assertInstanceOf(IsExpression, expression.rightOperand); + } + void test_equalityExpression_super() { + BinaryExpression expression = ParserTestCase.parseExpression("super == y != z", []); + EngineTestCase.assertInstanceOf(BinaryExpression, expression.leftOperand); + } + void test_logicalAndExpression() { + BinaryExpression expression = ParserTestCase.parseExpression("x && y && z", []); + EngineTestCase.assertInstanceOf(BinaryExpression, expression.leftOperand); + } + void test_logicalAndExpression_precedence_bitwiseOr_left() { + BinaryExpression expression = ParserTestCase.parseExpression("x | y && z", []); + EngineTestCase.assertInstanceOf(BinaryExpression, expression.leftOperand); + } + void test_logicalAndExpression_precedence_bitwiseOr_right() { + BinaryExpression expression = ParserTestCase.parseExpression("x && y | z", []); + EngineTestCase.assertInstanceOf(BinaryExpression, expression.rightOperand); + } + void test_logicalOrExpression() { + BinaryExpression expression = ParserTestCase.parseExpression("x || y || z", []); + EngineTestCase.assertInstanceOf(BinaryExpression, expression.leftOperand); + } + void test_logicalOrExpression_precedence_logicalAnd_left() { + BinaryExpression expression = ParserTestCase.parseExpression("x && y || z", []); + EngineTestCase.assertInstanceOf(BinaryExpression, expression.leftOperand); + } + void test_logicalOrExpression_precedence_logicalAnd_right() { + BinaryExpression expression = ParserTestCase.parseExpression("x || y && z", []); + EngineTestCase.assertInstanceOf(BinaryExpression, expression.rightOperand); + } + void test_multipleLabels_statement() { + LabeledStatement statement = ParserTestCase.parseStatement("a: b: c: return x;", []); + EngineTestCase.assertSize(3, statement.labels); + EngineTestCase.assertInstanceOf(ReturnStatement, statement.statement); + } + void test_multiplicativeExpression_normal() { + BinaryExpression expression = ParserTestCase.parseExpression("x * y / z", []); + EngineTestCase.assertInstanceOf(BinaryExpression, expression.leftOperand); + } + void test_multiplicativeExpression_precedence_unary_left() { + BinaryExpression expression = ParserTestCase.parseExpression("-x * y", []); + EngineTestCase.assertInstanceOf(PrefixExpression, expression.leftOperand); + } + void test_multiplicativeExpression_precedence_unary_right() { + BinaryExpression expression = ParserTestCase.parseExpression("x * -y", []); + EngineTestCase.assertInstanceOf(PrefixExpression, expression.rightOperand); + } + void test_multiplicativeExpression_super() { + BinaryExpression expression = ParserTestCase.parseExpression("super * y / z", []); + EngineTestCase.assertInstanceOf(BinaryExpression, expression.leftOperand); + } + void test_relationalExpression_precedence_shift_right() { + IsExpression expression = ParserTestCase.parseExpression("x << y is z", []); + EngineTestCase.assertInstanceOf(BinaryExpression, expression.expression); + } + void test_shiftExpression_normal() { + BinaryExpression expression = ParserTestCase.parseExpression("x >> 4 << 3", []); + EngineTestCase.assertInstanceOf(BinaryExpression, expression.leftOperand); + } + void test_shiftExpression_precedence_additive_left() { + BinaryExpression expression = ParserTestCase.parseExpression("x + y << z", []); + EngineTestCase.assertInstanceOf(BinaryExpression, expression.leftOperand); + } + void test_shiftExpression_precedence_additive_right() { + BinaryExpression expression = ParserTestCase.parseExpression("x << y + z", []); + EngineTestCase.assertInstanceOf(BinaryExpression, expression.rightOperand); + } + void test_shiftExpression_super() { + BinaryExpression expression = ParserTestCase.parseExpression("super >> 4 << 3", []); + EngineTestCase.assertInstanceOf(BinaryExpression, expression.leftOperand); + } + static dartSuite() { + _ut.group('ComplexParserTest', () { + _ut.test('test_additiveExpression_noSpaces', () { + final __test = new ComplexParserTest(); + runJUnitTest(__test, __test.test_additiveExpression_noSpaces); + }); + _ut.test('test_additiveExpression_normal', () { + final __test = new ComplexParserTest(); + runJUnitTest(__test, __test.test_additiveExpression_normal); + }); + _ut.test('test_additiveExpression_precedence_multiplicative_left', () { + final __test = new ComplexParserTest(); + runJUnitTest(__test, __test.test_additiveExpression_precedence_multiplicative_left); + }); + _ut.test('test_additiveExpression_precedence_multiplicative_left_withSuper', () { + final __test = new ComplexParserTest(); + runJUnitTest(__test, __test.test_additiveExpression_precedence_multiplicative_left_withSuper); + }); + _ut.test('test_additiveExpression_precedence_multiplicative_right', () { + final __test = new ComplexParserTest(); + runJUnitTest(__test, __test.test_additiveExpression_precedence_multiplicative_right); + }); + _ut.test('test_additiveExpression_super', () { + final __test = new ComplexParserTest(); + runJUnitTest(__test, __test.test_additiveExpression_super); + }); + _ut.test('test_assignableExpression_arguments_normal_chain', () { + final __test = new ComplexParserTest(); + runJUnitTest(__test, __test.test_assignableExpression_arguments_normal_chain); + }); + _ut.test('test_assignmentExpression_compound', () { + final __test = new ComplexParserTest(); + runJUnitTest(__test, __test.test_assignmentExpression_compound); + }); + _ut.test('test_assignmentExpression_indexExpression', () { + final __test = new ComplexParserTest(); + runJUnitTest(__test, __test.test_assignmentExpression_indexExpression); + }); + _ut.test('test_assignmentExpression_prefixedIdentifier', () { + final __test = new ComplexParserTest(); + runJUnitTest(__test, __test.test_assignmentExpression_prefixedIdentifier); + }); + _ut.test('test_assignmentExpression_propertyAccess', () { + final __test = new ComplexParserTest(); + runJUnitTest(__test, __test.test_assignmentExpression_propertyAccess); + }); + _ut.test('test_bitwiseAndExpression_normal', () { + final __test = new ComplexParserTest(); + runJUnitTest(__test, __test.test_bitwiseAndExpression_normal); + }); + _ut.test('test_bitwiseAndExpression_precedence_equality_left', () { + final __test = new ComplexParserTest(); + runJUnitTest(__test, __test.test_bitwiseAndExpression_precedence_equality_left); + }); + _ut.test('test_bitwiseAndExpression_precedence_equality_right', () { + final __test = new ComplexParserTest(); + runJUnitTest(__test, __test.test_bitwiseAndExpression_precedence_equality_right); + }); + _ut.test('test_bitwiseAndExpression_super', () { + final __test = new ComplexParserTest(); + runJUnitTest(__test, __test.test_bitwiseAndExpression_super); + }); + _ut.test('test_bitwiseOrExpression_normal', () { + final __test = new ComplexParserTest(); + runJUnitTest(__test, __test.test_bitwiseOrExpression_normal); + }); + _ut.test('test_bitwiseOrExpression_precedence_xor_left', () { + final __test = new ComplexParserTest(); + runJUnitTest(__test, __test.test_bitwiseOrExpression_precedence_xor_left); + }); + _ut.test('test_bitwiseOrExpression_precedence_xor_right', () { + final __test = new ComplexParserTest(); + runJUnitTest(__test, __test.test_bitwiseOrExpression_precedence_xor_right); + }); + _ut.test('test_bitwiseOrExpression_super', () { + final __test = new ComplexParserTest(); + runJUnitTest(__test, __test.test_bitwiseOrExpression_super); + }); + _ut.test('test_bitwiseXorExpression_normal', () { + final __test = new ComplexParserTest(); + runJUnitTest(__test, __test.test_bitwiseXorExpression_normal); + }); + _ut.test('test_bitwiseXorExpression_precedence_and_left', () { + final __test = new ComplexParserTest(); + runJUnitTest(__test, __test.test_bitwiseXorExpression_precedence_and_left); + }); + _ut.test('test_bitwiseXorExpression_precedence_and_right', () { + final __test = new ComplexParserTest(); + runJUnitTest(__test, __test.test_bitwiseXorExpression_precedence_and_right); + }); + _ut.test('test_bitwiseXorExpression_super', () { + final __test = new ComplexParserTest(); + runJUnitTest(__test, __test.test_bitwiseXorExpression_super); + }); + _ut.test('test_conditionalExpression_precedence_argumentDefinitionTest_not', () { + final __test = new ComplexParserTest(); + runJUnitTest(__test, __test.test_conditionalExpression_precedence_argumentDefinitionTest_not); + }); + _ut.test('test_conditionalExpression_precedence_logicalOrExpression', () { + final __test = new ComplexParserTest(); + runJUnitTest(__test, __test.test_conditionalExpression_precedence_logicalOrExpression); + }); + _ut.test('test_constructor_initializer_withParenthesizedExpression', () { + final __test = new ComplexParserTest(); + runJUnitTest(__test, __test.test_constructor_initializer_withParenthesizedExpression); + }); + _ut.test('test_equalityExpression_normal', () { + final __test = new ComplexParserTest(); + runJUnitTest(__test, __test.test_equalityExpression_normal); + }); + _ut.test('test_equalityExpression_precedence_relational_left', () { + final __test = new ComplexParserTest(); + runJUnitTest(__test, __test.test_equalityExpression_precedence_relational_left); + }); + _ut.test('test_equalityExpression_precedence_relational_right', () { + final __test = new ComplexParserTest(); + runJUnitTest(__test, __test.test_equalityExpression_precedence_relational_right); + }); + _ut.test('test_equalityExpression_super', () { + final __test = new ComplexParserTest(); + runJUnitTest(__test, __test.test_equalityExpression_super); + }); + _ut.test('test_logicalAndExpression', () { + final __test = new ComplexParserTest(); + runJUnitTest(__test, __test.test_logicalAndExpression); + }); + _ut.test('test_logicalAndExpression_precedence_bitwiseOr_left', () { + final __test = new ComplexParserTest(); + runJUnitTest(__test, __test.test_logicalAndExpression_precedence_bitwiseOr_left); + }); + _ut.test('test_logicalAndExpression_precedence_bitwiseOr_right', () { + final __test = new ComplexParserTest(); + runJUnitTest(__test, __test.test_logicalAndExpression_precedence_bitwiseOr_right); + }); + _ut.test('test_logicalOrExpression', () { + final __test = new ComplexParserTest(); + runJUnitTest(__test, __test.test_logicalOrExpression); + }); + _ut.test('test_logicalOrExpression_precedence_logicalAnd_left', () { + final __test = new ComplexParserTest(); + runJUnitTest(__test, __test.test_logicalOrExpression_precedence_logicalAnd_left); + }); + _ut.test('test_logicalOrExpression_precedence_logicalAnd_right', () { + final __test = new ComplexParserTest(); + runJUnitTest(__test, __test.test_logicalOrExpression_precedence_logicalAnd_right); + }); + _ut.test('test_multipleLabels_statement', () { + final __test = new ComplexParserTest(); + runJUnitTest(__test, __test.test_multipleLabels_statement); + }); + _ut.test('test_multiplicativeExpression_normal', () { + final __test = new ComplexParserTest(); + runJUnitTest(__test, __test.test_multiplicativeExpression_normal); + }); + _ut.test('test_multiplicativeExpression_precedence_unary_left', () { + final __test = new ComplexParserTest(); + runJUnitTest(__test, __test.test_multiplicativeExpression_precedence_unary_left); + }); + _ut.test('test_multiplicativeExpression_precedence_unary_right', () { + final __test = new ComplexParserTest(); + runJUnitTest(__test, __test.test_multiplicativeExpression_precedence_unary_right); + }); + _ut.test('test_multiplicativeExpression_super', () { + final __test = new ComplexParserTest(); + runJUnitTest(__test, __test.test_multiplicativeExpression_super); + }); + _ut.test('test_relationalExpression_precedence_shift_right', () { + final __test = new ComplexParserTest(); + runJUnitTest(__test, __test.test_relationalExpression_precedence_shift_right); + }); + _ut.test('test_shiftExpression_normal', () { + final __test = new ComplexParserTest(); + runJUnitTest(__test, __test.test_shiftExpression_normal); + }); + _ut.test('test_shiftExpression_precedence_additive_left', () { + final __test = new ComplexParserTest(); + runJUnitTest(__test, __test.test_shiftExpression_precedence_additive_left); + }); + _ut.test('test_shiftExpression_precedence_additive_right', () { + final __test = new ComplexParserTest(); + runJUnitTest(__test, __test.test_shiftExpression_precedence_additive_right); + }); + _ut.test('test_shiftExpression_super', () { + final __test = new ComplexParserTest(); + runJUnitTest(__test, __test.test_shiftExpression_super); + }); + }); + } +} +/** + * The class {@code ErrorParserTest} defines parser tests that test the parsing of code to ensure + * that errors are correctly reported, and in some cases, not reported. + */ +class ErrorParserTest extends ParserTestCase { + void fail_expectedListOrMapLiteral() { + TypedLiteral literal = ParserTestCase.parse3("parseListOrMapLiteral", [null], "1", [ParserErrorCode.EXPECTED_LIST_OR_MAP_LITERAL]); + JUnitTestCase.assertTrue(literal.isSynthetic()); + } + void fail_illegalAssignmentToNonAssignable_superAssigned() { + ParserTestCase.parse4("parseExpression", "super = x;", [ParserErrorCode.ILLEGAL_ASSIGNMENT_TO_NON_ASSIGNABLE]); + } + void fail_invalidCommentReference__new_nonIdentifier() { + ParserTestCase.parse3("parseCommentReference", ["new 42", 0], "", [ParserErrorCode.INVALID_COMMENT_REFERENCE]); + } + void fail_invalidCommentReference__new_tooMuch() { + ParserTestCase.parse3("parseCommentReference", ["new a.b.c.d", 0], "", [ParserErrorCode.INVALID_COMMENT_REFERENCE]); + } + void fail_invalidCommentReference__nonNew_nonIdentifier() { + ParserTestCase.parse3("parseCommentReference", ["42", 0], "", [ParserErrorCode.INVALID_COMMENT_REFERENCE]); + } + void fail_invalidCommentReference__nonNew_tooMuch() { + ParserTestCase.parse3("parseCommentReference", ["a.b.c.d", 0], "", [ParserErrorCode.INVALID_COMMENT_REFERENCE]); + } + void fail_missingFunctionParameters_local_nonVoid_block() { + ParserTestCase.parse4("parseStatement", "int f { return x;}", [ParserErrorCode.MISSING_FUNCTION_PARAMETERS]); + } + void fail_missingFunctionParameters_local_nonVoid_expression() { + ParserTestCase.parse4("parseStatement", "int f => x;", [ParserErrorCode.MISSING_FUNCTION_PARAMETERS]); + } + void fail_unexpectedToken_invalidPostfixExpression() { + ParserTestCase.parse4("parseExpression", "f()++", [ParserErrorCode.UNEXPECTED_TOKEN]); + } + void fail_voidVariable_initializer() { + ParserTestCase.parse4("parseStatement", "void x = 0;", [ParserErrorCode.VOID_VARIABLE]); + } + void fail_voidVariable_noInitializer() { + ParserTestCase.parse4("parseStatement", "void x;", [ParserErrorCode.VOID_VARIABLE]); + } + void test_abstractClassMember_constructor() { + ParserTestCase.parse3("parseClassMember", ["C"], "abstract C.c();", [ParserErrorCode.ABSTRACT_CLASS_MEMBER]); + } + void test_abstractClassMember_field() { + ParserTestCase.parse3("parseClassMember", ["C"], "abstract C f;", [ParserErrorCode.ABSTRACT_CLASS_MEMBER]); + } + void test_abstractClassMember_getter() { + ParserTestCase.parse3("parseClassMember", ["C"], "abstract get m;", [ParserErrorCode.ABSTRACT_CLASS_MEMBER]); + } + void test_abstractClassMember_method() { + ParserTestCase.parse3("parseClassMember", ["C"], "abstract m();", [ParserErrorCode.ABSTRACT_CLASS_MEMBER]); + } + void test_abstractClassMember_setter() { + ParserTestCase.parse3("parseClassMember", ["C"], "abstract set m(v);", [ParserErrorCode.ABSTRACT_CLASS_MEMBER]); + } + void test_abstractTopLevelFunction_function() { + ParserTestCase.parse4("parseCompilationUnit", "abstract f(v) {}", [ParserErrorCode.ABSTRACT_TOP_LEVEL_FUNCTION]); + } + void test_abstractTopLevelFunction_getter() { + ParserTestCase.parse4("parseCompilationUnit", "abstract get m {}", [ParserErrorCode.ABSTRACT_TOP_LEVEL_FUNCTION]); + } + void test_abstractTopLevelFunction_setter() { + ParserTestCase.parse4("parseCompilationUnit", "abstract set m(v) {}", [ParserErrorCode.ABSTRACT_TOP_LEVEL_FUNCTION]); + } + void test_abstractTopLevelVariable() { + ParserTestCase.parse4("parseCompilationUnit", "abstract C f;", [ParserErrorCode.ABSTRACT_TOP_LEVEL_VARIABLE]); + } + void test_abstractTypeDef() { + ParserTestCase.parse4("parseCompilationUnit", "abstract typedef F();", [ParserErrorCode.ABSTRACT_TYPEDEF]); + } + void test_breakOutsideOfLoop_breakInDoStatement() { + ParserTestCase.parse4("parseDoStatement", "do {break;} while (x);", []); + } + void test_breakOutsideOfLoop_breakInForStatement() { + ParserTestCase.parse4("parseForStatement", "for (; x;) {break;}", []); + } + void test_breakOutsideOfLoop_breakInIfStatement() { + ParserTestCase.parse4("parseIfStatement", "if (x) {break;}", [ParserErrorCode.BREAK_OUTSIDE_OF_LOOP]); + } + void test_breakOutsideOfLoop_breakInSwitchStatement() { + ParserTestCase.parse4("parseSwitchStatement", "switch (x) {case 1: break;}", []); + } + void test_breakOutsideOfLoop_breakInWhileStatement() { + ParserTestCase.parse4("parseWhileStatement", "while (x) {break;}", []); + } + void test_breakOutsideOfLoop_functionExpression_inALoop() { + ParserTestCase.parse4("parseStatement", "for(; x;) {() {break;};}", [ParserErrorCode.BREAK_OUTSIDE_OF_LOOP]); + } + void test_breakOutsideOfLoop_functionExpression_withALoop() { + ParserTestCase.parse4("parseStatement", "() {for (; x;) {break;}};", []); + } + void test_builtInIdentifierAsTypeDefName() { + ParserTestCase.parse3("parseTypeAlias", [emptyCommentAndMetadata()], "typedef as();", [ParserErrorCode.BUILT_IN_IDENTIFIER_AS_TYPEDEF_NAME]); + } + void test_builtInIdentifierAsTypeName() { + ParserTestCase.parse3("parseClassDeclaration", [emptyCommentAndMetadata(), null], "class as {}", [ParserErrorCode.BUILT_IN_IDENTIFIER_AS_TYPE_NAME]); + } + void test_builtInIdentifierAsTypeVariableName() { + ParserTestCase.parse4("parseTypeParameter", "as", [ParserErrorCode.BUILT_IN_IDENTIFIER_AS_TYPE_VARIABLE_NAME]); + } + void test_constAndFinal() { + ParserTestCase.parse3("parseClassMember", ["C"], "const final int x;", [ParserErrorCode.CONST_AND_FINAL]); + } + void test_constAndVar() { + ParserTestCase.parse3("parseClassMember", ["C"], "const var x;", [ParserErrorCode.CONST_AND_VAR]); + } + void test_constClass() { + ParserTestCase.parse4("parseCompilationUnit", "const class C {}", [ParserErrorCode.CONST_CLASS]); + } + void test_constMethod() { + ParserTestCase.parse3("parseClassMember", ["C"], "const int m() {}", [ParserErrorCode.CONST_METHOD]); + } + void test_constTypedef() { + ParserTestCase.parse4("parseCompilationUnit", "const typedef F();", [ParserErrorCode.CONST_TYPEDEF]); + } + void test_continueOutsideOfLoop_continueInDoStatement() { + ParserTestCase.parse4("parseDoStatement", "do {continue;} while (x);", []); + } + void test_continueOutsideOfLoop_continueInForStatement() { + ParserTestCase.parse4("parseForStatement", "for (; x;) {continue;}", []); + } + void test_continueOutsideOfLoop_continueInIfStatement() { + ParserTestCase.parse4("parseIfStatement", "if (x) {continue;}", [ParserErrorCode.CONTINUE_OUTSIDE_OF_LOOP]); + } + void test_continueOutsideOfLoop_continueInSwitchStatement() { + ParserTestCase.parse4("parseSwitchStatement", "switch (x) {case 1: continue a;}", []); + } + void test_continueOutsideOfLoop_continueInWhileStatement() { + ParserTestCase.parse4("parseWhileStatement", "while (x) {continue;}", []); + } + void test_continueOutsideOfLoop_functionExpression_inALoop() { + ParserTestCase.parse4("parseStatement", "for(; x;) {() {continue;};}", [ParserErrorCode.CONTINUE_OUTSIDE_OF_LOOP]); + } + void test_continueOutsideOfLoop_functionExpression_withALoop() { + ParserTestCase.parse4("parseStatement", "() {for (; x;) {continue;}};", []); + } + void test_continueWithoutLabelInCase_error() { + ParserTestCase.parse4("parseSwitchStatement", "switch (x) {case 1: continue;}", [ParserErrorCode.CONTINUE_WITHOUT_LABEL_IN_CASE]); + } + void test_continueWithoutLabelInCase_noError() { + ParserTestCase.parse4("parseSwitchStatement", "switch (x) {case 1: continue a;}", []); + } + void test_continueWithoutLabelInCase_noError_switchInLoop() { + ParserTestCase.parse4("parseWhileStatement", "while (a) { switch (b) {default: continue;}}", []); + } + void test_directiveAfterDeclaration_classBeforeDirective() { + CompilationUnit unit = ParserTestCase.parse4("parseCompilationUnit", "class Foo{} library l;", [ParserErrorCode.DIRECTIVE_AFTER_DECLARATION]); + JUnitTestCase.assertNotNull(unit); + } + void test_directiveAfterDeclaration_classBetweenDirectives() { + CompilationUnit unit = ParserTestCase.parse4("parseCompilationUnit", "library l;\nclass Foo{}\npart 'a.dart';", [ParserErrorCode.DIRECTIVE_AFTER_DECLARATION]); + JUnitTestCase.assertNotNull(unit); + } + void test_duplicatedModifier_const() { + ParserTestCase.parse3("parseClassMember", ["C"], "const const m;", [ParserErrorCode.DUPLICATED_MODIFIER]); + } + void test_duplicatedModifier_external() { + ParserTestCase.parse3("parseClassMember", ["C"], "external external f();", [ParserErrorCode.DUPLICATED_MODIFIER]); + } + void test_duplicatedModifier_factory() { + ParserTestCase.parse3("parseClassMember", ["C"], "factory factory C() {}", [ParserErrorCode.DUPLICATED_MODIFIER]); + } + void test_duplicatedModifier_final() { + ParserTestCase.parse3("parseClassMember", ["C"], "final final m;", [ParserErrorCode.DUPLICATED_MODIFIER]); + } + void test_duplicatedModifier_static() { + ParserTestCase.parse3("parseClassMember", ["C"], "static static m;", [ParserErrorCode.DUPLICATED_MODIFIER]); + } + void test_duplicatedModifier_var() { + ParserTestCase.parse3("parseClassMember", ["C"], "var var m;", [ParserErrorCode.DUPLICATED_MODIFIER]); + } + void test_duplicateLabelInSwitchStatement() { + ParserTestCase.parse4("parseSwitchStatement", "switch (e) {l1: case 0: break; l1: case 1: break;}", [ParserErrorCode.DUPLICATE_LABEL_IN_SWITCH_STATEMENT]); + } + void test_expectedCaseOrDefault() { + ParserTestCase.parse4("parseSwitchStatement", "switch (e) {break;}", [ParserErrorCode.EXPECTED_CASE_OR_DEFAULT]); + } + void test_expectedStringLiteral() { + StringLiteral expression = ParserTestCase.parse4("parseStringLiteral", "1", [ParserErrorCode.EXPECTED_STRING_LITERAL]); + JUnitTestCase.assertTrue(expression.isSynthetic()); + } + void test_expectedToken_commaMissingInArgumentList() { + ParserTestCase.parse4("parseArgumentList", "(x, y z)", [ParserErrorCode.EXPECTED_TOKEN]); + } + void test_expectedToken_semicolonMissingAfterExpression() { + ParserTestCase.parse4("parseStatement", "x", [ParserErrorCode.EXPECTED_TOKEN]); + } + void test_expectedToken_whileMissingInDoStatement() { + ParserTestCase.parse4("parseStatement", "do {} (x);", [ParserErrorCode.EXPECTED_TOKEN]); + } + void test_exportDirectiveAfterPartDirective() { + ParserTestCase.parse4("parseCompilationUnit", "part 'a.dart'; export 'b.dart';", [ParserErrorCode.EXPORT_DIRECTIVE_AFTER_PART_DIRECTIVE]); + } + void test_externalAfterConst() { + ParserTestCase.parse3("parseClassMember", ["C"], "const external C();", [ParserErrorCode.EXTERNAL_AFTER_CONST]); + } + void test_externalAfterFactory() { + ParserTestCase.parse3("parseClassMember", ["C"], "factory external C();", [ParserErrorCode.EXTERNAL_AFTER_FACTORY]); + } + void test_externalAfterStatic() { + ParserTestCase.parse3("parseClassMember", ["C"], "static external int m();", [ParserErrorCode.EXTERNAL_AFTER_STATIC]); + } + void test_externalClass() { + ParserTestCase.parse4("parseCompilationUnit", "external class C {}", [ParserErrorCode.EXTERNAL_CLASS]); + } + void test_externalConstructorWithBody_factory() { + ParserTestCase.parse3("parseClassMember", ["C"], "external factory C() {}", [ParserErrorCode.EXTERNAL_CONSTRUCTOR_WITH_BODY]); + } + void test_externalConstructorWithBody_named() { + ParserTestCase.parse3("parseClassMember", ["C"], "external C.c() {}", [ParserErrorCode.EXTERNAL_CONSTRUCTOR_WITH_BODY]); + } + void test_externalField_const() { + ParserTestCase.parse3("parseClassMember", ["C"], "external const A f;", [ParserErrorCode.EXTERNAL_FIELD]); + } + void test_externalField_final() { + ParserTestCase.parse3("parseClassMember", ["C"], "external final A f;", [ParserErrorCode.EXTERNAL_FIELD]); + } + void test_externalField_static() { + ParserTestCase.parse3("parseClassMember", ["C"], "external static A f;", [ParserErrorCode.EXTERNAL_FIELD]); + } + void test_externalField_typed() { + ParserTestCase.parse3("parseClassMember", ["C"], "external A f;", [ParserErrorCode.EXTERNAL_FIELD]); + } + void test_externalField_untyped() { + ParserTestCase.parse3("parseClassMember", ["C"], "external var f;", [ParserErrorCode.EXTERNAL_FIELD]); + } + void test_externalGetterWithBody() { + ParserTestCase.parse3("parseClassMember", ["C"], "external int get x {}", [ParserErrorCode.EXTERNAL_GETTER_WITH_BODY]); + } + void test_externalMethodWithBody() { + ParserTestCase.parse3("parseClassMember", ["C"], "external m() {}", [ParserErrorCode.EXTERNAL_METHOD_WITH_BODY]); + } + void test_externalOperatorWithBody() { + ParserTestCase.parse3("parseClassMember", ["C"], "external operator +(int value) {}", [ParserErrorCode.EXTERNAL_OPERATOR_WITH_BODY]); + } + void test_externalSetterWithBody() { + ParserTestCase.parse3("parseClassMember", ["C"], "external set x(int value) {}", [ParserErrorCode.EXTERNAL_SETTER_WITH_BODY]); + } + void test_externalTypedef() { + ParserTestCase.parse4("parseCompilationUnit", "external typedef F();", [ParserErrorCode.EXTERNAL_TYPEDEF]); + } + void test_factoryTopLevelDeclaration_class() { + ParserTestCase.parse4("parseCompilationUnit", "factory class C {}", [ParserErrorCode.FACTORY_TOP_LEVEL_DECLARATION]); + } + void test_factoryTopLevelDeclaration_typedef() { + ParserTestCase.parse4("parseCompilationUnit", "factory typedef F();", [ParserErrorCode.FACTORY_TOP_LEVEL_DECLARATION]); + } + void test_fieldInitializerOutsideConstructor() { + ParserTestCase.parse3("parseClassMember", ["C"], "void m(this.x);", [ParserErrorCode.FIELD_INITIALIZER_OUTSIDE_CONSTRUCTOR]); + } + void test_finalAndVar() { + ParserTestCase.parse3("parseClassMember", ["C"], "final var x;", [ParserErrorCode.FINAL_AND_VAR]); + } + void test_finalClass() { + ParserTestCase.parse4("parseCompilationUnit", "final class C {}", [ParserErrorCode.FINAL_CLASS]); + } + void test_finalConstructor() { + ParserTestCase.parse3("parseClassMember", ["C"], "final C() {}", [ParserErrorCode.FINAL_CONSTRUCTOR]); + } + void test_finalMethod() { + ParserTestCase.parse3("parseClassMember", ["C"], "final int m() {}", [ParserErrorCode.FINAL_METHOD]); + } + void test_finalTypedef() { + ParserTestCase.parse4("parseCompilationUnit", "final typedef F();", [ParserErrorCode.FINAL_TYPEDEF]); + } + void test_getterWithParameters() { + ParserTestCase.parse3("parseClassMember", ["C"], "int get x() {}", [ParserErrorCode.GETTER_WITH_PARAMETERS]); + } + void test_illegalAssignmentToNonAssignable_superAssigned() { + ParserTestCase.parse4("parseExpression", "super = x;", [ParserErrorCode.MISSING_ASSIGNABLE_SELECTOR, ParserErrorCode.ILLEGAL_ASSIGNMENT_TO_NON_ASSIGNABLE]); + } + void test_implementsBeforeExtends() { + ParserTestCase.parse4("parseCompilationUnit", "class A implements B extends C {}", [ParserErrorCode.IMPLEMENTS_BEFORE_EXTENDS]); + } + void test_implementsBeforeWith() { + ParserTestCase.parse4("parseCompilationUnit", "class A extends B implements C with D {}", [ParserErrorCode.IMPLEMENTS_BEFORE_WITH]); + } + void test_importDirectiveAfterPartDirective() { + ParserTestCase.parse4("parseCompilationUnit", "part 'a.dart'; import 'b.dart';", [ParserErrorCode.IMPORT_DIRECTIVE_AFTER_PART_DIRECTIVE]); + } + void test_initializedVariableInForEach() { + ParserTestCase.parse4("parseForStatement", "for (int a = 0 in foo) {}", [ParserErrorCode.INITIALIZED_VARIABLE_IN_FOR_EACH]); + } + void test_invalidCodePoint() { + ParserTestCase.parse4("parseStringLiteral", "'\\uD900'", [ParserErrorCode.INVALID_CODE_POINT]); + } + void test_invalidHexEscape_invalidDigit() { + ParserTestCase.parse4("parseStringLiteral", "'\\x0 a'", [ParserErrorCode.INVALID_HEX_ESCAPE]); + } + void test_invalidHexEscape_tooFewDigits() { + ParserTestCase.parse4("parseStringLiteral", "'\\x0'", [ParserErrorCode.INVALID_HEX_ESCAPE]); + } + void test_invalidOperatorForSuper() { + ParserTestCase.parse4("parseUnaryExpression", "++super", [ParserErrorCode.INVALID_OPERATOR_FOR_SUPER]); + } + void test_invalidUnicodeEscape_incomplete_noDigits() { + ParserTestCase.parse4("parseStringLiteral", "'\\u{'", [ParserErrorCode.INVALID_UNICODE_ESCAPE]); + } + void test_invalidUnicodeEscape_incomplete_someDigits() { + ParserTestCase.parse4("parseStringLiteral", "'\\u{0A'", [ParserErrorCode.INVALID_UNICODE_ESCAPE]); + } + void test_invalidUnicodeEscape_invalidDigit() { + ParserTestCase.parse4("parseStringLiteral", "'\\u0 a'", [ParserErrorCode.INVALID_UNICODE_ESCAPE]); + } + void test_invalidUnicodeEscape_tooFewDigits_fixed() { + ParserTestCase.parse4("parseStringLiteral", "'\\u04'", [ParserErrorCode.INVALID_UNICODE_ESCAPE]); + } + void test_invalidUnicodeEscape_tooFewDigits_variable() { + ParserTestCase.parse4("parseStringLiteral", "'\\u{}'", [ParserErrorCode.INVALID_UNICODE_ESCAPE]); + } + void test_invalidUnicodeEscape_tooManyDigits_variable() { + ParserTestCase.parse4("parseStringLiteral", "'\\u{12345678}'", [ParserErrorCode.INVALID_UNICODE_ESCAPE, ParserErrorCode.INVALID_CODE_POINT]); + } + void test_libraryDirectiveNotFirst() { + ParserTestCase.parse4("parseCompilationUnit", "import 'x.dart'; library l;", [ParserErrorCode.LIBRARY_DIRECTIVE_NOT_FIRST]); + } + void test_libraryDirectiveNotFirst_afterPart() { + CompilationUnit unit = ParserTestCase.parse4("parseCompilationUnit", "part 'a.dart';\nlibrary l;", [ParserErrorCode.LIBRARY_DIRECTIVE_NOT_FIRST]); + JUnitTestCase.assertNotNull(unit); + } + void test_missingAssignableSelector_identifiersAssigned() { + ParserTestCase.parse4("parseExpression", "x.y = y;", []); + } + void test_missingAssignableSelector_primarySelectorPostfix() { + ParserTestCase.parse4("parseExpression", "x(y)(z)++", [ParserErrorCode.MISSING_ASSIGNABLE_SELECTOR]); + } + void test_missingAssignableSelector_selector() { + ParserTestCase.parse4("parseExpression", "x(y)(z).a++", []); + } + void test_missingAssignableSelector_superPrimaryExpression() { + SuperExpression expression = ParserTestCase.parse4("parsePrimaryExpression", "super", [ParserErrorCode.MISSING_ASSIGNABLE_SELECTOR]); + JUnitTestCase.assertNotNull(expression.keyword); + } + void test_missingAssignableSelector_superPropertyAccessAssigned() { + ParserTestCase.parse4("parseExpression", "super.x = x;", []); + } + void test_missingCatchOrFinally() { + TryStatement statement = ParserTestCase.parse4("parseTryStatement", "try {}", [ParserErrorCode.MISSING_CATCH_OR_FINALLY]); + JUnitTestCase.assertNotNull(statement); + } + void test_missingClassBody() { + ParserTestCase.parse4("parseCompilationUnit", "class A class B {}", [ParserErrorCode.MISSING_CLASS_BODY]); + } + void test_missingConstFinalVarOrType() { + ParserTestCase.parse3("parseFinalConstVarOrType", [false], "a;", [ParserErrorCode.MISSING_CONST_FINAL_VAR_OR_TYPE]); + } + void test_missingFunctionBody_emptyNotAllowed() { + ParserTestCase.parse3("parseFunctionBody", [false, false], ";", [ParserErrorCode.MISSING_FUNCTION_BODY]); + } + void test_missingFunctionBody_invalid() { + ParserTestCase.parse3("parseFunctionBody", [false, false], "return 0;", [ParserErrorCode.MISSING_FUNCTION_BODY]); + } + void test_missingFunctionParameters_local_void_block() { + ParserTestCase.parse4("parseStatement", "void f { return x;}", [ParserErrorCode.MISSING_FUNCTION_PARAMETERS]); + } + void test_missingFunctionParameters_local_void_expression() { + ParserTestCase.parse4("parseStatement", "void f => x;", [ParserErrorCode.MISSING_FUNCTION_PARAMETERS]); + } + void test_missingFunctionParameters_topLevel_nonVoid_block() { + ParserTestCase.parse4("parseCompilationUnit", "int f { return x;}", [ParserErrorCode.MISSING_FUNCTION_PARAMETERS]); + } + void test_missingFunctionParameters_topLevel_nonVoid_expression() { + ParserTestCase.parse4("parseCompilationUnit", "int f => x;", [ParserErrorCode.MISSING_FUNCTION_PARAMETERS]); + } + void test_missingFunctionParameters_topLevel_void_block() { + ParserTestCase.parse4("parseCompilationUnit", "void f { return x;}", [ParserErrorCode.MISSING_FUNCTION_PARAMETERS]); + } + void test_missingFunctionParameters_topLevel_void_expression() { + ParserTestCase.parse4("parseCompilationUnit", "void f => x;", [ParserErrorCode.MISSING_FUNCTION_PARAMETERS]); + } + void test_missingIdentifier_functionDeclaration_returnTypeWithoutName() { + ParserTestCase.parse4("parseFunctionDeclarationStatement", "A () {}", [ParserErrorCode.MISSING_IDENTIFIER]); + } + void test_missingIdentifier_number() { + SimpleIdentifier expression = ParserTestCase.parse4("parseSimpleIdentifier", "1", [ParserErrorCode.MISSING_IDENTIFIER]); + JUnitTestCase.assertTrue(expression.isSynthetic()); + } + void test_missingNameInLibraryDirective() { + CompilationUnit unit = ParserTestCase.parse4("parseCompilationUnit", "library;", [ParserErrorCode.MISSING_NAME_IN_LIBRARY_DIRECTIVE]); + JUnitTestCase.assertNotNull(unit); + } + void test_missingNameInPartOfDirective() { + CompilationUnit unit = ParserTestCase.parse4("parseCompilationUnit", "part of;", [ParserErrorCode.MISSING_NAME_IN_PART_OF_DIRECTIVE]); + JUnitTestCase.assertNotNull(unit); + } + void test_missingTypedefParameters_nonVoid() { + ParserTestCase.parse4("parseCompilationUnit", "typedef int F;", [ParserErrorCode.MISSING_TYPEDEF_PARAMETERS]); + } + void test_missingTypedefParameters_typeParameters() { + ParserTestCase.parse4("parseCompilationUnit", "typedef F;", [ParserErrorCode.MISSING_TYPEDEF_PARAMETERS]); + } + void test_missingTypedefParameters_void() { + ParserTestCase.parse4("parseCompilationUnit", "typedef void F;", [ParserErrorCode.MISSING_TYPEDEF_PARAMETERS]); + } + void test_missingVariableInForEach() { + ParserTestCase.parse4("parseForStatement", "for (a < b in foo) {}", [ParserErrorCode.MISSING_VARIABLE_IN_FOR_EACH]); + } + void test_mixedParameterGroups_namedPositional() { + ParserTestCase.parse4("parseFormalParameterList", "(a, {b}, [c])", [ParserErrorCode.MIXED_PARAMETER_GROUPS]); + } + void test_mixedParameterGroups_positionalNamed() { + ParserTestCase.parse4("parseFormalParameterList", "(a, [b], {c})", [ParserErrorCode.MIXED_PARAMETER_GROUPS]); + } + void test_multipleLibraryDirectives() { + ParserTestCase.parse4("parseCompilationUnit", "library l; library m;", [ParserErrorCode.MULTIPLE_LIBRARY_DIRECTIVES]); + } + void test_multipleNamedParameterGroups() { + ParserTestCase.parse4("parseFormalParameterList", "(a, {b}, {c})", [ParserErrorCode.MULTIPLE_NAMED_PARAMETER_GROUPS]); + } + void test_multiplePartOfDirectives() { + ParserTestCase.parse4("parseCompilationUnit", "part of l; part of m;", [ParserErrorCode.MULTIPLE_PART_OF_DIRECTIVES]); + } + void test_multiplePositionalParameterGroups() { + ParserTestCase.parse4("parseFormalParameterList", "(a, [b], [c])", [ParserErrorCode.MULTIPLE_POSITIONAL_PARAMETER_GROUPS]); + } + void test_multipleVariablesInForEach() { + ParserTestCase.parse4("parseForStatement", "for (int a, b in foo) {}", [ParserErrorCode.MULTIPLE_VARIABLES_IN_FOR_EACH]); + } + void test_namedParameterOutsideGroup() { + ParserTestCase.parse4("parseFormalParameterList", "(a, b : 0)", [ParserErrorCode.NAMED_PARAMETER_OUTSIDE_GROUP]); + } + void test_nonConstructorFactory_field() { + ParserTestCase.parse3("parseClassMember", ["C"], "factory int x;", [ParserErrorCode.NON_CONSTRUCTOR_FACTORY]); + } + void test_nonConstructorFactory_method() { + ParserTestCase.parse3("parseClassMember", ["C"], "factory int m() {}", [ParserErrorCode.NON_CONSTRUCTOR_FACTORY]); + } + void test_nonIdentifierLibraryName_library() { + CompilationUnit unit = ParserTestCase.parse4("parseCompilationUnit", "library 'lib';", [ParserErrorCode.NON_IDENTIFIER_LIBRARY_NAME]); + JUnitTestCase.assertNotNull(unit); + } + void test_nonIdentifierLibraryName_partOf() { + CompilationUnit unit = ParserTestCase.parse4("parseCompilationUnit", "part of 'lib';", [ParserErrorCode.NON_IDENTIFIER_LIBRARY_NAME]); + JUnitTestCase.assertNotNull(unit); + } + void test_nonPartOfDirectiveInPart_after() { + ParserTestCase.parse4("parseCompilationUnit", "part of l; part 'f.dart';", [ParserErrorCode.NON_PART_OF_DIRECTIVE_IN_PART]); + } + void test_nonPartOfDirectiveInPart_before() { + ParserTestCase.parse4("parseCompilationUnit", "part 'f.dart'; part of m;", [ParserErrorCode.NON_PART_OF_DIRECTIVE_IN_PART]); + } + void test_nonUserDefinableOperator() { + ParserTestCase.parse3("parseClassMember", ["C"], "operator +=(int x) => x + 1;", [ParserErrorCode.NON_USER_DEFINABLE_OPERATOR]); + } + void test_positionalAfterNamedArgument() { + ParserTestCase.parse4("parseArgumentList", "(x: 1, 2)", [ParserErrorCode.POSITIONAL_AFTER_NAMED_ARGUMENT]); + } + void test_positionalParameterOutsideGroup() { + ParserTestCase.parse4("parseFormalParameterList", "(a, b = 0)", [ParserErrorCode.POSITIONAL_PARAMETER_OUTSIDE_GROUP]); + } + void test_staticAfterConst() { + ParserTestCase.parse3("parseClassMember", ["C"], "final static int f;", [ParserErrorCode.STATIC_AFTER_FINAL]); + } + void test_staticAfterFinal() { + ParserTestCase.parse3("parseClassMember", ["C"], "const static int f;", [ParserErrorCode.STATIC_AFTER_CONST]); + } + void test_staticAfterVar() { + ParserTestCase.parse3("parseClassMember", ["C"], "var static f;", [ParserErrorCode.STATIC_AFTER_VAR]); + } + void test_staticConstructor() { + ParserTestCase.parse3("parseClassMember", ["C"], "static C.m() {}", [ParserErrorCode.STATIC_CONSTRUCTOR]); + } + void test_staticOperator_noReturnType() { + ParserTestCase.parse3("parseClassMember", ["C"], "static operator +(int x) => x + 1;", [ParserErrorCode.STATIC_OPERATOR]); + } + void test_staticOperator_returnType() { + ParserTestCase.parse3("parseClassMember", ["C"], "static int operator +(int x) => x + 1;", [ParserErrorCode.STATIC_OPERATOR]); + } + void test_staticTopLevelDeclaration_class() { + ParserTestCase.parse4("parseCompilationUnit", "static class C {}", [ParserErrorCode.STATIC_TOP_LEVEL_DECLARATION]); + } + void test_staticTopLevelDeclaration_typedef() { + ParserTestCase.parse4("parseCompilationUnit", "static typedef F();", [ParserErrorCode.STATIC_TOP_LEVEL_DECLARATION]); + } + void test_staticTopLevelDeclaration_variable() { + ParserTestCase.parse4("parseCompilationUnit", "static var x;", [ParserErrorCode.STATIC_TOP_LEVEL_DECLARATION]); + } + void test_unexpectedToken_semicolonBetweenClassMembers() { + ParserTestCase.parse3("parseClassDeclaration", [emptyCommentAndMetadata(), null], "class C { int x; ; int y;}", [ParserErrorCode.UNEXPECTED_TOKEN]); + } + void test_unexpectedToken_semicolonBetweenCompilationUnitMembers() { + ParserTestCase.parse4("parseCompilationUnit", "int x; ; int y;", [ParserErrorCode.UNEXPECTED_TOKEN]); + } + void test_useOfUnaryPlusOperator() { + ParserTestCase.parse4("parseUnaryExpression", "+x", [ParserErrorCode.USE_OF_UNARY_PLUS_OPERATOR]); + } + void test_varClass() { + ParserTestCase.parse4("parseCompilationUnit", "var class C {}", [ParserErrorCode.VAR_CLASS]); + } + void test_varConstructor() { + ParserTestCase.parse3("parseClassMember", ["C"], "var C() {}", [ParserErrorCode.CONSTRUCTOR_WITH_RETURN_TYPE]); + } + void test_varReturnType() { + ParserTestCase.parse3("parseClassMember", ["C"], "var m() {}", [ParserErrorCode.VAR_RETURN_TYPE]); + } + void test_varTypedef() { + ParserTestCase.parse4("parseCompilationUnit", "var typedef F();", [ParserErrorCode.VAR_TYPEDEF]); + } + void test_voidField_initializer() { + ParserTestCase.parse3("parseClassMember", ["C"], "void x = 0;", [ParserErrorCode.VOID_VARIABLE]); + } + void test_voidField_noInitializer() { + ParserTestCase.parse3("parseClassMember", ["C"], "void x;", [ParserErrorCode.VOID_VARIABLE]); + } + void test_voidParameter() { + ParserTestCase.parse4("parseNormalFormalParameter", "void a)", [ParserErrorCode.VOID_PARAMETER]); + } + void test_withBeforeExtends() { + ParserTestCase.parse4("parseCompilationUnit", "class A with B extends C {}", [ParserErrorCode.WITH_BEFORE_EXTENDS]); + } + void test_withWithoutExtends() { + ParserTestCase.parse3("parseClassDeclaration", [emptyCommentAndMetadata(), null], "class A with B, C {}", [ParserErrorCode.WITH_WITHOUT_EXTENDS]); + } + void test_wrongSeparatorForNamedParameter() { + ParserTestCase.parse4("parseFormalParameterList", "(a, {b = 0})", [ParserErrorCode.WRONG_SEPARATOR_FOR_NAMED_PARAMETER]); + } + void test_wrongSeparatorForPositionalParameter() { + ParserTestCase.parse4("parseFormalParameterList", "(a, [b : 0])", [ParserErrorCode.WRONG_SEPARATOR_FOR_POSITIONAL_PARAMETER]); + } + static dartSuite() { + _ut.group('ErrorParserTest', () { + _ut.test('test_abstractClassMember_constructor', () { + final __test = new ErrorParserTest(); + runJUnitTest(__test, __test.test_abstractClassMember_constructor); + }); + _ut.test('test_abstractClassMember_field', () { + final __test = new ErrorParserTest(); + runJUnitTest(__test, __test.test_abstractClassMember_field); + }); + _ut.test('test_abstractClassMember_getter', () { + final __test = new ErrorParserTest(); + runJUnitTest(__test, __test.test_abstractClassMember_getter); + }); + _ut.test('test_abstractClassMember_method', () { + final __test = new ErrorParserTest(); + runJUnitTest(__test, __test.test_abstractClassMember_method); + }); + _ut.test('test_abstractClassMember_setter', () { + final __test = new ErrorParserTest(); + runJUnitTest(__test, __test.test_abstractClassMember_setter); + }); + _ut.test('test_abstractTopLevelFunction_function', () { + final __test = new ErrorParserTest(); + runJUnitTest(__test, __test.test_abstractTopLevelFunction_function); + }); + _ut.test('test_abstractTopLevelFunction_getter', () { + final __test = new ErrorParserTest(); + runJUnitTest(__test, __test.test_abstractTopLevelFunction_getter); + }); + _ut.test('test_abstractTopLevelFunction_setter', () { + final __test = new ErrorParserTest(); + runJUnitTest(__test, __test.test_abstractTopLevelFunction_setter); + }); + _ut.test('test_abstractTopLevelVariable', () { + final __test = new ErrorParserTest(); + runJUnitTest(__test, __test.test_abstractTopLevelVariable); + }); + _ut.test('test_abstractTypeDef', () { + final __test = new ErrorParserTest(); + runJUnitTest(__test, __test.test_abstractTypeDef); + }); + _ut.test('test_breakOutsideOfLoop_breakInDoStatement', () { + final __test = new ErrorParserTest(); + runJUnitTest(__test, __test.test_breakOutsideOfLoop_breakInDoStatement); + }); + _ut.test('test_breakOutsideOfLoop_breakInForStatement', () { + final __test = new ErrorParserTest(); + runJUnitTest(__test, __test.test_breakOutsideOfLoop_breakInForStatement); + }); + _ut.test('test_breakOutsideOfLoop_breakInIfStatement', () { + final __test = new ErrorParserTest(); + runJUnitTest(__test, __test.test_breakOutsideOfLoop_breakInIfStatement); + }); + _ut.test('test_breakOutsideOfLoop_breakInSwitchStatement', () { + final __test = new ErrorParserTest(); + runJUnitTest(__test, __test.test_breakOutsideOfLoop_breakInSwitchStatement); + }); + _ut.test('test_breakOutsideOfLoop_breakInWhileStatement', () { + final __test = new ErrorParserTest(); + runJUnitTest(__test, __test.test_breakOutsideOfLoop_breakInWhileStatement); + }); + _ut.test('test_breakOutsideOfLoop_functionExpression_inALoop', () { + final __test = new ErrorParserTest(); + runJUnitTest(__test, __test.test_breakOutsideOfLoop_functionExpression_inALoop); + }); + _ut.test('test_breakOutsideOfLoop_functionExpression_withALoop', () { + final __test = new ErrorParserTest(); + runJUnitTest(__test, __test.test_breakOutsideOfLoop_functionExpression_withALoop); + }); + _ut.test('test_builtInIdentifierAsTypeDefName', () { + final __test = new ErrorParserTest(); + runJUnitTest(__test, __test.test_builtInIdentifierAsTypeDefName); + }); + _ut.test('test_builtInIdentifierAsTypeName', () { + final __test = new ErrorParserTest(); + runJUnitTest(__test, __test.test_builtInIdentifierAsTypeName); + }); + _ut.test('test_builtInIdentifierAsTypeVariableName', () { + final __test = new ErrorParserTest(); + runJUnitTest(__test, __test.test_builtInIdentifierAsTypeVariableName); + }); + _ut.test('test_constAndFinal', () { + final __test = new ErrorParserTest(); + runJUnitTest(__test, __test.test_constAndFinal); + }); + _ut.test('test_constAndVar', () { + final __test = new ErrorParserTest(); + runJUnitTest(__test, __test.test_constAndVar); + }); + _ut.test('test_constClass', () { + final __test = new ErrorParserTest(); + runJUnitTest(__test, __test.test_constClass); + }); + _ut.test('test_constMethod', () { + final __test = new ErrorParserTest(); + runJUnitTest(__test, __test.test_constMethod); + }); + _ut.test('test_constTypedef', () { + final __test = new ErrorParserTest(); + runJUnitTest(__test, __test.test_constTypedef); + }); + _ut.test('test_continueOutsideOfLoop_continueInDoStatement', () { + final __test = new ErrorParserTest(); + runJUnitTest(__test, __test.test_continueOutsideOfLoop_continueInDoStatement); + }); + _ut.test('test_continueOutsideOfLoop_continueInForStatement', () { + final __test = new ErrorParserTest(); + runJUnitTest(__test, __test.test_continueOutsideOfLoop_continueInForStatement); + }); + _ut.test('test_continueOutsideOfLoop_continueInIfStatement', () { + final __test = new ErrorParserTest(); + runJUnitTest(__test, __test.test_continueOutsideOfLoop_continueInIfStatement); + }); + _ut.test('test_continueOutsideOfLoop_continueInSwitchStatement', () { + final __test = new ErrorParserTest(); + runJUnitTest(__test, __test.test_continueOutsideOfLoop_continueInSwitchStatement); + }); + _ut.test('test_continueOutsideOfLoop_continueInWhileStatement', () { + final __test = new ErrorParserTest(); + runJUnitTest(__test, __test.test_continueOutsideOfLoop_continueInWhileStatement); + }); + _ut.test('test_continueOutsideOfLoop_functionExpression_inALoop', () { + final __test = new ErrorParserTest(); + runJUnitTest(__test, __test.test_continueOutsideOfLoop_functionExpression_inALoop); + }); + _ut.test('test_continueOutsideOfLoop_functionExpression_withALoop', () { + final __test = new ErrorParserTest(); + runJUnitTest(__test, __test.test_continueOutsideOfLoop_functionExpression_withALoop); + }); + _ut.test('test_continueWithoutLabelInCase_error', () { + final __test = new ErrorParserTest(); + runJUnitTest(__test, __test.test_continueWithoutLabelInCase_error); + }); + _ut.test('test_continueWithoutLabelInCase_noError', () { + final __test = new ErrorParserTest(); + runJUnitTest(__test, __test.test_continueWithoutLabelInCase_noError); + }); + _ut.test('test_continueWithoutLabelInCase_noError_switchInLoop', () { + final __test = new ErrorParserTest(); + runJUnitTest(__test, __test.test_continueWithoutLabelInCase_noError_switchInLoop); + }); + _ut.test('test_directiveAfterDeclaration_classBeforeDirective', () { + final __test = new ErrorParserTest(); + runJUnitTest(__test, __test.test_directiveAfterDeclaration_classBeforeDirective); + }); + _ut.test('test_directiveAfterDeclaration_classBetweenDirectives', () { + final __test = new ErrorParserTest(); + runJUnitTest(__test, __test.test_directiveAfterDeclaration_classBetweenDirectives); + }); + _ut.test('test_duplicateLabelInSwitchStatement', () { + final __test = new ErrorParserTest(); + runJUnitTest(__test, __test.test_duplicateLabelInSwitchStatement); + }); + _ut.test('test_duplicatedModifier_const', () { + final __test = new ErrorParserTest(); + runJUnitTest(__test, __test.test_duplicatedModifier_const); + }); + _ut.test('test_duplicatedModifier_external', () { + final __test = new ErrorParserTest(); + runJUnitTest(__test, __test.test_duplicatedModifier_external); + }); + _ut.test('test_duplicatedModifier_factory', () { + final __test = new ErrorParserTest(); + runJUnitTest(__test, __test.test_duplicatedModifier_factory); + }); + _ut.test('test_duplicatedModifier_final', () { + final __test = new ErrorParserTest(); + runJUnitTest(__test, __test.test_duplicatedModifier_final); + }); + _ut.test('test_duplicatedModifier_static', () { + final __test = new ErrorParserTest(); + runJUnitTest(__test, __test.test_duplicatedModifier_static); + }); + _ut.test('test_duplicatedModifier_var', () { + final __test = new ErrorParserTest(); + runJUnitTest(__test, __test.test_duplicatedModifier_var); + }); + _ut.test('test_expectedCaseOrDefault', () { + final __test = new ErrorParserTest(); + runJUnitTest(__test, __test.test_expectedCaseOrDefault); + }); + _ut.test('test_expectedStringLiteral', () { + final __test = new ErrorParserTest(); + runJUnitTest(__test, __test.test_expectedStringLiteral); + }); + _ut.test('test_expectedToken_commaMissingInArgumentList', () { + final __test = new ErrorParserTest(); + runJUnitTest(__test, __test.test_expectedToken_commaMissingInArgumentList); + }); + _ut.test('test_expectedToken_semicolonMissingAfterExpression', () { + final __test = new ErrorParserTest(); + runJUnitTest(__test, __test.test_expectedToken_semicolonMissingAfterExpression); + }); + _ut.test('test_expectedToken_whileMissingInDoStatement', () { + final __test = new ErrorParserTest(); + runJUnitTest(__test, __test.test_expectedToken_whileMissingInDoStatement); + }); + _ut.test('test_exportDirectiveAfterPartDirective', () { + final __test = new ErrorParserTest(); + runJUnitTest(__test, __test.test_exportDirectiveAfterPartDirective); + }); + _ut.test('test_externalAfterConst', () { + final __test = new ErrorParserTest(); + runJUnitTest(__test, __test.test_externalAfterConst); + }); + _ut.test('test_externalAfterFactory', () { + final __test = new ErrorParserTest(); + runJUnitTest(__test, __test.test_externalAfterFactory); + }); + _ut.test('test_externalAfterStatic', () { + final __test = new ErrorParserTest(); + runJUnitTest(__test, __test.test_externalAfterStatic); + }); + _ut.test('test_externalClass', () { + final __test = new ErrorParserTest(); + runJUnitTest(__test, __test.test_externalClass); + }); + _ut.test('test_externalConstructorWithBody_factory', () { + final __test = new ErrorParserTest(); + runJUnitTest(__test, __test.test_externalConstructorWithBody_factory); + }); + _ut.test('test_externalConstructorWithBody_named', () { + final __test = new ErrorParserTest(); + runJUnitTest(__test, __test.test_externalConstructorWithBody_named); + }); + _ut.test('test_externalField_const', () { + final __test = new ErrorParserTest(); + runJUnitTest(__test, __test.test_externalField_const); + }); + _ut.test('test_externalField_final', () { + final __test = new ErrorParserTest(); + runJUnitTest(__test, __test.test_externalField_final); + }); + _ut.test('test_externalField_static', () { + final __test = new ErrorParserTest(); + runJUnitTest(__test, __test.test_externalField_static); + }); + _ut.test('test_externalField_typed', () { + final __test = new ErrorParserTest(); + runJUnitTest(__test, __test.test_externalField_typed); + }); + _ut.test('test_externalField_untyped', () { + final __test = new ErrorParserTest(); + runJUnitTest(__test, __test.test_externalField_untyped); + }); + _ut.test('test_externalGetterWithBody', () { + final __test = new ErrorParserTest(); + runJUnitTest(__test, __test.test_externalGetterWithBody); + }); + _ut.test('test_externalMethodWithBody', () { + final __test = new ErrorParserTest(); + runJUnitTest(__test, __test.test_externalMethodWithBody); + }); + _ut.test('test_externalOperatorWithBody', () { + final __test = new ErrorParserTest(); + runJUnitTest(__test, __test.test_externalOperatorWithBody); + }); + _ut.test('test_externalSetterWithBody', () { + final __test = new ErrorParserTest(); + runJUnitTest(__test, __test.test_externalSetterWithBody); + }); + _ut.test('test_externalTypedef', () { + final __test = new ErrorParserTest(); + runJUnitTest(__test, __test.test_externalTypedef); + }); + _ut.test('test_factoryTopLevelDeclaration_class', () { + final __test = new ErrorParserTest(); + runJUnitTest(__test, __test.test_factoryTopLevelDeclaration_class); + }); + _ut.test('test_factoryTopLevelDeclaration_typedef', () { + final __test = new ErrorParserTest(); + runJUnitTest(__test, __test.test_factoryTopLevelDeclaration_typedef); + }); + _ut.test('test_fieldInitializerOutsideConstructor', () { + final __test = new ErrorParserTest(); + runJUnitTest(__test, __test.test_fieldInitializerOutsideConstructor); + }); + _ut.test('test_finalAndVar', () { + final __test = new ErrorParserTest(); + runJUnitTest(__test, __test.test_finalAndVar); + }); + _ut.test('test_finalClass', () { + final __test = new ErrorParserTest(); + runJUnitTest(__test, __test.test_finalClass); + }); + _ut.test('test_finalConstructor', () { + final __test = new ErrorParserTest(); + runJUnitTest(__test, __test.test_finalConstructor); + }); + _ut.test('test_finalMethod', () { + final __test = new ErrorParserTest(); + runJUnitTest(__test, __test.test_finalMethod); + }); + _ut.test('test_finalTypedef', () { + final __test = new ErrorParserTest(); + runJUnitTest(__test, __test.test_finalTypedef); + }); + _ut.test('test_getterWithParameters', () { + final __test = new ErrorParserTest(); + runJUnitTest(__test, __test.test_getterWithParameters); + }); + _ut.test('test_illegalAssignmentToNonAssignable_superAssigned', () { + final __test = new ErrorParserTest(); + runJUnitTest(__test, __test.test_illegalAssignmentToNonAssignable_superAssigned); + }); + _ut.test('test_implementsBeforeExtends', () { + final __test = new ErrorParserTest(); + runJUnitTest(__test, __test.test_implementsBeforeExtends); + }); + _ut.test('test_implementsBeforeWith', () { + final __test = new ErrorParserTest(); + runJUnitTest(__test, __test.test_implementsBeforeWith); + }); + _ut.test('test_importDirectiveAfterPartDirective', () { + final __test = new ErrorParserTest(); + runJUnitTest(__test, __test.test_importDirectiveAfterPartDirective); + }); + _ut.test('test_initializedVariableInForEach', () { + final __test = new ErrorParserTest(); + runJUnitTest(__test, __test.test_initializedVariableInForEach); + }); + _ut.test('test_invalidCodePoint', () { + final __test = new ErrorParserTest(); + runJUnitTest(__test, __test.test_invalidCodePoint); + }); + _ut.test('test_invalidHexEscape_invalidDigit', () { + final __test = new ErrorParserTest(); + runJUnitTest(__test, __test.test_invalidHexEscape_invalidDigit); + }); + _ut.test('test_invalidHexEscape_tooFewDigits', () { + final __test = new ErrorParserTest(); + runJUnitTest(__test, __test.test_invalidHexEscape_tooFewDigits); + }); + _ut.test('test_invalidOperatorForSuper', () { + final __test = new ErrorParserTest(); + runJUnitTest(__test, __test.test_invalidOperatorForSuper); + }); + _ut.test('test_invalidUnicodeEscape_incomplete_noDigits', () { + final __test = new ErrorParserTest(); + runJUnitTest(__test, __test.test_invalidUnicodeEscape_incomplete_noDigits); + }); + _ut.test('test_invalidUnicodeEscape_incomplete_someDigits', () { + final __test = new ErrorParserTest(); + runJUnitTest(__test, __test.test_invalidUnicodeEscape_incomplete_someDigits); + }); + _ut.test('test_invalidUnicodeEscape_invalidDigit', () { + final __test = new ErrorParserTest(); + runJUnitTest(__test, __test.test_invalidUnicodeEscape_invalidDigit); + }); + _ut.test('test_invalidUnicodeEscape_tooFewDigits_fixed', () { + final __test = new ErrorParserTest(); + runJUnitTest(__test, __test.test_invalidUnicodeEscape_tooFewDigits_fixed); + }); + _ut.test('test_invalidUnicodeEscape_tooFewDigits_variable', () { + final __test = new ErrorParserTest(); + runJUnitTest(__test, __test.test_invalidUnicodeEscape_tooFewDigits_variable); + }); + _ut.test('test_invalidUnicodeEscape_tooManyDigits_variable', () { + final __test = new ErrorParserTest(); + runJUnitTest(__test, __test.test_invalidUnicodeEscape_tooManyDigits_variable); + }); + _ut.test('test_libraryDirectiveNotFirst', () { + final __test = new ErrorParserTest(); + runJUnitTest(__test, __test.test_libraryDirectiveNotFirst); + }); + _ut.test('test_libraryDirectiveNotFirst_afterPart', () { + final __test = new ErrorParserTest(); + runJUnitTest(__test, __test.test_libraryDirectiveNotFirst_afterPart); + }); + _ut.test('test_missingAssignableSelector_identifiersAssigned', () { + final __test = new ErrorParserTest(); + runJUnitTest(__test, __test.test_missingAssignableSelector_identifiersAssigned); + }); + _ut.test('test_missingAssignableSelector_primarySelectorPostfix', () { + final __test = new ErrorParserTest(); + runJUnitTest(__test, __test.test_missingAssignableSelector_primarySelectorPostfix); + }); + _ut.test('test_missingAssignableSelector_selector', () { + final __test = new ErrorParserTest(); + runJUnitTest(__test, __test.test_missingAssignableSelector_selector); + }); + _ut.test('test_missingAssignableSelector_superPrimaryExpression', () { + final __test = new ErrorParserTest(); + runJUnitTest(__test, __test.test_missingAssignableSelector_superPrimaryExpression); + }); + _ut.test('test_missingAssignableSelector_superPropertyAccessAssigned', () { + final __test = new ErrorParserTest(); + runJUnitTest(__test, __test.test_missingAssignableSelector_superPropertyAccessAssigned); + }); + _ut.test('test_missingCatchOrFinally', () { + final __test = new ErrorParserTest(); + runJUnitTest(__test, __test.test_missingCatchOrFinally); + }); + _ut.test('test_missingClassBody', () { + final __test = new ErrorParserTest(); + runJUnitTest(__test, __test.test_missingClassBody); + }); + _ut.test('test_missingConstFinalVarOrType', () { + final __test = new ErrorParserTest(); + runJUnitTest(__test, __test.test_missingConstFinalVarOrType); + }); + _ut.test('test_missingFunctionBody_emptyNotAllowed', () { + final __test = new ErrorParserTest(); + runJUnitTest(__test, __test.test_missingFunctionBody_emptyNotAllowed); + }); + _ut.test('test_missingFunctionBody_invalid', () { + final __test = new ErrorParserTest(); + runJUnitTest(__test, __test.test_missingFunctionBody_invalid); + }); + _ut.test('test_missingFunctionParameters_local_void_block', () { + final __test = new ErrorParserTest(); + runJUnitTest(__test, __test.test_missingFunctionParameters_local_void_block); + }); + _ut.test('test_missingFunctionParameters_local_void_expression', () { + final __test = new ErrorParserTest(); + runJUnitTest(__test, __test.test_missingFunctionParameters_local_void_expression); + }); + _ut.test('test_missingFunctionParameters_topLevel_nonVoid_block', () { + final __test = new ErrorParserTest(); + runJUnitTest(__test, __test.test_missingFunctionParameters_topLevel_nonVoid_block); + }); + _ut.test('test_missingFunctionParameters_topLevel_nonVoid_expression', () { + final __test = new ErrorParserTest(); + runJUnitTest(__test, __test.test_missingFunctionParameters_topLevel_nonVoid_expression); + }); + _ut.test('test_missingFunctionParameters_topLevel_void_block', () { + final __test = new ErrorParserTest(); + runJUnitTest(__test, __test.test_missingFunctionParameters_topLevel_void_block); + }); + _ut.test('test_missingFunctionParameters_topLevel_void_expression', () { + final __test = new ErrorParserTest(); + runJUnitTest(__test, __test.test_missingFunctionParameters_topLevel_void_expression); + }); + _ut.test('test_missingIdentifier_functionDeclaration_returnTypeWithoutName', () { + final __test = new ErrorParserTest(); + runJUnitTest(__test, __test.test_missingIdentifier_functionDeclaration_returnTypeWithoutName); + }); + _ut.test('test_missingIdentifier_number', () { + final __test = new ErrorParserTest(); + runJUnitTest(__test, __test.test_missingIdentifier_number); + }); + _ut.test('test_missingNameInLibraryDirective', () { + final __test = new ErrorParserTest(); + runJUnitTest(__test, __test.test_missingNameInLibraryDirective); + }); + _ut.test('test_missingNameInPartOfDirective', () { + final __test = new ErrorParserTest(); + runJUnitTest(__test, __test.test_missingNameInPartOfDirective); + }); + _ut.test('test_missingTypedefParameters_nonVoid', () { + final __test = new ErrorParserTest(); + runJUnitTest(__test, __test.test_missingTypedefParameters_nonVoid); + }); + _ut.test('test_missingTypedefParameters_typeParameters', () { + final __test = new ErrorParserTest(); + runJUnitTest(__test, __test.test_missingTypedefParameters_typeParameters); + }); + _ut.test('test_missingTypedefParameters_void', () { + final __test = new ErrorParserTest(); + runJUnitTest(__test, __test.test_missingTypedefParameters_void); + }); + _ut.test('test_missingVariableInForEach', () { + final __test = new ErrorParserTest(); + runJUnitTest(__test, __test.test_missingVariableInForEach); + }); + _ut.test('test_mixedParameterGroups_namedPositional', () { + final __test = new ErrorParserTest(); + runJUnitTest(__test, __test.test_mixedParameterGroups_namedPositional); + }); + _ut.test('test_mixedParameterGroups_positionalNamed', () { + final __test = new ErrorParserTest(); + runJUnitTest(__test, __test.test_mixedParameterGroups_positionalNamed); + }); + _ut.test('test_multipleLibraryDirectives', () { + final __test = new ErrorParserTest(); + runJUnitTest(__test, __test.test_multipleLibraryDirectives); + }); + _ut.test('test_multipleNamedParameterGroups', () { + final __test = new ErrorParserTest(); + runJUnitTest(__test, __test.test_multipleNamedParameterGroups); + }); + _ut.test('test_multiplePartOfDirectives', () { + final __test = new ErrorParserTest(); + runJUnitTest(__test, __test.test_multiplePartOfDirectives); + }); + _ut.test('test_multiplePositionalParameterGroups', () { + final __test = new ErrorParserTest(); + runJUnitTest(__test, __test.test_multiplePositionalParameterGroups); + }); + _ut.test('test_multipleVariablesInForEach', () { + final __test = new ErrorParserTest(); + runJUnitTest(__test, __test.test_multipleVariablesInForEach); + }); + _ut.test('test_namedParameterOutsideGroup', () { + final __test = new ErrorParserTest(); + runJUnitTest(__test, __test.test_namedParameterOutsideGroup); + }); + _ut.test('test_nonConstructorFactory_field', () { + final __test = new ErrorParserTest(); + runJUnitTest(__test, __test.test_nonConstructorFactory_field); + }); + _ut.test('test_nonConstructorFactory_method', () { + final __test = new ErrorParserTest(); + runJUnitTest(__test, __test.test_nonConstructorFactory_method); + }); + _ut.test('test_nonIdentifierLibraryName_library', () { + final __test = new ErrorParserTest(); + runJUnitTest(__test, __test.test_nonIdentifierLibraryName_library); + }); + _ut.test('test_nonIdentifierLibraryName_partOf', () { + final __test = new ErrorParserTest(); + runJUnitTest(__test, __test.test_nonIdentifierLibraryName_partOf); + }); + _ut.test('test_nonPartOfDirectiveInPart_after', () { + final __test = new ErrorParserTest(); + runJUnitTest(__test, __test.test_nonPartOfDirectiveInPart_after); + }); + _ut.test('test_nonPartOfDirectiveInPart_before', () { + final __test = new ErrorParserTest(); + runJUnitTest(__test, __test.test_nonPartOfDirectiveInPart_before); + }); + _ut.test('test_nonUserDefinableOperator', () { + final __test = new ErrorParserTest(); + runJUnitTest(__test, __test.test_nonUserDefinableOperator); + }); + _ut.test('test_positionalAfterNamedArgument', () { + final __test = new ErrorParserTest(); + runJUnitTest(__test, __test.test_positionalAfterNamedArgument); + }); + _ut.test('test_positionalParameterOutsideGroup', () { + final __test = new ErrorParserTest(); + runJUnitTest(__test, __test.test_positionalParameterOutsideGroup); + }); + _ut.test('test_staticAfterConst', () { + final __test = new ErrorParserTest(); + runJUnitTest(__test, __test.test_staticAfterConst); + }); + _ut.test('test_staticAfterFinal', () { + final __test = new ErrorParserTest(); + runJUnitTest(__test, __test.test_staticAfterFinal); + }); + _ut.test('test_staticAfterVar', () { + final __test = new ErrorParserTest(); + runJUnitTest(__test, __test.test_staticAfterVar); + }); + _ut.test('test_staticConstructor', () { + final __test = new ErrorParserTest(); + runJUnitTest(__test, __test.test_staticConstructor); + }); + _ut.test('test_staticOperator_noReturnType', () { + final __test = new ErrorParserTest(); + runJUnitTest(__test, __test.test_staticOperator_noReturnType); + }); + _ut.test('test_staticOperator_returnType', () { + final __test = new ErrorParserTest(); + runJUnitTest(__test, __test.test_staticOperator_returnType); + }); + _ut.test('test_staticTopLevelDeclaration_class', () { + final __test = new ErrorParserTest(); + runJUnitTest(__test, __test.test_staticTopLevelDeclaration_class); + }); + _ut.test('test_staticTopLevelDeclaration_typedef', () { + final __test = new ErrorParserTest(); + runJUnitTest(__test, __test.test_staticTopLevelDeclaration_typedef); + }); + _ut.test('test_staticTopLevelDeclaration_variable', () { + final __test = new ErrorParserTest(); + runJUnitTest(__test, __test.test_staticTopLevelDeclaration_variable); + }); + _ut.test('test_unexpectedToken_semicolonBetweenClassMembers', () { + final __test = new ErrorParserTest(); + runJUnitTest(__test, __test.test_unexpectedToken_semicolonBetweenClassMembers); + }); + _ut.test('test_unexpectedToken_semicolonBetweenCompilationUnitMembers', () { + final __test = new ErrorParserTest(); + runJUnitTest(__test, __test.test_unexpectedToken_semicolonBetweenCompilationUnitMembers); + }); + _ut.test('test_useOfUnaryPlusOperator', () { + final __test = new ErrorParserTest(); + runJUnitTest(__test, __test.test_useOfUnaryPlusOperator); + }); + _ut.test('test_varClass', () { + final __test = new ErrorParserTest(); + runJUnitTest(__test, __test.test_varClass); + }); + _ut.test('test_varConstructor', () { + final __test = new ErrorParserTest(); + runJUnitTest(__test, __test.test_varConstructor); + }); + _ut.test('test_varReturnType', () { + final __test = new ErrorParserTest(); + runJUnitTest(__test, __test.test_varReturnType); + }); + _ut.test('test_varTypedef', () { + final __test = new ErrorParserTest(); + runJUnitTest(__test, __test.test_varTypedef); + }); + _ut.test('test_voidField_initializer', () { + final __test = new ErrorParserTest(); + runJUnitTest(__test, __test.test_voidField_initializer); + }); + _ut.test('test_voidField_noInitializer', () { + final __test = new ErrorParserTest(); + runJUnitTest(__test, __test.test_voidField_noInitializer); + }); + _ut.test('test_voidParameter', () { + final __test = new ErrorParserTest(); + runJUnitTest(__test, __test.test_voidParameter); + }); + _ut.test('test_withBeforeExtends', () { + final __test = new ErrorParserTest(); + runJUnitTest(__test, __test.test_withBeforeExtends); + }); + _ut.test('test_withWithoutExtends', () { + final __test = new ErrorParserTest(); + runJUnitTest(__test, __test.test_withWithoutExtends); + }); + _ut.test('test_wrongSeparatorForNamedParameter', () { + final __test = new ErrorParserTest(); + runJUnitTest(__test, __test.test_wrongSeparatorForNamedParameter); + }); + _ut.test('test_wrongSeparatorForPositionalParameter', () { + final __test = new ErrorParserTest(); + runJUnitTest(__test, __test.test_wrongSeparatorForPositionalParameter); + }); + }); + } +} +main() { + ComplexParserTest.dartSuite(); + ErrorParserTest.dartSuite(); + RecoveryParserTest.dartSuite(); + SimpleParserTest.dartSuite(); +} +Map _methodTable_Parser = { + 'parseCompilationUnit_1': new MethodTrampoline(1, (Parser target, arg0) => target.parseCompilationUnit(arg0)), + 'parseExpression_1': new MethodTrampoline(1, (Parser target, arg0) => target.parseExpression(arg0)), + 'parseStatement_1': new MethodTrampoline(1, (Parser target, arg0) => target.parseStatement(arg0)), + 'parseStatements_1': new MethodTrampoline(1, (Parser target, arg0) => target.parseStatements(arg0)), + 'advance_0': new MethodTrampoline(0, (Parser target) => target.advance()), + 'appendScalarValue_5': new MethodTrampoline(5, (Parser target, arg0, arg1, arg2, arg3, arg4) => target.appendScalarValue(arg0, arg1, arg2, arg3, arg4)), + 'computeStringValue_1': new MethodTrampoline(1, (Parser target, arg0) => target.computeStringValue(arg0)), + 'createSyntheticIdentifier_0': new MethodTrampoline(0, (Parser target) => target.createSyntheticIdentifier()), + 'createSyntheticStringLiteral_0': new MethodTrampoline(0, (Parser target) => target.createSyntheticStringLiteral()), + 'createSyntheticToken_1': new MethodTrampoline(1, (Parser target, arg0) => target.createSyntheticToken(arg0)), + 'ensureAssignable_1': new MethodTrampoline(1, (Parser target, arg0) => target.ensureAssignable(arg0)), + 'expect_1': new MethodTrampoline(1, (Parser target, arg0) => target.expect(arg0)), + 'hasReturnTypeInTypeAlias_0': new MethodTrampoline(0, (Parser target) => target.hasReturnTypeInTypeAlias()), + 'isFunctionDeclaration_0': new MethodTrampoline(0, (Parser target) => target.isFunctionDeclaration()), + 'isFunctionExpression_1': new MethodTrampoline(1, (Parser target, arg0) => target.isFunctionExpression(arg0)), + 'isHexDigit_1': new MethodTrampoline(1, (Parser target, arg0) => target.isHexDigit(arg0)), + 'isInitializedVariableDeclaration_0': new MethodTrampoline(0, (Parser target) => target.isInitializedVariableDeclaration()), + 'isSwitchMember_0': new MethodTrampoline(0, (Parser target) => target.isSwitchMember()), + 'lexicallyFirst_1': new MethodTrampoline(1, (Parser target, arg0) => target.lexicallyFirst(arg0)), + 'matches_1': new MethodTrampoline(1, (Parser target, arg0) => target.matches(arg0)), + 'matches_2': new MethodTrampoline(2, (Parser target, arg0, arg1) => target.matches3(arg0, arg1)), + 'matchesAny_2': new MethodTrampoline(2, (Parser target, arg0, arg1) => target.matchesAny(arg0, arg1)), + 'matchesIdentifier_0': new MethodTrampoline(0, (Parser target) => target.matchesIdentifier()), + 'matchesIdentifier_1': new MethodTrampoline(1, (Parser target, arg0) => target.matchesIdentifier2(arg0)), + 'optional_1': new MethodTrampoline(1, (Parser target, arg0) => target.optional(arg0)), + 'parseAdditiveExpression_0': new MethodTrampoline(0, (Parser target) => target.parseAdditiveExpression()), + 'parseAnnotation_0': new MethodTrampoline(0, (Parser target) => target.parseAnnotation()), + 'parseArgument_0': new MethodTrampoline(0, (Parser target) => target.parseArgument()), + 'parseArgumentDefinitionTest_0': new MethodTrampoline(0, (Parser target) => target.parseArgumentDefinitionTest()), + 'parseArgumentList_0': new MethodTrampoline(0, (Parser target) => target.parseArgumentList()), + 'parseAssertStatement_0': new MethodTrampoline(0, (Parser target) => target.parseAssertStatement()), + 'parseAssignableExpression_1': new MethodTrampoline(1, (Parser target, arg0) => target.parseAssignableExpression(arg0)), + 'parseAssignableSelector_2': new MethodTrampoline(2, (Parser target, arg0, arg1) => target.parseAssignableSelector(arg0, arg1)), + 'parseBitwiseAndExpression_0': new MethodTrampoline(0, (Parser target) => target.parseBitwiseAndExpression()), + 'parseBitwiseOrExpression_0': new MethodTrampoline(0, (Parser target) => target.parseBitwiseOrExpression()), + 'parseBitwiseXorExpression_0': new MethodTrampoline(0, (Parser target) => target.parseBitwiseXorExpression()), + 'parseBlock_0': new MethodTrampoline(0, (Parser target) => target.parseBlock()), + 'parseBreakStatement_0': new MethodTrampoline(0, (Parser target) => target.parseBreakStatement()), + 'parseCascadeSection_0': new MethodTrampoline(0, (Parser target) => target.parseCascadeSection()), + 'parseClassDeclaration_2': new MethodTrampoline(2, (Parser target, arg0, arg1) => target.parseClassDeclaration(arg0, arg1)), + 'parseClassMember_1': new MethodTrampoline(1, (Parser target, arg0) => target.parseClassMember(arg0)), + 'parseClassMembers_1': new MethodTrampoline(1, (Parser target, arg0) => target.parseClassMembers(arg0)), + 'parseClassTypeAlias_2': new MethodTrampoline(2, (Parser target, arg0, arg1) => target.parseClassTypeAlias(arg0, arg1)), + 'parseCombinators_0': new MethodTrampoline(0, (Parser target) => target.parseCombinators()), + 'parseCommentAndMetadata_0': new MethodTrampoline(0, (Parser target) => target.parseCommentAndMetadata()), + 'parseCommentReference_2': new MethodTrampoline(2, (Parser target, arg0, arg1) => target.parseCommentReference(arg0, arg1)), + 'parseCommentReferences_1': new MethodTrampoline(1, (Parser target, arg0) => target.parseCommentReferences(arg0)), + 'parseCompilationUnit_0': new MethodTrampoline(0, (Parser target) => target.parseCompilationUnit2()), + 'parseCompilationUnitMember_1': new MethodTrampoline(1, (Parser target, arg0) => target.parseCompilationUnitMember(arg0)), + 'parseConditionalExpression_0': new MethodTrampoline(0, (Parser target) => target.parseConditionalExpression()), + 'parseConstExpression_0': new MethodTrampoline(0, (Parser target) => target.parseConstExpression()), + 'parseConstructor_8': new MethodTrampoline(8, (Parser target, arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7) => target.parseConstructor(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7)), + 'parseConstructorFieldInitializer_0': new MethodTrampoline(0, (Parser target) => target.parseConstructorFieldInitializer()), + 'parseConstructorName_0': new MethodTrampoline(0, (Parser target) => target.parseConstructorName()), + 'parseContinueStatement_0': new MethodTrampoline(0, (Parser target) => target.parseContinueStatement()), + 'parseDirective_1': new MethodTrampoline(1, (Parser target, arg0) => target.parseDirective(arg0)), + 'parseDocumentationComment_0': new MethodTrampoline(0, (Parser target) => target.parseDocumentationComment()), + 'parseDoStatement_0': new MethodTrampoline(0, (Parser target) => target.parseDoStatement()), + 'parseEmptyStatement_0': new MethodTrampoline(0, (Parser target) => target.parseEmptyStatement()), + 'parseEqualityExpression_0': new MethodTrampoline(0, (Parser target) => target.parseEqualityExpression()), + 'parseExportDirective_1': new MethodTrampoline(1, (Parser target, arg0) => target.parseExportDirective(arg0)), + 'parseExpression_0': new MethodTrampoline(0, (Parser target) => target.parseExpression2()), + 'parseExpressionList_0': new MethodTrampoline(0, (Parser target) => target.parseExpressionList()), + 'parseExpressionWithoutCascade_0': new MethodTrampoline(0, (Parser target) => target.parseExpressionWithoutCascade()), + 'parseExtendsClause_0': new MethodTrampoline(0, (Parser target) => target.parseExtendsClause()), + 'parseFinalConstVarOrType_1': new MethodTrampoline(1, (Parser target, arg0) => target.parseFinalConstVarOrType(arg0)), + 'parseFormalParameter_1': new MethodTrampoline(1, (Parser target, arg0) => target.parseFormalParameter(arg0)), + 'parseFormalParameterList_0': new MethodTrampoline(0, (Parser target) => target.parseFormalParameterList()), + 'parseForStatement_0': new MethodTrampoline(0, (Parser target) => target.parseForStatement()), + 'parseFunctionBody_2': new MethodTrampoline(2, (Parser target, arg0, arg1) => target.parseFunctionBody(arg0, arg1)), + 'parseFunctionDeclaration_4': new MethodTrampoline(4, (Parser target, arg0, arg1, arg2, arg3) => target.parseFunctionDeclaration(arg0, arg1, arg2, arg3)), + 'parseFunctionDeclarationStatement_0': new MethodTrampoline(0, (Parser target) => target.parseFunctionDeclarationStatement()), + 'parseFunctionDeclarationStatement_2': new MethodTrampoline(2, (Parser target, arg0, arg1) => target.parseFunctionDeclarationStatement2(arg0, arg1)), + 'parseFunctionExpression_0': new MethodTrampoline(0, (Parser target) => target.parseFunctionExpression()), + 'parseFunctionTypeAlias_2': new MethodTrampoline(2, (Parser target, arg0, arg1) => target.parseFunctionTypeAlias(arg0, arg1)), + 'parseGetter_4': new MethodTrampoline(4, (Parser target, arg0, arg1, arg2, arg3) => target.parseGetter(arg0, arg1, arg2, arg3)), + 'parseIdentifierList_0': new MethodTrampoline(0, (Parser target) => target.parseIdentifierList()), + 'parseIfStatement_0': new MethodTrampoline(0, (Parser target) => target.parseIfStatement()), + 'parseImplementsClause_0': new MethodTrampoline(0, (Parser target) => target.parseImplementsClause()), + 'parseImportDirective_1': new MethodTrampoline(1, (Parser target, arg0) => target.parseImportDirective(arg0)), + 'parseInitializedIdentifierList_4': new MethodTrampoline(4, (Parser target, arg0, arg1, arg2, arg3) => target.parseInitializedIdentifierList(arg0, arg1, arg2, arg3)), + 'parseInstanceCreationExpression_1': new MethodTrampoline(1, (Parser target, arg0) => target.parseInstanceCreationExpression(arg0)), + 'parseLibraryDirective_1': new MethodTrampoline(1, (Parser target, arg0) => target.parseLibraryDirective(arg0)), + 'parseLibraryIdentifier_0': new MethodTrampoline(0, (Parser target) => target.parseLibraryIdentifier()), + 'parseLibraryName_2': new MethodTrampoline(2, (Parser target, arg0, arg1) => target.parseLibraryName(arg0, arg1)), + 'parseListLiteral_2': new MethodTrampoline(2, (Parser target, arg0, arg1) => target.parseListLiteral(arg0, arg1)), + 'parseListOrMapLiteral_1': new MethodTrampoline(1, (Parser target, arg0) => target.parseListOrMapLiteral(arg0)), + 'parseLogicalAndExpression_0': new MethodTrampoline(0, (Parser target) => target.parseLogicalAndExpression()), + 'parseLogicalOrExpression_0': new MethodTrampoline(0, (Parser target) => target.parseLogicalOrExpression()), + 'parseMapLiteral_2': new MethodTrampoline(2, (Parser target, arg0, arg1) => target.parseMapLiteral(arg0, arg1)), + 'parseMapLiteralEntry_0': new MethodTrampoline(0, (Parser target) => target.parseMapLiteralEntry()), + 'parseMethodDeclaration_4': new MethodTrampoline(4, (Parser target, arg0, arg1, arg2, arg3) => target.parseMethodDeclaration(arg0, arg1, arg2, arg3)), + 'parseMethodDeclaration_6': new MethodTrampoline(6, (Parser target, arg0, arg1, arg2, arg3, arg4, arg5) => target.parseMethodDeclaration2(arg0, arg1, arg2, arg3, arg4, arg5)), + 'parseModifiers_0': new MethodTrampoline(0, (Parser target) => target.parseModifiers()), + 'parseMultiplicativeExpression_0': new MethodTrampoline(0, (Parser target) => target.parseMultiplicativeExpression()), + 'parseNewExpression_0': new MethodTrampoline(0, (Parser target) => target.parseNewExpression()), + 'parseNonLabeledStatement_0': new MethodTrampoline(0, (Parser target) => target.parseNonLabeledStatement()), + 'parseNormalFormalParameter_0': new MethodTrampoline(0, (Parser target) => target.parseNormalFormalParameter()), + 'parseOperator_3': new MethodTrampoline(3, (Parser target, arg0, arg1, arg2) => target.parseOperator(arg0, arg1, arg2)), + 'parseOptionalReturnType_0': new MethodTrampoline(0, (Parser target) => target.parseOptionalReturnType()), + 'parsePartDirective_1': new MethodTrampoline(1, (Parser target, arg0) => target.parsePartDirective(arg0)), + 'parsePostfixExpression_0': new MethodTrampoline(0, (Parser target) => target.parsePostfixExpression()), + 'parsePrefixedIdentifier_0': new MethodTrampoline(0, (Parser target) => target.parsePrefixedIdentifier()), + 'parsePrimaryExpression_0': new MethodTrampoline(0, (Parser target) => target.parsePrimaryExpression()), + 'parseRedirectingConstructorInvocation_0': new MethodTrampoline(0, (Parser target) => target.parseRedirectingConstructorInvocation()), + 'parseRelationalExpression_0': new MethodTrampoline(0, (Parser target) => target.parseRelationalExpression()), + 'parseReturnStatement_0': new MethodTrampoline(0, (Parser target) => target.parseReturnStatement()), + 'parseReturnType_0': new MethodTrampoline(0, (Parser target) => target.parseReturnType()), + 'parseSetter_4': new MethodTrampoline(4, (Parser target, arg0, arg1, arg2, arg3) => target.parseSetter(arg0, arg1, arg2, arg3)), + 'parseShiftExpression_0': new MethodTrampoline(0, (Parser target) => target.parseShiftExpression()), + 'parseSimpleIdentifier_0': new MethodTrampoline(0, (Parser target) => target.parseSimpleIdentifier()), + 'parseSimpleIdentifier_1': new MethodTrampoline(1, (Parser target, arg0) => target.parseSimpleIdentifier2(arg0)), + 'parseStatement_0': new MethodTrampoline(0, (Parser target) => target.parseStatement2()), + 'parseStatements_0': new MethodTrampoline(0, (Parser target) => target.parseStatements2()), + 'parseStringInterpolation_1': new MethodTrampoline(1, (Parser target, arg0) => target.parseStringInterpolation(arg0)), + 'parseStringLiteral_0': new MethodTrampoline(0, (Parser target) => target.parseStringLiteral()), + 'parseSuperConstructorInvocation_0': new MethodTrampoline(0, (Parser target) => target.parseSuperConstructorInvocation()), + 'parseSwitchStatement_0': new MethodTrampoline(0, (Parser target) => target.parseSwitchStatement()), + 'parseThrowExpression_0': new MethodTrampoline(0, (Parser target) => target.parseThrowExpression()), + 'parseThrowExpressionWithoutCascade_0': new MethodTrampoline(0, (Parser target) => target.parseThrowExpressionWithoutCascade()), + 'parseTryStatement_0': new MethodTrampoline(0, (Parser target) => target.parseTryStatement()), + 'parseTypeAlias_1': new MethodTrampoline(1, (Parser target, arg0) => target.parseTypeAlias(arg0)), + 'parseTypeArgumentList_0': new MethodTrampoline(0, (Parser target) => target.parseTypeArgumentList()), + 'parseTypeName_0': new MethodTrampoline(0, (Parser target) => target.parseTypeName()), + 'parseTypeParameter_0': new MethodTrampoline(0, (Parser target) => target.parseTypeParameter()), + 'parseTypeParameterList_0': new MethodTrampoline(0, (Parser target) => target.parseTypeParameterList()), + 'parseUnaryExpression_0': new MethodTrampoline(0, (Parser target) => target.parseUnaryExpression()), + 'parseVariableDeclaration_0': new MethodTrampoline(0, (Parser target) => target.parseVariableDeclaration()), + 'parseVariableDeclarationList_0': new MethodTrampoline(0, (Parser target) => target.parseVariableDeclarationList()), + 'parseVariableDeclarationList_2': new MethodTrampoline(2, (Parser target, arg0, arg1) => target.parseVariableDeclarationList2(arg0, arg1)), + 'parseVariableDeclarationStatement_0': new MethodTrampoline(0, (Parser target) => target.parseVariableDeclarationStatement()), + 'parseWhileStatement_0': new MethodTrampoline(0, (Parser target) => target.parseWhileStatement()), + 'parseWithClause_0': new MethodTrampoline(0, (Parser target) => target.parseWithClause()), + 'peek_0': new MethodTrampoline(0, (Parser target) => target.peek()), + 'peek_1': new MethodTrampoline(1, (Parser target, arg0) => target.peek2(arg0)), + 'reportError_3': new MethodTrampoline(3, (Parser target, arg0, arg1, arg2) => target.reportError(arg0, arg1, arg2)), + 'reportError_2': new MethodTrampoline(2, (Parser target, arg0, arg1) => target.reportError3(arg0, arg1)), + 'skipFinalConstVarOrType_1': new MethodTrampoline(1, (Parser target, arg0) => target.skipFinalConstVarOrType(arg0)), + 'skipFormalParameterList_1': new MethodTrampoline(1, (Parser target, arg0) => target.skipFormalParameterList(arg0)), + 'skipPastMatchingToken_1': new MethodTrampoline(1, (Parser target, arg0) => target.skipPastMatchingToken(arg0)), + 'skipPrefixedIdentifier_1': new MethodTrampoline(1, (Parser target, arg0) => target.skipPrefixedIdentifier(arg0)), + 'skipReturnType_1': new MethodTrampoline(1, (Parser target, arg0) => target.skipReturnType(arg0)), + 'skipSimpleIdentifier_1': new MethodTrampoline(1, (Parser target, arg0) => target.skipSimpleIdentifier(arg0)), + 'skipStringInterpolation_1': new MethodTrampoline(1, (Parser target, arg0) => target.skipStringInterpolation(arg0)), + 'skipStringLiteral_1': new MethodTrampoline(1, (Parser target, arg0) => target.skipStringLiteral(arg0)), + 'skipTypeArgumentList_1': new MethodTrampoline(1, (Parser target, arg0) => target.skipTypeArgumentList(arg0)), + 'skipTypeName_1': new MethodTrampoline(1, (Parser target, arg0) => target.skipTypeName(arg0)), + 'skipTypeParameterList_1': new MethodTrampoline(1, (Parser target, arg0) => target.skipTypeParameterList(arg0)), + 'translateCharacter_3': new MethodTrampoline(3, (Parser target, arg0, arg1, arg2) => target.translateCharacter(arg0, arg1, arg2)), + 'validateFormalParameterList_1': new MethodTrampoline(1, (Parser target, arg0) => target.validateFormalParameterList(arg0)), + 'validateModifiersForClass_1': new MethodTrampoline(1, (Parser target, arg0) => target.validateModifiersForClass(arg0)), + 'validateModifiersForConstructor_1': new MethodTrampoline(1, (Parser target, arg0) => target.validateModifiersForConstructor(arg0)), + 'validateModifiersForField_1': new MethodTrampoline(1, (Parser target, arg0) => target.validateModifiersForField(arg0)), + 'validateModifiersForGetterOrSetterOrMethod_1': new MethodTrampoline(1, (Parser target, arg0) => target.validateModifiersForGetterOrSetterOrMethod(arg0)), + 'validateModifiersForOperator_1': new MethodTrampoline(1, (Parser target, arg0) => target.validateModifiersForOperator(arg0)), + 'validateModifiersForTopLevelDeclaration_1': new MethodTrampoline(1, (Parser target, arg0) => target.validateModifiersForTopLevelDeclaration(arg0)), + 'validateModifiersForTopLevelFunction_1': new MethodTrampoline(1, (Parser target, arg0) => target.validateModifiersForTopLevelFunction(arg0)), + 'validateModifiersForTopLevelVariable_1': new MethodTrampoline(1, (Parser target, arg0) => target.validateModifiersForTopLevelVariable(arg0)), + 'validateModifiersForTypedef_1': new MethodTrampoline(1, (Parser target, arg0) => target.validateModifiersForTypedef(arg0)),}; + + +Object invokeParserMethodImpl(Parser parser, String methodName, List objects, Token tokenStream) { + parser.currentToken = tokenStream; + MethodTrampoline method = _methodTable_Parser['${methodName}_${objects.length}']; + return method.invoke(parser, objects); +} diff --git a/pkg/analyzer-experimental/test/generated/scanner_test.dart b/pkg/analyzer-experimental/test/generated/scanner_test.dart new file mode 100644 index 00000000000..3fce7f64eae --- /dev/null +++ b/pkg/analyzer-experimental/test/generated/scanner_test.dart @@ -0,0 +1,2063 @@ +// This code was auto-generated, is not intended to be edited, and is subject to +// significant change. Please see the README file for more information. + +library engine.scanner_test; + +import 'dart:collection'; +import 'package:analyzer-experimental/src/generated/java_core.dart'; +import 'package:analyzer-experimental/src/generated/java_engine.dart'; +import 'package:analyzer-experimental/src/generated/java_junit.dart'; +import 'package:analyzer-experimental/src/generated/source.dart'; +import 'package:analyzer-experimental/src/generated/error.dart'; +import 'package:analyzer-experimental/src/generated/scanner.dart'; +import 'package:unittest/unittest.dart' as _ut; +import 'test_support.dart'; + +class CharBufferScannerTest extends AbstractScannerTest { + Token scan(String source, GatheringErrorListener listener) { + CharBuffer buffer = CharBuffer.wrap(source); + CharBufferScanner scanner = new CharBufferScanner(null, buffer, listener); + Token result = scanner.tokenize(); + listener.setLineInfo(new TestSource(), scanner.lineStarts); + return result; + } + static dartSuite() { + _ut.group('CharBufferScannerTest', () { + _ut.test('test_ampersand', () { + final __test = new CharBufferScannerTest(); + runJUnitTest(__test, __test.test_ampersand); + }); + _ut.test('test_ampersand_ampersand', () { + final __test = new CharBufferScannerTest(); + runJUnitTest(__test, __test.test_ampersand_ampersand); + }); + _ut.test('test_ampersand_eq', () { + final __test = new CharBufferScannerTest(); + runJUnitTest(__test, __test.test_ampersand_eq); + }); + _ut.test('test_at', () { + final __test = new CharBufferScannerTest(); + runJUnitTest(__test, __test.test_at); + }); + _ut.test('test_backping', () { + final __test = new CharBufferScannerTest(); + runJUnitTest(__test, __test.test_backping); + }); + _ut.test('test_backslash', () { + final __test = new CharBufferScannerTest(); + runJUnitTest(__test, __test.test_backslash); + }); + _ut.test('test_bang', () { + final __test = new CharBufferScannerTest(); + runJUnitTest(__test, __test.test_bang); + }); + _ut.test('test_bang_eq', () { + final __test = new CharBufferScannerTest(); + runJUnitTest(__test, __test.test_bang_eq); + }); + _ut.test('test_bar', () { + final __test = new CharBufferScannerTest(); + runJUnitTest(__test, __test.test_bar); + }); + _ut.test('test_bar_bar', () { + final __test = new CharBufferScannerTest(); + runJUnitTest(__test, __test.test_bar_bar); + }); + _ut.test('test_bar_eq', () { + final __test = new CharBufferScannerTest(); + runJUnitTest(__test, __test.test_bar_eq); + }); + _ut.test('test_caret', () { + final __test = new CharBufferScannerTest(); + runJUnitTest(__test, __test.test_caret); + }); + _ut.test('test_caret_eq', () { + final __test = new CharBufferScannerTest(); + runJUnitTest(__test, __test.test_caret_eq); + }); + _ut.test('test_close_curly_bracket', () { + final __test = new CharBufferScannerTest(); + runJUnitTest(__test, __test.test_close_curly_bracket); + }); + _ut.test('test_close_paren', () { + final __test = new CharBufferScannerTest(); + runJUnitTest(__test, __test.test_close_paren); + }); + _ut.test('test_close_quare_bracket', () { + final __test = new CharBufferScannerTest(); + runJUnitTest(__test, __test.test_close_quare_bracket); + }); + _ut.test('test_colon', () { + final __test = new CharBufferScannerTest(); + runJUnitTest(__test, __test.test_colon); + }); + _ut.test('test_comma', () { + final __test = new CharBufferScannerTest(); + runJUnitTest(__test, __test.test_comma); + }); + _ut.test('test_comment_multi', () { + final __test = new CharBufferScannerTest(); + runJUnitTest(__test, __test.test_comment_multi); + }); + _ut.test('test_comment_multi_unterminated', () { + final __test = new CharBufferScannerTest(); + runJUnitTest(__test, __test.test_comment_multi_unterminated); + }); + _ut.test('test_comment_nested', () { + final __test = new CharBufferScannerTest(); + runJUnitTest(__test, __test.test_comment_nested); + }); + _ut.test('test_comment_single', () { + final __test = new CharBufferScannerTest(); + runJUnitTest(__test, __test.test_comment_single); + }); + _ut.test('test_double_both_E', () { + final __test = new CharBufferScannerTest(); + runJUnitTest(__test, __test.test_double_both_E); + }); + _ut.test('test_double_both_e', () { + final __test = new CharBufferScannerTest(); + runJUnitTest(__test, __test.test_double_both_e); + }); + _ut.test('test_double_fraction', () { + final __test = new CharBufferScannerTest(); + runJUnitTest(__test, __test.test_double_fraction); + }); + _ut.test('test_double_fraction_D', () { + final __test = new CharBufferScannerTest(); + runJUnitTest(__test, __test.test_double_fraction_D); + }); + _ut.test('test_double_fraction_E', () { + final __test = new CharBufferScannerTest(); + runJUnitTest(__test, __test.test_double_fraction_E); + }); + _ut.test('test_double_fraction_Ed', () { + final __test = new CharBufferScannerTest(); + runJUnitTest(__test, __test.test_double_fraction_Ed); + }); + _ut.test('test_double_fraction_d', () { + final __test = new CharBufferScannerTest(); + runJUnitTest(__test, __test.test_double_fraction_d); + }); + _ut.test('test_double_fraction_e', () { + final __test = new CharBufferScannerTest(); + runJUnitTest(__test, __test.test_double_fraction_e); + }); + _ut.test('test_double_fraction_ed', () { + final __test = new CharBufferScannerTest(); + runJUnitTest(__test, __test.test_double_fraction_ed); + }); + _ut.test('test_double_missingDigitInExponent', () { + final __test = new CharBufferScannerTest(); + runJUnitTest(__test, __test.test_double_missingDigitInExponent); + }); + _ut.test('test_double_whole_D', () { + final __test = new CharBufferScannerTest(); + runJUnitTest(__test, __test.test_double_whole_D); + }); + _ut.test('test_double_whole_E', () { + final __test = new CharBufferScannerTest(); + runJUnitTest(__test, __test.test_double_whole_E); + }); + _ut.test('test_double_whole_Ed', () { + final __test = new CharBufferScannerTest(); + runJUnitTest(__test, __test.test_double_whole_Ed); + }); + _ut.test('test_double_whole_d', () { + final __test = new CharBufferScannerTest(); + runJUnitTest(__test, __test.test_double_whole_d); + }); + _ut.test('test_double_whole_e', () { + final __test = new CharBufferScannerTest(); + runJUnitTest(__test, __test.test_double_whole_e); + }); + _ut.test('test_double_whole_ed', () { + final __test = new CharBufferScannerTest(); + runJUnitTest(__test, __test.test_double_whole_ed); + }); + _ut.test('test_eq', () { + final __test = new CharBufferScannerTest(); + runJUnitTest(__test, __test.test_eq); + }); + _ut.test('test_eq_eq', () { + final __test = new CharBufferScannerTest(); + runJUnitTest(__test, __test.test_eq_eq); + }); + _ut.test('test_gt', () { + final __test = new CharBufferScannerTest(); + runJUnitTest(__test, __test.test_gt); + }); + _ut.test('test_gt_eq', () { + final __test = new CharBufferScannerTest(); + runJUnitTest(__test, __test.test_gt_eq); + }); + _ut.test('test_gt_gt', () { + final __test = new CharBufferScannerTest(); + runJUnitTest(__test, __test.test_gt_gt); + }); + _ut.test('test_gt_gt_eq', () { + final __test = new CharBufferScannerTest(); + runJUnitTest(__test, __test.test_gt_gt_eq); + }); + _ut.test('test_hash', () { + final __test = new CharBufferScannerTest(); + runJUnitTest(__test, __test.test_hash); + }); + _ut.test('test_hexidecimal', () { + final __test = new CharBufferScannerTest(); + runJUnitTest(__test, __test.test_hexidecimal); + }); + _ut.test('test_hexidecimal_missingDigit', () { + final __test = new CharBufferScannerTest(); + runJUnitTest(__test, __test.test_hexidecimal_missingDigit); + }); + _ut.test('test_identifier', () { + final __test = new CharBufferScannerTest(); + runJUnitTest(__test, __test.test_identifier); + }); + _ut.test('test_illegalChar', () { + final __test = new CharBufferScannerTest(); + runJUnitTest(__test, __test.test_illegalChar); + }); + _ut.test('test_index', () { + final __test = new CharBufferScannerTest(); + runJUnitTest(__test, __test.test_index); + }); + _ut.test('test_index_eq', () { + final __test = new CharBufferScannerTest(); + runJUnitTest(__test, __test.test_index_eq); + }); + _ut.test('test_int', () { + final __test = new CharBufferScannerTest(); + runJUnitTest(__test, __test.test_int); + }); + _ut.test('test_int_initialZero', () { + final __test = new CharBufferScannerTest(); + runJUnitTest(__test, __test.test_int_initialZero); + }); + _ut.test('test_keyword_abstract', () { + final __test = new CharBufferScannerTest(); + runJUnitTest(__test, __test.test_keyword_abstract); + }); + _ut.test('test_keyword_as', () { + final __test = new CharBufferScannerTest(); + runJUnitTest(__test, __test.test_keyword_as); + }); + _ut.test('test_keyword_assert', () { + final __test = new CharBufferScannerTest(); + runJUnitTest(__test, __test.test_keyword_assert); + }); + _ut.test('test_keyword_break', () { + final __test = new CharBufferScannerTest(); + runJUnitTest(__test, __test.test_keyword_break); + }); + _ut.test('test_keyword_case', () { + final __test = new CharBufferScannerTest(); + runJUnitTest(__test, __test.test_keyword_case); + }); + _ut.test('test_keyword_catch', () { + final __test = new CharBufferScannerTest(); + runJUnitTest(__test, __test.test_keyword_catch); + }); + _ut.test('test_keyword_class', () { + final __test = new CharBufferScannerTest(); + runJUnitTest(__test, __test.test_keyword_class); + }); + _ut.test('test_keyword_const', () { + final __test = new CharBufferScannerTest(); + runJUnitTest(__test, __test.test_keyword_const); + }); + _ut.test('test_keyword_continue', () { + final __test = new CharBufferScannerTest(); + runJUnitTest(__test, __test.test_keyword_continue); + }); + _ut.test('test_keyword_default', () { + final __test = new CharBufferScannerTest(); + runJUnitTest(__test, __test.test_keyword_default); + }); + _ut.test('test_keyword_do', () { + final __test = new CharBufferScannerTest(); + runJUnitTest(__test, __test.test_keyword_do); + }); + _ut.test('test_keyword_dynamic', () { + final __test = new CharBufferScannerTest(); + runJUnitTest(__test, __test.test_keyword_dynamic); + }); + _ut.test('test_keyword_else', () { + final __test = new CharBufferScannerTest(); + runJUnitTest(__test, __test.test_keyword_else); + }); + _ut.test('test_keyword_export', () { + final __test = new CharBufferScannerTest(); + runJUnitTest(__test, __test.test_keyword_export); + }); + _ut.test('test_keyword_extends', () { + final __test = new CharBufferScannerTest(); + runJUnitTest(__test, __test.test_keyword_extends); + }); + _ut.test('test_keyword_factory', () { + final __test = new CharBufferScannerTest(); + runJUnitTest(__test, __test.test_keyword_factory); + }); + _ut.test('test_keyword_false', () { + final __test = new CharBufferScannerTest(); + runJUnitTest(__test, __test.test_keyword_false); + }); + _ut.test('test_keyword_final', () { + final __test = new CharBufferScannerTest(); + runJUnitTest(__test, __test.test_keyword_final); + }); + _ut.test('test_keyword_finally', () { + final __test = new CharBufferScannerTest(); + runJUnitTest(__test, __test.test_keyword_finally); + }); + _ut.test('test_keyword_for', () { + final __test = new CharBufferScannerTest(); + runJUnitTest(__test, __test.test_keyword_for); + }); + _ut.test('test_keyword_get', () { + final __test = new CharBufferScannerTest(); + runJUnitTest(__test, __test.test_keyword_get); + }); + _ut.test('test_keyword_if', () { + final __test = new CharBufferScannerTest(); + runJUnitTest(__test, __test.test_keyword_if); + }); + _ut.test('test_keyword_implements', () { + final __test = new CharBufferScannerTest(); + runJUnitTest(__test, __test.test_keyword_implements); + }); + _ut.test('test_keyword_import', () { + final __test = new CharBufferScannerTest(); + runJUnitTest(__test, __test.test_keyword_import); + }); + _ut.test('test_keyword_in', () { + final __test = new CharBufferScannerTest(); + runJUnitTest(__test, __test.test_keyword_in); + }); + _ut.test('test_keyword_is', () { + final __test = new CharBufferScannerTest(); + runJUnitTest(__test, __test.test_keyword_is); + }); + _ut.test('test_keyword_library', () { + final __test = new CharBufferScannerTest(); + runJUnitTest(__test, __test.test_keyword_library); + }); + _ut.test('test_keyword_new', () { + final __test = new CharBufferScannerTest(); + runJUnitTest(__test, __test.test_keyword_new); + }); + _ut.test('test_keyword_null', () { + final __test = new CharBufferScannerTest(); + runJUnitTest(__test, __test.test_keyword_null); + }); + _ut.test('test_keyword_operator', () { + final __test = new CharBufferScannerTest(); + runJUnitTest(__test, __test.test_keyword_operator); + }); + _ut.test('test_keyword_part', () { + final __test = new CharBufferScannerTest(); + runJUnitTest(__test, __test.test_keyword_part); + }); + _ut.test('test_keyword_return', () { + final __test = new CharBufferScannerTest(); + runJUnitTest(__test, __test.test_keyword_return); + }); + _ut.test('test_keyword_set', () { + final __test = new CharBufferScannerTest(); + runJUnitTest(__test, __test.test_keyword_set); + }); + _ut.test('test_keyword_static', () { + final __test = new CharBufferScannerTest(); + runJUnitTest(__test, __test.test_keyword_static); + }); + _ut.test('test_keyword_super', () { + final __test = new CharBufferScannerTest(); + runJUnitTest(__test, __test.test_keyword_super); + }); + _ut.test('test_keyword_switch', () { + final __test = new CharBufferScannerTest(); + runJUnitTest(__test, __test.test_keyword_switch); + }); + _ut.test('test_keyword_this', () { + final __test = new CharBufferScannerTest(); + runJUnitTest(__test, __test.test_keyword_this); + }); + _ut.test('test_keyword_throw', () { + final __test = new CharBufferScannerTest(); + runJUnitTest(__test, __test.test_keyword_throw); + }); + _ut.test('test_keyword_true', () { + final __test = new CharBufferScannerTest(); + runJUnitTest(__test, __test.test_keyword_true); + }); + _ut.test('test_keyword_try', () { + final __test = new CharBufferScannerTest(); + runJUnitTest(__test, __test.test_keyword_try); + }); + _ut.test('test_keyword_typedef', () { + final __test = new CharBufferScannerTest(); + runJUnitTest(__test, __test.test_keyword_typedef); + }); + _ut.test('test_keyword_var', () { + final __test = new CharBufferScannerTest(); + runJUnitTest(__test, __test.test_keyword_var); + }); + _ut.test('test_keyword_void', () { + final __test = new CharBufferScannerTest(); + runJUnitTest(__test, __test.test_keyword_void); + }); + _ut.test('test_keyword_while', () { + final __test = new CharBufferScannerTest(); + runJUnitTest(__test, __test.test_keyword_while); + }); + _ut.test('test_keyword_with', () { + final __test = new CharBufferScannerTest(); + runJUnitTest(__test, __test.test_keyword_with); + }); + _ut.test('test_lt', () { + final __test = new CharBufferScannerTest(); + runJUnitTest(__test, __test.test_lt); + }); + _ut.test('test_lt_eq', () { + final __test = new CharBufferScannerTest(); + runJUnitTest(__test, __test.test_lt_eq); + }); + _ut.test('test_lt_lt', () { + final __test = new CharBufferScannerTest(); + runJUnitTest(__test, __test.test_lt_lt); + }); + _ut.test('test_lt_lt_eq', () { + final __test = new CharBufferScannerTest(); + runJUnitTest(__test, __test.test_lt_lt_eq); + }); + _ut.test('test_minus', () { + final __test = new CharBufferScannerTest(); + runJUnitTest(__test, __test.test_minus); + }); + _ut.test('test_minus_eq', () { + final __test = new CharBufferScannerTest(); + runJUnitTest(__test, __test.test_minus_eq); + }); + _ut.test('test_minus_minus', () { + final __test = new CharBufferScannerTest(); + runJUnitTest(__test, __test.test_minus_minus); + }); + _ut.test('test_openSquareBracket', () { + final __test = new CharBufferScannerTest(); + runJUnitTest(__test, __test.test_openSquareBracket); + }); + _ut.test('test_open_curly_bracket', () { + final __test = new CharBufferScannerTest(); + runJUnitTest(__test, __test.test_open_curly_bracket); + }); + _ut.test('test_open_paren', () { + final __test = new CharBufferScannerTest(); + runJUnitTest(__test, __test.test_open_paren); + }); + _ut.test('test_open_square_bracket', () { + final __test = new CharBufferScannerTest(); + runJUnitTest(__test, __test.test_open_square_bracket); + }); + _ut.test('test_percent', () { + final __test = new CharBufferScannerTest(); + runJUnitTest(__test, __test.test_percent); + }); + _ut.test('test_percent_eq', () { + final __test = new CharBufferScannerTest(); + runJUnitTest(__test, __test.test_percent_eq); + }); + _ut.test('test_period', () { + final __test = new CharBufferScannerTest(); + runJUnitTest(__test, __test.test_period); + }); + _ut.test('test_periodAfterNumberNotIncluded_identifier', () { + final __test = new CharBufferScannerTest(); + runJUnitTest(__test, __test.test_periodAfterNumberNotIncluded_identifier); + }); + _ut.test('test_periodAfterNumberNotIncluded_period', () { + final __test = new CharBufferScannerTest(); + runJUnitTest(__test, __test.test_periodAfterNumberNotIncluded_period); + }); + _ut.test('test_period_period', () { + final __test = new CharBufferScannerTest(); + runJUnitTest(__test, __test.test_period_period); + }); + _ut.test('test_period_period_period', () { + final __test = new CharBufferScannerTest(); + runJUnitTest(__test, __test.test_period_period_period); + }); + _ut.test('test_plus', () { + final __test = new CharBufferScannerTest(); + runJUnitTest(__test, __test.test_plus); + }); + _ut.test('test_plus_eq', () { + final __test = new CharBufferScannerTest(); + runJUnitTest(__test, __test.test_plus_eq); + }); + _ut.test('test_plus_plus', () { + final __test = new CharBufferScannerTest(); + runJUnitTest(__test, __test.test_plus_plus); + }); + _ut.test('test_question', () { + final __test = new CharBufferScannerTest(); + runJUnitTest(__test, __test.test_question); + }); + _ut.test('test_scriptTag_withArgs', () { + final __test = new CharBufferScannerTest(); + runJUnitTest(__test, __test.test_scriptTag_withArgs); + }); + _ut.test('test_scriptTag_withSpace', () { + final __test = new CharBufferScannerTest(); + runJUnitTest(__test, __test.test_scriptTag_withSpace); + }); + _ut.test('test_scriptTag_withoutSpace', () { + final __test = new CharBufferScannerTest(); + runJUnitTest(__test, __test.test_scriptTag_withoutSpace); + }); + _ut.test('test_semicolon', () { + final __test = new CharBufferScannerTest(); + runJUnitTest(__test, __test.test_semicolon); + }); + _ut.test('test_slash', () { + final __test = new CharBufferScannerTest(); + runJUnitTest(__test, __test.test_slash); + }); + _ut.test('test_slash_eq', () { + final __test = new CharBufferScannerTest(); + runJUnitTest(__test, __test.test_slash_eq); + }); + _ut.test('test_star', () { + final __test = new CharBufferScannerTest(); + runJUnitTest(__test, __test.test_star); + }); + _ut.test('test_star_eq', () { + final __test = new CharBufferScannerTest(); + runJUnitTest(__test, __test.test_star_eq); + }); + _ut.test('test_startAndEnd', () { + final __test = new CharBufferScannerTest(); + runJUnitTest(__test, __test.test_startAndEnd); + }); + _ut.test('test_string_multi_double', () { + final __test = new CharBufferScannerTest(); + runJUnitTest(__test, __test.test_string_multi_double); + }); + _ut.test('test_string_multi_interpolation_block', () { + final __test = new CharBufferScannerTest(); + runJUnitTest(__test, __test.test_string_multi_interpolation_block); + }); + _ut.test('test_string_multi_interpolation_identifier', () { + final __test = new CharBufferScannerTest(); + runJUnitTest(__test, __test.test_string_multi_interpolation_identifier); + }); + _ut.test('test_string_multi_single', () { + final __test = new CharBufferScannerTest(); + runJUnitTest(__test, __test.test_string_multi_single); + }); + _ut.test('test_string_multi_unterminated', () { + final __test = new CharBufferScannerTest(); + runJUnitTest(__test, __test.test_string_multi_unterminated); + }); + _ut.test('test_string_raw_multi_double', () { + final __test = new CharBufferScannerTest(); + runJUnitTest(__test, __test.test_string_raw_multi_double); + }); + _ut.test('test_string_raw_multi_single', () { + final __test = new CharBufferScannerTest(); + runJUnitTest(__test, __test.test_string_raw_multi_single); + }); + _ut.test('test_string_raw_multi_unterminated', () { + final __test = new CharBufferScannerTest(); + runJUnitTest(__test, __test.test_string_raw_multi_unterminated); + }); + _ut.test('test_string_raw_simple_double', () { + final __test = new CharBufferScannerTest(); + runJUnitTest(__test, __test.test_string_raw_simple_double); + }); + _ut.test('test_string_raw_simple_single', () { + final __test = new CharBufferScannerTest(); + runJUnitTest(__test, __test.test_string_raw_simple_single); + }); + _ut.test('test_string_raw_simple_unterminated_eof', () { + final __test = new CharBufferScannerTest(); + runJUnitTest(__test, __test.test_string_raw_simple_unterminated_eof); + }); + _ut.test('test_string_raw_simple_unterminated_eol', () { + final __test = new CharBufferScannerTest(); + runJUnitTest(__test, __test.test_string_raw_simple_unterminated_eol); + }); + _ut.test('test_string_simple_double', () { + final __test = new CharBufferScannerTest(); + runJUnitTest(__test, __test.test_string_simple_double); + }); + _ut.test('test_string_simple_escapedDollar', () { + final __test = new CharBufferScannerTest(); + runJUnitTest(__test, __test.test_string_simple_escapedDollar); + }); + _ut.test('test_string_simple_interpolation_block', () { + final __test = new CharBufferScannerTest(); + runJUnitTest(__test, __test.test_string_simple_interpolation_block); + }); + _ut.test('test_string_simple_interpolation_blockWithNestedMap', () { + final __test = new CharBufferScannerTest(); + runJUnitTest(__test, __test.test_string_simple_interpolation_blockWithNestedMap); + }); + _ut.test('test_string_simple_interpolation_firstAndLast', () { + final __test = new CharBufferScannerTest(); + runJUnitTest(__test, __test.test_string_simple_interpolation_firstAndLast); + }); + _ut.test('test_string_simple_interpolation_identifier', () { + final __test = new CharBufferScannerTest(); + runJUnitTest(__test, __test.test_string_simple_interpolation_identifier); + }); + _ut.test('test_string_simple_single', () { + final __test = new CharBufferScannerTest(); + runJUnitTest(__test, __test.test_string_simple_single); + }); + _ut.test('test_string_simple_unterminated_eof', () { + final __test = new CharBufferScannerTest(); + runJUnitTest(__test, __test.test_string_simple_unterminated_eof); + }); + _ut.test('test_string_simple_unterminated_eol', () { + final __test = new CharBufferScannerTest(); + runJUnitTest(__test, __test.test_string_simple_unterminated_eol); + }); + _ut.test('test_tilde', () { + final __test = new CharBufferScannerTest(); + runJUnitTest(__test, __test.test_tilde); + }); + _ut.test('test_tilde_slash', () { + final __test = new CharBufferScannerTest(); + runJUnitTest(__test, __test.test_tilde_slash); + }); + _ut.test('test_tilde_slash_eq', () { + final __test = new CharBufferScannerTest(); + runJUnitTest(__test, __test.test_tilde_slash_eq); + }); + _ut.test('test_unclosedPairInInterpolation', () { + final __test = new CharBufferScannerTest(); + runJUnitTest(__test, __test.test_unclosedPairInInterpolation); + }); + }); + } +} +/** + * Instances of the class {@code TokenStreamValidator} are used to validate the correct construction + * of a stream of tokens. + */ +class TokenStreamValidator { + /** + * Validate that the stream of tokens that starts with the given token is correct. + * @param token the first token in the stream of tokens to be validated + */ + void validate(Token token) { + StringBuffer builder = new StringBuffer(); + validateStream(builder, token); + if (builder.length > 0) { + JUnitTestCase.fail(builder.toString()); + } + } + void validateStream(StringBuffer builder, Token token) { + if (token == null) { + return; + } + Token previousToken = null; + int previousEnd = -1; + Token currentToken = token; + while (currentToken != null && currentToken.type != TokenType.EOF) { + validateStream(builder, currentToken.precedingComments); + TokenType type21 = currentToken.type; + if (type21 == TokenType.OPEN_CURLY_BRACKET || type21 == TokenType.OPEN_PAREN || type21 == TokenType.OPEN_SQUARE_BRACKET || type21 == TokenType.STRING_INTERPOLATION_EXPRESSION) { + if (currentToken is! BeginToken) { + builder.add("\r\nExpected BeginToken, found "); + builder.add(currentToken.runtimeType.toString()); + builder.add(" "); + writeToken(builder, currentToken); + } + } + int currentStart = currentToken.offset; + int currentLength = currentToken.length; + int currentEnd = currentStart + currentLength - 1; + if (currentStart <= previousEnd) { + builder.add("\r\nInvalid token sequence: "); + writeToken(builder, previousToken); + builder.add(" followed by "); + writeToken(builder, currentToken); + } + previousEnd = currentEnd; + previousToken = currentToken; + currentToken = currentToken.next; + } + } + void writeToken(StringBuffer builder, Token token) { + builder.add("["); + builder.add(token.type); + builder.add(", '"); + builder.add(token.lexeme); + builder.add("', "); + builder.add(token.offset); + builder.add(", "); + builder.add(token.length); + builder.add("]"); + } +} +class TokenTypeTest extends EngineTestCase { + void test_isOperator() { + JUnitTestCase.assertTrue(TokenType.AMPERSAND.isOperator()); + JUnitTestCase.assertTrue(TokenType.AMPERSAND_AMPERSAND.isOperator()); + JUnitTestCase.assertTrue(TokenType.AMPERSAND_EQ.isOperator()); + JUnitTestCase.assertTrue(TokenType.BANG.isOperator()); + JUnitTestCase.assertTrue(TokenType.BANG_EQ.isOperator()); + JUnitTestCase.assertTrue(TokenType.BAR.isOperator()); + JUnitTestCase.assertTrue(TokenType.BAR_BAR.isOperator()); + JUnitTestCase.assertTrue(TokenType.BAR_EQ.isOperator()); + JUnitTestCase.assertTrue(TokenType.CARET.isOperator()); + JUnitTestCase.assertTrue(TokenType.CARET_EQ.isOperator()); + JUnitTestCase.assertTrue(TokenType.EQ.isOperator()); + JUnitTestCase.assertTrue(TokenType.EQ_EQ.isOperator()); + JUnitTestCase.assertTrue(TokenType.GT.isOperator()); + JUnitTestCase.assertTrue(TokenType.GT_EQ.isOperator()); + JUnitTestCase.assertTrue(TokenType.GT_GT.isOperator()); + JUnitTestCase.assertTrue(TokenType.GT_GT_EQ.isOperator()); + JUnitTestCase.assertTrue(TokenType.INDEX.isOperator()); + JUnitTestCase.assertTrue(TokenType.INDEX_EQ.isOperator()); + JUnitTestCase.assertTrue(TokenType.IS.isOperator()); + JUnitTestCase.assertTrue(TokenType.LT.isOperator()); + JUnitTestCase.assertTrue(TokenType.LT_EQ.isOperator()); + JUnitTestCase.assertTrue(TokenType.LT_LT.isOperator()); + JUnitTestCase.assertTrue(TokenType.LT_LT_EQ.isOperator()); + JUnitTestCase.assertTrue(TokenType.MINUS.isOperator()); + JUnitTestCase.assertTrue(TokenType.MINUS_EQ.isOperator()); + JUnitTestCase.assertTrue(TokenType.MINUS_MINUS.isOperator()); + JUnitTestCase.assertTrue(TokenType.PERCENT.isOperator()); + JUnitTestCase.assertTrue(TokenType.PERCENT_EQ.isOperator()); + JUnitTestCase.assertTrue(TokenType.PERIOD_PERIOD.isOperator()); + JUnitTestCase.assertTrue(TokenType.PLUS.isOperator()); + JUnitTestCase.assertTrue(TokenType.PLUS_EQ.isOperator()); + JUnitTestCase.assertTrue(TokenType.PLUS_PLUS.isOperator()); + JUnitTestCase.assertTrue(TokenType.QUESTION.isOperator()); + JUnitTestCase.assertTrue(TokenType.SLASH.isOperator()); + JUnitTestCase.assertTrue(TokenType.SLASH_EQ.isOperator()); + JUnitTestCase.assertTrue(TokenType.STAR.isOperator()); + JUnitTestCase.assertTrue(TokenType.STAR_EQ.isOperator()); + JUnitTestCase.assertTrue(TokenType.TILDE.isOperator()); + JUnitTestCase.assertTrue(TokenType.TILDE_SLASH.isOperator()); + JUnitTestCase.assertTrue(TokenType.TILDE_SLASH_EQ.isOperator()); + } + void test_isUserDefinableOperator() { + JUnitTestCase.assertTrue(TokenType.AMPERSAND.isUserDefinableOperator()); + JUnitTestCase.assertTrue(TokenType.BAR.isUserDefinableOperator()); + JUnitTestCase.assertTrue(TokenType.CARET.isUserDefinableOperator()); + JUnitTestCase.assertTrue(TokenType.EQ_EQ.isUserDefinableOperator()); + JUnitTestCase.assertTrue(TokenType.GT.isUserDefinableOperator()); + JUnitTestCase.assertTrue(TokenType.GT_EQ.isUserDefinableOperator()); + JUnitTestCase.assertTrue(TokenType.GT_GT.isUserDefinableOperator()); + JUnitTestCase.assertTrue(TokenType.INDEX.isUserDefinableOperator()); + JUnitTestCase.assertTrue(TokenType.INDEX_EQ.isUserDefinableOperator()); + JUnitTestCase.assertTrue(TokenType.LT.isUserDefinableOperator()); + JUnitTestCase.assertTrue(TokenType.LT_EQ.isUserDefinableOperator()); + JUnitTestCase.assertTrue(TokenType.LT_LT.isUserDefinableOperator()); + JUnitTestCase.assertTrue(TokenType.MINUS.isUserDefinableOperator()); + JUnitTestCase.assertTrue(TokenType.PERCENT.isUserDefinableOperator()); + JUnitTestCase.assertTrue(TokenType.PLUS.isUserDefinableOperator()); + JUnitTestCase.assertTrue(TokenType.SLASH.isUserDefinableOperator()); + JUnitTestCase.assertTrue(TokenType.STAR.isUserDefinableOperator()); + JUnitTestCase.assertTrue(TokenType.TILDE.isUserDefinableOperator()); + JUnitTestCase.assertTrue(TokenType.TILDE_SLASH.isUserDefinableOperator()); + } + static dartSuite() { + _ut.group('TokenTypeTest', () { + _ut.test('test_isOperator', () { + final __test = new TokenTypeTest(); + runJUnitTest(__test, __test.test_isOperator); + }); + _ut.test('test_isUserDefinableOperator', () { + final __test = new TokenTypeTest(); + runJUnitTest(__test, __test.test_isUserDefinableOperator); + }); + }); + } +} +/** + * The class {@code TokenFactory} defines utility methods that can be used to create tokens. + */ +class TokenFactory { + static Token token(Keyword keyword) => new KeywordToken(keyword, 0); + static Token token2(String lexeme) => new StringToken(TokenType.STRING, lexeme, 0); + static Token token3(TokenType type) => new Token(type, 0); + static Token token4(TokenType type, String lexeme) => new StringToken(type, lexeme, 0); + /** + * Prevent the creation of instances of this class. + */ + TokenFactory() { + } +} +class KeywordStateTest extends JUnitTestCase { + void test_KeywordState() { + List keywords = Keyword.values; + int keywordCount = keywords.length; + List textToTest = new List.fixedLength(keywordCount * 3); + for (int i = 0; i < keywordCount; i++) { + String syntax2 = keywords[i].syntax; + textToTest[i] = syntax2; + textToTest[i + keywordCount] = "${syntax2}x"; + textToTest[i + keywordCount * 2] = syntax2.substring(0, syntax2.length - 1); + } + KeywordState firstState = KeywordState.KEYWORD_STATE; + for (int i = 0; i < textToTest.length; i++) { + String text = textToTest[i]; + int index = 0; + int length9 = text.length; + KeywordState state = firstState; + while (index < length9 && state != null) { + state = state.next(text.charCodeAt(index)); + index++; + } + if (i < keywordCount) { + JUnitTestCase.assertNotNull(state); + JUnitTestCase.assertNotNull(state.keyword()); + JUnitTestCase.assertEquals(keywords[i], state.keyword()); + } else if (i < keywordCount * 2) { + JUnitTestCase.assertNull(state); + } else { + JUnitTestCase.assertNotNull(state); + } + } + } + static dartSuite() { + _ut.group('KeywordStateTest', () { + _ut.test('test_KeywordState', () { + final __test = new KeywordStateTest(); + runJUnitTest(__test, __test.test_KeywordState); + }); + }); + } +} +class StringScannerTest extends AbstractScannerTest { + void test_setSourceStart() { + int offsetDelta = 42; + GatheringErrorListener listener = new GatheringErrorListener(); + StringScanner scanner = new StringScanner(null, "a", listener); + scanner.setSourceStart(3, 9, offsetDelta); + scanner.tokenize(); + List lineStarts2 = scanner.lineStarts; + JUnitTestCase.assertNotNull(lineStarts2); + JUnitTestCase.assertEquals(3, lineStarts2.length); + JUnitTestCase.assertEquals(33, lineStarts2[2]); + } + Token scan(String source, GatheringErrorListener listener) { + StringScanner scanner = new StringScanner(null, source, listener); + Token result = scanner.tokenize(); + listener.setLineInfo(new TestSource(), scanner.lineStarts); + return result; + } + static dartSuite() { + _ut.group('StringScannerTest', () { + _ut.test('test_ampersand', () { + final __test = new StringScannerTest(); + runJUnitTest(__test, __test.test_ampersand); + }); + _ut.test('test_ampersand_ampersand', () { + final __test = new StringScannerTest(); + runJUnitTest(__test, __test.test_ampersand_ampersand); + }); + _ut.test('test_ampersand_eq', () { + final __test = new StringScannerTest(); + runJUnitTest(__test, __test.test_ampersand_eq); + }); + _ut.test('test_at', () { + final __test = new StringScannerTest(); + runJUnitTest(__test, __test.test_at); + }); + _ut.test('test_backping', () { + final __test = new StringScannerTest(); + runJUnitTest(__test, __test.test_backping); + }); + _ut.test('test_backslash', () { + final __test = new StringScannerTest(); + runJUnitTest(__test, __test.test_backslash); + }); + _ut.test('test_bang', () { + final __test = new StringScannerTest(); + runJUnitTest(__test, __test.test_bang); + }); + _ut.test('test_bang_eq', () { + final __test = new StringScannerTest(); + runJUnitTest(__test, __test.test_bang_eq); + }); + _ut.test('test_bar', () { + final __test = new StringScannerTest(); + runJUnitTest(__test, __test.test_bar); + }); + _ut.test('test_bar_bar', () { + final __test = new StringScannerTest(); + runJUnitTest(__test, __test.test_bar_bar); + }); + _ut.test('test_bar_eq', () { + final __test = new StringScannerTest(); + runJUnitTest(__test, __test.test_bar_eq); + }); + _ut.test('test_caret', () { + final __test = new StringScannerTest(); + runJUnitTest(__test, __test.test_caret); + }); + _ut.test('test_caret_eq', () { + final __test = new StringScannerTest(); + runJUnitTest(__test, __test.test_caret_eq); + }); + _ut.test('test_close_curly_bracket', () { + final __test = new StringScannerTest(); + runJUnitTest(__test, __test.test_close_curly_bracket); + }); + _ut.test('test_close_paren', () { + final __test = new StringScannerTest(); + runJUnitTest(__test, __test.test_close_paren); + }); + _ut.test('test_close_quare_bracket', () { + final __test = new StringScannerTest(); + runJUnitTest(__test, __test.test_close_quare_bracket); + }); + _ut.test('test_colon', () { + final __test = new StringScannerTest(); + runJUnitTest(__test, __test.test_colon); + }); + _ut.test('test_comma', () { + final __test = new StringScannerTest(); + runJUnitTest(__test, __test.test_comma); + }); + _ut.test('test_comment_multi', () { + final __test = new StringScannerTest(); + runJUnitTest(__test, __test.test_comment_multi); + }); + _ut.test('test_comment_multi_unterminated', () { + final __test = new StringScannerTest(); + runJUnitTest(__test, __test.test_comment_multi_unterminated); + }); + _ut.test('test_comment_nested', () { + final __test = new StringScannerTest(); + runJUnitTest(__test, __test.test_comment_nested); + }); + _ut.test('test_comment_single', () { + final __test = new StringScannerTest(); + runJUnitTest(__test, __test.test_comment_single); + }); + _ut.test('test_double_both_E', () { + final __test = new StringScannerTest(); + runJUnitTest(__test, __test.test_double_both_E); + }); + _ut.test('test_double_both_e', () { + final __test = new StringScannerTest(); + runJUnitTest(__test, __test.test_double_both_e); + }); + _ut.test('test_double_fraction', () { + final __test = new StringScannerTest(); + runJUnitTest(__test, __test.test_double_fraction); + }); + _ut.test('test_double_fraction_D', () { + final __test = new StringScannerTest(); + runJUnitTest(__test, __test.test_double_fraction_D); + }); + _ut.test('test_double_fraction_E', () { + final __test = new StringScannerTest(); + runJUnitTest(__test, __test.test_double_fraction_E); + }); + _ut.test('test_double_fraction_Ed', () { + final __test = new StringScannerTest(); + runJUnitTest(__test, __test.test_double_fraction_Ed); + }); + _ut.test('test_double_fraction_d', () { + final __test = new StringScannerTest(); + runJUnitTest(__test, __test.test_double_fraction_d); + }); + _ut.test('test_double_fraction_e', () { + final __test = new StringScannerTest(); + runJUnitTest(__test, __test.test_double_fraction_e); + }); + _ut.test('test_double_fraction_ed', () { + final __test = new StringScannerTest(); + runJUnitTest(__test, __test.test_double_fraction_ed); + }); + _ut.test('test_double_missingDigitInExponent', () { + final __test = new StringScannerTest(); + runJUnitTest(__test, __test.test_double_missingDigitInExponent); + }); + _ut.test('test_double_whole_D', () { + final __test = new StringScannerTest(); + runJUnitTest(__test, __test.test_double_whole_D); + }); + _ut.test('test_double_whole_E', () { + final __test = new StringScannerTest(); + runJUnitTest(__test, __test.test_double_whole_E); + }); + _ut.test('test_double_whole_Ed', () { + final __test = new StringScannerTest(); + runJUnitTest(__test, __test.test_double_whole_Ed); + }); + _ut.test('test_double_whole_d', () { + final __test = new StringScannerTest(); + runJUnitTest(__test, __test.test_double_whole_d); + }); + _ut.test('test_double_whole_e', () { + final __test = new StringScannerTest(); + runJUnitTest(__test, __test.test_double_whole_e); + }); + _ut.test('test_double_whole_ed', () { + final __test = new StringScannerTest(); + runJUnitTest(__test, __test.test_double_whole_ed); + }); + _ut.test('test_eq', () { + final __test = new StringScannerTest(); + runJUnitTest(__test, __test.test_eq); + }); + _ut.test('test_eq_eq', () { + final __test = new StringScannerTest(); + runJUnitTest(__test, __test.test_eq_eq); + }); + _ut.test('test_gt', () { + final __test = new StringScannerTest(); + runJUnitTest(__test, __test.test_gt); + }); + _ut.test('test_gt_eq', () { + final __test = new StringScannerTest(); + runJUnitTest(__test, __test.test_gt_eq); + }); + _ut.test('test_gt_gt', () { + final __test = new StringScannerTest(); + runJUnitTest(__test, __test.test_gt_gt); + }); + _ut.test('test_gt_gt_eq', () { + final __test = new StringScannerTest(); + runJUnitTest(__test, __test.test_gt_gt_eq); + }); + _ut.test('test_hash', () { + final __test = new StringScannerTest(); + runJUnitTest(__test, __test.test_hash); + }); + _ut.test('test_hexidecimal', () { + final __test = new StringScannerTest(); + runJUnitTest(__test, __test.test_hexidecimal); + }); + _ut.test('test_hexidecimal_missingDigit', () { + final __test = new StringScannerTest(); + runJUnitTest(__test, __test.test_hexidecimal_missingDigit); + }); + _ut.test('test_identifier', () { + final __test = new StringScannerTest(); + runJUnitTest(__test, __test.test_identifier); + }); + _ut.test('test_illegalChar', () { + final __test = new StringScannerTest(); + runJUnitTest(__test, __test.test_illegalChar); + }); + _ut.test('test_index', () { + final __test = new StringScannerTest(); + runJUnitTest(__test, __test.test_index); + }); + _ut.test('test_index_eq', () { + final __test = new StringScannerTest(); + runJUnitTest(__test, __test.test_index_eq); + }); + _ut.test('test_int', () { + final __test = new StringScannerTest(); + runJUnitTest(__test, __test.test_int); + }); + _ut.test('test_int_initialZero', () { + final __test = new StringScannerTest(); + runJUnitTest(__test, __test.test_int_initialZero); + }); + _ut.test('test_keyword_abstract', () { + final __test = new StringScannerTest(); + runJUnitTest(__test, __test.test_keyword_abstract); + }); + _ut.test('test_keyword_as', () { + final __test = new StringScannerTest(); + runJUnitTest(__test, __test.test_keyword_as); + }); + _ut.test('test_keyword_assert', () { + final __test = new StringScannerTest(); + runJUnitTest(__test, __test.test_keyword_assert); + }); + _ut.test('test_keyword_break', () { + final __test = new StringScannerTest(); + runJUnitTest(__test, __test.test_keyword_break); + }); + _ut.test('test_keyword_case', () { + final __test = new StringScannerTest(); + runJUnitTest(__test, __test.test_keyword_case); + }); + _ut.test('test_keyword_catch', () { + final __test = new StringScannerTest(); + runJUnitTest(__test, __test.test_keyword_catch); + }); + _ut.test('test_keyword_class', () { + final __test = new StringScannerTest(); + runJUnitTest(__test, __test.test_keyword_class); + }); + _ut.test('test_keyword_const', () { + final __test = new StringScannerTest(); + runJUnitTest(__test, __test.test_keyword_const); + }); + _ut.test('test_keyword_continue', () { + final __test = new StringScannerTest(); + runJUnitTest(__test, __test.test_keyword_continue); + }); + _ut.test('test_keyword_default', () { + final __test = new StringScannerTest(); + runJUnitTest(__test, __test.test_keyword_default); + }); + _ut.test('test_keyword_do', () { + final __test = new StringScannerTest(); + runJUnitTest(__test, __test.test_keyword_do); + }); + _ut.test('test_keyword_dynamic', () { + final __test = new StringScannerTest(); + runJUnitTest(__test, __test.test_keyword_dynamic); + }); + _ut.test('test_keyword_else', () { + final __test = new StringScannerTest(); + runJUnitTest(__test, __test.test_keyword_else); + }); + _ut.test('test_keyword_export', () { + final __test = new StringScannerTest(); + runJUnitTest(__test, __test.test_keyword_export); + }); + _ut.test('test_keyword_extends', () { + final __test = new StringScannerTest(); + runJUnitTest(__test, __test.test_keyword_extends); + }); + _ut.test('test_keyword_factory', () { + final __test = new StringScannerTest(); + runJUnitTest(__test, __test.test_keyword_factory); + }); + _ut.test('test_keyword_false', () { + final __test = new StringScannerTest(); + runJUnitTest(__test, __test.test_keyword_false); + }); + _ut.test('test_keyword_final', () { + final __test = new StringScannerTest(); + runJUnitTest(__test, __test.test_keyword_final); + }); + _ut.test('test_keyword_finally', () { + final __test = new StringScannerTest(); + runJUnitTest(__test, __test.test_keyword_finally); + }); + _ut.test('test_keyword_for', () { + final __test = new StringScannerTest(); + runJUnitTest(__test, __test.test_keyword_for); + }); + _ut.test('test_keyword_get', () { + final __test = new StringScannerTest(); + runJUnitTest(__test, __test.test_keyword_get); + }); + _ut.test('test_keyword_if', () { + final __test = new StringScannerTest(); + runJUnitTest(__test, __test.test_keyword_if); + }); + _ut.test('test_keyword_implements', () { + final __test = new StringScannerTest(); + runJUnitTest(__test, __test.test_keyword_implements); + }); + _ut.test('test_keyword_import', () { + final __test = new StringScannerTest(); + runJUnitTest(__test, __test.test_keyword_import); + }); + _ut.test('test_keyword_in', () { + final __test = new StringScannerTest(); + runJUnitTest(__test, __test.test_keyword_in); + }); + _ut.test('test_keyword_is', () { + final __test = new StringScannerTest(); + runJUnitTest(__test, __test.test_keyword_is); + }); + _ut.test('test_keyword_library', () { + final __test = new StringScannerTest(); + runJUnitTest(__test, __test.test_keyword_library); + }); + _ut.test('test_keyword_new', () { + final __test = new StringScannerTest(); + runJUnitTest(__test, __test.test_keyword_new); + }); + _ut.test('test_keyword_null', () { + final __test = new StringScannerTest(); + runJUnitTest(__test, __test.test_keyword_null); + }); + _ut.test('test_keyword_operator', () { + final __test = new StringScannerTest(); + runJUnitTest(__test, __test.test_keyword_operator); + }); + _ut.test('test_keyword_part', () { + final __test = new StringScannerTest(); + runJUnitTest(__test, __test.test_keyword_part); + }); + _ut.test('test_keyword_return', () { + final __test = new StringScannerTest(); + runJUnitTest(__test, __test.test_keyword_return); + }); + _ut.test('test_keyword_set', () { + final __test = new StringScannerTest(); + runJUnitTest(__test, __test.test_keyword_set); + }); + _ut.test('test_keyword_static', () { + final __test = new StringScannerTest(); + runJUnitTest(__test, __test.test_keyword_static); + }); + _ut.test('test_keyword_super', () { + final __test = new StringScannerTest(); + runJUnitTest(__test, __test.test_keyword_super); + }); + _ut.test('test_keyword_switch', () { + final __test = new StringScannerTest(); + runJUnitTest(__test, __test.test_keyword_switch); + }); + _ut.test('test_keyword_this', () { + final __test = new StringScannerTest(); + runJUnitTest(__test, __test.test_keyword_this); + }); + _ut.test('test_keyword_throw', () { + final __test = new StringScannerTest(); + runJUnitTest(__test, __test.test_keyword_throw); + }); + _ut.test('test_keyword_true', () { + final __test = new StringScannerTest(); + runJUnitTest(__test, __test.test_keyword_true); + }); + _ut.test('test_keyword_try', () { + final __test = new StringScannerTest(); + runJUnitTest(__test, __test.test_keyword_try); + }); + _ut.test('test_keyword_typedef', () { + final __test = new StringScannerTest(); + runJUnitTest(__test, __test.test_keyword_typedef); + }); + _ut.test('test_keyword_var', () { + final __test = new StringScannerTest(); + runJUnitTest(__test, __test.test_keyword_var); + }); + _ut.test('test_keyword_void', () { + final __test = new StringScannerTest(); + runJUnitTest(__test, __test.test_keyword_void); + }); + _ut.test('test_keyword_while', () { + final __test = new StringScannerTest(); + runJUnitTest(__test, __test.test_keyword_while); + }); + _ut.test('test_keyword_with', () { + final __test = new StringScannerTest(); + runJUnitTest(__test, __test.test_keyword_with); + }); + _ut.test('test_lt', () { + final __test = new StringScannerTest(); + runJUnitTest(__test, __test.test_lt); + }); + _ut.test('test_lt_eq', () { + final __test = new StringScannerTest(); + runJUnitTest(__test, __test.test_lt_eq); + }); + _ut.test('test_lt_lt', () { + final __test = new StringScannerTest(); + runJUnitTest(__test, __test.test_lt_lt); + }); + _ut.test('test_lt_lt_eq', () { + final __test = new StringScannerTest(); + runJUnitTest(__test, __test.test_lt_lt_eq); + }); + _ut.test('test_minus', () { + final __test = new StringScannerTest(); + runJUnitTest(__test, __test.test_minus); + }); + _ut.test('test_minus_eq', () { + final __test = new StringScannerTest(); + runJUnitTest(__test, __test.test_minus_eq); + }); + _ut.test('test_minus_minus', () { + final __test = new StringScannerTest(); + runJUnitTest(__test, __test.test_minus_minus); + }); + _ut.test('test_openSquareBracket', () { + final __test = new StringScannerTest(); + runJUnitTest(__test, __test.test_openSquareBracket); + }); + _ut.test('test_open_curly_bracket', () { + final __test = new StringScannerTest(); + runJUnitTest(__test, __test.test_open_curly_bracket); + }); + _ut.test('test_open_paren', () { + final __test = new StringScannerTest(); + runJUnitTest(__test, __test.test_open_paren); + }); + _ut.test('test_open_square_bracket', () { + final __test = new StringScannerTest(); + runJUnitTest(__test, __test.test_open_square_bracket); + }); + _ut.test('test_percent', () { + final __test = new StringScannerTest(); + runJUnitTest(__test, __test.test_percent); + }); + _ut.test('test_percent_eq', () { + final __test = new StringScannerTest(); + runJUnitTest(__test, __test.test_percent_eq); + }); + _ut.test('test_period', () { + final __test = new StringScannerTest(); + runJUnitTest(__test, __test.test_period); + }); + _ut.test('test_periodAfterNumberNotIncluded_identifier', () { + final __test = new StringScannerTest(); + runJUnitTest(__test, __test.test_periodAfterNumberNotIncluded_identifier); + }); + _ut.test('test_periodAfterNumberNotIncluded_period', () { + final __test = new StringScannerTest(); + runJUnitTest(__test, __test.test_periodAfterNumberNotIncluded_period); + }); + _ut.test('test_period_period', () { + final __test = new StringScannerTest(); + runJUnitTest(__test, __test.test_period_period); + }); + _ut.test('test_period_period_period', () { + final __test = new StringScannerTest(); + runJUnitTest(__test, __test.test_period_period_period); + }); + _ut.test('test_plus', () { + final __test = new StringScannerTest(); + runJUnitTest(__test, __test.test_plus); + }); + _ut.test('test_plus_eq', () { + final __test = new StringScannerTest(); + runJUnitTest(__test, __test.test_plus_eq); + }); + _ut.test('test_plus_plus', () { + final __test = new StringScannerTest(); + runJUnitTest(__test, __test.test_plus_plus); + }); + _ut.test('test_question', () { + final __test = new StringScannerTest(); + runJUnitTest(__test, __test.test_question); + }); + _ut.test('test_scriptTag_withArgs', () { + final __test = new StringScannerTest(); + runJUnitTest(__test, __test.test_scriptTag_withArgs); + }); + _ut.test('test_scriptTag_withSpace', () { + final __test = new StringScannerTest(); + runJUnitTest(__test, __test.test_scriptTag_withSpace); + }); + _ut.test('test_scriptTag_withoutSpace', () { + final __test = new StringScannerTest(); + runJUnitTest(__test, __test.test_scriptTag_withoutSpace); + }); + _ut.test('test_semicolon', () { + final __test = new StringScannerTest(); + runJUnitTest(__test, __test.test_semicolon); + }); + _ut.test('test_setSourceStart', () { + final __test = new StringScannerTest(); + runJUnitTest(__test, __test.test_setSourceStart); + }); + _ut.test('test_slash', () { + final __test = new StringScannerTest(); + runJUnitTest(__test, __test.test_slash); + }); + _ut.test('test_slash_eq', () { + final __test = new StringScannerTest(); + runJUnitTest(__test, __test.test_slash_eq); + }); + _ut.test('test_star', () { + final __test = new StringScannerTest(); + runJUnitTest(__test, __test.test_star); + }); + _ut.test('test_star_eq', () { + final __test = new StringScannerTest(); + runJUnitTest(__test, __test.test_star_eq); + }); + _ut.test('test_startAndEnd', () { + final __test = new StringScannerTest(); + runJUnitTest(__test, __test.test_startAndEnd); + }); + _ut.test('test_string_multi_double', () { + final __test = new StringScannerTest(); + runJUnitTest(__test, __test.test_string_multi_double); + }); + _ut.test('test_string_multi_interpolation_block', () { + final __test = new StringScannerTest(); + runJUnitTest(__test, __test.test_string_multi_interpolation_block); + }); + _ut.test('test_string_multi_interpolation_identifier', () { + final __test = new StringScannerTest(); + runJUnitTest(__test, __test.test_string_multi_interpolation_identifier); + }); + _ut.test('test_string_multi_single', () { + final __test = new StringScannerTest(); + runJUnitTest(__test, __test.test_string_multi_single); + }); + _ut.test('test_string_multi_unterminated', () { + final __test = new StringScannerTest(); + runJUnitTest(__test, __test.test_string_multi_unterminated); + }); + _ut.test('test_string_raw_multi_double', () { + final __test = new StringScannerTest(); + runJUnitTest(__test, __test.test_string_raw_multi_double); + }); + _ut.test('test_string_raw_multi_single', () { + final __test = new StringScannerTest(); + runJUnitTest(__test, __test.test_string_raw_multi_single); + }); + _ut.test('test_string_raw_multi_unterminated', () { + final __test = new StringScannerTest(); + runJUnitTest(__test, __test.test_string_raw_multi_unterminated); + }); + _ut.test('test_string_raw_simple_double', () { + final __test = new StringScannerTest(); + runJUnitTest(__test, __test.test_string_raw_simple_double); + }); + _ut.test('test_string_raw_simple_single', () { + final __test = new StringScannerTest(); + runJUnitTest(__test, __test.test_string_raw_simple_single); + }); + _ut.test('test_string_raw_simple_unterminated_eof', () { + final __test = new StringScannerTest(); + runJUnitTest(__test, __test.test_string_raw_simple_unterminated_eof); + }); + _ut.test('test_string_raw_simple_unterminated_eol', () { + final __test = new StringScannerTest(); + runJUnitTest(__test, __test.test_string_raw_simple_unterminated_eol); + }); + _ut.test('test_string_simple_double', () { + final __test = new StringScannerTest(); + runJUnitTest(__test, __test.test_string_simple_double); + }); + _ut.test('test_string_simple_escapedDollar', () { + final __test = new StringScannerTest(); + runJUnitTest(__test, __test.test_string_simple_escapedDollar); + }); + _ut.test('test_string_simple_interpolation_block', () { + final __test = new StringScannerTest(); + runJUnitTest(__test, __test.test_string_simple_interpolation_block); + }); + _ut.test('test_string_simple_interpolation_blockWithNestedMap', () { + final __test = new StringScannerTest(); + runJUnitTest(__test, __test.test_string_simple_interpolation_blockWithNestedMap); + }); + _ut.test('test_string_simple_interpolation_firstAndLast', () { + final __test = new StringScannerTest(); + runJUnitTest(__test, __test.test_string_simple_interpolation_firstAndLast); + }); + _ut.test('test_string_simple_interpolation_identifier', () { + final __test = new StringScannerTest(); + runJUnitTest(__test, __test.test_string_simple_interpolation_identifier); + }); + _ut.test('test_string_simple_single', () { + final __test = new StringScannerTest(); + runJUnitTest(__test, __test.test_string_simple_single); + }); + _ut.test('test_string_simple_unterminated_eof', () { + final __test = new StringScannerTest(); + runJUnitTest(__test, __test.test_string_simple_unterminated_eof); + }); + _ut.test('test_string_simple_unterminated_eol', () { + final __test = new StringScannerTest(); + runJUnitTest(__test, __test.test_string_simple_unterminated_eol); + }); + _ut.test('test_tilde', () { + final __test = new StringScannerTest(); + runJUnitTest(__test, __test.test_tilde); + }); + _ut.test('test_tilde_slash', () { + final __test = new StringScannerTest(); + runJUnitTest(__test, __test.test_tilde_slash); + }); + _ut.test('test_tilde_slash_eq', () { + final __test = new StringScannerTest(); + runJUnitTest(__test, __test.test_tilde_slash_eq); + }); + _ut.test('test_unclosedPairInInterpolation', () { + final __test = new StringScannerTest(); + runJUnitTest(__test, __test.test_unclosedPairInInterpolation); + }); + }); + } +} +abstract class AbstractScannerTest extends JUnitTestCase { + void test_ampersand() { + assertToken(TokenType.AMPERSAND, "&"); + } + void test_ampersand_ampersand() { + assertToken(TokenType.AMPERSAND_AMPERSAND, "&&"); + } + void test_ampersand_eq() { + assertToken(TokenType.AMPERSAND_EQ, "&="); + } + void test_at() { + assertToken(TokenType.AT, "@"); + } + void test_backping() { + assertToken(TokenType.BACKPING, "`"); + } + void test_backslash() { + assertToken(TokenType.BACKSLASH, "\\"); + } + void test_bang() { + assertToken(TokenType.BANG, "!"); + } + void test_bang_eq() { + assertToken(TokenType.BANG_EQ, "!="); + } + void test_bar() { + assertToken(TokenType.BAR, "|"); + } + void test_bar_bar() { + assertToken(TokenType.BAR_BAR, "||"); + } + void test_bar_eq() { + assertToken(TokenType.BAR_EQ, "|="); + } + void test_caret() { + assertToken(TokenType.CARET, "^"); + } + void test_caret_eq() { + assertToken(TokenType.CARET_EQ, "^="); + } + void test_close_curly_bracket() { + assertToken(TokenType.CLOSE_CURLY_BRACKET, "}"); + } + void test_close_paren() { + assertToken(TokenType.CLOSE_PAREN, ")"); + } + void test_close_quare_bracket() { + assertToken(TokenType.CLOSE_SQUARE_BRACKET, "]"); + } + void test_colon() { + assertToken(TokenType.COLON, ":"); + } + void test_comma() { + assertToken(TokenType.COMMA, ","); + } + void test_comment_multi() { + assertComment(TokenType.MULTI_LINE_COMMENT, "/* comment */"); + } + void test_comment_multi_unterminated() { + assertError(ScannerErrorCode.UNTERMINATED_MULTI_LINE_COMMENT, 3, "/* x"); + } + void test_comment_nested() { + assertComment(TokenType.MULTI_LINE_COMMENT, "/* comment /* within a */ comment */"); + } + void test_comment_single() { + assertComment(TokenType.SINGLE_LINE_COMMENT, "// comment"); + } + void test_double_both_e() { + assertToken(TokenType.DOUBLE, "0.123e4"); + } + void test_double_both_E() { + assertToken(TokenType.DOUBLE, "0.123E4"); + } + void test_double_fraction() { + assertToken(TokenType.DOUBLE, ".123"); + } + void test_double_fraction_d() { + assertToken(TokenType.DOUBLE, ".123d"); + } + void test_double_fraction_D() { + assertToken(TokenType.DOUBLE, ".123D"); + } + void test_double_fraction_e() { + assertToken(TokenType.DOUBLE, ".123e4"); + } + void test_double_fraction_E() { + assertToken(TokenType.DOUBLE, ".123E4"); + } + void test_double_fraction_ed() { + assertToken(TokenType.DOUBLE, ".123e4d"); + } + void test_double_fraction_Ed() { + assertToken(TokenType.DOUBLE, ".123E4d"); + } + void test_double_missingDigitInExponent() { + assertError(ScannerErrorCode.MISSING_DIGIT, 1, "1e"); + } + void test_double_whole_d() { + assertToken(TokenType.DOUBLE, "12d"); + } + void test_double_whole_D() { + assertToken(TokenType.DOUBLE, "12D"); + } + void test_double_whole_e() { + assertToken(TokenType.DOUBLE, "12e4"); + } + void test_double_whole_E() { + assertToken(TokenType.DOUBLE, "12E4"); + } + void test_double_whole_ed() { + assertToken(TokenType.DOUBLE, "12e4d"); + } + void test_double_whole_Ed() { + assertToken(TokenType.DOUBLE, "12E4d"); + } + void test_eq() { + assertToken(TokenType.EQ, "="); + } + void test_eq_eq() { + assertToken(TokenType.EQ_EQ, "=="); + } + void test_gt() { + assertToken(TokenType.GT, ">"); + } + void test_gt_eq() { + assertToken(TokenType.GT_EQ, ">="); + } + void test_gt_gt() { + assertToken(TokenType.GT_GT, ">>"); + } + void test_gt_gt_eq() { + assertToken(TokenType.GT_GT_EQ, ">>="); + } + void test_hash() { + assertToken(TokenType.HASH, "#"); + } + void test_hexidecimal() { + assertToken(TokenType.HEXADECIMAL, "0x1A2B3C"); + } + void test_hexidecimal_missingDigit() { + assertError(ScannerErrorCode.MISSING_HEX_DIGIT, 1, "0x"); + } + void test_identifier() { + assertToken(TokenType.IDENTIFIER, "result"); + } + void test_illegalChar() { + assertError(ScannerErrorCode.ILLEGAL_CHARACTER, 0, "\u0312"); + } + void test_index() { + assertToken(TokenType.INDEX, "[]"); + } + void test_index_eq() { + assertToken(TokenType.INDEX_EQ, "[]="); + } + void test_int() { + assertToken(TokenType.INT, "123"); + } + void test_int_initialZero() { + assertToken(TokenType.INT, "0123"); + } + void test_keyword_abstract() { + assertKeywordToken("abstract"); + } + void test_keyword_as() { + assertKeywordToken("as"); + } + void test_keyword_assert() { + assertKeywordToken("assert"); + } + void test_keyword_break() { + assertKeywordToken("break"); + } + void test_keyword_case() { + assertKeywordToken("case"); + } + void test_keyword_catch() { + assertKeywordToken("catch"); + } + void test_keyword_class() { + assertKeywordToken("class"); + } + void test_keyword_const() { + assertKeywordToken("const"); + } + void test_keyword_continue() { + assertKeywordToken("continue"); + } + void test_keyword_default() { + assertKeywordToken("default"); + } + void test_keyword_do() { + assertKeywordToken("do"); + } + void test_keyword_dynamic() { + assertKeywordToken("dynamic"); + } + void test_keyword_else() { + assertKeywordToken("else"); + } + void test_keyword_export() { + assertKeywordToken("export"); + } + void test_keyword_extends() { + assertKeywordToken("extends"); + } + void test_keyword_factory() { + assertKeywordToken("factory"); + } + void test_keyword_false() { + assertKeywordToken("false"); + } + void test_keyword_final() { + assertKeywordToken("final"); + } + void test_keyword_finally() { + assertKeywordToken("finally"); + } + void test_keyword_for() { + assertKeywordToken("for"); + } + void test_keyword_get() { + assertKeywordToken("get"); + } + void test_keyword_if() { + assertKeywordToken("if"); + } + void test_keyword_implements() { + assertKeywordToken("implements"); + } + void test_keyword_import() { + assertKeywordToken("import"); + } + void test_keyword_in() { + assertKeywordToken("in"); + } + void test_keyword_is() { + assertKeywordToken("is"); + } + void test_keyword_library() { + assertKeywordToken("library"); + } + void test_keyword_new() { + assertKeywordToken("new"); + } + void test_keyword_null() { + assertKeywordToken("null"); + } + void test_keyword_operator() { + assertKeywordToken("operator"); + } + void test_keyword_part() { + assertKeywordToken("part"); + } + void test_keyword_return() { + assertKeywordToken("return"); + } + void test_keyword_set() { + assertKeywordToken("set"); + } + void test_keyword_static() { + assertKeywordToken("static"); + } + void test_keyword_super() { + assertKeywordToken("super"); + } + void test_keyword_switch() { + assertKeywordToken("switch"); + } + void test_keyword_this() { + assertKeywordToken("this"); + } + void test_keyword_throw() { + assertKeywordToken("throw"); + } + void test_keyword_true() { + assertKeywordToken("true"); + } + void test_keyword_try() { + assertKeywordToken("try"); + } + void test_keyword_typedef() { + assertKeywordToken("typedef"); + } + void test_keyword_var() { + assertKeywordToken("var"); + } + void test_keyword_void() { + assertKeywordToken("void"); + } + void test_keyword_while() { + assertKeywordToken("while"); + } + void test_keyword_with() { + assertKeywordToken("with"); + } + void test_lt() { + assertToken(TokenType.LT, "<"); + } + void test_lt_eq() { + assertToken(TokenType.LT_EQ, "<="); + } + void test_lt_lt() { + assertToken(TokenType.LT_LT, "<<"); + } + void test_lt_lt_eq() { + assertToken(TokenType.LT_LT_EQ, "<<="); + } + void test_minus() { + assertToken(TokenType.MINUS, "-"); + } + void test_minus_eq() { + assertToken(TokenType.MINUS_EQ, "-="); + } + void test_minus_minus() { + assertToken(TokenType.MINUS_MINUS, "--"); + } + void test_open_curly_bracket() { + assertToken(TokenType.OPEN_CURLY_BRACKET, "{"); + } + void test_open_paren() { + assertToken(TokenType.OPEN_PAREN, "("); + } + void test_open_square_bracket() { + assertToken(TokenType.OPEN_SQUARE_BRACKET, "["); + } + void test_openSquareBracket() { + assertToken(TokenType.OPEN_SQUARE_BRACKET, "["); + } + void test_percent() { + assertToken(TokenType.PERCENT, "%"); + } + void test_percent_eq() { + assertToken(TokenType.PERCENT_EQ, "%="); + } + void test_period() { + assertToken(TokenType.PERIOD, "."); + } + void test_period_period() { + assertToken(TokenType.PERIOD_PERIOD, ".."); + } + void test_period_period_period() { + assertToken(TokenType.PERIOD_PERIOD_PERIOD, "..."); + } + void test_periodAfterNumberNotIncluded_identifier() { + assertTokens("42.isEven()", [new StringToken(TokenType.INT, "42", 0), new Token(TokenType.PERIOD, 2), new StringToken(TokenType.IDENTIFIER, "isEven", 3), new Token(TokenType.OPEN_PAREN, 9), new Token(TokenType.CLOSE_PAREN, 10)]); + } + void test_periodAfterNumberNotIncluded_period() { + assertTokens("42..isEven()", [new StringToken(TokenType.INT, "42", 0), new Token(TokenType.PERIOD_PERIOD, 2), new StringToken(TokenType.IDENTIFIER, "isEven", 4), new Token(TokenType.OPEN_PAREN, 10), new Token(TokenType.CLOSE_PAREN, 11)]); + } + void test_plus() { + assertToken(TokenType.PLUS, "+"); + } + void test_plus_eq() { + assertToken(TokenType.PLUS_EQ, "+="); + } + void test_plus_plus() { + assertToken(TokenType.PLUS_PLUS, "++"); + } + void test_question() { + assertToken(TokenType.QUESTION, "?"); + } + void test_scriptTag_withArgs() { + assertToken(TokenType.SCRIPT_TAG, "#!/bin/dart -debug"); + } + void test_scriptTag_withoutSpace() { + assertToken(TokenType.SCRIPT_TAG, "#!/bin/dart"); + } + void test_scriptTag_withSpace() { + assertToken(TokenType.SCRIPT_TAG, "#! /bin/dart"); + } + void test_semicolon() { + assertToken(TokenType.SEMICOLON, ";"); + } + void test_slash() { + assertToken(TokenType.SLASH, "/"); + } + void test_slash_eq() { + assertToken(TokenType.SLASH_EQ, "/="); + } + void test_star() { + assertToken(TokenType.STAR, "*"); + } + void test_star_eq() { + assertToken(TokenType.STAR_EQ, "*="); + } + void test_startAndEnd() { + Token token = scan2("a"); + Token previous3 = token.previous; + JUnitTestCase.assertEquals(token, previous3.next); + JUnitTestCase.assertEquals(previous3, previous3.previous); + Token next6 = token.next; + JUnitTestCase.assertEquals(next6, next6.next); + JUnitTestCase.assertEquals(token, next6.previous); + } + void test_string_multi_double() { + assertToken(TokenType.STRING, "\"\"\"multi-line\nstring\"\"\""); + } + void test_string_multi_interpolation_block() { + assertTokens("\"Hello \${name}!\"", [new StringToken(TokenType.STRING, "\"Hello ", 0), new StringToken(TokenType.STRING_INTERPOLATION_EXPRESSION, "\${", 7), new StringToken(TokenType.IDENTIFIER, "name", 9), new Token(TokenType.CLOSE_CURLY_BRACKET, 13), new StringToken(TokenType.STRING, "!\"", 14)]); + } + void test_string_multi_interpolation_identifier() { + assertTokens("\"Hello \$name!\"", [new StringToken(TokenType.STRING, "\"Hello ", 0), new StringToken(TokenType.STRING_INTERPOLATION_IDENTIFIER, "\$", 7), new StringToken(TokenType.IDENTIFIER, "name", 8), new StringToken(TokenType.STRING, "!\"", 12)]); + } + void test_string_multi_single() { + assertToken(TokenType.STRING, "'''string'''"); + } + void test_string_multi_unterminated() { + assertError(ScannerErrorCode.UNTERMINATED_STRING_LITERAL, 8, "'''string"); + } + void test_string_raw_multi_double() { + assertToken(TokenType.STRING, "r\"\"\"string\"\"\""); + } + void test_string_raw_multi_single() { + assertToken(TokenType.STRING, "r'''string'''"); + } + void test_string_raw_multi_unterminated() { + assertError(ScannerErrorCode.UNTERMINATED_STRING_LITERAL, 9, "r'''string"); + } + void test_string_raw_simple_double() { + assertToken(TokenType.STRING, "r\"string\""); + } + void test_string_raw_simple_single() { + assertToken(TokenType.STRING, "r'string'"); + } + void test_string_raw_simple_unterminated_eof() { + assertError(ScannerErrorCode.UNTERMINATED_STRING_LITERAL, 7, "r'string"); + } + void test_string_raw_simple_unterminated_eol() { + assertError(ScannerErrorCode.UNTERMINATED_STRING_LITERAL, 8, "r'string\n"); + } + void test_string_simple_double() { + assertToken(TokenType.STRING, "\"string\""); + } + void test_string_simple_escapedDollar() { + assertToken(TokenType.STRING, "'a\\\$b'"); + } + void test_string_simple_interpolation_block() { + assertTokens("'Hello \${name}!'", [new StringToken(TokenType.STRING, "'Hello ", 0), new StringToken(TokenType.STRING_INTERPOLATION_EXPRESSION, "\${", 7), new StringToken(TokenType.IDENTIFIER, "name", 9), new Token(TokenType.CLOSE_CURLY_BRACKET, 13), new StringToken(TokenType.STRING, "!'", 14)]); + } + void test_string_simple_interpolation_blockWithNestedMap() { + assertTokens("'a \${f({'b' : 'c'})} d'", [new StringToken(TokenType.STRING, "'a ", 0), new StringToken(TokenType.STRING_INTERPOLATION_EXPRESSION, "\${", 3), new StringToken(TokenType.IDENTIFIER, "f", 5), new Token(TokenType.OPEN_PAREN, 6), new Token(TokenType.OPEN_CURLY_BRACKET, 7), new StringToken(TokenType.STRING, "'b'", 8), new Token(TokenType.COLON, 12), new StringToken(TokenType.STRING, "'c'", 14), new Token(TokenType.CLOSE_CURLY_BRACKET, 17), new Token(TokenType.CLOSE_PAREN, 18), new Token(TokenType.CLOSE_CURLY_BRACKET, 19), new StringToken(TokenType.STRING, " d'", 20)]); + } + void test_string_simple_interpolation_firstAndLast() { + assertTokens("'\$greeting \$name'", [new StringToken(TokenType.STRING, "'", 0), new StringToken(TokenType.STRING_INTERPOLATION_IDENTIFIER, "\$", 1), new StringToken(TokenType.IDENTIFIER, "greeting", 2), new StringToken(TokenType.STRING, " ", 10), new StringToken(TokenType.STRING_INTERPOLATION_IDENTIFIER, "\$", 11), new StringToken(TokenType.IDENTIFIER, "name", 12), new StringToken(TokenType.STRING, "'", 16)]); + } + void test_string_simple_interpolation_identifier() { + assertTokens("'Hello \$name!'", [new StringToken(TokenType.STRING, "'Hello ", 0), new StringToken(TokenType.STRING_INTERPOLATION_IDENTIFIER, "\$", 7), new StringToken(TokenType.IDENTIFIER, "name", 8), new StringToken(TokenType.STRING, "!'", 12)]); + } + void test_string_simple_single() { + assertToken(TokenType.STRING, "'string'"); + } + void test_string_simple_unterminated_eof() { + assertError(ScannerErrorCode.UNTERMINATED_STRING_LITERAL, 6, "'string"); + } + void test_string_simple_unterminated_eol() { + assertError(ScannerErrorCode.UNTERMINATED_STRING_LITERAL, 7, "'string\r"); + } + void test_tilde() { + assertToken(TokenType.TILDE, "~"); + } + void test_tilde_slash() { + assertToken(TokenType.TILDE_SLASH, "~/"); + } + void test_tilde_slash_eq() { + assertToken(TokenType.TILDE_SLASH_EQ, "~/="); + } + void test_unclosedPairInInterpolation() { + GatheringErrorListener listener = new GatheringErrorListener(); + scan("'\${(}'", listener); + } + Token scan(String source, GatheringErrorListener listener); + void assertComment(TokenType commentType, String source) { + Token token = scan2(source); + JUnitTestCase.assertNotNull(token); + JUnitTestCase.assertEquals(TokenType.EOF, token.type); + Token comment = token.precedingComments; + JUnitTestCase.assertNotNull(comment); + JUnitTestCase.assertEquals(commentType, comment.type); + JUnitTestCase.assertEquals(0, comment.offset); + JUnitTestCase.assertEquals(source.length, comment.length); + JUnitTestCase.assertEquals(source, comment.lexeme); + } + /** + * Assert that scanning the given source produces an error with the given code. + * @param illegalCharacter + * @param i + * @param source the source to be scanned to produce the error + */ + void assertError(ScannerErrorCode expectedError, int expectedOffset, String source) { + GatheringErrorListener listener = new GatheringErrorListener(); + scan(source, listener); + listener.assertErrors([new AnalysisError.con2(null, expectedOffset, 1, expectedError, [source.charCodeAt(expectedOffset) as int])]); + } + /** + * Assert that when scanned the given source contains a single keyword token with the same lexeme + * as the original source. + * @param source the source to be scanned + */ + void assertKeywordToken(String source) { + Token token = scan2(source); + JUnitTestCase.assertNotNull(token); + JUnitTestCase.assertEquals(TokenType.KEYWORD, token.type); + JUnitTestCase.assertEquals(0, token.offset); + JUnitTestCase.assertEquals(source.length, token.length); + JUnitTestCase.assertEquals(source, token.lexeme); + Object value3 = token.value(); + JUnitTestCase.assertTrue(value3 is Keyword); + JUnitTestCase.assertEquals(source, (value3 as Keyword).syntax); + token = scan2(" ${source} "); + JUnitTestCase.assertNotNull(token); + JUnitTestCase.assertEquals(TokenType.KEYWORD, token.type); + JUnitTestCase.assertEquals(1, token.offset); + JUnitTestCase.assertEquals(source.length, token.length); + JUnitTestCase.assertEquals(source, token.lexeme); + value3 = token.value(); + JUnitTestCase.assertTrue(value3 is Keyword); + JUnitTestCase.assertEquals(source, (value3 as Keyword).syntax); + JUnitTestCase.assertEquals(TokenType.EOF, token.next.type); + } + /** + * Assert that the token scanned from the given source has the expected type. + * @param expectedType the expected type of the token + * @param source the source to be scanned to produce the actual token + */ + Token assertToken(TokenType expectedType, String source) { + Token originalToken = scan2(source); + JUnitTestCase.assertNotNull(originalToken); + JUnitTestCase.assertEquals(expectedType, originalToken.type); + JUnitTestCase.assertEquals(0, originalToken.offset); + JUnitTestCase.assertEquals(source.length, originalToken.length); + JUnitTestCase.assertEquals(source, originalToken.lexeme); + if (expectedType == TokenType.SCRIPT_TAG) { + return originalToken; + } else if (expectedType == TokenType.SINGLE_LINE_COMMENT) { + Token tokenWithSpaces = scan2(" ${source}"); + JUnitTestCase.assertNotNull(tokenWithSpaces); + JUnitTestCase.assertEquals(expectedType, tokenWithSpaces.type); + JUnitTestCase.assertEquals(1, tokenWithSpaces.offset); + JUnitTestCase.assertEquals(source.length, tokenWithSpaces.length); + JUnitTestCase.assertEquals(source, tokenWithSpaces.lexeme); + return originalToken; + } + Token tokenWithSpaces = scan2(" ${source} "); + JUnitTestCase.assertNotNull(tokenWithSpaces); + JUnitTestCase.assertEquals(expectedType, tokenWithSpaces.type); + JUnitTestCase.assertEquals(1, tokenWithSpaces.offset); + JUnitTestCase.assertEquals(source.length, tokenWithSpaces.length); + JUnitTestCase.assertEquals(source, tokenWithSpaces.lexeme); + JUnitTestCase.assertEquals(TokenType.EOF, originalToken.next.type); + return originalToken; + } + /** + * Assert that when scanned the given source contains a sequence of tokens identical to the given + * tokens. + * @param source the source to be scanned + * @param expectedTokens the tokens that are expected to be in the source + */ + void assertTokens(String source, List expectedTokens) { + Token token = scan2(source); + JUnitTestCase.assertNotNull(token); + for (int i = 0; i < expectedTokens.length; i++) { + Token expectedToken = expectedTokens[i]; + JUnitTestCase.assertEqualsMsg("Wrong type for token ${i}", expectedToken.type, token.type); + JUnitTestCase.assertEqualsMsg("Wrong offset for token ${i}", expectedToken.offset, token.offset); + JUnitTestCase.assertEqualsMsg("Wrong length for token ${i}", expectedToken.length, token.length); + JUnitTestCase.assertEqualsMsg("Wrong lexeme for token ${i}", expectedToken.lexeme, token.lexeme); + token = token.next; + JUnitTestCase.assertNotNull(token); + } + JUnitTestCase.assertEquals(TokenType.EOF, token.type); + } + Token scan2(String source) { + GatheringErrorListener listener = new GatheringErrorListener(); + Token token = scan(source, listener); + listener.assertNoErrors(); + return token; + } +} +main() { + CharBufferScannerTest.dartSuite(); + KeywordStateTest.dartSuite(); + StringScannerTest.dartSuite(); + TokenTypeTest.dartSuite(); +} \ No newline at end of file diff --git a/pkg/analyzer-experimental/test/generated/test_support.dart b/pkg/analyzer-experimental/test/generated/test_support.dart new file mode 100644 index 00000000000..1037c158969 --- /dev/null +++ b/pkg/analyzer-experimental/test/generated/test_support.dart @@ -0,0 +1,622 @@ +// This code was auto-generated, is not intended to be edited, and is subject to +// significant change. Please see the README file for more information. + +library engine.test_support; + +import 'dart:collection'; +import 'package:analyzer-experimental/src/generated/java_core.dart'; +import 'package:analyzer-experimental/src/generated/java_engine.dart'; +import 'package:analyzer-experimental/src/generated/java_junit.dart'; +import 'package:analyzer-experimental/src/generated/source.dart'; +import 'package:analyzer-experimental/src/generated/error.dart'; +import 'package:analyzer-experimental/src/generated/scanner.dart'; +import 'package:unittest/unittest.dart' as _ut; + +/** + * Instances of the class {@code GatheringErrorListener} implement an error listener that collects + * all of the errors passed to it for later examination. + */ +class GatheringErrorListener implements AnalysisErrorListener { + /** + * The source being parsed. + */ + String _rawSource; + /** + * The source being parsed after inserting a marker at the beginning and end of the range of the + * most recent error. + */ + String _markedSource; + /** + * A list containing the errors that were collected. + */ + List _errors = new List(); + /** + * A table mapping sources to the line information for the source. + */ + Map _lineInfoMap = new Map(); + /** + * An empty array of errors used when no errors are expected. + */ + static List _NO_ERRORS = new List.fixedLength(0); + /** + * Initialize a newly created error listener to collect errors. + */ + GatheringErrorListener() : super() { + _jtd_constructor_234_impl(); + } + _jtd_constructor_234_impl() { + } + /** + * Initialize a newly created error listener to collect errors. + */ + GatheringErrorListener.con1(String rawSource) { + _jtd_constructor_235_impl(rawSource); + } + _jtd_constructor_235_impl(String rawSource) { + this._rawSource = rawSource; + this._markedSource = rawSource; + } + /** + * Assert that the number of errors that have been gathered matches the number of errors that are + * given and that they have the expected error codes and locations. The order in which the errors + * were gathered is ignored. + * @param errorCodes the errors that should have been gathered + * @throws AssertionFailedError if a different number of errors have been gathered than were + * expected or if they do not have the same codes and locations + */ + void assertErrors(List expectedErrors) { + if (_errors.length != expectedErrors.length) { + fail(expectedErrors); + } + List remainingErrors = new List(); + for (AnalysisError error in expectedErrors) { + remainingErrors.add(error); + } + for (AnalysisError error in _errors) { + if (!foundAndRemoved(remainingErrors, error)) { + fail(expectedErrors); + } + } + } + /** + * Assert that the number of errors that have been gathered matches the number of errors that are + * given and that they have the expected error codes. The order in which the errors were gathered + * is ignored. + * @param expectedErrorCodes the error codes of the errors that should have been gathered + * @throws AssertionFailedError if a different number of errors have been gathered than were + * expected + */ + void assertErrors2(List expectedErrorCodes) { + StringBuffer builder = new StringBuffer(); + Map expectedCounts = new Map(); + for (ErrorCode code in expectedErrorCodes) { + int count = expectedCounts[code]; + if (count == null) { + count = 1; + } else { + count = count + 1; + } + expectedCounts[code] = count; + } + Map> errorsByCode = new Map>(); + for (AnalysisError error in _errors) { + ErrorCode code = error.errorCode; + List list = errorsByCode[code]; + if (list == null) { + list = new List(); + errorsByCode[code] = list; + } + list.add(error); + } + for (MapEntry entry in getMapEntrySet(expectedCounts)) { + ErrorCode code = entry.getKey(); + int expectedCount = entry.getValue(); + int actualCount; + List list = errorsByCode.remove(code); + if (list == null) { + actualCount = 0; + } else { + actualCount = list.length; + } + if (actualCount != expectedCount) { + if (builder.length == 0) { + builder.add("Expected "); + } else { + builder.add("; "); + } + builder.add(expectedCount); + builder.add(" errors of type "); + builder.add(code); + builder.add(", found "); + builder.add(actualCount); + } + } + for (MapEntry> entry in getMapEntrySet(errorsByCode)) { + ErrorCode code = entry.getKey(); + List actualErrors = entry.getValue(); + int actualCount = actualErrors.length; + if (builder.length == 0) { + builder.add("Expected "); + } else { + builder.add("; "); + } + builder.add("0 errors of type "); + builder.add(code); + builder.add(", found "); + builder.add(actualCount); + builder.add(" ("); + for (int i = 0; i < actualErrors.length; i++) { + AnalysisError error = actualErrors[i]; + if (i > 0) { + builder.add(", "); + } + builder.add(error.offset); + } + builder.add(")"); + } + if (builder.length > 0) { + JUnitTestCase.fail(builder.toString()); + } + } + /** + * Assert that the number of errors that have been gathered matches the number of severities that + * are given and that there are the same number of errors and warnings as specified by the + * argument. The order in which the errors were gathered is ignored. + * @param expectedSeverities the severities of the errors that should have been gathered + * @throws AssertionFailedError if a different number of errors have been gathered than were + * expected + */ + void assertErrors3(List expectedSeverities) { + int expectedErrorCount = 0; + int expectedWarningCount = 0; + for (ErrorSeverity severity in expectedSeverities) { + if (severity == ErrorSeverity.ERROR) { + expectedErrorCount++; + } else { + expectedWarningCount++; + } + } + int actualErrorCount = 0; + int actualWarningCount = 0; + for (AnalysisError error in _errors) { + if (error.errorCode.errorSeverity == ErrorSeverity.ERROR) { + actualErrorCount++; + } else { + actualWarningCount++; + } + } + if (expectedErrorCount != actualErrorCount || expectedWarningCount != actualWarningCount) { + JUnitTestCase.fail("Expected ${expectedErrorCount} errors and ${expectedWarningCount} warnings, found ${actualErrorCount} errors and ${actualWarningCount} warnings"); + } + } + /** + * Assert that no errors have been gathered. + * @throws AssertionFailedError if any errors have been gathered + */ + void assertNoErrors() { + assertErrors(GatheringErrorListener._NO_ERRORS); + } + /** + * Return the errors that were collected. + * @return the errors that were collected + */ + List get errors => _errors; + /** + * Return {@code true} if an error with the given error code has been gathered. + * @param errorCode the error code being searched for + * @return {@code true} if an error with the given error code has been gathered + */ + bool hasError(ErrorCode errorCode) { + for (AnalysisError error in _errors) { + if (error.errorCode == errorCode) { + return true; + } + } + return false; + } + void onError(AnalysisError error) { + if (_rawSource != null) { + int left = error.offset; + int right = left + error.length - 1; + _markedSource = "${_rawSource.substring(0, left)}^${_rawSource.substring(left, right)}^${_rawSource.substring(right)}"; + } + _errors.add(error); + } + /** + * Set the line information associated with the given source to the given information. + * @param source the source with which the line information is associated + * @param lineStarts the line start information to be associated with the source + */ + void setLineInfo(Source source, List lineStarts) { + _lineInfoMap[source] = new LineInfo(lineStarts); + } + /** + * Set the line information associated with the given source to the given information. + * @param source the source with which the line information is associated + * @param lineInfo the line information to be associated with the source + */ + void setLineInfo2(Source source, LineInfo lineInfo) { + _lineInfoMap[source] = lineInfo; + } + /** + * Return {@code true} if the two errors are equivalent. + * @param firstError the first error being compared + * @param secondError the second error being compared + * @return {@code true} if the two errors are equivalent + */ + bool equals(AnalysisError firstError, AnalysisError secondError) => firstError.errorCode == secondError.errorCode && firstError.offset == secondError.offset && firstError.length == secondError.length && equals3(firstError.source, secondError.source); + /** + * Return {@code true} if the two sources are equivalent. + * @param firstSource the first source being compared + * @param secondSource the second source being compared + * @return {@code true} if the two sources are equivalent + */ + bool equals3(Source firstSource, Source secondSource) { + if (firstSource == null) { + return secondSource == null; + } else if (secondSource == null) { + return false; + } + return firstSource == secondSource; + } + /** + * Assert that the number of errors that have been gathered matches the number of errors that are + * given and that they have the expected error codes. The order in which the errors were gathered + * is ignored. + * @param errorCodes the errors that should have been gathered + * @throws AssertionFailedError with + */ + void fail(List expectedErrors) { + PrintStringWriter writer = new PrintStringWriter(); + writer.print("Expected "); + writer.print(expectedErrors.length); + writer.print(" errors:"); + for (AnalysisError error in expectedErrors) { + Source source5 = error.source; + LineInfo lineInfo = _lineInfoMap[source5]; + writer.println(); + if (lineInfo == null) { + int offset8 = error.offset; + writer.printf(" %s %s (%d..%d)", [source5 == null ? "" : source5.shortName, error.errorCode, offset8, offset8 + error.length]); + } else { + LineInfo_Location location = lineInfo.getLocation(error.offset); + writer.printf(" %s %s (%d, %d/%d)", [source5 == null ? "" : source5.shortName, error.errorCode, location.lineNumber, location.columnNumber, error.length]); + } + } + writer.println(); + writer.print("found "); + writer.print(_errors.length); + writer.print(" errors:"); + for (AnalysisError error in _errors) { + Source source6 = error.source; + LineInfo lineInfo = _lineInfoMap[source6]; + writer.println(); + if (lineInfo == null) { + int offset9 = error.offset; + writer.printf(" %s %s (%d..%d): %s", [source6 == null ? "" : source6.shortName, error.errorCode, offset9, offset9 + error.length, error.message]); + } else { + LineInfo_Location location = lineInfo.getLocation(error.offset); + writer.printf(" %s %s (%d, %d/%d): %s", [source6 == null ? "" : source6.shortName, error.errorCode, location.lineNumber, location.columnNumber, error.length, error.message]); + } + } + JUnitTestCase.fail(writer.toString()); + } + /** + * Search through the given list of errors for an error that is equal to the target error. If one + * is found, remove it from the list and return {@code true}, otherwise return {@code false}without modifying the list. + * @param errors the errors through which we are searching + * @param targetError the error being searched for + * @return {@code true} if the error is found and removed from the list + */ + bool foundAndRemoved(List errors, AnalysisError targetError) { + for (AnalysisError error in errors) { + if (equals(error, targetError)) { + errors.remove(error); + return true; + } + } + return true; + } +} +/** + * The class {@code EngineTestCase} defines utility methods for making assertions. + */ +class EngineTestCase extends JUnitTestCase { + static int _PRINT_RANGE = 6; + /** + * Assert that the tokens in the actual stream of tokens have the same types and lexemes as the + * tokens in the expected stream of tokens. Note that this does not assert anything about the + * offsets of the tokens (although the lengths will be equal). + * @param expectedStream the head of the stream of tokens that were expected + * @param actualStream the head of the stream of tokens that were actually found + * @throws AssertionFailedError if the two streams of tokens are not the same + */ + static void assertAllMatch(Token expectedStream, Token actualStream) { + Token left = expectedStream; + Token right = actualStream; + while (left.type != TokenType.EOF && right.type != TokenType.EOF) { + assertMatches(left, right); + left = left.next; + right = right.next; + } + } + /** + * Assert that the array of actual values contain exactly the same values as those in the array of + * expected value, with the exception that the order of the elements is not required to be the + * same. + * @param expectedValues the values that are expected to be found + * @param actualValues the actual values that are being compared against the expected values + */ + static void assertEqualsIgnoreOrder(List expectedValues, List actualValues) { + JUnitTestCase.assertNotNull(actualValues); + int expectedLength = expectedValues.length; + JUnitTestCase.assertEquals(expectedLength, actualValues.length); + List found = new List.fixedLength(expectedLength); + for (int i = 0; i < expectedLength; i++) { + found[i] = false; + } + for (Object actualValue in actualValues) { + bool wasExpected = false; + for (int i = 0; i < expectedLength; i++) { + if (!found[i] && expectedValues[i] == actualValue) { + found[i] = true; + wasExpected = true; + break; + } + } + if (!wasExpected) { + JUnitTestCase.fail("The actual value ${actualValue} was not expected"); + } + } + } + /** + * Assert that a given String is equal to an expected value. + * @param expected the expected String value + * @param actual the actual String value + */ + static void assertEqualString(String expected, String actual) { + if (actual == null || expected == null) { + if (actual == expected) { + return; + } + if (actual == null) { + JUnitTestCase.assertTrueMsg("Content not as expected: is 'null' expected: ${expected}", false); + } else { + JUnitTestCase.assertTrueMsg("Content not as expected: expected 'null' is: ${actual}", false); + } + } + int diffPos = getDiffPos(expected, actual); + if (diffPos != -1) { + int diffAhead = Math.max(0, diffPos - EngineTestCase._PRINT_RANGE); + int diffAfter = Math.min(actual.length, diffPos + EngineTestCase._PRINT_RANGE); + String diffStr = "${actual.substring(diffAhead, diffPos)}^${actual.substring(diffPos, diffAfter)}"; + String message = "Content not as expected: is\n${actual}\nDiffers at pos ${diffPos}: ${diffStr}\nexpected:\n${expected}"; + JUnitTestCase.assertEqualsMsg(message, expected, actual); + } + } + /** + * Assert that the given list is non-{@code null} and has exactly expected elements. + * @param list the list being tested + * @param expectedElements the expected elements + * @throws AssertionFailedError if the list is {@code null} or does not have the expected elements + */ + static void assertExactElements(List list, List expectedElements) { + int expectedSize = expectedElements.length; + if (list == null) { + JUnitTestCase.fail("Expected list of size ${expectedSize}; found null"); + } + if (list.length != expectedSize) { + JUnitTestCase.fail("Expected list of size ${expectedSize}; contained ${list.length} elements"); + } + for (int i = 0; i < expectedElements.length; i++) { + Object element = list[i]; + Object expectedElement = expectedElements[i]; + if (!element == expectedElement) { + JUnitTestCase.fail("Expected ${expectedElement} at [${i}]; found ${element}"); + } + } + } + /** + * Assert that the given array is non-{@code null} and has exactly expected elements. + * @param array the array being tested + * @param expectedElements the expected elements + * @throws AssertionFailedError if the array is {@code null} or does not have the expected + * elements + */ + static void assertExactElements2(List array, List expectedElements) { + int expectedSize = expectedElements.length; + if (array == null) { + JUnitTestCase.fail("Expected array of size ${expectedSize}; found null"); + } + if (array.length != expectedSize) { + JUnitTestCase.fail("Expected array of size ${expectedSize}; contained ${array.length} elements"); + } + for (int i = 0; i < expectedElements.length; i++) { + Object element = array[0]; + Object expectedElement = expectedElements[i]; + if (!element == expectedElement) { + JUnitTestCase.fail("Expected ${expectedElement} at [${i}]; found ${element}"); + } + } + } + /** + * Assert that the given list is non-{@code null} and has exactly expected elements. + * @param set the list being tested + * @param expectedElements the expected elements + * @throws AssertionFailedError if the list is {@code null} or does not have the expected elements + */ + static void assertExactElements3(Set set, List expectedElements) { + int expectedSize = expectedElements.length; + if (set == null) { + JUnitTestCase.fail("Expected list of size ${expectedSize}; found null"); + } + if (set.length != expectedSize) { + JUnitTestCase.fail("Expected list of size ${expectedSize}; contained ${set.length} elements"); + } + for (int i = 0; i < expectedElements.length; i++) { + Object expectedElement = expectedElements[i]; + if (!set.contains(expectedElement)) { + JUnitTestCase.fail("Expected ${expectedElement} in set${set}"); + } + } + } + /** + * Assert that the given object is an instance of the expected class. + * @param expectedClass the class that the object is expected to be an instance of + * @param object the object being tested + * @return the object that was being tested + * @throws Exception if the object is not an instance of the expected class + */ + static Object assertInstanceOf(Type expectedClass, Object object) { + if (!isInstanceOf(object, expectedClass)) { + JUnitTestCase.fail("Expected instance of ${expectedClass.toString()}, found ${(object == null ? "null" : object.runtimeType.toString())}"); + } + return object as Object; + } + /** + * Assert that the given array is non-{@code null} and has the expected number of elements. + * @param expectedLength the expected number of elements + * @param array the array being tested + * @throws AssertionFailedError if the array is {@code null} or does not have the expected number + * of elements + */ + static void assertLength(int expectedLength, List array) { + if (array == null) { + JUnitTestCase.fail("Expected array of length ${expectedLength}; found null"); + } else if (array.length != expectedLength) { + JUnitTestCase.fail("Expected array of length ${expectedLength}; contained ${array.length} elements"); + } + } + /** + * Assert that the actual token has the same type and lexeme as the expected token. Note that this + * does not assert anything about the offsets of the tokens (although the lengths will be equal). + * @param expectedToken the token that was expected + * @param actualToken the token that was found + * @throws AssertionFailedError if the two tokens are not the same + */ + static void assertMatches(Token expectedToken, Token actualToken) { + JUnitTestCase.assertEquals(expectedToken.type, actualToken.type); + if (expectedToken is KeywordToken) { + assertInstanceOf(KeywordToken, actualToken); + JUnitTestCase.assertEquals((expectedToken as KeywordToken).keyword, (actualToken as KeywordToken).keyword); + } else if (expectedToken is StringToken) { + assertInstanceOf(StringToken, actualToken); + JUnitTestCase.assertEquals((expectedToken as StringToken).lexeme, (actualToken as StringToken).lexeme); + } + } + /** + * Assert that the given list is non-{@code null} and has the expected number of elements. + * @param expectedSize the expected number of elements + * @param list the list being tested + * @throws AssertionFailedError if the list is {@code null} or does not have the expected number + * of elements + */ + static void assertSize(int expectedSize, List list) { + if (list == null) { + JUnitTestCase.fail("Expected list of size ${expectedSize}; found null"); + } else if (list.length != expectedSize) { + JUnitTestCase.fail("Expected list of size ${expectedSize}; contained ${list.length} elements"); + } + } + /** + * Assert that the given map is non-{@code null} and has the expected number of elements. + * @param expectedSize the expected number of elements + * @param map the map being tested + * @throws AssertionFailedError if the map is {@code null} or does not have the expected number of + * elements + */ + static void assertSize2(int expectedSize, Map map) { + if (map == null) { + JUnitTestCase.fail("Expected map of size ${expectedSize}; found null"); + } else if (map.length != expectedSize) { + JUnitTestCase.fail("Expected map of size ${expectedSize}; contained ${map.length} elements"); + } + } + /** + * Convert the given array of lines into a single source string. + * @param lines the lines to be merged into a single source string + * @return the source string composed of the given lines + */ + static String createSource(List lines) { + PrintStringWriter writer = new PrintStringWriter(); + for (String line in lines) { + writer.printlnObject(line); + } + return writer.toString(); + } + /** + * Calculate the offset where the given strings differ. + * @param str1 the first String to compare + * @param str2 the second String to compare + * @return the offset at which the strings differ (or -1 if they do not) + */ + static int getDiffPos(String str1, String str2) { + int len1 = Math.min(str1.length, str2.length); + int diffPos = -1; + for (int i = 0; i < len1; i++) { + if (str1.charCodeAt(i) != str2.charCodeAt(i)) { + diffPos = i; + break; + } + } + if (diffPos == -1 && str1.length != str2.length) { + diffPos = len1; + } + return diffPos; + } + static dartSuite() { + _ut.group('EngineTestCase', () { + }); + } +} +main() { +} + +class TestSource implements Source { + bool operator ==(Object object) { + return this == object; + } + void getContents(Source_ContentReceiver receiver) { + throw new UnsupportedOperationException(); + } + String get fullName { + throw new UnsupportedOperationException(); + } + String get shortName { + throw new UnsupportedOperationException(); + } + bool isInSystemLibrary() { + throw new UnsupportedOperationException(); + } + Source resolve(String uri) { + throw new UnsupportedOperationException(); + } +} + +/** + * Wrapper around [Function] which should be called with [target] and [arguments]. + */ +class MethodTrampoline { + int parameterCount; + Function trampoline; + MethodTrampoline(this.parameterCount, this.trampoline); + Object invoke(target, List arguments) { + if (arguments.length != parameterCount) { + throw new IllegalArgumentException("${arguments.length} != $parameterCount"); + } + switch (parameterCount) { + case 0: + return trampoline(target); + case 1: + return trampoline(target, arguments[0]); + case 2: + return trampoline(target, arguments[0], arguments[1]); + case 3: + return trampoline(target, arguments[0], arguments[1], arguments[2]); + case 4: + return trampoline(target, arguments[0], arguments[1], arguments[2], arguments[3]); + default: + throw new IllegalArgumentException("Not implemented for > 4 arguments"); + } + } +}