瀏覽代碼

Initial implementation

michael 27 年之前
父節點
當前提交
1105d874d0
共有 5 個文件被更改,包括 183 次插入0 次删除
  1. 65 0
      docs/syntax/block.syn
  2. 27 0
      docs/syntax/function.syn
  3. 24 0
      docs/syntax/modifiers.syn
  4. 26 0
      docs/syntax/procedur.syn
  5. 41 0
      docs/syntax/unit.syn

+ 65 - 0
docs/syntax/block.syn

@@ -0,0 +1,65 @@
+\begin{diagram}{Blocks}{blocks}
+\begin{mysyntdiag}
+\synt{block} \synt{declaration\ part} \synt{statement\ part}
+\end{mysyntdiag}
+\begin{mysyntdiag}
+\synt{declaration\ part}
+\<[b]
+\[
+\synt{label\ declaration\ part}\\
+\synt{constant\ declaration\ part}\\
+\synt{type\ declaration\ part}\\
+\synt{variable\ declaration\ part}\\
+\synt{procedure/function\ declaration\ part}
+\]
+\>
+\end{mysyntdiag}
+\begin{mysyntdiag}
+\synt{label\ declaration\ part}
+\lit*{label}
+\<[b]
+\synt{label}\\
+\lit* ,
+\>
+\lit* ;
+\end{mysyntdiag}
+\begin{mysyntdiag}
+\synt{constant\ declaration\ part}
+\lit*{const}
+\<[b]
+  \(
+    \synt{constant\ declaration}\\
+    \synt{typed\ constant\ declaration}
+  \)
+\>
+\end{mysyntdiag}
+\begin{mysyntdiag}
+\synt{type\ declaration\ part}
+\lit*{type}
+\<[b]
+    \synt{type\ declaration}\\
+\>
+\end{mysyntdiag}
+\begin{mysyntdiag}
+\synt{variable\ declaration\ part}
+\lit*{var}
+\<[b]
+    \synt{variable\ declaration}\\
+\>
+\end{mysyntdiag}
+\begin{mysyntdiag}
+\synt{procedure/function\ declaration\ part}
+\<[b]
+\(
+    \synt{procedure\ declaration}\\
+    \synt{function\ declaration}\\
+    \synt{constructor\ declaration}\\
+    \synt{destructor\ declaration}\\
+\)
+\>
+\end{mysyntdiag}
+\begin{mysyntdiag}
+\synt{statement\ part}
+\synt{compound\ statement}
+\end{mysyntdiag}
+\end{diagram}

+ 27 - 0
docs/syntax/function.syn

@@ -0,0 +1,27 @@
+\begin{diagram}{Function declaration}{proceduredeclaration}
+\begin{mysyntdiag}
+\synt{function\ declaration}
+\synt{function\ header} \lit* ;
+\synt{subroutine\ block} \lit *;
+\end{mysyntdiag}
+\begin{mysyntdiag}
+\synt{function\ header}
+\lit*{function} 
+\(
+\synt{identifier}\\
+\synt{qualified\ method\ identifier}
+\)
+\synt{formal\ parameter\ list}
+\lit* : \( \synt{result\ type} \\ \lit*{string} \)
+\[ \synt{modifiers} \]
+\end{mysyntdiag}
+\begin{mysyntdiag}
+\synt{subroutine\ block}
+\(
+\synt{block}\\
+\synt{external\ directive}\\
+\synt{asm\ block}\\
+\lit*{forward}
+\)
+\end{mysyntdiag}
+\end{diagram}

+ 24 - 0
docs/syntax/modifiers.syn

@@ -0,0 +1,24 @@
+\begin{diagram}{Modifiers}{modifiers}
+\begin{mysyntdiag}
+\synt{modifiers}
+\<[b]
+; 
+ \( 
+ \lit*{public} \\
+ \lit*{alias} \synt{string\ constant}\\
+ \lit*{interrupt} \\
+ \lit*{call\ modifiers}
+\)
+\>
+\end{mysyntdiag}
+\begin{mysyntdiag}
+\synt{call\ modifiers}
+\(
+\lit*{register}\\
+\lit*{pascal}\\
+\lit*{cdecl}\\
+\lit*{stdcall}\\
+\lit*{popstack}
+\)
+\end{mysyntdiag}
+\end{diagram}

+ 26 - 0
docs/syntax/procedur.syn

@@ -0,0 +1,26 @@
+\begin{diagram}{Procedure declaration}{proceduredeclaration}
+\begin{mysyntdiag}
+\synt{procedure\ declaration}
+\synt{procedure\ header} \lit* ;
+\synt{subroutine\ block} \lit *;
+\end{mysyntdiag}
+\begin{mysyntdiag}
+\synt{procedure\ header}
+\lit*{procedure} 
+\(
+\synt{identifier}\\
+\synt{qualified\ method\ identifier}
+\)
+\synt{formal\ parameter\ list}
+\[ \synt{modifiers} \]
+\end{mysyntdiag}
+\begin{mysyntdiag}
+\synt{subroutine\ block}
+\(
+\synt{block}\\
+\synt{external\ directive}\\
+\synt{asm\ block}\\
+\lit*{forward}
+\)
+\end{mysyntdiag}
+\end{diagram}

+ 41 - 0
docs/syntax/unit.syn

@@ -0,0 +1,41 @@
+\begin{diagram}{Units}{units}
+\begin{mysyntdiag}
+\synt{unit}
+\synt{unit\ header}
+\synt{interface\ part}
+\synt{implementation\ part}
+\[ \synt{initialization\ part} \]
+\lit*{end} \lit* .
+\end{mysyntdiag}
+\begin{mysyntdiag}
+\synt{unit\ header} 
+\lit*{unit}
+\synt{unit\ identifier}
+\lit* ;
+\end{mysyntdiag}
+\begin{mysyntdiag}
+\synt{interface\ part} 
+\<[b]
+  \[  \synt{constant\ declaration\ part} \\
+      \synt{type\ declaration\ part}\\
+      \synt{procedure\ headers\ part}
+  \]
+\>
+\end{mysyntdiag}
+\begin{mysyntdiag}
+\synt{procedure\ headers\ part}
+\( \synt{procedure\ header} \\ \synt{function\ header}\) \lit* ;
+\[ \synt{call\ modifiers} \lit* ; \]
+\end{mysyntdiag}
+\begin{mysyntdiag}
+\synt{implementation\ part}
+\lit*{implementation}
+\[ \synt{uses\ clause} \]
+\synt{declaration\ part}
+\end{mysyntdiag}
+\begin{mysyntdiag}
+\synt{initialization\ part}
+  \lit*{begin} 
+  \<[b] \synt{statement} \\ \lit* ; \>
+\end{mysyntdiag}
+\end{diagram}