summaryrefslogtreecommitdiffstats
path: root/src/Parse.vala
diff options
context:
space:
mode:
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;
}