diff options
Diffstat (limited to 'javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ParseStart.java')
-rw-r--r-- | javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ParseStart.java | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ParseStart.java b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ParseStart.java new file mode 100644 index 000000000..f94a66282 --- /dev/null +++ b/javaparser-symbol-solver-testing/src/test/test_sourcecode/javaparser_new_src/javaparser-core/com/github/javaparser/ParseStart.java @@ -0,0 +1,32 @@ +package com.github.javaparser; + +import com.github.javaparser.ast.CompilationUnit; +import com.github.javaparser.ast.ImportDeclaration; +import com.github.javaparser.ast.body.BodyDeclaration; +import com.github.javaparser.ast.expr.AnnotationExpr; +import com.github.javaparser.ast.expr.Expression; +import com.github.javaparser.ast.stmt.BlockStmt; +import com.github.javaparser.ast.stmt.Statement; + +/** + * The start production for JavaParser. + * Tells JavaParser what piece of Java code it can expect. + * For example, + * COMPILATION_UNIT indicates a complete Java file, + * and CLASS_BODY would indicate the part of a class that is within { and }. + * @see JavaParser#parse(ParseStart, Provider) + */ +@FunctionalInterface +public interface ParseStart<R> { + ParseStart<CompilationUnit> COMPILATION_UNIT = ASTParser::CompilationUnit; + ParseStart<BlockStmt> BLOCK = ASTParser::Block; + ParseStart<Statement> STATEMENT = ASTParser::BlockStatement; + ParseStart<ImportDeclaration> IMPORT_DECLARATION= ASTParser::ImportDeclaration; + ParseStart<Expression> EXPRESSION = ASTParser::Expression; + ParseStart<AnnotationExpr> ANNOTATION = ASTParser::Annotation; + ParseStart<BodyDeclaration<?>> ANNOTATION_BODY = ASTParser::AnnotationBodyDeclaration; + ParseStart<BodyDeclaration<?>> CLASS_BODY = p -> p.ClassOrInterfaceBodyDeclaration(false); + ParseStart<BodyDeclaration<?>> INTERFACE_BODY = p -> p.ClassOrInterfaceBodyDeclaration(true); + + R parse(ASTParser parser) throws ParseException; +} |