Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save nikomatsakis/28368cc95aa55e071ffc01242d96ed38 to your computer and use it in GitHub Desktop.
Save nikomatsakis/28368cc95aa55e071ffc01242d96ed38 to your computer and use it in GitHub Desktop.
This file has been truncated, but you can view the full file.
Compiling duchess v0.1.0 (/home/nmatsakis/versioned/duchess)
error: failed to run custom build command for `duchess v0.1.0 (/home/nmatsakis/versioned/duchess)`
Caused by:
process didn't exit successfully: `/home/nmatsakis/versioned/duchess/target/debug/build/duchess-0e35cc4d34a0852b/build-script-build` (exit status: 1)
--- stdout
processing file `/home/nmatsakis/versioned/duchess/src/class_info/javap_parser.lalrpop`
/home/nmatsakis/versioned/duchess/src/class_info/javap_parser.lalrpop:31:5: 31:16: Conflict detected
when in this state:
ClassRef = (*) DotId ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
ClassRef = (*) DotId "<" Comma<RefType> ">" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
ClassRefOrId = (*) ClassRef ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
ClassRefOrId = (*) Id ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Constructor = Flags (*) DotId "(" Comma<Type> ")" Throws ";" Descriptor ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
DotId = (*) DotId "." ID ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
DotId = (*) Id "." ID ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Field = Flags (*) Type Id ";" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = Flags (*) "final" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = Flags (*) "native" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = Flags (*) "synchronized" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Generics = (*) ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Generics = (*) "<" Comma<Id> ">" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
ID = (*) r#"[a-zA-Z][a-zA-Z0-9]*"# ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Id = (*) ID ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Method = Flags (*) Generics Type Id "(" Comma<Type> ")" Throws ";" Descriptor ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
RefType = (*) ClassRefOrId ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
RefType = (*) RefType "[" "]" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
RefType = (*) "?" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
RefType = (*) "?" "extends" ClassRefOrId ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
RefType = (*) "?" "super" ClassRefOrId ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
ScalarType = (*) "boolean" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
ScalarType = (*) "byte" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
ScalarType = (*) "double" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
ScalarType = (*) "float" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
ScalarType = (*) "int" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
ScalarType = (*) "long" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
ScalarType = (*) "short" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Type = (*) RefType ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Type = (*) ScalarType ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
and looking at a token `"<"` we can reduce to a `Generics` but we can also shift
/home/nmatsakis/versioned/duchess/src/class_info/javap_parser.lalrpop:31:5: 31:16: Local ambiguity detected
The problem arises after having observed the following symbols in the input:
Flags
At that point, if the next token is a `"?"`, then the parser can proceed in two different ways.
First, the parser could execute the production at
/home/nmatsakis/versioned/duchess/src/class_info/javap_parser.lalrpop:31:5: 31:16, which would consume
the top 0 token(s) from the stack and produce a `Generics`. This might then yield a parse tree like
Flags ╷ ╷ Type Id "(" Comma<Type> ")" Throws ";" Descriptor
│ └─Generics─┘ │
└─Method───────────────────────────────────────────────────────────┘
Alternatively, the parser could shift the `"?"` token and later use it to construct a `RefType`. This
might then yield a parse tree like
Flags "?" "extends" ClassRefOrId Id ";"
│ ├─RefType────────────────┤ │
│ └─Type───────────────────┘ │
└─Field───────────────────────────────┘
Hint: It appears you could resolve this problem by adding the annotation `#[inline]` to the definition of
`Generics`. For more information, see the section on inlining in the LALRPOP manual.
/home/nmatsakis/versioned/duchess/src/class_info/javap_parser.lalrpop:31:5: 31:16: Local ambiguity detected
The problem arises after having observed the following symbols in the input:
Flags
At that point, if the next token is a `"boolean"`, then the parser can proceed in two different ways.
First, the parser could execute the production at
/home/nmatsakis/versioned/duchess/src/class_info/javap_parser.lalrpop:31:5: 31:16, which would consume
the top 0 token(s) from the stack and produce a `Generics`. This might then yield a parse tree like
Flags ╷ ╷ Type Id "(" Comma<Type> ")" Throws ";" Descriptor
│ └─Generics─┘ │
└─Method───────────────────────────────────────────────────────────┘
Alternatively, the parser could shift the `"boolean"` token and later use it to construct a
`ScalarType`. This might then yield a parse tree like
Flags "boolean" ╷ Id ";"
│ ├─ScalarType─┤ │
│ └─Type───────┘ │
└─Field───────────────────┘
See the LALRPOP manual for advice on making your grammar LR(1).
/home/nmatsakis/versioned/duchess/src/class_info/javap_parser.lalrpop:31:5: 31:16: Local ambiguity detected
The problem arises after having observed the following symbols in the input:
Flags
At that point, if the next token is a `"byte"`, then the parser can proceed in two different ways.
First, the parser could execute the production at
/home/nmatsakis/versioned/duchess/src/class_info/javap_parser.lalrpop:31:5: 31:16, which would consume
the top 0 token(s) from the stack and produce a `Generics`. This might then yield a parse tree like
Flags ╷ ╷ Type Id "(" Comma<Type> ")" Throws ";" Descriptor
│ └─Generics─┘ │
└─Method───────────────────────────────────────────────────────────┘
Alternatively, the parser could shift the `"byte"` token and later use it to construct a `ScalarType`.
This might then yield a parse tree like
Flags "byte" ╷ Id ";"
│ ├─ScalarType─┤ │
│ └─Type───────┘ │
└─Field───────────────────┘
See the LALRPOP manual for advice on making your grammar LR(1).
/home/nmatsakis/versioned/duchess/src/class_info/javap_parser.lalrpop:31:5: 31:16: Local ambiguity detected
The problem arises after having observed the following symbols in the input:
Flags
At that point, if the next token is a `"double"`, then the parser can proceed in two different ways.
First, the parser could execute the production at
/home/nmatsakis/versioned/duchess/src/class_info/javap_parser.lalrpop:31:5: 31:16, which would consume
the top 0 token(s) from the stack and produce a `Generics`. This might then yield a parse tree like
Flags ╷ ╷ Type Id "(" Comma<Type> ")" Throws ";" Descriptor
│ └─Generics─┘ │
└─Method───────────────────────────────────────────────────────────┘
Alternatively, the parser could shift the `"double"` token and later use it to construct a
`ScalarType`. This might then yield a parse tree like
Flags "double" ╷ Id ";"
│ ├─ScalarType─┤ │
│ └─Type───────┘ │
└─Field───────────────────┘
See the LALRPOP manual for advice on making your grammar LR(1).
/home/nmatsakis/versioned/duchess/src/class_info/javap_parser.lalrpop:31:5: 31:16: Conflict detected
when in this state:
ClassRef = (*) DotId ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
ClassRef = (*) DotId "<" Comma<RefType> ">" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
ClassRefOrId = (*) ClassRef ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
ClassRefOrId = (*) Id ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Constructor = Flags (*) DotId "(" Comma<Type> ")" Throws ";" Descriptor ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
DotId = (*) DotId "." ID ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
DotId = (*) Id "." ID ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Field = Flags (*) Type Id ";" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = Flags (*) "final" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = Flags (*) "native" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = Flags (*) "synchronized" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Generics = (*) ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Generics = (*) "<" Comma<Id> ">" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
ID = (*) r#"[a-zA-Z][a-zA-Z0-9]*"# ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Id = (*) ID ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Method = Flags (*) Generics Type Id "(" Comma<Type> ")" Throws ";" Descriptor ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
RefType = (*) ClassRefOrId ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
RefType = (*) RefType "[" "]" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
RefType = (*) "?" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
RefType = (*) "?" "extends" ClassRefOrId ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
RefType = (*) "?" "super" ClassRefOrId ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
ScalarType = (*) "boolean" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
ScalarType = (*) "byte" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
ScalarType = (*) "double" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
ScalarType = (*) "float" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
ScalarType = (*) "int" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
ScalarType = (*) "long" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
ScalarType = (*) "short" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Type = (*) RefType ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Type = (*) ScalarType ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
and looking at a token `"final"` we can reduce to a `Generics` but we can also shift
/home/nmatsakis/versioned/duchess/src/class_info/javap_parser.lalrpop:31:5: 31:16: Local ambiguity detected
The problem arises after having observed the following symbols in the input:
Flags
At that point, if the next token is a `"float"`, then the parser can proceed in two different ways.
First, the parser could execute the production at
/home/nmatsakis/versioned/duchess/src/class_info/javap_parser.lalrpop:31:5: 31:16, which would consume
the top 0 token(s) from the stack and produce a `Generics`. This might then yield a parse tree like
Flags ╷ ╷ Type Id "(" Comma<Type> ")" Throws ";" Descriptor
│ └─Generics─┘ │
└─Method───────────────────────────────────────────────────────────┘
Alternatively, the parser could shift the `"float"` token and later use it to construct a
`ScalarType`. This might then yield a parse tree like
Flags "float" ╷ Id ";"
│ ├─ScalarType─┤ │
│ └─Type───────┘ │
└─Field───────────────────┘
See the LALRPOP manual for advice on making your grammar LR(1).
/home/nmatsakis/versioned/duchess/src/class_info/javap_parser.lalrpop:31:5: 31:16: Local ambiguity detected
The problem arises after having observed the following symbols in the input:
Flags
At that point, if the next token is a `"int"`, then the parser can proceed in two different ways.
First, the parser could execute the production at
/home/nmatsakis/versioned/duchess/src/class_info/javap_parser.lalrpop:31:5: 31:16, which would consume
the top 0 token(s) from the stack and produce a `Generics`. This might then yield a parse tree like
Flags ╷ ╷ Type Id "(" Comma<Type> ")" Throws ";" Descriptor
│ └─Generics─┘ │
└─Method───────────────────────────────────────────────────────────┘
Alternatively, the parser could shift the `"int"` token and later use it to construct a `ScalarType`.
This might then yield a parse tree like
Flags "int" ╷ Id ";"
│ ├─ScalarType─┤ │
│ └─Type───────┘ │
└─Field───────────────────┘
See the LALRPOP manual for advice on making your grammar LR(1).
/home/nmatsakis/versioned/duchess/src/class_info/javap_parser.lalrpop:31:5: 31:16: Local ambiguity detected
The problem arises after having observed the following symbols in the input:
Flags
At that point, if the next token is a `"long"`, then the parser can proceed in two different ways.
First, the parser could execute the production at
/home/nmatsakis/versioned/duchess/src/class_info/javap_parser.lalrpop:31:5: 31:16, which would consume
the top 0 token(s) from the stack and produce a `Generics`. This might then yield a parse tree like
Flags ╷ ╷ Type Id "(" Comma<Type> ")" Throws ";" Descriptor
│ └─Generics─┘ │
└─Method───────────────────────────────────────────────────────────┘
Alternatively, the parser could shift the `"long"` token and later use it to construct a `ScalarType`.
This might then yield a parse tree like
Flags "long" ╷ Id ";"
│ ├─ScalarType─┤ │
│ └─Type───────┘ │
└─Field───────────────────┘
See the LALRPOP manual for advice on making your grammar LR(1).
/home/nmatsakis/versioned/duchess/src/class_info/javap_parser.lalrpop:31:5: 31:16: Conflict detected
when in this state:
ClassRef = (*) DotId ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
ClassRef = (*) DotId "<" Comma<RefType> ">" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
ClassRefOrId = (*) ClassRef ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
ClassRefOrId = (*) Id ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Constructor = Flags (*) DotId "(" Comma<Type> ")" Throws ";" Descriptor ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
DotId = (*) DotId "." ID ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
DotId = (*) Id "." ID ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Field = Flags (*) Type Id ";" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = Flags (*) "final" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = Flags (*) "native" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = Flags (*) "synchronized" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Generics = (*) ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Generics = (*) "<" Comma<Id> ">" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
ID = (*) r#"[a-zA-Z][a-zA-Z0-9]*"# ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Id = (*) ID ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Method = Flags (*) Generics Type Id "(" Comma<Type> ")" Throws ";" Descriptor ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
RefType = (*) ClassRefOrId ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
RefType = (*) RefType "[" "]" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
RefType = (*) "?" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
RefType = (*) "?" "extends" ClassRefOrId ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
RefType = (*) "?" "super" ClassRefOrId ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
ScalarType = (*) "boolean" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
ScalarType = (*) "byte" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
ScalarType = (*) "double" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
ScalarType = (*) "float" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
ScalarType = (*) "int" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
ScalarType = (*) "long" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
ScalarType = (*) "short" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Type = (*) RefType ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Type = (*) ScalarType ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
and looking at a token `"native"` we can reduce to a `Generics` but we can also shift
/home/nmatsakis/versioned/duchess/src/class_info/javap_parser.lalrpop:31:5: 31:16: Local ambiguity detected
The problem arises after having observed the following symbols in the input:
Flags
At that point, if the next token is a `"short"`, then the parser can proceed in two different ways.
First, the parser could execute the production at
/home/nmatsakis/versioned/duchess/src/class_info/javap_parser.lalrpop:31:5: 31:16, which would consume
the top 0 token(s) from the stack and produce a `Generics`. This might then yield a parse tree like
Flags ╷ ╷ Type Id "(" Comma<Type> ")" Throws ";" Descriptor
│ └─Generics─┘ │
└─Method───────────────────────────────────────────────────────────┘
Alternatively, the parser could shift the `"short"` token and later use it to construct a
`ScalarType`. This might then yield a parse tree like
Flags "short" ╷ Id ";"
│ ├─ScalarType─┤ │
│ └─Type───────┘ │
└─Field───────────────────┘
See the LALRPOP manual for advice on making your grammar LR(1).
/home/nmatsakis/versioned/duchess/src/class_info/javap_parser.lalrpop:31:5: 31:16: Conflict detected
when in this state:
ClassRef = (*) DotId ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
ClassRef = (*) DotId "<" Comma<RefType> ">" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
ClassRefOrId = (*) ClassRef ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
ClassRefOrId = (*) Id ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Constructor = Flags (*) DotId "(" Comma<Type> ")" Throws ";" Descriptor ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
DotId = (*) DotId "." ID ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
DotId = (*) Id "." ID ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Field = Flags (*) Type Id ";" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = Flags (*) "final" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = Flags (*) "native" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = Flags (*) "synchronized" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Generics = (*) ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Generics = (*) "<" Comma<Id> ">" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
ID = (*) r#"[a-zA-Z][a-zA-Z0-9]*"# ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Id = (*) ID ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Method = Flags (*) Generics Type Id "(" Comma<Type> ")" Throws ";" Descriptor ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
RefType = (*) ClassRefOrId ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
RefType = (*) RefType "[" "]" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
RefType = (*) "?" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
RefType = (*) "?" "extends" ClassRefOrId ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
RefType = (*) "?" "super" ClassRefOrId ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
ScalarType = (*) "boolean" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
ScalarType = (*) "byte" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
ScalarType = (*) "double" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
ScalarType = (*) "float" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
ScalarType = (*) "int" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
ScalarType = (*) "long" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
ScalarType = (*) "short" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Type = (*) RefType ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Type = (*) ScalarType ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
and looking at a token `"synchronized"` we can reduce to a `Generics` but we can also shift
/home/nmatsakis/versioned/duchess/src/class_info/javap_parser.lalrpop:31:5: 31:16: Local ambiguity detected
The problem arises after having observed the following symbols in the input:
Flags
At that point, if the next token is a `r#"[a-zA-Z][a-zA-Z0-9]*"#`, then the parser can proceed in two
different ways.
First, the parser could execute the production at
/home/nmatsakis/versioned/duchess/src/class_info/javap_parser.lalrpop:31:5: 31:16, which would consume
the top 0 token(s) from the stack and produce a `Generics`. This might then yield a parse tree like
Flags ╷ ╷ Type Id "(" Comma<Type> ")" Throws ";" Descriptor
│ └─Generics─┘ │
└─Method───────────────────────────────────────────────────────────┘
Alternatively, the parser could shift the `r#"[a-zA-Z][a-zA-Z0-9]*"#` token and later use it to construct
a `ID`. This might then yield a parse tree like
Flags r#"[a-zA-Z][a-zA-Z0-9]*"# Id ";"
│ ├─ID────────────────────┤ │
│ ├─Id────────────────────┤ │
│ ├─ClassRefOrId──────────┤ │
│ ├─RefType───────────────┤ │
│ └─Type──────────────────┘ │
└─Field──────────────────────────────┘
See the LALRPOP manual for advice on making your grammar LR(1).
/home/nmatsakis/versioned/duchess/src/class_info/javap_parser.lalrpop:78:5: 78:26: Conflict detected
when in this state:
ClassInfo = Flags "class" DotId Generics "{" Method+ (*) "}" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Flags "final" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Flags "native" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Flags "synchronized" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Privacy ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Method = (*) Flags Generics Type Id "(" Comma<Type> ")" Throws ";" Descriptor ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Method+ = Method+ (*) Method ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Privacy = (*) ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Privacy = (*) "protected" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Privacy = (*) "public" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
and looking at a token `"protected"` we can reduce to a `Privacy` but we can also shift
/home/nmatsakis/versioned/duchess/src/class_info/javap_parser.lalrpop:78:5: 78:26: Conflict detected
when in this state:
ClassInfo = Flags "class" DotId Generics "{" Method+ (*) "}" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Flags "final" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Flags "native" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Flags "synchronized" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Privacy ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Method = (*) Flags Generics Type Id "(" Comma<Type> ")" Throws ";" Descriptor ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Method+ = Method+ (*) Method ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Privacy = (*) ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Privacy = (*) "protected" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Privacy = (*) "public" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
and looking at a token `"public"` we can reduce to a `Privacy` but we can also shift
/home/nmatsakis/versioned/duchess/src/class_info/javap_parser.lalrpop:78:5: 78:26: Conflict detected
when in this state:
ClassInfo = Flags "class" DotId Generics "{" Method+ (*) "}" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Flags "final" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Flags "native" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Flags "synchronized" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Privacy ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Method = (*) Flags Generics Type Id "(" Comma<Type> ")" Throws ";" Descriptor ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Method+ = Method+ (*) Method ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Privacy = (*) ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Privacy = (*) "protected" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Privacy = (*) "public" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
and looking at a token `"}"` we can reduce to a `Privacy` but we can also shift
/home/nmatsakis/versioned/duchess/src/class_info/javap_parser.lalrpop:10:27: 10:41: Conflict detected
when in this state:
ClassInfo = Header Flags "class" DotId Generics "implements" (*) Comma<ClassRef> "{" Constructor+ Method+ "}" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
ClassInfo = Header Flags "class" DotId Generics "implements" (*) Comma<ClassRef> "{" Constructor+ "}" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
ClassInfo = Header Flags "class" DotId Generics "implements" (*) Comma<ClassRef> "{" Field+ Constructor+ Method+ "}" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
ClassInfo = Header Flags "class" DotId Generics "implements" (*) Comma<ClassRef> "{" Field+ Constructor+ "}" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
ClassInfo = Header Flags "class" DotId Generics "implements" (*) Comma<ClassRef> "{" Field+ Method+ "}" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
ClassInfo = Header Flags "class" DotId Generics "implements" (*) Comma<ClassRef> "{" Field+ "}" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
ClassInfo = Header Flags "class" DotId Generics "implements" (*) Comma<ClassRef> "{" Method+ "}" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
ClassInfo = Header Flags "class" DotId Generics "implements" (*) Comma<ClassRef> "{" "}" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
ClassRef = (*) DotId ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
ClassRef = (*) DotId "<" Comma<RefType> ">" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Comma1<ClassRef> = (*) ClassRef ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Comma1<ClassRef> = (*) Comma<ClassRef> "," ClassRef ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Comma<ClassRef> = (*) ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Comma<ClassRef> = (*) Comma1<ClassRef> ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
DotId = (*) DotId "." ID ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
DotId = (*) Id "." ID ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
ID = (*) r#"[a-zA-Z][a-zA-Z0-9]*"# ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Id = (*) ID ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
and looking at a token `r#"[a-zA-Z][a-zA-Z0-9]*"#` we can reduce to a `Comma<ClassRef>` but we can also shift
/home/nmatsakis/versioned/duchess/src/class_info/javap_parser.lalrpop:78:5: 78:26: Conflict detected
when in this state:
ClassInfo = Header Flags "class" DotId Generics "{" (*) Constructor+ Method+ "}" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
ClassInfo = Header Flags "class" DotId Generics "{" (*) Constructor+ "}" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
ClassInfo = Header Flags "class" DotId Generics "{" (*) Field+ Constructor+ Method+ "}" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
ClassInfo = Header Flags "class" DotId Generics "{" (*) Field+ Constructor+ "}" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
ClassInfo = Header Flags "class" DotId Generics "{" (*) Field+ Method+ "}" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
ClassInfo = Header Flags "class" DotId Generics "{" (*) Field+ "}" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
ClassInfo = Header Flags "class" DotId Generics "{" (*) Method+ "}" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
ClassInfo = Header Flags "class" DotId Generics "{" (*) "}" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Constructor = (*) Flags DotId "(" Comma<Type> ")" Throws ";" Descriptor ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Constructor+ = (*) Constructor ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Constructor+ = (*) Constructor+ Constructor ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Field = (*) Flags Type Id ";" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Field+ = (*) Field ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Field+ = (*) Field+ Field ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Flags "final" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Flags "native" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Flags "synchronized" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Privacy ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Method = (*) Flags Generics Type Id "(" Comma<Type> ")" Throws ";" Descriptor ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Method+ = (*) Method ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Method+ = (*) Method+ Method ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Privacy = (*) ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Privacy = (*) "protected" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Privacy = (*) "public" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
and looking at a token `"protected"` we can reduce to a `Privacy` but we can also shift
/home/nmatsakis/versioned/duchess/src/class_info/javap_parser.lalrpop:78:5: 78:26: Conflict detected
when in this state:
ClassInfo = Header Flags "class" DotId Generics "{" (*) Constructor+ Method+ "}" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
ClassInfo = Header Flags "class" DotId Generics "{" (*) Constructor+ "}" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
ClassInfo = Header Flags "class" DotId Generics "{" (*) Field+ Constructor+ Method+ "}" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
ClassInfo = Header Flags "class" DotId Generics "{" (*) Field+ Constructor+ "}" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
ClassInfo = Header Flags "class" DotId Generics "{" (*) Field+ Method+ "}" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
ClassInfo = Header Flags "class" DotId Generics "{" (*) Field+ "}" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
ClassInfo = Header Flags "class" DotId Generics "{" (*) Method+ "}" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
ClassInfo = Header Flags "class" DotId Generics "{" (*) "}" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Constructor = (*) Flags DotId "(" Comma<Type> ")" Throws ";" Descriptor ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Constructor+ = (*) Constructor ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Constructor+ = (*) Constructor+ Constructor ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Field = (*) Flags Type Id ";" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Field+ = (*) Field ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Field+ = (*) Field+ Field ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Flags "final" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Flags "native" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Flags "synchronized" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Privacy ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Method = (*) Flags Generics Type Id "(" Comma<Type> ")" Throws ";" Descriptor ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Method+ = (*) Method ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Method+ = (*) Method+ Method ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Privacy = (*) ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Privacy = (*) "protected" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Privacy = (*) "public" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
and looking at a token `"public"` we can reduce to a `Privacy` but we can also shift
/home/nmatsakis/versioned/duchess/src/class_info/javap_parser.lalrpop:78:5: 78:26: Conflict detected
when in this state:
ClassInfo = Header Flags "class" DotId Generics "{" (*) Constructor+ Method+ "}" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
ClassInfo = Header Flags "class" DotId Generics "{" (*) Constructor+ "}" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
ClassInfo = Header Flags "class" DotId Generics "{" (*) Field+ Constructor+ Method+ "}" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
ClassInfo = Header Flags "class" DotId Generics "{" (*) Field+ Constructor+ "}" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
ClassInfo = Header Flags "class" DotId Generics "{" (*) Field+ Method+ "}" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
ClassInfo = Header Flags "class" DotId Generics "{" (*) Field+ "}" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
ClassInfo = Header Flags "class" DotId Generics "{" (*) Method+ "}" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
ClassInfo = Header Flags "class" DotId Generics "{" (*) "}" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Constructor = (*) Flags DotId "(" Comma<Type> ")" Throws ";" Descriptor ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Constructor+ = (*) Constructor ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Constructor+ = (*) Constructor+ Constructor ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Field = (*) Flags Type Id ";" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Field+ = (*) Field ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Field+ = (*) Field+ Field ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Flags "final" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Flags "native" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Flags "synchronized" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Privacy ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Method = (*) Flags Generics Type Id "(" Comma<Type> ")" Throws ";" Descriptor ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Method+ = (*) Method ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Method+ = (*) Method+ Method ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Privacy = (*) ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Privacy = (*) "protected" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Privacy = (*) "public" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
and looking at a token `"}"` we can reduce to a `Privacy` but we can also shift
/home/nmatsakis/versioned/duchess/src/class_info/javap_parser.lalrpop:10:27: 10:41: Conflict detected
when in this state:
ClassInfo = Flags "class" DotId Generics "extends" ClassRef "implements" (*) Comma<ClassRef> "{" Constructor+ Method+ "}" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
ClassInfo = Flags "class" DotId Generics "extends" ClassRef "implements" (*) Comma<ClassRef> "{" Constructor+ "}" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
ClassInfo = Flags "class" DotId Generics "extends" ClassRef "implements" (*) Comma<ClassRef> "{" Field+ Constructor+ Method+ "}" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
ClassInfo = Flags "class" DotId Generics "extends" ClassRef "implements" (*) Comma<ClassRef> "{" Field+ Constructor+ "}" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
ClassInfo = Flags "class" DotId Generics "extends" ClassRef "implements" (*) Comma<ClassRef> "{" Field+ Method+ "}" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
ClassInfo = Flags "class" DotId Generics "extends" ClassRef "implements" (*) Comma<ClassRef> "{" Field+ "}" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
ClassInfo = Flags "class" DotId Generics "extends" ClassRef "implements" (*) Comma<ClassRef> "{" Method+ "}" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
ClassInfo = Flags "class" DotId Generics "extends" ClassRef "implements" (*) Comma<ClassRef> "{" "}" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
ClassRef = (*) DotId ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
ClassRef = (*) DotId "<" Comma<RefType> ">" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Comma1<ClassRef> = (*) ClassRef ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Comma1<ClassRef> = (*) Comma<ClassRef> "," ClassRef ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Comma<ClassRef> = (*) ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Comma<ClassRef> = (*) Comma1<ClassRef> ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
DotId = (*) DotId "." ID ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
DotId = (*) Id "." ID ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
ID = (*) r#"[a-zA-Z][a-zA-Z0-9]*"# ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Id = (*) ID ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
and looking at a token `r#"[a-zA-Z][a-zA-Z0-9]*"#` we can reduce to a `Comma<ClassRef>` but we can also shift
/home/nmatsakis/versioned/duchess/src/class_info/javap_parser.lalrpop:78:5: 78:26: Conflict detected
when in this state:
ClassInfo = Flags "class" DotId Generics "extends" ClassRef "{" (*) Constructor+ Method+ "}" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
ClassInfo = Flags "class" DotId Generics "extends" ClassRef "{" (*) Constructor+ "}" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
ClassInfo = Flags "class" DotId Generics "extends" ClassRef "{" (*) Field+ Constructor+ Method+ "}" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
ClassInfo = Flags "class" DotId Generics "extends" ClassRef "{" (*) Field+ Constructor+ "}" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
ClassInfo = Flags "class" DotId Generics "extends" ClassRef "{" (*) Field+ Method+ "}" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
ClassInfo = Flags "class" DotId Generics "extends" ClassRef "{" (*) Field+ "}" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
ClassInfo = Flags "class" DotId Generics "extends" ClassRef "{" (*) Method+ "}" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
ClassInfo = Flags "class" DotId Generics "extends" ClassRef "{" (*) "}" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Constructor = (*) Flags DotId "(" Comma<Type> ")" Throws ";" Descriptor ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Constructor+ = (*) Constructor ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Constructor+ = (*) Constructor+ Constructor ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Field = (*) Flags Type Id ";" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Field+ = (*) Field ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Field+ = (*) Field+ Field ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Flags "final" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Flags "native" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Flags "synchronized" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Privacy ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Method = (*) Flags Generics Type Id "(" Comma<Type> ")" Throws ";" Descriptor ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Method+ = (*) Method ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Method+ = (*) Method+ Method ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Privacy = (*) ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Privacy = (*) "protected" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Privacy = (*) "public" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
and looking at a token `"protected"` we can reduce to a `Privacy` but we can also shift
/home/nmatsakis/versioned/duchess/src/class_info/javap_parser.lalrpop:78:5: 78:26: Conflict detected
when in this state:
ClassInfo = Flags "class" DotId Generics "extends" ClassRef "{" (*) Constructor+ Method+ "}" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
ClassInfo = Flags "class" DotId Generics "extends" ClassRef "{" (*) Constructor+ "}" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
ClassInfo = Flags "class" DotId Generics "extends" ClassRef "{" (*) Field+ Constructor+ Method+ "}" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
ClassInfo = Flags "class" DotId Generics "extends" ClassRef "{" (*) Field+ Constructor+ "}" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
ClassInfo = Flags "class" DotId Generics "extends" ClassRef "{" (*) Field+ Method+ "}" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
ClassInfo = Flags "class" DotId Generics "extends" ClassRef "{" (*) Field+ "}" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
ClassInfo = Flags "class" DotId Generics "extends" ClassRef "{" (*) Method+ "}" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
ClassInfo = Flags "class" DotId Generics "extends" ClassRef "{" (*) "}" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Constructor = (*) Flags DotId "(" Comma<Type> ")" Throws ";" Descriptor ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Constructor+ = (*) Constructor ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Constructor+ = (*) Constructor+ Constructor ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Field = (*) Flags Type Id ";" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Field+ = (*) Field ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Field+ = (*) Field+ Field ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Flags "final" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Flags "native" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Flags "synchronized" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Privacy ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Method = (*) Flags Generics Type Id "(" Comma<Type> ")" Throws ";" Descriptor ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Method+ = (*) Method ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Method+ = (*) Method+ Method ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Privacy = (*) ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Privacy = (*) "protected" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Privacy = (*) "public" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
and looking at a token `"public"` we can reduce to a `Privacy` but we can also shift
/home/nmatsakis/versioned/duchess/src/class_info/javap_parser.lalrpop:78:5: 78:26: Conflict detected
when in this state:
ClassInfo = Flags "class" DotId Generics "extends" ClassRef "{" (*) Constructor+ Method+ "}" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
ClassInfo = Flags "class" DotId Generics "extends" ClassRef "{" (*) Constructor+ "}" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
ClassInfo = Flags "class" DotId Generics "extends" ClassRef "{" (*) Field+ Constructor+ Method+ "}" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
ClassInfo = Flags "class" DotId Generics "extends" ClassRef "{" (*) Field+ Constructor+ "}" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
ClassInfo = Flags "class" DotId Generics "extends" ClassRef "{" (*) Field+ Method+ "}" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
ClassInfo = Flags "class" DotId Generics "extends" ClassRef "{" (*) Field+ "}" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
ClassInfo = Flags "class" DotId Generics "extends" ClassRef "{" (*) Method+ "}" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
ClassInfo = Flags "class" DotId Generics "extends" ClassRef "{" (*) "}" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Constructor = (*) Flags DotId "(" Comma<Type> ")" Throws ";" Descriptor ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Constructor+ = (*) Constructor ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Constructor+ = (*) Constructor+ Constructor ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Field = (*) Flags Type Id ";" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Field+ = (*) Field ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Field+ = (*) Field+ Field ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Flags "final" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Flags "native" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Flags "synchronized" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Privacy ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Method = (*) Flags Generics Type Id "(" Comma<Type> ")" Throws ";" Descriptor ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Method+ = (*) Method ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Method+ = (*) Method+ Method ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Privacy = (*) ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Privacy = (*) "protected" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Privacy = (*) "public" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
and looking at a token `"}"` we can reduce to a `Privacy` but we can also shift
/home/nmatsakis/versioned/duchess/src/class_info/javap_parser.lalrpop:122:32: 122:45: Conflict detected
when in this state:
ClassRef = (*) DotId ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
ClassRef = (*) DotId "<" Comma<RefType> ">" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
ClassRef = DotId "<" (*) Comma<RefType> ">" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
ClassRefOrId = (*) ClassRef ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
ClassRefOrId = (*) Id ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Comma1<RefType> = (*) Comma<RefType> "," RefType ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Comma1<RefType> = (*) RefType ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Comma<RefType> = (*) ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Comma<RefType> = (*) Comma1<RefType> ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
DotId = (*) DotId "." ID ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
DotId = (*) Id "." ID ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
ID = (*) r#"[a-zA-Z][a-zA-Z0-9]*"# ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Id = (*) ID ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
RefType = (*) ClassRefOrId ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
RefType = (*) RefType "[" "]" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
RefType = (*) "?" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
RefType = (*) "?" "extends" ClassRefOrId ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
RefType = (*) "?" "super" ClassRefOrId ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
and looking at a token `"?"` we can reduce to a `Comma<RefType>` but we can also shift
/home/nmatsakis/versioned/duchess/src/class_info/javap_parser.lalrpop:122:32: 122:45: Conflict detected
when in this state:
ClassRef = (*) DotId ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
ClassRef = (*) DotId "<" Comma<RefType> ">" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
ClassRef = DotId "<" (*) Comma<RefType> ">" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
ClassRefOrId = (*) ClassRef ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
ClassRefOrId = (*) Id ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Comma1<RefType> = (*) Comma<RefType> "," RefType ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Comma1<RefType> = (*) RefType ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Comma<RefType> = (*) ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Comma<RefType> = (*) Comma1<RefType> ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
DotId = (*) DotId "." ID ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
DotId = (*) Id "." ID ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
ID = (*) r#"[a-zA-Z][a-zA-Z0-9]*"# ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Id = (*) ID ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
RefType = (*) ClassRefOrId ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
RefType = (*) RefType "[" "]" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
RefType = (*) "?" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
RefType = (*) "?" "extends" ClassRefOrId ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
RefType = (*) "?" "super" ClassRefOrId ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
and looking at a token `r#"[a-zA-Z][a-zA-Z0-9]*"#` we can reduce to a `Comma<RefType>` but we can also shift
/home/nmatsakis/versioned/duchess/src/class_info/javap_parser.lalrpop:78:5: 78:26: Conflict detected
when in this state:
ClassInfo = Flags "class" DotId Generics "implements" Comma<ClassRef> "{" (*) Constructor+ Method+ "}" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
ClassInfo = Flags "class" DotId Generics "implements" Comma<ClassRef> "{" (*) Constructor+ "}" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
ClassInfo = Flags "class" DotId Generics "implements" Comma<ClassRef> "{" (*) Field+ Constructor+ Method+ "}" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
ClassInfo = Flags "class" DotId Generics "implements" Comma<ClassRef> "{" (*) Field+ Constructor+ "}" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
ClassInfo = Flags "class" DotId Generics "implements" Comma<ClassRef> "{" (*) Field+ Method+ "}" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
ClassInfo = Flags "class" DotId Generics "implements" Comma<ClassRef> "{" (*) Field+ "}" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
ClassInfo = Flags "class" DotId Generics "implements" Comma<ClassRef> "{" (*) Method+ "}" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
ClassInfo = Flags "class" DotId Generics "implements" Comma<ClassRef> "{" (*) "}" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Constructor = (*) Flags DotId "(" Comma<Type> ")" Throws ";" Descriptor ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Constructor+ = (*) Constructor ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Constructor+ = (*) Constructor+ Constructor ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Field = (*) Flags Type Id ";" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Field+ = (*) Field ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Field+ = (*) Field+ Field ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Flags "final" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Flags "native" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Flags "synchronized" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Privacy ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Method = (*) Flags Generics Type Id "(" Comma<Type> ")" Throws ";" Descriptor ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Method+ = (*) Method ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Method+ = (*) Method+ Method ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Privacy = (*) ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Privacy = (*) "protected" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Privacy = (*) "public" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
and looking at a token `"protected"` we can reduce to a `Privacy` but we can also shift
/home/nmatsakis/versioned/duchess/src/class_info/javap_parser.lalrpop:78:5: 78:26: Conflict detected
when in this state:
ClassInfo = Flags "class" DotId Generics "implements" Comma<ClassRef> "{" (*) Constructor+ Method+ "}" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
ClassInfo = Flags "class" DotId Generics "implements" Comma<ClassRef> "{" (*) Constructor+ "}" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
ClassInfo = Flags "class" DotId Generics "implements" Comma<ClassRef> "{" (*) Field+ Constructor+ Method+ "}" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
ClassInfo = Flags "class" DotId Generics "implements" Comma<ClassRef> "{" (*) Field+ Constructor+ "}" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
ClassInfo = Flags "class" DotId Generics "implements" Comma<ClassRef> "{" (*) Field+ Method+ "}" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
ClassInfo = Flags "class" DotId Generics "implements" Comma<ClassRef> "{" (*) Field+ "}" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
ClassInfo = Flags "class" DotId Generics "implements" Comma<ClassRef> "{" (*) Method+ "}" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
ClassInfo = Flags "class" DotId Generics "implements" Comma<ClassRef> "{" (*) "}" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Constructor = (*) Flags DotId "(" Comma<Type> ")" Throws ";" Descriptor ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Constructor+ = (*) Constructor ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Constructor+ = (*) Constructor+ Constructor ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Field = (*) Flags Type Id ";" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Field+ = (*) Field ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Field+ = (*) Field+ Field ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Flags "final" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Flags "native" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Flags "synchronized" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Privacy ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Method = (*) Flags Generics Type Id "(" Comma<Type> ")" Throws ";" Descriptor ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Method+ = (*) Method ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Method+ = (*) Method+ Method ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Privacy = (*) ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Privacy = (*) "protected" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Privacy = (*) "public" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
and looking at a token `"public"` we can reduce to a `Privacy` but we can also shift
/home/nmatsakis/versioned/duchess/src/class_info/javap_parser.lalrpop:78:5: 78:26: Conflict detected
when in this state:
ClassInfo = Flags "class" DotId Generics "implements" Comma<ClassRef> "{" (*) Constructor+ Method+ "}" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
ClassInfo = Flags "class" DotId Generics "implements" Comma<ClassRef> "{" (*) Constructor+ "}" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
ClassInfo = Flags "class" DotId Generics "implements" Comma<ClassRef> "{" (*) Field+ Constructor+ Method+ "}" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
ClassInfo = Flags "class" DotId Generics "implements" Comma<ClassRef> "{" (*) Field+ Constructor+ "}" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
ClassInfo = Flags "class" DotId Generics "implements" Comma<ClassRef> "{" (*) Field+ Method+ "}" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
ClassInfo = Flags "class" DotId Generics "implements" Comma<ClassRef> "{" (*) Field+ "}" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
ClassInfo = Flags "class" DotId Generics "implements" Comma<ClassRef> "{" (*) Method+ "}" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
ClassInfo = Flags "class" DotId Generics "implements" Comma<ClassRef> "{" (*) "}" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Constructor = (*) Flags DotId "(" Comma<Type> ")" Throws ";" Descriptor ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Constructor+ = (*) Constructor ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Constructor+ = (*) Constructor+ Constructor ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Field = (*) Flags Type Id ";" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Field+ = (*) Field ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Field+ = (*) Field+ Field ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Flags "final" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Flags "native" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Flags "synchronized" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Privacy ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Method = (*) Flags Generics Type Id "(" Comma<Type> ")" Throws ";" Descriptor ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Method+ = (*) Method ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Method+ = (*) Method+ Method ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Privacy = (*) ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Privacy = (*) "protected" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Privacy = (*) "public" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
and looking at a token `"}"` we can reduce to a `Privacy` but we can also shift
/home/nmatsakis/versioned/duchess/src/class_info/javap_parser.lalrpop:31:5: 31:16: Conflict detected
when in this state:
Constructor = Flags (*) DotId "(" Comma<Type> ")" Throws ";" Descriptor ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
DotId = (*) DotId "." ID ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
DotId = (*) Id "." ID ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = Flags (*) "final" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = Flags (*) "native" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = Flags (*) "synchronized" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Generics = (*) ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Generics = (*) "<" Comma<Id> ">" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
ID = (*) r#"[a-zA-Z][a-zA-Z0-9]*"# ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Id = (*) ID ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Method = Flags (*) Generics Type Id "(" Comma<Type> ")" Throws ";" Descriptor ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
and looking at a token `"<"` we can reduce to a `Generics` but we can also shift
/home/nmatsakis/versioned/duchess/src/class_info/javap_parser.lalrpop:31:5: 31:16: Conflict detected
when in this state:
Constructor = Flags (*) DotId "(" Comma<Type> ")" Throws ";" Descriptor ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
DotId = (*) DotId "." ID ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
DotId = (*) Id "." ID ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = Flags (*) "final" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = Flags (*) "native" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = Flags (*) "synchronized" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Generics = (*) ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Generics = (*) "<" Comma<Id> ">" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
ID = (*) r#"[a-zA-Z][a-zA-Z0-9]*"# ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Id = (*) ID ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Method = Flags (*) Generics Type Id "(" Comma<Type> ")" Throws ";" Descriptor ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
and looking at a token `"final"` we can reduce to a `Generics` but we can also shift
/home/nmatsakis/versioned/duchess/src/class_info/javap_parser.lalrpop:31:5: 31:16: Conflict detected
when in this state:
Constructor = Flags (*) DotId "(" Comma<Type> ")" Throws ";" Descriptor ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
DotId = (*) DotId "." ID ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
DotId = (*) Id "." ID ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = Flags (*) "final" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = Flags (*) "native" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = Flags (*) "synchronized" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Generics = (*) ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Generics = (*) "<" Comma<Id> ">" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
ID = (*) r#"[a-zA-Z][a-zA-Z0-9]*"# ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Id = (*) ID ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Method = Flags (*) Generics Type Id "(" Comma<Type> ")" Throws ";" Descriptor ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
and looking at a token `"native"` we can reduce to a `Generics` but we can also shift
/home/nmatsakis/versioned/duchess/src/class_info/javap_parser.lalrpop:31:5: 31:16: Conflict detected
when in this state:
Constructor = Flags (*) DotId "(" Comma<Type> ")" Throws ";" Descriptor ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
DotId = (*) DotId "." ID ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
DotId = (*) Id "." ID ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = Flags (*) "final" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = Flags (*) "native" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = Flags (*) "synchronized" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Generics = (*) ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Generics = (*) "<" Comma<Id> ">" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
ID = (*) r#"[a-zA-Z][a-zA-Z0-9]*"# ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Id = (*) ID ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Method = Flags (*) Generics Type Id "(" Comma<Type> ")" Throws ";" Descriptor ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
and looking at a token `"synchronized"` we can reduce to a `Generics` but we can also shift
/home/nmatsakis/versioned/duchess/src/class_info/javap_parser.lalrpop:31:5: 31:16: Local ambiguity detected
The problem arises after having observed the following symbols in the input:
Flags
At that point, if the next token is a `r#"[a-zA-Z][a-zA-Z0-9]*"#`, then the parser can proceed in two
different ways.
First, the parser could execute the production at
/home/nmatsakis/versioned/duchess/src/class_info/javap_parser.lalrpop:31:5: 31:16, which would consume
the top 0 token(s) from the stack and produce a `Generics`. This might then yield a parse tree like
Flags ╷ ╷ Type Id "(" Comma<Type> ")" Throws ";" Descriptor
│ └─Generics─┘ │
└─Method───────────────────────────────────────────────────────────┘
Alternatively, the parser could shift the `r#"[a-zA-Z][a-zA-Z0-9]*"#` token and later use it to construct
a `ID`. This might then yield a parse tree like
Flags r#"[a-zA-Z][a-zA-Z0-9]*"# "." ID "(" Comma<Type> ")" Throws ";" Descriptor
│ ├─ID────────────────────┤ │ │
│ ├─Id────────────────────┘ │ │
│ └─DotId────────────────────────┘ │
└─Constructor──────────────────────────────────────────────────────────────────┘
See the LALRPOP manual for advice on making your grammar LR(1).
/home/nmatsakis/versioned/duchess/src/class_info/javap_parser.lalrpop:78:5: 78:26: Conflict detected
when in this state:
ClassInfo = Flags "class" DotId Generics "{" Constructor+ Method+ (*) "}" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Flags "final" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Flags "native" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Flags "synchronized" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Privacy ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Method = (*) Flags Generics Type Id "(" Comma<Type> ")" Throws ";" Descriptor ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Method+ = Method+ (*) Method ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Privacy = (*) ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Privacy = (*) "protected" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Privacy = (*) "public" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
and looking at a token `"protected"` we can reduce to a `Privacy` but we can also shift
/home/nmatsakis/versioned/duchess/src/class_info/javap_parser.lalrpop:78:5: 78:26: Conflict detected
when in this state:
ClassInfo = Flags "class" DotId Generics "{" Constructor+ Method+ (*) "}" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Flags "final" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Flags "native" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Flags "synchronized" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Privacy ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Method = (*) Flags Generics Type Id "(" Comma<Type> ")" Throws ";" Descriptor ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Method+ = Method+ (*) Method ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Privacy = (*) ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Privacy = (*) "protected" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Privacy = (*) "public" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
and looking at a token `"public"` we can reduce to a `Privacy` but we can also shift
/home/nmatsakis/versioned/duchess/src/class_info/javap_parser.lalrpop:78:5: 78:26: Conflict detected
when in this state:
ClassInfo = Flags "class" DotId Generics "{" Constructor+ Method+ (*) "}" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Flags "final" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Flags "native" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Flags "synchronized" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Privacy ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Method = (*) Flags Generics Type Id "(" Comma<Type> ")" Throws ";" Descriptor ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Method+ = Method+ (*) Method ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Privacy = (*) ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Privacy = (*) "protected" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Privacy = (*) "public" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
and looking at a token `"}"` we can reduce to a `Privacy` but we can also shift
/home/nmatsakis/versioned/duchess/src/class_info/javap_parser.lalrpop:78:5: 78:26: Conflict detected
when in this state:
ClassInfo = Flags "class" DotId Generics "{" Field+ Constructor+ (*) Method+ "}" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
ClassInfo = Flags "class" DotId Generics "{" Field+ Constructor+ (*) "}" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Constructor = (*) Flags DotId "(" Comma<Type> ")" Throws ";" Descriptor ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Constructor+ = Constructor+ (*) Constructor ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Flags "final" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Flags "native" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Flags "synchronized" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Privacy ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Method = (*) Flags Generics Type Id "(" Comma<Type> ")" Throws ";" Descriptor ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Method+ = (*) Method ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Method+ = (*) Method+ Method ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Privacy = (*) ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Privacy = (*) "protected" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Privacy = (*) "public" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
and looking at a token `"protected"` we can reduce to a `Privacy` but we can also shift
/home/nmatsakis/versioned/duchess/src/class_info/javap_parser.lalrpop:78:5: 78:26: Conflict detected
when in this state:
ClassInfo = Flags "class" DotId Generics "{" Field+ Constructor+ (*) Method+ "}" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
ClassInfo = Flags "class" DotId Generics "{" Field+ Constructor+ (*) "}" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Constructor = (*) Flags DotId "(" Comma<Type> ")" Throws ";" Descriptor ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Constructor+ = Constructor+ (*) Constructor ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Flags "final" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Flags "native" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Flags "synchronized" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Privacy ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Method = (*) Flags Generics Type Id "(" Comma<Type> ")" Throws ";" Descriptor ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Method+ = (*) Method ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Method+ = (*) Method+ Method ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Privacy = (*) ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Privacy = (*) "protected" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Privacy = (*) "public" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
and looking at a token `"public"` we can reduce to a `Privacy` but we can also shift
/home/nmatsakis/versioned/duchess/src/class_info/javap_parser.lalrpop:78:5: 78:26: Conflict detected
when in this state:
ClassInfo = Flags "class" DotId Generics "{" Field+ Constructor+ (*) Method+ "}" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
ClassInfo = Flags "class" DotId Generics "{" Field+ Constructor+ (*) "}" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Constructor = (*) Flags DotId "(" Comma<Type> ")" Throws ";" Descriptor ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Constructor+ = Constructor+ (*) Constructor ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Flags "final" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Flags "native" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Flags "synchronized" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Privacy ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Method = (*) Flags Generics Type Id "(" Comma<Type> ")" Throws ";" Descriptor ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Method+ = (*) Method ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Method+ = (*) Method+ Method ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Privacy = (*) ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Privacy = (*) "protected" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Privacy = (*) "public" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
and looking at a token `"}"` we can reduce to a `Privacy` but we can also shift
/home/nmatsakis/versioned/duchess/src/class_info/javap_parser.lalrpop:78:5: 78:26: Conflict detected
when in this state:
ClassInfo = Flags "class" DotId Generics "{" Field+ Method+ (*) "}" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Flags "final" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Flags "native" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Flags "synchronized" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Privacy ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Method = (*) Flags Generics Type Id "(" Comma<Type> ")" Throws ";" Descriptor ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Method+ = Method+ (*) Method ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Privacy = (*) ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Privacy = (*) "protected" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Privacy = (*) "public" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
and looking at a token `"protected"` we can reduce to a `Privacy` but we can also shift
/home/nmatsakis/versioned/duchess/src/class_info/javap_parser.lalrpop:78:5: 78:26: Conflict detected
when in this state:
ClassInfo = Flags "class" DotId Generics "{" Field+ Method+ (*) "}" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Flags "final" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Flags "native" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Flags "synchronized" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Privacy ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Method = (*) Flags Generics Type Id "(" Comma<Type> ")" Throws ";" Descriptor ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Method+ = Method+ (*) Method ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Privacy = (*) ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Privacy = (*) "protected" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Privacy = (*) "public" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
and looking at a token `"public"` we can reduce to a `Privacy` but we can also shift
/home/nmatsakis/versioned/duchess/src/class_info/javap_parser.lalrpop:78:5: 78:26: Conflict detected
when in this state:
ClassInfo = Flags "class" DotId Generics "{" Field+ Method+ (*) "}" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Flags "final" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Flags "native" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Flags "synchronized" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Privacy ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Method = (*) Flags Generics Type Id "(" Comma<Type> ")" Throws ";" Descriptor ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Method+ = Method+ (*) Method ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Privacy = (*) ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Privacy = (*) "protected" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Privacy = (*) "public" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
and looking at a token `"}"` we can reduce to a `Privacy` but we can also shift
/home/nmatsakis/versioned/duchess/src/class_info/javap_parser.lalrpop:121:5: 121:55: Conflict detected
when in this state:
ClassRef = DotId (*) ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
ClassRef = DotId (*) "<" Comma<RefType> ">" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Constructor = Flags DotId (*) "(" Comma<Type> ")" Throws ";" Descriptor ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
DotId = DotId (*) "." ID ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
and looking at a token `"("` we can reduce to a `ClassRef` but we can also shift
/home/nmatsakis/versioned/duchess/src/class_info/javap_parser.lalrpop:121:5: 121:55: Conflict detected
when in this state:
ClassRef = DotId (*) ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
ClassRef = DotId (*) "<" Comma<RefType> ">" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Constructor = Flags DotId (*) "(" Comma<Type> ")" Throws ";" Descriptor ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
DotId = DotId (*) "." ID ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
and looking at a token `"."` we can reduce to a `ClassRef` but we can also shift
/home/nmatsakis/versioned/duchess/src/class_info/javap_parser.lalrpop:121:5: 121:55: Conflict detected
when in this state:
ClassRef = DotId (*) ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
ClassRef = DotId (*) "<" Comma<RefType> ">" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Constructor = Flags DotId (*) "(" Comma<Type> ")" Throws ";" Descriptor ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
DotId = DotId (*) "." ID ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
and looking at a token `"<"` we can reduce to a `ClassRef` but we can also shift
/home/nmatsakis/versioned/duchess/src/class_info/javap_parser.lalrpop:117:5: 117:38: Conflict detected
when in this state:
ClassRefOrId = Id (*) ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
DotId = Id (*) "." ID ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
and looking at a token `"."` we can reduce to a `ClassRefOrId` but we can also shift
/home/nmatsakis/versioned/duchess/src/class_info/javap_parser.lalrpop:94:5: 94:30: Conflict detected
when in this state:
RefType = RefType (*) "[" "]" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Type = RefType (*) ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
and looking at a token `"["` we can reduce to a `Type` but we can also shift
/home/nmatsakis/versioned/duchess/src/class_info/javap_parser.lalrpop:112:5: 112:28: Conflict detected
when in this state:
RefType = "?" (*) ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
RefType = "?" (*) "extends" ClassRefOrId ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
RefType = "?" (*) "super" ClassRefOrId ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
and looking at a token `"extends"` we can reduce to a `RefType` but we can also shift
/home/nmatsakis/versioned/duchess/src/class_info/javap_parser.lalrpop:112:5: 112:28: Conflict detected
when in this state:
RefType = "?" (*) ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
RefType = "?" (*) "extends" ClassRefOrId ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
RefType = "?" (*) "super" ClassRefOrId ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
and looking at a token `"super"` we can reduce to a `RefType` but we can also shift
/home/nmatsakis/versioned/duchess/src/class_info/javap_parser.lalrpop:31:5: 31:16: Conflict detected
when in this state:
Flags = Flags (*) "final" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = Flags (*) "native" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = Flags (*) "synchronized" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Generics = (*) ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Generics = (*) "<" Comma<Id> ">" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Method = Flags (*) Generics Type Id "(" Comma<Type> ")" Throws ";" Descriptor ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
and looking at a token `"<"` we can reduce to a `Generics` but we can also shift
/home/nmatsakis/versioned/duchess/src/class_info/javap_parser.lalrpop:31:5: 31:16: Conflict detected
when in this state:
Flags = Flags (*) "final" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = Flags (*) "native" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = Flags (*) "synchronized" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Generics = (*) ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Generics = (*) "<" Comma<Id> ">" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Method = Flags (*) Generics Type Id "(" Comma<Type> ")" Throws ";" Descriptor ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
and looking at a token `"final"` we can reduce to a `Generics` but we can also shift
/home/nmatsakis/versioned/duchess/src/class_info/javap_parser.lalrpop:31:5: 31:16: Conflict detected
when in this state:
Flags = Flags (*) "final" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = Flags (*) "native" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = Flags (*) "synchronized" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Generics = (*) ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Generics = (*) "<" Comma<Id> ">" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Method = Flags (*) Generics Type Id "(" Comma<Type> ")" Throws ";" Descriptor ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
and looking at a token `"native"` we can reduce to a `Generics` but we can also shift
/home/nmatsakis/versioned/duchess/src/class_info/javap_parser.lalrpop:31:5: 31:16: Conflict detected
when in this state:
Flags = Flags (*) "final" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = Flags (*) "native" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = Flags (*) "synchronized" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Generics = (*) ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Generics = (*) "<" Comma<Id> ">" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Method = Flags (*) Generics Type Id "(" Comma<Type> ")" Throws ";" Descriptor ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
and looking at a token `"synchronized"` we can reduce to a `Generics` but we can also shift
/home/nmatsakis/versioned/duchess/src/class_info/javap_parser.lalrpop:78:5: 78:26: Conflict detected
when in this state:
ClassInfo = Header Flags "class" DotId Generics "{" Constructor+ (*) Method+ "}" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
ClassInfo = Header Flags "class" DotId Generics "{" Constructor+ (*) "}" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Constructor = (*) Flags DotId "(" Comma<Type> ")" Throws ";" Descriptor ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Constructor+ = Constructor+ (*) Constructor ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Flags "final" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Flags "native" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Flags "synchronized" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Privacy ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Method = (*) Flags Generics Type Id "(" Comma<Type> ")" Throws ";" Descriptor ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Method+ = (*) Method ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Method+ = (*) Method+ Method ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Privacy = (*) ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Privacy = (*) "protected" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Privacy = (*) "public" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
and looking at a token `"protected"` we can reduce to a `Privacy` but we can also shift
/home/nmatsakis/versioned/duchess/src/class_info/javap_parser.lalrpop:78:5: 78:26: Conflict detected
when in this state:
ClassInfo = Header Flags "class" DotId Generics "{" Constructor+ (*) Method+ "}" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
ClassInfo = Header Flags "class" DotId Generics "{" Constructor+ (*) "}" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Constructor = (*) Flags DotId "(" Comma<Type> ")" Throws ";" Descriptor ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Constructor+ = Constructor+ (*) Constructor ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Flags "final" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Flags "native" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Flags "synchronized" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Privacy ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Method = (*) Flags Generics Type Id "(" Comma<Type> ")" Throws ";" Descriptor ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Method+ = (*) Method ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Method+ = (*) Method+ Method ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Privacy = (*) ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Privacy = (*) "protected" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Privacy = (*) "public" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
and looking at a token `"public"` we can reduce to a `Privacy` but we can also shift
/home/nmatsakis/versioned/duchess/src/class_info/javap_parser.lalrpop:78:5: 78:26: Conflict detected
when in this state:
ClassInfo = Header Flags "class" DotId Generics "{" Constructor+ (*) Method+ "}" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
ClassInfo = Header Flags "class" DotId Generics "{" Constructor+ (*) "}" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Constructor = (*) Flags DotId "(" Comma<Type> ")" Throws ";" Descriptor ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Constructor+ = Constructor+ (*) Constructor ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Flags "final" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Flags "native" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Flags "synchronized" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Privacy ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Method = (*) Flags Generics Type Id "(" Comma<Type> ")" Throws ";" Descriptor ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Method+ = (*) Method ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Method+ = (*) Method+ Method ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Privacy = (*) ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Privacy = (*) "protected" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Privacy = (*) "public" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
and looking at a token `"}"` we can reduce to a `Privacy` but we can also shift
/home/nmatsakis/versioned/duchess/src/class_info/javap_parser.lalrpop:78:5: 78:26: Conflict detected
when in this state:
ClassInfo = Header Flags "class" DotId Generics "{" Field+ (*) Constructor+ Method+ "}" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
ClassInfo = Header Flags "class" DotId Generics "{" Field+ (*) Constructor+ "}" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
ClassInfo = Header Flags "class" DotId Generics "{" Field+ (*) Method+ "}" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
ClassInfo = Header Flags "class" DotId Generics "{" Field+ (*) "}" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Constructor = (*) Flags DotId "(" Comma<Type> ")" Throws ";" Descriptor ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Constructor+ = (*) Constructor ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Constructor+ = (*) Constructor+ Constructor ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Field = (*) Flags Type Id ";" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Field+ = Field+ (*) Field ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Flags "final" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Flags "native" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Flags "synchronized" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Privacy ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Method = (*) Flags Generics Type Id "(" Comma<Type> ")" Throws ";" Descriptor ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Method+ = (*) Method ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Method+ = (*) Method+ Method ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Privacy = (*) ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Privacy = (*) "protected" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Privacy = (*) "public" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
and looking at a token `"protected"` we can reduce to a `Privacy` but we can also shift
/home/nmatsakis/versioned/duchess/src/class_info/javap_parser.lalrpop:78:5: 78:26: Conflict detected
when in this state:
ClassInfo = Header Flags "class" DotId Generics "{" Field+ (*) Constructor+ Method+ "}" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
ClassInfo = Header Flags "class" DotId Generics "{" Field+ (*) Constructor+ "}" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
ClassInfo = Header Flags "class" DotId Generics "{" Field+ (*) Method+ "}" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
ClassInfo = Header Flags "class" DotId Generics "{" Field+ (*) "}" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Constructor = (*) Flags DotId "(" Comma<Type> ")" Throws ";" Descriptor ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Constructor+ = (*) Constructor ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Constructor+ = (*) Constructor+ Constructor ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Field = (*) Flags Type Id ";" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Field+ = Field+ (*) Field ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Flags "final" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Flags "native" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Flags "synchronized" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Privacy ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Method = (*) Flags Generics Type Id "(" Comma<Type> ")" Throws ";" Descriptor ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Method+ = (*) Method ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Method+ = (*) Method+ Method ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Privacy = (*) ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Privacy = (*) "protected" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Privacy = (*) "public" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
and looking at a token `"public"` we can reduce to a `Privacy` but we can also shift
/home/nmatsakis/versioned/duchess/src/class_info/javap_parser.lalrpop:78:5: 78:26: Conflict detected
when in this state:
ClassInfo = Header Flags "class" DotId Generics "{" Field+ (*) Constructor+ Method+ "}" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
ClassInfo = Header Flags "class" DotId Generics "{" Field+ (*) Constructor+ "}" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
ClassInfo = Header Flags "class" DotId Generics "{" Field+ (*) Method+ "}" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
ClassInfo = Header Flags "class" DotId Generics "{" Field+ (*) "}" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Constructor = (*) Flags DotId "(" Comma<Type> ")" Throws ";" Descriptor ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Constructor+ = (*) Constructor ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Constructor+ = (*) Constructor+ Constructor ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Field = (*) Flags Type Id ";" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Field+ = Field+ (*) Field ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Flags "final" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Flags "native" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Flags "synchronized" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Privacy ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Method = (*) Flags Generics Type Id "(" Comma<Type> ")" Throws ";" Descriptor ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Method+ = (*) Method ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Method+ = (*) Method+ Method ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Privacy = (*) ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Privacy = (*) "protected" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Privacy = (*) "public" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
and looking at a token `"}"` we can reduce to a `Privacy` but we can also shift
/home/nmatsakis/versioned/duchess/src/class_info/javap_parser.lalrpop:78:5: 78:26: Conflict detected
when in this state:
ClassInfo = Header Flags "class" DotId Generics "{" Method+ (*) "}" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Flags "final" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Flags "native" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Flags "synchronized" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Privacy ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Method = (*) Flags Generics Type Id "(" Comma<Type> ")" Throws ";" Descriptor ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Method+ = Method+ (*) Method ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Privacy = (*) ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Privacy = (*) "protected" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Privacy = (*) "public" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
and looking at a token `"protected"` we can reduce to a `Privacy` but we can also shift
/home/nmatsakis/versioned/duchess/src/class_info/javap_parser.lalrpop:78:5: 78:26: Conflict detected
when in this state:
ClassInfo = Header Flags "class" DotId Generics "{" Method+ (*) "}" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Flags "final" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Flags "native" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Flags "synchronized" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Privacy ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Method = (*) Flags Generics Type Id "(" Comma<Type> ")" Throws ";" Descriptor ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Method+ = Method+ (*) Method ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Privacy = (*) ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Privacy = (*) "protected" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Privacy = (*) "public" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
and looking at a token `"public"` we can reduce to a `Privacy` but we can also shift
/home/nmatsakis/versioned/duchess/src/class_info/javap_parser.lalrpop:78:5: 78:26: Conflict detected
when in this state:
ClassInfo = Header Flags "class" DotId Generics "{" Method+ (*) "}" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Flags "final" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Flags "native" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Flags "synchronized" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Privacy ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Method = (*) Flags Generics Type Id "(" Comma<Type> ")" Throws ";" Descriptor ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Method+ = Method+ (*) Method ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Privacy = (*) ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Privacy = (*) "protected" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Privacy = (*) "public" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
and looking at a token `"}"` we can reduce to a `Privacy` but we can also shift
/home/nmatsakis/versioned/duchess/src/class_info/javap_parser.lalrpop:78:5: 78:26: Conflict detected
when in this state:
ClassInfo = Flags "class" DotId Generics "extends" ClassRef "{" Constructor+ (*) Method+ "}" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
ClassInfo = Flags "class" DotId Generics "extends" ClassRef "{" Constructor+ (*) "}" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Constructor = (*) Flags DotId "(" Comma<Type> ")" Throws ";" Descriptor ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Constructor+ = Constructor+ (*) Constructor ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Flags "final" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Flags "native" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Flags "synchronized" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Privacy ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Method = (*) Flags Generics Type Id "(" Comma<Type> ")" Throws ";" Descriptor ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Method+ = (*) Method ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Method+ = (*) Method+ Method ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Privacy = (*) ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Privacy = (*) "protected" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Privacy = (*) "public" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
and looking at a token `"protected"` we can reduce to a `Privacy` but we can also shift
/home/nmatsakis/versioned/duchess/src/class_info/javap_parser.lalrpop:78:5: 78:26: Conflict detected
when in this state:
ClassInfo = Flags "class" DotId Generics "extends" ClassRef "{" Constructor+ (*) Method+ "}" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
ClassInfo = Flags "class" DotId Generics "extends" ClassRef "{" Constructor+ (*) "}" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Constructor = (*) Flags DotId "(" Comma<Type> ")" Throws ";" Descriptor ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Constructor+ = Constructor+ (*) Constructor ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Flags "final" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Flags "native" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Flags "synchronized" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Privacy ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Method = (*) Flags Generics Type Id "(" Comma<Type> ")" Throws ";" Descriptor ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Method+ = (*) Method ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Method+ = (*) Method+ Method ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Privacy = (*) ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Privacy = (*) "protected" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Privacy = (*) "public" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
and looking at a token `"public"` we can reduce to a `Privacy` but we can also shift
/home/nmatsakis/versioned/duchess/src/class_info/javap_parser.lalrpop:78:5: 78:26: Conflict detected
when in this state:
ClassInfo = Flags "class" DotId Generics "extends" ClassRef "{" Constructor+ (*) Method+ "}" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
ClassInfo = Flags "class" DotId Generics "extends" ClassRef "{" Constructor+ (*) "}" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Constructor = (*) Flags DotId "(" Comma<Type> ")" Throws ";" Descriptor ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Constructor+ = Constructor+ (*) Constructor ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Flags "final" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Flags "native" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Flags "synchronized" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Privacy ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Method = (*) Flags Generics Type Id "(" Comma<Type> ")" Throws ";" Descriptor ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Method+ = (*) Method ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Method+ = (*) Method+ Method ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Privacy = (*) ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Privacy = (*) "protected" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Privacy = (*) "public" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
and looking at a token `"}"` we can reduce to a `Privacy` but we can also shift
/home/nmatsakis/versioned/duchess/src/class_info/javap_parser.lalrpop:78:5: 78:26: Conflict detected
when in this state:
ClassInfo = Flags "class" DotId Generics "extends" ClassRef "{" Field+ (*) Constructor+ Method+ "}" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
ClassInfo = Flags "class" DotId Generics "extends" ClassRef "{" Field+ (*) Constructor+ "}" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
ClassInfo = Flags "class" DotId Generics "extends" ClassRef "{" Field+ (*) Method+ "}" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
ClassInfo = Flags "class" DotId Generics "extends" ClassRef "{" Field+ (*) "}" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Constructor = (*) Flags DotId "(" Comma<Type> ")" Throws ";" Descriptor ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Constructor+ = (*) Constructor ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Constructor+ = (*) Constructor+ Constructor ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Field = (*) Flags Type Id ";" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Field+ = Field+ (*) Field ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Flags "final" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Flags "native" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Flags "synchronized" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Privacy ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Method = (*) Flags Generics Type Id "(" Comma<Type> ")" Throws ";" Descriptor ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Method+ = (*) Method ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Method+ = (*) Method+ Method ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Privacy = (*) ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Privacy = (*) "protected" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Privacy = (*) "public" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
and looking at a token `"protected"` we can reduce to a `Privacy` but we can also shift
/home/nmatsakis/versioned/duchess/src/class_info/javap_parser.lalrpop:78:5: 78:26: Conflict detected
when in this state:
ClassInfo = Flags "class" DotId Generics "extends" ClassRef "{" Field+ (*) Constructor+ Method+ "}" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
ClassInfo = Flags "class" DotId Generics "extends" ClassRef "{" Field+ (*) Constructor+ "}" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
ClassInfo = Flags "class" DotId Generics "extends" ClassRef "{" Field+ (*) Method+ "}" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
ClassInfo = Flags "class" DotId Generics "extends" ClassRef "{" Field+ (*) "}" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Constructor = (*) Flags DotId "(" Comma<Type> ")" Throws ";" Descriptor ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Constructor+ = (*) Constructor ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Constructor+ = (*) Constructor+ Constructor ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Field = (*) Flags Type Id ";" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Field+ = Field+ (*) Field ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Flags "final" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Flags "native" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Flags "synchronized" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Privacy ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Method = (*) Flags Generics Type Id "(" Comma<Type> ")" Throws ";" Descriptor ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Method+ = (*) Method ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Method+ = (*) Method+ Method ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Privacy = (*) ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Privacy = (*) "protected" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Privacy = (*) "public" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
and looking at a token `"public"` we can reduce to a `Privacy` but we can also shift
/home/nmatsakis/versioned/duchess/src/class_info/javap_parser.lalrpop:78:5: 78:26: Conflict detected
when in this state:
ClassInfo = Flags "class" DotId Generics "extends" ClassRef "{" Field+ (*) Constructor+ Method+ "}" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
ClassInfo = Flags "class" DotId Generics "extends" ClassRef "{" Field+ (*) Constructor+ "}" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
ClassInfo = Flags "class" DotId Generics "extends" ClassRef "{" Field+ (*) Method+ "}" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
ClassInfo = Flags "class" DotId Generics "extends" ClassRef "{" Field+ (*) "}" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Constructor = (*) Flags DotId "(" Comma<Type> ")" Throws ";" Descriptor ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Constructor+ = (*) Constructor ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Constructor+ = (*) Constructor+ Constructor ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Field = (*) Flags Type Id ";" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Field+ = Field+ (*) Field ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Flags "final" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Flags "native" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Flags "synchronized" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Privacy ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Method = (*) Flags Generics Type Id "(" Comma<Type> ")" Throws ";" Descriptor ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Method+ = (*) Method ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Method+ = (*) Method+ Method ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Privacy = (*) ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Privacy = (*) "protected" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Privacy = (*) "public" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
and looking at a token `"}"` we can reduce to a `Privacy` but we can also shift
/home/nmatsakis/versioned/duchess/src/class_info/javap_parser.lalrpop:78:5: 78:26: Conflict detected
when in this state:
ClassInfo = Flags "class" DotId Generics "extends" ClassRef "{" Method+ (*) "}" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Flags "final" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Flags "native" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Flags "synchronized" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Privacy ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Method = (*) Flags Generics Type Id "(" Comma<Type> ")" Throws ";" Descriptor ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Method+ = Method+ (*) Method ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Privacy = (*) ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Privacy = (*) "protected" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Privacy = (*) "public" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
and looking at a token `"protected"` we can reduce to a `Privacy` but we can also shift
/home/nmatsakis/versioned/duchess/src/class_info/javap_parser.lalrpop:78:5: 78:26: Conflict detected
when in this state:
ClassInfo = Flags "class" DotId Generics "extends" ClassRef "{" Method+ (*) "}" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Flags "final" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Flags "native" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Flags "synchronized" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Privacy ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Method = (*) Flags Generics Type Id "(" Comma<Type> ")" Throws ";" Descriptor ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Method+ = Method+ (*) Method ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Privacy = (*) ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Privacy = (*) "protected" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Privacy = (*) "public" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
and looking at a token `"public"` we can reduce to a `Privacy` but we can also shift
/home/nmatsakis/versioned/duchess/src/class_info/javap_parser.lalrpop:78:5: 78:26: Conflict detected
when in this state:
ClassInfo = Flags "class" DotId Generics "extends" ClassRef "{" Method+ (*) "}" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Flags "final" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Flags "native" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Flags "synchronized" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Privacy ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Method = (*) Flags Generics Type Id "(" Comma<Type> ")" Throws ";" Descriptor ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Method+ = Method+ (*) Method ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Privacy = (*) ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Privacy = (*) "protected" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Privacy = (*) "public" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
and looking at a token `"}"` we can reduce to a `Privacy` but we can also shift
/home/nmatsakis/versioned/duchess/src/class_info/javap_parser.lalrpop:127:5: 127:13: Conflict detected
when in this state:
Comma1<RefType> = RefType (*) ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
RefType = RefType (*) "[" "]" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
and looking at a token `"["` we can reduce to a `Comma1<RefType>` but we can also shift
/home/nmatsakis/versioned/duchess/src/class_info/javap_parser.lalrpop:78:5: 78:26: Conflict detected
when in this state:
ClassInfo = Flags "class" DotId Generics "implements" Comma<ClassRef> "{" Constructor+ (*) Method+ "}" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
ClassInfo = Flags "class" DotId Generics "implements" Comma<ClassRef> "{" Constructor+ (*) "}" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Constructor = (*) Flags DotId "(" Comma<Type> ")" Throws ";" Descriptor ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Constructor+ = Constructor+ (*) Constructor ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Flags "final" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Flags "native" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Flags "synchronized" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Privacy ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Method = (*) Flags Generics Type Id "(" Comma<Type> ")" Throws ";" Descriptor ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Method+ = (*) Method ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Method+ = (*) Method+ Method ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Privacy = (*) ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Privacy = (*) "protected" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Privacy = (*) "public" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
and looking at a token `"protected"` we can reduce to a `Privacy` but we can also shift
/home/nmatsakis/versioned/duchess/src/class_info/javap_parser.lalrpop:78:5: 78:26: Conflict detected
when in this state:
ClassInfo = Flags "class" DotId Generics "implements" Comma<ClassRef> "{" Constructor+ (*) Method+ "}" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
ClassInfo = Flags "class" DotId Generics "implements" Comma<ClassRef> "{" Constructor+ (*) "}" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Constructor = (*) Flags DotId "(" Comma<Type> ")" Throws ";" Descriptor ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Constructor+ = Constructor+ (*) Constructor ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Flags "final" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Flags "native" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Flags "synchronized" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Privacy ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Method = (*) Flags Generics Type Id "(" Comma<Type> ")" Throws ";" Descriptor ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Method+ = (*) Method ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Method+ = (*) Method+ Method ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Privacy = (*) ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Privacy = (*) "protected" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Privacy = (*) "public" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
and looking at a token `"public"` we can reduce to a `Privacy` but we can also shift
/home/nmatsakis/versioned/duchess/src/class_info/javap_parser.lalrpop:78:5: 78:26: Conflict detected
when in this state:
ClassInfo = Flags "class" DotId Generics "implements" Comma<ClassRef> "{" Constructor+ (*) Method+ "}" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
ClassInfo = Flags "class" DotId Generics "implements" Comma<ClassRef> "{" Constructor+ (*) "}" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Constructor = (*) Flags DotId "(" Comma<Type> ")" Throws ";" Descriptor ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Constructor+ = Constructor+ (*) Constructor ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Flags "final" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Flags "native" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Flags "synchronized" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Privacy ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Method = (*) Flags Generics Type Id "(" Comma<Type> ")" Throws ";" Descriptor ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Method+ = (*) Method ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Method+ = (*) Method+ Method ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Privacy = (*) ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Privacy = (*) "protected" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Privacy = (*) "public" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
and looking at a token `"}"` we can reduce to a `Privacy` but we can also shift
/home/nmatsakis/versioned/duchess/src/class_info/javap_parser.lalrpop:78:5: 78:26: Conflict detected
when in this state:
ClassInfo = Flags "class" DotId Generics "implements" Comma<ClassRef> "{" Field+ (*) Constructor+ Method+ "}" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
ClassInfo = Flags "class" DotId Generics "implements" Comma<ClassRef> "{" Field+ (*) Constructor+ "}" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
ClassInfo = Flags "class" DotId Generics "implements" Comma<ClassRef> "{" Field+ (*) Method+ "}" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
ClassInfo = Flags "class" DotId Generics "implements" Comma<ClassRef> "{" Field+ (*) "}" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Constructor = (*) Flags DotId "(" Comma<Type> ")" Throws ";" Descriptor ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Constructor+ = (*) Constructor ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Constructor+ = (*) Constructor+ Constructor ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Field = (*) Flags Type Id ";" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Field+ = Field+ (*) Field ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Flags "final" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Flags "native" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Flags "synchronized" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Privacy ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Method = (*) Flags Generics Type Id "(" Comma<Type> ")" Throws ";" Descriptor ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Method+ = (*) Method ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Method+ = (*) Method+ Method ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Privacy = (*) ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Privacy = (*) "protected" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Privacy = (*) "public" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
and looking at a token `"protected"` we can reduce to a `Privacy` but we can also shift
/home/nmatsakis/versioned/duchess/src/class_info/javap_parser.lalrpop:78:5: 78:26: Conflict detected
when in this state:
ClassInfo = Flags "class" DotId Generics "implements" Comma<ClassRef> "{" Field+ (*) Constructor+ Method+ "}" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
ClassInfo = Flags "class" DotId Generics "implements" Comma<ClassRef> "{" Field+ (*) Constructor+ "}" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
ClassInfo = Flags "class" DotId Generics "implements" Comma<ClassRef> "{" Field+ (*) Method+ "}" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
ClassInfo = Flags "class" DotId Generics "implements" Comma<ClassRef> "{" Field+ (*) "}" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Constructor = (*) Flags DotId "(" Comma<Type> ")" Throws ";" Descriptor ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Constructor+ = (*) Constructor ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Constructor+ = (*) Constructor+ Constructor ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Field = (*) Flags Type Id ";" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Field+ = Field+ (*) Field ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Flags "final" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Flags "native" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Flags "synchronized" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Privacy ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Method = (*) Flags Generics Type Id "(" Comma<Type> ")" Throws ";" Descriptor ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Method+ = (*) Method ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Method+ = (*) Method+ Method ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Privacy = (*) ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Privacy = (*) "protected" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Privacy = (*) "public" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
and looking at a token `"public"` we can reduce to a `Privacy` but we can also shift
/home/nmatsakis/versioned/duchess/src/class_info/javap_parser.lalrpop:78:5: 78:26: Conflict detected
when in this state:
ClassInfo = Flags "class" DotId Generics "implements" Comma<ClassRef> "{" Field+ (*) Constructor+ Method+ "}" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
ClassInfo = Flags "class" DotId Generics "implements" Comma<ClassRef> "{" Field+ (*) Constructor+ "}" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
ClassInfo = Flags "class" DotId Generics "implements" Comma<ClassRef> "{" Field+ (*) Method+ "}" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
ClassInfo = Flags "class" DotId Generics "implements" Comma<ClassRef> "{" Field+ (*) "}" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Constructor = (*) Flags DotId "(" Comma<Type> ")" Throws ";" Descriptor ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Constructor+ = (*) Constructor ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Constructor+ = (*) Constructor+ Constructor ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Field = (*) Flags Type Id ";" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Field+ = Field+ (*) Field ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Flags "final" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Flags "native" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Flags "synchronized" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Privacy ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Method = (*) Flags Generics Type Id "(" Comma<Type> ")" Throws ";" Descriptor ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Method+ = (*) Method ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Method+ = (*) Method+ Method ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Privacy = (*) ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Privacy = (*) "protected" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Privacy = (*) "public" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
and looking at a token `"}"` we can reduce to a `Privacy` but we can also shift
/home/nmatsakis/versioned/duchess/src/class_info/javap_parser.lalrpop:78:5: 78:26: Conflict detected
when in this state:
ClassInfo = Flags "class" DotId Generics "implements" Comma<ClassRef> "{" Method+ (*) "}" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Flags "final" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Flags "native" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Flags "synchronized" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Privacy ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Method = (*) Flags Generics Type Id "(" Comma<Type> ")" Throws ";" Descriptor ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Method+ = Method+ (*) Method ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Privacy = (*) ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Privacy = (*) "protected" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Privacy = (*) "public" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
and looking at a token `"protected"` we can reduce to a `Privacy` but we can also shift
/home/nmatsakis/versioned/duchess/src/class_info/javap_parser.lalrpop:78:5: 78:26: Conflict detected
when in this state:
ClassInfo = Flags "class" DotId Generics "implements" Comma<ClassRef> "{" Method+ (*) "}" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Flags "final" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Flags "native" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Flags "synchronized" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Privacy ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Method = (*) Flags Generics Type Id "(" Comma<Type> ")" Throws ";" Descriptor ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Method+ = Method+ (*) Method ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Privacy = (*) ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Privacy = (*) "protected" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Privacy = (*) "public" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
and looking at a token `"public"` we can reduce to a `Privacy` but we can also shift
/home/nmatsakis/versioned/duchess/src/class_info/javap_parser.lalrpop:78:5: 78:26: Conflict detected
when in this state:
ClassInfo = Flags "class" DotId Generics "implements" Comma<ClassRef> "{" Method+ (*) "}" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Flags "final" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Flags "native" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Flags "synchronized" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Privacy ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Method = (*) Flags Generics Type Id "(" Comma<Type> ")" Throws ";" Descriptor ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Method+ = Method+ (*) Method ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Privacy = (*) ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Privacy = (*) "protected" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Privacy = (*) "public" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
and looking at a token `"}"` we can reduce to a `Privacy` but we can also shift
/home/nmatsakis/versioned/duchess/src/class_info/javap_parser.lalrpop:78:5: 78:26: Conflict detected
when in this state:
ClassInfo = Flags "class" DotId Generics "{" Field+ Constructor+ Method+ (*) "}" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Flags "final" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Flags "native" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Flags "synchronized" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Privacy ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Method = (*) Flags Generics Type Id "(" Comma<Type> ")" Throws ";" Descriptor ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Method+ = Method+ (*) Method ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Privacy = (*) ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Privacy = (*) "protected" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Privacy = (*) "public" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
and looking at a token `"protected"` we can reduce to a `Privacy` but we can also shift
/home/nmatsakis/versioned/duchess/src/class_info/javap_parser.lalrpop:78:5: 78:26: Conflict detected
when in this state:
ClassInfo = Flags "class" DotId Generics "{" Field+ Constructor+ Method+ (*) "}" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Flags "final" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Flags "native" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Flags "synchronized" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Privacy ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Method = (*) Flags Generics Type Id "(" Comma<Type> ")" Throws ";" Descriptor ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Method+ = Method+ (*) Method ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Privacy = (*) ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Privacy = (*) "protected" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Privacy = (*) "public" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
and looking at a token `"public"` we can reduce to a `Privacy` but we can also shift
/home/nmatsakis/versioned/duchess/src/class_info/javap_parser.lalrpop:78:5: 78:26: Conflict detected
when in this state:
ClassInfo = Flags "class" DotId Generics "{" Field+ Constructor+ Method+ (*) "}" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Flags "final" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Flags "native" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Flags "synchronized" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Privacy ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Method = (*) Flags Generics Type Id "(" Comma<Type> ")" Throws ";" Descriptor ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Method+ = Method+ (*) Method ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Privacy = (*) ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Privacy = (*) "protected" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Privacy = (*) "public" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
and looking at a token `"}"` we can reduce to a `Privacy` but we can also shift
/home/nmatsakis/versioned/duchess/src/class_info/javap_parser.lalrpop:51:32: 51:42: Conflict detected
when in this state:
ClassRef = (*) DotId ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
ClassRef = (*) DotId "<" Comma<RefType> ">" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
ClassRefOrId = (*) ClassRef ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
ClassRefOrId = (*) Id ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Comma1<Type> = (*) Comma<Type> "," Type ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Comma1<Type> = (*) Type ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Comma<Type> = (*) ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Comma<Type> = (*) Comma1<Type> ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Constructor = Flags DotId "(" (*) Comma<Type> ")" Throws ";" Descriptor ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
DotId = (*) DotId "." ID ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
DotId = (*) Id "." ID ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
ID = (*) r#"[a-zA-Z][a-zA-Z0-9]*"# ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Id = (*) ID ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
RefType = (*) ClassRefOrId ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
RefType = (*) RefType "[" "]" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
RefType = (*) "?" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
RefType = (*) "?" "extends" ClassRefOrId ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
RefType = (*) "?" "super" ClassRefOrId ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
ScalarType = (*) "boolean" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
ScalarType = (*) "byte" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
ScalarType = (*) "double" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
ScalarType = (*) "float" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
ScalarType = (*) "int" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
ScalarType = (*) "long" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
ScalarType = (*) "short" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Type = (*) RefType ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Type = (*) ScalarType ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
and looking at a token `"?"` we can reduce to a `Comma<Type>` but we can also shift
/home/nmatsakis/versioned/duchess/src/class_info/javap_parser.lalrpop:51:32: 51:42: Conflict detected
when in this state:
ClassRef = (*) DotId ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
ClassRef = (*) DotId "<" Comma<RefType> ">" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
ClassRefOrId = (*) ClassRef ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
ClassRefOrId = (*) Id ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Comma1<Type> = (*) Comma<Type> "," Type ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Comma1<Type> = (*) Type ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Comma<Type> = (*) ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Comma<Type> = (*) Comma1<Type> ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Constructor = Flags DotId "(" (*) Comma<Type> ")" Throws ";" Descriptor ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
DotId = (*) DotId "." ID ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
DotId = (*) Id "." ID ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
ID = (*) r#"[a-zA-Z][a-zA-Z0-9]*"# ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Id = (*) ID ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
RefType = (*) ClassRefOrId ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
RefType = (*) RefType "[" "]" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
RefType = (*) "?" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
RefType = (*) "?" "extends" ClassRefOrId ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
RefType = (*) "?" "super" ClassRefOrId ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
ScalarType = (*) "boolean" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
ScalarType = (*) "byte" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
ScalarType = (*) "double" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
ScalarType = (*) "float" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
ScalarType = (*) "int" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
ScalarType = (*) "long" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
ScalarType = (*) "short" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Type = (*) RefType ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Type = (*) ScalarType ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
and looking at a token `"boolean"` we can reduce to a `Comma<Type>` but we can also shift
/home/nmatsakis/versioned/duchess/src/class_info/javap_parser.lalrpop:51:32: 51:42: Conflict detected
when in this state:
ClassRef = (*) DotId ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
ClassRef = (*) DotId "<" Comma<RefType> ">" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
ClassRefOrId = (*) ClassRef ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
ClassRefOrId = (*) Id ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Comma1<Type> = (*) Comma<Type> "," Type ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Comma1<Type> = (*) Type ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Comma<Type> = (*) ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Comma<Type> = (*) Comma1<Type> ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Constructor = Flags DotId "(" (*) Comma<Type> ")" Throws ";" Descriptor ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
DotId = (*) DotId "." ID ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
DotId = (*) Id "." ID ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
ID = (*) r#"[a-zA-Z][a-zA-Z0-9]*"# ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Id = (*) ID ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
RefType = (*) ClassRefOrId ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
RefType = (*) RefType "[" "]" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
RefType = (*) "?" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
RefType = (*) "?" "extends" ClassRefOrId ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
RefType = (*) "?" "super" ClassRefOrId ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
ScalarType = (*) "boolean" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
ScalarType = (*) "byte" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
ScalarType = (*) "double" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
ScalarType = (*) "float" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
ScalarType = (*) "int" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
ScalarType = (*) "long" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
ScalarType = (*) "short" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Type = (*) RefType ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Type = (*) ScalarType ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
and looking at a token `"byte"` we can reduce to a `Comma<Type>` but we can also shift
/home/nmatsakis/versioned/duchess/src/class_info/javap_parser.lalrpop:51:32: 51:42: Conflict detected
when in this state:
ClassRef = (*) DotId ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
ClassRef = (*) DotId "<" Comma<RefType> ">" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
ClassRefOrId = (*) ClassRef ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
ClassRefOrId = (*) Id ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Comma1<Type> = (*) Comma<Type> "," Type ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Comma1<Type> = (*) Type ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Comma<Type> = (*) ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Comma<Type> = (*) Comma1<Type> ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Constructor = Flags DotId "(" (*) Comma<Type> ")" Throws ";" Descriptor ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
DotId = (*) DotId "." ID ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
DotId = (*) Id "." ID ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
ID = (*) r#"[a-zA-Z][a-zA-Z0-9]*"# ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Id = (*) ID ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
RefType = (*) ClassRefOrId ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
RefType = (*) RefType "[" "]" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
RefType = (*) "?" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
RefType = (*) "?" "extends" ClassRefOrId ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
RefType = (*) "?" "super" ClassRefOrId ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
ScalarType = (*) "boolean" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
ScalarType = (*) "byte" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
ScalarType = (*) "double" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
ScalarType = (*) "float" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
ScalarType = (*) "int" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
ScalarType = (*) "long" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
ScalarType = (*) "short" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Type = (*) RefType ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Type = (*) ScalarType ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
and looking at a token `"double"` we can reduce to a `Comma<Type>` but we can also shift
/home/nmatsakis/versioned/duchess/src/class_info/javap_parser.lalrpop:51:32: 51:42: Conflict detected
when in this state:
ClassRef = (*) DotId ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
ClassRef = (*) DotId "<" Comma<RefType> ">" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
ClassRefOrId = (*) ClassRef ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
ClassRefOrId = (*) Id ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Comma1<Type> = (*) Comma<Type> "," Type ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Comma1<Type> = (*) Type ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Comma<Type> = (*) ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Comma<Type> = (*) Comma1<Type> ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Constructor = Flags DotId "(" (*) Comma<Type> ")" Throws ";" Descriptor ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
DotId = (*) DotId "." ID ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
DotId = (*) Id "." ID ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
ID = (*) r#"[a-zA-Z][a-zA-Z0-9]*"# ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Id = (*) ID ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
RefType = (*) ClassRefOrId ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
RefType = (*) RefType "[" "]" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
RefType = (*) "?" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
RefType = (*) "?" "extends" ClassRefOrId ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
RefType = (*) "?" "super" ClassRefOrId ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
ScalarType = (*) "boolean" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
ScalarType = (*) "byte" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
ScalarType = (*) "double" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
ScalarType = (*) "float" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
ScalarType = (*) "int" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
ScalarType = (*) "long" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
ScalarType = (*) "short" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Type = (*) RefType ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Type = (*) ScalarType ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
and looking at a token `"float"` we can reduce to a `Comma<Type>` but we can also shift
/home/nmatsakis/versioned/duchess/src/class_info/javap_parser.lalrpop:51:32: 51:42: Conflict detected
when in this state:
ClassRef = (*) DotId ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
ClassRef = (*) DotId "<" Comma<RefType> ">" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
ClassRefOrId = (*) ClassRef ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
ClassRefOrId = (*) Id ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Comma1<Type> = (*) Comma<Type> "," Type ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Comma1<Type> = (*) Type ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Comma<Type> = (*) ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Comma<Type> = (*) Comma1<Type> ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Constructor = Flags DotId "(" (*) Comma<Type> ")" Throws ";" Descriptor ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
DotId = (*) DotId "." ID ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
DotId = (*) Id "." ID ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
ID = (*) r#"[a-zA-Z][a-zA-Z0-9]*"# ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Id = (*) ID ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
RefType = (*) ClassRefOrId ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
RefType = (*) RefType "[" "]" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
RefType = (*) "?" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
RefType = (*) "?" "extends" ClassRefOrId ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
RefType = (*) "?" "super" ClassRefOrId ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
ScalarType = (*) "boolean" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
ScalarType = (*) "byte" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
ScalarType = (*) "double" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
ScalarType = (*) "float" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
ScalarType = (*) "int" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
ScalarType = (*) "long" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
ScalarType = (*) "short" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Type = (*) RefType ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Type = (*) ScalarType ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
and looking at a token `"int"` we can reduce to a `Comma<Type>` but we can also shift
/home/nmatsakis/versioned/duchess/src/class_info/javap_parser.lalrpop:51:32: 51:42: Conflict detected
when in this state:
ClassRef = (*) DotId ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
ClassRef = (*) DotId "<" Comma<RefType> ">" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
ClassRefOrId = (*) ClassRef ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
ClassRefOrId = (*) Id ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Comma1<Type> = (*) Comma<Type> "," Type ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Comma1<Type> = (*) Type ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Comma<Type> = (*) ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Comma<Type> = (*) Comma1<Type> ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Constructor = Flags DotId "(" (*) Comma<Type> ")" Throws ";" Descriptor ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
DotId = (*) DotId "." ID ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
DotId = (*) Id "." ID ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
ID = (*) r#"[a-zA-Z][a-zA-Z0-9]*"# ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Id = (*) ID ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
RefType = (*) ClassRefOrId ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
RefType = (*) RefType "[" "]" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
RefType = (*) "?" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
RefType = (*) "?" "extends" ClassRefOrId ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
RefType = (*) "?" "super" ClassRefOrId ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
ScalarType = (*) "boolean" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
ScalarType = (*) "byte" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
ScalarType = (*) "double" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
ScalarType = (*) "float" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
ScalarType = (*) "int" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
ScalarType = (*) "long" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
ScalarType = (*) "short" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Type = (*) RefType ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Type = (*) ScalarType ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
and looking at a token `"long"` we can reduce to a `Comma<Type>` but we can also shift
/home/nmatsakis/versioned/duchess/src/class_info/javap_parser.lalrpop:51:32: 51:42: Conflict detected
when in this state:
ClassRef = (*) DotId ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
ClassRef = (*) DotId "<" Comma<RefType> ">" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
ClassRefOrId = (*) ClassRef ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
ClassRefOrId = (*) Id ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Comma1<Type> = (*) Comma<Type> "," Type ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Comma1<Type> = (*) Type ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Comma<Type> = (*) ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Comma<Type> = (*) Comma1<Type> ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Constructor = Flags DotId "(" (*) Comma<Type> ")" Throws ";" Descriptor ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
DotId = (*) DotId "." ID ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
DotId = (*) Id "." ID ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
ID = (*) r#"[a-zA-Z][a-zA-Z0-9]*"# ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Id = (*) ID ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
RefType = (*) ClassRefOrId ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
RefType = (*) RefType "[" "]" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
RefType = (*) "?" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
RefType = (*) "?" "extends" ClassRefOrId ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
RefType = (*) "?" "super" ClassRefOrId ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
ScalarType = (*) "boolean" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
ScalarType = (*) "byte" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
ScalarType = (*) "double" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
ScalarType = (*) "float" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
ScalarType = (*) "int" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
ScalarType = (*) "long" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
ScalarType = (*) "short" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Type = (*) RefType ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Type = (*) ScalarType ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
and looking at a token `"short"` we can reduce to a `Comma<Type>` but we can also shift
/home/nmatsakis/versioned/duchess/src/class_info/javap_parser.lalrpop:51:32: 51:42: Conflict detected
when in this state:
ClassRef = (*) DotId ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
ClassRef = (*) DotId "<" Comma<RefType> ">" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
ClassRefOrId = (*) ClassRef ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
ClassRefOrId = (*) Id ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Comma1<Type> = (*) Comma<Type> "," Type ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Comma1<Type> = (*) Type ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Comma<Type> = (*) ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Comma<Type> = (*) Comma1<Type> ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Constructor = Flags DotId "(" (*) Comma<Type> ")" Throws ";" Descriptor ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
DotId = (*) DotId "." ID ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
DotId = (*) Id "." ID ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
ID = (*) r#"[a-zA-Z][a-zA-Z0-9]*"# ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Id = (*) ID ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
RefType = (*) ClassRefOrId ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
RefType = (*) RefType "[" "]" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
RefType = (*) "?" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
RefType = (*) "?" "extends" ClassRefOrId ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
RefType = (*) "?" "super" ClassRefOrId ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
ScalarType = (*) "boolean" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
ScalarType = (*) "byte" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
ScalarType = (*) "double" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
ScalarType = (*) "float" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
ScalarType = (*) "int" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
ScalarType = (*) "long" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
ScalarType = (*) "short" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Type = (*) RefType ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Type = (*) ScalarType ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
and looking at a token `r#"[a-zA-Z][a-zA-Z0-9]*"#` we can reduce to a `Comma<Type>` but we can also shift
/home/nmatsakis/versioned/duchess/src/class_info/javap_parser.lalrpop:10:27: 10:41: Conflict detected
when in this state:
ClassInfo = Header Flags "class" DotId Generics "extends" ClassRef "implements" (*) Comma<ClassRef> "{" Constructor+ Method+ "}" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
ClassInfo = Header Flags "class" DotId Generics "extends" ClassRef "implements" (*) Comma<ClassRef> "{" Constructor+ "}" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
ClassInfo = Header Flags "class" DotId Generics "extends" ClassRef "implements" (*) Comma<ClassRef> "{" Field+ Constructor+ Method+ "}" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
ClassInfo = Header Flags "class" DotId Generics "extends" ClassRef "implements" (*) Comma<ClassRef> "{" Field+ Constructor+ "}" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
ClassInfo = Header Flags "class" DotId Generics "extends" ClassRef "implements" (*) Comma<ClassRef> "{" Field+ Method+ "}" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
ClassInfo = Header Flags "class" DotId Generics "extends" ClassRef "implements" (*) Comma<ClassRef> "{" Field+ "}" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
ClassInfo = Header Flags "class" DotId Generics "extends" ClassRef "implements" (*) Comma<ClassRef> "{" Method+ "}" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
ClassInfo = Header Flags "class" DotId Generics "extends" ClassRef "implements" (*) Comma<ClassRef> "{" "}" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
ClassRef = (*) DotId ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
ClassRef = (*) DotId "<" Comma<RefType> ">" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Comma1<ClassRef> = (*) ClassRef ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Comma1<ClassRef> = (*) Comma<ClassRef> "," ClassRef ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Comma<ClassRef> = (*) ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Comma<ClassRef> = (*) Comma1<ClassRef> ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
DotId = (*) DotId "." ID ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
DotId = (*) Id "." ID ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
ID = (*) r#"[a-zA-Z][a-zA-Z0-9]*"# ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Id = (*) ID ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
and looking at a token `r#"[a-zA-Z][a-zA-Z0-9]*"#` we can reduce to a `Comma<ClassRef>` but we can also shift
/home/nmatsakis/versioned/duchess/src/class_info/javap_parser.lalrpop:78:5: 78:26: Conflict detected
when in this state:
ClassInfo = Header Flags "class" DotId Generics "extends" ClassRef "{" (*) Constructor+ Method+ "}" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
ClassInfo = Header Flags "class" DotId Generics "extends" ClassRef "{" (*) Constructor+ "}" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
ClassInfo = Header Flags "class" DotId Generics "extends" ClassRef "{" (*) Field+ Constructor+ Method+ "}" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
ClassInfo = Header Flags "class" DotId Generics "extends" ClassRef "{" (*) Field+ Constructor+ "}" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
ClassInfo = Header Flags "class" DotId Generics "extends" ClassRef "{" (*) Field+ Method+ "}" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
ClassInfo = Header Flags "class" DotId Generics "extends" ClassRef "{" (*) Field+ "}" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
ClassInfo = Header Flags "class" DotId Generics "extends" ClassRef "{" (*) Method+ "}" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
ClassInfo = Header Flags "class" DotId Generics "extends" ClassRef "{" (*) "}" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Constructor = (*) Flags DotId "(" Comma<Type> ")" Throws ";" Descriptor ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Constructor+ = (*) Constructor ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Constructor+ = (*) Constructor+ Constructor ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Field = (*) Flags Type Id ";" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Field+ = (*) Field ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Field+ = (*) Field+ Field ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Flags "final" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Flags "native" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Flags "synchronized" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Privacy ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Method = (*) Flags Generics Type Id "(" Comma<Type> ")" Throws ";" Descriptor ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Method+ = (*) Method ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Method+ = (*) Method+ Method ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Privacy = (*) ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Privacy = (*) "protected" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Privacy = (*) "public" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
and looking at a token `"protected"` we can reduce to a `Privacy` but we can also shift
/home/nmatsakis/versioned/duchess/src/class_info/javap_parser.lalrpop:78:5: 78:26: Conflict detected
when in this state:
ClassInfo = Header Flags "class" DotId Generics "extends" ClassRef "{" (*) Constructor+ Method+ "}" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
ClassInfo = Header Flags "class" DotId Generics "extends" ClassRef "{" (*) Constructor+ "}" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
ClassInfo = Header Flags "class" DotId Generics "extends" ClassRef "{" (*) Field+ Constructor+ Method+ "}" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
ClassInfo = Header Flags "class" DotId Generics "extends" ClassRef "{" (*) Field+ Constructor+ "}" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
ClassInfo = Header Flags "class" DotId Generics "extends" ClassRef "{" (*) Field+ Method+ "}" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
ClassInfo = Header Flags "class" DotId Generics "extends" ClassRef "{" (*) Field+ "}" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
ClassInfo = Header Flags "class" DotId Generics "extends" ClassRef "{" (*) Method+ "}" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
ClassInfo = Header Flags "class" DotId Generics "extends" ClassRef "{" (*) "}" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Constructor = (*) Flags DotId "(" Comma<Type> ")" Throws ";" Descriptor ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Constructor+ = (*) Constructor ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Constructor+ = (*) Constructor+ Constructor ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Field = (*) Flags Type Id ";" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Field+ = (*) Field ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Field+ = (*) Field+ Field ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Flags "final" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Flags "native" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Flags "synchronized" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Privacy ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Method = (*) Flags Generics Type Id "(" Comma<Type> ")" Throws ";" Descriptor ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Method+ = (*) Method ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Method+ = (*) Method+ Method ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Privacy = (*) ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Privacy = (*) "protected" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Privacy = (*) "public" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
and looking at a token `"public"` we can reduce to a `Privacy` but we can also shift
/home/nmatsakis/versioned/duchess/src/class_info/javap_parser.lalrpop:78:5: 78:26: Conflict detected
when in this state:
ClassInfo = Header Flags "class" DotId Generics "extends" ClassRef "{" (*) Constructor+ Method+ "}" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
ClassInfo = Header Flags "class" DotId Generics "extends" ClassRef "{" (*) Constructor+ "}" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
ClassInfo = Header Flags "class" DotId Generics "extends" ClassRef "{" (*) Field+ Constructor+ Method+ "}" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
ClassInfo = Header Flags "class" DotId Generics "extends" ClassRef "{" (*) Field+ Constructor+ "}" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
ClassInfo = Header Flags "class" DotId Generics "extends" ClassRef "{" (*) Field+ Method+ "}" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
ClassInfo = Header Flags "class" DotId Generics "extends" ClassRef "{" (*) Field+ "}" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
ClassInfo = Header Flags "class" DotId Generics "extends" ClassRef "{" (*) Method+ "}" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
ClassInfo = Header Flags "class" DotId Generics "extends" ClassRef "{" (*) "}" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Constructor = (*) Flags DotId "(" Comma<Type> ")" Throws ";" Descriptor ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Constructor+ = (*) Constructor ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Constructor+ = (*) Constructor+ Constructor ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Field = (*) Flags Type Id ";" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Field+ = (*) Field ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Field+ = (*) Field+ Field ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Flags "final" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Flags "native" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Flags "synchronized" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Privacy ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Method = (*) Flags Generics Type Id "(" Comma<Type> ")" Throws ";" Descriptor ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Method+ = (*) Method ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Method+ = (*) Method+ Method ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Privacy = (*) ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Privacy = (*) "protected" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Privacy = (*) "public" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
and looking at a token `"}"` we can reduce to a `Privacy` but we can also shift
/home/nmatsakis/versioned/duchess/src/class_info/javap_parser.lalrpop:78:5: 78:26: Conflict detected
when in this state:
ClassInfo = Header Flags "class" DotId Generics "implements" Comma<ClassRef> "{" (*) Constructor+ Method+ "}" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
ClassInfo = Header Flags "class" DotId Generics "implements" Comma<ClassRef> "{" (*) Constructor+ "}" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
ClassInfo = Header Flags "class" DotId Generics "implements" Comma<ClassRef> "{" (*) Field+ Constructor+ Method+ "}" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
ClassInfo = Header Flags "class" DotId Generics "implements" Comma<ClassRef> "{" (*) Field+ Constructor+ "}" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
ClassInfo = Header Flags "class" DotId Generics "implements" Comma<ClassRef> "{" (*) Field+ Method+ "}" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
ClassInfo = Header Flags "class" DotId Generics "implements" Comma<ClassRef> "{" (*) Field+ "}" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
ClassInfo = Header Flags "class" DotId Generics "implements" Comma<ClassRef> "{" (*) Method+ "}" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
ClassInfo = Header Flags "class" DotId Generics "implements" Comma<ClassRef> "{" (*) "}" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Constructor = (*) Flags DotId "(" Comma<Type> ")" Throws ";" Descriptor ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Constructor+ = (*) Constructor ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Constructor+ = (*) Constructor+ Constructor ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Field = (*) Flags Type Id ";" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Field+ = (*) Field ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Field+ = (*) Field+ Field ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Flags "final" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Flags "native" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Flags "synchronized" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Privacy ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Method = (*) Flags Generics Type Id "(" Comma<Type> ")" Throws ";" Descriptor ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Method+ = (*) Method ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Method+ = (*) Method+ Method ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Privacy = (*) ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Privacy = (*) "protected" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Privacy = (*) "public" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
and looking at a token `"protected"` we can reduce to a `Privacy` but we can also shift
/home/nmatsakis/versioned/duchess/src/class_info/javap_parser.lalrpop:78:5: 78:26: Conflict detected
when in this state:
ClassInfo = Header Flags "class" DotId Generics "implements" Comma<ClassRef> "{" (*) Constructor+ Method+ "}" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
ClassInfo = Header Flags "class" DotId Generics "implements" Comma<ClassRef> "{" (*) Constructor+ "}" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
ClassInfo = Header Flags "class" DotId Generics "implements" Comma<ClassRef> "{" (*) Field+ Constructor+ Method+ "}" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
ClassInfo = Header Flags "class" DotId Generics "implements" Comma<ClassRef> "{" (*) Field+ Constructor+ "}" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
ClassInfo = Header Flags "class" DotId Generics "implements" Comma<ClassRef> "{" (*) Field+ Method+ "}" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
ClassInfo = Header Flags "class" DotId Generics "implements" Comma<ClassRef> "{" (*) Field+ "}" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
ClassInfo = Header Flags "class" DotId Generics "implements" Comma<ClassRef> "{" (*) Method+ "}" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
ClassInfo = Header Flags "class" DotId Generics "implements" Comma<ClassRef> "{" (*) "}" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Constructor = (*) Flags DotId "(" Comma<Type> ")" Throws ";" Descriptor ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Constructor+ = (*) Constructor ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Constructor+ = (*) Constructor+ Constructor ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Field = (*) Flags Type Id ";" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Field+ = (*) Field ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Field+ = (*) Field+ Field ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Flags "final" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Flags "native" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Flags "synchronized" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Privacy ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Method = (*) Flags Generics Type Id "(" Comma<Type> ")" Throws ";" Descriptor ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Method+ = (*) Method ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Method+ = (*) Method+ Method ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Privacy = (*) ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Privacy = (*) "protected" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Privacy = (*) "public" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
and looking at a token `"public"` we can reduce to a `Privacy` but we can also shift
/home/nmatsakis/versioned/duchess/src/class_info/javap_parser.lalrpop:78:5: 78:26: Conflict detected
when in this state:
ClassInfo = Header Flags "class" DotId Generics "implements" Comma<ClassRef> "{" (*) Constructor+ Method+ "}" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
ClassInfo = Header Flags "class" DotId Generics "implements" Comma<ClassRef> "{" (*) Constructor+ "}" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
ClassInfo = Header Flags "class" DotId Generics "implements" Comma<ClassRef> "{" (*) Field+ Constructor+ Method+ "}" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
ClassInfo = Header Flags "class" DotId Generics "implements" Comma<ClassRef> "{" (*) Field+ Constructor+ "}" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
ClassInfo = Header Flags "class" DotId Generics "implements" Comma<ClassRef> "{" (*) Field+ Method+ "}" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
ClassInfo = Header Flags "class" DotId Generics "implements" Comma<ClassRef> "{" (*) Field+ "}" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
ClassInfo = Header Flags "class" DotId Generics "implements" Comma<ClassRef> "{" (*) Method+ "}" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
ClassInfo = Header Flags "class" DotId Generics "implements" Comma<ClassRef> "{" (*) "}" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Constructor = (*) Flags DotId "(" Comma<Type> ")" Throws ";" Descriptor ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Constructor+ = (*) Constructor ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Constructor+ = (*) Constructor+ Constructor ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Field = (*) Flags Type Id ";" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Field+ = (*) Field ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Field+ = (*) Field+ Field ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Flags "final" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Flags "native" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Flags "synchronized" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Privacy ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Method = (*) Flags Generics Type Id "(" Comma<Type> ")" Throws ";" Descriptor ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Method+ = (*) Method ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Method+ = (*) Method+ Method ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Privacy = (*) ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Privacy = (*) "protected" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Privacy = (*) "public" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
and looking at a token `"}"` we can reduce to a `Privacy` but we can also shift
/home/nmatsakis/versioned/duchess/src/class_info/javap_parser.lalrpop:78:5: 78:26: Conflict detected
when in this state:
ClassInfo = Header Flags "class" DotId Generics "{" Constructor+ Method+ (*) "}" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Flags "final" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Flags "native" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Flags "synchronized" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Privacy ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Method = (*) Flags Generics Type Id "(" Comma<Type> ")" Throws ";" Descriptor ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Method+ = Method+ (*) Method ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Privacy = (*) ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Privacy = (*) "protected" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Privacy = (*) "public" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
and looking at a token `"protected"` we can reduce to a `Privacy` but we can also shift
/home/nmatsakis/versioned/duchess/src/class_info/javap_parser.lalrpop:78:5: 78:26: Conflict detected
when in this state:
ClassInfo = Header Flags "class" DotId Generics "{" Constructor+ Method+ (*) "}" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Flags "final" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Flags "native" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Flags "synchronized" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Privacy ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Method = (*) Flags Generics Type Id "(" Comma<Type> ")" Throws ";" Descriptor ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Method+ = Method+ (*) Method ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Privacy = (*) ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Privacy = (*) "protected" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Privacy = (*) "public" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
and looking at a token `"public"` we can reduce to a `Privacy` but we can also shift
/home/nmatsakis/versioned/duchess/src/class_info/javap_parser.lalrpop:78:5: 78:26: Conflict detected
when in this state:
ClassInfo = Header Flags "class" DotId Generics "{" Constructor+ Method+ (*) "}" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Flags "final" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Flags "native" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Flags "synchronized" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Privacy ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Method = (*) Flags Generics Type Id "(" Comma<Type> ")" Throws ";" Descriptor ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Method+ = Method+ (*) Method ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Privacy = (*) ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Privacy = (*) "protected" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Privacy = (*) "public" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
and looking at a token `"}"` we can reduce to a `Privacy` but we can also shift
/home/nmatsakis/versioned/duchess/src/class_info/javap_parser.lalrpop:78:5: 78:26: Conflict detected
when in this state:
ClassInfo = Header Flags "class" DotId Generics "{" Field+ Constructor+ (*) Method+ "}" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
ClassInfo = Header Flags "class" DotId Generics "{" Field+ Constructor+ (*) "}" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Constructor = (*) Flags DotId "(" Comma<Type> ")" Throws ";" Descriptor ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Constructor+ = Constructor+ (*) Constructor ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Flags "final" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Flags "native" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Flags "synchronized" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Privacy ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Method = (*) Flags Generics Type Id "(" Comma<Type> ")" Throws ";" Descriptor ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Method+ = (*) Method ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Method+ = (*) Method+ Method ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Privacy = (*) ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Privacy = (*) "protected" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Privacy = (*) "public" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
and looking at a token `"protected"` we can reduce to a `Privacy` but we can also shift
/home/nmatsakis/versioned/duchess/src/class_info/javap_parser.lalrpop:78:5: 78:26: Conflict detected
when in this state:
ClassInfo = Header Flags "class" DotId Generics "{" Field+ Constructor+ (*) Method+ "}" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
ClassInfo = Header Flags "class" DotId Generics "{" Field+ Constructor+ (*) "}" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Constructor = (*) Flags DotId "(" Comma<Type> ")" Throws ";" Descriptor ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Constructor+ = Constructor+ (*) Constructor ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Flags "final" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Flags "native" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Flags "synchronized" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Privacy ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Method = (*) Flags Generics Type Id "(" Comma<Type> ")" Throws ";" Descriptor ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Method+ = (*) Method ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Method+ = (*) Method+ Method ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Privacy = (*) ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Privacy = (*) "protected" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Privacy = (*) "public" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
and looking at a token `"public"` we can reduce to a `Privacy` but we can also shift
/home/nmatsakis/versioned/duchess/src/class_info/javap_parser.lalrpop:78:5: 78:26: Conflict detected
when in this state:
ClassInfo = Header Flags "class" DotId Generics "{" Field+ Constructor+ (*) Method+ "}" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
ClassInfo = Header Flags "class" DotId Generics "{" Field+ Constructor+ (*) "}" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Constructor = (*) Flags DotId "(" Comma<Type> ")" Throws ";" Descriptor ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Constructor+ = Constructor+ (*) Constructor ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Flags "final" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Flags "native" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Flags "synchronized" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Privacy ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Method = (*) Flags Generics Type Id "(" Comma<Type> ")" Throws ";" Descriptor ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Method+ = (*) Method ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Method+ = (*) Method+ Method ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Privacy = (*) ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Privacy = (*) "protected" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Privacy = (*) "public" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
and looking at a token `"}"` we can reduce to a `Privacy` but we can also shift
/home/nmatsakis/versioned/duchess/src/class_info/javap_parser.lalrpop:78:5: 78:26: Conflict detected
when in this state:
ClassInfo = Header Flags "class" DotId Generics "{" Field+ Method+ (*) "}" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Flags "final" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Flags "native" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Flags "synchronized" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Privacy ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Method = (*) Flags Generics Type Id "(" Comma<Type> ")" Throws ";" Descriptor ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Method+ = Method+ (*) Method ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Privacy = (*) ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Privacy = (*) "protected" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Privacy = (*) "public" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
and looking at a token `"protected"` we can reduce to a `Privacy` but we can also shift
/home/nmatsakis/versioned/duchess/src/class_info/javap_parser.lalrpop:78:5: 78:26: Conflict detected
when in this state:
ClassInfo = Header Flags "class" DotId Generics "{" Field+ Method+ (*) "}" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Flags "final" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Flags "native" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Flags "synchronized" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Privacy ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Method = (*) Flags Generics Type Id "(" Comma<Type> ")" Throws ";" Descriptor ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Method+ = Method+ (*) Method ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Privacy = (*) ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Privacy = (*) "protected" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Privacy = (*) "public" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
and looking at a token `"public"` we can reduce to a `Privacy` but we can also shift
/home/nmatsakis/versioned/duchess/src/class_info/javap_parser.lalrpop:78:5: 78:26: Conflict detected
when in this state:
ClassInfo = Header Flags "class" DotId Generics "{" Field+ Method+ (*) "}" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Flags "final" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Flags "native" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Flags "synchronized" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Privacy ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Method = (*) Flags Generics Type Id "(" Comma<Type> ")" Throws ";" Descriptor ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Method+ = Method+ (*) Method ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Privacy = (*) ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Privacy = (*) "protected" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Privacy = (*) "public" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
and looking at a token `"}"` we can reduce to a `Privacy` but we can also shift
/home/nmatsakis/versioned/duchess/src/class_info/javap_parser.lalrpop:78:5: 78:26: Conflict detected
when in this state:
ClassInfo = Flags "class" DotId Generics "extends" ClassRef "implements" Comma<ClassRef> "{" (*) Constructor+ Method+ "}" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
ClassInfo = Flags "class" DotId Generics "extends" ClassRef "implements" Comma<ClassRef> "{" (*) Constructor+ "}" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
ClassInfo = Flags "class" DotId Generics "extends" ClassRef "implements" Comma<ClassRef> "{" (*) Field+ Constructor+ Method+ "}" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
ClassInfo = Flags "class" DotId Generics "extends" ClassRef "implements" Comma<ClassRef> "{" (*) Field+ Constructor+ "}" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
ClassInfo = Flags "class" DotId Generics "extends" ClassRef "implements" Comma<ClassRef> "{" (*) Field+ Method+ "}" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
ClassInfo = Flags "class" DotId Generics "extends" ClassRef "implements" Comma<ClassRef> "{" (*) Field+ "}" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
ClassInfo = Flags "class" DotId Generics "extends" ClassRef "implements" Comma<ClassRef> "{" (*) Method+ "}" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
ClassInfo = Flags "class" DotId Generics "extends" ClassRef "implements" Comma<ClassRef> "{" (*) "}" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Constructor = (*) Flags DotId "(" Comma<Type> ")" Throws ";" Descriptor ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Constructor+ = (*) Constructor ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Constructor+ = (*) Constructor+ Constructor ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Field = (*) Flags Type Id ";" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Field+ = (*) Field ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Field+ = (*) Field+ Field ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Flags "final" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Flags "native" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Flags "synchronized" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Privacy ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Method = (*) Flags Generics Type Id "(" Comma<Type> ")" Throws ";" Descriptor ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Method+ = (*) Method ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Method+ = (*) Method+ Method ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Privacy = (*) ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Privacy = (*) "protected" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Privacy = (*) "public" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
and looking at a token `"protected"` we can reduce to a `Privacy` but we can also shift
/home/nmatsakis/versioned/duchess/src/class_info/javap_parser.lalrpop:78:5: 78:26: Conflict detected
when in this state:
ClassInfo = Flags "class" DotId Generics "extends" ClassRef "implements" Comma<ClassRef> "{" (*) Constructor+ Method+ "}" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
ClassInfo = Flags "class" DotId Generics "extends" ClassRef "implements" Comma<ClassRef> "{" (*) Constructor+ "}" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
ClassInfo = Flags "class" DotId Generics "extends" ClassRef "implements" Comma<ClassRef> "{" (*) Field+ Constructor+ Method+ "}" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
ClassInfo = Flags "class" DotId Generics "extends" ClassRef "implements" Comma<ClassRef> "{" (*) Field+ Constructor+ "}" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
ClassInfo = Flags "class" DotId Generics "extends" ClassRef "implements" Comma<ClassRef> "{" (*) Field+ Method+ "}" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
ClassInfo = Flags "class" DotId Generics "extends" ClassRef "implements" Comma<ClassRef> "{" (*) Field+ "}" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
ClassInfo = Flags "class" DotId Generics "extends" ClassRef "implements" Comma<ClassRef> "{" (*) Method+ "}" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
ClassInfo = Flags "class" DotId Generics "extends" ClassRef "implements" Comma<ClassRef> "{" (*) "}" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Constructor = (*) Flags DotId "(" Comma<Type> ")" Throws ";" Descriptor ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Constructor+ = (*) Constructor ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Constructor+ = (*) Constructor+ Constructor ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Field = (*) Flags Type Id ";" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Field+ = (*) Field ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Field+ = (*) Field+ Field ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Flags "final" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Flags "native" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Flags "synchronized" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Privacy ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Method = (*) Flags Generics Type Id "(" Comma<Type> ")" Throws ";" Descriptor ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Method+ = (*) Method ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Method+ = (*) Method+ Method ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Privacy = (*) ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Privacy = (*) "protected" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Privacy = (*) "public" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
and looking at a token `"public"` we can reduce to a `Privacy` but we can also shift
/home/nmatsakis/versioned/duchess/src/class_info/javap_parser.lalrpop:78:5: 78:26: Conflict detected
when in this state:
ClassInfo = Flags "class" DotId Generics "extends" ClassRef "implements" Comma<ClassRef> "{" (*) Constructor+ Method+ "}" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
ClassInfo = Flags "class" DotId Generics "extends" ClassRef "implements" Comma<ClassRef> "{" (*) Constructor+ "}" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
ClassInfo = Flags "class" DotId Generics "extends" ClassRef "implements" Comma<ClassRef> "{" (*) Field+ Constructor+ Method+ "}" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
ClassInfo = Flags "class" DotId Generics "extends" ClassRef "implements" Comma<ClassRef> "{" (*) Field+ Constructor+ "}" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
ClassInfo = Flags "class" DotId Generics "extends" ClassRef "implements" Comma<ClassRef> "{" (*) Field+ Method+ "}" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
ClassInfo = Flags "class" DotId Generics "extends" ClassRef "implements" Comma<ClassRef> "{" (*) Field+ "}" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
ClassInfo = Flags "class" DotId Generics "extends" ClassRef "implements" Comma<ClassRef> "{" (*) Method+ "}" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
ClassInfo = Flags "class" DotId Generics "extends" ClassRef "implements" Comma<ClassRef> "{" (*) "}" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Constructor = (*) Flags DotId "(" Comma<Type> ")" Throws ";" Descriptor ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Constructor+ = (*) Constructor ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Constructor+ = (*) Constructor+ Constructor ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Field = (*) Flags Type Id ";" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Field+ = (*) Field ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Field+ = (*) Field+ Field ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Flags "final" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Flags "native" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Flags "synchronized" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Privacy ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Method = (*) Flags Generics Type Id "(" Comma<Type> ")" Throws ";" Descriptor ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Method+ = (*) Method ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Method+ = (*) Method+ Method ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Privacy = (*) ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Privacy = (*) "protected" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Privacy = (*) "public" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
and looking at a token `"}"` we can reduce to a `Privacy` but we can also shift
/home/nmatsakis/versioned/duchess/src/class_info/javap_parser.lalrpop:78:5: 78:26: Conflict detected
when in this state:
ClassInfo = Flags "class" DotId Generics "extends" ClassRef "{" Constructor+ Method+ (*) "}" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Flags "final" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Flags "native" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Flags "synchronized" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Privacy ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Method = (*) Flags Generics Type Id "(" Comma<Type> ")" Throws ";" Descriptor ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Method+ = Method+ (*) Method ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Privacy = (*) ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Privacy = (*) "protected" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Privacy = (*) "public" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
and looking at a token `"protected"` we can reduce to a `Privacy` but we can also shift
/home/nmatsakis/versioned/duchess/src/class_info/javap_parser.lalrpop:78:5: 78:26: Conflict detected
when in this state:
ClassInfo = Flags "class" DotId Generics "extends" ClassRef "{" Constructor+ Method+ (*) "}" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Flags "final" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Flags "native" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Flags "synchronized" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Privacy ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Method = (*) Flags Generics Type Id "(" Comma<Type> ")" Throws ";" Descriptor ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Method+ = Method+ (*) Method ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Privacy = (*) ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Privacy = (*) "protected" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Privacy = (*) "public" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
and looking at a token `"public"` we can reduce to a `Privacy` but we can also shift
/home/nmatsakis/versioned/duchess/src/class_info/javap_parser.lalrpop:78:5: 78:26: Conflict detected
when in this state:
ClassInfo = Flags "class" DotId Generics "extends" ClassRef "{" Constructor+ Method+ (*) "}" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Flags "final" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Flags "native" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Flags "synchronized" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Privacy ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Method = (*) Flags Generics Type Id "(" Comma<Type> ")" Throws ";" Descriptor ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Method+ = Method+ (*) Method ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Privacy = (*) ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Privacy = (*) "protected" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Privacy = (*) "public" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
and looking at a token `"}"` we can reduce to a `Privacy` but we can also shift
/home/nmatsakis/versioned/duchess/src/class_info/javap_parser.lalrpop:78:5: 78:26: Conflict detected
when in this state:
ClassInfo = Flags "class" DotId Generics "extends" ClassRef "{" Field+ Constructor+ (*) Method+ "}" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
ClassInfo = Flags "class" DotId Generics "extends" ClassRef "{" Field+ Constructor+ (*) "}" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Constructor = (*) Flags DotId "(" Comma<Type> ")" Throws ";" Descriptor ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Constructor+ = Constructor+ (*) Constructor ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Flags "final" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Flags "native" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Flags "synchronized" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Privacy ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Method = (*) Flags Generics Type Id "(" Comma<Type> ")" Throws ";" Descriptor ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Method+ = (*) Method ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Method+ = (*) Method+ Method ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Privacy = (*) ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Privacy = (*) "protected" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Privacy = (*) "public" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
and looking at a token `"protected"` we can reduce to a `Privacy` but we can also shift
/home/nmatsakis/versioned/duchess/src/class_info/javap_parser.lalrpop:78:5: 78:26: Conflict detected
when in this state:
ClassInfo = Flags "class" DotId Generics "extends" ClassRef "{" Field+ Constructor+ (*) Method+ "}" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
ClassInfo = Flags "class" DotId Generics "extends" ClassRef "{" Field+ Constructor+ (*) "}" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Constructor = (*) Flags DotId "(" Comma<Type> ")" Throws ";" Descriptor ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Constructor+ = Constructor+ (*) Constructor ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Flags "final" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Flags "native" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Flags "synchronized" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Privacy ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Method = (*) Flags Generics Type Id "(" Comma<Type> ")" Throws ";" Descriptor ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Method+ = (*) Method ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Method+ = (*) Method+ Method ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Privacy = (*) ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Privacy = (*) "protected" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Privacy = (*) "public" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
and looking at a token `"public"` we can reduce to a `Privacy` but we can also shift
/home/nmatsakis/versioned/duchess/src/class_info/javap_parser.lalrpop:78:5: 78:26: Conflict detected
when in this state:
ClassInfo = Flags "class" DotId Generics "extends" ClassRef "{" Field+ Constructor+ (*) Method+ "}" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
ClassInfo = Flags "class" DotId Generics "extends" ClassRef "{" Field+ Constructor+ (*) "}" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Constructor = (*) Flags DotId "(" Comma<Type> ")" Throws ";" Descriptor ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Constructor+ = Constructor+ (*) Constructor ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Flags "final" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Flags "native" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Flags "synchronized" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Privacy ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Method = (*) Flags Generics Type Id "(" Comma<Type> ")" Throws ";" Descriptor ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Method+ = (*) Method ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Method+ = (*) Method+ Method ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Privacy = (*) ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Privacy = (*) "protected" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Privacy = (*) "public" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
and looking at a token `"}"` we can reduce to a `Privacy` but we can also shift
/home/nmatsakis/versioned/duchess/src/class_info/javap_parser.lalrpop:78:5: 78:26: Conflict detected
when in this state:
ClassInfo = Flags "class" DotId Generics "extends" ClassRef "{" Field+ Method+ (*) "}" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Flags "final" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Flags "native" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Flags "synchronized" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Privacy ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Method = (*) Flags Generics Type Id "(" Comma<Type> ")" Throws ";" Descriptor ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Method+ = Method+ (*) Method ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Privacy = (*) ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Privacy = (*) "protected" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Privacy = (*) "public" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
and looking at a token `"protected"` we can reduce to a `Privacy` but we can also shift
/home/nmatsakis/versioned/duchess/src/class_info/javap_parser.lalrpop:78:5: 78:26: Conflict detected
when in this state:
ClassInfo = Flags "class" DotId Generics "extends" ClassRef "{" Field+ Method+ (*) "}" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Flags "final" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Flags "native" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Flags "synchronized" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Privacy ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Method = (*) Flags Generics Type Id "(" Comma<Type> ")" Throws ";" Descriptor ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Method+ = Method+ (*) Method ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Privacy = (*) ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Privacy = (*) "protected" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Privacy = (*) "public" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
and looking at a token `"public"` we can reduce to a `Privacy` but we can also shift
/home/nmatsakis/versioned/duchess/src/class_info/javap_parser.lalrpop:78:5: 78:26: Conflict detected
when in this state:
ClassInfo = Flags "class" DotId Generics "extends" ClassRef "{" Field+ Method+ (*) "}" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Flags "final" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Flags "native" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Flags "synchronized" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Privacy ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Method = (*) Flags Generics Type Id "(" Comma<Type> ")" Throws ";" Descriptor ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Method+ = Method+ (*) Method ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Privacy = (*) ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Privacy = (*) "protected" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Privacy = (*) "public" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
and looking at a token `"}"` we can reduce to a `Privacy` but we can also shift
/home/nmatsakis/versioned/duchess/src/class_info/javap_parser.lalrpop:78:5: 78:26: Conflict detected
when in this state:
ClassInfo = Flags "class" DotId Generics "implements" Comma<ClassRef> "{" Constructor+ Method+ (*) "}" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Flags "final" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Flags "native" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Flags "synchronized" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Privacy ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Method = (*) Flags Generics Type Id "(" Comma<Type> ")" Throws ";" Descriptor ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Method+ = Method+ (*) Method ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Privacy = (*) ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Privacy = (*) "protected" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Privacy = (*) "public" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
and looking at a token `"protected"` we can reduce to a `Privacy` but we can also shift
/home/nmatsakis/versioned/duchess/src/class_info/javap_parser.lalrpop:78:5: 78:26: Conflict detected
when in this state:
ClassInfo = Flags "class" DotId Generics "implements" Comma<ClassRef> "{" Constructor+ Method+ (*) "}" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Flags "final" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Flags "native" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Flags "synchronized" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Privacy ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Method = (*) Flags Generics Type Id "(" Comma<Type> ")" Throws ";" Descriptor ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Method+ = Method+ (*) Method ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Privacy = (*) ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Privacy = (*) "protected" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Privacy = (*) "public" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
and looking at a token `"public"` we can reduce to a `Privacy` but we can also shift
/home/nmatsakis/versioned/duchess/src/class_info/javap_parser.lalrpop:78:5: 78:26: Conflict detected
when in this state:
ClassInfo = Flags "class" DotId Generics "implements" Comma<ClassRef> "{" Constructor+ Method+ (*) "}" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Flags "final" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Flags "native" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Flags "synchronized" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Privacy ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Method = (*) Flags Generics Type Id "(" Comma<Type> ")" Throws ";" Descriptor ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Method+ = Method+ (*) Method ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Privacy = (*) ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Privacy = (*) "protected" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Privacy = (*) "public" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
and looking at a token `"}"` we can reduce to a `Privacy` but we can also shift
/home/nmatsakis/versioned/duchess/src/class_info/javap_parser.lalrpop:78:5: 78:26: Conflict detected
when in this state:
ClassInfo = Flags "class" DotId Generics "implements" Comma<ClassRef> "{" Field+ Constructor+ (*) Method+ "}" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
ClassInfo = Flags "class" DotId Generics "implements" Comma<ClassRef> "{" Field+ Constructor+ (*) "}" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Constructor = (*) Flags DotId "(" Comma<Type> ")" Throws ";" Descriptor ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Constructor+ = Constructor+ (*) Constructor ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Flags "final" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Flags "native" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Flags "synchronized" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Privacy ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Method = (*) Flags Generics Type Id "(" Comma<Type> ")" Throws ";" Descriptor ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Method+ = (*) Method ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Method+ = (*) Method+ Method ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Privacy = (*) ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Privacy = (*) "protected" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Privacy = (*) "public" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
and looking at a token `"protected"` we can reduce to a `Privacy` but we can also shift
/home/nmatsakis/versioned/duchess/src/class_info/javap_parser.lalrpop:78:5: 78:26: Conflict detected
when in this state:
ClassInfo = Flags "class" DotId Generics "implements" Comma<ClassRef> "{" Field+ Constructor+ (*) Method+ "}" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
ClassInfo = Flags "class" DotId Generics "implements" Comma<ClassRef> "{" Field+ Constructor+ (*) "}" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Constructor = (*) Flags DotId "(" Comma<Type> ")" Throws ";" Descriptor ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Constructor+ = Constructor+ (*) Constructor ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Flags "final" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Flags "native" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Flags "synchronized" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Privacy ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Method = (*) Flags Generics Type Id "(" Comma<Type> ")" Throws ";" Descriptor ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Method+ = (*) Method ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Method+ = (*) Method+ Method ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Privacy = (*) ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Privacy = (*) "protected" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Privacy = (*) "public" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
and looking at a token `"public"` we can reduce to a `Privacy` but we can also shift
/home/nmatsakis/versioned/duchess/src/class_info/javap_parser.lalrpop:78:5: 78:26: Conflict detected
when in this state:
ClassInfo = Flags "class" DotId Generics "implements" Comma<ClassRef> "{" Field+ Constructor+ (*) Method+ "}" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
ClassInfo = Flags "class" DotId Generics "implements" Comma<ClassRef> "{" Field+ Constructor+ (*) "}" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Constructor = (*) Flags DotId "(" Comma<Type> ")" Throws ";" Descriptor ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Constructor+ = Constructor+ (*) Constructor ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Flags "final" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Flags "native" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Flags "synchronized" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Privacy ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Method = (*) Flags Generics Type Id "(" Comma<Type> ")" Throws ";" Descriptor ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Method+ = (*) Method ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Method+ = (*) Method+ Method ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Privacy = (*) ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Privacy = (*) "protected" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Privacy = (*) "public" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
and looking at a token `"}"` we can reduce to a `Privacy` but we can also shift
/home/nmatsakis/versioned/duchess/src/class_info/javap_parser.lalrpop:78:5: 78:26: Conflict detected
when in this state:
ClassInfo = Flags "class" DotId Generics "implements" Comma<ClassRef> "{" Field+ Method+ (*) "}" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Flags "final" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Flags "native" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Flags "synchronized" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Privacy ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Method = (*) Flags Generics Type Id "(" Comma<Type> ")" Throws ";" Descriptor ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Method+ = Method+ (*) Method ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Privacy = (*) ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Privacy = (*) "protected" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Privacy = (*) "public" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
and looking at a token `"protected"` we can reduce to a `Privacy` but we can also shift
/home/nmatsakis/versioned/duchess/src/class_info/javap_parser.lalrpop:78:5: 78:26: Conflict detected
when in this state:
ClassInfo = Flags "class" DotId Generics "implements" Comma<ClassRef> "{" Field+ Method+ (*) "}" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Flags "final" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Flags "native" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Flags "synchronized" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Privacy ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Method = (*) Flags Generics Type Id "(" Comma<Type> ")" Throws ";" Descriptor ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Method+ = Method+ (*) Method ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Privacy = (*) ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Privacy = (*) "protected" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Privacy = (*) "public" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
and looking at a token `"public"` we can reduce to a `Privacy` but we can also shift
/home/nmatsakis/versioned/duchess/src/class_info/javap_parser.lalrpop:78:5: 78:26: Conflict detected
when in this state:
ClassInfo = Flags "class" DotId Generics "implements" Comma<ClassRef> "{" Field+ Method+ (*) "}" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Flags "final" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Flags "native" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Flags "synchronized" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Privacy ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Method = (*) Flags Generics Type Id "(" Comma<Type> ")" Throws ";" Descriptor ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Method+ = Method+ (*) Method ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Privacy = (*) ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Privacy = (*) "protected" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Privacy = (*) "public" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
and looking at a token `"}"` we can reduce to a `Privacy` but we can also shift
/home/nmatsakis/versioned/duchess/src/class_info/javap_parser.lalrpop:78:5: 78:26: Conflict detected
when in this state:
ClassInfo = Header Flags "class" DotId Generics "extends" ClassRef "{" Constructor+ (*) Method+ "}" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
ClassInfo = Header Flags "class" DotId Generics "extends" ClassRef "{" Constructor+ (*) "}" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Constructor = (*) Flags DotId "(" Comma<Type> ")" Throws ";" Descriptor ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Constructor+ = Constructor+ (*) Constructor ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Flags "final" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Flags "native" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Flags "synchronized" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Privacy ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Method = (*) Flags Generics Type Id "(" Comma<Type> ")" Throws ";" Descriptor ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Method+ = (*) Method ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Method+ = (*) Method+ Method ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Privacy = (*) ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Privacy = (*) "protected" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Privacy = (*) "public" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
and looking at a token `"protected"` we can reduce to a `Privacy` but we can also shift
/home/nmatsakis/versioned/duchess/src/class_info/javap_parser.lalrpop:78:5: 78:26: Conflict detected
when in this state:
ClassInfo = Header Flags "class" DotId Generics "extends" ClassRef "{" Constructor+ (*) Method+ "}" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
ClassInfo = Header Flags "class" DotId Generics "extends" ClassRef "{" Constructor+ (*) "}" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Constructor = (*) Flags DotId "(" Comma<Type> ")" Throws ";" Descriptor ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Constructor+ = Constructor+ (*) Constructor ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Flags "final" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Flags "native" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Flags "synchronized" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Privacy ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Method = (*) Flags Generics Type Id "(" Comma<Type> ")" Throws ";" Descriptor ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Method+ = (*) Method ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Method+ = (*) Method+ Method ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Privacy = (*) ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Privacy = (*) "protected" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Privacy = (*) "public" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
and looking at a token `"public"` we can reduce to a `Privacy` but we can also shift
/home/nmatsakis/versioned/duchess/src/class_info/javap_parser.lalrpop:78:5: 78:26: Conflict detected
when in this state:
ClassInfo = Header Flags "class" DotId Generics "extends" ClassRef "{" Constructor+ (*) Method+ "}" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
ClassInfo = Header Flags "class" DotId Generics "extends" ClassRef "{" Constructor+ (*) "}" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Constructor = (*) Flags DotId "(" Comma<Type> ")" Throws ";" Descriptor ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Constructor+ = Constructor+ (*) Constructor ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Flags "final" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Flags "native" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Flags "synchronized" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Privacy ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Method = (*) Flags Generics Type Id "(" Comma<Type> ")" Throws ";" Descriptor ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Method+ = (*) Method ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Method+ = (*) Method+ Method ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Privacy = (*) ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Privacy = (*) "protected" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Privacy = (*) "public" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
and looking at a token `"}"` we can reduce to a `Privacy` but we can also shift
/home/nmatsakis/versioned/duchess/src/class_info/javap_parser.lalrpop:78:5: 78:26: Conflict detected
when in this state:
ClassInfo = Header Flags "class" DotId Generics "extends" ClassRef "{" Field+ (*) Constructor+ Method+ "}" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
ClassInfo = Header Flags "class" DotId Generics "extends" ClassRef "{" Field+ (*) Constructor+ "}" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
ClassInfo = Header Flags "class" DotId Generics "extends" ClassRef "{" Field+ (*) Method+ "}" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
ClassInfo = Header Flags "class" DotId Generics "extends" ClassRef "{" Field+ (*) "}" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Constructor = (*) Flags DotId "(" Comma<Type> ")" Throws ";" Descriptor ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Constructor+ = (*) Constructor ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Constructor+ = (*) Constructor+ Constructor ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Field = (*) Flags Type Id ";" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Field+ = Field+ (*) Field ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Flags "final" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Flags "native" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Flags "synchronized" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Privacy ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Method = (*) Flags Generics Type Id "(" Comma<Type> ")" Throws ";" Descriptor ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Method+ = (*) Method ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Method+ = (*) Method+ Method ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Privacy = (*) ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Privacy = (*) "protected" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Privacy = (*) "public" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
and looking at a token `"protected"` we can reduce to a `Privacy` but we can also shift
/home/nmatsakis/versioned/duchess/src/class_info/javap_parser.lalrpop:78:5: 78:26: Conflict detected
when in this state:
ClassInfo = Header Flags "class" DotId Generics "extends" ClassRef "{" Field+ (*) Constructor+ Method+ "}" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
ClassInfo = Header Flags "class" DotId Generics "extends" ClassRef "{" Field+ (*) Constructor+ "}" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
ClassInfo = Header Flags "class" DotId Generics "extends" ClassRef "{" Field+ (*) Method+ "}" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
ClassInfo = Header Flags "class" DotId Generics "extends" ClassRef "{" Field+ (*) "}" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Constructor = (*) Flags DotId "(" Comma<Type> ")" Throws ";" Descriptor ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Constructor+ = (*) Constructor ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Constructor+ = (*) Constructor+ Constructor ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Field = (*) Flags Type Id ";" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Field+ = Field+ (*) Field ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Flags "final" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Flags "native" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Flags "synchronized" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Privacy ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Method = (*) Flags Generics Type Id "(" Comma<Type> ")" Throws ";" Descriptor ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Method+ = (*) Method ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Method+ = (*) Method+ Method ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Privacy = (*) ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Privacy = (*) "protected" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Privacy = (*) "public" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
and looking at a token `"public"` we can reduce to a `Privacy` but we can also shift
/home/nmatsakis/versioned/duchess/src/class_info/javap_parser.lalrpop:78:5: 78:26: Conflict detected
when in this state:
ClassInfo = Header Flags "class" DotId Generics "extends" ClassRef "{" Field+ (*) Constructor+ Method+ "}" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
ClassInfo = Header Flags "class" DotId Generics "extends" ClassRef "{" Field+ (*) Constructor+ "}" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
ClassInfo = Header Flags "class" DotId Generics "extends" ClassRef "{" Field+ (*) Method+ "}" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
ClassInfo = Header Flags "class" DotId Generics "extends" ClassRef "{" Field+ (*) "}" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Constructor = (*) Flags DotId "(" Comma<Type> ")" Throws ";" Descriptor ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Constructor+ = (*) Constructor ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Constructor+ = (*) Constructor+ Constructor ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Field = (*) Flags Type Id ";" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Field+ = Field+ (*) Field ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Flags "final" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Flags "native" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Flags "synchronized" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Privacy ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Method = (*) Flags Generics Type Id "(" Comma<Type> ")" Throws ";" Descriptor ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Method+ = (*) Method ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Method+ = (*) Method+ Method ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Privacy = (*) ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Privacy = (*) "protected" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Privacy = (*) "public" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
and looking at a token `"}"` we can reduce to a `Privacy` but we can also shift
/home/nmatsakis/versioned/duchess/src/class_info/javap_parser.lalrpop:78:5: 78:26: Conflict detected
when in this state:
ClassInfo = Header Flags "class" DotId Generics "extends" ClassRef "{" Method+ (*) "}" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Flags "final" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Flags "native" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Flags "synchronized" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Privacy ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Method = (*) Flags Generics Type Id "(" Comma<Type> ")" Throws ";" Descriptor ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Method+ = Method+ (*) Method ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Privacy = (*) ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Privacy = (*) "protected" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Privacy = (*) "public" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
and looking at a token `"protected"` we can reduce to a `Privacy` but we can also shift
/home/nmatsakis/versioned/duchess/src/class_info/javap_parser.lalrpop:78:5: 78:26: Conflict detected
when in this state:
ClassInfo = Header Flags "class" DotId Generics "extends" ClassRef "{" Method+ (*) "}" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Flags "final" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Flags "native" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Flags "synchronized" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Privacy ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Method = (*) Flags Generics Type Id "(" Comma<Type> ")" Throws ";" Descriptor ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Method+ = Method+ (*) Method ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Privacy = (*) ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Privacy = (*) "protected" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Privacy = (*) "public" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
and looking at a token `"public"` we can reduce to a `Privacy` but we can also shift
/home/nmatsakis/versioned/duchess/src/class_info/javap_parser.lalrpop:78:5: 78:26: Conflict detected
when in this state:
ClassInfo = Header Flags "class" DotId Generics "extends" ClassRef "{" Method+ (*) "}" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Flags "final" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Flags "native" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Flags "synchronized" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Privacy ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Method = (*) Flags Generics Type Id "(" Comma<Type> ")" Throws ";" Descriptor ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Method+ = Method+ (*) Method ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Privacy = (*) ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Privacy = (*) "protected" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Privacy = (*) "public" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
and looking at a token `"}"` we can reduce to a `Privacy` but we can also shift
/home/nmatsakis/versioned/duchess/src/class_info/javap_parser.lalrpop:78:5: 78:26: Conflict detected
when in this state:
ClassInfo = Header Flags "class" DotId Generics "implements" Comma<ClassRef> "{" Constructor+ (*) Method+ "}" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
ClassInfo = Header Flags "class" DotId Generics "implements" Comma<ClassRef> "{" Constructor+ (*) "}" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Constructor = (*) Flags DotId "(" Comma<Type> ")" Throws ";" Descriptor ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Constructor+ = Constructor+ (*) Constructor ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Flags "final" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Flags "native" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Flags "synchronized" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Privacy ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Method = (*) Flags Generics Type Id "(" Comma<Type> ")" Throws ";" Descriptor ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Method+ = (*) Method ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Method+ = (*) Method+ Method ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Privacy = (*) ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Privacy = (*) "protected" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Privacy = (*) "public" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
and looking at a token `"protected"` we can reduce to a `Privacy` but we can also shift
/home/nmatsakis/versioned/duchess/src/class_info/javap_parser.lalrpop:78:5: 78:26: Conflict detected
when in this state:
ClassInfo = Header Flags "class" DotId Generics "implements" Comma<ClassRef> "{" Constructor+ (*) Method+ "}" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
ClassInfo = Header Flags "class" DotId Generics "implements" Comma<ClassRef> "{" Constructor+ (*) "}" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Constructor = (*) Flags DotId "(" Comma<Type> ")" Throws ";" Descriptor ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Constructor+ = Constructor+ (*) Constructor ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Flags "final" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Flags "native" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Flags "synchronized" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Privacy ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Method = (*) Flags Generics Type Id "(" Comma<Type> ")" Throws ";" Descriptor ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Method+ = (*) Method ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Method+ = (*) Method+ Method ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Privacy = (*) ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Privacy = (*) "protected" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Privacy = (*) "public" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
and looking at a token `"public"` we can reduce to a `Privacy` but we can also shift
/home/nmatsakis/versioned/duchess/src/class_info/javap_parser.lalrpop:78:5: 78:26: Conflict detected
when in this state:
ClassInfo = Header Flags "class" DotId Generics "implements" Comma<ClassRef> "{" Constructor+ (*) Method+ "}" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
ClassInfo = Header Flags "class" DotId Generics "implements" Comma<ClassRef> "{" Constructor+ (*) "}" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Constructor = (*) Flags DotId "(" Comma<Type> ")" Throws ";" Descriptor ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Constructor+ = Constructor+ (*) Constructor ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Flags "final" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Flags "native" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Flags "synchronized" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Privacy ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Method = (*) Flags Generics Type Id "(" Comma<Type> ")" Throws ";" Descriptor ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Method+ = (*) Method ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Method+ = (*) Method+ Method ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Privacy = (*) ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Privacy = (*) "protected" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Privacy = (*) "public" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
and looking at a token `"}"` we can reduce to a `Privacy` but we can also shift
/home/nmatsakis/versioned/duchess/src/class_info/javap_parser.lalrpop:78:5: 78:26: Conflict detected
when in this state:
ClassInfo = Header Flags "class" DotId Generics "implements" Comma<ClassRef> "{" Field+ (*) Constructor+ Method+ "}" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
ClassInfo = Header Flags "class" DotId Generics "implements" Comma<ClassRef> "{" Field+ (*) Constructor+ "}" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
ClassInfo = Header Flags "class" DotId Generics "implements" Comma<ClassRef> "{" Field+ (*) Method+ "}" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
ClassInfo = Header Flags "class" DotId Generics "implements" Comma<ClassRef> "{" Field+ (*) "}" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Constructor = (*) Flags DotId "(" Comma<Type> ")" Throws ";" Descriptor ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Constructor+ = (*) Constructor ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Constructor+ = (*) Constructor+ Constructor ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Field = (*) Flags Type Id ";" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Field+ = Field+ (*) Field ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Flags "final" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Flags "native" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Flags "synchronized" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Privacy ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Method = (*) Flags Generics Type Id "(" Comma<Type> ")" Throws ";" Descriptor ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Method+ = (*) Method ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Method+ = (*) Method+ Method ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Privacy = (*) ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Privacy = (*) "protected" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Privacy = (*) "public" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
and looking at a token `"protected"` we can reduce to a `Privacy` but we can also shift
/home/nmatsakis/versioned/duchess/src/class_info/javap_parser.lalrpop:78:5: 78:26: Conflict detected
when in this state:
ClassInfo = Header Flags "class" DotId Generics "implements" Comma<ClassRef> "{" Field+ (*) Constructor+ Method+ "}" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
ClassInfo = Header Flags "class" DotId Generics "implements" Comma<ClassRef> "{" Field+ (*) Constructor+ "}" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
ClassInfo = Header Flags "class" DotId Generics "implements" Comma<ClassRef> "{" Field+ (*) Method+ "}" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
ClassInfo = Header Flags "class" DotId Generics "implements" Comma<ClassRef> "{" Field+ (*) "}" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Constructor = (*) Flags DotId "(" Comma<Type> ")" Throws ";" Descriptor ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Constructor+ = (*) Constructor ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Constructor+ = (*) Constructor+ Constructor ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Field = (*) Flags Type Id ";" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Field+ = Field+ (*) Field ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Flags "final" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Flags "native" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Flags "synchronized" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Privacy ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Method = (*) Flags Generics Type Id "(" Comma<Type> ")" Throws ";" Descriptor ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Method+ = (*) Method ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Method+ = (*) Method+ Method ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Privacy = (*) ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Privacy = (*) "protected" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Privacy = (*) "public" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
and looking at a token `"public"` we can reduce to a `Privacy` but we can also shift
/home/nmatsakis/versioned/duchess/src/class_info/javap_parser.lalrpop:78:5: 78:26: Conflict detected
when in this state:
ClassInfo = Header Flags "class" DotId Generics "implements" Comma<ClassRef> "{" Field+ (*) Constructor+ Method+ "}" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
ClassInfo = Header Flags "class" DotId Generics "implements" Comma<ClassRef> "{" Field+ (*) Constructor+ "}" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
ClassInfo = Header Flags "class" DotId Generics "implements" Comma<ClassRef> "{" Field+ (*) Method+ "}" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
ClassInfo = Header Flags "class" DotId Generics "implements" Comma<ClassRef> "{" Field+ (*) "}" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Constructor = (*) Flags DotId "(" Comma<Type> ")" Throws ";" Descriptor ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Constructor+ = (*) Constructor ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Constructor+ = (*) Constructor+ Constructor ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Field = (*) Flags Type Id ";" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Field+ = Field+ (*) Field ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Flags "final" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Flags "native" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Flags "synchronized" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Privacy ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Method = (*) Flags Generics Type Id "(" Comma<Type> ")" Throws ";" Descriptor ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Method+ = (*) Method ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Method+ = (*) Method+ Method ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Privacy = (*) ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Privacy = (*) "protected" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Privacy = (*) "public" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
and looking at a token `"}"` we can reduce to a `Privacy` but we can also shift
/home/nmatsakis/versioned/duchess/src/class_info/javap_parser.lalrpop:78:5: 78:26: Conflict detected
when in this state:
ClassInfo = Header Flags "class" DotId Generics "implements" Comma<ClassRef> "{" Method+ (*) "}" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Flags "final" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Flags "native" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Flags "synchronized" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Privacy ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Method = (*) Flags Generics Type Id "(" Comma<Type> ")" Throws ";" Descriptor ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Method+ = Method+ (*) Method ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Privacy = (*) ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Privacy = (*) "protected" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Privacy = (*) "public" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
and looking at a token `"protected"` we can reduce to a `Privacy` but we can also shift
/home/nmatsakis/versioned/duchess/src/class_info/javap_parser.lalrpop:78:5: 78:26: Conflict detected
when in this state:
ClassInfo = Header Flags "class" DotId Generics "implements" Comma<ClassRef> "{" Method+ (*) "}" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Flags "final" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Flags "native" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Flags "synchronized" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Privacy ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Method = (*) Flags Generics Type Id "(" Comma<Type> ")" Throws ";" Descriptor ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Method+ = Method+ (*) Method ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Privacy = (*) ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Privacy = (*) "protected" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Privacy = (*) "public" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
and looking at a token `"public"` we can reduce to a `Privacy` but we can also shift
/home/nmatsakis/versioned/duchess/src/class_info/javap_parser.lalrpop:78:5: 78:26: Conflict detected
when in this state:
ClassInfo = Header Flags "class" DotId Generics "implements" Comma<ClassRef> "{" Method+ (*) "}" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Flags "final" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Flags "native" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Flags "synchronized" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Privacy ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Method = (*) Flags Generics Type Id "(" Comma<Type> ")" Throws ";" Descriptor ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Method+ = Method+ (*) Method ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Privacy = (*) ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Privacy = (*) "protected" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Privacy = (*) "public" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
and looking at a token `"}"` we can reduce to a `Privacy` but we can also shift
/home/nmatsakis/versioned/duchess/src/class_info/javap_parser.lalrpop:78:5: 78:26: Conflict detected
when in this state:
ClassInfo = Header Flags "class" DotId Generics "{" Field+ Constructor+ Method+ (*) "}" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Flags "final" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Flags "native" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Flags "synchronized" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Privacy ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Method = (*) Flags Generics Type Id "(" Comma<Type> ")" Throws ";" Descriptor ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Method+ = Method+ (*) Method ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Privacy = (*) ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Privacy = (*) "protected" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Privacy = (*) "public" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
and looking at a token `"protected"` we can reduce to a `Privacy` but we can also shift
/home/nmatsakis/versioned/duchess/src/class_info/javap_parser.lalrpop:78:5: 78:26: Conflict detected
when in this state:
ClassInfo = Header Flags "class" DotId Generics "{" Field+ Constructor+ Method+ (*) "}" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Flags "final" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Flags "native" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Flags "synchronized" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Privacy ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Method = (*) Flags Generics Type Id "(" Comma<Type> ")" Throws ";" Descriptor ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Method+ = Method+ (*) Method ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Privacy = (*) ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Privacy = (*) "protected" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Privacy = (*) "public" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
and looking at a token `"public"` we can reduce to a `Privacy` but we can also shift
/home/nmatsakis/versioned/duchess/src/class_info/javap_parser.lalrpop:78:5: 78:26: Conflict detected
when in this state:
ClassInfo = Header Flags "class" DotId Generics "{" Field+ Constructor+ Method+ (*) "}" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Flags "final" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Flags "native" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Flags "synchronized" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Privacy ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Method = (*) Flags Generics Type Id "(" Comma<Type> ")" Throws ";" Descriptor ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Method+ = Method+ (*) Method ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Privacy = (*) ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Privacy = (*) "protected" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Privacy = (*) "public" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
and looking at a token `"}"` we can reduce to a `Privacy` but we can also shift
/home/nmatsakis/versioned/duchess/src/class_info/javap_parser.lalrpop:78:5: 78:26: Conflict detected
when in this state:
ClassInfo = Flags "class" DotId Generics "extends" ClassRef "implements" Comma<ClassRef> "{" Constructor+ (*) Method+ "}" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
ClassInfo = Flags "class" DotId Generics "extends" ClassRef "implements" Comma<ClassRef> "{" Constructor+ (*) "}" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Constructor = (*) Flags DotId "(" Comma<Type> ")" Throws ";" Descriptor ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Constructor+ = Constructor+ (*) Constructor ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Flags "final" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "double", "extends", "final", "float", "implements", "int", "long", "native", "protected", "public", "short", "super", "synchronized", "throws", "{", "}", r#"Compiled from \"[a-zA-Z.]+\""#, r#"[a-zA-Z][a-zA-Z0-9]*"#, r#"descriptor: \\([\\[\\]a-zA-Z0-9/;]*\\)[\\[\\]a-zA-Z0-9/;]+"#, EOF]
Flags = (*) Flags "native" ["(", ")", ",", ".", ";", "<", ">", "?", "[", "]", "boolean", "byte", "class", "dou
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment