pike.git
/
src
/
lex.c
version
»
Context lines:
10
20
40
80
file
none
3
pike.git/src/lex.c:1:
/*\ ||| This file a part of Pike, and is copyright by Fredrik Hubinette ||| Pike is distributed as GPL (General Public License) ||| See the files COPYING and DISCLAIMER for more information. \*/ /**/ #include "global.h"
-
RCSID("$Id: lex.c,v 1.
76
2000/04/
20
22
:
30
:
21
grubba
Exp $");
+
RCSID("$Id: lex.c,v 1.
77
2000/04/
21
00
:
29
:
48
hubbe
Exp $");
#include "language.h" #include "array.h" #include "lex.h" #include "stralloc.h" #include "dynamic_buffer.h" #include "constants.h" #include "hashtable.h" #include "stuff.h" #include "pike_memory.h" #include "interpret.h"
pike.git/src/lex.c:72:
} #define OPCODE0(OP,DESC) { DESC, OP, 0 }, #define OPCODE1(OP,DESC) { DESC, OP, I_HASARG }, #define OPCODE2(OP,DESC) { DESC, OP, I_TWO_ARGS }, #define OPCODE0_TAIL(OP,DESC) { DESC, OP, 0 }, #define OPCODE1_TAIL(OP,DESC) { DESC, OP, I_HASARG }, #define OPCODE2_TAIL(OP,DESC) { DESC, OP, I_TWO_ARGS },
+
#define OPCODE0_JUMP(OP,DESC) { DESC, OP, I_ISJUMP },
+
#define OPCODE1_JUMP(OP,DESC) { DESC, OP, I_HASARG },
+
#define OPCODE2_JUMP(OP,DESC) { DESC, OP, I_TWO_ARGS },
+
+
#define OPCODE0_TAILJUMP(OP,DESC) { DESC, OP, I_ISJUMP },
+
#define OPCODE1_TAILJUMP(OP,DESC) { DESC, OP, I_HASARG },
+
#define OPCODE2_TAILJUMP(OP,DESC) { DESC, OP, I_TWO_ARGS },
+
#define LEXER struct keyword instr_names[]= { #include "interpret_protos.h" { "!=", F_NE,0 }, { "%=", F_MOD_EQ,0 }, { "&=", F_AND_EQ,0 }, { "|=", F_OR_EQ,0 }, { "*=", F_MULT_EQ,0 },
pike.git/src/lex.c:118:
{ "break", F_BREAK,0 }, { "case", F_CASE,0 }, { "continue", F_CONTINUE,0 }, { "default", F_DEFAULT,0 }, { "do-while", F_DO,0 }, { "dumb return", F_DUMB_RETURN,0 }, { "for", F_FOR,0 }, { "index", F_INDEX,0 },
-
{ "branch", F_BRANCH, I_ISJUMP },
-
{ "branch non zero", F_BRANCH_WHEN_NON_ZERO, I_ISJUMP },
-
{ "branch if local", F_BRANCH_IF_LOCAL, I_HASARG },
+
{ "branch if !local", F_BRANCH_IF_NOT_LOCAL, I_HASARG },
-
{ "branch if ! local->x", F_BRANCH_IF_NOT_LOCAL_ARROW, I_TWO_ARGS },
-
{ "branch when zero", F_BRANCH_WHEN_ZERO, I_ISJUMP },
+
{ "branch if <", F_BRANCH_WHEN_LT, I_ISJUMP }, { "branch if >", F_BRANCH_WHEN_GT, I_ISJUMP }, { "branch if <=", F_BRANCH_WHEN_LE, I_ISJUMP }, { "branch if >=", F_BRANCH_WHEN_GE, I_ISJUMP }, { "branch if ==", F_BRANCH_WHEN_EQ, I_ISJUMP }, { "branch if !=", F_BRANCH_WHEN_NE, I_ISJUMP }, { "branch & pop if zero", F_BRANCH_AND_POP_WHEN_ZERO, I_ISJUMP }, { "branch & pop if !zero", F_BRANCH_AND_POP_WHEN_NON_ZERO, I_ISJUMP }, { "++Loop", F_INC_LOOP, I_ISJUMP }, { "++Loop!=", F_INC_NEQ_LOOP, I_ISJUMP },
pike.git/src/lex.c:148:
{ "==||", F_EQ_OR, I_ISJUMP }, { "==&&", F_EQ_AND, I_ISJUMP }, { "catch", F_CATCH, I_ISJUMP }, { "foreach", F_FOREACH, I_ISJUMP }, { "pointer", F_POINTER, I_ISPOINTER }, { "data", F_DATA, I_DATA }, { "local function call",F_CALL_LFUN, I_HASARG }, { "local function call and pop",F_CALL_LFUN_AND_POP, I_HASARG }, { "lvalue_list", F_LVALUE_LIST,0 },
-
{ "mark", F_MARK,0 },
-
{ "mark mark", F_MARK2,0 },
+
{ "return", F_RETURN,0 }, { "return 0", F_RETURN_0,0 }, { "return 1", F_RETURN_1,0 }, { "return local", F_RETURN_LOCAL, I_HASARG }, { "return if true", F_RETURN_IF_TRUE, 0 }, { "while", F_WHILE,0 }, { "label", F_LABEL,I_HASARG }, { "align", F_ALIGN, I_HASARG }, { "call", F_APPLY, I_HASARG }, { "int index", F_POS_INT_INDEX, I_HASARG },