Dearest /prog/,
It brings me pleasure to release the newest draft specification of the wonderful BONERLANG. Please read the following implementation details and discuss what needs to be added. I'd like to get this semi-solidified soon to make a Bonerlang-to-C compiler.
#1. Functions:
They will be invoked via 8={n}D~, where n is the index into the function pointer table. This idea has already been tabled in the past. However, I present the beginnings of the standard library: print arg1 [, ..., argk] for printing constant/variable data. read dest-var to read data into the give variable.
and some string functions, etc etc, like substr string start [end] [m]strpos string1 string2 [offset] for the index of string2 in string1 starting at offset.
#2. Operators:
In prefix notation; used by [m]8#=====Dx arg1 [, ..., argk], where x is the operator. The following operators will be supported: + - * / % ^ ++, the last thre being for modulus, exponentiation, and string concatenation, respectively.
#3. Variables:
They are anii to be stuffed with data. As such, they are declared with the following syntax: (_*_) identifier. The anus representation was already brought forth in the past, though it was loose, using `o' instead of the puckered up `*', and it was an operator merely to dump inline C - which is no fun.
In conclusion:
I'm thinking we need a syntax for a loop construct, possibly something witty with EN=====D to signify the end of the block... And then some form of branching.
Thoughts on it all?
Name:
Anonymous2011-11-11 4:06
Congratulations! That's 63 pages smaller than the R5RS spec.
Name:
Anonymous2011-11-11 4:15
GOT IT: Looping is specified via 8:====D body EN====D.
[spoiler]In case you're thick, that's FO[s]U[/u]R equal signs after the decorative pubic hair[/spoiler]
Will it have first-class lolis and the cuddle-with-current-continuation operator?
Name:
Anonymous2011-11-11 14:14
>>6 >>7
I'm impartial to this; ## it is! And since I was going to include variables, there needs to be an assignment operator now too, 8#=====D= dest-varvalue, where value can be a constant or another variable. Or maybe 8#=====D:= for all you smalltalk folks.
I'm still not 100% sure what to do for branching and looping though.
Name:
Anonymous2012-04-20 3:12
BONERLANG
Name:
Anonymous2012-04-20 4:40
cuddle-with-current-dubs
Name:
Anonymous2012-04-20 4:58
Oy, vey! Those boners better be circumcised! All our lives are simply one long Shoah!