Je verrais bien une production lex qui rend les nombres, les tokens Basic, les identifiants et les retours chariots.
Et ton yacc, ça serait un bête:
ligne-de-code:
nombre instructions retour-chariot
Et comme tu le dis, tu stocke tout ce biniou dans une structure associative type map ou hash-map où un numero de ligne te donne la ligne de code qui va bien.