2017-11-02 21:57:17 +04:00
|
|
|
(**************************************************************************)
|
|
|
|
(* *)
|
2017-11-14 03:36:14 +04:00
|
|
|
(* Copyright (c) 2014 - 2017. *)
|
2017-11-02 21:57:17 +04:00
|
|
|
(* Dynamic Ledger Solutions, Inc. <contact@tezos.com> *)
|
|
|
|
(* *)
|
|
|
|
(* All rights reserved. No warranty, explicit or implicit, provided. *)
|
|
|
|
(* *)
|
|
|
|
(**************************************************************************)
|
|
|
|
|
2018-01-29 04:06:47 +04:00
|
|
|
open Proto_alpha
|
|
|
|
open Tezos_context
|
|
|
|
|
2017-11-27 09:13:12 +04:00
|
|
|
open Tezos_micheline
|
|
|
|
|
2017-11-02 21:57:17 +04:00
|
|
|
(** The result of parsing and expanding a Michelson V1 script or data. *)
|
|
|
|
type parsed =
|
2017-11-13 17:29:28 +04:00
|
|
|
{
|
|
|
|
source : string ;
|
|
|
|
(** The original source code. *)
|
|
|
|
unexpanded : string Micheline.canonical ;
|
|
|
|
(** Original expression with macros. *)
|
|
|
|
expanded : Script.expr ;
|
|
|
|
(** Expression with macros fully expanded. *)
|
2017-11-02 21:57:17 +04:00
|
|
|
expansion_table :
|
|
|
|
(int * (Micheline_parser.location * int list)) list ;
|
2017-11-13 17:29:28 +04:00
|
|
|
(** Associates unexpanded nodes to their parsing locations and
|
|
|
|
the nodes expanded from it in the expanded expression. *)
|
|
|
|
unexpansion_table : (int * int) list ;
|
|
|
|
(** Associates an expanded node to its source in the unexpanded
|
|
|
|
expression. *)
|
|
|
|
}
|
2017-11-02 21:57:17 +04:00
|
|
|
|
2017-11-04 03:16:05 +04:00
|
|
|
val parse_toplevel : ?check:bool -> string -> parsed Micheline_parser.parsing_result
|
|
|
|
val parse_expression : ?check:bool -> string -> parsed Micheline_parser.parsing_result
|
2017-12-08 13:16:20 +04:00
|
|
|
val expand_all : source:string -> original:Micheline_parser.node -> parsed Micheline_parser.parsing_result
|