-
Notifications
You must be signed in to change notification settings - Fork 0
/
bolum8.tex
55 lines (54 loc) · 2.37 KB
/
bolum8.tex
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
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
\documentclass[a4paper,20pt, right=2cm]{article}
\usepackage[turkish]{babel}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{listings}
\begin{document}
\textbf{8 Açıklamalar}\\
\\
İlk kural bildirimi açıklamada çeşitli şekillerde anlatılmaktadır. Geri kalan kurallar, durumun oluştuğu içeriğe duyarlı olan kısıtlamaları uygular. Bir içerik için "single\_statement"a sadece bir durumda izin verilir ve bu nedenle "decl\_statement" için bir içeriğin bildirimi, durumu ve sıralanışına izin verilir.\\
\begin{lstlisting}[mathescape]
stmt ::= directive
| metaid Stmt
| expr;
| if (dot_expr) single_stmt [else single_stmt]
| for ([dot_expr]; [dot_expr]; [dot_expr]) single_stmt
| while (dot_expr) single_stmt
| do single_stmt while (dot_expr);
| iter_ident (dot_expr * ) single_stmt
| switch ([dot_expr]) {case_line * }
| return [dot_expr];
| { [stmt_seq] }
| NEST(decl_stmt + , when)
| NEST(expr, when)
| break;
| continue;
| id:
| goto id;
| {stmt_seq }
directive ::= include
| #define id [top]
| #define id (PARAMSEQ(id, $\epsilon$)) [top]
| #undef id
| #pragma id id +
| #pragma id (PARAMSEQ(expr, $\epsilon$))
| #pragma id ...
single_stmt::= stmt
| OR(stmt)
decl_stmt ::= metaid StmtList
| decl_var
| stmt
| OR(stmt_seq)
stmt_seq ::= decl_stmt * [DOTSEQ(decl_stmt + , when) decl_stmt * ]
| decl_stmt * [DOTSEQ(expr, when) decl_stmt * ]
case_line ::= default : stmt_seq
| case dot_expr : stmt_seq
iter_ident ::= IteratorId
| metaid Iterator
OR(gram_o) ::= ( gram_o (|gram_o) * )
DOTSEQ(gram_d, when_d) ::= ...[when_d] (gram_d ...[when_d]) *
NEST(gram_n, when_n) ::= <...[when_n] gram_n (...[when_n] gram_n) * ...>
| <+...[when_n] gram_n (...[when_n] gram_n) * ...+>
\end{lstlisting}
OR, modellerin parçalarına ayrılmasından oluşan bir makrodur. Üç sembol (, | , and ) onları parantezlerden ayırt etmek için en sol sütunda bulunmalıdır ve ifadeler içinde bulunan bit-or sembolleri en soldaki satırda bulunamaz. Bu semboller, başka bir sütunda kullanıldıkları zaman \'dan önce gelebilir. Bu semboller ayrıca, dilötesi dilbilgisinin parçası olan (, |, and )'den farklıdır.
\end{document}