================================================================
Has an LR-1 conflict:

  Block
    : BracelessStatement
    | Block ";" BracelessStatement
    | Block ";"
    | BracefulStatement Block
  ;

  BracelessStatement
    : "x"
  ;
  BracefulStatement
    : "{}"
  ;

More briefly:

  Block
    : "x"              // 1
    | Block ";" "x"    // 2
    | Block ";"        // 3
    | "{}" Block       // 4
  ;

All possible statements in this grammar:

  1. x


  2.1. x;x
  3.1. x;
  4.1. {}x


  2.2.1. x;x;x
  2.3.1. x;;x
  2.4.1. {}x;x

  3.2.1. x;x;
  3.3.1. x;;
  3.4.1. {}x;

  4.2.1. {}x;x
  4.3.1. {}x;
  4.4.1. {}{}x

  ...

I.e. there are two paths to these:

  {}x;
  {}x;x

================================================================
No LR-1 conflicts:

----------------------------------------------------------------
  Block
    : BracelessStatement
    | BracelessStatement ";" Block
    | BracefulStatement
    | BracefulStatement Block
  ;

  BracelessStatement
    : "x"
  ;
  BracefulStatement
    : "{}"
  ;

More briefly:

  Block
    : "x"              // 1
    | "{}"             // 2
    | "x" ";" Block    // 3
    | "{}" Block       // 4
  ;

All possible statements in this grammar:

  1. x
  2. {}


  3.1. x;x
  3.2. x;{}

  4.1. {}x
  4.2. {}{}


  3.3.1. x;x;x
  3.3.2. x;x;{}

  3.4.1. x;{}x
  3.4.2. x;{}{}

  4.3.1. {}x;x
  4.3.2. {}x;{}

  4.4.1. {}{}x
  4.4.2. {}{}{}


  ...

Note there are not two paths to anything.


