refactor: scaladocs-style commenting added in lexer
This commit is contained in:
parent
af909b1492
commit
c6b57be2c3
@ -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"),
|
||||||
|
Loading…
x
Reference in New Issue
Block a user