Я использую Scala комбинаторный синтаксический анализатор путем расширения scala.util.parsing.combinator.syntactical.StandardTokenParser
. Этот класс предоставляет следующие методы
def ident : Parser[String]
для парсинга идентификаторов и
def numericLit : Parser[String]
для парсинга числа (десятичное число я предполагаю),
Я использую scala.util.parsing.combinator.lexical.Scanners
от scala.util.parsing.combinator.lexical.StdLexical
для lexing.
Мое требование состоит в том, чтобы проанализировать шестнадцатеричное число (без 0x
префикс), который может иметь любую длину. В основном грамматика как: ([0-9]|[a-f])+
Я пытался интегрировать синтаксический анализатор Regex, но там существуют проблемы типа. Другие способы расширить определение разделителя лексического анализатора и грамматических правил приводят к маркеру, не найденному!