هل يستطيع أحد مساعدتي في تحويل هذا ANTLR 2.0 النحوي ملف ANTLR 3.0 syntax ؟

StackOverflow https://stackoverflow.com/questions/244936

  •  05-07-2019
  •  | 
  •  

سؤال

لقد حولت 'سهلة' أجزاء (جزء @رأس @الأعضاء declerations الخ) ، ولكن منذ أنا جديدة على Antlr لدي بجد وقت تحويل الشجرة البيانات إلخ.

يمكنني استخدام التالية الهجرة دليل.

النحوي ملف يمكن العثور عليها هنا....

أدناه يمكنك أن تجد بعض الأمثلة حيث انني واجهت مشاكل:

على سبيل المثال لدي مشاكل مع:

n3Directive0!:
                d:AT_PREFIX ns:nsprefix u:uriref
                {directive(#d, #ns, #u);}
                ;

أو

propertyList![AST subj]
        : NAME_OP! anonnode[subj] propertyList[subj]
        | propValue[subj] (SEMI propertyList[subj])?
        |               // void : allows for [ :a :b ] and empty list "; .".
        ;

propValue [AST subj]
        :  v1:verb objectList[subj, #v1]
                // Reverse the subject and object
        |  v2:verbReverse subjectList[subj, #v2]
        ;

subjectList![AST oldSub, AST prop]
        : obj:item { emitQuad(#obj, prop, oldSub) ; }
                (COMMA subjectList[oldSub, prop])? ;

objectList! [AST subj, AST prop]
        : obj:item { emitQuad(subj,prop,#obj) ; }
                (COMMA objectList[subj, prop])?
    | // Allows for empty list ", ."
    ; 
هل كانت مفيدة؟

المحلول

n3Directive0!:
                d=AT_PREFIX ns=nsprefix u=uriref
                {directive($d, $ns, $u);}
                ;
  • لديك لاستخدام '=' للمهام.
  • الرموز ثم يمكن استخدامها في '$tokenname.getText()', ...
  • نتائج قاعدة يمكن استخدامها بعد ذلك في التعليمات البرمجية الخاصة بك كما 'rulename.نتيجة'
  • إذا كان لديك قواعد بعد أن أعلنت النتيجة الأسماء لديك لاستخدام هذه الأسماء iso.
    'النتيجة'.
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top