diff options
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; } |