GoGPT Best VPN GoSearch

OnWorks favicon

byacc - ອອນລາຍໃນຄລາວ

ແລ່ນ byacc ໃນ OnWorks ຜູ້ໃຫ້ບໍລິການໂຮດຕິ້ງຟຣີຜ່ານ Ubuntu Online, Fedora Online, Windows online emulator ຫຼື MAC OS online emulator

ນີ້ແມ່ນຄໍາສັ່ງ byacc ທີ່ສາມາດດໍາເນີນການໄດ້ໃນ OnWorks ຜູ້ໃຫ້ບໍລິການໂຮດຕິ້ງຟຣີໂດຍໃຊ້ຫນຶ່ງໃນຫຼາຍໆບ່ອນເຮັດວຽກອອນໄລນ໌ຂອງພວກເຮົາເຊັ່ນ Ubuntu Online, Fedora Online, Windows online emulator ຫຼື MAC OS online emulator

ໂຄງການ:

NAME


Yacc - ເປັນ ລລລ(1) parser generator

ສະຫຼຸບສັງລວມ


yacc [ -BdgilLPrtvVy ] [ -b file_prefix ] [ -o output_file ] [ -p symbol_prefix ] ຊື່​ເອ​ກະ​ສານ

ລາຍລະອຽດ


Yacc ອ່ານສະເພາະໄວຍາກອນໃນໄຟລ໌ ຊື່​ເອ​ກະ​ສານ ແລະສ້າງ ລລລ(1) parser
ສໍາລັບມັນ. ຕົວວິເຄາະປະກອບດ້ວຍຊຸດຂອງ ລລລ(1​) ຕາ​ຕະ​ລາງ​ການ​ວິ​ເຄາະ​ແລະ​ປົກ​ກະ​ຕິ​ຂອງ​ຄົນ​ຂັບ​ໄດ້​
ຂຽນໃນພາສາການຂຽນໂປລແກລມ C. Yacc ປົກກະຕິຂຽນຕາຕະລາງ parse ແລະ
driver routine ກັບໄຟລ໌ y.tab.c.

ຕົວເລືອກຕໍ່ໄປນີ້ສາມາດໃຊ້ໄດ້:

-b file_prefix
ໄດ້ -b ທາງ​ເລືອກ​ການ​ປ່ຽນ​ແປງ​ຄໍາ​ນໍາ​ຫນ້າ prepended ກັບ​ຊື່​ໄຟລ​໌​ຜົນ​ຜະ​ລິດ​ເປັນ​ສະ​ຕ​ຣິງ​
ຫມາຍເຖິງ file_prefix. ຄໍານໍາຫນ້າເລີ່ມຕົ້ນແມ່ນຕົວອັກສອນ y.

-B ສ້າງ backtracking parser (compile-type configuration for btyac).

-d ໄດ້ -d ທາງເລືອກເຮັດໃຫ້ໄຟລ໌ຫົວ y.tab.h ຈະຖືກຂຽນ. ມັນປະກອບດ້ວຍ #define's
ສໍາລັບຕົວລະບຸ token.

-g ໄດ້ -g ທາງ​ເລືອກ​ເຮັດ​ໃຫ້​ມີ​ລາຍ​ລະ​ອຽດ​ຮູບ​ພາບ​ຂອງ​ການ​ຜະ​ລິດ​ໄດ້​ ລລລ(1) parser ຈະ
ຂຽນໃສ່ໄຟລ໌ y.dot ໃນຮູບແບບ graphviz, ພ້ອມທີ່ຈະດໍາເນີນການໂດຍ ຈຸດ(1).

