feat: implement lexer #5

Merged
gk1623 merged 5 commits from lexer into master 2025-02-02 13:37:37 +00:00
3 changed files with 6 additions and 17 deletions
Showing only changes of commit 24b83c8448 - Show all commits

View File

@@ -1,20 +1,8 @@
package wacc package wacc
import parsley.{Parsley, Result} import parsley.Result
import parsley.expr.chain
import lexer.implicits.implicitSymbol
import lexer.{integer, fully}
object parser { object parser {
def parse(input: String): Result[String, BigInt] = parser.parse(input) def parse(input: String): Result[String, BigInt] = parser.parse(input)
private val parser = fully(expr) private val parser = lexer.fully(???)
private val add = (x: BigInt, y: BigInt) => x + y
private val sub = (x: BigInt, y: BigInt) => x - y
private lazy val expr: Parsley[BigInt] =
chain.left1(integer | "(" ~> expr <~ ")")(
("+" as add) | ("-" as sub)
)
} }