0

これはクラス用なので、明らかな間違いでない限り、答えだけではなく、ヒントや何かを読むことをお勧めします。パーサーが DATE と VARCHAR の間で混乱しています。どちらも目盛り (') で始まり、目盛りで終わるためだと思います。このままにしておくために必要な構文を変更することはできません

def atype: Parser[Any] =  "(?i)INTEGER".r | "(?i)REAL".r | "(?i)BOOLEAN".r | "(?i)VARCHAR".r  | "(?i)DATE".r 

def typeDate: Parser[Value] = "'" ~ dayOrMonth ~"/"~dayOrMonth~"/"~year ~ "'" ^^
        {case _ ~ a ~ _ ~ b ~ _ ~ c ~ _ => new typeDate(a,b,c)}

def dayOrMonth: Parser[String]= "([0-9][0-9])".r 

def year:Parser[String] = "([0-9][0-9][0-9][0-9])".r

def stringExpression: Parser[Value] = "'" ~> string <~ "'"  ^^
        {case a => new stringExpression(a)}
def string: Parser[Any] = letters

def letters: Parser[Any] =  """([a-zA-Z])+""" r
4

1 に答える 1

0

問題の文字列は次のように定義する必要があることがわかりました

def string: Parser[Any] = """([a-zA-Z0-9])+""" r

于 2012-11-04T15:56:24.087 に答える