pike.git / src / lex.c

version» Context lines:

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 },