diff options
author | Matthias Schiffer <mschiffer@universe-factory.net> | 2010-07-11 12:03:52 +0200 |
---|---|---|
committer | Matthias Schiffer <mschiffer@universe-factory.net> | 2010-07-11 12:03:52 +0200 |
commit | efdd8b44b2fcc7fcf4f7ba37ac4045793be8fecd (patch) | |
tree | ffdd106d614cecb7281ae533e7dd5659ca66e871 /src/Parse.vala | |
parent | 21dd3cb9a40b6bef5dbea8534557c3d6c0eebed8 (diff) | |
download | eva-efdd8b44b2fcc7fcf4f7ba37ac4045793be8fecd.tar eva-efdd8b44b2fcc7fcf4f7ba37ac4045793be8fecd.zip |
Many API improvements and more bugfixes
Diffstat (limited to 'src/Parse.vala')
-rw-r--r-- | src/Parse.vala | 11 |
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; } |