diff options
author | Roberto Ierusalimschy <roberto@inf.puc-rio.br> | 2000-03-09 10:57:37 -0300 |
---|---|---|
committer | Roberto Ierusalimschy <roberto@inf.puc-rio.br> | 2000-03-09 10:57:37 -0300 |
commit | e3cf93ddb677fe9482563a5687d3bf3e05ca0407 (patch) | |
tree | c692a19e5597c785c198d558a07dd0571f3fa98c /lparser.h | |
parent | 88b306f495fa7034c708c6b75a355a6deee51c58 (diff) | |
download | lua-github-e3cf93ddb677fe9482563a5687d3bf3e05ca0407.tar.gz |
first implementation of "threaded code" for boolean operations
Diffstat (limited to 'lparser.h')
-rw-r--r-- | lparser.h | 14 |
1 files changed, 10 insertions, 4 deletions
@@ -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; |