Skip to content

Commit 470d453

Browse files
committed
changed the union operator symbol to | instead of +
1 parent 3148cd9 commit 470d453

2 files changed

Lines changed: 7 additions & 7 deletions

File tree

src/rexen/grammar.gleam

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ import gleam/string
44
pub type OperatorVariant(prec) {
55
OParen
66
Asterix(prec)
7-
Plus(prec)
7+
Bar(prec)
88
QMark(prec)
99
}
1010

@@ -21,7 +21,7 @@ fn tokenize(input: List(String), tokens: List(Token)) -> List(Token) {
2121
let tok = case char {
2222
"*" -> Operator(Asterix(3))
2323
"?" -> Operator(QMark(2))
24-
"+" -> Operator(Plus(1))
24+
"|" -> Operator(Bar(1))
2525
"(" -> Operator(OParen)
2626
")" -> CParen
2727
_ -> Letter(char)
@@ -42,7 +42,7 @@ pub fn to_string(tokens: List(Token), output: String) -> String {
4242
case variant {
4343
OParen -> to_string(rest, string.append(output, "("))
4444
Asterix(_) -> to_string(rest, string.append(output, "*"))
45-
Plus(_) -> to_string(rest, string.append(output, "+"))
45+
Bar(_) -> to_string(rest, string.append(output, "+"))
4646
QMark(_) -> to_string(rest, string.append(output, "?"))
4747
}
4848
}
@@ -85,7 +85,7 @@ fn shunt_loop(
8585
Operator(opvar) -> {
8686
case opvar {
8787
OParen -> shunt_loop(rest, output, list.prepend(stack, opvar))
88-
Asterix(p) | Plus(p) | QMark(p) -> {
88+
Asterix(p) | Bar(p) | QMark(p) -> {
8989
let #(o, s) = handle_operator(output, stack, opvar, p)
9090
shunt_loop(rest, o, s)
9191
}
@@ -117,7 +117,7 @@ fn handle_operator(
117117
[opvar, ..rest] -> {
118118
case opvar {
119119
OParen -> #(output, list.prepend(stack, variant))
120-
Asterix(p) | Plus(p) | QMark(p) -> {
120+
Asterix(p) | Bar(p) | QMark(p) -> {
121121
case precedence > p {
122122
True -> {
123123
#(output, list.prepend(stack, variant))

src/rexen/nfa/thompson.gleam

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ import gleam/dict
22
import gleam/int
33
import gleam/list
44
import gleam/string
5-
import rexen/grammar.{type Token, Asterix, Letter, Operator, Plus, QMark}
5+
import rexen/grammar.{type Token, Asterix, Letter, Operator, Bar, QMark}
66
import rexen/nfa/machine
77
import rexen/nfa/state
88

@@ -58,7 +58,7 @@ fn to_nfa_loop(
5858
Ok(new_stack) -> to_nfa_loop(rest, new_stack)
5959
}
6060
}
61-
Plus(_) -> {
61+
Bar(_) -> {
6262
case two_step_stack(stack, union) {
6363
Error(err) -> {
6464
Error(

0 commit comments

Comments
 (0)