Disallowed Java class names.
In the shallow embedding approach, a Java class is generated for each ACL2 package that includes ACL2 functions for which we generate Java code; each ACL2 function is turned into a Java method in that Java class.
The name of the Java class is obtained from the name of the ACL2 package
via atj-pkg-to-class,
but since the generated Java code imports some classes
from other Java packages,
we need to make sure that the Java class name for an ACL2 package
does not conflict with any of the imported classes.
The generated Java code imports all the classes
in the Java package of AIJ,
as well as some Java library classes and interfaces,
including all the ones in
We also disallow Java keywords, boolean literals, and the null literal, which are not valid Java identiers. There is no need to exclude the empty string explicitly (unlike *atj-disallowed-jvar-names*), because ACL2 package names are never empty and the mapping in atj-pkg-to-class never produces empty strings.
Definition:
(defconst *atj-disallowed-class-names* (append *jkeywords* *boolean-literals* (list *null-literal*) *aij-class-names* (list "BigInteger" "ArrayList" "List")))