aboutsummaryrefslogtreecommitdiff
path: root/language/functions.rst
diff options
context:
space:
mode:
Diffstat (limited to 'language/functions.rst')
-rw-r--r--language/functions.rst20
1 files changed, 20 insertions, 0 deletions
diff --git a/language/functions.rst b/language/functions.rst
new file mode 100644
index 0000000..86d1144
--- /dev/null
+++ b/language/functions.rst
@@ -0,0 +1,20 @@
+Functions
+---------
+
+.. crowbar:element:: FunctionDeclaration <- FunctionSignature ';'
+
+ A function declaration defines the return type, name, and arguments of a function without specifying its behavior.
+ It is generally used as part of an API boundary.
+
+.. crowbar:element:: FunctionDefinition <- FunctionSignature Block
+
+ A function definition provides the actual behavior of a function, which may have been declared previously or may not.
+
+ .. todo::
+
+ define function linkage/exportedness
+
+.. crowbar:element:: FunctionSignature <- Type identifier '(' SignatureArguments? ')'
+ SignatureArguments <- Type identifier (',' Type identifier)* ','?
+
+ A function signature specifies the return type, name, and arguments of a function.