Download as pdf
Download as pdf
You are on page 1of 392
ic colsvectealenle Language Implementation Patterns Ai Pee SME Create Your Own Domain-Specific and General Programming Languages [#] Terence Par # SRE Femi BE HASRERBOET! APARRSAETH OSH, KER HERSBSLA, Terence Parti Pmeihie SHES LRA SLAP RTA B A. ALARS WME MES (DSL), RERREARD, SH SM", MEMRAM SRAM, CHR! MTRANAADE. Guido Van Rossum Python 2 5 PEL a OMEN ABEUL FA SEDO, Snes. ROR SAE aes SEG PES. URIS TARR SH. PER TR WAPEEANTLRZ 2 Terence Parr. (HET SEH 31 Fi OBL BK, SECT EPA LS EOE. WIAA LB SAVER, WHER FUEL, WARS REE ET ERASER ava TAR, ROL OEAR Fava. Beer ine ASHE, UA ead REE a UT DT RY ROR. SP LAN SME WAVY PA FFCLLANTLR, FRG ART LP ANTLREY 7 AE. BEE PET. JO), BER AMH AEST BEX, HARUKA Os FR. ESET, LIRR ey SM 5H ITT AE. ‘erence Parr AEH ACEH SOV ERENEEE , DEST, fh HEF SEANTLROWA ( antirorg ) 4 BUTS ( stringtemplate.org ) IRTAIFA LYE. Terence #HH{EIBM. Haber - YT. NeXT, HUNAE SARA, BIA CANTLREUAUETD © 128 978~7~5609-7700~5 —Boishar RUBE: RED ° MI ERIN: RRR ERE RE: RS Sth. 72.007 ize S SOUR [3%] Terence Parr = FRE ® FE BR AEP ALARA oh aE PRR + at AS fi APHECRTRGS GAL MSRAMS HEAR ACMA A. SEE LPR A A FL a A DR A A AP BREA [RB HS ESC SECA I SARA OA AR A A SPOTL ARES «A BAG UH ATE. as A ee NA FL PE AS es 82 FSS EL AC SR HP Jew BS O84 LAT AE WL LP A a (iS E SUED wise A 978-7-5609-7700-3 : Language Implementation Patterns. Copyright © 2011 The Pregmatic Programmers, LLC. All rights reserved. de ANIL BEALS AE: 17-2011-198 & (BB zm (CIP) Sa RINT RMR / GD) Terence Pare Hs 4 HR FBI AH. RR EE HMA 2012. 4 ISBN 978-7-5609-7700-3 1. 1. OT OF Ost OMA W.TPaZ AAR PR SACP RAR AE (2012) O11 104 REA LMAK C&]Terence Parr # FRE AMM PR SR GA EE BEART Ae FEM OM Le SEALED. RIES THREAT. Ee Be Ae AL Ch Bl» BRD Rah sil — He 430078 ea. C2T)BTSSTAB7 x fF PRAYER a Wi). Wik Br ED a 4 BRAS HH AR, 787mm X 960mm 1/16 Fie: 24.5 F Ms 428 FE Mi he 2022 AE A AE 1 RR A EDL hs 72.0078 AS BS A ED Be ak] A as HE AAR PIR HALE. 400-6679-118 Rik ARE rem BHA BROT RB MAA SSM BRAUER ASI PCIE SEA MORRAT ERS RAPER SRRURGEE AVE, Terence Pam 43S UG UE Tsnikiea TAAE UFR REP BSROOTE. DIAS A CASES ANS (DSL) , FEALIHE SARE, LL TE, KAM AAMM MON PRE OAR, BE SWE EAS EBLE TAT ANG Py TT > Guido Van Rossum Python WLR FR RA” MATA ET! > Dan Bomstein Android 5F & Dalvik HEL UUtr ait 2 ABN SAS Rt ARREST Bo > Tom Nurkkala tit ROK EASA REE Terence WHET ES Ri PAS. ORANG! TR SME MEE, MARAE ARETE, WA. MORAINE > Adam Keys httpy/therealadam.com ii > ReWA aye FRA AT ICA BEA KARR, DU ME AREER i BN Pal, PER. MA AMR. TATA AURA OLEATE, BRI RNERT OR PRAT A. BARON MAD. ape EA WH, RABBLE. > Kyle Ferrio ## Breaulty DEAD EC FERRE Bgl Acknowledgments Mot, SEARRINGBE, Susannah Pfalzer, 8 SHR, BANSAL, ® Wrath, AA WIE TRA EE. ALLIANT RE Qa, BRIAR HRA ARS IEIE) + Kyle Ferrio, Dragos Manolescu . Gerald Rosenberg. Johannes Luber . Karl Pfalzer Stuart Halloway. Torn Nurkkala, Adam Keys. Martijn Reuvers. William Gallagher. Graham Wideman #1 Dan Bomstein. Wayne Stewart HAIER MHRA, (th FEL AR HR DHE OE T AEN OG. Martijn Reuvers ASSN SST ANT ORC. IX ELSE FE YC Gerald Rosenberg Al Graham Wideman, fth((s +o Amde Ot SBT PERIL, SLL RII. RSPAS TR TEE LAT RT. PS Preface BARRA SE SV, LAR A TO WIR. HS, KSA SA LAO. AS RET GE, RAR VR: “TCR ET RR. J CE a ar oe te di ae a ae Ko RUIN PRE, DEN IRI HY. Ba As ER SOAR ARNG.” FRM, ALAR ESR? FEUER TA BE BAHL PE, FB aH. ASAT RAG AKAN UMAR RH, RIE AO SET. CORRES ND, BORE. ABT SASL JARI SA PARR. eT te AS ASHORE, Ma AGRA. AREA TRE OTR GSE BEATE a IESE Ae BIR SIE RA PREAH RATT EMA SBS TAKA RE. BORA, ie PR HABE AER ALG ELE SA-ERIR, Ri, KERR BS PPR PE AR Alii, ASS ANE CA RE OP Bet EO a a ROBE, BORER, BUREAU ER. A STARS TIL, FA, RAAT Scheme FARES Si FLIRBEL TEN ARR Java SS BTA BD, LER RE DR ELH AES Bnd BO AGSE. x > BS ABR! What to Expect from This Book REFSSH A AUS LA AA EL A RE. PH FMRI, BARKS. Cet, ARRAS LARS UAE RR. AARRESTA. WRIA. ARAB BEAD APR HERE ROE AS. BRIE FE, WASSER, RTP ROUTE SAR, HE Pct REBEL. ACTH TLE SINE, RR ES. MOE AGH 8 OUTED. ilk, REIS Re A ED BR. BEL, AAR, ADT RATA, ARR MRO DEIN LA. BREPARD ROU, EUR TS URANO SZ, De BE BN BAS A IA RE, ATA CTL UMASZANIE > . WSCA MER, CRM AIS CEMA) MBER CERMANER) BAR. BRALRES ETT RAM, (Gis, AERPs TARA. AE RHMRARAR AMARA MISS, PREPRESS RAL, Bit SME. RLM ED RAM. TELIA LAE ALIA Ts EAR RRS J SRL, ERB AD IES WAU EES A CPOE AE BT, SEL AT, A Fy CR AUR LRM BS RATES. MT TTR, RT IX, RATER AIRS SHH. Lem, HEC SHEN, fEgB'S Cine #. ACH aval. CAMERA ACERNIR. Kove, FAR Eclipse RAF RMP WALA, PRT Java HOE, BAHT Java REUTER, HOU, SAA A AAAHBR << xi BePHVAL TT LARA EH SLRS A, Ko aR SRE FLIES (domain-specific language, DSL). SUR SHI & Rit We HR SCV ATE. ATUL ADT Ae te SU pe MES. Hd Mathematica i 2 shell WAC A. wiki #eidi A. UML, XSLT. makefiles. PostScript. Batiivk, MBE CSV A XML ik. 4 DSL A SHIVA BAELIE A (general-purpose programming language, GPPL) , Ht MW, C. Java il Python. DSL i RAT RRSE, BAe CATIA BO i8 VAR. SMNAT Osh. HoT SQL BLL MEM GPPL KAD. ABDAR How This Book Is Organized ABS} DLT SY. o MAS: AR ER, RRA SE ETEK © DATES: NT REIEA ChB DSL ER GPPL) , ALARA HO ERATE. LEN ET, REBRRRANIR MAAS (IRE 2 AR BE), TERE SRA JEAN CHAM int Al cloak) . EMIS A RST RA BAK. «WR. AES 4 ARR. CEM RMS RE ERBES. © EIR: AMRIT SUPA a, EES ofa BSS | StringTemplate 4: ACA. FF 13 HIRES FOES, BUSAN PES HT ITT EB. PBS PH, RR MERE, tba, BOMB RRA. 1.247 “BURL” LUE TOME RAR Ble RESET HGT xi > BS BpawRAt What You'll Find in the Patterns Serhster 31 BER. AF APSA 7 ST eR. Sk, EO. AAS o AM: RMP RRREL NERY, BHM MRA. le in, Ht“ GRAETL” A “Hath, RATA RHE ROR” . ARAMA AZ ERR, DUEL BRE NIREA TE. ° Wit: RBA - PUREE AR, RRM AAR. BAX 0 (0 fF Be HA © SH: REPEL Java SARL COIS ANTLR 228 MBALA). ROAR AE, ARRAY MRCMA. eo ASE: GAAP BERK, EATERS RARE TAF RA Td B, BARABCUTRMIIER. BENS SAAR, CNTR RTE IF ER, EINRE AWS AEM. ADPHANRKS Who Should Read This Book RRL A RE ALAM, AGS AY SELLE AOS Fe, MI AAA. RAE STULIE RZ, MU eh ee DL. ARSC. RR ERP EP BF AEP REABIHAR RUCKER RCA MOS, AERIS RRB BK, RRR PRAT MAS. RBZ AGA SORIRES << xiii OH, BURA, aI, aR Ek B Any yEs POLAR AE LIRIAS, ARAM. AGE BE UP EUR, ATP WIAKA DB How to Read This Book MRR EE TE. IN 1 ATER” FPR, EE ARK). BF RRR 2 REEL” AUR 3 ERE BER”. MPO TM CESS REIN) PALA RRA WAI SLE, PRA TS, ART BEER 4 Re « NGREA REP Mea” BRATS “HUTS SRE” . RT ERA, SRBC R ONT, BARE TB, HR SEEN “SC” AUBERT “ARRON A” 3K 2 BER Bi. BOS Se A I, SE SATA A ATE RCT TR ERT SUA, BART ARES 6 BCR TUE PES” AUR 7 “PUM RRR OES 2” . RATATAT SR. TSRERAT HALA BR KA, MPRAGS x, BRST x RR ARA. PER TER 8 Bo “MPAA” RMU HSS. PAGINA TT RRR BUS 9 BE “PORES” FR 12 FE “UTE BUERLDSL” « SRPMS. NARA ERI, Ma GARFCR, UR—IY AAR, HLT ALE Mh EH aR a NBS, HORST CHENG REAR - WAT LULA PINAY RRA ANTLR EP PTA, SRR ET 1 hups/fww progprog comitles/ipdst. 2 hmpi/iwwwantlcorg/support. html. BREST xiv > Ss HAT ICN. Soh 43 A A PRE SPRASBSVLA Languages and Tools Used in This Book eb GAA IVE Java eS, (RIP EEE :HOSAL. SURI ASSAY TRUS BG PE Java OSE, CRULAREANS. “KM, RAPER ED, Ti AS. BOUT TERR BSCR APRERAMIER, BAMMWES TA. teal, MOEN, ak HAVER RMT COR, PRES ELASMN) . HAIL ZAM, TAT RRO AER. RRA AAT REAL AAS FL. AR, RAVE RAES POS, BOREALIS Aa/ERLA. AA HSAS) ANTLR Ske CREA UE RARUT RE AE EN IRI. YE TARRASN, WT Md 20 FONSI ALOE. MAR HI SCAHAG T ST, GRRET HONS, MRAM. BAS NIE foU07E ANTLR, ABV RABE AAER, FB IS AUD RIED T HE. ATS OU SR 12 SAE REE BUG 91M SuingTemplate 3 4 ALA HH. StringTemplate LARUE “iEARHT AE” AER, BEACHES TA ALE TI SORN 5 UR ASDA S|. ART LF] HEAR aR Re 2 PI 9 BL, LACH ARNE ARE LTB ATO TS HUGE ANTLR Al StringTemplate AE T 2, th ASdz REM Ay REA YA) BR, ACMA CAROUGE, BARTERIA LE MESR, BISENY BHM. 3 hp: Mangpop.com. 4 np: aww tiobe-com/index php contentipaperinfotpevindex her. 5 ibe: AALE A ISP Ras A HTML 275. RMEEESIE BPRAVESALR < iw MR, RFS PF ANTLRGA PATA. B43, ROMA PORES T fh. ABGE AR AE TL,RT E fl B E ICR AD S Gil, DRA NTE CANTLR BLRRTEEHY (Par07) RCE, BRE SRG. RASH I US ERE THE, BREA TRA, PEEP, MRE CHL, PRIOR GARE CUE. ESET OE IT, NE PYG BLL SEA Ee LIC BAA AHS ONE SAR, TBE DSL, 5 uh BEREAN TL ‘Terence Parr 2009 4.9 parrt@cs.usica.edu MESSI Ek Contents B1aBS RATED... Bie BAMA LD FIR 12 13° 3 14 4 Ble RATER 21 RAAF et 2.2 AUR F RE HT AE... 23° (AICHE DSL KM ERAT RE. 24 RTCA Hist — WCET Rae. ERS LL) BRA ARATE BERS LLB BRA ET RE PED LLC iNT FTA MPH aE... BIR BM AAT a 3.1 AFR S OAR SRT AT 3.2 GAZ BT eecseentenrnee 3.3 RA A RTP BAH MAH... iv > BR BOCA ICAL REUT EE. Ratt ARH RS. B20 AA BAS MARNIE TORT .... 41 At ARE .. 4.2 PRA SUEH 4.3. fifBedH ANTLR. 4.4 (08 ANTLR cid }9 a AST BR, PATE. AOL IFAM AS’ BS ALG A AST BE — SLU AST. RSS BAFRSHeAY 5.1 UTA I. 5.2 BAST 5.3 ARYESCIA A 04k nei le 5.4 Hei) SUCRE BCT Ae BATS SULA... Rt woviE...... BATE BtlcAeas, ACE CRHRMEENHAS .... 6.1 WSR REFRESH 6.2 HRD AE ASR SPE 6.3 EAT FES BAA SUPRISES 2. BU REE RR RATS 22... R7e FMR ANTS 71 SiR HE TE HRD MEZESAE 72 APR .... BT), SCRURIRINT SX BUA AMAR. BOS PHAM... BAILS SACRE. BSS RAT. ROR RBM. 9. RS RAE EE RSI 9.2 SERRE IFES ie: 9.3 Kee. BAIT Tt SPER, BAO +H BT HAE REE... #10k HEPA 10.1 Rib Pa 10.2 ULSI HRA 10.3 ALARA 10.4 mf A . BAIA FA ICAER. Bt + BURR, BASH fp eerEaE. BABS BARE RIED..... ANE BeBe Ui RAS AE 12 EF RMS 113 ACSA BR <4 RESELL vi > BR REEZAHGL 12% RARER OSL B13H MIRICA... BaHR 11.4 Gee RSE HY... BATA TA SRS BAS + MT MAES. WAS} Hee A ety wes 12.1 #4 StringTemplat 12.2 StringTemplate f)t# J... 12.3, SA AME EAU BURY CBD 12.4 AERA ATR F A BE 12.5 ERD SCHE SK) ORR .. 12.6 ABARAT... 12.7 eS PAE HH RES... 13.1 EAH aT 13.2 EAA ES oR st 13.3 ABE XML........ 13.4 AGEA MRSC 13.5 SRT A 13.6% Java WMA 13.7 RAGS... 13.8 iF HHA... 1 aba he tT ee Getting Started with Parsing 318 BSwmawaR Language Applications Cracked Open AIR | RORUBE OAR HSUEH SL BEE Hg ) . RT RIVERS, SEMA OR RRA GABE. SATET, REEVE TRL, MUR TE S BAAR. REL LATA PUTER, de Je AJL He SIH ERAT AT, TR EAN LE TAN Ale 1.1 ABM The Big Picture WE MAREK A, IEMA, PBEM E PRR ILE DEE, J PARAM. ROK, BREAN, HEN MATT SAR. AE) RATE) CWO NEMAED BL, RVR ES ERA ET LN A RE, BARC EE A AES. FLA FART BEM Mahe, SCE AMARA, CPI} FEMA BEAT “UR”, Se Hie ot a A He yh I) ZETEC intermediate representation, TR)» SURREAL. HLKRMOAL AOE, HEIR ZHENG BUTE, FMR TARE. BARK tea RATE RAM. 4 > S18 BSVHDR REESE i8 Blac ALI] z He BIR BAT) ae wa] 21.1 Bam RSSRe Ry TEL, TE RRR MA AA CCE aa AY A RK) o MRE ATHRMA, WKAR RRM ERARRTE, 10 ALAMEDA. BAMA OAK. © RAINE: HER LP AAA. MATRA CL BATH, SOR, WAT UU UR. LMC ae IE. EWA LAZ BOER, U2 Java fi class RAR. 0 EE: ESA GE. Rae. A MRKAMGAE Cobject-to-relational database, ORD) HEN LA, FAI HLA, BASE RE RAS. © RAFEAS CORPRGLS AR): REPRE oR Ia, AIRE SRE TE, SER RR PER AAD RAE HELD A, FELL 1 EARS ES, wiki 8) HTML ue HWA, (OETA. HSER. RR Ra AE, SS. TRS, MWR RRR, CS BRKT. oR. AOL, AEH, MuaBTIRe. MUMIA SE%, 3) POP UMA. BWA Java, Ruby 4i Python fA TIL, AAPA PARA, 12 SURE <5 1.2 BRE A Tour of the Patterns SILA AAS 31 PAAR. MUR AAR ELSE ESR, thas FRAO, MRA RAR, GRAS, ARENA TE PRES 7. eT aa 2 GMA 3 RAT RHEE RMEA, ERR RA ARE Me RAMOS HRN, MOMS, SAE MERA. PFGE 277 LRT. BEC TRE J2RSR HARA. LAPT ARE ERR. GIES AERIS SHER) SCT AREA, GET RR BRAK. HAE EF Lae SPT. ANTLR! Cade REUTER) OTL A A TRE, RAMEE Hi PRL Be WRAL OTRAS, NURS SALE SRE RSA DT. {8 RT ESAS, AAA MP TAR. MORIN EDR AEE SK, UAT ARENT AE Dat SPB CHEK UD ANRABSA, MARA AM NEDA ERT OBE) (SERRE AREA, (TRB. RAEN, SN Mh, ARERR. BNR RTE, RTE, BOE SPA aR. WAG SRE AA TRE, UAT. LRAT eR ALRITE AT INA BUNT AAT, BERN ET REL. 1 iitpyrewwanticong. MESSI 6 > 1s Berne Het, MEAS 7) AY RAT RRIR ZA GE MAK. TTT AB HE DRA REAR P FEB] HTT. SET RAM RERR ER S TES CH), RATA, MARAE TT HE RAT. Wi, MEASHARR, RRNA RT. H, PARAS RAMRARER. SAE KA PET, i SA ERA FEAT ARiBah MEEERNA Dy TBR RTA, BT LAA MERE HY, (Ey TR. IR SERRE ALTE AO AT. (LAR READE, SUC ARS A UA RR, HFSW. HARSH ARMA BIR, BEE TE EMD RE a APO EB A BORE T CATA IR SRNR. Bb ANH BE AG ig BE FS 1 Bei A IR BE) CHB CHR ARP LIS) CB SUR RAE TTC REAR, BELLA ae HL Be hm SE TE A, BR RA-TARANER. HEMT AT RE RE, BBE TRAMATER, BARD MBAR ARE. RAT SER LT Fy (A A a A ORT AE NR Sh TR SR). MM RMB AY (abstract syntax wee, AST) , “EAEAL. Sie CRATE AST SUNS, SAT AAU E 75. HOU FT US A this. xy, DO ANSUVAB: /\ Y che “x Zc4K AST (SEH, ERATE RSA at CB a ee TEAIS) EAST OAH) . 1.2 MAGE 47 CRANE, RAHAT ABA HRH A, DAMS RAPE, (PRE REIRIE T AEe E PR T . PUB AAW I FR. RASA A REE TS EAR. MRT ES“ AT BO" « ECM, MERE AEE SAT, EMI RE EEA LA 420%, VENUS. PRR A, RU PBR PR, TOS ea SBF BRA) « Bal FEMA AAT IR TERMITE OLS, BRATOLM SRE, BRA aE RE. (ORE IR IR CRRA F PM AST . RMA PAAR Bh, AEE BT EA AR OBESE). Sh AT FORA D UATE) . RAMU LEHI Re, ARE Bk MARA i LR. WRABF LASS, DTA LAR ER AS, RRA SERRATE FE. BS UAE TAT RUA RUSH. MBB NEE, TRIMER RAR OEM. cer K eRe HNT-TWRT, REAR MMAR. FRBANSN BEARER Fe SSH SR, DOA AE, WAR AAUE RS, GE SOND). SES, MATRA: A x BREA? ERT ALR ALTA), ART HY EE HE ARE eR ANBOHENAM, RHEE AE. BRL, TOS RIR 6 sat BT MEE RIRMA S MBSE 8h 81s wSwAR EAA LH SNE CB). ADU EIS EM. FESR AR A Ti A SE ALS AE 3 9 Fh: PAUL, EEE. C HMUIATE RPDS, MTA N TA Bh BE ATES XY F Java, CHRICHANES, CHEMIE CMU Ae, CRB SNARE Hs TA RSE RE FRB BB Al SEHR SAR EB — BE. Hei, FARA AEMAE HR. 8 UR TU RAR ITI, AT RABE HE PARLEY PUSHRVRS ER. MOT CSB st BOA, TARARR + OE AROS CHAIRMAN, a) DARIO S KA. ATARI, Bolo t+AMR I +A W POTTER. WOR SAC CRIN AR ORS Java AY class RAMP I, UE MOREA PLEURA Pe RRR, TE. RMA BD APES NEIL TT IR HME, (BM RS eZ RE. SO RE CLM, RRO. ROTH. Poto +e AOA. MPRLLORE, EeRSC Ae etry CaLaTBE AT DLim chill 48 GRAD MESS ZH 13 RARER < 9 CAE SH, ETA, HE. BERLE bE Re aaa MOTT SEN TAY, BERT EL ELAR REDAT Ett], tT ERE AT BV SE AO CCM, SPAR REE eR MBE BLT). FEMA ARIES FEARS, FET EECA a EH. MS EH AP PATA AMOAMELOREROBR. SRAAITA, KER EMT AG AER, ARNT RRR Teme — eT. Dit, Ar TRACE, TESA A EP REET. BSR PEAT, WR MEHR RET A, BLA SER RA FED, A BEIT AT Ae. TRS, SE De a oh CRS ILE). ARABIA SIL AAR A EE AA, AA ER REMAN ETA. Meal, SSI. AP OMT ER” . BEATS FARM THAR, FEMAIL T SuingTemplate (L312 %) . > DERE RA RRER TAA TLR, REZ, SE BUSTLE, DEEZ i, ABA Ne: TENS 13 RAKHI SMB Dissecting a Few Applications WALRAD IND ERR, WRK, Me ROR eT SNM SRF. HUE, BUR HAAR EHH, LID ROLORRS EE TAR. BRISA, BILLETS GRA, RCH ARETE KEE 2 hupilivwwstringtemplate org. MESS RHLT 10 > Hie BSH (ERIN. AES A, UR eR A, a {ASAE SRE OTA. LE, A GET WARES BT) Be CIC MARR «MEAL AE ESHA ASB FZ] ES (AS Ba IAL SAS SAL ZU PE RESO LIZ RTA SOA TRG, URI A OM RES. RTT ICT SUNS FRH FPRRRR BESSA PRR RETIREE ORE. ISERAOR LA, PRES LPL HBEPPADHE RS. abt RR RAUL PERRIER OSLER. (RL MAR. HORANESEAA—TEW (HERA 0 Bl 255 ZAIRE KO RRAT, AURAL TH. (1.2 ARR TRE ROSE AR. BOC OCP WR, GPE TGR PS. UTE, RBS TUT “TK 18> — 3”. SHEMET RSP HE, RTGAR PARSE, FI RPA RE BARES, Us CSRS HMR TTS BERMAN) » DURA S kt EE FRAT EG RANT)» SLIEMA RESDLLE AS TT ARTA, LT BK Seas T . 21.2 FRRRRRORKAE 13 PARKES <1 4248 Java, Lua’, Python, Ruby, C##I Smalltalk‘ A MSS PRL TOES RIOL. Lua PRA PRA TS FH, HL aR SiG: € LO RRA, Ruby HRBAARUP RAR + TM RMR. Java SRF 1 FRRA Java MUG (bug) PF. AGRE, GRA ED NAGE” SHIR, GRALINZR REGS han A Rae AS ER. FIRE point RF, THK sexx) MAHL TiS, A BME ADP ay chis x AD x ABE ROE xe clage Point { fmt x.y7 void setX(int y) ( thie.x =x; } // Ht AikRoetx (int x) void setv(int y) ( thie-y = y; } BLUE FEF 1A OY RB BET WEE AA dR a GE FR, ERAT ARG, WAR SE CEE ROT BRS RR, JG FPS RES , BA RSA, BR. ecb flee, FR AA OR BLA HE , — EBS PP ERRAB ak. NPR, CRAM SHIN BRE. RE, RARE AMF this.x=x MOULD. IE GALA HT) HWE BE this.x Al x Sheets DER. LRATAPS ES, KAP RAT SRR ASIEN. B13 TEAL TARRY. [83 O19 RNS 23 p/w ua org. 4 hitp:/fen.wikipedia.og/wikieSmallalk_ programming language. MESSLMAT 2 > Bis BSUHOR KR PAB PRT. RPAH, ER Java TRA Jip FERRARA IR, TER LAB. RET Java TUBBY. BR FOGG. HOU. SOUL. HORA. RURAL) IR, BART BRI. AAV, WBA IR AK, BURA NS CORI 1D) RUG BTA SE EL A IR TT aie FARCE SE AE, FRR. ART ae PE RUAIRRE To BRS PPIEI CULPA LA). RBS IAEME RAB D WER, SCENTS TES BAS, WATE, ZIG RT BA STONE. TR MF EL, aS AR CLEA Toh HB lexer) Stilt F FES Tis _ [oa soi. Java a 1.4 IRA Java (HHO IR BoE HRD MESS H A 13 PAREN < 13 TAROT TS, WE IR. ACERT. RE IR BL aT GR BT EET RRTE BOR, BOREAL ANAL UK MEI A T BRAG ADB MRSC ABEL, ALBEE TRS, TTA ABT BR AE HHAMRAA, BEMBRSA—-B, WSR OT EZ SR eB Ts RAS UATE HATA S|. Hea, sex) HAA x BPR HE sex) AUG, (BREE RZ AEA, REACT ANAS. HTS eit, RACH x WENT. DEBE —, FRR ERA. WM ABA RT HRI CHUA Bug SRINEERORAOR) , BIA REECE AR ED cor PEER. i RAE RAT REET. A, TUL BN ES, RIK BAVABOR TER. WRAL, WK bug MHA file, line, filename FF Bi, NA FTE XA StringTemplate RH (5 12 RARE UNITE) » BE BEAT EEE RI sebugs:bug()>* // stitaTBuget BAM bug |) BK, ug: : self assignment to " roport (bugs: bag(b) ::= FLEA Bug NRA RERE EI AA bugs IRE report UR, StringTemplate SHE Aah RR TS SPLAT A. SURE Java BEERB javac iD HE, MURR, ERS ANT ERAT EL MRT, Het FE Java SHES 2 Java frie class Xt}, DRIAL SAM AST, AGS LAEHE (byte code engineering library, BCEL) *sk2€ (184 class X#FES, Bt FD AERA class LAA, TORRY CORSET Clb, FindBugs'@h 8 T3kHAS0) . AS PRM RMT. SBA THAT A — BL, SRAM, RA SR FOARBT RANTES 2. Java MERA TANI, ERIE E AWG THAR. BUR AMS E, R ame FART T 5 ntip:/jskarta apache org/besV. 6 bup-Mfindbugs sourceforge nev. MEZSSA 4 > Sie BENDA ona @1.5 HN. class Ce) Java Bie secxQ AAS HMM Fs aload_o 1 sehis Aa aload_0 Jf vehis Aa getfield #2; // this.x A# field #2; // MURS (KAA this.x)] AAthis «? SUPPER MHD TETRA S EER, UAE x PELE ARI. ARB PERLE KE SHES AES ETRE. AAI chis.x AI x ARAVA, B84 gecticla M purtiera PHBREBURDS HE. TE RATE TORI “GePR” ISLAZ. javac HMR, IEA DRL S ESCO CAB SESS HAE. ER SURE CPE A ER HORSE ALS. C MiFes SH — Ae tir SR AEE C BIR AE CZE UNIX RB LIE co ME gee) AL HARON CREAR. (SL CHAMP TS MEE, I CREBRA RTS. TERME Z Hil, BER C AACR AUG, Hei. May include HO. PREY. BADER AMT TSI CRE, Bitar Abe, SRC AES COAL RSE SCA AE). 3 TAR BR RR CE AL 44. FRA mo RRR RE RETSLARA 1.3 RAMRHSSMA <5 PB DAUR RESCH Al, FOR 1.6 PAR. SOE te HR AAR: void £0) (7) BAM coc BEAT HIME: Sepp t.c tmp.c abc cB Aemp.c 8 ea: Tech // PE RAH ES 1 BER RRAB ine>* Ha | crema! B16 Cea iwikvte MR tc BAS TIO staio.n, PALMER AMIN cop.c Bh, Hi Kc OWRAS U-VERSE occ ho SIN LS M-s, RETLLE unp.c PERIL RNS, OAS LBA UL ARES. RE § gee -S tmp.c 4 detmp.ctit emp. 8 S cat tmp.o Arak Sc taka, coxt. glebl _£ ft 2 RXauee push Sebp 7 Bites movl tesp, tobp + Mab subl $8, tesp leave 1 ARIA ret 2 Reo LE ssubsections_via_synbols FUER as th, RADU AICHE tmo.0: § ae -o tmp.c tmp.s — & detmp.silMAtmp.c $ 1s tmp.* Emp-c tmp.o tmp.s 8 REESE SH ET, 16 > Bis Bane TRI ARNRFRSEZ, FEDKST C iF hai. FEL 17 ran C PERRIER. PRILLIA TA AE. C BAPE RENT ATR LIS, TETRA, EE IR, MARE EE, JB IR AP HIMAS, BUTE P RIERA GERS. Se PR Lise oF FEA C Biv BE HIE, TORR 7 C eiRON TEA eR SAR MTT ALIS MTA ERE C REPRO OLR RCA, GRABER ARIAT AN, AE RR A RE AY A es ge F. RMCSAAARMRS ACM, RIES ARALE TERA RES, DORE BKM “BG” —~ coe BREE CAMO) (ALSUDS) . FEAR AR TGS SEMAN RAR, ATTA A EE SE MA BMEs. PERERA REA EAE, PR ea FA BA RAE EAT LE 458) C MBB C++i8S JORWIZE Bjarne Stroustrup (CHM Rit BL ICRA) Uy te Hee SERB. BURY Cort, (RAEI THES CIB AUR MZSMUATAUE, (4 DIF HET E ELAR HT. F0T Hei SEELCHS AT ABIE, Stroustrup 1H T BAAS CARVER IER CHS 6 MEEST HAL 14 ABSMAAHSBAM < 17 AUER, (HRS TARE Cofront) . HEME CHE C, TBA oe BREN CHER. REREER CHUA, WBZ HHT am RE TELE TEL TC ERM KS LAT. B18 RNR CHAM NI AR. FMS B18 C++ mR A RUTL, WE SARL, 28 -> RRR RAR, TS A BIIPEROA, TE CBR. EE BN AT, ERIE RET AE FUE RIS ESR, DL I A. 1.4 FBSWAMRSENRT Choosing Patterns and Assembling Applications REBT RAR, —RANENER, RAW ENE. MAR AAMFRBMR ANTLR SALINE AR, ABE RATT aE ta: RSA DSL, — AAV RL AHR GPPL’. MAIEV, BUR ATTRA SLSR HDS RB CEE A, (EUR ZD Baa SAAS a OR tt MPRA S AT aes Sem. He, BO. HR FR, MLM MTA. BRAG EAR CPPL, BAP MARE OASZRStME? Bil, RARE BABA SINE SB DR SCAR. ATA PPAR EEE BUTE TES EAU 7 HAA: General Purpose Programming Language, BAH C. Java FINRA LSS, MBIT 18 > Bie BSR RESTO, BAAN, MESAAMHRA, AERA DSL HE GPPL HBX BRA. LUT SRARRA, LEAR MLZ. PURE AEE AT OE TAPE, AS RT A OS iB BEML. ADT, EVRA, TE VRE AE T th tan HARTA AN GE HE IRS Dee. EERE A EN, FAKES READE NM GRR, FR, RAR RWEZ FRA. BAMANAMR OBER NAR MRAT . MAS AOEE, PME ARAL UAIEA BR OE BMT FCA AH Bh TET OTE. BRAS, ACS 1.1 oe ASHER, HISES RAM CL ISD): TRAY C2 MSD) sf EOTIN (O83 BBA) AER) CR 4 BUS). AM RAR FAP RR, MSL AAT Ee AT 1, 2, 3 TERI. 2, 4 MARK. A, MURA A ATE. BFS 1 ABBE Re RSM, RTA MBL OF 1 ABI}) , REO ARREBEB 3 ABs PRT MSHA. HS IRA, IR ALE 4 Ansett SAE. BRAT REE Sh ML, PEM BI 2 ASP Est Pa ae RL, DUST aE ASSIS, HES HO AL LEAS HAD 5p TAN A TR St Re RECAP AERA. RAZ, ROT FRAT SUR EZ ER TTR. NERS, WTR assign) Marawbine(}~ ROG AIR BM, MRT CARA MITES) WERE AL i 9 ME FT BARA TRUTH AST GALANT ROR KGERD MANERA AT SEAT AEE. ATRRME AST 2S. BERT LL ATA HY pa BERET Se Ue 3, TOA, RR N. LR F. Sop AEUCE HT vnile HPAOS RIA AST. 14 ABSMBAKSBAER < 19 AS AST, FIMERAAES 7, AST REESE SCAR PPT i eh RL. Lett, EAST WELT Chath CARR) ACHES te ABEL, i SS ASHES Fike FAST WARS, GRR, Wide PORTA EBA. Bh 6 HANIA 8 RASA TT IK AEH BAYS BAIR] AST Ws, aM LIRR UT. ERT MER. he, BERRA MINR, ZNO AST BET I. We SIAM A. CURIS PEAS. AEA 11 BEARS 12 ASAE RAY. RTA ERASED AST MSTIRY, SEERA. 12 LORE E.G EES UE OB, AAG RG. EA RR HS, PLR, TST, BRA Se BARRE IZ a, RAR IT ARI AST TS . “S Pi MAE MATE MERE TEMES IY, Wy TALL, FURL AS Se Aa AE WR, (CURR TIR, RURLS ABT AST, SABER SM EATE he KERR OS MAB ISH, FTES LZ en. RESETS S28 BARATIA Basic Parsing Patterns AERA MAL, BURA A. BART PE PORT, Waa CAS. Lew, RFE BI AE i AE TRAN, ARTA RMR. RAT REAR. PACERS SPANK OI: RAIA hi CR AS eS. Chin, AMA WA, BUUREN A. AUN LTR SUAS EER REBT © ABNF LSE SVG RRM SRI. APSA AT RLA—H, AUTRE ARTA RAS. IP, RT LARP PRINZ MEH. MRM CHT A. WSR STRAT HED BARN. 3 TTA TE. AE. FE BER LEAN. © Bt, J SCEEBGTT BEARER, GAPE REA ESC CESCHORT Bae) FORLABT RMT, Sis HRMS. © BERS. LLIB FS WAD ATA, ROPMRSUE SRNR a Fettoken), AGE TTA MATER BH 2 > B2e BHT © BERS, LL DBI SMEAR ITE, BIR AH HURBIA BAP BT BR. CAE AAT AP RE OME, Je ALR na SE PRMIAEET AAS AT IE. © BOUND, LLOQ IT RRR, OER S RL, C BUDE ke MAA FPR IE LTEAT ERAT RETR A, ARR, LEA RAR WE AE SCAR SET A A TT OE BS RAR. BMS Se, RASS REL TA (PB. EMME AEF Rit, CALERA DSL SAAT AS PRE”. ANTLR SP APAT ARIA: RT AREER CE 8 aE TRE, WL, BRERTE ACR ASS 3 BORER E Ao EP aS ORT AS. ERGELAS RRR Za, REHBDB. ERK whe PRR SPECI aE TR RAE RST A, WAR RGE, ABU. BACT ANTLR, Seabai e e LIE See Hy BEER. SUROd i ALE ERR PHL, BE LS ESE REE Bi, ATVB AE AIS 3-H. BRE A TRE ha, 24 RaAIMS Oa identifying Phrase Structure ESAS TAPE) PHATE A IE, WONTAR Ale UME POUR Aa ORRIN), BERGE, see RIC: ONES CAVEAT) HAAR MIONINRE, REE HOBEDK shit dial eA RMSE MRED « RIBES I S 21 RBINTA < 23 PUM, return xsi;> xT PAAR TARO DAF RERISA, TRE AAPG EREA), UAE. WML R MR OP: return x+t ; aa expr returnstat ‘stat SUB, AEDT WP RATA: stat oe woth’ che; AW PLA AG, PEWS TAM. DOTA LI BREE, RERRRLA WANS MME T . FIDE ES Ae — if Ta RRA stat if x<0 then x=0,; aK oar expr expe then stat Ber, assign Siw 4 Sr x = “0 assign 7X stat Me dp Stat t 0 REM RAR, AMSA AF OA TR. TARTAR ER MEAT RA TCE TER IR APT Aa A REFS AHA 4 > Bl BARTS 2.2 taReS TB ARTES REBEZTAL Building Recursive-Descent Parsers PRR THEMES BE GE, FaRRa wT MES). MIRNA, MTR OMRIE RMT. At, ET SE Srhs LARUE EK ERE RH, BEM PT Ss AAO MA TCEN AT. ARR F, SR iRPTERE BI Seite my ave TEN DT ED BY, WAEBL, RENTARIIES RLS “CBBC, SLMT ERIE” . PATRAS TR, A RNR MEE ie CRS A) SS SHAT, BRE MRT RR EA CARLA oP Battie BUARAT AN AAT ho ENG AL RE LAER DE a CL A PR A STROAMA A) MSW, CoO ce), RP WAR SALTER AS, MRE AARAN SALA macch() MWR. PBT Bh, WE retura 261 PAM BR: (48 stat () AMARA BM + / void stat () { returnstac(); ) void returnstat() { match(*zeturn"); expr(); match. > void expr() Cmateh (txt); matca (t=); maten( natch |) RACCMATLEINEEMTOAMEA ESRI, RIK MATE ATES. HEON, CEVA match return") Zit, MARIA A TORSION F: retum ox +1 | t maten(*return") SEAR (BLESS) APRN return, MG BATT CR O+S) HEAT. Babette aS eT ZY ETC. BUR EAOHE, FAROE RR: =: t HEARS REE, POUR LIT if. return RUBE AIE? AT AHR AB AMAA, stac () BRP aE Agi P NS i ETE CBU aT AIC) FMEA, DIBBA FR RETA 2.2 MRIS TRIM < 25 stat () BISCAY s void stati) { Sf | ) roturnstat (); else if ( «WAMEPAR identifiers ) assign(): else if ( «WARMER ite ) ifstat (1; else L ea ARI “OAR” AN RRETRAAA SRS L 208 FMRI Ie “MAE” BOE HA. RRA ST RRRRARAD, LEME ES aac, ROT en. DA, REA TORR, MIBK, CARNAHTAM. 12 See ETAT AA AE 0 OR 5 ABE ES BS eT PO HAT — ee TE) RUC A PATS. Le. RARE REY return DRIAL ADSI “found retumn” , BEL MTMY recurnstac () HRA: System.out.printin(*found return") ; RAMA STO HE, LAR RAO A EE, FR TONAL, ARBOR THY, CRT, Re mreRG ee MMS, DUT Ae MOORE. WREF LMS IMRT, DLN RR, RPE LET ARRABBZRT BUTEA, MT EAA BAS TEAR, Hy SPREE, PARA BRAD Pah ee at Pa A AA A EMS RAH EDL. AE BIA MUST it LIB EBT OTF ABE EB Ki ROT REAR A REFS, 26 > Bom BART FE, MARHLARA, REA AL SOLE. ISBT HI IEE FUSE) DSL SHARMA. 2.3 (SFA DSL KAIBA TES EESTI Parser Construction Using a Grammar DSL ER BIA FP Ba NA, RS SL A HOA, SAAS. TURAL SAM DSL RAIS, ARTEL PORE. URS DSL FRESE RICE, REMC WMATA A PARE UT ARAL RE. JR bi AGAR BT AB. AP BUNS. ADP FERRARA, DSL rei s MISC ET. TPO TEAM PO, MMT PI. FoR IE FRM A PMA OTC, ARATE A if-then-else FEZCAN St SZ BERS ARF LU ea RE AT". ATR AR TAS, AY BA ANTER (1S iH Jy ta BIBS: stat + returnstat J) treturn +07" | assign 1 R008 Me | tfstac 7) "Sf x<0 then x=0;" returnstat exp: MPNSO EHS RIERA assien tte! expr: Afetat expr “then! stat ; Pott en oe 1 #ifroturnstat ? Tone ee ge 11 WSLS ERA? | so 1) LARA MAPK APE. FAM otar IA MA “stat HA returnstat, assign MA ifstat ik 3 AH i 0” oY EA SH i a PR Ha A star EE CAT AR ANTLRWorks) » set +(e} (estas) 24 WASTADF < 27 returnstat HAA APETRE, PACA RAE TR. roturnstat —e[ ~vetors }-—+(expe}—e[ = WF ERAN, HAART, boot, AN FAR IRI expr MI ay PU expr BARA UL, OH, EBAR RIAL AERIAL oy WARE RAA SWRA 0 MR? MEE AMR. FIG SHH POEMS: HANS ALR ASE BIG 2.4 WAsSTAS Tokenizing Sentences co a REM, MIARP ARPA ARE), AAA. (OBR TE FAME, BAPTA RATL. MAME EERE, Bae B LM, —- AAT. TREE RAT, ATTRA Ae RR, RR BT. RTE ARSE, THETA, Ber RAS Wh. ORE print 34 RIE: BERLE AT MTSE, RRA TERT ARR ATR. HT HAF, TRAP A RRS, TPR, fe Mat. FEE UHR aE. TTT TT a SY, TK La Hae ALTE. RESET Ht 28 > 2 BATS RESET beso, “FTA Raa AT AE eer a 1. BF ABE (0..9) SORIA ID a BERR FREEBIE ZA expr SEMIN A Ya BE) AER 4 ART expr 1 ID's" Number // #@étreturnctac? LID ' Ble BAT DiARSR AM TBE RAE SOTA a aR TTT IK ASE, CREA IK, (SOR RED. BON SHA WF OE. AEE AIS (— FEAR SIAL SC fer BR, RON PROM AMET He RI. Ea a: rinks URAL ABER, BRA: SUK AR LB A 9 0 FG PR void 2() ( £(); matoh(x); ) GRY iA, WA ER PBR et. SE TARAS AAR TE. BTU SE WEMGG, RARE, WK DR, SAR. BO Shy FEA TRON PAT AB ENED A SIE a APRS o HE RAMUK A, EMMA EMT BIS BOE ABT 8, REAR SEIN AB WT) — A Pe public class G extends Parser ( // Java PR LOMuS URE AK MET Lo Bik HH Sako PLR a 2 them Parser RAE COEUR, Ueto maT EA if. FAMUANSER Pim SCN ETA © ABA NE Tr public void r{) ( RETEEREL 24 BRRTHOF < 31 GS LGB, ALUN AD BU SSR AFR A AH th BA I: Oy MUS FAAS TE <0 A WAR TNRR FUR ERO 7 aA, MARE PAT match (7). aS BL, match() Eb Parser RHO ML IME A SR x A TCR SAAN BAG, COLES INAS, APU “CIEE” TORMENT. ISSA TER, UNE eR Ma cob SP aR RARER E MMT 7 HE LEAS, BL SAMA. ATURE To, HE UF public static final int T - «itt #4»; YR AEBEE MICAS, lta: public static final int INVALID_TOKEN TYPE = 0; // BX AKO public static final int EOF = -1; J) BOF WR BY REAR He, WT Java HAS enum RACE Fy ENG? AA A HE FARE enum RY RGBURE, PARI Atha e115 aise a ah Ah FAM APR RENT RUMEN, TURE ATE ANS ET, ‘HUH switch BL if-then-else ERIKA FMM. UPPEMM MARIA, MA HAAMOMARAE. bel, FRAT AM (ealti >laalt2 >|. .\ealtn >) ev subrule — KAMER Af ( ROR BAe MRA WHRAR RAM — MAAS, RRA LABOR BT switch i RID: toh ( «lookahead-token» ) { case ) ( macch(7) : SPREE. FUE LLP ove_or_nore FON BIRBE do-while HF: go ¢ «Wfalternatives> D while ( lm BATT WAT ee LL(1) i893 T BEA an FA NLM REAR FARCE, RTE. AVENE ES ARIA ITM AE. EDTA RIT SEAR. ORR RA, RAVES, Hew ORLA AE SP Mia WG AMAR) 5 wit AMT MES EH EET. BAER TMA TEE AY ve: WE CSD AXA CHR BSH) . PH “WERK” DAM, BAGRM, “RDA. HSA So IAAT I MARU, RATHER. PIR AEA He 2.4 iP BTR PURE a AIS. TAPIA ame ARE PRA, AES ALTRENSARAPER, REA A Oe, ECM, Comma, LARACK, RBRACK SF. ta)VQPAT AR — ML th He RADE MAE Fe RLS BERT RRR RMA, ALBA AE LEPINE AT, BAC AAMT RS Aah way. FIRS AMEN, BENETEN TATE CARL) BR AE. RE, WATE PE RT te BARI ARITA RMR. bon, MA, RTT. BIRT, REN IK. BRR, TLE MERA 4. Pa CAA ARAT BEST WIL FE TEATS iterator) , MAE SRE noxetoxen, RVREARAAMEES TRADER TAL STRAUB. ECM, aL UR. SBSH 24 WEERADF < 35 Fi Bid 2 RE FEY next token (| REAR: public Token nextToken() { while ( «lookahead-chars!=BOP ) { // & java.io PEOF==-1 LE ( «il@P#FHe> ) ( COMMENT (); continue; } SDL Rel SME BA, switch ( « ) ( 11 IM ARE AT Re Hee A, case «£m» : ( consume(); continue; } // sit case <#H6G0ATI~ : return TL); (¢ ke 71 case () 7 // AHMAIE xB HAARAIIF, FID) 2.4 eH AD RED Re CMI ROT AR. He EMG AM R HES RAM TAMER, FAR, JET SSE AEM IC, BBLBI] cor_over Wik: Listhexer lexer = new ListLexer(args10})s Token t = lexer.nextToken(); walle [ t.cype |= Lexer.#OP_TYPE ) ( System.out .printin(t} ; t= lexer.nextToken () ; > System.out.printinit); // EOF DREMARTARET DS, WHO, at fa, bt MBESLAN

You might also like