From ff3a4e3ee0c27c38ca9a63a4fe6fe54221687e91 Mon Sep 17 00:00:00 2001 From: bnewbold Date: Wed, 19 Dec 2012 18:40:20 +0100 Subject: restructure notes --- NOTES | 49 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 49 insertions(+) create mode 100644 NOTES (limited to 'NOTES') diff --git a/NOTES b/NOTES new file mode 100644 index 0000000..f49dfe5 --- /dev/null +++ b/NOTES @@ -0,0 +1,49 @@ + +opcodes + note: no unary, increment, decrement + arthithmetic: + - * / % + bitwise: l r & | ^ ~ + "<<" is l, ">>" is r + all are atoms or binary operators, so recursive compilation to a forth-like? + order of ops: + ~ + * / % + + - + << >> + & + ^ + | + +final console interface: + #hashtag (exact) -> searches identica for tunes + @username (exact) -> parses identica feed for tunes + _1234... -> plays track from memory + expression -> compiles and plays expression + [else] -> searches greedily for a valid expression; if not found, ignores + +bytetros? + + + +void proc_token() + +int[32] itable +struct { node* car, nlist* cdr } nlist +tlist* tcons(token*, ) + +struct { } token +token[140] ttable +struct { char type, int* iptr, int * } node +ntable[140] +int h2i(char*) + + +s-exp method: +tokenize: glom numbers +preparse: match parens, return s-expr +parse: turn into prefix notation +validate: check against rules +compile: optionally remove trivial identities ("~~") and evaluate static expressions + +general method: +grammar parser, returns ast -- cgit v1.2.3