Class JavaExpressionParseUtil

java.lang.Object
org.checkerframework.framework.util.JavaExpressionParseUtil

public class JavaExpressionParseUtil extends Object
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)
  • Field Details

    • PARAMETER_REGEX

      protected static final String PARAMETER_REGEX
      Regular expression for a formal parameter use.
      See Also:
    • ANCHORED_PARAMETER_PATTERN

      protected static final @Regex(1) Pattern ANCHORED_PARAMETER_PATTERN
      Anchored pattern for a formal parameter use; matches a string that is exactly a formal parameter use.
    • UNANCHORED_PARAMETER_PATTERN

      protected static final @Regex(1) Pattern 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 a JavaExpression.

      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 parse
      enclosingType - type of the class that encloses the JavaExpression
      thisReference - the JavaExpression to which to parse "this", or null if "this" should not appear in the expression
      parameters - list of JavaExpressions to which to parse formal parameter references such as "#2", or null if formal parameter references should not appear in the expression
      localVarPath - if non-null, the expression is parsed as if it were written at this location; affects only parsing of local variables
      pathToCompilationUnit - required to use the underlying Javac API
      env - the processing environment
      Returns:
      expression as a JavaExpression
      Throws:
      JavaExpressionParseUtil.JavaExpressionParseException - if the string cannot be parsed
    • parameterIndex

      public static int parameterIndex(String s)
      If s 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