Scala Language
पार्सर संयोजक
खोज…
टिप्पणियों
ParseResult मामले
एक ParseResult
तीन स्वादों में आता है:
- मैच की शुरुआत और अगले चरित्र के मिलान के रूप में एक मार्कर के साथ सफलता।
- असफलता, एक मार्कर के साथ जहां मैच शुरू करने का प्रयास किया गया था। इस मामले में पार्सर उस स्थिति में वापस आ जाता है, जहां यह तब होगा जब पार्सिंग जारी रहेगी।
- त्रुटि, जो पार्सिंग को रोकती है। कोई बैकट्रैकिंग या आगे पार्सिंग नहीं होता है।
मूल उदाहरण
import scala.util.parsing.combinator._
class SimpleParser extends RegexParsers {
// Define a grammar rule, turn it into a regex, and apply it the input.
def word: Parser[String] = """[A-Z][a-z]+""".r ^^ { _.toString }
}
object SimpleParser extends SimpleParser {
val parseAlice = parse(word, "Alice went to Alamo Square.")
val parseBarb = parse(word, "barb went Upside Down.")
}
//Successfully finds a match
println(SimpleParser.parseAlice)
//Fails to find a match
println(SimpleParser.parseBarb)
आउटपुट निम्नानुसार होगा:
[1.6] parsed: Alice
res0: Unit = ()
[1.1] failure: string matching regex `[A-Z][a-z]+' expected but `b' found
barb went Upside Down.
^
[1.6]
Alice
उदाहरण में इंगित किया गया है कि मैच की शुरुआत स्थिति 1
, और मैच के लिए शेष मुट्ठी चरित्र 6
पर शुरू होता है।
Modified text is an extract of the original Stack Overflow Documentation
के तहत लाइसेंस प्राप्त है CC BY-SA 3.0
से संबद्ध नहीं है Stack Overflow