diff --git a/cli/src/gsc_test_file.erl b/cli/src/gsc_test_file.erl index 7fd97a7..42231c8 100644 --- a/cli/src/gsc_test_file.erl +++ b/cli/src/gsc_test_file.erl @@ -8,7 +8,7 @@ -include("$gsc_include/gsc.hrl"). --record(td_ct, +-record(ct, {payable = none :: none | false | {true, tk()}, main = none :: none | false | {true, tk()}, contract = none :: none | tk(), @@ -16,7 +16,7 @@ impls = none :: none | [tk()], eq = none :: none | tk()}). --type td_meta() :: #td_ct{}. +-type meta() :: #ct{}. -record(decl_type, {type = none :: none | tk(), @@ -28,26 +28,26 @@ -type ast_meta() :: file - | td_meta() + | meta() | decl_meta() | nyi | {nyi, any()} . --type td_target() - :: td_ct - | td_iface - | td_ns - | td_pragma - | td_include +-type target() + :: ct + | iface + | ns + | pragma + | include | using . -type s2t_target() :: file | top_decl - | td_target() + | target() | nyi | {nyi, any()} . @@ -104,20 +104,20 @@ s2t(file, Signal) -> s2t(top_decl, Signal) -> NewTarget = case gsc_tokens:strings(3, Signal) of - ["payable", "contract", "interface"] -> td_iface; - ["contract", "interface" | _] -> td_iface; - ["payable", "main", "contract"] -> td_ct; - ["payable", "contract" | _] -> td_ct; - ["contract" | _] -> td_ct; - ["namespace" | _] -> td_namespace; - ["@compiler" | _] -> td_pragma; - ["include" | _] -> td_include; + ["payable", "contract", "interface"] -> iface; + ["contract", "interface" | _] -> iface; + ["payable", "main", "contract"] -> ct; + ["payable", "contract" | _] -> ct; + ["contract" | _] -> ct; + ["namespace" | _] -> namespace; + ["@compiler" | _] -> pragma; + ["include" | _] -> include; ["using" | _] -> using end, s2t(NewTarget, Signal); % ['payable'] ['main'] 'contract' Con [Implement] '=' Block(Decl) -s2t(td_ct, S0) -> - {slurp, CtMeta, S1} = s2s_slurp_meta(#td_ct{}, S0), +s2t(ct, S0) -> + {slurp, CtMeta, S1} = s2s_slurp_meta(#ct{}, S0), {ns, CtMeta, s2f({block_of, decl}, S1)}; % Decl ::= 'type' Id ['(' TVar* ')'] '=' TypeAlias % | 'record' Id ['(' TVar* ')'] '=' RecordType @@ -172,58 +172,58 @@ s2f({block_of, TreeTarget}, S0) -> Meta :: ast_meta(), NewSignal :: Signal. -s2s_slurp_meta(M = #td_ct{}, S) -> - s2s_sm_td_ct(M, S); +s2s_slurp_meta(M = #ct{}, S) -> + s2s_sm_ct(M, S); s2s_slurp_meta(M = #decl_type{}, S) -> s2s_sm_decl_type(M, S); s2s_slurp_meta(M, S) -> error({s2s_slurp_meta, M, S}). -s2s_sm_td_ct(Ct = #td_ct{payable = none}, S0) -> +s2s_sm_ct(Ct = #ct{payable = none}, S0) -> case S0 of [#tk{str = "payable"} = T0 | S1] -> - s2s_sm_td_ct(Ct#td_ct{payable = {true, T0}}, S1); + s2s_sm_ct(Ct#ct{payable = {true, T0}}, S1); _ -> - s2s_sm_td_ct(Ct#td_ct{payable = false}, S0) + s2s_sm_ct(Ct#ct{payable = false}, S0) end; -s2s_sm_td_ct(Ct = #td_ct{main = none}, S0) -> +s2s_sm_ct(Ct = #ct{main = none}, S0) -> case S0 of [#tk{str = "main"} = T0 | S1] -> - s2s_sm_td_ct(Ct#td_ct{main = {true, T0}}, S1); + s2s_sm_ct(Ct#ct{main = {true, T0}}, S1); _ -> - s2s_sm_td_ct(Ct#td_ct{main = false}, S0) + s2s_sm_ct(Ct#ct{main = false}, S0) end; -s2s_sm_td_ct(Ct = #td_ct{contract = none}, S0) -> +s2s_sm_ct(Ct = #ct{contract = none}, S0) -> case S0 of [#tk{str = "contract"} = T0 | S1] -> - s2s_sm_td_ct(Ct#td_ct{contract = T0}, S1); + s2s_sm_ct(Ct#ct{contract = T0}, S1); _ -> error({no_kwd_contract, Ct, S0}) end; -s2s_sm_td_ct(Ct = #td_ct{con = none}, S0) -> +s2s_sm_ct(Ct = #ct{con = none}, S0) -> case S0 of [#tk{shape = con} = T0 | S1] -> - s2s_sm_td_ct(Ct#td_ct{con = T0}, S1); + s2s_sm_ct(Ct#ct{con = T0}, S1); _ -> error({no_contract_name, Ct, S0}) end; -s2s_sm_td_ct(Ct = #td_ct{impls = none}, S0) -> +s2s_sm_ct(Ct = #ct{impls = none}, S0) -> case gsc_tokens:strings(1, S0) of [":"] -> {slurp, Impls, S1} = s2f_slurp_impls(S0), - s2s_sm_td_ct(Ct#td_ct{impls = Impls}, S1); + s2s_sm_ct(Ct#ct{impls = Impls}, S1); _ -> - s2s_sm_td_ct(Ct#td_ct{impls = []}, S0) + s2s_sm_ct(Ct#ct{impls = []}, S0) end; -s2s_sm_td_ct(Ct = #td_ct{eq = none}, S0) -> +s2s_sm_ct(Ct = #ct{eq = none}, S0) -> case S0 of [#tk{str = "="} = T0 | S1] -> - s2s_sm_td_ct(Ct#td_ct{eq = T0}, S1); + s2s_sm_ct(Ct#ct{eq = T0}, S1); _ -> error({no_equal_sign, Ct, S0}) end; -s2s_sm_td_ct(Ct, S0) -> +s2s_sm_ct(Ct, S0) -> {slurp, Ct, S0}. s2f_slurp_impls([#tk{str = ":"}, #tk{shape = con} = I0 | S0]) ->