TP-automates/BE_2021_2022/descendant/MainSystem.ml
2023-06-21 19:58:18 +02:00

26 lines
758 B
OCaml

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 (parseR tokens)
with
| Success [UL_FIN] -> print_endline "Succés"
| _ -> print_endline "Echec")
;;
main();;