Bläddra i källkod

Add an intern primitive for symbol creation

MaximeBarniaudy 1 år sedan
förälder
incheckning
c43b4c8308
1 ändrade filer med 17 tillägg och 0 borttagningar
  1. +17
    -0
      minproto.leg

+ 17
- 0
minproto.leg Visa fil

@ -3803,6 +3803,22 @@ oop prim___eval__(oop func, oop self, oop args, oop env)
return self; return self;
} }
oop prim_intern(oop func, oop self, oop args, oop env)
{
int argc = _get(args, Object,isize);
oop *indexed = _get(args, Object,indexed);
oop result = nil;
if (argc != 1) {
fatal("intern: invalid number of arguments");
}
if (getType(indexed[0]) != String) {
fatal("intern: argument is not of type String, got %s instead", getTypeName(indexed[0]));
}
return intern(_get(indexed[0], String, value));
}
oop prim_print(oop func, oop self, oop args, oop env) oop prim_print(oop func, oop self, oop args, oop env)
{ {
int argc = _get(args, Object,isize); int argc = _get(args, Object,isize);
@ -4164,6 +4180,7 @@ int main(int argc, char **argv)
prim(exit , prim_exit); prim(exit , prim_exit);
prim(error , prim_error); prim(error , prim_error);
prim(defined , prim_defined); prim(defined , prim_defined);
prim(intern , prim_intern);
# undef prim # undef prim

Laddar…
Avbryt
Spara