refactor: scaladocs-style commenting added in lexer

This commit is contained in:
Guy C 2025-02-07 15:37:33 +00:00
parent af909b1492
commit c6b57be2c3

View File

@ -6,6 +6,8 @@ import parsley.token.{Basic, Lexer}
import parsley.token.descriptions.* import parsley.token.descriptions.*
import parsley.token.errors._ import parsley.token.errors._
/** ErrorConfig for producing more informative error messages
*/
val errConfig = new ErrorConfig { val errConfig = new ErrorConfig {
override def labelSymbol = Map( override def labelSymbol = Map(
"!=" -> Label("binary operator"), "!=" -> Label("binary operator"),
@ -37,6 +39,9 @@ val errConfig = new ErrorConfig {
) )
} }
object lexer { object lexer {
/** Language description for the WACC lexer
*/
private val desc = LexicalDesc.plain.copy( private val desc = LexicalDesc.plain.copy(
nameDesc = NameDesc.plain.copy( nameDesc = NameDesc.plain.copy(
identifierStart = Basic(c => c.isLetter || c == '_'), identifierStart = Basic(c => c.isLetter || c == '_'),
@ -74,6 +79,8 @@ object lexer {
) )
) )
/** Token definitions for the WACC lexer
*/
private val lexer = Lexer(desc, errConfig) private val lexer = Lexer(desc, errConfig)
val ident = lexer.lexeme.names.identifier val ident = lexer.lexeme.names.identifier
val integer = lexer.lexeme.integer.decimal32[Int] val integer = lexer.lexeme.integer.decimal32[Int]
@ -82,6 +89,8 @@ object lexer {
val stringLit = lexer.lexeme.string.ascii val stringLit = lexer.lexeme.string.ascii
val implicits = lexer.lexeme.symbol.implicits val implicits = lexer.lexeme.symbol.implicits
/** Tokens for producing lexer-backed error messages
*/
val errTokens = Seq( val errTokens = Seq(
lexer.nonlexeme.names.identifier.map(v => s"identifier $v"), lexer.nonlexeme.names.identifier.map(v => s"identifier $v"),
lexer.nonlexeme.integer.decimal32[Int].map(n => s"integer $n"), lexer.nonlexeme.integer.decimal32[Int].map(n => s"integer $n"),