aboutsummaryrefslogtreecommitdiffstats
AgeCommit message (Collapse)AuthorFilesLines
2010-12-07Rename 'lex' to the now more appropriate 'parse'.David Robillard2-2/+2
git-svn-id: http://svn.drobilla.net/resp/resp@308 ad02d1e2-f140-0410-9f75-f8b11f17cedd
2010-12-07Rename 'parse' to the now more accurate 'expand'.David Robillard5-19/+18
git-svn-id: http://svn.drobilla.net/resp/resp@307 ad02d1e2-f140-0410-9f75-f8b11f17cedd
2010-12-07Saner recursive descent lexer/parser.David Robillard13-220/+200
git-svn-id: http://svn.drobilla.net/resp/resp@306 ad02d1e2-f140-0410-9f75-f8b11f17cedd
2010-12-07Pretty print booleans correctly.David Robillard1-1/+1
git-svn-id: http://svn.drobilla.net/resp/resp@305 ad02d1e2-f140-0410-9f75-f8b11f17cedd
2010-12-07Factor if compilation into smaller bits (towards a more assembly like IR ↵David Robillard1-45/+83
stage before actual backend code emission). git-svn-id: http://svn.drobilla.net/resp/resp@304 ad02d1e2-f140-0410-9f75-f8b11f17cedd
2010-12-05Remove cruft.David Robillard1-26/+8
git-svn-id: http://svn.drobilla.net/resp/resp@303 ad02d1e2-f140-0410-9f75-f8b11f17cedd
2010-12-05Move resp_gc.cpp contents into gc.cpp.David Robillard3-50/+29
git-svn-id: http://svn.drobilla.net/resp/resp@302 ad02d1e2-f140-0410-9f75-f8b11f17cedd
2010-12-05Check constructors first (implying no special forms start with an uppercase ↵David Robillard1-3/+3
letter). git-svn-id: http://svn.drobilla.net/resp/resp@301 ad02d1e2-f140-0410-9f75-f8b11f17cedd
2010-12-05Simplify parser.David Robillard3-31/+21
git-svn-id: http://svn.drobilla.net/resp/resp@300 ad02d1e2-f140-0410-9f75-f8b11f17cedd
2010-12-05Remove worthless "macro" system.David Robillard2-67/+40
git-svn-id: http://svn.drobilla.net/resp/resp@299 ad02d1e2-f140-0410-9f75-f8b11f17cedd
2010-12-04Tidy up unify.cppDavid Robillard2-8/+8
git-svn-id: http://svn.drobilla.net/resp/resp@298 ad02d1e2-f140-0410-9f75-f8b11f17cedd
2010-12-04More const-correctness (remove all use of const_cast).David Robillard8-45/+45
git-svn-id: http://svn.drobilla.net/resp/resp@297 ad02d1e2-f140-0410-9f75-f8b11f17cedd
2010-12-04More const-correctness (remove all use of const_cast from lift.cpp).David Robillard2-49/+43
git-svn-id: http://svn.drobilla.net/resp/resp@296 ad02d1e2-f140-0410-9f75-f8b11f17cedd
2010-12-04More const-correctness.David Robillard2-15/+18
git-svn-id: http://svn.drobilla.net/resp/resp@295 ad02d1e2-f140-0410-9f75-f8b11f17cedd
2010-12-04Make resp_lift const-correct.David Robillard3-21/+24
git-svn-id: http://svn.drobilla.net/resp/resp@294 ad02d1e2-f140-0410-9f75-f8b11f17cedd
2010-12-04Eliminate tuple/list mutation.David Robillard2-86/+47
Fix AST::str(). git-svn-id: http://svn.drobilla.net/resp/resp@293 ad02d1e2-f140-0410-9f75-f8b11f17cedd
2010-12-04Tidy.David Robillard1-11/+7
git-svn-id: http://svn.drobilla.net/resp/resp@292 ad02d1e2-f140-0410-9f75-f8b11f17cedd
2010-12-04Use saner numeric values for tags.David Robillard1-9/+10
git-svn-id: http://svn.drobilla.net/resp/resp@291 ad02d1e2-f140-0410-9f75-f8b11f17cedd
2010-12-03Remove use of RTTI for AST.David Robillard13-216/+254
git-svn-id: http://svn.drobilla.net/resp/resp@290 ad02d1e2-f140-0410-9f75-f8b11f17cedd
2010-12-03Merge AST::operator==David Robillard2-40/+75
git-svn-id: http://svn.drobilla.net/resp/resp@289 ad02d1e2-f140-0410-9f75-f8b11f17cedd
2010-12-03Make AString, ALexeme, and ASymbol all contain (rather than inherit from) ↵David Robillard4-18/+20
std::string. git-svn-id: http://svn.drobilla.net/resp/resp@288 ad02d1e2-f140-0410-9f75-f8b11f17cedd
2010-12-03Remove AST::constrain.David Robillard7-87/+99
git-svn-id: http://svn.drobilla.net/resp/resp@287 ad02d1e2-f140-0410-9f75-f8b11f17cedd
2010-12-03Detemplatify parseTuple.David Robillard1-7/+6
git-svn-id: http://svn.drobilla.net/resp/resp@286 ad02d1e2-f140-0410-9f75-f8b11f17cedd
2010-12-03Merge ACall and ATuple.David Robillard10-99/+78
git-svn-id: http://svn.drobilla.net/resp/resp@285 ad02d1e2-f140-0410-9f75-f8b11f17cedd
2010-12-03Remove AFn.David Robillard8-65/+64
git-svn-id: http://svn.drobilla.net/resp/resp@284 ad02d1e2-f140-0410-9f75-f8b11f17cedd
2010-12-03Move AFn and AType prot() methods to ATuple.David Robillard2-9/+7
git-svn-id: http://svn.drobilla.net/resp/resp@283 ad02d1e2-f140-0410-9f75-f8b11f17cedd
2010-12-02Remove ACall subclasses.David Robillard10-172/+156
git-svn-id: http://svn.drobilla.net/resp/resp@282 ad02d1e2-f140-0410-9f75-f8b11f17cedd
2010-12-02Remove use of ACall class hierarchy from compile phase.David Robillard4-59/+49
git-svn-id: http://svn.drobilla.net/resp/resp@281 ad02d1e2-f140-0410-9f75-f8b11f17cedd
2010-12-02Remove use of ACall type hierarchy from lift phase.David Robillard1-32/+20
git-svn-id: http://svn.drobilla.net/resp/resp@280 ad02d1e2-f140-0410-9f75-f8b11f17cedd
2010-12-02Remove use of ACall subclasses for contrain phase.David Robillard5-127/+154
git-svn-id: http://svn.drobilla.net/resp/resp@279 ad02d1e2-f140-0410-9f75-f8b11f17cedd
2010-12-02Work towards removing different classes for each type of expression.David Robillard8-239/+257
git-svn-id: http://svn.drobilla.net/resp/resp@278 ad02d1e2-f140-0410-9f75-f8b11f17cedd
2010-12-02Represent code as list structure (i.e. traditional LISP lists built from ↵David Robillard14-450/+482
pairs), rather than tuple structure. Remove unused/crufty depoly stage. Remove cps from AST interface (but keep cps.cpp code around for later). Improved command line interface for compilation stages (options -T -L -S). git-svn-id: http://svn.drobilla.net/resp/resp@277 ad02d1e2-f140-0410-9f75-f8b11f17cedd
2010-12-01Strip system stuff from test coverage.David Robillard1-1/+2
git-svn-id: http://svn.drobilla.net/resp/resp@276 ad02d1e2-f140-0410-9f75-f8b11f17cedd
2010-12-01Add -T option to type-check and pretty-print with type annotations.David Robillard4-182/+184
Rename -p to -P (all 'stage' options, i.e. -P -T -S are uppercase for consistency). Clean up main program. Decent pretty printing. git-svn-id: http://svn.drobilla.net/resp/resp@275 ad02d1e2-f140-0410-9f75-f8b11f17cedd
2010-12-01Update vim support files.David Robillard3-170/+170
git-svn-id: http://svn.drobilla.net/resp/resp@274 ad02d1e2-f140-0410-9f75-f8b11f17cedd
2010-12-01Add basic emacs resp-mode (modified from scheme.el).David Robillard1-0/+391
git-svn-id: http://svn.drobilla.net/resp/resp@273 ad02d1e2-f140-0410-9f75-f8b11f17cedd
2010-11-17Use single uint32_t for GC object header (mark and tag).David Robillard3-11/+14
git-svn-id: http://svn.drobilla.net/resp/resp@272 ad02d1e2-f140-0410-9f75-f8b11f17cedd
2010-10-14Prefix internal "me" parameter with underscore.David Robillard2-5/+5
git-svn-id: http://svn.drobilla.net/resp/resp@271 ad02d1e2-f140-0410-9f75-f8b11f17cedd
2010-09-30Preliminary work on algebraic data types and run-time typing.David Robillard12-53/+267
git-svn-id: http://svn.drobilla.net/resp/resp@270 ad02d1e2-f140-0410-9f75-f8b11f17cedd
2010-09-15Better pretty printer.David Robillard1-20/+87
git-svn-id: http://svn.drobilla.net/resp/resp@269 ad02d1e2-f140-0410-9f75-f8b11f17cedd
2010-08-22Simplify Engine function compilation interface.David Robillard5-80/+59
Removes duplicated code in various backends and reduces Engine code knowledge of AFn specifics (which belongs in compile.cpp). git-svn-id: http://svn.drobilla.net/resp/resp@268 ad02d1e2-f140-0410-9f75-f8b11f17cedd
2010-08-22Simplify Engine::startFunction.David Robillard5-29/+19
git-svn-id: http://svn.drobilla.net/resp/resp@267 ad02d1e2-f140-0410-9f75-f8b11f17cedd
2010-08-22Fix boolean compilation.David Robillard1-1/+1
git-svn-id: http://svn.drobilla.net/resp/resp@266 ad02d1e2-f140-0410-9f75-f8b11f17cedd
2010-08-20Make AST::compile const and make Module compilation API take const AST*.David Robillard5-74/+74
git-svn-id: http://svn.drobilla.net/resp/resp@265 ad02d1e2-f140-0410-9f75-f8b11f17cedd
2010-08-19Generalise `cons': a call to any symbol beginning with an uppercase characterDavid Robillard6-19/+34
(i.e. a type symbol), e.g. (Thing 2), is a call to a type constructor which creates a Tup containing the arguments, with the symbol as the first element in the type expression, e.g. (Thing 2) has type (Thing Int) and compiles to a tuple containing a single Int. The type constructor `Tup' can be used as a `cons' replacement to construct generic tuples. git-svn-id: http://svn.drobilla.net/resp/resp@264 ad02d1e2-f140-0410-9f75-f8b11f17cedd
2010-08-19Move PEnv::parse implementation to parse.cpp and remove PEnv::parseTuple.David Robillard2-40/+47
git-svn-id: http://svn.drobilla.net/resp/resp@263 ad02d1e2-f140-0410-9f75-f8b11f17cedd
2010-08-19Add quote to syntax (currently only a lexeme is quotable, no lists...)David Robillard9-8/+67
git-svn-id: http://svn.drobilla.net/resp/resp@262 ad02d1e2-f140-0410-9f75-f8b11f17cedd
2010-08-19Coherent AString and Lexeme implementation.David Robillard11-36/+128
A Lexeme is any "token" read from input, a lexeme has not yet beeen parsed and could parse to anything, e.g. a string, an expression, a number, etc. Lexemes are not (yet?) exposed to the language or ever compiled. A String is a string literal, which can contain any character directly except " and \. There are two special escapes: \" and \\, any other character following a \ is a syntax error. Fix garbage collection of REPL objects, leading to type errors from type variable re-use because a type variable for a given AST's /address/ exists, but that address has actually been deleted and reused by new (i.e. make top level REPL expressions and types be GC roots). git-svn-id: http://svn.drobilla.net/resp/resp@261 ad02d1e2-f140-0410-9f75-f8b11f17cedd
2010-08-18Give `def' statements type `Nothing.David Robillard1-0/+1
Causes REPL to succeed silently instead of printing an error. git-svn-id: http://svn.drobilla.net/resp/resp@260 ad02d1e2-f140-0410-9f75-f8b11f17cedd
2010-08-18Update for LLVM 2.7.David Robillard3-21/+15
Factor out mostly duplicated code in Env::topLevel and Env::innerMost. git-svn-id: http://svn.drobilla.net/resp/resp@259 ad02d1e2-f140-0410-9f75-f8b11f17cedd