refactor: implemented labelAndExplain(), combining label and explain, and... #9

Merged
gc1523 merged 18 commits from error-messages into master 2025-02-06 20:30:26 +00:00
2 changed files with 114 additions and 25 deletions
Showing only changes of commit bd779931b6 - Show all commits

View File

@@ -18,9 +18,9 @@ object parser {
import lexer.{ident, integer, charLit, stringLit, negateCheck, errTokens}
import ast._
//error extensions
// error extensions
extension [A](p: Parsley[A]) {
//combines label and explain together into one function call
// combines label and explain together into one function call
def labelAndExplain(label: String, explanation: String): Parsley[A] = {
p.label(label).explain(explanation)
}
@@ -28,9 +28,10 @@ object parser {
t match {
case LabelType.Expr =>
labelWithType(t).explain(
"a valid expression can start with: null, literals, identifiers, unary operators, or parentheses. " +
"Expressions can also contain array indexing and binary operators. " +
"Pair extraction is not allowed in expressions, only in assignments.")
"a valid expression can start with: null, literals, identifiers, unary operators, or parentheses. " +
"Expressions can also contain array indexing and binary operators. " +
"Pair extraction is not allowed in expressions, only in assignments."
)
case _ => labelWithType(t)
}
}