File tree 2 files changed +53
-0
lines changed
2 files changed +53
-0
lines changed Original file line number Diff line number Diff line change
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
+
Original file line number Diff line number Diff line change
1
+ - Setup DNS for UniScript
You can’t perform that action at this time.
0 commit comments