컴파일러 프로그래밍(Mini C 컴파일 프로그래밍)
본 자료는 미리보기를 지원하지 않습니다.
닫기
  • 1
  • 2
  • 3
  • 4
  • 5
해당 자료는 1페이지 까지만 미리보기를 제공합니다.
1페이지 이후부터 다운로드 후 확인할 수 있습니다.

목차

MiniC.gr
MiniC.lst
MiniC.tbl

본문내용

1 DIRECTIVE BUILD_TREES -> ON;
2 LIST_STATES -> ON;
3
4 LEXICON '%ident' => IDENT;
5 '%number' => NUMBER;
6
7 SYNTAX mini_c
8
9 mini_c -> translation_unit => PROGRAM;
10 translation_unit -> external_dcl;
11 -> translation_unit external_dcl;
12 external_dcl -> function_def;
13 -> declaration;
14
15 function_def -> function_header compound_st => FUNC_DEF;
16 function_header -> dcl_spec function_name formal_param => FUNC_HEAD;
17 dcl_spec -> dcl_specifiers => DCL_SPEC;
18 dcl_specifiers -> dcl_specifier;
19 -> dcl_specifiers dcl_specifier;
20 dcl_specifier -> type_qualifier;
21 -> type_specifier;
22 type_qualifier -> 'const' => CONST_TYPE;
23 type_specifier -> 'int' => INT_TYPE;
24 -> 'void' => VOID_TYPE;
25 function_name -> '%ident';
26 formal_param -> '(' opt_formal_param ')' => FORMAL_PARA;
27 opt_formal_param -> formal_param_list;
28 -> ;
29 formal_param_list-> param_dcl;
30 -> formal_param_list ',' param_dcl;
31 param_dcl -> dcl_spec declarator => PARAM_DCL;
32
33 compound_st -> '{' opt_dcl_list opt_stat_list '}' => COMPOUND_ST;
34 opt_dcl_list -> declaration_list => DCL_LIST;
35 -> => DCL_LIST;
36 declaration_list -> declaration;
37 -> declaration_list declaration;
38 declaration -> dcl_spec init_dcl_list ';' => DCL;
39 init_dcl_list -> init_declarator;
40 -> init_dcl_list ',' init_declarator;
41 init_declarator -> declarator => DCL_ITEM;
42 -> declarator '=' '%number' => DCL_ITEM;
43 declarator -> '%ident' => SIMPLE_VAR;
44 -> '%ident' '[' opt_number ']' => ARRAY_VAR;
45 opt_number -> '%number';
46 -> ;
47
48 opt_stat_list -> statement_list => STAT_LIST;
49 -> ;
50 statement_list -> statement;
51 -> statement_list statement;
52 statement -> compound_st;
53 -> expression_st;
54 -> if_st;
55 -> while_st;
56 -> return_st;
57
58 expression_st -> opt_expression ';' => EXP_ST;
59 opt_expression -> expression;
60 -> ;
61 if_st -> 'if' '(' expression ')' statement => IF_ST;
62 -> 'if' '(' expression ')' statement
63 'else' statement => IF_ELSE_ST;
64 while_st -> 'while' '(' expression ')' statement => WHILE_ST;
65 return_st -> 'return' opt_expression ';' => RETURN_ST;
66
67 expression -> assignment_exp;
68 assignment_exp -> logical_or_exp;
69 -> unary_exp '=' assignment_exp => ASSIGN_OP;
70 -> unary_exp '+=' assignment_exp => ADD_ASSIGN;
71 -> unary_exp '-=' assignment_exp => SUB_ASSIGN;
72 -> unary_exp '*=' assignment_exp => MUL_ASSIGN;
73 -> unary_exp '/=' assignment_exp => DIV_ASSIGN;
74 -> unary_ex
  • 가격3,000
  • 페이지수5페이지
  • 등록일2010.02.22
  • 저작시기2007.10
  • 파일형식압축파일(zip)
  • 자료번호#584370
본 자료는 최근 2주간 다운받은 회원이 없습니다.
청소해
다운로드 장바구니