Cvervlew

O Lex (A LEXical Analyzei Geneiaioi)
geneiaies lexical analyzeis (scanneis oi Lexeis)
O Yacc (Yei Anoilei Compilei-Compilei)
geneiaies paisei based on an analyiic giammai
O Flex is Fiee scannei alieinaiive io Lex
O Bison is Fiee paisei geneiaioi piogiam
wiiiien foi ile GNU pioieci alieinaiive io Yacc
i
#
nf°°erţ Þfrserţ Lex f° ?fnn
Scanner Parser
symbol
table
lex.yy.c
9403
name.tab.c
name.tab.h
Lex spec (.l) Yacc spec (name.y)
L¢x] I!¢x
Ya¢¢] bison
C Compi!¢v
Souv¢¢
Pvogvam
€ex Ŵ €fsL exlnf f°fer ae°erfLor
O Flex is a iool foi geneiaiing scanneis.
O Flex souice is a iable of iegulai expiessions and
coiiesponding piogiam fiagmenis.
O Geneiaies 0. wlicl defines a iouiine 0
Ũ
eeLo° o€ f Lex ½enl€lnfLlo° (Ŧ €le)

Ù
C global vaiiables, pioioiypes, commenis >
Ú
[DEFIMITIOM SECTIOM]

[PULES SECTIOM]

