diff options
author | David Robillard <d@drobilla.net> | 2010-12-07 23:33:48 +0000 |
---|---|---|
committer | David Robillard <d@drobilla.net> | 2010-12-07 23:33:48 +0000 |
commit | 521e800dd89a343cb5b779c7a4f6c56e6437bcb9 (patch) | |
tree | 9e552dfae7b095d93454ccd1e8def335c1e6a60b /src | |
parent | b38ff5a30986514a26bd800d113b40d6fcfef0db (diff) | |
download | resp-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')
-rw-r--r-- | src/parse.cpp | 27 |
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); |