1- import glazed_corn
1+ import glazed_corn/error
22import glazed_corn/token . { type Token }
33import gleam/dict . { type Dict }
44import gleam/list
@@ -29,34 +29,34 @@ pub type PairOrSpread {
2929 ObjectSpread ( String )
3030}
3131
32- pub fn parse_tokens ( tokens : List ( Token ) ) -> Result ( Root , glazed_corn . ParseError ) {
32+ pub fn parse ( tokens : List ( Token ) ) -> Result ( Root , error . ParseError ) {
3333 case tokens {
3434 [ token . Let , token . OpenBrace , .. rest ] -> {
3535 use # ( inputs , rest ) <- result . try ( parse_inputs ( rest , dict . new ( ) ) )
3636 use # ( object , rest ) <- result . try ( do_parse_object ( rest , [ ] ) )
3737
3838 case rest |> list . is_empty {
3939 True -> Ok ( Root ( inputs : , object : ) )
40- False -> Error ( glazed_corn . InvalidFormat )
40+ False -> Error ( error . InvalidFormat )
4141 }
4242 }
4343 [ token . OpenBrace , .. rest ] -> {
4444 use # ( object , rest ) <- result . try ( do_parse_object ( rest , [ ] ) )
4545
4646 case rest |> list . is_empty {
4747 True -> Ok ( Root ( inputs : dict . new ( ) , object : ) )
48- False -> Error ( glazed_corn . InvalidFormat )
48+ False -> Error ( error . InvalidFormat )
4949 }
5050 }
5151
52- _ -> Error ( glazed_corn . InvalidFormat )
52+ _ -> Error ( error . InvalidFormat )
5353 }
5454}
5555
5656fn parse_inputs (
5757 tokens : List ( Token ) ,
5858 inputs : Dict ( String , Entry ) ,
59- ) -> Result ( # ( Dict ( String , Entry ) , List ( Token ) ) , glazed_corn . ParseError ) {
59+ ) -> Result ( # ( Dict ( String , Entry ) , List ( Token ) ) , error . ParseError ) {
6060 case tokens {
6161 [ token . CloseBrace , token . In , token . OpenBrace , .. rest ] ->
6262 # ( inputs , rest ) |> Ok
@@ -66,14 +66,14 @@ fn parse_inputs(
6666 parse_inputs ( rest , inputs |> dict . insert ( key , value ) )
6767 }
6868 [ token . Comment ( _ ) , .. rest ] -> parse_inputs ( rest , inputs )
69- [ ] -> Error ( glazed_corn . UnexpectedEof )
70- [ token , .. ] -> Error ( glazed_corn . UnexpectedToken ( token . to_string ( token ) ) )
69+ [ ] -> Error ( error . UnexpectedEof )
70+ [ token , .. ] -> Error ( error . UnexpectedToken ( token . to_string ( token ) ) )
7171 }
7272}
7373
7474fn parse_entry (
7575 tokens : List ( Token ) ,
76- ) -> Result ( # ( Entry , List ( Token ) ) , glazed_corn . ParseError ) {
76+ ) -> Result ( # ( Entry , List ( Token ) ) , error . ParseError ) {
7777 case tokens {
7878 [ token . Literal ( lit ) , .. rest ] -> # ( String ( lit ) , rest ) |> Ok
7979 [ token . Integer ( int ) , .. rest ] -> # ( Integer ( int ) , rest ) |> Ok
@@ -84,14 +84,14 @@ fn parse_entry(
8484 [ token . Null , .. rest ] -> # ( Null , rest ) |> Ok
8585 [ token . InputName ( input ) , .. rest ] -> # ( Input ( input ) , rest ) |> Ok
8686 [ token . Comment ( _ ) , .. rest ] -> parse_entry ( rest )
87- [ ] -> Error ( glazed_corn . UnexpectedEof )
88- [ token , .. ] -> Error ( glazed_corn . UnexpectedToken ( token . to_string ( token ) ) )
87+ [ ] -> Error ( error . UnexpectedEof )
88+ [ token , .. ] -> Error ( error . UnexpectedToken ( token . to_string ( token ) ) )
8989 }
9090}
9191
9292fn parse_object (
9393 tokens : List ( Token ) ,
94- ) -> Result ( # ( Entry , List ( Token ) ) , glazed_corn . ParseError ) {
94+ ) -> Result ( # ( Entry , List ( Token ) ) , error . ParseError ) {
9595 case do_parse_object ( tokens , [ ] ) {
9696 Ok ( # ( object , rest ) ) -> # ( object |> list . reverse |> Object , rest ) |> Ok
9797 Error ( err ) -> Error ( err )
@@ -101,7 +101,7 @@ fn parse_object(
101101fn do_parse_object (
102102 tokens : List ( Token ) ,
103103 object : List ( PairOrSpread ) ,
104- ) -> Result ( # ( List ( PairOrSpread ) , List ( Token ) ) , glazed_corn . ParseError ) {
104+ ) -> Result ( # ( List ( PairOrSpread ) , List ( Token ) ) , error . ParseError ) {
105105 case tokens {
106106 [ token . CloseBrace , .. rest ] -> # ( object , rest ) |> Ok
107107 [ token . Key ( key ) , .. rest ] -> {
@@ -113,28 +113,28 @@ fn do_parse_object(
113113 [ token . Spread , token . InputName ( input ) , .. rest ] ->
114114 do_parse_object ( rest , [ ObjectSpread ( input ) , .. object ] )
115115 [ token . Comment ( _ ) , .. rest ] -> do_parse_object ( rest , object )
116- [ ] -> Error ( glazed_corn . UnexpectedEof )
117- [ token , .. ] -> Error ( glazed_corn . UnexpectedToken ( token . to_string ( token ) ) )
116+ [ ] -> Error ( error . UnexpectedEof )
117+ [ token , .. ] -> Error ( error . UnexpectedToken ( token . to_string ( token ) ) )
118118 }
119119}
120120
121121fn parse_key_chain (
122122 tokens : List ( Token ) ,
123123 keys : List ( String ) ,
124- ) -> Result ( # ( List ( String ) , List ( Token ) ) , glazed_corn . ParseError ) {
124+ ) -> Result ( # ( List ( String ) , List ( Token ) ) , error . ParseError ) {
125125 case tokens {
126126 [ token . Equals , .. rest ] -> # ( keys |> list . reverse , rest ) |> Ok
127127 [ token . Chain , token . Key ( key ) , .. rest ] ->
128128 parse_key_chain ( rest , [ key , .. keys ] )
129129 [ token . Comment ( _ ) , .. rest ] -> parse_key_chain ( rest , keys )
130- [ ] -> Error ( glazed_corn . UnexpectedEof )
131- [ token , .. ] -> Error ( glazed_corn . UnexpectedToken ( token . to_string ( token ) ) )
130+ [ ] -> Error ( error . UnexpectedEof )
131+ [ token , .. ] -> Error ( error . UnexpectedToken ( token . to_string ( token ) ) )
132132 }
133133}
134134
135135fn parse_array (
136136 tokens : List ( Token ) ,
137- ) -> Result ( # ( Entry , List ( Token ) ) , glazed_corn . ParseError ) {
137+ ) -> Result ( # ( Entry , List ( Token ) ) , error . ParseError ) {
138138 case do_parse_array ( tokens , [ ] ) {
139139 Ok ( # ( array , rest ) ) -> # ( array |> list . reverse |> Array , rest ) |> Ok
140140 Error ( err ) -> Error ( err )
@@ -144,7 +144,7 @@ fn parse_array(
144144fn do_parse_array (
145145 tokens : List ( Token ) ,
146146 array : List ( EntryOrSpread ) ,
147- ) -> Result ( # ( List ( EntryOrSpread ) , List ( Token ) ) , glazed_corn . ParseError ) {
147+ ) -> Result ( # ( List ( EntryOrSpread ) , List ( Token ) ) , error . ParseError ) {
148148 case tokens {
149149 [ token . CloseBracket , .. rest ] -> # ( array , rest ) |> Ok
150150 [ token . Spread , token . InputName ( input ) , .. rest ] ->
0 commit comments