小さな Visual Basic 言語用のパーサーを作成しようとしています。そして、次のシフト/削減の競合を解決できません。私はこれらのルールを持っています:
simple_type_name:
qualified_type_name
| primitive_type_name;
qualified_type_name:
ID
| qualified_type_name PERIOD ID;
primitive_type_name: BOOLEAN|CHAR|STRING|BYTE|SBYTE|USHORT|SHORT|UINTEGER|INTEGER|ULONG|LONG|SINGLE|DOUBLE;
バイソンは私にこう言います:
simple_type_name -> qualified_type_name . (rule 20)
qualified_type_name -> qualified_type_name . PERIOD ID (rule 23)
PERIOD shift, and go to state 41
PERIOD [reduce using rule 20 (simple_type_name)]
$default reduce using rule 20 (simple_type_name)
では、この紛争の正しい解決策は何ですか?