Class JavaExpressionParseUtil
java.lang.Object
org.checkerframework.framework.util.JavaExpressionParseUtil
Helper methods to parse a string that represents a restricted Java expression.
- See the Checker Framework Manual:
- Writing Java expressions as annotation
arguments, Annotations whose argument is a Java expression
(dependent type annotations)
-
Nested Class Summary
Modifier and TypeClassDescriptionstatic class
An exception that indicates a parse error. -
Field Summary
Modifier and TypeFieldDescriptionprotected static final Pattern
Anchored pattern for a formal parameter use; matches a string that is exactly a formal parameter use.protected static final String
Regular expression for a formal parameter use.protected static final Pattern
Unanchored pattern for a formal parameter use; can be used to find all formal parameter uses. -
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionstatic int
Ifs
is exactly a formal parameter, return its 1-based index.static JavaExpression
parse
(String expression, TypeMirror enclosingType, @Nullable ThisReference thisReference, @Nullable List<FormalParameter> parameters, @Nullable TreePath localVarPath, TreePath pathToCompilationUnit, ProcessingEnvironment env) Parses a string to aJavaExpression
.
-
Field Details
-
PARAMETER_REGEX
Regular expression for a formal parameter use.- See Also:
-
ANCHORED_PARAMETER_PATTERN
Anchored pattern for a formal parameter use; matches a string that is exactly a formal parameter use. -
UNANCHORED_PARAMETER_PATTERN
Unanchored pattern for a formal parameter use; can be used to find all formal parameter uses.
-
-
Constructor Details
-
JavaExpressionParseUtil
public JavaExpressionParseUtil()
-
-
Method Details
-
parse
public static JavaExpression parse(String expression, TypeMirror enclosingType, @Nullable ThisReference thisReference, @Nullable List<FormalParameter> parameters, @Nullable TreePath localVarPath, TreePath pathToCompilationUnit, ProcessingEnvironment env) throws JavaExpressionParseUtil.JavaExpressionParseException Parses a string to aJavaExpression
.For most uses, clients should call one of the static methods in
StringToJavaExpression
rather than calling this method directly.- Parameters:
expression
- the string expression to parseenclosingType
- type of the class that encloses the JavaExpressionthisReference
- the JavaExpression to which to parse "this", or null if "this" should not appear in the expressionparameters
- list of JavaExpressions to which to parse formal parameter references such as "#2", or null if formal parameter references should not appear in the expressionlocalVarPath
- if non-null, the expression is parsed as if it were written at this location; affects only parsing of local variablespathToCompilationUnit
- required to use the underlying Javac APIenv
- the processing environment- Returns:
expression
as aJavaExpression
- Throws:
JavaExpressionParseUtil.JavaExpressionParseException
- if the string cannot be parsed
-
parameterIndex
Ifs
is exactly a formal parameter, return its 1-based index. Returns -1 otherwise.- Parameters:
s
- a Java expression- Returns:
- the 1-based index of the formal parameter that
s
represents, or -1
-