InterfaceDecl = Interface:: Modifiers "interface" TypeDecl ClassBody /ws
TypeDecl = Identifier
- | GenericTypeDecl:: Identifier "<" (TypeArg +/ Comma) ">" /ws
+ | GenericTypeDecl:: Identifier "<" (TypeArg +/ comma) ">" /ws
TypeArg = Identifier
| Extends:: Identifier "extends" Type /ws
MethodHeader = MethodHeader:: Modifiers Type Identifier Args /ws
MethodBody = "{" "}" /ws
-Args = "(" (Arg+/Comma) ")" /ws
+Args = "(" (Arg+/comma) ")" /ws
| "(" ws! ")"
Arg = Arg:: Type Identifier /ws
Type = BareType | GenericType | ArrayType
BareType = Type:: TypeName | "boolean" | "int" | "double" | "float" | "char" | "short" | "long" | "void"
-GenericType = GenericType:: TypeName "<" (Type+/Comma) ">" /ws
+GenericType = GenericType:: TypeName "<" (Type+/comma) ">" /ws
ArrayType = ArrayOf:: (BareType | GenericType) "[]" /ws
ws = [\r\n ]**
-Comma = ws! "," ws!
+comma = ws! "," ws!
JavaLetter = [a-zA-Z_$]
Identifier = JavaLetter++