Consistent naming for vars and forms

Signed-off-by: Rudi Grinberg <rudi.grinberg@gmail.com>
This commit is contained in:
Rudi Grinberg 2018-07-08 16:27:47 +07:00
parent 7cb068d1eb
commit 1a9895aec4
5 changed files with 40 additions and 40 deletions

View File

@ -196,20 +196,20 @@ module Var = struct
let loc (t : t) = t.loc let loc (t : t) = t.loc
type kind = type kind =
| Single of string | Var of string
| Pair of string * string | Macro of string * string
let destruct { loc = _ ; name; payload; syntax = _ } = let destruct { loc = _ ; name; payload; syntax = _ } =
match payload with match payload with
| None -> Single name | None -> Var name
| Some p -> Pair (name, p) | Some p -> Macro (name, p)
let name { name; _ } = name let name { name; _ } = name
let full_name t = let full_name t =
match destruct t with match destruct t with
| Single s -> s | Var s -> s
| Pair (k, v) -> k ^ ":" ^ v | Macro (k, v) -> k ^ ":" ^ v
let to_string = string_of_var let to_string = string_of_var
@ -223,7 +223,7 @@ module Var = struct
let with_name t ~name = let with_name t ~name =
{ t with name } { t with name }
let is_form t = Option.is_some t.payload let is_macro t = Option.is_some t.payload
end end
let partial_expand let partial_expand
@ -278,8 +278,8 @@ let expand t ~mode ~dir ~f =
begin match var.syntax with begin match var.syntax with
| Percent -> | Percent ->
begin match Var.destruct var with begin match Var.destruct var with
| Single v -> Loc.fail var.loc "unknown variable %S" v | Var v -> Loc.fail var.loc "unknown variable %S" v
| Pair _ -> Loc.fail var.loc "unknown form %s" (string_of_var var) | Macro _ -> Loc.fail var.loc "unknown form %s" (string_of_var var)
end end
| Dollar_brace | Dollar_brace
| Dollar_paren -> Some [Value.String (string_of_var var)] | Dollar_paren -> Some [Value.String (string_of_var var)]

View File

@ -58,8 +58,8 @@ module Var : sig
val full_name : t -> string val full_name : t -> string
type kind = type kind =
| Single of string | Var of string
| Pair of string * string | Macro of string * string
val destruct : t -> kind val destruct : t -> kind
@ -69,7 +69,7 @@ module Var : sig
val with_payload : t -> payload:string option -> t val with_payload : t -> payload:string option -> t
val is_form : t -> bool val is_macro : t -> bool
end end
val expand val expand

View File