-i ໄດ້ -i ທາງເລືອກເຮັດໃຫ້ໄຟລ໌ສ່ວນຫົວເພີ່ມເຕີມ y.tab.i ຈະຖືກຂຽນ. ມັນປະກອບດ້ວຍ
ຖະແຫຼງການພາຍນອກ ແລະ ເພີ່ມເຕີມ #define's ຕາມຄວາມຈໍາເປັນ ເພື່ອສ້າງແຜນທີ່ແບບດັ້ງເດີມ
yacc yy- ຊື່​ທີ່​ນໍາ​ຫນ້າ​ກັບ​ອັນ​ໃດ​ກໍ​ຕາມ​ -p ທາງເລືອກອາດຈະລະບຸ. ໄຟລ໌ລະຫັດ, e.g.
y.tab.c ຖືກແກ້ໄຂເພື່ອ #include ໄຟລ໌ນີ້ເຊັ່ນດຽວກັນກັບ y.tab.h ໄຟລ​໌​, ການ​ບັງ​ຄັບ​ໃຊ້​
ການນໍາໃຊ້ທີ່ສອດຄ່ອງຂອງສັນຍາລັກທີ່ກໍານົດໄວ້ໃນໄຟລ໌ເຫຼົ່ານັ້ນ.

ໄຟລ໌ສ່ວນຫົວເສີມເຮັດໃຫ້ມັນງ່າຍກວ່າທີ່ຈະແຍກການລວບລວມຂອງ lex- ແລະ
yacc-files.

-l ຖ້າ -l ທາງ​ເລືອກ​ແມ່ນ​ບໍ່​ໄດ້​ລະ​ບຸ​ໄວ້​, yacc ຈະແຊກ #ສາຍ ຄໍາແນະນໍາໃນການຜະລິດ
ລະຫັດ. ໄດ້ #ສາຍ ຄໍາສັ່ງໃຫ້ C compiler ກ່ຽວຂ້ອງກັບຄວາມຜິດພາດໃນລະຫັດທີ່ສ້າງຂຶ້ນ
ລະຫັດຕົ້ນສະບັບຂອງຜູ້ໃຊ້. ຖ້າ -l ທາງ​ເລືອກ​ແມ່ນ​ໄດ້​ລະ​ບຸ​ໄວ້​, yacc ຈະບໍ່ໃສ່
#ສາຍ ທິດທາງ. #ສາຍ ຄໍາສັ່ງທີ່ລະບຸໄວ້ໂດຍຜູ້ໃຊ້ຈະຖືກຮັກສາໄວ້.

-L ເຮັດ​ໃຫ້​ການ​ປະ​ມວນ​ຜົນ​ຕໍາ​ແຫນ່ງ​, ຕົວ​ຢ່າງ​, "% ສະ​ຖານ​ທີ່​" (ການ​ຕັ້ງ​ຄ່າ​ການ​ສັງ​ລວມ​ປະ​ເພດ​ສໍາ​ລັບ​ການ​
btyac).

-o output_file
ລະບຸຊື່ໄຟລ໌ສໍາລັບໄຟລ໌ parser. ຖ້າທາງເລືອກນີ້ບໍ່ໄດ້ຖືກມອບໃຫ້, ຜົນຜະລິດ
filename ແມ່ນຄໍານໍາຫນ້າຂອງໄຟລ໌ concatenated ກັບ suffix ໄຟລ໌, ຕົວຢ່າງ, y.tab.c. ນີ້
overrides ໄດ້ -b ທາງເລືອກ.

-p symbol_prefix
ໄດ້ -p ທາງ​ເລືອກ​ຈະ​ປ່ຽນ​ຄໍາ​ນໍາ​ຫນ້າ​ຕໍ່​ຫນ້າ​ກັບ​ສັນ​ຍາ​ລັກ​ທີ່​ສ້າງ​ໂດຍ yacc ກັບ​ສະ​ຕ​ຣິງ​
ຫມາຍເຖິງ symbol_prefix. ຄຳນຳໜ້າເລີ່ມຕົ້ນແມ່ນສະຕຣິງ yy.

-P ສ້າງ parser reentrant, ຕົວຢ່າງ, “%pure-parser”.

-r ໄດ້ -r ສາເຫດທາງເລືອກ yacc ເພື່ອຜະລິດໄຟລ໌ແຍກຕ່າງຫາກສໍາລັບລະຫັດແລະຕາຕະລາງ. ລະຫັດ
ໄຟລ໌ມີຊື່ y.code.c, ແລະໄຟລ໌ຕາຕະລາງແມ່ນມີຊື່ y.tab.c. ຄຳ ນຳ ໜ້າy.” ສາມາດເປັນ
overridden ການ ນໍາ ໃຊ້ -b ທາງເລືອກ.