,:,78:-74:9308
lex.yy.c is geneiaied afiei
iunning
lex x.l
lis paii will be embedded
inio lex.yy.c
Define low io scan and wlai
aciion io iale foi eacl iolen
Any usei code.
e€l°lLlo°s enLlo°
O le definiiions seciion coniains declaiaiions of
simple name definiiions io simplify ile scannei
specificaiion.
O Name definiiions lave ile foim:
3,2e defi3itio3
O Example:
% ¯0-9`
¯,-z`¯,-z0-9`·
Lex ½enl€lnfLlo°ť e€l°lLlo° enLlo°
Ū
pattern ] corresponding actions ]
.
pattern ] corresponding actions ]
pattern ] corresponding actions ]
.
pattern ] corresponding actions ]
egulai
Expiession
C Expiession
#%
¯1-9`¯0-9`· yylv,l.dv,l = ,toi (yytext);
retur3 NUMBER;
·
¯1-9`¯0-9`· yylv,l.dv,l = ,toi (yytext);
retur3 NUMBER;
·
Unsigned iniegei will be
accepied as a iolen
You n¢¢d to d¢Iin¢ th¢s¢ two in .v Ii!¢
!
es enLlo°
O le iules seciion of ile flex inpui coniains a seiies of
iules of ile foim:
5,tter3 ,.tio3
O Example:
· 5ri3tf( "A3 ide3tifier: %s\3", yytext );
O le yytext and yylenqtb vaiiable.
O f aciion is empiy, ile maicled iolen is discaided.
nLlo°
O f ile aciion coniains a , ile aciion spans iill ile
balancing · is found, as in C.
O An aciion consisiing only of a veiiical bai () means
¨same as ile aciion foi ile nexi iule.'
O le ^etu^n siaiemeni, as in C.
O n case no iule maicles: simply copy ile inpui io ile
siandaid ouipui (A defauli iule).
Þrenee°ne Þrobem
O Foi example: a '' can be maicled by '' and ''.
O le one maicling mosi iexi las liglei piecedence.
O f iwo oi moie lave ile same lengil, ile iule lisied
fiisi in ile flex inpui las liglei piecedence.
Dser Coe enLlo°
O le usei code seciion is simply copied io 0.
veibaiim.
O le piesence of ilis seciion is opiional; if ii is missing,
ile second %% in ile inpui file may be slipped.
O n ile definiiions and iules seciions, any indenied iexi
oi iexi enclosed in % and %· is copied veibaiim io ile
ouipui (wiil ile %·'s iemoved).
#. L¢x mat¢h¢s tok¢n with !ong¢st mat¢h
npui: STU
ule: [a-z]+
olen: STU (noi "S" oi "aT")
#. L¢x us¢s th¢ Iivst app!i¢ab!¢ vu!¢
npui: \[_t
ulei: °post¨ {printf
(°Hello,¨); }
ule#: [a-zA-Z]+ {printf (°World!¨); }
i will piini Hello, (noi "Woild!")
wo Noies on Using Lex
xfm½eť Lex
{
#include <stdio.h>
#include "y.tab.h"
}

id [_a-zA-Z][_a-zA-Z0-9]*
wspc [ \t\n]+
semi [;]
comma [,]

int { return INT; }
char { return CHAR; }
float { return FLOAT; }
{comma} { return COMMA; } /* Necessary? */
{semi} { return SEMI; }
{id} { return ID;}
{wspc} {;}
scanner.l scanner.l
@oe°s Ŵ eafr x½resslo°s
n: How aie iolens defined and iecognized?
Ans: By using iegulai expiessions io define a iolen
as a foimal iegulai language.
ovma! Languag¢s --
Alplabei - a finiie sei of symbols, ASC is a
compuiei alplabei.
Siiing - finiie sequence of symbols fiom ile alplabe
ormf Lf°aŦ Co°L
Empiy siiing special siiing of lengil o
Language sei of siiings ovei a given alplabei
(e.g., sei of all piogiams)
egulai Expiessions:
A ieg. expiession E denoies a language L(E)
eafr x½resslo°s
f Ei and E# aie iegulai expiessions denoiing languages
L(Ei) and L(E#), ilen
· Ei | E# is a iegulai expiession denoiing a language
L(Ei) union L(E#).
· Ei E# is a iegulai expiession denoiing a language L(Ei)
followed by L(E#).
· E¯ (E siai) is a iegulai expiession denoiing L(E siai)
leene closuie of L(E).
An alplabei symbol,a, is a iegulai expiession.
An empiy symbol is also a iegulai expiession.
?fnnť whfL ls lL?
Yacc: a iool foi auiomaiically geneiaiing a paisei given a giammai wiiiien in a
yacc specificaiion (.y file)
A giammai specifies a sei of pioduciion iules, wlicl define a language. A
pioduciion iule specifies a sequence of symbols, seniences, wlicl aie legal in
ile language.
eeLo° o€ f fnn s½enl€lnfLlo° (Ŧ €le)
x.y

C global vaiiables, pioioiypes, commenis >

íDEFNN SECN]
%%
íPDUCN ULES SECN]
%%
C auxiliaiy subiouiines>
¯.c is geneiaied afiei
iunning
lis paii will be embedded
inio ¯.c
coniains iolen declaiaiions.
olens aie iecognized in lexei.
define low io "undeisiand"
ile inpui language, and wlai
aciions io iale foi eacl
"senience".
any usei code. Foi example, a
main funciion io call ile
paisei funciion yypaise()
e€l°l°a vfes
expr : expr '+' term { $$ = $1 + $3; }
| term { $$ = $1; }
;
term : term '*' factor { $$ = $1 * $3; }
| factor { $$ = $1; }
;
factor : '(' expr ')' { $$ = $2; }
| ID
| NUM
;
e€l°l°a vfes
expr : expr expr '+' term { $$ = $1 + $3; }
| term term { $$ = $1; }
;
term : term term '*' factor { $$ = $1 * $3; }
| factor factor { $$ = $1; }
;
factor : '( (' expr ')' { $$ = $2; }
| ID
| NUM
;
$1 $1
e€l°l°a vfes
expr : expr '+ +' term { $$ = $1 + $3; }
| term { $$ = $1; }
;
term : term '* *' factor { $$ = $1 * $3; }
| factor { $$ = $1; }
;
factor : '(' expr expr ')' { $$ = $2; }
| ID
| NUM
;
$2 $2
e€l°l°a vfes
expr : expr '+' term term { $$ = $1 + $3; }
| term { $$ = $1; }
;
term : term '*' factor factor { $$ = $1 * $3; }
| factor { $$ = $1; }
;
factor : '(' expr ') )' { $$ = $2; }
| ID
| NUM
;
$3 $3
efault: $$ ÷ $1;
xfm½eť e€l°lLlo°s
{
#include <ctype.h>
}
token DIGIT
/ecl.y /ecl.y
xfm½eť @rf°sfLlo° es

line: expr `\n' {printf(°d\n¨,$1); }
;
expr : expr `+' term {$$ = $1+$3}
| term
;
term :term `*' factor {$$ =$1 * $3}
|factor
;
Factor : `(' expr `)' {$$ =$2;}
| DIGIT
;
/ecl.y /ecl.y
xfm½eť ½½eme°Lfr Coe
ylex(){
int c;
c=getchar();
if (isdigit(c)) {
yyval =c-`0';
return DIGIT;
}
return c;
}
/ecl.y /ecl.y
%%¦
=include sidlib.l>
=include sidio.l>
=include ¨y.iab.l¨
void yyeiioi(clai¯);
exiein ini yylval;

"private" { yylval = (int)strdup(yytext); return
PRIVATE; }
"static" { yylval = (int)strdup(yytext); return
STATIC; }
"void" { yylval = (int)strdup(yytext); return
VOID; }
"cout" { yylval=(int)strdup(yytext); return COUT;}
"extends" { yylval = (int)strdup(yytext); return
EXTEND; }
"if" { yylval = (int)strdup(yytext); return IF; }
"else" { yylval = (int)strdup(yytext); return ELSE; }
"while" { yylval = (int)strdup(yytext); return WHILE; }
"for" { yylval = (int)strdup(yytext); return FOR; }
"int" { yylval = (int)strdup(yytext); return INT; }
"char" { yylval = (int)strdup(yytext); return CHAR; }
"float" { yylval = (int)strdup(yytext); return FLOAT; }
"double" { yylval = (int)strdup(yytext); return DOUBLE;}
boolean { yylval=(int)strdup(yytext);return
BOOLEAN;}
true {yylval=(int)strdup(yytext);return
TRUE;}
false {yylval=(int)strdup(yytext);return }
void yyerror(char*);
extern int yylval;
}

"main" { yylval = (int)strdup(yytext); return
MAIN; }
"class" { yylval = (int)strdup(yytext);
return CLASS; }
"public" { yylval = (int)strdup(yytext);
return PUBLIC; }
{yylval=(int)strdup(yytext);return FALSE;}
"=" { yylval = (int)strdup(yytext); return
EQUALS; }
"==" { yylval = (int)strdup(yytext); return
EQUALIT; }
"<" { yylval = (int)strdup(yytext); return
LESSsER; }
">" { yylval = (int)strdup(yytext); return GREATER; }
"<=" { yylval = (int)strdup(yytext); return LESSER_EQUALIT; }
">=" { yylval = (int)strdup(yytext); return GREATER_EQUALIT; }
"++" { yylval = (int)strdup(yytext); return INC_OP; }
"--" { yylval = (int)strdup(yytext); return DEC_OP; }
"!=" { yylval = (int)strdup(yytext); return NOT_EQ; }
[.] { return *yytext; }
[,] { return *yytext; }
[;] { return *yytext; }
[[] { return *yytext; }
[]] { return *yytext;}
[{] { return *yytext; }
[}] { return *yytext;}
[(] { return *yytext; }
[)] { return *yytext;}
[*] { return *yytext;}
[/] { return *yytext;}
[+] { return *yytext;}
[-] { return *yytext;}
[_a-zA-Z][_a-zA-Z0-9]* { yylval = (int)strdup(yytext); return
IDENTIFIER; }
([0-9]+)|([0-9]*\.[0-9]+) { yylval = (int)strdup(yytext); return CONSTANT;
}
[a-z]+[[] { yylval=(int)strdup(yytext); return ARRA;}
[\n\t\r]+ /* eat up whitespace */

int yywrap()
{
return 1;
}
fter executing this file in LEX we are getting the output LinearSearch.yy.c
%
#include <stdlib.h>
#include <stdio.h>
int yylex(void);
}
token MAIN CLASS PUBLIC PRIVATE STATIC VOID COUT STRING ELSE
token TPEDEF EXTERN AUTO REGISTER RESTRICT SINGED UNSINGED FLOAT DOUBLE
VOLATILE
token IDENTIFIER CONSTANT
token IF WHILE INT CHAR EQUALS EQUALIT LESSER GREATER LESSER_EQUALIT
token GREATER_EQUALIT INC_OP DEC_OP NOT_EQ FOR EXTEND

start :typ_s IDENTIFIER {fprintf(yyout,"s",$2);} inheri '{'
{fprintf(yyout,"{\n");} s1 '}' {fprintf(yyout,"\n}\n");}
|typ_s IDENTIFIER {fprintf(yyout,"s",$2);'('{fprintf(yyout,"(");} dtype
dtype ')' {fprintf(yyout,")");}
;
typ_s : type_s
|typ_s type_s
;
Now we are generat|ng the yacc |nput f||e
nere |nput |s L|near5earchŦy
type_s : CLASS
{fprintf(yyout,"class ");}
| PUBLIC
{fprintf(yyout,"public");}
| PRIVATE
{fprintf(yyout,"private");}
|VOID {fprintf(yyout,void);}
| COUT
{fprintf(yyout,system.out.println);}
;
inheri :EXTEND {fprintf(yyout,"extends ");}
IDENTIFIER {fprintf(yyout,"s\n",$3);}
;
arrayinitializ: arrays bin_operator initializedparam
;
{fprintf(yyout,;\n);}
;
arrays :dtype ARRA {fprintf(yyout,s,$1);} CONST
{fprintf(yyout,s,$3);} ]
fprintf{(yyout,]\n);}
|dtype ARRA ] {fprintf(yyout,]\n);}
;
Initialized
param :bin_operator CONST {fprintf(yyout,"s",$2);}
',' {fprintf(yyout,",\n");}
bin_operator
;
bsetvalue:BOOLEAN bin_operator bvalue ';'
{fprintf(yyout,";\n");}
;
bvalue :TRUE {fprintf(yyout,"true");}
|FALSE {fprintf(yyout,"false");}
;
dtype :INT {fprintf(yyout,"int ");}
|FLOAT {fprintf(yyout,"float ");}
|CHAR {fprintf(yyout,"char ");}
|DOUBLE {fprintf(yyout,"double
");}
|VOID {fprintf(yyout,"void ");}
|IDENTIFIER {fprintf(yyout,"s ",$1);}
|CONSTANT {fprintf(yyout,"s ",$1);}
|BOOLEAN {frintf(yyout,"s",$1);}
;
bin_operator:EQUALS {fprintf(yyout,"=");}
|EQUALIT {fprintf(yyout,"==");}
|LESSER {fprintf(yyout,"<");}
|GREATER {fprintf(yyout,">");}
|LESSER_EQUALIT {fprintf(yyout,"<=");}
|GREATER_EQUALIT {fprintf(yyout,">=");}
|"*" {fprintf(yyout,"*");}
|"/" {fprintf(yyout,"/");}
|"+" {fprintf(yyout,"+");}
|"-" {fprintf(yyout,"-");}
|NOT_EQ {fprintf(yyout,"!=");}
|{ {fprintf(yyout,{);}
|} {fprintf(yyout,});}
;
operator :bin_operator
;
S1 :select_stmnt
|iteration
|assign_stmnt
|func
|'{'
{fprintf(yyout,"{\n");} S1 '}'
{fprintf(yyout,"\n}");}
;
select_stmnt: IF {fprintf(yyout,"if ");} '('{fprintf(yyout,"(");}
expression ')' {fprintf(yyout,") \n");} s1
;
expression :declaration_stmnt ;
declaration_stmnt :dtype bin_operator dtype
;
iteration : FOR {fprintf(yyout,"for ");} '('
{fprintf(yyout,"(");} for_loop ')' {fprintf(yyout,") \n");}
S1
|WHILE {fprintf(yyout,"while ");} '('
{fprintf(yyout,"(");} expression ')' {fprintf(yyout,") \n");}
S1
;
for_loop :declaration_stmnt ';' {fprintf(yyout,";");}
func :IDENTIFIER '(' {fprintf(yyout,"s ( ",$1);}
assign_specifier ')' {fprintf(yyout,")");} S1
;

extern FILE *yyin;
extern FILE *yyout;
{
yyout=fopen("Linearsearch.java","w");
yyin=fopen("linearsearch.cpp","r");
yyparse();
return 0;
}
After executing this through ACC we are getting y.tab.c
yyerror(char *errormsg)
{
printf("s\n",errormsg);
return;
}
int main(void)
CCnCLDCn
O Wlile doing ilis pioieci we lave faced a loi of
difficuliies lile-
O n poiniei landling .
O n case of meilod calls.
O Dynamic aiiay and linledlisi inieipieiaiion.
in fuiuie we lope io ovecome ilese ciiiical
implemeniaiions in oidei io give a new dimesion io
ile pioieci...
esornes
O Google diiecioiy of lexei and paisei geneiaiois.
O Flex lomepage: liip:]]www.gnu.oig]sofiwaie]flex
O Lex]yacc Win¸# poii:
liip:]]www.monmouil.com]œwsiieeii]lex-yacc]lex-
yacc.liml
O Above linls aie available on couise webpage.

nf°°  9f¾   f° fnn
82-4 9,-0 
[a^UW ^[Y^S

$.,3307

9403 
[\W^

!,7807 

0  .
W ÈXW SUUÈT_[Z

3,20 9,- . 3,20 9,-  

0850.  

,..850. 3,20 
#

€  €f¾ nff°f – ° f
O W _S`[[X[^YWZW^S`ZY_USZZW^_ O W _[a^UW_S`STW[X^WYaS^W \^W__[Z_SZV

U[^^W_\[ZVZY\^[Y^SX^SYWZ`_ O WZW^S`W_0  . cUVWXZW_S^[a`ZW0

78:-74:9308 WXZW[c`[_USZSZVcS` SU`[Z`[`SWX[^WSU`[WZ Z a_W^U[VW .  °€f ½ n€nf°% € %   Ù Y[TSbS^STW_\^[`[` \W_U[WZ`_ Ú _\S^`cTWWTWVVWV Z`[W  U W  U_YWZW^S`WVSX`W^ ^aZZZY 0  % $% (  #&$$% (  .:.

 ( . €°°¾ n° O WVWXZ`[Z__WU`[ZU[Z`SZ_VWUS^S`[Z_[X _\WZSWVWXZ`[Z_`[_\X `W_USZZW^ _\WUXUS`[Z O SWVWXZ`[Z_SbW`WX[^ 3.20/013943 O  S\W % ( . (.

.9438<  \^W__[Z  ( ( .47708543/3. /..9438< . .  ½ n€nf°  €°° n°  #% 5.99073 5.94 709:73&# < Z_YZWVZ`WYW^cTW SUUW\`WVS_S`[WZ 909  [aZWWV`[VWXZW`W_W`c[Z XW ...99073 WYaS^  \^W__[Z ! .47708543/3.

 ¾ n° O W^aW__WU`[Z[X`WXW Z\a`U[Z`SZ_S_W^W_[X ^aW_[X`WX[^ 5.99073.943 O  S\W <57391 3/03910783 909  O W `W ` SZV WZY` bS^STW O XSU`[Z_W\` `WS`UWV`[WZ_V_US^VWV ..

n° O X`WSU`[ZU[Z`SZ_S  `WSU`[Z_\SZ_``W TSSZUZY < _X[aZVS_Z O ZSU`[ZU[Z__`ZY[Z [XSbW^`USTS^  WSZ_ !_SWS_`WSU`[ZX[^`WZW `^aW O W^W`a^Z _`S`WWZ`S_Z O ZUS_WZ[^aWS`UW__\ U[\ `WZ\a``[`W _`SZVS^V[a`\a`VWXSa`^aW .

9 n °n 9  ¯ O [^W S\WS  USZTWS`UWVT   SZV   O W[ZWS`UZY[_``W `S_YW^\^WUWVWZUW O X`c[[^[^WSbW`W_SWWZY``W^aW_`WV X^_`Z`WXW Z\a`S_YW^\^WUWVWZUW .

D¾ .

bW^TS` O W\^W_WZUW[X`__WU`[Z_[\`[ZSX`___ZY `W_WU[ZV Z`WZ\a`XWS TW_\\WV O Z`WVWXZ`[Z_SZV^aW__WU`[Z_SZ ZVWZ`WV`W ` [^`W `WZU[_WVZ SZV< _U[\WVbW^TS``[`W [a`\a`c``W<!_^W[bWV .  n° O Wa_W^U[VW_WU`[Z__\ U[\WV`[0  .

 (  57391 47/ `c\^Z` W[Z[`[^V < .c[ [`W_[Z_ZY W # W S`UW_`[WZc`[ZYW_`S`U Z\a`STU aW. ( [WZSTU Z[`S[^ST # W a_W_`W X^_`S\\USTW^aW Z\a`\[_` 57391 aW# 5489  04 < aW#.

 (  39 709:73%< . 93( 802( .7709:73#< 14..:/089/4  3.9709:73 %< .422.  (*.-  <  /*.   ( 85.:/0 9.<709:73 <.422.f¯½    3.

7 .088. 0.

3307  .. 802<709:73$< /<709:73< 85.<< 8.

@ °¾  –f½ ¾¾°¾ Z [cS^W`[WZ_VWXZWVSZV^WU[YZ WV Z_ a_ZY^WYaS^W \^W__[Z_`[VWXZWS`[WZ S_SX[^S^WYaS^SZYaSYW [^S SZYaSYW_  \STW`  SXZ`W_W`[X_ T[_ _S U[\a`W^S\STW` `^ZY  XZ`W_W]aWZUW[X_ T[_X^[`WS\STW .

¯ff°– .

° \` _`^ZY_\WUS_`^ZY[XWZY`# SZYaSYW_W`[X_`^ZY_[bW^SYbWZS\STW` WY_W`[XS\^[Y^S_ WYaS^ \^W__[Z_ ^WYW \^W__[ZVWZ[`W_SSZYaSYW  .

 –f½ ¾¾°¾ ZS\STW`_ T[S_S^WYaS^W \^W__[Z ZW\` _ T[_S_[S^WYaS^W \^W__[Z X#SZV#S^W^WYaS^W \^W__[Z_VWZ[`ZYSZYaSYW_ #SZV #`WZ Ð #É#_S^WYaS^W \^W__[ZVWZ[`ZYSSZYaSYW #aZ[Z # Ð ##_S^WYaS^W \^W__[ZVWZ[`ZYSSZYaSYW # X[[cWVT  # Ð _`S^_S^WYaS^W \^W__[ZVWZ[`ZY _`S^ WWZWU[_a^W[X  .

fnn f¾" SUUS`[[X[^Sa`[S`US YWZW^S`ZYS\S^_W^YbWZSY^SS^c^``WZZS SUU_\WUXUS`[Z XW Y^SS^_\WUXW_S_W`[X\^[VaU`[Z^aW_cUVWXZWSSZYaSYW \^[VaU`[Z^aW_\WUXW_S_W]aWZUW[X_ T[__WZ`WZUW_cUS^WWYSZ `WSZYaSYW .

  °€ffnn¾½ n€nf°% € %  U_YWZW^S`WVSX`W^ ^aZZZY Ù Y[TSbS^STW_\^[`[` \W_U[WZ`_ Ú _\S^`cTWWTWVVWV Z`[U U[Z`SZ_`[WZVWUS^S`[Z_ [WZ_S^W^WU[YZ WVZW W^ VWXZW[c`[aZVW^_`SZV `WZ\a`SZYaSYWSZVcS` SU`[Z_`[`SWX[^WSU _WZ`WZUW SZ a_W^U[VW [^W S\WS SZXaZU`[Z`[US`W \S^_W^XaZU`[Z \S^_W Ó  .

 .

Ô  Ó .

 .

  .

Ô  Sa S^ _aT^[a`ZW_ .

947<  1.947 057 <  &  .. €°°–If ¾ 057057 9072 < 9072<  90729072 1..947 < 1..

947 <  1.947 < 90729072 1.  €°°–If ¾ 057057 057 9072 < 9072 9072 <  9072 1.947 1...947 057 <  &  ...

947<  1..947 057 057 <  &   ... €°°–If ¾ 057057 9072 < 9072<  1.947 < 90729072 1.

.947 057 <  &   01. €°°–If ¾ 057057 9072 9072  < 9072<  1.947<  1...947 1.947  < 90729072 1.:9 ..

  f¯½  €°°¾  3.:/0./0.950  < 9403% .

.947 < 90729072 1.947 057 < % /0..947  .f¯½ @f°¾f° ¾  30057 3 57391 /3  <  057 057 9072 < 9072  1.   ..

/0.  f¯½ ½½ ¯ °f.

 . . <  . 0  39 . .09..7  1 8/9 .  709:73% < 709:73..

 39 897/:5 909 709:73 &%< ... 897/:5 897/:5 897/:5 897/:5 897/:5 897/:5 897/:5  39 909 909 909 909 909 909 909 897/:5 709:73< 709:73$< 709:73< 709:73 #< 709:73%< 709:73#< 709:73 %< 909 709:73 &< . $%%< .  39 .  39 .  39 897/:5 909 709:73 .4:9# 0903/8 %< 1 080 0 147 39 ...  39 897/:5 909 709:73 .90 !#'%< 89..9.  39 ..9 /4:-0 ..Ù #ZUaVW_`VT #ZUaVW_`V[ #ZUaVW! `ST! b[V W^^[^US^ W `W^ZZ` bS Ú 57.  39 .4/ ' < #...7 14.  39 ..  39 ..  39 897/:5 909 709:73 ..  39 897/:5 909 709:73 ...  39 ..

....  39 897/:5 909 709:73 . 39 897/:5 909 709:73< . <  2..  39 897/:5 909 709:73 < ..  39 897/:5 909  709:73!&< . 39 897/:5 909 709:73 %#&< 1.3 .  39 897/:5 909  709:73$$< 5:-... . 39 897/:5 909 709:73$<  "&$<  "&%<  $$8#< .4/07747 ..3 . 39 897/:5 909 709:73  < 97:0 .80 .  39 897/:5 909 709:73 .7  0907339 ....  39 897/:5 909 709:73 ..88 .-440.

  39 897/:5 909 709:73* !<  .  39 897/:5 909 709:73#%#<  .. .  39 897/:5 909 709:73* !<   .  39 897/:5 909 709:73 %*"<  (709:73 909<  (709:73 909< (709:73 909< (709:73 909< ((709:73 909< (709:73 909< <(709:73 909<  (709:73 909<  (709:73 909<  (709:73 909< .  39 897/:5 909 709:73#%#*"&%<   ....  39 897/:5 909 709:73$$#*"&%<  ...

(709:73 909<  (709:73 909<  (709:73 909< *. 39 897/:5 909 709:73##< 397(  ..  39 897/:5 909 709:73 $%% < .  39 897/:5 909 709:73 %#<  (   (   ( . ( (.  (*..   (  ..

9:59085.0 .. 0.

5  709:73 < 190700.7.700993904:95:930. .:93981030.  .7$0.  39 7.

:/089/4  39 0 .79 95*8 %#157391 4:9 8  <307   157391 4:9 3 <8 <  157391 4:9 3<3 < 95*8 %#157391 4:9 #8#  # #157391 4:9 # # < /950 /950 # # 157391 4:9 # # <  95*8 950*8 95*8 950*8  .:/089/-  3.- f – ° f°– fnn °½€    °½¾° f fn   3.4/  < 9403$$!&!#'%$%%'  &%$%#$ 9403%!%#&% #$%##$%#%$&$ % & ' % 9403%# $%% 9403%#"&$"&%$$##%#$$#*"&% 9403#%#*"&%* !* ! %*" #%  89.

8/950 ##157391 4:9 8  < $% 157391 4:9 8  <( 157391 4:9 (3 < /950 ##( 157391 4:9 (3 <  .77.2  157391 4:9 3 <  .39.77..88  < !& 157391 4:9 5:-...950*8 $$ 157391 4:9 .0/5.77.8-3*4507.947 39.4/ <  &% 157391 4:9 88902 4:9 57393 <  307 %157391 4:9 0903/8  < %# 157391 4:9 83  <  .90 < ' 157391 4:9 . < !#'% 157391 4:9 57.7.

.7  <  & 157391 4:9 /4:-0  < '  157391 4:9 ..0/ 5.80# <  /950 % 157391 4:9 39  <  % 157391 4:9 14.:0 ## 157391 4:9 #3# <  -.7.947 # # -3*4507.2 -3*4507.:0 %#&157391 4:9 #97:0# < $157391 4:9 #1.947  -809...4/  < %# 157391 4:9 8  <  $%% 157391 4:9 8  <  17391 4:9 #8#  <   $%157391 4:9 #8#  < 157391 4:9 # 3# < .9  < # 157391 4:9 .:0  -3*4507.947 -.39.

947"&$ 157391 4:9 "&% 157391 4:9  < $$# 157391 4:9  < #%# 157391 4:9  < $$#*"&% 157391 4:9  < #%#*"&% 157391 4:9  <   157391 4:9 .-3*4507.

 157391 4:9   157391 4:9   157391 4:9  %*" 157391 4:9  <  157391 4:9  < < 157391 4:9 < <   <   .

883*89239 1:3.9*89239 907.    157391 4:9 3 <$ <  157391 4:9 3< <  .     < < < < 4507.947  $ 800.947 -3*4507.943 .

9*89239157391 4:9 1  <# #157391 4:9   < 05708843 157391 4:9  3 <8  05708843/0..107 157391 4:9   <$   09073 3 09073 4:9 .883*850.7.947 /950  907. %# 157391 4:9 8   < .943*89239  157391 4:9  < 1:3.943  #157391 4:9 147  <  157391 4:9   <147*445 157391 4:9  3 < $ 157391 4:9 0  <  157391 4:9   <05708843 157391 4:9  3 < $  147*445 /0.7.800.7.943*89239 /950 -3*4507.943*89239  /0...

:9398974:0.- .3 .07747 ..700993 9.7..4/  4:914503 30.780.7.780  709:73  < 190700.   314503 30.55 7  5.7 0774728  57391 83 0774728  709:73 < 39 2. .780. .. .

.

-.

DO WV[ZY`_\^[WU`cWSbWXSUWVS[`[X VXXUa`W_W O Z\[Z`W^SZVZY O ZUS_W[XW`[VUS_ O  ZSUS^^S SZVZWV_` Z`W^\^W`S`[Z ZXa^a^W cW[\W`[[bWU[W `W_WU^`US \WWZ`S`[Z_Z[^VW^`[YbWSZWcVW_[Z `[ `W\^[WU` .

 ¾n ¾ O [[YWV^WU`[^ [XW W^ SZV\S^_W^YWZW^S`[^_ O W [W\SYW``\ÈÈcccYZa[^YÈ_[X`cS^WÈXW O W È SUU Z##\[^` ``\ÈÈccc[Z[a`U[È c_`^WW``ÈW  SUUÈW  SUU` O T[bWZ_S^WSbSSTW[ZU[a^_WcWT\SYW .

Sign up to vote on this title
UsefulNot useful