summaryrefslogtreecommitdiffstats
path: root/src/Parse.vala
diff options
context:
space:
mode:
authorMatthias Schiffer <mschiffer@universe-factory.net>2010-07-11 12:03:52 +0200
committerMatthias Schiffer <mschiffer@universe-factory.net>2010-07-11 12:03:52 +0200
commitefdd8b44b2fcc7fcf4f7ba37ac4045793be8fecd (patch)
treeffdd106d614cecb7281ae533e7dd5659ca66e871 /src/Parse.vala
parent21dd3cb9a40b6bef5dbea8534557c3d6c0eebed8 (diff)
downloadeva-efdd8b44b2fcc7fcf4f7ba37ac4045793be8fecd.tar
eva-efdd8b44b2fcc7fcf4f7ba37ac4045793be8fecd.zip
Many API improvements and more bugfixes
Diffstat (limited to 'src/Parse.vala')
-rw-r--r--src/Parse.vala11
1 files changed, 7 insertions, 4 deletions
diff --git a/src/Parse.vala b/src/Parse.vala
index 18741cc..79b4cea 100644
--- a/src/Parse.vala
+++ b/src/Parse.vala
@@ -1,5 +1,6 @@
namespace Eva {
- internal static Term? parse(string str, ref va_list va) {
+ internal static Term? parse(string str, ...) {
+ va_list va = va_list();
string s = str.chomp();
if(s.length == 0)
@@ -305,11 +306,11 @@ namespace Eva {
switch(c) {
case ']':
- return new List(head);
+ return new Cons(head);
case ',':
- return new List(head, parse_list_tail(ref str, ref va));
+ return new Cons(head, parse_list_tail(ref str, ref va));
case '|':
- Term ret = new List(head, parse_term(ref str, ref va));
+ Term ret = new Cons(head, parse_term(ref str, ref va));
str = str.chug();
if(str.length == 0 || str.get_char() != ']')
@@ -417,6 +418,8 @@ namespace Eva {
case 'f':
case 'd':
return new Double(va.arg<double>());
+ case 'w':
+ return va.arg<Term>();
default:
return null;
}