ນີ້ແມ່ນຄໍາສັ່ງ yaccplan9 ທີ່ສາມາດດໍາເນີນການໄດ້ໃນ OnWorks ຜູ້ໃຫ້ບໍລິການໂຮດຕິ້ງຟຣີໂດຍໃຊ້ຫນຶ່ງໃນຫຼາຍໆບ່ອນເຮັດວຽກອອນໄລນ໌ຂອງພວກເຮົາເຊັ່ນ Ubuntu Online, Fedora Online, Windows online emulator ຫຼື MAC OS online emulator
ໂຄງການ:
NAME
yacc - ຍັງ compiler-compiler ອື່ນ
ສະຫຼຸບສັງລວມ
yacc [ ທາງເລືອກ ... ] grammar
ລາຍລະອຽດ
Yacc ປ່ຽນໄວຍາກອນທີ່ບໍ່ມີບໍລິບົດ ແລະລະຫັດການແປເປັນຊຸດຂອງຕາຕະລາງສໍາລັບ an
LR(1) parser ແລະນັກແປ. ໄວຍາກອນອາດຈະບໍ່ຊັດເຈນ; ກົດລະບຽບກ່ອນຫນ້າທີ່ລະບຸໄວ້ແມ່ນ
ໃຊ້ເພື່ອທໍາລາຍຄວາມບໍ່ແນ່ນອນ.
ໄຟລ໌ຜົນຜະລິດໄດ້, y.tab.c, ຕ້ອງໄດ້ຮັບການສັງລວມໂດຍ C compiler ການຜະລິດໂຄງການນີ້
ໂຄງການຕ້ອງໄດ້ຮັບການໂຫຼດທີ່ມີຫນ້າທີ່ການວິເຄາະ lexical, yylex(void) (ມັກຈະສ້າງໂດຍ
lex(1)), ມີ ກ ຫຼັກ(int ໂຕ້ຖຽງ, char *argv[]) ໂຄງການ, ແລະມີການຈັດການຜິດປົກກະຕິ,
yyerror(char*).
ທາງເລືອກແມ່ນ
-o output ຜົນຜະລິດໂດຍກົງກັບໄຟລ໌ທີ່ກໍານົດແທນທີ່ຈະເປັນ y.tab.c.
-Dn ສ້າງໄຟລ໌ y.debug, ປະກອບດ້ວຍຂໍ້ຄວາມວິນິດໄສ. ເພື່ອລວມພວກມັນເຂົ້າໃນ
parser, ລວບລວມມັນມີສັນຍາລັກ preprocessor yydebug ກໍານົດ. ປະລິມານຂອງ
ຜົນການວິນິໄສຈາກຕົວແຍກວິເຄາະແມ່ນຖືກຄວບຄຸມໂດຍຄ່າ n. ມູນຄ່າ 0 ລາຍງານ
ຄວາມຜິດພາດ; 1 ບົດລາຍງານການຫຼຸດຜ່ອນ; ຄ່າທີ່ສູງກວ່າ (ສູງສຸດ 4) ລວມມີຂໍ້ມູນເພີ່ມເຕີມ
ກ່ຽວກັບການຫັນປ່ຽນຂອງລັດ.
-v ສ້າງໄຟລ໌ y. ຜົນຜະລິດ, ປະກອບດ້ວຍຄໍາອະທິບາຍຂອງຕາຕະລາງການແຍກແລະຂອງ
ຂໍ້ຂັດແຍ່ງທີ່ເກີດຂື້ນຈາກຄວາມບໍ່ແນ່ນອນໃນໄວຍາກອນ.
-d ສ້າງໄຟລ໌ y.tab.h, ບັນຈຸ #ກໍານົດ ຖະແຫຼງການທີ່ກ່ຽວຂ້ອງ yacc- ມອບຫມາຍ
'ລະຫັດ token' ກັບຜູ້ໃຊ້ປະກາດ 'ຊື່ token'. ລວມມັນຢູ່ໃນໄຟລ໌ແຫຼ່ງ
ອື່ນກ່ວາ y.tab.c ເພື່ອໃຫ້ການເຂົ້າເຖິງລະຫັດ token.
-s ຕົ້ນກໍາເນີດ ປ່ຽນຄຳນຳໜ້າຂອງຊື່ໄຟລ໌ y.tab.c, y.tab.h, y.debug, ແລະ y. ຜົນຜະລິດ to
ຕົ້ນກໍາເນີດ.
-S ຂຽນຕົວແຍກທີ່ໃຊ້ Stdio ແທນທີ່ ພິມ ປົກກະຕິໃນ libc.
-l ປິດການນຳໃຊ້ຄຳສັ່ງ #line ໃນຕົວແຍກວິເຄາະທີ່ສ້າງຂຶ້ນ.
-a ສ້າງ parser ທີ່ເອົາ argument ຂອງປະເພດ Yyarg ແລະຜ່ານ argument ນີ້
ຕໍ່ກັບແຕ່ລະຄໍາຮ້ອງຂອງຫນ້າທີ່ lexer, yylex. Yyarg ມີຕໍ່ຕົວຢ່າງ
ລັດ ແລະສະມາຊິກທີ່ເບິ່ງເຫັນໂດຍຜູ້ໃຊ້ດຽວ, arg, ປະເພດ void*.
ສະເພາະຂອງ yacc ຕົວຂອງມັນເອງເປັນສິ່ງຈໍາເປັນຄືກັນກັບສະບັບ UNIX ທີ່ອະທິບາຍໄວ້ໃນ
ເອກະສານອ້າງອີງທີ່ໄດ້ກ່າວມາຂ້າງລຸ່ມນີ້. ນອກຈາກ -D ທາງເລືອກ, ຄວາມແຕກຕ່າງທີ່ກ່ຽວຂ້ອງຕົ້ນຕໍແມ່ນ:
ການໂຕ້ຕອບກັບສະພາບແວດລ້ອມ C ແມ່ນໂດຍຄ່າເລີ່ມຕົ້ນໂດຍຜ່ານ ແທນທີ່ຈະ
1 the -S ທາງເລືອກທີ່ຈະກັບຄືນໄປບ່ອນນີ້.
parser ຍອມຮັບຂໍ້ຄວາມປ້ອນ UTF (ເບິ່ງ utf(7)), ເຊິ່ງມີຜົນກະທົບຄູ່.
ຫນ້າທໍາອິດ, ມູນຄ່າກັບຄືນຂອງ yylex() ບໍ່ເຫມາະໃນ a ສັ້ນ; ອັນທີສອງ, ການເລີ່ມຕົ້ນ
ຄ່າສຳລັບທີ່ບໍ່ແມ່ນເຄື່ອງໝາຍປາຍທາງໃນປັດຈຸບັນແມ່ນ 0xE000 ຫຼາຍກວ່າ 257.
parser ທີ່ສ້າງຂຶ້ນສາມາດ recursive: ການປະຕິບັດສາມາດໂທຫາ yyparse, ສໍາລັບການຍົກຕົວຢ່າງ
ປະຕິບັດປະເພດຂອງ #include ຖະແຫຼງການໃນນາຍພາສາ.
ສຸດທ້າຍ, ບາງການເຮັດວຽກພາຍໃນທີ່ບໍ່ມີເອກະສານຂອງ parser ໄດ້ຖືກປ່ຽນແປງ, ເຊິ່ງ
ອາດຈະສົ່ງຜົນກະທົບຕໍ່ບັນດາໂຄງການທີ່ຮູ້ຫຼາຍເກີນໄປກ່ຽວກັບໂຄງສ້າງຂອງມັນ.
ໃຊ້ yaccplan9 ອອນລາຍໂດຍໃຊ້ບໍລິການ onworks.net