summaryrefslogtreecommitdiff
path: root/quadnames.c
diff options
context:
space:
mode:
authorPeter Mikkelsen <petermikkelsen10@gmail.com>2022-01-24 21:42:35 +0000
committerPeter Mikkelsen <petermikkelsen10@gmail.com>2022-01-24 21:42:35 +0000
commit5a5136ef9f981a603ca2e933e47cfd3a178be7cc (patch)
treefa086c71deaa2b82ad1644bb66fe69181ed1804b /quadnames.c
parentfbbd0b34314d58cc4d210e5ff07c2726fdadd659 (diff)
Don't open symbols when lexing
Diffstat (limited to 'quadnames.c')
-rw-r--r--quadnames.c22
1 files changed, 18 insertions, 4 deletions
diff --git a/quadnames.c b/quadnames.c
index 093a234..8ce54e1 100644
--- a/quadnames.c
+++ b/quadnames.c
@@ -27,6 +27,23 @@ QuadnameDef quadnames[] = {
{nil, 0, nil, nil, nil, nil} /* MUST BE LAST */
};
+void
+initquadnames(void)
+{
+ Symbol *s;
+ QuadnameDef q;
+ int i;
+ for(i = 0; quadnames[i].name != nil; i++){
+ q = quadnames[i];
+ if(q.tag == NameTag){
+ s = getsym(q.name, 1);
+ s->getfn = q.get;
+ s->setfn = q.set;
+ s->undefined = 0;
+ }
+ }
+}
+
Datum
quadnamedatum(QuadnameDef q)
{
@@ -34,10 +51,7 @@ quadnamedatum(QuadnameDef q)
d.tag = q.tag;
switch(q.tag){
case NameTag:
- d.symbol = getsym(q.name, 0);
- d.symbol->getfn = q.get;
- d.symbol->setfn = q.set;
- d.symbol->undefined = 0;
+ d.name = q.name;
break;
case FunctionTag:
d.func.type = FunctypeQuad;