# keywords
" parcelable "
" import "
" package "
" in "
" out "
" inout "
" cpp_header "
" const "
" true "
" false "
" interface "
" oneway "
" enum "
" union "

# types
" void "
" boolean "
" byte "
" char "
" int "
" long "
" float "
" double "
" String "
" List "
" List< "
" Map "
" Map< "
" IBinder "
" FileDescriptor "
" CharSequence "
" ParcelFileDescriptor "
" java.util.List "
" java.util.List< "
" java.util.Map "
" java.util.Map< "
" android.os.ParcelFileDescriptor "
" ParcelableHolder "
" > "

# annotations
" @nullable "
" @utf8InCpp "
" @VintfStability "
" @SensitiveData "
" @UnsupportedAppUsage "
" @SystemApi "
" @JavaPassthrough "
" @JavaOnlyStableParcelable "
" @Backing "
" @FixedSize "
" @Descriptor "
" @JavaDervie "
" @RustDerive "
" /** @hide */ "
" /** @deprecated reason */ "

# annotation arguments
" value "
" toString "
" expectedSignature "
" implicitMember "
" maxTargetSdk "
" publicAlternatives "
" trackingBug "
" type "
" Copy "
" Clone "
" PartialOrd "
" Ord "
" PartialEq "
" Eq "
" Clone "
" Hash "

# ignorable imports
" android.os.IInterface "
" android.os.IBinder "
" android.os.Parcelable "
" android.os.Parcel "
" android.content.Context "
" java.lang.String "

# specific to fuzzer
" a.path "
" b.path "
" Foo "
" a/path/Foo.aidl "
" b/path/Foo.aidl "
" path/Foo.aidl "

#arguments
" aidl "
" --apimapping "
" --checkapi=compatible "
" --checkapi=equal "
" --hash "
" --help "
" --lang=java "
" --lang=ndk "
" --lang=ndk "
" --lang=rust "
" --log "
" --ninja "
" --preprocess "
" --stability "
" --stability=vintf "
" --structured "
" --trace "
" --transaction_names "
" -I "
" -W "
" -Werror "
" -Weverything "
" -Wno- "
" -Wno-error "
" -a "
" -b "
" -d "
" -h "
" -o "
" -p "
" -t "
" -v "
" -w "
