org_aspectj_ajde_core_tests_model_SavedModelConsistencyTest_java
org.aspectj.weaver.patterns.PatternParser
public List<NamePattern> parseDottedNamePattern() {
        ArrayList<NamePattern> names = new ArrayList<NamePattern>();
        StringBuilder buf = new StringBuilder();
        IToken previous = null;
        boolean justProcessedEllipsis = false;
        boolean justProcessedDot = false;
        boolean onADot = false;
        while (true) {
            IToken tok = null;
            int startPos = this.tokenSource.peek().getStart();
            String afterDot = null;
            while (true) {
                if (previous != null && previous.getString().equals(".")) {
                    justProcessedDot = true;
                }
                tok = this.tokenSource.peek();
                onADot = tok.getString().equals(".");
                if (previous != null && !this.isAdjacent(previous, tok)) break;
                if (tok.getString() == "*" || tok.isIdentifier() && tok.getString() != "...") {
                    buf.append(tok.getString());
                } else {
                    if (tok.getString() == "..." || tok.getLiteralKind() == null) break;
                    String s = tok.getString();
                    int dot = s.indexOf(46);
                    if (dot != -1) {
                        buf.append(s.substring(0, dot));
                        afterDot = s.substring(dot + 1);
                        previous = this.tokenSource.next();
                        break;
                    }
                    buf.append(s);
                }
                previous = this.tokenSource.next();
            }
            int endPos = this.tokenSource.peek(-1).getEnd();
            if (buf.length() == 0 && names.isEmpty()) {
                throw new ParserException("name pattern", tok);
            }
            if (buf.length() == 0 && justProcessedEllipsis) {
                throw new ParserException("name pattern cannot finish with ..", tok);
            }
            if (buf.length() == 0 && justProcessedDot && !onADot) {
                throw new ParserException("name pattern cannot finish with .", tok);
            }
            if (buf.length() == 0) {
                names.add(NamePattern.ELLIPSIS);
                justProcessedEllipsis = true;
            } else {
                this.checkLegalName(buf.toString(), previous);
                NamePattern ret = new NamePattern(buf.toString());
                ret.setLocation(this.sourceContext, startPos, endPos);
                names.add(ret);
                justProcessedEllipsis = false;
            }
            if (afterDot == null) {
                buf.setLength(0);
                if (!this.maybeEat(".")) break;
                previous = this.tokenSource.peek(-1);
                continue;
            }
            buf.setLength(0);
            buf.append(afterDot);
            afterDot = null;
        }
        return names;
    }
 -> java.lang.String.equals(java.lang.Object): boolean -> java.lang.StringBuilder.append(java.lang.String): java.lang.StringBuilder -> java.lang.String.equals(java.lang.Object): boolean -> java.lang.String.equals(java.lang.Object): boolean -> java.lang.StringBuilder.length(): int -> java.lang.StringBuilder.length(): int -> java.lang.StringBuilder.length(): int -> java.lang.StringBuilder.length(): int -> java.lang.StringBuilder.toString(): java.lang.String -> java.lang.String.charAt(int): char -> java.lang.Character.isJavaIdentifierStart(char): boolean -> java.lang.String.length(): int -> java.lang.String.charAt(int): char -> java.lang.Character.isJavaIdentifierPart(char): boolean -> java.lang.String.charAt(int): char -> java.lang.Character.isJavaIdentifierPart(char): boolean -> java.lang.String.charAt(int): char -> java.lang.Character.isJavaIdentifierPart(char): boolean -> java.lang.StringBuilder.toString(): java.lang.String -> java.lang.String.toCharArray(): char[] -> java.lang.String.hashCode(): int -> java.util.List.add(java.lang.Object): boolean -> java.lang.StringBuilder.setLength(int): void -> java.lang.String.equals(java.lang.Object): boolean -> java.lang.String.equals(java.lang.Object): boolean -> java.lang.StringBuilder.append(java.lang.String): java.lang.StringBuilder -> java.lang.String.equals(java.lang.Object): boolean -> java.lang.String.equals(java.lang.Object): boolean -> java.lang.StringBuilder.length(): int -> java.lang.StringBuilder.length(): int -> java.lang.StringBuilder.length(): int -> java.lang.StringBuilder.length(): int -> java.lang.StringBuilder.toString(): java.lang.String -> java.lang.String.charAt(int): char -> java.lang.Character.isJavaIdentifierStart(char): boolean -> java.lang.String.length(): int -> java.lang.String.charAt(int): char -> java.lang.Character.isJavaIdentifierPart(char): boolean -> java.lang.StringBuilder.toString(): java.lang.String -> java.lang.String.toCharArray(): char[] -> java.lang.String.hashCode(): int -> java.util.List.add(java.lang.Object): boolean -> java.lang.StringBuilder.setLength(int): void -> java.lang.String.equals(java.lang.Object): boolean -> java.lang.String.equals(java.lang.Object): boolean -> java.lang.StringBuilder.append(java.lang.String): java.lang.StringBuilder -> java.lang.String.equals(java.lang.Object): boolean -> java.lang.String.equals(java.lang.Object): boolean -> java.lang.StringBuilder.length(): int -> java.lang.StringBuilder.length(): int -> java.lang.StringBuilder.length(): int -> java.lang.StringBuilder.length(): int -> java.lang.StringBuilder.toString(): java.lang.String -> java.lang.String.charAt(int): char -> java.lang.Character.isJavaIdentifierStart(char): boolean -> java.lang.String.length(): int -> java.lang.String.charAt(int): char -> java.lang.Character.isJavaIdentifierPart(char): boolean -> java.lang.String.charAt(int): char -> java.lang.Character.isJavaIdentifierPart(char): boolean -> java.lang.String.charAt(int): char -> java.lang.Character.isJavaIdentifierPart(char): boolean -> java.lang.String.charAt(int): char -> java.lang.Character.isJavaIdentifierPart(char): boolean -> java.lang.String.charAt(int): char -> java.lang.Character.isJavaIdentifierPart(char): boolean -> java.lang.String.charAt(int): char -> java.lang.Character.isJavaIdentifierPart(char): boolean -> java.lang.String.charAt(int): char -> java.lang.Character.isJavaIdentifierPart(char): boolean -> java.lang.String.charAt(int): char -> java.lang.Character.isJavaIdentifierPart(char): boolean -> java.lang.String.charAt(int): char -> java.lang.Character.isJavaIdentifierPart(char): boolean -> java.lang.String.charAt(int): char -> java.lang.Character.isJavaIdentifierPart(char): boolean -> java.lang.String.charAt(int): char -> java.lang.Character.isJavaIdentifierPart(char): boolean -> java.lang.StringBuilder.toString(): java.lang.String -> java.lang.String.toCharArray(): char[] -> java.lang.String.hashCode(): int -> java.util.List.add(java.lang.Object): boolean -> java.lang.StringBuilder.setLength(int): void
 [CALL] [CALL] [EXIT] [CALL] [EXIT] [CALL] [EXIT] [CALL] [EXIT] -> java.lang.String.equals(java.lang.Object): boolean [CALL] [EXIT] [CALL] [EXIT] [CALL] [EXIT] [CALL] [EXIT] -> java.lang.StringBuilder.append(java.lang.String): java.lang.StringBuilder [CALL] [EXIT] [CALL] [EXIT] -> java.lang.String.equals(java.lang.Object): boolean [CALL] [EXIT] [CALL] [EXIT] -> java.lang.String.equals(java.lang.Object): boolean [CALL] [CALL] [EXIT] [CALL] [EXIT] [EXIT] [CALL] [EXIT] [CALL] [EXIT] [CALL] [EXIT] [CALL] [EXIT] [CALL] [EXIT] [CALL] [EXIT] -> java.lang.StringBuilder.length(): int -> java.lang.StringBuilder.length(): int -> java.lang.StringBuilder.length(): int -> java.lang.StringBuilder.length(): int -> java.lang.StringBuilder.toString(): java.lang.String [CALL] -> java.lang.String.charAt(int): char -> java.lang.Character.isJavaIdentifierStart(char): boolean -> java.lang.String.length(): int -> java.lang.String.charAt(int): char -> java.lang.Character.isJavaIdentifierPart(char): boolean -> java.lang.String.charAt(int): char -> java.lang.Character.isJavaIdentifierPart(char): boolean -> java.lang.String.charAt(int): char -> java.lang.Character.isJavaIdentifierPart(char): boolean [EXIT] -> java.lang.StringBuilder.toString(): java.lang.String [CALL] -> java.lang.String.toCharArray(): char[] [CALL] [CALL] [EXIT] -> java.lang.String.hashCode(): int [EXIT] [EXIT] [CALL] [EXIT] -> java.util.List.add(java.lang.Object): boolean -> java.lang.StringBuilder.setLength(int): void [CALL] [CALL] [EXIT] [CALL] [EXIT] [CALL] [EXIT] [EXIT] [CALL] [EXIT] [CALL] [EXIT] [CALL] [EXIT] [CALL] [EXIT] -> java.lang.String.equals(java.lang.Object): boolean [CALL] [EXIT] [CALL] [EXIT] -> java.lang.String.equals(java.lang.Object): boolean [CALL] [CALL] [EXIT] [CALL] [EXIT] [EXIT] [CALL] [EXIT] [CALL] [EXIT] [CALL] [EXIT] [CALL] [EXIT] -> java.lang.StringBuilder.append(java.lang.String): java.lang.StringBuilder [CALL] [EXIT] [CALL] [EXIT] -> java.lang.String.equals(java.lang.Object): boolean [CALL] [EXIT] [CALL] [EXIT] -> java.lang.String.equals(java.lang.Object): boolean [CALL] [CALL] [EXIT] [CALL] [EXIT] [EXIT] [CALL] [EXIT] [CALL] [EXIT] [CALL] [EXIT] [CALL] [EXIT] [CALL] [EXIT] [CALL] [EXIT] -> java.lang.StringBuilder.length(): int -> java.lang.StringBuilder.length(): int -> java.lang.StringBuilder.length(): int -> java.lang.StringBuilder.length(): int -> java.lang.StringBuilder.toString(): java.lang.String [CALL] -> java.lang.String.charAt(int): char -> java.lang.Character.isJavaIdentifierStart(char): boolean -> java.lang.String.length(): int -> java.lang.String.charAt(int): char -> java.lang.Character.isJavaIdentifierPart(char): boolean [EXIT] -> java.lang.StringBuilder.toString(): java.lang.String [CALL] -> java.lang.String.toCharArray(): char[] [CALL] [CALL] [EXIT] -> java.lang.String.hashCode(): int [EXIT] [EXIT] [CALL] [EXIT] -> java.util.List.add(java.lang.Object): boolean -> java.lang.StringBuilder.setLength(int): void [CALL] [CALL] [EXIT] [CALL] [EXIT] [CALL] [EXIT] [EXIT] [CALL] [EXIT] [CALL] [EXIT] [CALL] [EXIT] [CALL] [EXIT] -> java.lang.String.equals(java.lang.Object): boolean [CALL] [EXIT] [CALL] [EXIT] -> java.lang.String.equals(java.lang.Object): boolean [CALL] [CALL] [EXIT] [CALL] [EXIT] [EXIT] [CALL] [EXIT] [CALL] [EXIT] [CALL] [EXIT] [CALL] [EXIT] -> java.lang.StringBuilder.append(java.lang.String): java.lang.StringBuilder [CALL] [EXIT] [CALL] [EXIT] -> java.lang.String.equals(java.lang.Object): boolean [CALL] [EXIT] [CALL] [EXIT] -> java.lang.String.equals(java.lang.Object): boolean [CALL] [CALL] [EXIT] [CALL] [EXIT] [EXIT] [CALL] [EXIT] [CALL] [EXIT] [CALL] [EXIT] [CALL] [EXIT] [CALL] [EXIT] [CALL] [EXIT] -> java.lang.StringBuilder.length(): int -> java.lang.StringBuilder.length(): int -> java.lang.StringBuilder.length(): int -> java.lang.StringBuilder.length(): int -> java.lang.StringBuilder.toString(): java.lang.String [CALL] -> java.lang.String.charAt(int): char -> java.lang.Character.isJavaIdentifierStart(char): boolean -> java.lang.String.length(): int -> java.lang.String.charAt(int): char -> java.lang.Character.isJavaIdentifierPart(char): boolean -> java.lang.String.charAt(int): char -> java.lang.Character.isJavaIdentifierPart(char): boolean -> java.lang.String.charAt(int): char -> java.lang.Character.isJavaIdentifierPart(char): boolean -> java.lang.String.charAt(int): char -> java.lang.Character.isJavaIdentifierPart(char): boolean -> java.lang.String.charAt(int): char -> java.lang.Character.isJavaIdentifierPart(char): boolean -> java.lang.String.charAt(int): char -> java.lang.Character.isJavaIdentifierPart(char): boolean -> java.lang.String.charAt(int): char -> java.lang.Character.isJavaIdentifierPart(char): boolean -> java.lang.String.charAt(int): char -> java.lang.Character.isJavaIdentifierPart(char): boolean -> java.lang.String.charAt(int): char -> java.lang.Character.isJavaIdentifierPart(char): boolean -> java.lang.String.charAt(int): char -> java.lang.Character.isJavaIdentifierPart(char): boolean -> java.lang.String.charAt(int): char -> java.lang.Character.isJavaIdentifierPart(char): boolean [EXIT] -> java.lang.StringBuilder.toString(): java.lang.String [CALL] -> java.lang.String.toCharArray(): char[] [CALL] [CALL] [EXIT] -> java.lang.String.hashCode(): int [EXIT] [EXIT] [CALL] [EXIT] -> java.util.List.add(java.lang.Object): boolean -> java.lang.StringBuilder.setLength(int): void [CALL] [CALL] [EXIT] [CALL] [EXIT] [EXIT] [EXIT]