Parse "private" methods/fields in text ApiFile parser

CTS test of private APIs requires to parse their list generated
by API writers in CL I6e5eda65237fd80275842508d1580cbf961fa17d.
This patch adds "private" to the list of recognized keywords by
the ApiFile parser.

Test: m cts
Bug: 64382372
Change-Id: Iab10298f8ab795ab471ee58afa8f9e9b93a911f7
diff --git a/src/com/google/doclava/apicheck/ApiFile.java b/src/com/google/doclava/apicheck/ApiFile.java
index 14a8ab3..386e940 100644
--- a/src/com/google/doclava/apicheck/ApiFile.java
+++ b/src/com/google/doclava/apicheck/ApiFile.java
@@ -117,6 +117,7 @@
       throws ApiParseException {
     boolean pub = false;
     boolean prot = false;
+    boolean priv = false;
     boolean pkgpriv = false;
     boolean stat = false;
     boolean fin = false;
@@ -134,6 +135,9 @@
     } else if ("protected".equals(token)) {
       prot = true;
       token = tokenizer.requireToken();
+    } else if ("private".equals(token)) {
+      priv = true;
+      token = tokenizer.requireToken();
     } else {
       pkgpriv = true;
     }
@@ -170,7 +174,7 @@
     final TypeInfo simpleTypeInfo = Converter.obtainTypeFromString(name);
     token = tokenizer.requireToken();
     cl = new ClassInfo(null/*classDoc*/, ""/*rawCommentText*/, tokenizer.pos(), pub, prot,
-        pkgpriv, false/*isPrivate*/, stat, iface, abs, true/*isOrdinaryClass*/,
+        pkgpriv, priv, stat, iface, abs, true/*isOrdinaryClass*/,
         false/*isException*/, false/*isError*/, false/*isEnum*/, false/*isAnnotation*/,
         fin, false/*isIncluded*/, simpleTypeInfo.qualifiedTypeName(), typeInfo.qualifiedTypeName(),
         null/*qualifiedTypeName*/, false/*isPrimitive*/);
@@ -229,6 +233,7 @@
       throws ApiParseException {
     boolean pub = false;
     boolean prot = false;
+    boolean priv = false;
     boolean pkgpriv = false;
     boolean dep = false;
     String name;
@@ -240,6 +245,9 @@
     } else if ("protected".equals(token)) {
       prot = true;
       token = tokenizer.requireToken();
+    } else if ("private".equals(token)) {
+      priv = true;
+      token = tokenizer.requireToken();
     } else {
       pkgpriv = true;
     }
@@ -256,7 +264,7 @@
     //method = new MethodInfo(name, cl.qualifiedName(), false/*static*/, false/*final*/, dep,
     //    pub ? "public" : "protected", tokenizer.pos(), cl);
     method = new MethodInfo(""/*rawCommentText*/, new ArrayList<TypeInfo>()/*typeParameters*/,
-        name, null/*signature*/, cl, cl, pub, prot, pkgpriv, false/*isPrivate*/, false/*isFinal*/,
+        name, null/*signature*/, cl, cl, pub, prot, pkgpriv, priv, false/*isFinal*/,
         false/*isStatic*/, false/*isSynthetic*/, false/*isAbstract*/, false/*isSynthetic*/,
         false/*isNative*/, false/* isDefault */,
         false /*isAnnotationElement*/, "constructor", null/*flatSignature*/,
@@ -280,6 +288,7 @@
       throws ApiParseException {
     boolean pub = false;
     boolean prot = false;
+    boolean priv = false;
     boolean pkgpriv = false;
     boolean stat = false;
     boolean fin = false;
@@ -300,6 +309,9 @@
     } else if ("protected".equals(token)) {
       prot = true;
       token = tokenizer.requireToken();
+    } else if ("private".equals(token)) {
+      priv = true;
+      token = tokenizer.requireToken();
     } else {
       pkgpriv = true;
     }
@@ -341,7 +353,7 @@
     assertIdent(tokenizer, token);
     name = token;
     method = new MethodInfo(""/*rawCommentText*/, typeParameters, name, null/*signature*/, cl, cl,
-        pub, prot, pkgpriv, false/*isPrivate*/, fin, stat, false/*isSynthetic*/, abs/*isAbstract*/,
+        pub, prot, pkgpriv, priv, fin, stat, false/*isSynthetic*/, abs/*isAbstract*/,
         syn, false/*isNative*/, def/*isDefault*/, false /*isAnnotationElement*/, "method",
         null/*flatSignature*/, null/*overriddenMethod*/, returnType,
         new ArrayList<ParameterInfo>(), new ArrayList<ClassInfo>()/*thrownExceptions*/,
@@ -367,6 +379,7 @@
       throws ApiParseException {
     boolean pub = false;
     boolean prot = false;
+    boolean priv = false;
     boolean pkgpriv = false;
     boolean stat = false;
     boolean fin = false;
@@ -385,6 +398,9 @@
     } else if ("protected".equals(token)) {
       prot = true;
       token = tokenizer.requireToken();
+    } else if ("private".equals(token)) {
+      priv = true;
+      token = tokenizer.requireToken();
     } else {
       pkgpriv = true;
     }
@@ -428,7 +444,7 @@
       ex.line = tokenizer.getLine();
       throw ex;
     }
-    field = new FieldInfo(name, cl, cl, pub, prot, pkgpriv, false/*isPrivate*/, fin, stat,
+    field = new FieldInfo(name, cl, cl, pub, prot, pkgpriv, priv, fin, stat,
         trans, vol, false, Converter.obtainTypeFromString(type), "", v, tokenizer.pos(),
         new ArrayList<AnnotationInstanceInfo>());
     field.setDeprecated(dep);