From e3cf93ddb677fe9482563a5687d3bf3e05ca0407 Mon Sep 17 00:00:00 2001 From: Roberto Ierusalimschy Date: Thu, 9 Mar 2000 10:57:37 -0300 Subject: first implementation of "threaded code" for boolean operations --- lparser.h | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) (limited to 'lparser.h') diff --git a/lparser.h b/lparser.h index adc7f012..01332478 100644 --- a/lparser.h +++ b/lparser.h @@ -47,15 +47,21 @@ */ typedef enum { - VGLOBAL, /* info is constant index of global name */ - VLOCAL, /* info is stack index */ + VGLOBAL, + VLOCAL, VINDEXED, - VEXP /* info is jump target if exp has internal jumps */ + VEXP } expkind; typedef struct expdesc { expkind k; - int info; + union { + int index; /* VGLOBAL: `kstr' index of global name; VLOCAL: stack index */ + struct { + int t; /* patch list of `exit when true' */ + int f; /* patch list of `exit when false' */ + } l; + } u; } expdesc; -- cgit v1.2.3-55-g6feb