12
ة ب س حا ل ا لات لا ر ا ب خ م ات ب س حا عة راب ل ا ة ب س ل ا- مات ج ر مب ل ا مادة ي مل ع دو ب ع ركات ب1 ’ هان ي ج: دسة ب ه م لاد ا عد; ا ال سة ل ح ل ا عة راب ل ا سة ل ح ل ا+ ة@ ب ل ا@ ث لّ ل ح م ل ا يF ظ ف ل ل اLexical Analyzer 1 ن; اLEX و ه ارة ب ع1 ن ع1 ج م ا رن ب ة بّ م ه م و ه ف د, ب ل و ت ل ا مّ م ص م ة خ ل عا م ل ل ةّ بF ظ ف ل ل ا ل س لا س ل حارف م ل. ح الد@ ث ي ج ةّ نj ا ل ب ق ت ’س ي ي عل لة دحً ا ’ف ت ص و ت ي ل عا وى ت س م ل ا ل س لا س ل ل ةّ ب ص ن ل ا وy ةّ ب ف ر ح م ل ا و1 ج ت نُ يً ا ح م ا رن ب ة ع ل ن ات د راض غj ا ةّ عام ها ن مكا ا ن فّ ر ع ت ل ا ي عل ر ب ن عا ت ل ا ة ب م اF ظ ن ل ا@ ث ي جّ 1 نj ا ة هد ر ب ن عا ت ل ا م ’ت ي دها حدن ت1 ن م ل بِ ف دم ح ت س م ل ا1 ن ع ’ق ت ر ط ات ’ف ت ص و ت ل ا ي لت ا ها مّ د ب’ ف دم ح ت س م ل ا ل ح كد لLEX . ّ 1 ن; ا1 ج م را لب ا وj ا رة ’ف ت@ س ل ا ي لت ا ولدها تLEX ع ت ظ ن س ي فّ ر ع ت ل ا ي عل ر ب ن عا ت ل ا ةّ ب م اF ظ ن ل ا ودة ج و م ل ا ي ف ل س لا س حارف م ما ك ل, ح الد وم ق ب م ت س ق ت ي ل س لا س ل ح الد ي ل; ا ل س لا س ةّ ب ص ن ق ت ظا ن ر ب ن عا ت ل ا ةّ ب م اF ظ ن ل ا ة فّ ر مع ل ا ىj . اّ 1 ن; ا ف ل مLEX صدرى م ل ا ط ’رن ب1 ن ي ي ر ب ن عا ت ل ا ةّ ب م اF ظ ن ل ا ة فّ ر مع ل ا و1 ن ي ي ع ط ا ف م ل ا1

مترجمات

Embed Size (px)

DESCRIPTION

مترجمات

Citation preview

YACC

- :

+

Lexical Analyzer LEX , . LEX .

LEX , . LEX , ( LEX ) .

LEX , Generator Host Language.

Code LEX . . LEX .

C.

LEX ( Source) , yylex.

yylex Expressions . (1) LEX:

+-------+

Source -> | Lex | -> yylex

+-------+

+-------+

Input -> | yylex | -> Output

+-------+

(1) LEX LEX , Lexical, LEX Parser Lexical Analysis Phase, LEX YACC . LEX , YACC Context Free Grammar Tokens, LEX YACC .

LEX Parser .

- LEX: LEX :

{Definitions}

%%

{Rules}

%%

{User subroutines}

Definitions %% , LEX : %% , .

LEX Rules . ( ), .

, :

integer printf("found keyword INT");

" integer" " found keyword INT " .

C. C .

, :

colour printf("color");

mechanise printf("mechanize");petrol printf("gas");

- LEX Characters (,,,...) . LEX , :

LEX : " \ [ ] ^ - ? . * + | ( ) $ / { } % < >

" , xyz"++" xyz++ "xyz++".

[], [abc] a, b c. [] : \ , - , ^. [a-z0-9] a z, , ( - ) . [^abc] a b c [^a-zA-Z] . ( \ ) Escape.

ab?c ac abc. a* a . a+ a . [a-z]+ . [A-Za-z][A-Za-z0-9] . (ab|cd) ab cd. {digit} digit . LEX . YACC Parser . Parser Generators . Context Free Grammar.

Bison

YACC C, . YACC S.C.Johnson Bell. - YACC:

YACC :C and parser declarations

%%

Grammar rules and actions

%%

C subroutines YACC Tokens . Start Symbol .%start program YACC . . YACC . Productions . , Non-Terminal Symbol , , (:). YACC C, main() yyparse(), . yyerror() .

, , , . PAGE - 8 -