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.
72
2000/04/19
14
:
14
:
29
grubba Exp $");
+
RCSID("$Id: lex.c,v 1.
73
2000/04/19
20
:
20
:
16
grubba 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:82:
#define OPCODE2_TAIL(OP,DESC) { DESC, OP, I_HASARG }, #define LEXER struct keyword instr_names[]= { #include "interpret_protos.h" { "!=", F_NE,0 }, { "%", F_MOD,0 }, { "%=", F_MOD_EQ,0 },
-
{ "& global", F_GLOBAL_LVALUE, I_HASARG },
-
{ "& lexical local", F_LEXICAL_LOCAL_LVALUE, I_HASARG },
-
{ "& local", F_LOCAL_LVALUE, I_HASARG },
+
{ "&", F_AND,0 }, { "&=", F_AND_EQ,0 }, { "*", F_MULTIPLY,0 }, { "*=", F_MULT_EQ,0 }, { "+", F_ADD,0 }, { "+=", F_ADD_EQ,0 }, { "-", F_SUBTRACT,0 }, { "-=", F_SUB_EQ,0 }, { "/", F_DIVIDE,0 }, { "/=", F_DIV_EQ,0 },
pike.git/src/lex.c:152:
{ "==||", 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 }, { "local", F_LOCAL, I_HASARG },
-
{ "lexical local", F_LEXICAL_LOCAL, I_HASARG },
+
{ "& external", F_EXTERNAL_LVALUE, I_HASARG }, { "LDA", F_LDA, I_HASARG }, { "mark & local", F_MARK_AND_LOCAL, I_HASARG },
-
{ "ltosval2", F_LTOSVAL2,0 },
-
{ "lvalue to svalue", F_LTOSVAL,0 },
+
{ "lvalue_list", F_LVALUE_LIST,0 },
-
{ "[ lvalues ]", F_ARRAY_LVALUE, I_HASARG },
+
{ "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 }, { "|", F_OR,0 }, { "|=", F_OR_EQ,0 }, { "label", F_LABEL,I_HASARG }, { "align", F_ALIGN, I_HASARG }, { "call", F_APPLY, I_HASARG },
-
{ "clear local", F_CLEAR_LOCAL, I_HASARG },
-
{ "clear 2 local", F_CLEAR_2_LOCAL, I_HASARG },
-
{ "clear 4 local", F_CLEAR_4_LOCAL, I_HASARG },
-
{ "++local", F_INC_LOCAL, I_HASARG },
+
{ "++local and pop", F_INC_LOCAL_AND_POP, I_HASARG }, { "local++", F_POST_INC_LOCAL, I_HASARG },
-
{ "--local", F_DEC_LOCAL, I_HASARG },
+
{ "--local and pop", F_DEC_LOCAL_AND_POP, I_HASARG }, { "local--", F_POST_DEC_LOCAL, I_HASARG }, { "int index", F_POS_INT_INDEX, I_HASARG }, { "-int index", F_NEG_INT_INDEX, I_HASARG }, { "apply and pop", F_APPLY_AND_POP, I_HASARG },
-
{ "2 locals", F_2_LOCALS, I_HASARG },
+
{ "byte", F_BYTE, I_HASARG }, { "nop", F_NOP,0 }, { "add integer", F_ADD_INT, I_HASARG }, { "add -integer", F_ADD_NEG_INT, I_HASARG }, { "mark & call", F_MARK_APPLY, I_HASARG }, { "mark, call & pop", F_MARK_APPLY_POP, I_HASARG }, { "apply and return", F_APPLY_AND_RETURN, I_HASARG }, { "apply, assign local and pop", F_APPLY_ASSIGN_LOCAL_AND_POP, I_HASARG }, { "apply & assign local", F_APPLY_ASSIGN_LOCAL, I_HASARG }, { "call lfun & return", F_CALL_LFUN_AND_RETURN, I_HASARG }, { "call function", F_CALL_FUNCTION, 0 }, { "call function & return", F_CALL_FUNCTION_AND_RETURN, 0 },
-
{ "+= and pop", F_ADD_TO_AND_POP, 0 },
-
{ "local=local;", F_LOCAL_2_LOCAL, I_HASARG },
-
{ "local=global;", F_GLOBAL_2_LOCAL, I_HASARG },
-
{ "global=local;", F_LOCAL_2_GLOBAL, I_HASARG },
+
}; struct instr instrs[F_MAX_INSTR - F_OFFSET]; struct reserved { struct hash_entry link; int token; };