/ / "UpdateDet" को कीवर्ड "अपडेट" के रूप में पहचाना नहीं जाना चाहिए - रेगेक्स, स्कैला, पार्सिंग, पार्सर-संयोजक, संयोजक

"अपडेटडेट" को कीवर्ड "अपडेट" के रूप में पहचाना नहीं जाना चाहिए - रेगेक्स, स्कैला, पार्सिंग, पार्सर-कंपाइनेटर, संयोजक

इस कोड के साथ

import scala.util.parsing.combinator.JavaTokenParsers

class TestKeywords  extends JavaTokenParsers {

def keywords: Parser[String] = "update"

def identifier: Parser[String] = not(keywords) ~> """[a-zA-Z0-9_$#]+""".r

def script: Parser[Any] = repsep(identifier,",")
}

object TestKeywordsApp extends TestKeywords with App {
val cmd = """updateDet,update"""
parseAll(script,
cmd.stripMargin) match {
case Success(lup, _) => println(lup)
case x => println(x)
}
}

मुझे त्रुटि मिलती है

[1.1] विफलता: स्ट्रिंग मिलान regex z" expected butयू "मिला

updateDet, अद्यतन

इसे कैसे जोड़ेंगे? अद्यतनडेट को कीवर्ड के रूप में पहचाना नहीं जाना चाहिए

स्कैला 2.10.2

उत्तर:

जवाब के लिए 0 № 1

शब्द सीमाएं शायद - अमित जोकी

विस्तार करने के लिए, आपने कहा है identifier है not(keywords) कुछ पात्रों के बाद। परंतु updateDet ऐसा नहीं है - यह एक कीवर्ड से शुरू होता है। शायद आपको यह घोषणा करनी चाहिए कि एक शब्द एक शब्द सीमा के साथ समाप्त होता है (regex b)? - एलएमएम