From e699005a74018092d7238cb62ca4d6197409d6e2 Mon Sep 17 00:00:00 2001 From: CPunch Date: Sun, 24 Jan 2021 12:00:21 -0600 Subject: [PATCH] Added datatype docs --- docs/types.md | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) create mode 100644 docs/types.md diff --git a/docs/types.md b/docs/types.md new file mode 100644 index 0000000..1dea121 --- /dev/null +++ b/docs/types.md @@ -0,0 +1,21 @@ +# Types + +There are two main types of datatypes in Cosmo, primitives and references. Primitives exist directly in variables and tables. References are references to objects in memory, such as objects, tables, and functions. + +## Primitives + +| Type | Description | Examples | +| -------- | ---------------------------- | -------------------------------------- | +| Number | A numerical value. | `255.0`, `255`, `0xff`, `0b11111111` | +| Boolean | Logical datatype | `true`, `false` | +| Nil | Represents an empty value | `nil` | + +## References + +| Type | Description | Example | +| -------- | ---------------------------- | -------------------------------------- | +| String | A string of characters | `"ABC"`, `"\x41\x42\x43"`, `"\b1000001\b1000010\b1000011"` | +| Object | A stateful data structure. See `objects.md`. | `{x = 3}`, `proto Test end` | +| Table | A generic data structure. | `[1,2,3]`, `[1 = "hello", "two" = "world"]` | +| Function | A callable routine. | `function() print("Hello world!") end` | +> There are some other reference datatypes that are used internally, however these will remain undocumented until they are accessible by the user \ No newline at end of file