aboutsummaryrefslogtreecommitdiffstats
path: root/src/lex.cpp
diff options
context:
space:
mode:
authorDavid Robillard <d@drobilla.net>2009-07-04 03:44:06 +0000
committerDavid Robillard <d@drobilla.net>2009-07-04 03:44:06 +0000
commit9e12b8536648a30377040f407e06ea0713db91b4 (patch)
treec3ff6258e0858fdde484a5b8fa174f76ba8bbc1b /src/lex.cpp
parent54cee059a533433091a4b65cf47b821bcbb0840c (diff)
downloadresp-9e12b8536648a30377040f407e06ea0713db91b4.tar.gz
resp-9e12b8536648a30377040f407e06ea0713db91b4.tar.bz2
resp-9e12b8536648a30377040f407e06ea0713db91b4.zip
Lex to AST with AString type.
git-svn-id: http://svn.drobilla.net/resp/tuplr@181 ad02d1e2-f140-0410-9f75-f8b11f17cedd
Diffstat (limited to 'src/lex.cpp')
-rw-r--r--src/lex.cpp6
1 files changed, 3 insertions, 3 deletions
diff --git a/src/lex.cpp b/src/lex.cpp
index dc7bd4a..bfdd9c1 100644
--- a/src/lex.cpp
+++ b/src/lex.cpp
@@ -39,8 +39,8 @@ readChar(Cursor& cur, istream& in)
SExp
readExpression(Cursor& cur, istream& in)
{
-#define PUSH(s, t) { if (t != "") { s.top().push_back(SExp(loc, t)); t = ""; } }
-#define YIELD(s, t) { if (s.empty()) { return SExp(loc, t); } else PUSH(s, t) }
+#define PUSH(s, t) { if (t != "") { s.top().push_back(SExp(loc, new AString(loc, t))); t = ""; } }
+#define YIELD(s, t) { if (s.empty()) { return SExp(loc, new AString(loc, t)); } else PUSH(s, t) }
stack<SExp> stk;
string tok;
Cursor loc; // start of tok
@@ -87,7 +87,7 @@ readExpression(Cursor& cur, istream& in)
}
}
switch (stk.size()) {
- case 0: return SExp(loc, tok);
+ case 0: return SExp(loc, new AString(loc, tok));
case 1: return stk.top();
default: throw Error(cur, "missing `)'");
}