@ -46,7 +46,7 @@ type t =
; stanzas_to_consider_for_install : Installable.t list ; stanzas_to_consider_for_install : Installable.t list
; cxx_flags : string list ; cxx_flags : string list
; vars : Var.Kind.t Var.Map.t ; vars : Var.Kind.t Var.Map.t
; forms : Var.Form.t Var.Map.t ; macros : Var.Macro.t Var.Map.t
; chdir : (Action.t, Action.t) Build.t ; chdir : (Action.t, Action.t) Build.t
; host : t option ; host : t option
; libs_by_package : (Package.t * Lib.Set.t) Package.Name.Map.t ; libs_by_package : (Package.t * Lib.Set.t) Package.Name.Map.t
@ -86,17 +86,17 @@ let find_scope_by_dir t dir = Scope.DB.find_by_dir t.scopes dir
let find_scope_by_name t name = Scope.DB.find_by_name t.scopes name let find_scope_by_name t name = Scope.DB.find_by_name t.scopes name
let expand_vars t ~syntax_version ~var : Var.Kind.t option = let expand_vars t ~syntax_version ~var : Var.Kind.t option =
if String_with_vars.Var.is_form var then if String_with_vars.Var.is_macro var then
Exn.code_error "expand_vars can't expand forms" Exn.code_error "expand_vars can't expand macros"
[ "var", String_with_vars.Var.sexp_of_t var ] [ "var", String_with_vars.Var.sexp_of_t var ]
else else
Var.Map.expand t.vars ~syntax_version ~var Var.Map.expand t.vars ~syntax_version ~var
let expand_form t ~syntax_version ~var = let expand_macro t ~syntax_version ~var =
if String_with_vars.Var.is_form var then if String_with_vars.Var.is_macro var then
Var.Map.expand t.forms ~syntax_version ~var Var.Map.expand t.macros ~syntax_version ~var
else else
Exn.code_error "expand_vars can't expand single variables" Exn.code_error "expand_macro can't expand variables"
[ "var", String_with_vars.Var.sexp_of_t var ] [ "var", String_with_vars.Var.sexp_of_t var ]
let (expand_vars_string, expand_vars_path) = let (expand_vars_string, expand_vars_path) =
@ -304,7 +304,7 @@ let create
; artifacts ; artifacts
; cxx_flags ; cxx_flags
; vars ; vars
; forms = Var.Map.forms ; macros = Var.Map.macros
; chdir = Build.arr (fun (action : Action.t) -> ; chdir = Build.arr (fun (action : Action.t) ->
match action with match action with
| Chdir _ -> action | Chdir _ -> action
@ -595,8 +595,8 @@ module Action = struct
let expand_form s var syntax_version = let expand_form s var syntax_version =
let loc = String_with_vars.Var.loc var in let loc = String_with_vars.Var.loc var in
let key = String_with_vars.Var.full_name var in let key = String_with_vars.Var.full_name var in
begin match expand_form sctx ~syntax_version ~var with begin match expand_macro sctx ~syntax_version ~var with
| Some Var.Form.Exe -> Some (path_exp (map_exe (Path.relative dir s))) | Some Var.Macro.Exe -> Some (path_exp (map_exe (Path.relative dir s)))
| Some Dep -> Some (path_exp (Path.relative dir s)) | Some Dep -> Some (path_exp (Path.relative dir s))
| Some Bin -> begin | Some Bin -> begin
let sctx = host sctx in let sctx = host sctx in
@ -691,8 +691,8 @@ module Action = struct
let key = String_with_vars.Var.full_name var in let key = String_with_vars.Var.full_name var in
let res = let res =
match String_with_vars.Var.destruct var with match String_with_vars.Var.destruct var with
| Pair (_, s) -> expand_form s var syntax_version | Macro (_, s) -> expand_form s var syntax_version
| Single var_name -> | Var var_name ->
begin match expand_vars sctx ~syntax_version ~var with begin match expand_vars sctx ~syntax_version ~var with
| None -> String.Map.find extra_vars key | None -> String.Map.find extra_vars key
| Some Targets -> | Some Targets ->

View File

@ -17,7 +17,7 @@ module Kind = struct
| Targets -> None | Targets -> None
end end
module Form = struct module Macro = struct
type t = type t =
| Exe | Exe
| Dep | Dep
@ -58,18 +58,18 @@ module Map = struct
; "SCOPE_ROOT", renamed_in ~version:(1, 0) ~new_name:"project_root" ; "SCOPE_ROOT", renamed_in ~version:(1, 0) ~new_name:"project_root"
] ]
let forms = let macros =
let form kind = No_info kind in let macro kind = No_info kind in
let open Form in let open Macro in
[ "exe", form Exe [ "exe", macro Exe
; "bin", form Bin ; "bin", macro Bin
; "lib", form Lib ; "lib", macro Lib
; "libexec", form Libexec ; "libexec", macro Libexec
; "lib-available", form Lib_available ; "lib-available", macro Lib_available
; "version", form Version ; "version", macro Version
; "read", form Read ; "read", macro Read
; "read-lines", form Read_lines ; "read-lines", macro Read_lines
; "read-strings", form Read_strings ; "read-strings", macro Read_strings
; "dep", since ~version:(1, 0) Dep ; "dep", since ~version:(1, 0) Dep
@ -152,7 +152,7 @@ module Map = struct
Option.bind (String.Map.find t name) ~f:(fun v -> Option.bind (String.Map.find t name) ~f:(fun v ->
let what var = let what var =
String_with_vars.Var.to_string ( String_with_vars.Var.to_string (
if String_with_vars.Var.is_form var then if String_with_vars.Var.is_macro var then
String_with_vars.Var.with_payload var ~payload:(Some "..") String_with_vars.Var.with_payload var ~payload:(Some "..")
else else
var) var)

View File

@ -9,7 +9,7 @@ module Kind : sig
val to_value_no_deps_or_targets : t -> scope:Scope.t -> Value.t list option val to_value_no_deps_or_targets : t -> scope:Scope.t -> Value.t list option
end end
module Form : sig module Macro : sig
type t = type t =
| Exe | Exe
| Dep | Dep
@ -36,7 +36,7 @@ module Map : sig
val create_vars : context:Context.t -> cxx_flags:string list -> Kind.t t val create_vars : context:Context.t -> cxx_flags:string list -> Kind.t t
val forms : Form.t t val macros : Macro.t t
val static_vars : Kind.t t val static_vars : Kind.t t