J'écris un compilateur Aller à Python avec OCamllex et Menhir mais mon lexer ne parvient pas à importer le paquet Core.OCamllex ne peut pas importer le paquet Core (Aller au compilateur Python)
Voici mon fichier lex.mll:
{
(* Header *)
open Core.Std
open Lexing
open Parser
exception SyntaxError of string
let next_line lexbuf =
let pos = lexbuf.lex_curr_p in
lexbuf.lex_curr_p <-
{ pos with pos_bol = lexbuf.lex_curr_pos;
pos_lnum = pos.pos_lnum + 1
}
let syntaxError msg = raise (SyntaxError (msg^" on line "^(string_of_int next_line)))
(* End Header *)
}
[ lexer rules ]
J'ai un fichier make, make.sh pour mettre l'analyseur et ensemble lexer
#! /bin/bash
echo "==Creating compiler=="
echo "- OCamllex : lex.mll -> lex.ml"
ocamllex lex.mll
echo "- OCaml : lex.ml -> lex"
ocamlc lex.ml -o lex
# echo "- OCamlBuild -> main.ml"
# ocamlbuild -use-menhir main.native
Mais quand je lance ./make. sh Je reçois cette erreur:
==Creating compiler==
- OCamllex : lex.mll -> lex.ml
1030 states, 16995 transitions, table size 74160 bytes
- OCaml : lex.ml -> lex
File "lex.mll", line 4, characters 7-15:
Error: Unbound module Core
Je suis en mesure d'ouvrir de base dans l'interpréteur OCaml, en éditant mon fichier .ocamlinit, mais comment im Port Core dans un script compilé par ocamlc?
Pouvez-vous utiliser 'ocamlfind'? Ensuite, vous pouvez faire quelque chose comme 'ocamlfind ocamlc -paquetage core lex.ml -o lex'. – RichN
J'ai essayé 'ocamlfind ocamlc -thread-paquet core lex.ml -o lex' et il trouve le paquet Core! –
C'est génial! J'utilise toujours 'ocamlfind' quand je construis parce que ça marche. – RichN