TP-automates/BE_2020_2021/descendant/MainMachine.ml

26 lines
758 B
OCaml
Raw Normal View History

2023-06-21 17:58:18 +00:00
open Tokens
open Scanner
open Parser
(* main : unit -> unit *)
(* Analyse le contenu d'un fichier passé en paramètre ou l'entrée standard si aucun fichier n'est donné *)
(* Affiche OK si l'analyse syntaxique c'est bien passée et KO sinon *)
let main () =
let cin =
if Array.length Sys.argv > 1 then
open_in Sys.argv.(1)
else
stdin
in
let lexbuf = Lexing.from_channel cin in
let tokens = (scanner lexbuf) in
(print_endline ("Résultat de l'analyse lexicale : " ^ (string_of_stream tokens)));
(print_endline "Analyse syntaxique par descente récursive, règles appliquées :");
(match (parseM tokens)
with
| Success [UL_FIN] -> print_endline "Succés"
| _ -> print_endline "Echec")
;;
main();;