hi,
trying to make a complete list of reserved words in pike.
i found all of these in language.yacc, and i hope the list is complete.
A better place to look is lexer.h.
types: array mapping multiset object function program string float int void mixed
related to types: constant enum typedef
flow control: if do for while else foreach case switch break continue return
special "functions": sscanf typeof
special blocks: catch gauge class lambda
don't know how to name that group: import inherit
You've missed facet.
class access: final static private local public protected
i don't know what these do, but they seem to belong to class access: nomask inline extern optional variant
nomask makes the symbol not overloadable. inline is the old name for local. extern makes a prototype for a variable (not implemented yet). optional makes the symbol optional in the type for the surrounding class. variant is reserved for polymorphic overloading (not implemented yet).
i have no clue what these are: default predef global
default is the fallback label in swtich statements. predef is the namespace for interpreter global constants. global has two uses; it is the root for the module tree (global.), and it is the namespace for the toplevel class (global::).
Note that there are also a few special symbols that are unreserved:
this Evaluates to this_program() for the context it is looked up in. this_program Evaluates to object_program(this).
There is also one hardcoded module:
UNDEFINED Constant 0 with zero_type 1.