From e03012cc77fd8c0b82e618cdd19301259bcbb8b1 Mon Sep 17 00:00:00 2001 From: Katja Goltsova <katja.goltsova@protonmail.com> Date: Tue, 4 Oct 2022 14:51:45 +0200 Subject: [PATCH] Allow more characters in identifiers --- lisa-utils/src/main/scala/lisa/utils/Parser.scala | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/lisa-utils/src/main/scala/lisa/utils/Parser.scala b/lisa-utils/src/main/scala/lisa/utils/Parser.scala index 7b6eda22..279590a9 100644 --- a/lisa-utils/src/main/scala/lisa/utils/Parser.scala +++ b/lisa-utils/src/main/scala/lisa/utils/Parser.scala @@ -153,6 +153,7 @@ object Parser { // TODO: add positions ==> ranges to tokens type Position = Unit + private val allowedIdentifierCharacters = elem(_.isLetter) | elem(_.isDigit) | oneOf("_\\@#$%^&*><:|_+-=") private val schematicSymbol = "'" private val lexer = Lexer( @@ -174,11 +175,11 @@ object Parser { elem(';') |> SemicolonToken, elem('⊢') | word("|-") |> SequentToken, many1(whiteSpace) |> SpaceToken, - word(schematicSymbol) ~ many1(elem(_.isLetter) | elem('_') | elem(_.isDigit) | elem('\'')) |> { cs => + word(schematicSymbol) ~ many1(allowedIdentifierCharacters) |> { cs => // drop the ' SchematicToken(cs.drop(1).mkString) }, - many1(elem(_.isLetter) | elem('_') | elem(_.isDigit)) |> { cs => ConstantToken(cs.mkString) } + many1(allowedIdentifierCharacters) |> { cs => ConstantToken(cs.mkString) } ) onError { (cs, _) => throw ParserException(s"Unexpected input: ${cs.mkString}") } -- GitLab