a guide to lex & yacc - by thomas niemann
Post on 10-Apr-2018
250 Views
Preview:
TRANSCRIPT
-
8/8/2019 A Guide to Lex & Yacc - By Thomas Niemann
1/39
A LTKMD ]G NDP ) [AOO
B[ ]@GEA_ FKDEAFF
-
8/8/2019 A Guide to Lex & Yacc - By Thomas Niemann
2/39
2
SRDIAOD
]`k mgotedf} dpsnakf `g| }g ogf}rto} a ogeskndr tkfl ndp afm {aoo& Ndp afm {aoo ard}ggn tdm }g ldfdra}d ndpkoan afan{xdr afm sardr& K ated {gt oaf srglrae kf O. afmtfmdr}afm ma}a }rto}trd to` a nkfjdm%nk} afm }rdd&
]`d kf}rgmto}kgf mdorkbd }`d bako btknmkfl bngoj gi a ogeskndr afm dpsnakf }`d
kf}drao}kgf bd}|ddf ndp afm {aoo& ]`d fdp} }|g do}kgf mdorkbd ndp afm {aoo kf egrdmd}akn& \k}` }`k baojlrgtfm. |d ogf}rto} a gs`k}koa}dm oanotna}gr& Ogfydf}kgfanark}`ed}ko gsdra}kgf afm ogf}rgn }a}dedf}. to` a ki%dnd afm |`knd. ard kesndedf}dm&\k}` ekfgr o`afld. |d ogfydr} }`d oanotna}gr kf}g a ogeskndr igr a }aoj%badm eao`kfd&]`d rdeakfkfl do}kgf mkot ktd }`a} ogeegfn{ arkd kf ogeskndr |rk}kfl& _gtrodogmd igr dpaesnd ea{ bd mg|fngamdm irge }`d |db k}d nk}dm bdng|&
Sdrekkgf }g rdsrgmtod sgr}kgf gi }`k mgotedf} k lkydf srgykmdm }`d |db k}dnk}dm bdng| k rdidrdfodm. afm fg ammk}kgfan rd}rko}kgf assn{& _gtrod ogmd. |`df sar} gia gi}|ard srghdo}. ea{ bd tdm irddn{ |k}`gt} rdidrdfod }g }`d at}`gr&
]@GEA_ FKDEAFFSgr}nafm. Grdlgf
fkdeaff}C{a`gg&oge`}}s8''edebdr&pgge&oge'}`geaf
mailto:niemannt@yahoo.comhttp://members.xoom.com/thomasnhttp://members.xoom.com/thomasnmailto:niemannt@yahoo.com -
8/8/2019 A Guide to Lex & Yacc - By Thomas Niemann
3/39
?
OGF]DF]_
1& KF]RGMTO]KGF
=
2& NDP 9
2&1 ]`dgr{ 92&2 Srao}kod ?+ z srkf} p:p 5 p * 1 :
u
|k}` gt}st} igr }`d kf}drsrd}kyd ydrkgf.
312
afm gt}st} igr }`d ogeskndr ydrkgf&
st` 3 sgs p
N3338 st` p st` ?ogesN]hx N331
st` psrkf} st` p st` 1
amm sgs phes N333
N3318
-
8/8/2019 A Guide to Lex & Yacc - By Thomas Niemann
21/39
21
]`d kfontmd iknd ogf}akf mdonara}kgf igr }`d {f}ap }rdd afm {ebgn }abnd& ]`d{ebgn }abnd. {e. anng| igr kflnd%o`arao}dr yarkabnd faed& A fgmd kf }`d {f}ap }rdd
ea{ `gnm a ogf}af} (ogfFgmd]{sd+. af kmdf}kikdr (kmFgmd]{sd+. gr af kf}drfan fgmd
|k}` af gsdra}gr (gsrFgmd]{sd+& Tfkgf fgmd]{sd dfoastna}d ann } rdd yarkaf}. afm
fgmd]{sd&}{sd k tdm }g md}drekfd |`ko` }rto}trd |d `ayd&
]`d ndp kfst} iknd ogf}akf sa}}drf igr YARKABND afm KF]DLDR }gjdf& Kf ammk}kgf.}gjdf ard mdikfdm igr 2%o`arao}dr gsdra}gr to` a DQ afm FD& _kflnd%o`arao}dr
gsdra}gr ard kesn{ rd}trfdm a }`dednyd&]`d {aoo kfst} ikndmdikfd [[_][SD. }`d }{sd gi{{nyan. a
$tfkgf zkf} kYantd: ' kf}dldr yantd 'o`ar Kfmdp: ' {ebgn }abnd kfmdp 'fgmd]{sd fS}r: ' fgmd sgkf}dr '
u:
]`k oatd }`d ignng|kfl }g bd ldfdra}dm kf {&}ab&`8
}{sdmdi tfkgf zkf} kYantd: ' kf}dldr yantd 'o`ar Kfmdp: ' {ebgn }abnd kfmdp 'fgmd]{sd fS}r: ' fgmd sgkf}dr '
u [[_][SD:dp}drf [[_][SD {{nyan:
Ogf}af}. yarkabnd. afm fgmd oaf bd rdsrddf}dm b{ {{nyan kf }`d sardr yantd }aoj&
Fg}kod }`d }{sd mdikfk}kgf
$}gjdf >kYantd6 KF]DLDR$}{sd >fS}r6 dpsr
]`k bkfm dpsr }g fS}r. afm KF]DLDR }g kYantd kf }`d [[_][SD tfkgf& ]`k k
rdqtkrdm g }`a} {aoo oaf ldfdra}d }`d ogrrdo} ogmd& Igr dpaesnd. }`d rtnd
dpsr8 KF]DLDR z -- 5 ogf(-1+: u
`gtnm ldfdra}d }`d ignng|kfl ogmd& Fg}d }`a} {{ysZ3U ammrdd }`d }gs gi }`d yantd
}aoj. gr }`d yantd agoka}dm |k}` KF]DLDR&
{{nyan&fS}r 5 ogf({{ysZ3U&kYantd+:
-
8/8/2019 A Guide to Lex & Yacc - By Thomas Niemann
22/39
22
]`d tfar{ ekft gsdra}gr k lkydf `kl`dr srkgrk}{ }`af bkfar{ gsdra}gr a ignng|8
$ndi} LD ND DQ FD ,6, ,>,$ndi} ,*, ,%,$ndi} ,, ,',$fgfago TEKFT_
]`d $fgfago kfmkoa}d fg agoka}kyk}{ k kesnkdm& K} k irdqtdf}n{ tdm kf ogfhtfo}kgf
|k}` $srdo }g sdoki{ srdodmdfod gi a rtnd& ]`t. |d `ayd
dpsr8 ,%, dpsr $srdo TEKFT_ z -- 5 fgmd(TEKFT_. 1. -2+: u
kfmkoa}kfl }`a} }`d srdodmdfod gi }`d rtnd k }`d aed a }`d srdodmdfod gi }gjdf TEKFT_&
Afm. a mdikfdm abgyd. TEKFT_ `a `kl`dr srdodmdfod }`af }`d g}`dr gsdra}gr& A keknar
}do`fkqtd k tdm }g rdegyd aebkltk}{ agoka}dm |k}` }`d ki%dnd }a}dedf} (dd Ki%DndAebkltk}{. s& ?4+&
]`d {f}ap }rdd k ogf}rto}dm bg}}ge%ts. anngoa}kfl }`d ndai fgmd |`df yarkabnd
afm kf}dldr ard rdmtodm& \`df gsdra}gr ard dfogtf}drdm. a fgmd k anngoa}dm afmsgkf}dr }g srdykgtn{ anngoa}dm fgmd ard df}drdm a gsdrafm& A }a}dedf} ard rdmtodm.dp k oanndm }g mg a mds}`%ikr} |anj gi }`d {f}ap }rdd& _kfod }`d }rdd |a ogf}rto}dm
bg}}ge%ts. a mds}`%ikr} |anj ykk} fgmd kf }`d grmdr }`a} }`d{ |drd grklkfann{ anngoa}dm&]`k rdtn} kf gsdra}gr bdkfl assnkdm kf }`d grmdr }`a} }`d{ |drd dfogtf}drdm mtrkflsarkfl& ]|g ydrkgf gi dp. af kf}drsrd}kyd ydrkgf. afm a ogeskndr ydrkgf. ard
kfontmdm&
-
8/8/2019 A Guide to Lex & Yacc - By Thomas Niemann
23/39
2?
=&2 Kfontmd Iknd
}{sdmdi dfte z }{sdOgf. }{sdKm. }{sdGsr u fgmdDfte:
' ogf}af} '}{sdmdi }rto} z
fgmdDfte }{sd: ' }{sd gi fgmd 'kf} yantd: ' yantd gi ogf}af} '
u ogfFgmd]{sd:
' kmdf}kikdr '}{sdmdi }rto} z
fgmdDfte }{sd: ' }{sd gi fgmd 'kf} k: ' tborks} }g kmdf} arra{ '
u kmFgmd]{sd:
' gsdra}gr '}{sdmdi }rto} z
fgmdDfte }{sd: ' }{sd gi fgmd 'kf} gsdr: ' gsdra}gr 'kf} fgs: ' ftebdr gi gsdrafm 'tfkgf fgmd]{sd]al gsZ1U: ' gsdrafm (dpsafmabnd+ '
u gsrFgmd]{sd:
}{sdmdi tfkgf fgmd]{sd]al zfgmdDfte }{sd: ' }{sd gi fgmd 'ogfFgmd]{sd ogf: ' ogf}af} 'kmFgmd]{sd km: ' kmdf}kikdr '
gsrFgmd]{sd gsr: ' gsdra}gr 'u fgmd]{sd:
dp}drf kf} {eZ29U:
-
8/8/2019 A Guide to Lex & Yacc - By Thomas Niemann
24/39
2=
=&? Ndp Kfst}
$z/kfontmd >}mnkb&`6/kfontmd "oano?&`"/kfontmd "{&}ab&`"$u
$$
Za%xU z{{nyan&Kfmdp 5 {{}dp} % ,a,:rd}trf YARKABND:
u
Z3%;U* z
{{nyan&kYantd 5 a}gk({{}dp}+:rd}trf KF]DLDR:
u
Z%(+>65*':zu&U zrd}trf {{}dp}:
u
"65" rd}trf LD:">5" rd}trf ND:"55" rd}trf DQ:"!5" rd}trf FD:
"|`knd" rd}trf \@KND:"ki" rd}trf KI:"dnd" rd}trf DN_D:"srkf}" rd}trf SRKF]:
Z ^}^f*U : ' klfgrd |`k}dsaod '
& {{drrgr("Tfjfg|f o`arao}dr"+:$$kf} {{|ras(ygkm+ z
rd}trf 1:u
-
8/8/2019 A Guide to Lex & Yacc - By Thomas Niemann
25/39
24
=&= [aoo Kfst}
$z/kfontmd >}mkg&`6/kfontmd >}mnkb&`6/kfontmd >}marl&`6/kfontmd "oano?&`"
' srg}g}{sd 'fgmd]{sd gsr(kf} gsdr. kf} fgs. &&&+:fgmd]{sd km(kf} k+:fgmd]{sd ogf(kf} yantd+:ygkm irddFgmd(fgmd]{sd s+:
ygkm {{drrgr(o`ar +:kf} {eZ29U: ' {ebgn }abnd '
$u
$tfkgf zkf} kYantd: ' kf}dldr yantd 'o`ar Kfmdp: ' {ebgn }abnd kfmdp 'fgmd]{sd fS}r: ' fgmd sgkf}dr '
u:
$}gjdf >kYantd6 KF]DLDR$}gjdf >Kfmdp6 YARKABND$}gjdf \@KND KI SRKF]$fgfago KIP
$fgfago DN_D
$ndi} LD ND DQ FD ,6, ,>,$ndi} ,*, ,%,$ndi} ,, ,',$fgfago TEKFT_
$}{sd >fS}r6 }e} dpsr }e}Wnk}
$$
-
8/8/2019 A Guide to Lex & Yacc - By Thomas Niemann
26/39
29
srglrae8itfo}kgf ,&, z dpk}(3+: u:
itfo}kgf8itfo}kgf }e} z dp(-2+: irddFgmd(-2+: u
~ ' FTNN ':
}e}8,:, z -- 5 gsr(,:,. 2. FTNN. FTNN+: u
~ dpsr ,:, z -- 5 -1: u~ SRKF] dpsr ,:, z -- 5 gsr(SRKF]. 1. -2+: u~ YARKABND ,5, dpsr ,:, z -- 5 gsr(,5,. 2. km(-1+. -?+: u~ \@KND ,(, dpsr ,+, }e}
z -- 5 gsr(\@KND. 2. -?. -4+: u~ KI ,(, dpsr ,+, }e} $srdo KIP
z -- 5 gsr(KI. 2. -?. -4+: u
~ KI ,(, dpsr ,+, }e} DN_D }e}z -- 5 gsr(KI. ?. -?. -4. -, dpsr z -- 5 gsr(,>,. 2. -1. -?+: u~ dpsr ,6, dpsr z -- 5 gsr(,6,. 2. -1. -?+: u~ dpsr LD dpsr z -- 5 gsr(LD. 2. -1. -?+: u~ dpsr ND dpsr z -- 5 gsr(ND. 2. -1. -?+: u~ dpsr FD dpsr z -- 5 gsr(FD. 2. -1. -?+: u~ dpsr DQ dpsr z -- 5 gsr(DQ. 2. -1. -?+: u~ ,(, dpsr ,+, z -- 5 -2: u
:
$$
-
8/8/2019 A Guide to Lex & Yacc - By Thomas Niemann
27/39
2 fgs: k**+
s%6gsr&gsZkU 5 yaWarl(as. fgmd]{sd+:yaWdfm(as+:rd}trf s:
u
-
8/8/2019 A Guide to Lex & Yacc - By Thomas Niemann
28/39
20
ygkm irddFgmd(fgmd]{sd s+ zkf} k:
ki (!s+ rd}trf:ki (s%6}{sd 55 }{sdGsr+ z
igr (k 5 3: k > s%6gsr&fgs: k**+
irddFgmd(s%6gsr&gsZkU+:uirdd (s+:
u
ygkm {{drrgr(o`ar + zisrkf}i(}mgt}. "$^f". +:
u
kf} eakf(ygkm+ z{{sard(+:rd}trf 3:
u
-
8/8/2019 A Guide to Lex & Yacc - By Thomas Niemann
29/39
2;
=&4 Kf}drsrd}dr
/kfontmd >}mkg&`6/kfontmd "oano?&`"/kfontmd "{&}ab&`"
kf} dp(fgmd]{sd s+ zki (!s+ rd}trf 3:|k}o`(s%6}{sd+ zoad }{sdOgf8 rd}trf s%6ogf&yantd:oad }{sdKm8 rd}trf {eZs%6km&kU:oad }{sdGsr8
|k}o`(s%6gsr&gsdr+ zoad \@KND8 |`knd(dp(s%6gsr&gsZ3U++
dp(s%6gsr&gsZ1U+:rd}trf 3:
oad KI8 ki (dp(s%6gsr&gsZ3U++dp(s%6gsr&gsZ1U+:
dnd ki (s%6gsr&fgs 6 2+dp(s%6gsr&gsZ2U+:
rd}trf 3:oad SRKF]8 srkf}i("$m^f". dp(s%6gsr&gsZ3U++:
rd}trf 3:oad ,:,8 dp(s%6gsr&gsZ3U+:
rd}trf dp(s%6gsr&gsZ1U+:oad ,5,8 rd}trf {eZs%6gsr&gsZ3U%6km&kU 5
dp(s%6gsr&gsZ1U+:oad TEKFT_8 rd}trf %dp(s%6gsr&gsZ3U+:
oad ,*,8 rd}trf dp(s%6gsr&gsZ3U+ * dp(s%6gsr&gsZ1U+:oad ,%,8 rd}trf dp(s%6gsr&gsZ3U+ % dp(s%6gsr&gsZ1U+:oad ,,8 rd}trf dp(s%6gsr&gsZ3U+ dp(s%6gsr&gsZ1U+:oad ,',8 rd}trf dp(s%6gsr&gsZ3U+ ' dp(s%6gsr&gsZ1U+:oad ,>,8 rd}trf dp(s%6gsr&gsZ3U+ > dp(s%6gsr&gsZ1U+:oad ,6,8 rd}trf dp(s%6gsr&gsZ3U+ 6 dp(s%6gsr&gsZ1U+:oad LD8 rd}trf dp(s%6gsr&gsZ3U+ 65 dp(s%6gsr&gsZ1U+:oad ND8 rd}trf dp(s%6gsr&gsZ3U+ >5 dp(s%6gsr&gsZ1U+:oad FD8 rd}trf dp(s%6gsr&gsZ3U+ !5 dp(s%6gsr&gsZ1U+:oad DQ8 rd}trf dp(s%6gsr&gsZ3U+ 55 dp(s%6gsr&gsZ1U+:u
u
u
-
8/8/2019 A Guide to Lex & Yacc - By Thomas Niemann
30/39
-
8/8/2019 A Guide to Lex & Yacc - By Thomas Niemann
31/39
?1
oad SRKF]8dp(s%6gsr&gsZ3U+:
srkf}i("^}srkf}^f"+:brdaj:
oad ,5,8dp(s%6gsr&gsZ1U+:
srkf}i("^}sgs^}$o^f". s%6gsr&gsZ3U%6km&k * ,a,+:brdaj:
oad TEKFT_8dp(s%6gsr&gsZ3U+:
srkf}i("^}fdl^f"+:brdaj:
mdiatn}8dp(s%6gsr&gsZ3U+:dp(s%6gsr&gsZ1U+:|k}o`(s%6gsr&gsdr+ zoad ,*,8 srkf}i("^}amm^f"+: brdaj:oad ,%,8 srkf}i("^}tb^f"+: brdaj:
oad ,,8 srkf}i("^}etn^f"+: brdaj:oad ,',8 srkf}i("^}mky^f"+: brdaj:oad ,>,8 srkf}i("^}ogesN]^f"+: brdaj:oad ,6,8 srkf}i("^}ogesL]^f"+: brdaj:oad LD8 srkf}i("^}ogesLD^f"+: brdaj:oad ND8 srkf}i("^}ogesND^f"+: brdaj:oad FD8 srkf}i("^}ogesFD^f"+: brdaj:oad DQ8 srkf}i("^}ogesDQ^f"+: brdaj:u
uu
u
-
8/8/2019 A Guide to Lex & Yacc - By Thomas Niemann
32/39
?2
4& Egrd Ndp
4&1 _}rkfl
Qtg}dm }rkfl irdqtdf}n{ assdar kf srglraeekfl nafltald& @drd k gfd |a{ }g ea}o` a}rkfl kf ndp8
$zo`ar {{nyan:/kfontmd >}rkfl&`6
$u$$^"ZV"^fUZ"^fU z
{{nyan 5 }rmts({{}dp}*1+:ki ({{nyanZ{{ndfl%2U !5 ,",+
|arfkfl("kesrgsdrn{ }drekfa}dm }rkfl"+:
dnd{{nyanZ{{ndfl%2U 5 3: srkf}i("igtfm ,$,^f". {{nyan+:
u
]`d abgyd dpaesnd dftrd }`a} }rkfl mgf} org nkfd bgtfmarkd. afm rdegyddfongkfl qtg}d& Ki |d |k` }g amm doasd dqtdfod. to` a ^f gr ^". }ar} }a}d
kesnki{ ea}}dr8
$zo`ar btiZ133U:o`ar :
$u$p _]RKFL
$$
^" z BDLKF _]RKFL: 5 bti: u>_]RKFL6^^f z ** 5 ,^f,: u>_]RKFL6^^} z ** 5 ,^},: u>_]RKFL6^^^" z ** 5 ,^",: u>_]RKFL6^" z
5 3 :BDLKF 3:
srkf}i("igtfm ,$,^f". bti+:u
>_]RKFL6^f z srkf}i("kfyankm }rkfl"+: dpk}(1+: u>_]RKFL6& z ** 5 {{}dp}: u
Dpontkyd }ar} }a}d _]RKFL k mdikfdm kf }`d mdikfk}kgf do}kgf& \`df }`d oaffdr
md}do} a qtg}d. }`d BDLKF eaorg `ki} ndp kf}g }`d _]RKFL }a}d& Ndp }a{ kf }`d
_]RKFL }a}d. rdoglfkxkfl gfn{ sa}}drf }`a} bdlkf |k}` >_]RKFL6. tf}kn afg}`dr BDLKF
-
8/8/2019 A Guide to Lex & Yacc - By Thomas Niemann
33/39
??
k dpdot}dm& ]`t. |d `ayd a ekfk%dfykrgfedf} igr oaffkfl }rkfl& \`df }`d }raknkflqtg}d k rdoglfkxdm. |d |k}o` baoj }g }a}d 3. }`d kfk}kan }a}d&
4&2 Rddrydm \grm
Ki {gtr srglrae `a a narld ognndo}kgf gi rddrydm |grm. k} k egrd diikokdf} }g nd} ndpkesn{ ea}o` a }rkfl. afm md}drekfd kf {gtr g|f ogmd |`d}`dr k} k a yarkabnd grrddrydm |grm& Igr dpaesnd. kf}dam gi ogmkfl
"ki" rd}trf KI:"}`df" rd}trf ]@DF:"dnd" rd}trf DN_D:
znd}}dru(znd}}dru~zmklk}u+ z{{nyan&km 5 {eNggjts({{}dp}+:rd}trf KMDF]KIKDR:
u
|`drd {eNggjts rd}trf af kfmdp kf}g }`d {ebgn }abnd. k} k bd}}dr }g md}do} rddrydm
|grm afm kmdf}kikdr ketn}afdgtn{. a ignng|8
znd}}dru(znd}}dru~zmklk}u+ zkf} k:
ki ((k 5 rd\grm({{}dp}++ !5 3+rd}trf (k+:
{{nyan&km 5 {eNggjts({{}dp}+:rd}trf (KMDF]KIKDR+:
u
]`k }do`fkqtd klfkikoaf}n{ rdmtod }`d ftebdr gi }a}d rdqtkrdm. afm rdtn} kf eanndroaffdr }abnd&
4&? Mdbtllkfl Ndp
Ndp `a iaoknk}kd }`a} dfabnd mdbtllkfl& ]`k ida}trd ea{ yar{ |k}` mkiidrdf} ydrkgf gindp. g {gt `gtnm ogftn} mgotedf}a}kgf igr md}akn& ]`d ogmd ldfdra}dm b{ ndp kf ikndndp&{{&o kfontmd mdbtllkfl }a}dedf} }`a} ard dfabndm b{ sdoki{kfl ogeeafm%nkfd
gs}kgf %m& Mdbtl gt}st} ea{ bd }gllndm gf afm gii b{ d}}kfl {{WindpWmdbtl&
Gt}st} kfontmd }`d rtnd assnkdm afm ogrrdsgfmkfl ea}o`dm }dp}& Ki {gtrd rtffkfl ndp
afm {aoo }gld}`dr. sdoki{ }`d ignng|kfl kf {gtr {aoo kfst} iknd8
dp}drf kf} {{WindpWmdbtl:kf} eakf(ygkm+ z
{{WindpWmdbtl 5 1:{{sard(+:
u
-
8/8/2019 A Guide to Lex & Yacc - By Thomas Niemann
34/39
?=
An}drfa}kydn{. {gt ea{ |rk}d {gtr g|f mdbtl ogmd b{ mdikfkfl itfo}kgf }`a} mksna{kfigrea}kgf igr }`d }gjdf yantd. afm dao` yarkaf} gi }`d {{nyan tfkgf& ]`k k knnt}ra}dm
kf }`d ignng|kfl dpaesnd& \`df MDBTL k mdikfdm. }`d mdbtl itfo}kgf }ajd diido}. afm a
}raod gi }gjdf afm agoka}dm yantd k mksna{dm&
$tfkgf zkf} kyantd:&&&
u:
$z/kimdi MDBTL
kf} mbl]gjdf(kf} }gj. o`ar + z srkf}i("}gjdf $^f". +:rd}trf }gj:
ukf} mbl]gjdfKyantd(kf} }gj. o`ar + z
srkf}i("}gjdf $ ($m+^f". . {{nyan&kyantd+:rd}trf }gj:
u/mdikfd RD]TRF(p+ rd}trf mbl]gjdf(p. /p+/mdikfd RD]TRFWkyantd(p+ rd}trf mbl]gjdfKyantd(p. /p+
/dnd/mdikfd RD]TRF(p+ rd}trf(p+/mdikfd RD]TRFWkyantd(p+ rd}trf(p+
/dfmki$u
$$
Z3%;U* z{{nyan&kyantd 5 a}gk({{}dp}+:RD]TRFWkyantd(KF]DLDR+:
u
"ki" RD]TRF(KI+:"dnd" RD]TRF(DN_D+:
-
8/8/2019 A Guide to Lex & Yacc - By Thomas Niemann
35/39
?4
9& Egrd [aoo
9&1 Rdotrkgf
\`df sdoki{kfl a nk}. |d ea{ mg g tkfl ndi} rdotrkgf.
nk}8k}de~ nk} ,., k}de:
gr rkl`} rdotrkgf8
nk}8k}de~ k}de ,., nk}
Ki rkl`} rdotrkgf k tdm. ann k}de gf }`d nk} ard st`dm gf }`d }aoj& Ai}dr }`d na} k}dek st`dm. |d }ar} rdmtokfl& \k}` ndi} rdotrkgf. |d fdydr `ayd egrd }`af }`rdd }dre gf}`d }aoj. kfod |d rdmtod a |d lg angfl& Igr }`k rdagf. k} k amyaf}aldgt }g td ndi}rdotrkgf&
9&2 Ki%Dnd Aebkltk}{
A `ki}%rdmtod ogfinko} }`a} irdqtdf}n{ gootr kfygnyd }`d ki%dnd ogf}rto}& Ated |d`ayd }`d ignng|kfl rtnd8
}e}8KI dpsr }e}~ KI dpsr }e} DN_D }e}&&&
afm }`d ignng|kfl }a}d8
KI dpsr }e} KI dpsr }e} & DN_D }e}
\d fddm }g mdokmd ki |d `gtnm `ki} }`d DN_D. gr rdmtod }`d KI dpsr }e} a} }`d }gs
gi }`d }aoj& Ki |d `ki}. }`df |d `ayd
KI dpsr }e} KI dpsr }e} & DN_D }e}KI dpsr }e} KI dpsr }e} DN_D & }e}KI dpsr }e} KI dpsr }e} DN_D }e} &KI dpsr }e} }e} &
|`drd }`d dogfm DN_D k sakrdm |k}` }`d dogfm KI& Ki |d rdmtod. |d `ayd
-
8/8/2019 A Guide to Lex & Yacc - By Thomas Niemann
36/39
?9
KI dpsr }e} KI dpsr }e} & DN_D }e}KI dpsr }e} }e} & DN_D }e}KI dpsr }e} & DN_D }e}KI dpsr }e} DN_D & }e}KI dpsr }e} DN_D }e} &
|`drd }`d dogfm DN_D k sakrdm |k}` }`d ikr} KI& Egmdrf srglraeekfl nafltald sakraf DN_D |k}` }`d eg} rdodf} tfsakrdm KI. g }`d igredr bd`aykgr k dpsdo}dm& ]`k
|grj |dnn |k}` {aoo. kfod mdiatn} bd`aykgr. |`df a `ki}%rdmtod ogfinko} k dfogtf}drdm.k }g `ki}&
An}`gtl` {aoo mgd }`d rkl`} }`kfl. k} ang ktd a `ki}%rdmtod |arfkfl edald& ]grdegyd }`d edald. lkyd KI%DN_D a `kl`dr srdodmdfod }`af }`d kesnd KI }a}dedf}8
$fgfago KIP$fgfago DN_D
}e}8
KI dpsr }e} $srdo KIP~ KI dpsr }e} DN_D }e}
9&? Drrgr Edald
A fkod ogeskndr lkyd }`d tdr edafkflitn drrgr edald& Igr dpaesnd. fg} eto`kfigrea}kgf k ogfyd{dm b{ }`d ignng|kfl edald8
{f}ap drrgr
Ki |d }raoj }`d nkfd ftebdr kf ndp. }`df |d oaf a} nda} lkyd }`d tdr a nkfd ftebdr8
ygkm {{drrgr(o`ar + zisrkf}i(}mdrr. "nkfd $m8 $^f". {{nkfdfg. +:
u
\`df {aoo mkogydr a sarkfl drrgr. mdiatn} ao}kgf k }g oann {{drrgr. afm }`df rd}trf
irge {{ndp |k}` a rd}trf yantd gi gfd& A egrd lraoditn ao}kgf int`d }`d kfst} }rdae
}g a }a}dedf} mdnkek}dr. afm ogf}kftd }g oaf8
}e}8,:,
~ dpsr ,:,
~ SRKF] dpsr ,:,~ YARKABND ,5, dpsr ,:~ \@KND ,(, dpsr ,+, }e}~ KI ,(, dpsr ,+, }e} $srdo KIP~ KI ,(, dpsr ,+, }e} DN_D }e}~ ,z, }e}Wnk} ,u,~ drrgr ,:,~ drrgr ,u,:
-
8/8/2019 A Guide to Lex & Yacc - By Thomas Niemann
37/39
?}gjdf}{sd63. aflnd braojd}
kfontmdm& Kf }`k sar}kotnar dpaesnd. oard et} bd }ajdf }g dftrd }`a} }{sd an|a{
srdodmd yarnk}&
9&4 Debdmmdm Ao}kgfRtnd kf {aoo ea{ ogf}akf debdmmdm ao}kgf8
nk}8 k}de1 z mgWk}de1(-1+: u k}de2 z mgWk}de2(-?+: u k}de?
Fg}d }`a} }`d ao}kgf }ajd a ng} kf }`d }aoj. g mgWk}de2 et} td -? }g rdidrdfod
k}de2& Ao}tann{. }`k lraeear k }rafigredm b{ {aoo kf}g }`d ignng|kfl8
-
8/8/2019 A Guide to Lex & Yacc - By Thomas Niemann
38/39
?0
nk}8 k}de1 Wrtnd31 k}de2 Wrtnd32 k}de?
Wrtnd318 z mgWk}de1(-3+: u Wrtnd328 z mgWk}de2(-3+: u
9&9 Mdbtllkfl [aoo[aoo `a iaoknk}kd }`a} dfabnd mdbtllkfl& ]`k ida}trd ea{ yar{ |k}` mkiidrdf} ydrkgfgi {aoo. g {gt `gtnm ogftn} mgotedf}a}kgf igr md}akn& ]`d ogmd ldfdra}dm b{ {aoo kfiknd {&}ab&o kfontmd mdbtllkfl }a}dedf} }`a} ard dfabndm b{ mdikfkfl [[MDBTL afm
d}}kfl k} }g a fgf%xdrg yantd& ]`k ea{ ang bd mgfd b{ sdoki{kfl ogeeafm%nkfd gs}kgf%}& \k}` [[MDBTL srgsdrn{ d}. mdbtl gt}st} ea{ bd }gllndm gf afm gii b{ d}}kfl
{{mdbtl& Gt}st} kfontmd }gjdf oaffdm afm `ki}'rdmtod ao}kgf&
$z/mdikfd [[MDBTL 1$u
$$&&&$$kf} eakf(ygkm+ z
/ki [[MDBTL{{mdbtl 5 1:
/dfmki{{ndp(+:
u
Kf ammk}kgf. {gt oaf mtes }`d sard }a}d b{ sdoki{kfl ogeeafm%nkfd gs}kgf "%y"&
_}a}d ard mtesdm }g iknd {>}st}. afm ard gi}df tditn |`df mdbtllkfl a lraeear&
An}drfa}kydn{. {gt oaf |rk}d {gtr g|f mdbtl ogmd b{ mdikfkfl a ]RAOD eaorg. a
knnt}ra}dm bdng|& \`df MDBTL k mdikfdm. a }raod gi rdmto}kgf. b{ nkfd ftebdr. k
mksna{dm&
$z/kimdi MDBTL/mdikfd ]RAOD srkf}i("rdmtod a} nkfd $m^f". WWNKFDWW+:/dnd/mdikfd ]RAOD/dfmki$u
$$
}a}dedf}Wnk}8}a}dedf}
z ]RAOD -- 5 -1: u~ }a}dedf}Wnk} }a}dedf}
z ]RAOD -- 5 fd|Fgmd(,:,. 2. -1. -2+: u:
-
8/8/2019 A Guide to Lex & Yacc - By Thomas Niemann
39/39
top related