Created
March 17, 2025 13:03
-
-
Save NateSeymour/eec7c43231740451ce54d48c8bbd1b2f to your computer and use it in GitHub Desktop.
Buffalo Sample Shift-Reduce Conflict Message
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Grammar contains an irreconcilable shift-reduce conflict when deciding to reduce YieldExpression or shift "yield". | |
Shift-reduce conflicts can be solved by: | |
1. Refactoring your grammar. | |
2. Adding precedence to your terminals. | |
3. Adding Associativity to your terminals. | |
The conflict arose in the following state with the following closure: | |
YieldExpression -> "yield" . | |
YieldExpression -> "yield" . AssignmentExpression | |
YieldExpression -> "yield" . "\*" AssignmentExpression | |
AssignmentExpression -> . ConditionalExpression | |
AssignmentExpression -> . YieldExpression | |
AssignmentExpression -> . ArrowFunction | |
AssignmentExpression -> . AsyncArrowFunction | |
AssignmentExpression -> . LeftHandSideExpression "=" AssignmentExpression | |
ConditionalExpression -> . ShortCircuitExpression | |
ConditionalExpression -> . ShortCircuitExpression "\?" AssignmentExpression ":" AssignmentExpression | |
YieldExpression -> . "yield" | |
YieldExpression -> . "yield" AssignmentExpression | |
YieldExpression -> . "yield" "\*" AssignmentExpression | |
ArrowFunction -> . ArrowParameters "=\>" ConciseBody | |
AsyncArrowFunction -> . "async" Identifier "=\>" AsyncConciseBody | |
AsyncArrowFunction -> . CoverCallExpressionAndAsyncArrowHead "=\>" AsyncConciseBody | |
LeftHandSideExpression -> . NewExpression | |
LeftHandSideExpression -> . CallExpression | |
LeftHandSideExpression -> . OptionalExpression | |
ShortCircuitExpression -> . LogicalORExpression | |
ShortCircuitExpression -> . CoalesceExpression | |
ArrowParameters -> . Identifier | |
ArrowParameters -> . CoverParenthesizedExpressionAndArrowParameterList | |
CoverCallExpressionAndAsyncArrowHead -> . MemberExpression Arguments | |
NewExpression -> . MemberExpression | |
NewExpression -> . "new" NewExpression | |
CallExpression -> . CoverCallExpressionAndAsyncArrowHead | |
CallExpression -> . SuperCall | |
CallExpression -> . ImportCall | |
CallExpression -> . CallExpression Arguments | |
CallExpression -> . CallExpression "\[" Expression "\]" | |
CallExpression -> . CallExpression "\." Identifier | |
CallExpression -> . CallExpression TemplateLiteral | |
OptionalExpression -> . MemberExpression OptionalChain | |
OptionalExpression -> . CallExpression OptionalChain | |
OptionalExpression -> . OptionalExpression OptionalChain | |
LogicalORExpression -> . LogicalANDExpression | |
LogicalORExpression -> . LogicalORExpression "\|\|" LogicalANDExpression | |
CoalesceExpression -> . CoalesceExpressionHead "\?{2}" BitwiseORExpression | |
Identifier -> . "[a-zA-Z\d]+" | |
CoverParenthesizedExpressionAndArrowParameterList -> . "\(" Expression "\)" | |
CoverParenthesizedExpressionAndArrowParameterList -> . "\(" Expression "," "\)" | |
CoverParenthesizedExpressionAndArrowParameterList -> . "\(" "\)" | |
CoverParenthesizedExpressionAndArrowParameterList -> . "\(" "\.{3}" Identifier "\)" | |
CoverParenthesizedExpressionAndArrowParameterList -> . "\(" "\.{3}" BindingPattern "\)" | |
CoverParenthesizedExpressionAndArrowParameterList -> . "\(" Expression "," "\.{3}" Identifier "\)" | |
CoverParenthesizedExpressionAndArrowParameterList -> . "\(" Expression "," "\.{3}" BindingPattern "\)" | |
MemberExpression -> . PrimaryExpression | |
MemberExpression -> . MemberExpression "\[" Expression "\]" | |
MemberExpression -> . MemberExpression "\." Identifier | |
MemberExpression -> . MemberExpression TemplateLiteral | |
MemberExpression -> . SuperProperty | |
MemberExpression -> . MetaProperty | |
MemberExpression -> . "new" MemberExpression Arguments | |
SuperCall -> . "super" Arguments | |
ImportCall -> . "import" "\(" AssignmentExpression "\)" | |
LogicalANDExpression -> . BitwiseORExpression | |
LogicalANDExpression -> . LogicalANDExpression "&&" BitwiseORExpression | |
CoalesceExpressionHead -> . CoalesceExpression | |
CoalesceExpressionHead -> . BitwiseORExpression | |
PrimaryExpression -> . "this" | |
PrimaryExpression -> . Identifier | |
PrimaryExpression -> . ArrayLiteral | |
PrimaryExpression -> . ObjectLiteral | |
PrimaryExpression -> . FunctionExpression | |
PrimaryExpression -> . ClassExpression | |
PrimaryExpression -> . GeneratorExpression | |
PrimaryExpression -> . AsyncFunctionExpression | |
PrimaryExpression -> . AsyncGeneratorExpression | |
PrimaryExpression -> . CoverParenthesizedExpressionAndArrowParameterList | |
SuperProperty -> . "super" "\[" Expression "\]" | |
SuperProperty -> . "super" "\." Identifier | |
MetaProperty -> . NewTarget | |
MetaProperty -> . ImportMeta | |
BitwiseORExpression -> . BitwiseXORExpression | |
BitwiseORExpression -> . BitwiseORExpression "\|" BitwiseXORExpression | |
ArrayLiteral -> . "\[" "\]" | |
ObjectLiteral -> . "\{" "\}" | |
FunctionExpression -> . "function" Identifier "\(" "\)" "\{" FunctionBody "\}" | |
FunctionExpression -> . "function" Identifier "\(" FormalParameters "\)" "\{" FunctionBody "\}" | |
ClassExpression -> . "class" Identifier ClassTail | |
ClassExpression -> . "class" ClassTail | |
GeneratorExpression -> . "function" "\*" "\(" FormalParameters "\)" "\{" FunctionBody "\}" | |
GeneratorExpression -> . "function" "\*" Identifier "\(" FormalParameters "\)" "\{" FunctionBody "\}" | |
AsyncFunctionExpression -> . "async" "function" "\(" FormalParameters "\)" "\{" AsyncFunctionBody "\}" | |
AsyncFunctionExpression -> . "async" "function" Identifier "\(" FormalParameters "\)" "\{" AsyncFunctionBody "\}" | |
AsyncGeneratorExpression -> . "async" "function" "\*" "\(" FormalParameters "\)" "\{" AsyncGeneratorBody "\}" | |
AsyncGeneratorExpression -> . "async" "function" "\*" Identifier "\(" FormalParameters "\)" "\{" AsyncGeneratorBody "\}" | |
NewTarget -> . "new" "\." "target" | |
ImportMeta -> . "import" "\." "meta" | |
BitwiseXORExpression -> . BitwiseANDExpression | |
BitwiseXORExpression -> . BitwiseXORExpression "\^" BitwiseANDExpression | |
BitwiseANDExpression -> . EqualityExpression | |
BitwiseANDExpression -> . BitwiseANDExpression "&" EqualityExpression | |
EqualityExpression -> . RelationalExpression | |
EqualityExpression -> . EqualityExpression "==" RelationalExpression | |
EqualityExpression -> . EqualityExpression "!=" RelationalExpression | |
EqualityExpression -> . EqualityExpression "===" RelationalExpression | |
EqualityExpression -> . EqualityExpression "!==" RelationalExpression | |
RelationalExpression -> . ShiftExpression | |
RelationalExpression -> . RelationalExpression "\<" ShiftExpression | |
RelationalExpression -> . RelationalExpression "\>" ShiftExpression | |
RelationalExpression -> . RelationalExpression "\<=" ShiftExpression | |
RelationalExpression -> . RelationalExpression "\>=" ShiftExpression | |
RelationalExpression -> . RelationalExpression "instanceof" ShiftExpression | |
RelationalExpression -> . RelationalExpression "in" ShiftExpression | |
RelationalExpression -> . PrivateIdentifier "in" ShiftExpression | |
ShiftExpression -> . AdditiveExpression | |
ShiftExpression -> . ShiftExpression "\<\<" AdditiveExpression | |
ShiftExpression -> . ShiftExpression "\>\>" AdditiveExpression | |
ShiftExpression -> . ShiftExpression "\>\>\>" AdditiveExpression | |
PrivateIdentifier -> . "#" Identifier | |
AdditiveExpression -> . MultiplicativeExpression | |
AdditiveExpression -> . AdditiveExpression "\+" MultiplicativeExpression | |
AdditiveExpression -> . AdditiveExpression "\-" MultiplicativeExpression | |
MultiplicativeExpression -> . ExponentiationExpression | |
MultiplicativeExpression -> . MultiplicativeExpression "\*" ExponentiationExpression | |
MultiplicativeExpression -> . MultiplicativeExpression "\/" ExponentiationExpression | |
MultiplicativeExpression -> . MultiplicativeExpression "%" ExponentiationExpression | |
ExponentiationExpression -> . UnaryExpression | |
ExponentiationExpression -> . UpdateExpression "\*{2}" ExponentiationExpression | |
UnaryExpression -> . UpdateExpression | |
UnaryExpression -> . "delete" UpdateExpression | |
UnaryExpression -> . "void" UpdateExpression | |
UnaryExpression -> . "typeof" UpdateExpression | |
UnaryExpression -> . "\+" UpdateExpression | |
UnaryExpression -> . "\-" UpdateExpression | |
UnaryExpression -> . "~" UpdateExpression | |
UnaryExpression -> . "!" UpdateExpression | |
UnaryExpression -> . AwaitExpression | |
UpdateExpression -> . LeftHandSideExpression | |
UpdateExpression -> . LeftHandSideExpression "\+\+" | |
UpdateExpression -> . LeftHandSideExpression "\-\-" | |
UpdateExpression -> . "\+\+" UnaryExpression | |
UpdateExpression -> . "\-\-" UnaryExpression | |
AwaitExpression -> . "await" UnaryExpression | |
When deciding to reduce the following rule: | |
YieldExpression -> "yield" | |
Or shift "yield" to the following state: | |
YieldExpression -> "yield" . | |
YieldExpression -> "yield" . AssignmentExpression | |
YieldExpression -> "yield" . "\*" AssignmentExpression | |
AssignmentExpression -> . ConditionalExpression | |
AssignmentExpression -> . YieldExpression | |
AssignmentExpression -> . ArrowFunction | |
AssignmentExpression -> . AsyncArrowFunction | |
AssignmentExpression -> . LeftHandSideExpression "=" AssignmentExpression | |
ConditionalExpression -> . ShortCircuitExpression | |
ConditionalExpression -> . ShortCircuitExpression "\?" AssignmentExpression ":" AssignmentExpression | |
YieldExpression -> . "yield" | |
YieldExpression -> . "yield" AssignmentExpression | |
YieldExpression -> . "yield" "\*" AssignmentExpression | |
ArrowFunction -> . ArrowParameters "=\>" ConciseBody | |
AsyncArrowFunction -> . "async" Identifier "=\>" AsyncConciseBody | |
AsyncArrowFunction -> . CoverCallExpressionAndAsyncArrowHead "=\>" AsyncConciseBody | |
LeftHandSideExpression -> . NewExpression | |
LeftHandSideExpression -> . CallExpression | |
LeftHandSideExpression -> . OptionalExpression | |
ShortCircuitExpression -> . LogicalORExpression | |
ShortCircuitExpression -> . CoalesceExpression | |
ArrowParameters -> . Identifier | |
ArrowParameters -> . CoverParenthesizedExpressionAndArrowParameterList | |
CoverCallExpressionAndAsyncArrowHead -> . MemberExpression Arguments | |
NewExpression -> . MemberExpression | |
NewExpression -> . "new" NewExpression | |
CallExpression -> . CoverCallExpressionAndAsyncArrowHead | |
CallExpression -> . SuperCall | |
CallExpression -> . ImportCall | |
CallExpression -> . CallExpression Arguments | |
CallExpression -> . CallExpression "\[" Expression "\]" | |
CallExpression -> . CallExpression "\." Identifier | |
CallExpression -> . CallExpression TemplateLiteral | |
OptionalExpression -> . MemberExpression OptionalChain | |
OptionalExpression -> . CallExpression OptionalChain | |
OptionalExpression -> . OptionalExpression OptionalChain | |
LogicalORExpression -> . LogicalANDExpression | |
LogicalORExpression -> . LogicalORExpression "\|\|" LogicalANDExpression | |
CoalesceExpression -> . CoalesceExpressionHead "\?{2}" BitwiseORExpression | |
Identifier -> . "[a-zA-Z\d]+" | |
CoverParenthesizedExpressionAndArrowParameterList -> . "\(" Expression "\)" | |
CoverParenthesizedExpressionAndArrowParameterList -> . "\(" Expression "," "\)" | |
CoverParenthesizedExpressionAndArrowParameterList -> . "\(" "\)" | |
CoverParenthesizedExpressionAndArrowParameterList -> . "\(" "\.{3}" Identifier "\)" | |
CoverParenthesizedExpressionAndArrowParameterList -> . "\(" "\.{3}" BindingPattern "\)" | |
CoverParenthesizedExpressionAndArrowParameterList -> . "\(" Expression "," "\.{3}" Identifier "\)" | |
CoverParenthesizedExpressionAndArrowParameterList -> . "\(" Expression "," "\.{3}" BindingPattern "\)" | |
MemberExpression -> . PrimaryExpression | |
MemberExpression -> . MemberExpression "\[" Expression "\]" | |
MemberExpression -> . MemberExpression "\." Identifier | |
MemberExpression -> . MemberExpression TemplateLiteral | |
MemberExpression -> . SuperProperty | |
MemberExpression -> . MetaProperty | |
MemberExpression -> . "new" MemberExpression Arguments | |
SuperCall -> . "super" Arguments | |
ImportCall -> . "import" "\(" AssignmentExpression "\)" | |
LogicalANDExpression -> . BitwiseORExpression | |
LogicalANDExpression -> . LogicalANDExpression "&&" BitwiseORExpression | |
CoalesceExpressionHead -> . CoalesceExpression | |
CoalesceExpressionHead -> . BitwiseORExpression | |
PrimaryExpression -> . "this" | |
PrimaryExpression -> . Identifier | |
PrimaryExpression -> . ArrayLiteral | |
PrimaryExpression -> . ObjectLiteral | |
PrimaryExpression -> . FunctionExpression | |
PrimaryExpression -> . ClassExpression | |
PrimaryExpression -> . GeneratorExpression | |
PrimaryExpression -> . AsyncFunctionExpression | |
PrimaryExpression -> . AsyncGeneratorExpression | |
PrimaryExpression -> . CoverParenthesizedExpressionAndArrowParameterList | |
SuperProperty -> . "super" "\[" Expression "\]" | |
SuperProperty -> . "super" "\." Identifier | |
MetaProperty -> . NewTarget | |
MetaProperty -> . ImportMeta | |
BitwiseORExpression -> . BitwiseXORExpression | |
BitwiseORExpression -> . BitwiseORExpression "\|" BitwiseXORExpression | |
ArrayLiteral -> . "\[" "\]" | |
ObjectLiteral -> . "\{" "\}" | |
FunctionExpression -> . "function" Identifier "\(" "\)" "\{" FunctionBody "\}" | |
FunctionExpression -> . "function" Identifier "\(" FormalParameters "\)" "\{" FunctionBody "\}" | |
ClassExpression -> . "class" Identifier ClassTail | |
ClassExpression -> . "class" ClassTail | |
GeneratorExpression -> . "function" "\*" "\(" FormalParameters "\)" "\{" FunctionBody "\}" | |
GeneratorExpression -> . "function" "\*" Identifier "\(" FormalParameters "\)" "\{" FunctionBody "\}" | |
AsyncFunctionExpression -> . "async" "function" "\(" FormalParameters "\)" "\{" AsyncFunctionBody "\}" | |
AsyncFunctionExpression -> . "async" "function" Identifier "\(" FormalParameters "\)" "\{" AsyncFunctionBody "\}" | |
AsyncGeneratorExpression -> . "async" "function" "\*" "\(" FormalParameters "\)" "\{" AsyncGeneratorBody "\}" | |
AsyncGeneratorExpression -> . "async" "function" "\*" Identifier "\(" FormalParameters "\)" "\{" AsyncGeneratorBody "\}" | |
NewTarget -> . "new" "\." "target" | |
ImportMeta -> . "import" "\." "meta" | |
BitwiseXORExpression -> . BitwiseANDExpression | |
BitwiseXORExpression -> . BitwiseXORExpression "\^" BitwiseANDExpression | |
BitwiseANDExpression -> . EqualityExpression | |
BitwiseANDExpression -> . BitwiseANDExpression "&" EqualityExpression | |
EqualityExpression -> . RelationalExpression | |
EqualityExpression -> . EqualityExpression "==" RelationalExpression | |
EqualityExpression -> . EqualityExpression "!=" RelationalExpression | |
EqualityExpression -> . EqualityExpression "===" RelationalExpression | |
EqualityExpression -> . EqualityExpression "!==" RelationalExpression | |
RelationalExpression -> . ShiftExpression | |
RelationalExpression -> . RelationalExpression "\<" ShiftExpression | |
RelationalExpression -> . RelationalExpression "\>" ShiftExpression | |
RelationalExpression -> . RelationalExpression "\<=" ShiftExpression | |
RelationalExpression -> . RelationalExpression "\>=" ShiftExpression | |
RelationalExpression -> . RelationalExpression "instanceof" ShiftExpression | |
RelationalExpression -> . RelationalExpression "in" ShiftExpression | |
RelationalExpression -> . PrivateIdentifier "in" ShiftExpression | |
ShiftExpression -> . AdditiveExpression | |
ShiftExpression -> . ShiftExpression "\<\<" AdditiveExpression | |
ShiftExpression -> . ShiftExpression "\>\>" AdditiveExpression | |
ShiftExpression -> . ShiftExpression "\>\>\>" AdditiveExpression | |
PrivateIdentifier -> . "#" Identifier | |
AdditiveExpression -> . MultiplicativeExpression | |
AdditiveExpression -> . AdditiveExpression "\+" MultiplicativeExpression | |
AdditiveExpression -> . AdditiveExpression "\-" MultiplicativeExpression | |
MultiplicativeExpression -> . ExponentiationExpression | |
MultiplicativeExpression -> . MultiplicativeExpression "\*" ExponentiationExpression | |
MultiplicativeExpression -> . MultiplicativeExpression "\/" ExponentiationExpression | |
MultiplicativeExpression -> . MultiplicativeExpression "%" ExponentiationExpression | |
ExponentiationExpression -> . UnaryExpression | |
ExponentiationExpression -> . UpdateExpression "\*{2}" ExponentiationExpression | |
UnaryExpression -> . UpdateExpression | |
UnaryExpression -> . "delete" UpdateExpression | |
UnaryExpression -> . "void" UpdateExpression | |
UnaryExpression -> . "typeof" UpdateExpression | |
UnaryExpression -> . "\+" UpdateExpression | |
UnaryExpression -> . "\-" UpdateExpression | |
UnaryExpression -> . "~" UpdateExpression | |
UnaryExpression -> . "!" UpdateExpression | |
UnaryExpression -> . AwaitExpression | |
UpdateExpression -> . LeftHandSideExpression | |
UpdateExpression -> . LeftHandSideExpression "\+\+" | |
UpdateExpression -> . LeftHandSideExpression "\-\-" | |
UpdateExpression -> . "\+\+" UnaryExpression | |
UpdateExpression -> . "\-\-" UnaryExpression | |
AwaitExpression -> . "await" UnaryExpression |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment