diff options
author | Melody Horn <melody@boringcactus.com> | 2020-11-02 12:27:17 -0700 |
---|---|---|
committer | Melody Horn <melody@boringcactus.com> | 2020-11-02 12:27:17 -0700 |
commit | 83e23b6b449112f4a85d09c57e5601faa87856ca (patch) | |
tree | 543e4821f276055a6de591287964f51af42a1306 /language/functions.rst | |
parent | 8b9abf740a41e8feb7db7638ce27f7cecc16d633 (diff) | |
download | spec-83e23b6b449112f4a85d09c57e5601faa87856ca.tar.gz spec-83e23b6b449112f4a85d09c57e5601faa87856ca.zip |
add function declarations
Diffstat (limited to 'language/functions.rst')
-rw-r--r-- | language/functions.rst | 20 |
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. |