-s ສະກັດກັ້ນ "#ກໍານົດ"ຄໍາຖະແຫຼງທີ່ສ້າງຂຶ້ນສໍາລັບຕົວຫນັງສືສະຕຣິງໃນ "%ໂທເຄັນ"ຖະແຫຼງການ,
ເພື່ອໃຫ້ກົງກັບຕົ້ນສະບັບຫຼາຍຂື້ນ yacc ພຶດຕິ ກຳ.

ປົກກະຕິເມື່ອ yacc ເຫັນເສັ້ນເຊັ່ນ

%token OP_ADD "ADD"

ມັນສັງເກດເຫັນວ່າ "ADD" ທີ່ຍົກມາແມ່ນຕົວລະບຸ C ທີ່ຖືກຕ້ອງ, ແລະສ້າງ #define not.
ພຽງແຕ່ສໍາລັບ OP_ADD, ແຕ່ສໍາລັບ ADD ເຊັ່ນດຽວກັນ, ຕົວຢ່າງ,

#ກໍານົດ OP_ADD 257
#ກໍານົດຕື່ມ 258

ຕົ້ນສະບັບ yacc ບໍ່ໄດ້ສ້າງທີສອງ "#ກໍານົດ”. ທ -s ທາງເລືອກສະກັດກັ້ນ
ນີ້ "#ກໍານົດ".

POSIX (IEEE 1003.1 2004) ເອກະສານພຽງແຕ່ຊື່ ແລະຕົວເລກສໍາລັບ “%ໂທເຄັນ”, ເຖິງແມ່ນວ່າ
ຕົ້ນສະບັບ yacc ແລະ bison ຍັງຍອມຮັບຕົວຫນັງສືຊ່ອຍແນ່.

-t ໄດ້ -t ທາງເລືອກປ່ຽນຄໍາສັ່ງ preprocessor ທີ່ສ້າງຂຶ້ນໂດຍ yacc ດັ່ງນັ້ນການ debugging
ຖະແຫຼງການຈະຖືກລວມເຂົ້າໃນລະຫັດທີ່ລວບລວມ.

-v ໄດ້ -v ທາງເລືອກເຮັດໃຫ້ຄໍາອະທິບາຍຂອງມະນຸດສາມາດອ່ານໄດ້ຂອງຕົວແຍກວິເຄາະທີ່ສ້າງຂຶ້ນ
ຂຽນໃສ່ໄຟລ໌ y. ຜົນຜະລິດ.

-V ພິມເລກເວີຊັ່ນເປັນຜົນຜະລິດມາດຕະຖານ.

-y yacc ບໍ່ສົນໃຈທາງເລືອກນີ້, ເຊິ່ງ bison ສະຫນັບສະຫນູນສໍາລັບການເຂົ້າກັນໄດ້ POSIX ostensible.

ການສົນທະນາ


yacc ສະຫນອງການຂະຫຍາຍບາງຢ່າງສໍາລັບຄວາມເຂົ້າກັນໄດ້ກັບ bison ແລະການປະຕິບັດອື່ນໆຂອງ
yacc. ໄດ້ %ຜູ້ທຳລາຍ ແລະ % ສະຖານທີ່ ຄຸນນະສົມບັດສາມາດໃຊ້ໄດ້ພຽງແຕ່ຖ້າຫາກວ່າ yacc ໄດ້
ການ​ຕັ້ງ​ຄ່າ​ແລະ​ການ​ສັງ​ລວມ​ເພື່ອ​ສະ​ຫນັບ​ສະ​ຫນູນ​ການ​ຕິດ​ຕາມ​ຫຼັງ (btyac) ການ​ທໍາ​ງານ​. ໄດ້
ຄຸນ​ນະ​ສົມ​ບັດ​ທີ່​ຍັງ​ເຫຼືອ​ແມ່ນ​ມີ​ຢູ່​ສະ​ເຫມີ​:

