aboutsummaryrefslogtreecommitdiffstats
path: root/src/parse.cpp
diff options
context:
space:
mode:
authorDavid Robillard <d@drobilla.net>2010-12-07 23:33:48 +0000
committerDavid Robillard <d@drobilla.net>2010-12-07 23:33:48 +0000
commit521e800dd89a343cb5b779c7a4f6c56e6437bcb9 (patch)
tree9e552dfae7b095d93454ccd1e8def335c1e6a60b /src/parse.cpp
parentb38ff5a30986514a26bd800d113b40d6fcfef0db (diff)
downloadresp-521e800dd89a343cb5b779c7a4f6c56e6437bcb9.tar.gz
resp-521e800dd89a343cb5b779c7a4f6c56e6437bcb9.tar.bz2
resp-521e800dd89a343cb5b779c7a4f6c56e6437bcb9.zip
Tidy.
git-svn-id: http://svn.drobilla.net/resp/resp@309 ad02d1e2-f140-0410-9f75-f8b11f17cedd
Diffstat (limited to 'src/parse.cpp')
-rw-r--r--src/parse.cpp27
1 files changed, 13 insertions, 14 deletions
diff --git a/src/parse.cpp b/src/parse.cpp
index 2ac838f..63765c4 100644
--- a/src/parse.cpp
+++ b/src/parse.cpp
@@ -54,12 +54,13 @@ eat_char(Cursor& cur, istream& in, const char character)
static AST*
read_string(Cursor& cur, istream& in)
{
- string str;
- char c;
Cursor loc = cur;
+ string str;
+ char c;
eat_char(cur, in, '"');
while ((c = read_char(cur, in)) != '"') {
- if (c == '\\') { // string escape
+ switch (c) {
+ case '\\':
switch (c = read_char(cur, in)) {
case '"':
str.push_back('"');
@@ -71,7 +72,7 @@ read_string(Cursor& cur, istream& in)
cin.putback(c);
throw Error(cur, string("unknown string escape `\\") + (char)c + "'");
}
- } else { // any other character
+ default:
str.push_back(c);
}
}
@@ -97,9 +98,9 @@ read_list(PEnv& penv, Cursor& cur, istream& in)
if (in.peek() == ')') {
eat_char(cur, in, ')');
return list.head;
+ } else {
+ list.push_back(read_expression(penv, cur, in));
}
-
- list.push_back(read_expression(penv, cur, in));
}
assert(false);
}
@@ -121,15 +122,14 @@ read_special(Cursor& cur, istream& in)
throw Error(cur, (format("unknown special lexeme `%1%'") % in.peek()).str());
}
assert(false);
- return NULL;
}
static AST*
read_number(Cursor& cur, istream& in)
{
- string str;
- char c;
Cursor loc = cur;
+ string str;
+ char c;
while ((c = in.peek()) != EOF) {
if (isdigit(c) || c == '.')
str += read_char(cur, in);
@@ -146,15 +146,14 @@ read_number(Cursor& cur, istream& in)
static AST*
read_symbol(PEnv& penv, Cursor& cur, istream& in)
{
- string str;
- char c;
Cursor loc = cur;
+ string str;
+ char c;
while ((c = in.peek()) != EOF) {
- if (!isspace(c) && c != ')' && c != '(' && c != EOF && c != -1) {
+ if (!isspace(c) && c != ')' && c != '(' && c != EOF && c != -1)
str += read_char(cur, in);
- } else {
+ else
break;
- }
}
return penv.sym(str);