Top Banner

of 39

A Guide to Lex & Yacc - By Thomas Niemann

Apr 10, 2018

Download

Documents

Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
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:[email protected]://members.xoom.com/thomasnhttp://members.xoom.com/thomasnmailto:[email protected]
  • 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 {&gt}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