Skip to content

Commit 1f81ec7

Browse files
program intake is working well
1 parent cc55bd7 commit 1f81ec7

File tree

1 file changed

+34
-8
lines changed

1 file changed

+34
-8
lines changed

STRICT/cli.lm

Lines changed: 34 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ config-strict := Trueu8;
1818
config-preprocess := Trueu8;
1919
config-target := 'tmp.s_s;
2020

21-
type CompileMode ModeTokenize | ModeParse | ModeTypecheck | ModeCompile;
21+
type CompileMode ModeTokenize | ModeParse | ModePreprocess | ModeTypecheck | ModeCompile;
2222
config-mode := (: ModeCompile CompileMode);
2323

2424
main := λ(: argc U64)(: argv U8[][]).(tail(
@@ -29,6 +29,7 @@ main := λ(: argc U64)(: argv U8[][]).(tail(
2929
()
3030
('--tokenize_s (set config-mode ModeTokenize))
3131
('--parse_s (set config-mode ModeParse))
32+
('--preprocess_s (set config-mode ModePreprocess))
3233
('--typecheck_s (set config-mode ModeTypecheck))
3334
('--compile_s (set config-mode ModeCompile))
3435
('--strict_s (set config-strict Trueu8))
@@ -58,10 +59,9 @@ main := λ(: argc U64)(: argv U8[][]).(tail(
5859
(while (==( continue Trueu8 )) (match input (
5960
()
6061
( SNil (set continue Falseu8) )
61-
( (SCons( SNil rst )) (set input rst) )
62-
( (SCons( l rst )) (tail( (print l) (set input rst) )) )
63-
( (SCons( (SAtom( fp )) rst )) (tail( (cli-intake fp) (set input rst) )))
64-
( (SAtom( fp )) (tail( (cli-intake fp) (set continue False) )))
62+
( (SCons( rst SNil )) (set input rst) )
63+
( (SCons( rst (SAtom( fp )) )) (tail( (cli-intake fp) (set input rst) )))
64+
( (SAtom( fp )) (tail( (cli-intake fp) (set continue Falseu8) )))
6565
)))
6666

6767

@@ -88,7 +88,33 @@ main := λ(: argc U64)(: argv U8[][]).(tail(
8888
));
8989

9090
cli-intake := λ(: fp U8[]) . (: (tail(
91-
(print 'Intake:\s_s)
92-
(print fp)
93-
(print '\n_s)
91+
(match config-mode (
92+
()
93+
(ModeTokenize (tail(
94+
(print 'Tokenize:\s_s)
95+
(print fp)
96+
(print '\n_s)
97+
)))
98+
(ModeParse (tail(
99+
(print 'Parse:\s_s)
100+
(print fp)
101+
(print '\n_s)
102+
)))
103+
(ModePreprocess (tail(
104+
(print 'Preprocess:\s_s)
105+
(print fp)
106+
(print '\n_s)
107+
)))
108+
(ModeTypecheck (tail(
109+
(print 'Typecheck:\s_s)
110+
(print fp)
111+
(print '\n_s)
112+
)))
113+
(ModeCompile (tail(
114+
(print 'Compile:\s_s)
115+
(print fp)
116+
(print '\n_s)
117+
)))
118+
))
119+
()
94120
)) Nil);

0 commit comments

Comments
 (0)