Skip to content

Commit 25eeaaf

Browse files
committed
remove parse function that panics
1 parent d736cbb commit 25eeaaf

File tree

2 files changed

+7
-26
lines changed

2 files changed

+7
-26
lines changed

eyg/src/examine/state.gleam

+7-14
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,7 @@ import eyg/analysis/inference/levels_j/contextual as j
22
import eyg/analysis/type_/binding
33
import eyg/analysis/type_/isomorphic as t
44
import eyg/compile
5-
import eyg/parse/lexer
6-
import eyg/parse/parser
5+
import eyg/parse
76
import eyg/runtime/cast
87
import eyg/runtime/interpreter/live
98
import eyg/runtime/value as v
@@ -35,12 +34,6 @@ pub fn source(state: State) {
3534
state.source
3635
}
3736

38-
fn parse(src) {
39-
src
40-
|> lexer.lex()
41-
|> parser.parse()
42-
}
43-
4437
pub fn lines(source) {
4538
list.reverse(do_lines(source, 0, 0, []))
4639
}
@@ -137,8 +130,8 @@ pub fn highlights(state, spans, acc) {
137130
}
138131

139132
pub fn information(state) {
140-
case parse(source(state)) {
141-
Ok(tree) -> {
133+
case parse.from_string(source(state)) {
134+
Ok(#(tree, _rest)) -> {
142135
let #(tree, spans) = annotated.strip_annotation(tree)
143136
let #(exp, bindings) = j.infer(tree, t.Empty, 0, j.new_state())
144137
let acc = annotated.strip_annotation(exp).1
@@ -169,8 +162,8 @@ pub fn interpret(state) {
169162
Ok(v.unit)
170163
}),
171164
])
172-
case parse(source(state)) {
173-
Ok(tree) -> {
165+
case parse.from_string(source(state)) {
166+
Ok(#(tree, _rest)) -> {
174167
let #(r, assignments) = live.execute(tree, h)
175168
let lines = list.map(lines(source(state)), fn(x) { #(x, []) })
176169
let output =
@@ -189,8 +182,8 @@ pub fn interpret(state) {
189182
}
190183

191184
pub fn compile(state) {
192-
case parse(source(state)) {
193-
Ok(tree) -> {
185+
case parse.from_string(source(state)) {
186+
Ok(#(tree, _rest)) -> {
194187
Ok(compile.to_js(tree))
195188
}
196189
Error(reason) -> Error(reason)

eyg/src/eyg/parse/parser.gleam

-12
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
import eyg/parse/token as t
22
import eygir/annotated as e
33
import gleam/int
4-
import gleam/io
54
import gleam/list
65
import gleam/option.{type Option, None, Some}
76
import gleam/result.{try}
@@ -12,17 +11,6 @@ pub type Reason {
1211
UnexpectedToken(token: t.Token, position: Int)
1312
}
1413

15-
pub fn parse(tokens) {
16-
case expression(tokens) {
17-
Ok(#(e, [])) -> Ok(e)
18-
Ok(#(_, leftover)) -> {
19-
io.debug(leftover)
20-
panic
21-
}
22-
Error(reason) -> Error(reason)
23-
}
24-
}
25-
2614
pub type Span =
2715
#(Int, Int)
2816

0 commit comments

Comments
 (0)