Parse Table:
Set 1:
  OPENTOKEN_ACCEPT_ID <= ^ DECLARATIONS_ID EOF_ID

   EOF_ID              => reduce 0 tokens to DECLARATION_ID
   IS_ID               => reduce 0 tokens to DECLARATION_ID,
                          shift and goto state 2
   default             => ERROR

   DECLARATION_ID      goto state 3
   DECLARATIONS_ID     goto state 4
   BODY_ID             goto state 5

Set 2:
  BODY_ID <= IS_ID ^ DECLARATIONS_ID BEGIN_ID SEMICOLON_ID, EOF_ID/BEGIN_ID/IS_ID

   BEGIN_ID            => reduce 0 tokens to DECLARATION_ID
   IS_ID               => reduce 0 tokens to DECLARATION_ID,
                          shift and goto state 2
   default             => ERROR

   DECLARATION_ID      goto state 3
   DECLARATIONS_ID     goto state 8
   BODY_ID             goto state 5

Set 3:
  DECLARATIONS_ID <= DECLARATION_ID ^, EOF_ID/BEGIN_ID/IS_ID

   EOF_ID              => reduce 1 tokens to DECLARATIONS_ID
   BEGIN_ID            => reduce 1 tokens to DECLARATIONS_ID
   IS_ID               => reduce 1 tokens to DECLARATIONS_ID
   default             => ERROR


Set 4:
  DECLARATIONS_ID <= DECLARATIONS_ID ^ DECLARATION_ID, EOF_ID/IS_ID
  OPENTOKEN_ACCEPT_ID <= DECLARATIONS_ID ^ EOF_ID

   EOF_ID              => shift and goto state 6,
                          reduce 0 tokens to DECLARATION_ID
   IS_ID               => reduce 0 tokens to DECLARATION_ID,
                          shift and goto state 2
   default             => ERROR

   DECLARATION_ID      goto state 7
   BODY_ID             goto state 5

Set 5:
  DECLARATION_ID <= BODY_ID ^, EOF_ID/IS_ID/BEGIN_ID

   EOF_ID              => reduce 1 tokens to DECLARATION_ID
   IS_ID               => reduce 1 tokens to DECLARATION_ID
   BEGIN_ID            => reduce 1 tokens to DECLARATION_ID
   default             => ERROR


Set 6:
  OPENTOKEN_ACCEPT_ID <= DECLARATIONS_ID EOF_ID ^, EOF_ID/SEMICOLON_ID/IS_ID/BEGIN_ID

   EOF_ID              => accept it
   SEMICOLON_ID        => accept it
   IS_ID               => accept it
   BEGIN_ID            => accept it
   default             => ERROR


Set 7:
  DECLARATIONS_ID <= DECLARATIONS_ID DECLARATION_ID ^, BEGIN_ID/IS_ID/EOF_ID

   BEGIN_ID            => reduce 2 tokens to DECLARATIONS_ID
   IS_ID               => reduce 2 tokens to DECLARATIONS_ID
   EOF_ID              => reduce 2 tokens to DECLARATIONS_ID
   default             => ERROR


Set 8:
  DECLARATIONS_ID <= DECLARATIONS_ID ^ DECLARATION_ID, BEGIN_ID/IS_ID
  BODY_ID <= IS_ID DECLARATIONS_ID ^ BEGIN_ID SEMICOLON_ID, IS_ID/BEGIN_ID/EOF_ID

   BEGIN_ID            => shift and goto state 9,
                          reduce 0 tokens to DECLARATION_ID
   IS_ID               => reduce 0 tokens to DECLARATION_ID,
                          shift and goto state 2
   default             => ERROR

   DECLARATION_ID      goto state 7
   BODY_ID             goto state 5

Set 9:
  BODY_ID <= IS_ID DECLARATIONS_ID BEGIN_ID ^ SEMICOLON_ID, EOF_ID/BEGIN_ID/IS_ID

   SEMICOLON_ID        => shift and goto state 10
   default             => ERROR


Set 10:
  BODY_ID <= IS_ID DECLARATIONS_ID BEGIN_ID SEMICOLON_ID ^, IS_ID/BEGIN_ID/EOF_ID

   IS_ID               => reduce 4 tokens to BODY_ID
   BEGIN_ID            => reduce 4 tokens to BODY_ID
   EOF_ID              => reduce 4 tokens to BODY_ID
   default             => ERROR


unknown conflicts:
SHIFT/REDUCE in state BODY_ID, DECLARATION_ID ( 8) on token IS_ID
REDUCE/SHIFT in state DECLARATION_ID, BODY_ID ( 8) on token BEGIN_ID
REDUCE/SHIFT in state DECLARATION_ID, OPENTOKEN_ACCEPT_ID ( 4) on token EOF_ID
