Estructura de Z80 ASM BNF ... ¿Estoy en el camino correcto?

Estoy tratando de aprender BNF y tratando de ensamblar algo de código ASM Z80. Como soy nuevo en ambos campos, mi pregunta es, ¿estoy en el camino correcto? Estoy tratando de escribir el formato de Z80 ASM como EBNF para poder luego averiguar a dónde ir para crear un código de máquina desde la fuente. En este momento tengo lo siguiente:

Assignment = Identifier, ":" ;

Instruction = Opcode, [ Operand ], [ Operand ] ;

Operand = Identifier | Something* ;

Something* = "(" , Identifier, ")" ;

Identifier = Alpha, { Numeric | Alpha } ;

Opcode = Alpha, Alpha ;

Int = [ "-" ], Numeric, { Numeric } ;

Alpha = "A" | "B" | "C" | "D" | "E" | "F" | 
        "G" | "H" | "I" | "J" | "K" | "L" | 
        "M" | "N" | "O" | "P" | "Q" | "R" | 
        "S" | "T" | "U" | "V" | "W" | "X" | 
        "Y" | "Z" ;

Numeric = "0" | "1" | "2" | "3"| "4" | 
          "5" | "6" | "7" | "8" | "9" ;

Cualquier comentario direccional si me equivoco sería excelente.

Respuestas a la pregunta(3)

Su respuesta a la pregunta