aboutsummaryrefslogtreecommitdiffstats
path: root/src/parse.cpp
AgeCommit message (Collapse)AuthorFilesLines
2010-12-09Fix cpplint warnings.David Robillard1-0/+3
git-svn-id: http://svn.drobilla.net/resp/resp@329 ad02d1e2-f140-0410-9f75-f8b11f17cedd
2010-12-09read_expression => PEnv::parse.David Robillard1-5/+5
git-svn-id: http://svn.drobilla.net/resp/resp@325 ad02d1e2-f140-0410-9f75-f8b11f17cedd
2010-12-09Make environment always referenced by symbols.David Robillard1-1/+1
Intern symbol strings, but not ASymbol objects themselves, so each symbol can have a different Cursor. Fixes missing locations in error reporting. git-svn-id: http://svn.drobilla.net/resp/resp@324 ad02d1e2-f140-0410-9f75-f8b11f17cedd
2010-12-09Const-correct parser.David Robillard1-8/+8
git-svn-id: http://svn.drobilla.net/resp/resp@323 ad02d1e2-f140-0410-9f75-f8b11f17cedd
2010-12-08Slightly shrink code.David Robillard1-10/+5
git-svn-id: http://svn.drobilla.net/resp/resp@311 ad02d1e2-f140-0410-9f75-f8b11f17cedd
2010-12-07Tidy.David Robillard1-14/+13
git-svn-id: http://svn.drobilla.net/resp/resp@309 ad02d1e2-f140-0410-9f75-f8b11f17cedd
2010-12-07Rename 'lex' to the now more appropriate 'parse'.David Robillard1-0/+207
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 Robillard1-139/+0
git-svn-id: http://svn.drobilla.net/resp/resp@307 ad02d1e2-f140-0410-9f75-f8b11f17cedd
2010-12-07Saner recursive descent lexer/parser.David Robillard1-90/+32
git-svn-id: http://svn.drobilla.net/resp/resp@306 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 Robillard1-22/+16
git-svn-id: http://svn.drobilla.net/resp/resp@300 ad02d1e2-f140-0410-9f75-f8b11f17cedd
2010-12-05Remove worthless "macro" system.David Robillard1-58/+40
git-svn-id: http://svn.drobilla.net/resp/resp@299 ad02d1e2-f140-0410-9f75-f8b11f17cedd
2010-12-04More const-correctness (remove all use of const_cast).David Robillard1-19/+19
git-svn-id: http://svn.drobilla.net/resp/resp@297 ad02d1e2-f140-0410-9f75-f8b11f17cedd
2010-12-03Remove use of RTTI for AST.David Robillard1-14/+14
git-svn-id: http://svn.drobilla.net/resp/resp@290 ad02d1e2-f140-0410-9f75-f8b11f17cedd
2010-12-03Make AString, ALexeme, and ASymbol all contain (rather than inherit from) ↵David Robillard1-8/+8
std::string. git-svn-id: http://svn.drobilla.net/resp/resp@288 ad02d1e2-f140-0410-9f75-f8b11f17cedd
2010-12-03Remove AST::constrain.David Robillard1-7/+6
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 Robillard1-5/+5
git-svn-id: http://svn.drobilla.net/resp/resp@285 ad02d1e2-f140-0410-9f75-f8b11f17cedd
2010-12-03Remove AFn.David Robillard1-1/+1
git-svn-id: http://svn.drobilla.net/resp/resp@284 ad02d1e2-f140-0410-9f75-f8b11f17cedd
2010-12-02Remove ACall subclasses.David Robillard1-24/+24
git-svn-id: http://svn.drobilla.net/resp/resp@282 ad02d1e2-f140-0410-9f75-f8b11f17cedd
2010-12-02Remove use of ACall subclasses for contrain phase.David Robillard1-2/+3
git-svn-id: http://svn.drobilla.net/resp/resp@279 ad02d1e2-f140-0410-9f75-f8b11f17cedd
2010-12-02Represent code as list structure (i.e. traditional LISP lists built from ↵David Robillard1-29/+37
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-09-30Preliminary work on algebraic data types and run-time typing.David Robillard1-12/+14
git-svn-id: http://svn.drobilla.net/resp/resp@270 ad02d1e2-f140-0410-9f75-f8b11f17cedd
2010-08-19Generalise `cons': a call to any symbol beginning with an uppercase characterDavid Robillard1-10/+23
(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 Robillard1-2/+46
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 Robillard1-6/+18
git-svn-id: http://svn.drobilla.net/resp/resp@262 ad02d1e2-f140-0410-9f75-f8b11f17cedd
2010-08-19Coherent AString and Lexeme implementation.David Robillard1-2/+3
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-04-08Tuplr -> Resp (RESource Processing).David Robillard1-5/+5
git-svn-id: http://svn.drobilla.net/resp/resp@252 ad02d1e2-f140-0410-9f75-f8b11f17cedd
2009-10-16. operator for destructuring Tuples (cons).David Robillard1-0/+1
git-svn-id: http://svn.drobilla.net/resp/tuplr@236 ad02d1e2-f140-0410-9f75-f8b11f17cedd
2009-10-16Cons.David Robillard1-3/+4
git-svn-id: http://svn.drobilla.net/resp/tuplr@235 ad02d1e2-f140-0410-9f75-f8b11f17cedd
2009-10-15Replace more use of at(0) with head().David Robillard1-1/+1
git-svn-id: http://svn.drobilla.net/resp/tuplr@228 ad02d1e2-f140-0410-9f75-f8b11f17cedd
2009-10-15Replace use of ATuple::at(0) with ATuple::head().David Robillard1-1/+1
git-svn-id: http://svn.drobilla.net/resp/tuplr@227 ad02d1e2-f140-0410-9f75-f8b11f17cedd
2009-10-15Make TEnv purely a type environment.David Robillard1-5/+5
git-svn-id: http://svn.drobilla.net/resp/tuplr@222 ad02d1e2-f140-0410-9f75-f8b11f17cedd
2009-10-14Remove cruft.David Robillard1-1/+1
git-svn-id: http://svn.drobilla.net/resp/tuplr@216 ad02d1e2-f140-0410-9f75-f8b11f17cedd
2009-07-04Parse AString.David Robillard1-0/+1
git-svn-id: http://svn.drobilla.net/resp/tuplr@186 ad02d1e2-f140-0410-9f75-f8b11f17cedd
2009-07-04Tidy.David Robillard1-3/+3
git-svn-id: http://svn.drobilla.net/resp/tuplr@184 ad02d1e2-f140-0410-9f75-f8b11f17cedd
2009-07-04Ditch Exp type and use AST even at lex time.David Robillard1-32/+37
git-svn-id: http://svn.drobilla.net/resp/tuplr@182 ad02d1e2-f140-0410-9f75-f8b11f17cedd
2009-07-04Lex to AST with AString type.David Robillard1-1/+1
git-svn-id: http://svn.drobilla.net/resp/tuplr@181 ad02d1e2-f140-0410-9f75-f8b11f17cedd
2009-07-03Hide std::vector roots of Exp.David Robillard1-13/+17
git-svn-id: http://svn.drobilla.net/resp/tuplr@178 ad02d1e2-f140-0410-9f75-f8b11f17cedd
2009-06-29Tidy.David Robillard1-4/+2
git-svn-id: http://svn.drobilla.net/resp/tuplr@169 ad02d1e2-f140-0410-9f75-f8b11f17cedd
2009-06-29More documentation fixes.David Robillard1-0/+1
git-svn-id: http://svn.drobilla.net/resp/tuplr@167 ad02d1e2-f140-0410-9f75-f8b11f17cedd
2009-06-29Split code up further.David Robillard1-0/+131
git-svn-id: http://svn.drobilla.net/resp/tuplr@165 ad02d1e2-f140-0410-9f75-f8b11f17cedd