Update README
This commit is contained in:
13
README.md
13
README.md
@@ -1,6 +1,8 @@
|
|||||||
# The Core Language
|
# The Core Language
|
||||||
|
|
||||||
A compiled language with Go like type system, Jai like syntax, order indepent declarations using Ion algorithm. Made to practice language development, it's not supposed to be used. It has lot's of ideas from modern programming languages that you would not find in any compiler book.
|
A compiled language that assumes C as base reality but it also has lots of ideas taken from Jai, Go like type system, order indepent declarations using Ion algorithm. Syntax currently is whitespace significant. Made to practice language development, *it's not supposed to be used*. It has lot's of ideas from modern programming languages that you would not find in any compiler book.
|
||||||
|
|
||||||
|
The language is currently very debuggable. It can produce readable C code with line directives. This allows you to debug the programs with Visual Studio with full source mapping, exactly like you would debug C programs.
|
||||||
|
|
||||||
## Language example code
|
## Language example code
|
||||||
|
|
||||||
@@ -42,6 +44,15 @@ commit :: (m: *Memory, size: SizeU): Bool
|
|||||||
// Examples that showcase language features can be found in /examples
|
// Examples that showcase language features can be found in /examples
|
||||||
```
|
```
|
||||||
|
|
||||||
|
## Features
|
||||||
|
|
||||||
|
* Order independent declarations
|
||||||
|
* Module system, lazy loading(unused code is not compiled, big win) using #import, full loading using #load
|
||||||
|
* Types as first class values and runtime reflection, Any type
|
||||||
|
* Slices
|
||||||
|
* Whitespace significant syntax
|
||||||
|
* Debuggable(emitting proper line directives)
|
||||||
|
|
||||||
## Building
|
## Building
|
||||||
|
|
||||||
1. Requires *Windows*, *Visual Studio* and *Clang* to be installed
|
1. Requires *Windows*, *Visual Studio* and *Clang* to be installed
|
||||||
|
|||||||
@@ -22,9 +22,9 @@ main :: (): int
|
|||||||
cstring_val: *char = "CString type"
|
cstring_val: *char = "CString type"
|
||||||
|
|
||||||
assert(s64val == 0 && s32val == 0 && s16val == 0 && s8val == 0 && intval == 0 && u64val == 0 && u32val == 0 && u16val == 0 && u8val == 0 && f64val == 0 && f32val == 0)
|
assert(s64val == 0 && s32val == 0 && s16val == 0 && s8val == 0 && intval == 0 && u64val == 0 && u32val == 0 && u16val == 0 && u8val == 0 && f64val == 0 && f32val == 0)
|
||||||
assert(string_val[0] == 'S) //'
|
|
||||||
// @todo: Fix error here !!
|
// @todo: Fix error here !!
|
||||||
// assert(cstring_val[0] == 'C) //'
|
// assert(string_val[0] == 'S) //'
|
||||||
|
assert(cstring_val[0] == 'C) //'
|
||||||
|
|
||||||
// This is how we can assign variables
|
// This is how we can assign variables
|
||||||
// There is no need for prefixes, compiler figures
|
// There is no need for prefixes, compiler figures
|
||||||
|
|||||||
Reference in New Issue
Block a user