summaryrefslogtreecommitdiff
path: root/spec/1 - language.md
blob: 50ccf68de75ff78e41a105678fca8b8afb25e299 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
# The Language

## Section 1 - Files

### Folder Structure

TNSL project structure has a root source folder with TNSL files contained within the folder and sub-folders.  There is no strictly enforced system, but good practice is to place code sub-modules in sub-folders, and name the module entry point file the same name as its enclosing folder.

The main file to compile is known as the root file, which generally resides in the root source folder.  This file will contain either a main method, or the pre-processor statement `rootfile` to denote the root of a library.  A main file may contain both.

### TNSL Files



## Section 2 - Blocks

### TNSL Block Notation

### Modules

### Functions

### Control Flow Blocks

### Anonymous Blocks

## Section 3 - Statements

### TNSL Statement Notation

### Variable Declaration

### Assignment

### Special Statements

## Section 4 - Types

### Built-in Types

### The Void Type

### Defining Types

### Interfaces

### Type Levels

## Section 5 - Operators

### Operator Presedence

## Section 6 - `raw` and `asm`

### The `raw` Keyword

### The `asm` Keyword

### Credits

	Copyright 2021 Kyle Gunger

	This file is licenced under the CDDL 1.0 (the Licence)
	and may only be used in accordance with the Licence.
	You should have recieved a copy of the Licence with this
	software/source code. If you did not, a copy can be found
	at the following URL:

	https://opensource.org/licenses/CDDL-1.0

	THIS SOFTWARE/SOURCE CODE IS PROVIDED "AS IS" WITH NO
	WARRENTY, GUARANTEE, OR CLAIM OF FITNESS FOR ANY PURPOSE
	EXPRESS OR IMPLIED