Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //PROGETTO
- //qualora dovesse servire a mr Buso, converte una stringa in una char list
- let string_to_list (s : string) = s.ToCharArray() |> Array.toList
- let rec separaprogram (x : char) (xs : char list) : string =
- match xs with
- [] ->""
- | z::zs -> if z = x
- then ""
- else string z + separaprogram x zs;;
- let rec avantiprogram (x : char) (xs : char list) : char list =
- match xs with
- []->[]
- |z::zs -> if z = x
- then zs
- else avantiprogram x zs
- ;;
- let rec splitprogram (x : char) (xs : char list) : _ list =
- // serve per convertire ogni comando di program in una lista di contenente l'istruzione e i due argomenti = ["mov"; "reg1", "[2]"]
- match xs with
- [] -> []
- | z::zs ->if z=x
- then splitprogram x (avantiprogram x xs)
- else [separaprogram x xs] @ splitprogram x (avantiprogram x xs)
- //else [separaprogram x xs] @ string_to_list (splitprogram x (avantiprogram x xs)) NON FUNZIONA, dovrebbe concatenare una string list a una char list (però potrei usarlo su arg1 e arg2)
- ;;
- //queste istruzioni servono per estrarre istruzioni, arg1, arg2 dalla stringa di program, ad esempio istruzione="mov" , arg1="reg1" , arg2="[2]"
- let rec estrai (x : string list) (quale : int): string=
- match x with
- x::xs -> if quale=0 then x
- else estrai x (quale-1)
- ;;
- let istruzione = estrai x 0;;
- let arg1 = estrai x 1;;
- let arg2 = estrai x 2;;
- ;;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement