blob: 02616b8f6a3d0afe4b924a9c232bb2b1cfaff1fc (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
|
Defining Types
--------------
.. crowbar:element:: TypeDefinition <- StructDefinition / EnumDefinition / UnionDefinition
Crowbar has three different kinds of user-defined types.
.. crowbar:element:: StructDefinition <- 'struct' identifier '{' VariableDeclaration+ '}' ';'
A ``struct`` defines a composite type with several members.
.. todo::
define struct layout in memory
.. crowbar:element:: EnumDefinition <- 'enum' identifier '{' EnumMember (',' EnumMember)* ','? '}' ';'
EnumMember <- identifier ('=' Expression)?
An ``enum`` defines a type which can take one of several specified values.
.. todo::
define enum value assignment, type-related behavior
|