मैं पर्ल के लिए बहुत नया हूं और ऑपरेटर के साथ एक डोमेन विशिष्ट भाषा बनाना चाहता हूं जिसमें नई पर्ल 6 व्याकरण सुविधाओं का उपयोग करने की प्राथमिकता है। उदाहरण के लिए सही तरीके से "1 + 2 * 6" पार्स करने के लिए।ऑपरेटर प्राथमिकता नियमों के साथ पर्ल 6 व्याकरण का उदाहरण
अब तक जो दस्तावेज मैंने पाया है (उदा। this) को प्राथमिकता घोषणाओं के साथ ऑपरेटरों के व्याकरण नियमों के साथ उदाहरण नहीं मिला है।
मैं इस बहुत ही सरल उदाहरण
use v6;
#use Grammar::Tracer;
grammar TestGrammar {
token TOP {
<digit> <infix> <digit>
}
token infix:sym<times> is equiv(&infix:<*>) { <sym> }
}
sub MAIN() {
my $text = "1 times 2" ;
say $text ;
my $match = TestGrammar.parse($text);
say $match;
}
यह मैं
No such method 'infix' for invocant of type 'TestGrammar'
मैं सिर्फ एक अमूर्त वाक्य रचना पेड़ का निर्माण करना चाहते हैं देता है।
हां, यह मानक दृष्टिकोण है जिसे मैं टालने की उम्मीद कर रहा था। अंत में मैं अपने कई ऑपरेटरों (पोस्टक्रिकमफिक्स, सूची, आदि) को परिभाषित करना चाहता था और सोचा था कि पर्ल इसे संभालेगा। क्या आपको पता है कि [तोते व्याकरण इंजन] (http://docs.parrot.org/parrot/latest/html/docs/book/pct/ch04_pge.pod.html) के बारे में भी यही सच है? – user2660278
क्या पर्ल 6 से एचएलएल :: व्याकरण से व्याकरण प्राप्त होता है, जो आपको भी अनुकूल कर सकता है। आप पर्ल 6 आईआरसी पर पूछने का भी प्रयास कर सकते हैं - http://perl6.org/community/irc – dwarring
अद्यतन: एनक्यूपी टूल-चेन का उपयोग करके एचएलएल और डोमेन विशिष्ट भाषाओं को लागू करने के लिए अब कुछ दस्तावेज और काम किए गए उदाहरण हैं! Http://edumentab.github.io/rakudo-and-nqp-internals-course/slides-day1.pdf देखें। काम किए गए उदाहरण पीपी 118 – dwarring