%ຜູ້ທຳລາຍ { ລະຫັດ } ສັນ​ຍາ​ລັກ+
ກໍານົດລະຫັດທີ່ຖືກເອີ້ນເມື່ອສັນຍາລັກຖືກຍົກເລີກໂດຍອັດຕະໂນມັດໃນລະຫວ່າງຄວາມຜິດພາດ
ການຟື້ນຕົວ. ລະຫັດນີ້ສາມາດຖືກໃຊ້ເພື່ອຮຽກຄືນຄວາມຊົງຈໍາທີ່ຈັດສັນແບບໄດນາມິກທີ່ເຊື່ອມໂຍງ
ດ້ວຍຄ່າ semantic ທີ່ສອດຄ້ອງກັນສໍາລັບກໍລະນີທີ່ການກະທໍາຂອງຜູ້ໃຊ້ບໍ່ສາມາດຈັດການໄດ້
ຄວາມຊົງຈໍາຢ່າງຊັດເຈນ.

ເມື່ອພົບຂໍ້ຜິດພາດໃນການແຍກວິເຄາະ, ຕົວແຍກວິເຄາະທີ່ສ້າງຂຶ້ນຈະຍົກເລີກສັນຍາລັກຢູ່ໃນ stack
ແລະ input tokens ຈົນກ່ວາມັນໄປຮອດສະຖານະທີ່ຈະຊ່ວຍໃຫ້ parsing ສືບຕໍ່.
ວິ​ທີ​ການ​ຟື້ນ​ຕົວ​ຄວາມ​ຜິດ​ພາດ​ນີ້​ເຮັດ​ໃຫ້​ເກີດ​ຄວາມ​ຊົງ​ຈໍາ​ຮົ່ວ​ຖ້າ​ຫາກ​ວ່າ​ YYSTYPE ມູນຄ່າແມ່ນ, ຫຼື
ມີ, ຕົວຊີ້ໄປຫາຫນ່ວຍຄວາມຈໍາທີ່ຈັດສັນແບບໄດນາມິກ.

ວົງເລັບ ລະຫັດ ຖືກເອີ້ນທຸກຄັ້ງທີ່ຕົວວິເຄາະຍົກເລີກສັນຍາລັກອັນໃດອັນໜຶ່ງ.
ພາຍໃນ ລະຫັດ, "$$"ຫຼື"$ $” ກໍານົດມູນຄ່າ semantic ທີ່ກ່ຽວຂ້ອງກັບ
ສັນຍາລັກທີ່ຖືກຍົກເລີກ, ແລະ "@$” ກໍານົດສະຖານທີ່ຂອງມັນ (ເບິ່ງ % ສະຖານທີ່ ຄໍາສັ່ງ).

