Skip to content

Commit 01399b7

Browse files
committed
Add a Spec and ToDo list
to get development moving...
1 parent b487aea commit 01399b7

File tree

2 files changed

+53
-0
lines changed

2 files changed

+53
-0
lines changed

Spec.md

+52
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
# UniScript language specification
2+
3+
This is the document that contains the ideas we want to put into UniScript.
4+
5+
## Implementation Details
6+
7+
- BootStrap with CoffeeScript as both UniScript (syntax) and C'Dent (compiler)
8+
- UniScript should be migrated to Pegex parser instead of the Jison + helpers
9+
dance that Coffee uses.
10+
- Use Makefiles for eveything. Generate Makefile from package.yaml when
11+
possible.
12+
13+
## General Language Ideas
14+
15+
- global replaced by symbol
16+
17+
maybe %
18+
19+
- %('name') replaces require('name')
20+
21+
`require` is tied to JS, but needed by nearly every module
22+
23+
- No keywords. All [\w\$]+ can be identifier
24+
25+
var = 1
26+
if = 2
27+
while = 3
28+
class = 4
29+
30+
- Defaults for destructuring
31+
32+
{x, y=default}
33+
34+
This would allow
35+
36+
foo = ({a, b=false}) ->
37+
38+
- Indentation can extend any line
39+
40+
x = 1
41+
if foo? or
42+
bar == 3
43+
44+
CoffeeScript doesn't support this, and it makes for long lines.
45+
46+
== Bad Coffee - Things to avoid that CoffeeScript does poorly
47+
48+
- Compile error messages need to be more friendly
49+
50+
51+
52+

ToDo.md

+1
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
- Setup DNS for UniScript

0 commit comments

Comments
 (0)