Leksikalsk analyse: Forskelle mellem versioner

Content deleted Content added
m →‎Eksempel: stavning
Linje 6:
bison OR okse
</code>
Den funktion som udfør selve søgningen må på en eller anden måde få at vide, at brugeren vil finde alle sider som indeholder enten ordet "bison" eller ordet "okse". LexikaliseringenLeksikaliseringen er det trin i [[parsning]]en af søgeudtrykket som identificere "bison" og "okse" som de ord som brugeren vil søge efter, og "OR" som den operator, som indebærer at brugeren er intresseretinteresseret i at søge efter både sider som indeholder "bison" og sider som indeholder "okse". I eksemplet før er "bison" og "okse" konstanter, og "OR" er et reserveret ord. LexikaliseringenLeksikaliseringen indebærer at dette søgeudtryk skildesskilles fra for eksempel <code>bison or okse</code> eller <code>"bison OR okse"</code>.
 
Derimod kan [[syntaks|syntaktiske]] fejl ikke identificeres under lexikaliseringenleksikaliseringen. Ansvaret for syntaktisk analyse vedrører den proces, der tager imod de leksikale elementer, som lexikaliseringenleksikaliseringen genererer. Et udtryk i programmeringssproget C som
<code>
int hej(int "text" int)
Linje 15:
};
</code>
kan tolkes korrekt under lexikaliseringenleksikaliseringen, men er syntaktisk forkert. Den proces, som kontrollerer et udtryks syntaktiske eller grammatiske korrekthed kaldes en [[parser]].
 
En almindelig måde at skabe den komponent, som håndterer lexikaliseringen er at anvende et program som [[lex]] eller [[flex]]. Et eksempel på et [[Java (programmeringssprog)|Java]]-baseret lexikaliseringsprogram er JFlex. To eksempler på dataprogrammer, der genererer programkode til en parser er [[yacc]] og [[GNU bison]].