-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathbolum7.txt
32 lines (29 loc) · 1.46 KB
/
bolum7.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
7 Bildirimler
decl_var ::= common_decl
| [storage] ctype COMMA_LIST(d_indent) ;
| [storage] [const_vol] id COMMA_LIST(d_indent) ;
| [storage] fn_ctype ( * d_indent) (PARAMSEQ(name_opt_decl, ε) ) = initialize ;
| typedef ctype typedef_ident ;
one_decl ::= common_decl
| [storage] ctype id;
| [storage] [const_vol] id d_ident ;
common_decl ::= ctype;
| funproto
| [storage] ctype d_indent = initialize ;
| [storage] [const_vol] id d_ident = initialize ;
| [storage] fn_ctype ( * d_indent) (PARAMSEQ(name_opt_decl, ε) ) ;
initialize ::= dot_expr
| metaid^Initialiser
| { [COMMA_LIST(init_list_elem)] }
init_list_elem ::= dot_expr
| designator = initialize
| metaid^Initialiser
| metaid^InitialiserList
| id : dot_expr
designator ::= . id
| [ dot_expr ]
| [ dot_expr ... dot_expr ]
decl_ident ::= Declarerld
| metaid^Declarer
Bir başlatıcı, bir yapı için düzenli ya da düzensiz olabilir. En az bir anahtar-değer çifti başlatıcısı varsa sırasız olduğu düşünülmektedir, örneğin .x = e.
Bir bildirim örneği, register x; şeklinde olabilir. Bu durumda, dolaylı değişken int türündedir ve SmPL kodu int değişkenlerin bildirimi gibi eşleyecektir. Diğer taraftan, örtülü int türü konuma sahip değildir. SmPL kodu Konum tipini kaydetmeye çalışırsa, eşleşme başarısız olur.