diff options
| author | Eugen Wissner <belka@caraus.de> | 2026-07-13 23:59:36 +0200 |
|---|---|---|
| committer | Eugen Wissner <belka@caraus.de> | 2026-07-13 23:59:36 +0200 |
| commit | 8ceb48a4e60b8ff89f28372da4f66cd152e2e0fe (patch) | |
| tree | b5e5522c47de3a7f62cd51a3258bfec7e99c062e /doc | |
| parent | 500c0676b3f6cd5a2297987d5b0dc7ccf34a28d9 (diff) | |
| download | elna-8ceb48a4e60b8ff89f28372da4f66cd152e2e0fe.tar.gz | |
Change record constructor syntax
Diffstat (limited to 'doc')
| -rw-r--r-- | doc/appendix.tex | 13 | ||||
| -rw-r--r-- | doc/type-system.tex | 4 |
2 files changed, 10 insertions, 7 deletions
diff --git a/doc/appendix.tex b/doc/appendix.tex index e98da0c..71b0cc4 100644 --- a/doc/appendix.tex +++ b/doc/appendix.tex @@ -73,8 +73,13 @@ \alt{} <trait> \alt{} <cast> \alt{} <procedure-call> + \alt{} <record-constructor> \alt{} `(' <expression> `)'. +<record-constructor> = <identifier> `\{' [<field-initializer> \{`,' <field-initializer>\}] `\}'. + +<field-initializer> = <identifier> `:' <expression>. + <factor> = <unary-operator> <factor> | <reference>. <term> = <factor> \{<multiplication-operator> <factor>\}. @@ -142,9 +147,7 @@ | <label-declaration> | <goto-statement> | <while-statement> | <if-statement> | <case-statement> | $\varepsilon{}$. -<statement-part> = [`begin' <statements> - \alt{} `return' <expression> - \alt{} `begin' <statements> `;' `return' <expression>]. +<statement-part> = [`begin' <statements>]. <constant-declaration> = <identifier-definition> `:=' <expression>. @@ -167,7 +170,7 @@ <procedure-heading> = `(' [<parameter> \{`;' <parameter>\}] `)' <return-declaration>. -<procedure-body> = <constant-part> <variable-part> <statement-part> `end'. +<procedure-body> = <constant-part> <variable-part> <statement-part> [`return' <expression>] `end'. <procedure-declaration> = `proc' <identifier-definition> <procedure-heading> \\ (<procedure-body> | `extern'). @@ -175,5 +178,5 @@ <program> = <import-part> <constant-part> <type-part> <variable-part> \{<procedure-declaration>\} - <statement-part> `end' `.\@'. + <statement-part> [`return' <expression>] `end' `.\@'. \end{grammar} diff --git a/doc/type-system.tex b/doc/type-system.tex index e1497be..102b0e4 100644 --- a/doc/type-system.tex +++ b/doc/type-system.tex @@ -65,7 +65,7 @@ end. <procedure-heading> = `(' [<parameter> \{`;' <parameter>\}] `)' <return-declaration>. -<procedure-body> = <constant-part> <variable-part> <statement-part> `end'. +<procedure-body> = <constant-part> <variable-part> <statement-part> [`return' <expression>] `end'. <procedure-declaration> = `proc' <identifier-definition> <procedure-heading> \\ (<procedure-body> | `extern'). @@ -109,7 +109,7 @@ type var u: U; begin - u := U(0, 1, 2); + u := U{x: 0, y: 1, z: 2}; u.x := 3 end. \end{lstlisting} |
