Merge branch 'rinderknecht@fix_preprocessor' into 'dev'
[Bug] I forgot the check whether to perform #include or not. See merge request ligolang/ligo!619
This commit is contained in:
commit
c021254cd4
42
vendors/Preprocessor/Preproc.mll
vendored
42
vendors/Preprocessor/Preproc.mll
vendored
@ -492,26 +492,28 @@ rule scan state = parse
|
|||||||
and file = Lexing.(lexbuf.lex_curr_p.pos_fname) in
|
and file = Lexing.(lexbuf.lex_curr_p.pos_fname) in
|
||||||
let base = Filename.basename file
|
let base = Filename.basename file
|
||||||
and reg, incl_file = scan_inclusion state lexbuf in
|
and reg, incl_file = scan_inclusion state lexbuf in
|
||||||
let incl_dir = Filename.dirname incl_file in
|
if state.mode = Copy then
|
||||||
let path = mk_path state in
|
let incl_dir = Filename.dirname incl_file in
|
||||||
let incl_path, incl_chan =
|
let path = mk_path state in
|
||||||
match find path incl_file state.opt#libs with
|
let incl_path, incl_chan =
|
||||||
Some p -> p
|
match find path incl_file state.opt#libs with
|
||||||
| None -> stop (File_not_found incl_file) state reg in
|
Some p -> p
|
||||||
let () = print state (sprintf "\n# 1 \"%s\" 1\n" incl_path) in
|
| None -> stop (File_not_found incl_file) state reg in
|
||||||
let incl_buf = Lexing.from_channel incl_chan in
|
let () = print state (sprintf "\n# 1 \"%s\" 1\n" incl_path) in
|
||||||
let () =
|
let incl_buf = Lexing.from_channel incl_chan in
|
||||||
let open Lexing in
|
let () =
|
||||||
incl_buf.lex_curr_p <-
|
let open Lexing in
|
||||||
{incl_buf.lex_curr_p with pos_fname = incl_file} in
|
incl_buf.lex_curr_p <-
|
||||||
let state = {state with incl = incl_chan::state.incl} in
|
{incl_buf.lex_curr_p with pos_fname = incl_file} in
|
||||||
let state' = {state with mode=Copy; trace=[]} in
|
let state = {state with incl = incl_chan::state.incl} in
|
||||||
let state' = scan (push_dir incl_dir state') incl_buf in
|
let state' = {state with mode=Copy; trace=[]} in
|
||||||
let state = {state with env=state'.env; incl=state'.incl} in
|
let state' = scan (push_dir incl_dir state') incl_buf in
|
||||||
let path = if path = "" then base
|
let state = {state with env=state'.env; incl=state'.incl} in
|
||||||
else path ^ Filename.dir_sep ^ base in
|
let path = if path = "" then base
|
||||||
print state (sprintf "\n# %i \"%s\" 2" (line+1) path);
|
else path ^ Filename.dir_sep ^ base in
|
||||||
scan state lexbuf
|
let () = print state (sprintf "\n# %i \"%s\" 2" (line+1) path)
|
||||||
|
in scan state lexbuf
|
||||||
|
else scan state lexbuf
|
||||||
| "if" ->
|
| "if" ->
|
||||||
let mode = expr state lexbuf in
|
let mode = expr state lexbuf in
|
||||||
let mode = if state.mode = Copy then mode else Skip in
|
let mode = if state.mode = Copy then mode else Skip in
|
||||||
|
Loading…
Reference in New Issue
Block a user