A per-symbol destructor ແມ່ນຖືກກໍານົດໂດຍລາຍຊື່ສັນຍາລັກໄວຍາກອນໃນ ສັນ​ຍາ​ລັກ+. ຕໍ່-
type destructor ຖືກກໍານົດໂດຍລາຍຊື່ແທັກປະເພດ semantic (ເຊັ່ນ: " ”) ໃນ
ສັນ​ຍາ​ລັກ+; ໃນກໍລະນີນີ້, parser ຈະເອີ້ນ ລະຫັດ ທຸກຄັ້ງທີ່ມັນຖິ້ມໄວຍາກອນໃດນຶ່ງ
ສັນ​ຍາ​ລັກ​ທີ່​ມີ​ໂຄດ​ຄໍາ​ສັ່ງ​ປະ​ເພດ semantic ນັ້ນ​, ເວັ້ນ​ເສຍ​ແຕ່​ສັນ​ຍາ​ລັກ​ທີ່​ມີ​ຂອງ​ຕົນ​ເອງ​ຕໍ່​ສັນ​ຍາ​ລັກ​
ຜູ້ທຳລາຍ.

ສອງປະເພດຂອງ destructor ເລີ່ມຕົ້ນແມ່ນສະຫນັບສະຫນູນທີ່ຖືກຮຽກຮ້ອງໃນເວລາຍົກເລີກ
ສັນ​ຍາ​ລັກ​ໄວ​ຍະ​ກອນ​ໃດ​ຫນຶ່ງ​ທີ່​ບໍ່​ມີ​ຕໍ່​ສັນ​ຍາ​ລັກ​ແລະ​ບໍ່​ມີ​ການ​ທໍາ​ລາຍ​ຕໍ່​ປະ​ເພດ​:

·ລະຫັດສໍາລັບ "<*>” ແມ່ນໃຊ້ສໍາລັບສັນຍາລັກໄວຍາກອນທີ່ມີການປະກາດຢ່າງຈະແຈ້ງ
ແທັກປະເພດ semantic (ຜ່ານ "ປະເພດ");

·ລະຫັດສໍາລັບ "<>” ແມ່ນໃຊ້ ສຳ ລັບສັນຍາລັກໄວຍາກອນທີ່ບໍ່ມີ ຄຳ ສັບທີ່ປະກາດໄວ້
ພິມແທັກ.

ຄາດຫວັງ ຈໍານວນ
ບອກວ່າ yacc ຈໍານວນທີ່ຄາດໄວ້ຂອງການປ່ຽນແປງ / ຫຼຸດຜ່ອນຄວາມຂັດແຍ້ງ. ທີ່ເຮັດໃຫ້ມັນພຽງແຕ່
ລາຍງານຕົວເລກຖ້າມັນແຕກຕ່າງກັນ.

%expect-rr ຈໍານວນ
ບອກ yacc ຈໍານວນທີ່ຄາດວ່າຈະຫຼຸດລົງ / ຫຼຸດຜ່ອນຄວາມຂັດແຍ້ງ. ທີ່ເຮັດໃຫ້ມັນພຽງແຕ່
ລາຍງານຕົວເລກຖ້າມັນແຕກຕ່າງກັນ. ນີ້ແມ່ນ (ບໍ່ຄືກັບ bison) ທີ່ອະນຸຍາດໃຫ້ຢູ່ໃນຕົວວິເຄາະ LALR.

% ສະຖານທີ່
ບອກວ່າ yacc ເພື່ອເຮັດໃຫ້ການຄຸ້ມຄອງຂໍ້ມູນຕໍາແຫນ່ງທີ່ກ່ຽວຂ້ອງກັບແຕ່ລະຄົນ
token, ສະໜອງໃຫ້ໂດຍ lexer ໃນຕົວແປທົ່ວໂລກ yylloc, ຄ້າຍຄືກັນກັບການຄຸ້ມຄອງ
ຂອງຂໍ້ມູນມູນຄ່າ semantic ສະຫນອງໃຫ້ໃນ yylval.

ສໍາລັບຄ່າ semantic, ສະຖານທີ່ສາມາດອ້າງອີງພາຍໃນການປະຕິບັດໂດຍໃຊ້ @$ to
ອ້າງເຖິງສະຖານທີ່ຂອງສັນຍາລັກຊ້າຍມື, ແລະ @N (N integer) ເພື່ອອ້າງອີງ
ກັບສະຖານທີ່ຂອງຫນຶ່ງຂອງສັນຍາລັກເບື້ອງຂວາມື. ເຊັ່ນດຽວກັນສໍາລັບຄຸນຄ່າ semantic,
ເມື່ອກົດລະບຽບຖືກຈັບຄູ່, ການປະຕິບັດເລີ່ມຕົ້ນແມ່ນໃຊ້ໃນການຄິດໄລ່ສະຖານທີ່
ສະແດງໂດຍ @$ ເປັນຈຸດເລີ່ມຕົ້ນຂອງສັນຍາລັກທໍາອິດແລະຈຸດສຸດທ້າຍຂອງສຸດທ້າຍ
ສັນຍາລັກຢູ່ໃນເບື້ອງຂວາຂອງກົດລະບຽບ. ການຄິດໄລ່ເລີ່ມຕົ້ນນີ້ສາມາດເປັນ
overridden ໂດຍການມອບຫມາຍຢ່າງຊັດເຈນໃຫ້ @$ ໃນ​ການ​ປະ​ຕິ​ບັດ​ກົດ​ລະ​ບຽບ​.

ປະເພດຂອງ yylloc is YYLTYPE, ເຊິ່ງຖືກກໍານົດໂດຍຄ່າເລີ່ມຕົ້ນເປັນ:

typedef ໂຄງສ້າງ YYLTYPE {
int first_line;
int first_column;
int last_line;
int last_column;
} YYLTYPE;

YYLTYPE ຜູ້ໃຊ້ສາມາດກໍານົດຄືນໃຫມ່ໄດ້ (YYLTYPE_IS_DEFINED ຕ້ອງໄດ້ຮັບການກໍານົດ, ເພື່ອ
ຍັບຍັ້ງຄ່າເລີ່ມຕົ້ນ) ໃນສ່ວນການປະກາດຂອງເອກະສານສະເພາະ. ດັ່ງໃນ
bison, ມະຫາພາກ YYLLOC_DEFAULT ຖືກຮຽກຮ້ອງທຸກຄັ້ງທີ່ກົດຖືກຈັບຄູ່ເພື່ອຄິດໄລ່
ຕໍາແຫນ່ງສໍາລັບເບື້ອງຊ້າຍຂອງກົດລະບຽບ, ກ່ອນທີ່ຈະດໍາເນີນການທີ່ກ່ຽວຂ້ອງ
ປະ​ຕິ​ບັດ​; ມະຫາພາກນີ້ສາມາດຖືກກຳນົດຄືນໂດຍຜູ້ໃຊ້.

ຄໍາສັ່ງນີ້ເພີ່ມ a YYLTYPE ພາລາມິເຕີເຖິງ yyerror()ທີ່ຢູ່ ຖ້າຫາກວ່າ %parser-parser
ຄໍາແນະນໍາແມ່ນມີຢູ່, a YYLTYPE ພາລາມິເຕີຖືກເພີ່ມໃສ່ yylex() ໂທ.

%lex-param { argument-ປະກາດ }
ໂດຍຄ່າເລີ່ມຕົ້ນ, lexer ຍອມຮັບບໍ່ມີພາລາມິເຕີ, ຕົວຢ່າງ, yylex(). ໃຊ້ຄໍາສັ່ງນີ້ເພື່ອ
ເພີ່ມການປະກາດພາລາມິເຕີສໍາລັບ lexer ຂອງທ່ານເອງ.

%parse-param { argument-ປະກາດ }
ໂດຍຄ່າເລີ່ມຕົ້ນ, parser ຍອມຮັບບໍ່ມີພາລາມິເຕີ, ຕົວຢ່າງ, yyparse(). ໃຊ້ຄໍາສັ່ງນີ້
ເພື່ອເພີ່ມການປະກາດພາລາມິເຕີສໍາລັບ parser ປັບແຕ່ງຂອງທ່ານ.

%parser-parser
ຕົວແປສ່ວນໃຫຍ່ (ນອກຈາກ yydebug ແລະ yynerrs) ຖືກຈັດສັນຢູ່ໃນ stack ພາຍໃນ
yyparse, ເຮັດໃຫ້ parser ສົມເຫດສົມຜົນ reentrant.

%token-table
ເຮັດໃຫ້ຊື່ຂອງຕົວວິເຄາະສໍາລັບ tokens ມີຢູ່ໃນ ຊື່ yyt array. ແນວໃດກໍ່ຕາມ, yacc
ບໍ່ໄດ້ກໍານົດ "$end", "$error" ຫຼື "$undefined" ໃນອາເຣນີ້.

ຄວາມເປັນເອກະລາດ


ຕາມ​ທ່ານ Robert Corbett.

Berkeley Yacc ເປັນ ລລລ(1) parser generator. Berkeley Yacc ໄດ້ເຮັດ
ເຂົ້າກັນໄດ້ກັບ AT&T Yacc. Berkeley Yacc ສາມາດຍອມຮັບການປ້ອນຂໍ້ມູນໃດໆ
ຂໍ້ມູນສະເພາະທີ່ສອດຄ່ອງກັບເອກະສານ AT&T Yacc. ຂໍ້ມູນຈໍາເພາະ
ທີ່ໃຊ້ປະໂຫຍດຈາກຄຸນສົມບັດທີ່ບໍ່ມີເອກະສານຂອງ AT&T Yacc ອາດຈະເປັນ
ຖືກປະຕິເສດ.

ເຫດຜົນໃນ

http://pubs.opengroup.org/onlinepubs/9699919799/utilities/yacc.html

ເອກະສານບາງຄຸນສົມບັດຂອງ AT&T yacc ທີ່ບໍ່ຈໍາເປັນສໍາລັບການປະຕິບັດຕາມ POSIX.

ທີ່ເວົ້າວ່າ, ທ່ານອາດຈະສົນໃຈໃນການໃຊ້ໄຟລ໌ໄວຍາກອນໃຫມ່ກັບການປະຕິບັດອື່ນໆ
ເຊິ່ງບໍ່ເຂົ້າກັນໄດ້ຢ່າງເຂັ້ມງວດກັບ AT&T yacc. ສໍາລັບຕົວຢ່າງ, ມີ bison. ນີ້ແມ່ນ
ຄວາມແຕກຕ່າງບໍ່ຫຼາຍປານໃດ:

· Yacc ຍອມຮັບເຄື່ອງໝາຍເທົ່າກັນກ່ອນເສັ້ນໂຄ້ງຊ້າຍຂອງຄຳສັ່ງ (ເຊັ່ນໃນ
ໄຟລ໌ໄວຍາກອນຕົ້ນສະບັບ ftp.y):

| STAT CRLF
= {
statcmd();
}

· Yacc ແລະ bison emit ລະຫັດໃນຄໍາສັ່ງທີ່ແຕກຕ່າງກັນ, ແລະໂດຍສະເພາະແມ່ນ bison ເຮັດໃຫ້ໄປຂ້າງຫນ້າ
ການອ້າງອີງເຖິງຫນ້າທີ່ທົ່ວໄປເຊັ່ນ yylex, yyparse ແລະ yyerror ໂດຍບໍ່ມີການສະຫນອງ
ຕົ້ນແບບ.

· ການສະຫນັບສະຫນູນຂອງ Bison ສໍາລັບ "% expect" ແມ່ນແຕກຢູ່ໃນຫຼາຍກວ່າຫນຶ່ງການປ່ອຍ. ສໍາລັບຜົນໄດ້ຮັບທີ່ດີທີ່ສຸດ
ການນໍາໃຊ້ bison, ລຶບຄໍາແນະນໍານັ້ນ.

· Bison ບໍ່​ມີ​ການ​ທຽບ​ເທົ່າ​ສໍາ​ລັບ​ບາງ​ສ່ວນ​ຂອງ​ yaccຕົວເລືອກເສັ້ນຄໍາສັ່ງ, ອີງໃສ່
ຄໍາແນະນໍາທີ່ຝັງຢູ່ໃນໄຟລ໌ໄວຍາກອນ.

· Bison ຂອງ "-y” ທາງເລືອກບໍ່ມີຜົນກະທົບຕໍ່ການຂາດການສະຫນັບສະຫນູນຂອງ bison ສໍາລັບລັກສະນະຂອງ AT&T yacc
ຊຶ່ງ​ຖືກ​ຖື​ວ່າ​ເປັນ​ການ​ລ້າ​ສະ​ໄໝ.

ທິດສະດີວິທະຍາ


ຖ້າມີກົດລະບຽບທີ່ບໍ່ເຄີຍຫຼຸດລົງ, ຈໍານວນຂອງກົດລະບຽບດັ່ງກ່າວໄດ້ຖືກລາຍງານ
ຄວາມ​ຜິດ​ພາດ​ມາດ​ຕະ​ຖານ​. ຖ້າມີ ລລລ(1) ຂໍ້ຂັດແຍ່ງ, ຈໍານວນຂອງຂໍ້ຂັດແຍ່ງໄດ້ຖືກລາຍງານ
ໃນ​ຄວາມ​ຜິດ​ພາດ​ມາດ​ຕະ​ຖານ​.

ໃຊ້ byacc ອອນໄລນ໌ໂດຍໃຊ້ບໍລິການ onworks.net


ເຊີບເວີ ແລະສະຖານີເຮັດວຽກຟຣີ

ດາວໂຫຼດແອັບ Windows ແລະ Linux

Linux ຄຳ ສັ່ງ

Ad




×
ການ​ໂຄ​ສະ​ນາ
?ຊື້ເຄື່ອງ, ຈອງ, ຫຼືຊື້ທີ່ນີ້ — ບໍ່ມີຄ່າໃຊ້ຈ່າຍ, ຊ່ວຍໃຫ້ການບໍລິການຟຣີ.