%{ open Be_ast %} %token ADDRESS %token COMMAND %token SEGMENT %token COMMENT %token EOF %start prog %% prog: | e = expr; EOF { e } ; expr: | c = COMMENT { Comment c } | c = COMMAND; { Acommand c } | c = COMMAND; s = SEGMENT; a = ADDRESS { Mcommand (c, s, a) } | e = expr; COMMENT { e } ;