1
我正在編寫一個轉到Python編譯器的OCamllex和Menhir,但是我的詞法分析器無法導入Core包。OCamllex無法導入Core包(轉到Python編譯器)
這裏是我的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 ]
我有一個make文件,make.sh把詞法和語法分析器一起
#! /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
但是當我運行./make。 SH我得到這個錯誤:
==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
我能夠在OCaml的解釋,以開核,通過編輯我的.ocamlinit文件,但如何即時通訊由ocamlc編譯的腳本中的端口核心?
你可以使用'ocamlfind'嗎?然後你可以做一些像'ocamlfind ocamlc -package core lex.ml -o lex'。 – RichN
我試過'ocamlfind ocamlc -thread -package core lex.ml -o lex',它發現了包Core! –
太棒了!建築時我總是使用'ocamlfind',因爲它工作正常。 – RichN