+syntax_change_draft
This commit is contained in:
parent
fb7dff0433
commit
1d0256512e
57
documentation/syntax_change_draft.md
Normal file
57
documentation/syntax_change_draft.md
Normal file
@ -0,0 +1,57 @@
|
||||
## Problem
|
||||
+ we have a serious problem expressing high level statements inline
|
||||
|
||||
## Fix ideas
|
||||
+ blocks
|
||||
+ lisp on crack
|
||||
|
||||
## Lisp on crack
|
||||
+ this solution also allows for inline machine code
|
||||
```Lisp
|
||||
(set a (
|
||||
(add
|
||||
(long_ass_function_call 10)
|
||||
(even_longer_function_call 12)
|
||||
)
|
||||
))
|
||||
```
|
||||
NOTE: prefixmaxxing is retarded
|
||||
|
||||
we want to be able to separate to statements
|
||||
```eax
|
||||
a = (
|
||||
long_ass_function_call 10
|
||||
+
|
||||
even_longer_function_call 12
|
||||
)
|
||||
# means
|
||||
a = ((long_ass_function_call 10) + (even_longer_function_call))
|
||||
# or
|
||||
# (which is obviously ugly as fuck,
|
||||
# but must be valid work
|
||||
# unless you explicitly prohibit ';' in parens)
|
||||
a = (long_ass_function_call 10; + even_longer_function_call 12)
|
||||
# ------------------
|
||||
# ------------------
|
||||
# ------------------
|
||||
nop; mov eax 60
|
||||
mov eax,
|
||||
60
|
||||
# same as
|
||||
(nop) (mov eax 60)
|
||||
(mov
|
||||
60
|
||||
eax
|
||||
)
|
||||
# --- NOTE: this is valid TCL :>
|
||||
printf "%d: %s" \
|
||||
10 \
|
||||
"something"
|
||||
# it does have a no trailing . allowed problem tho
|
||||
# so what if '|' is an explicit terminator?
|
||||
printf "%s and %s" \
|
||||
"Alpha" \
|
||||
"Beta" \
|
||||
;
|
||||
# now the two arguments are easy to edit (swap)
|
||||
```
|
Loading…
x
Reference in New Issue
Block a user